diff options
author | Aleksandar Kanchev <kanchev@itestra.com> | 2013-01-29 17:21:47 +0100 |
---|---|---|
committer | Aleksandar Kanchev <kanchev@itestra.com> | 2013-01-29 17:22:01 +0100 |
commit | c2ab51453bbbce68544a0f86ba2b877e9ac5f601 (patch) | |
tree | f603c2d7c088d74e770ff1a2ff6c240acb7cde6d | |
parent | ed3de6a3857127d243b61eed7a3dced0496f2c0b (diff) | |
download | genivi-common-api-runtime-c2ab51453bbbce68544a0f86ba2b877e9ac5f601.tar.gz |
Normalize file line endingsgenivi_release_2
14 files changed, 931 insertions, 931 deletions
diff --git a/README.html b/README.html index e2825ab..fb1fe5d 100644 --- a/README.html +++ b/README.html @@ -1,494 +1,494 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<meta name="generator" content="AsciiDoc 8.4.5" />
-<title>GENIVI_CommonAPI-D-Bus</title>
-<style type="text/css">
-/* Debug borders */
-p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
-/*
- border: 1px solid red;
-*/
-}
-
-body {
- margin: 1em 5% 1em 5%;
-}
-
-a {
- color: blue;
- text-decoration: underline;
-}
-a:visited {
- color: fuchsia;
-}
-
-em {
- font-style: italic;
- color: navy;
-}
-
-strong {
- font-weight: bold;
- color: #083194;
-}
-
-tt {
- color: navy;
-}
-
-h1, h2, h3, h4, h5, h6 {
- color: #527bbd;
- font-family: sans-serif;
- margin-top: 1.2em;
- margin-bottom: 0.5em;
- line-height: 1.3;
-}
-
-h1, h2, h3 {
- border-bottom: 2px solid silver;
-}
-h2 {
- padding-top: 0.5em;
-}
-h3 {
- float: left;
-}
-h3 + * {
- clear: left;
-}
-
-div.sectionbody {
- font-family: serif;
- margin-left: 0;
-}
-
-hr {
- border: 1px solid silver;
-}
-
-p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-ul, ol, li > p {
- margin-top: 0;
-}
-
-pre {
- padding: 0;
- margin: 0;
-}
-
-span#author {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- font-size: 1.1em;
-}
-span#email {
-}
-span#revnumber, span#revdate, span#revremark {
- font-family: sans-serif;
-}
-
-div#footer {
- font-family: sans-serif;
- font-size: small;
- border-top: 2px solid silver;
- padding-top: 0.5em;
- margin-top: 4.0em;
-}
-div#footer-text {
- float: left;
- padding-bottom: 0.5em;
-}
-div#footer-badges {
- float: right;
- padding-bottom: 0.5em;
-}
-
-div#preamble {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
-div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
-div.admonitionblock {
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-div.admonitionblock {
- margin-top: 2.5em;
- margin-bottom: 2.5em;
-}
-
-div.content { /* Block element content. */
- padding: 0;
-}
-
-/* Block element titles. */
-div.title, caption.title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- text-align: left;
- margin-top: 1.0em;
- margin-bottom: 0.5em;
-}
-div.title + * {
- margin-top: 0;
-}
-
-td div.title:first-child {
- margin-top: 0.0em;
-}
-div.content div.title:first-child {
- margin-top: 0.0em;
-}
-div.content + div.title {
- margin-top: 0.0em;
-}
-
-div.sidebarblock > div.content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-
-div.listingblock > div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock {
- padding-left: 2.0em;
- margin-right: 10%;
-}
-div.quoteblock > div.attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock {
- padding-left: 2.0em;
- margin-right: 10%;
-}
-div.verseblock > div.content {
- white-space: pre;
-}
-div.verseblock > div.attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
-div.verseblock + div.attribution {
- text-align: left;
-}
-
-div.admonitionblock .icon {
- vertical-align: top;
- font-size: 1.1em;
- font-weight: bold;
- text-decoration: underline;
- color: #527bbd;
- padding-right: 0.5em;
-}
-div.admonitionblock td.content {
- padding-left: 0.5em;
- border-left: 2px solid silver;
-}
-
-div.exampleblock > div.content {
- border-left: 2px solid silver;
- padding: 0.5em;
-}
-
-div.imageblock div.content { padding-left: 0; }
-span.image img { border-style: none; }
-a.image:visited { color: white; }
-
-dl {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-dt {
- margin-top: 0.5em;
- margin-bottom: 0;
- font-style: normal;
- color: navy;
-}
-dd > *:first-child {
- margin-top: 0.1em;
-}
-
-ul, ol {
- list-style-position: outside;
-}
-ol.arabic {
- list-style-type: decimal;
-}
-ol.loweralpha {
- list-style-type: lower-alpha;
-}
-ol.upperalpha {
- list-style-type: upper-alpha;
-}
-ol.lowerroman {
- list-style-type: lower-roman;
-}
-ol.upperroman {
- list-style-type: upper-roman;
-}
-
-div.compact ul, div.compact ol,
-div.compact p, div.compact p,
-div.compact div, div.compact div {
- margin-top: 0.1em;
- margin-bottom: 0.1em;
-}
-
-div.tableblock > table {
- border: 3px solid #527bbd;
-}
-thead {
- font-family: sans-serif;
- font-weight: bold;
-}
-tfoot {
- font-weight: bold;
-}
-td > div.verse {
- white-space: pre;
-}
-p.table {
- margin-top: 0;
-}
-/* Because the table frame attribute is overriden by CSS in most browsers. */
-div.tableblock > table[frame="void"] {
- border-style: none;
-}
-div.tableblock > table[frame="hsides"] {
- border-left-style: none;
- border-right-style: none;
-}
-div.tableblock > table[frame="vsides"] {
- border-top-style: none;
- border-bottom-style: none;
-}
-
-
-div.hdlist {
- margin-top: 0.8em;
- margin-bottom: 0.8em;
-}
-div.hdlist tr {
- padding-bottom: 15px;
-}
-dt.hdlist1.strong, td.hdlist1.strong {
- font-weight: bold;
-}
-td.hdlist1 {
- vertical-align: top;
- font-style: normal;
- padding-right: 0.8em;
- color: navy;
-}
-td.hdlist2 {
- vertical-align: top;
-}
-div.hdlist.compact tr {
- margin: 0;
- padding-bottom: 0;
-}
-
-.comment {
- background: yellow;
-}
-
-@media print {
- div#footer-badges { display: none; }
-}
-
-div#toctitle {
- color: #527bbd;
- font-family: sans-serif;
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 1.0em;
- margin-bottom: 0.1em;
-}
-
-div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
- margin-top: 0;
- margin-bottom: 0;
-}
-div.toclevel2 {
- margin-left: 2em;
- font-size: 0.9em;
-}
-div.toclevel3 {
- margin-left: 4em;
- font-size: 0.9em;
-}
-div.toclevel4 {
- margin-left: 6em;
- font-size: 0.9em;
-}
-/* Workarounds for IE6's broken and incomplete CSS2. */
-
-div.sidebar-content {
- background: #ffffee;
- border: 1px solid silver;
- padding: 0.5em;
-}
-div.sidebar-title, div.image-title {
- color: #527bbd;
- font-family: sans-serif;
- font-weight: bold;
- margin-top: 0.0em;
- margin-bottom: 0.5em;
-}
-
-div.listingblock div.content {
- border: 1px solid silver;
- background: #f4f4f4;
- padding: 0.5em;
-}
-
-div.quoteblock-attribution {
- padding-top: 0.5em;
- text-align: right;
-}
-
-div.verseblock-content {
- white-space: pre;
-}
-div.verseblock-attribution {
- padding-top: 0.75em;
- text-align: left;
-}
-
-div.exampleblock-content {
- border-left: 2px solid silver;
- padding-left: 0.5em;
-}
-
-/* IE6 sets dynamically generated links as visited. */
-div#toc a:visited { color: blue; }
-</style>
-</head>
-<body>
-<div id="header">
-<h1>GENIVI_CommonAPI-D-Bus</h1>
-<span id="author">Juergen Gehring - juergen.gehring@bmw.de, Manfred Bathelt - manfred.bathelt@bmw.de</span><br />
-</div>
-<h2 id="_copyright">Copyright</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Copyright © 2013, GENIVI Alliance, Inc.
-Copyright © 2013, BMW AG</p></div>
-<div class="paragraph"><p>This file is part of GENIVI Project IPC Common API.</p></div>
-<div class="paragraph"><p>Contributions are licensed to the GENIVI Alliance under one or more
-Contribution License Agreements or MPL 2.0 .</p></div>
-<div class="paragraph"><p>© Copyright
-This Source Code Form is subject to the terms of the
-Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
-this file, You can obtain one at <a href="http://mozilla.org/MPL/2.0/">http://mozilla.org/MPL/2.0/</a>.</p></div>
-<div class="paragraph"><p>For further information see <a href="https://collab.genivi.org/wiki/display/genivi/SysInfraEGCommonIDLCommonAPIGuide">https://collab.genivi.org/wiki/display/genivi/SysInfraEGCommonIDLCommonAPIGuide</a></p></div>
-</div>
-<h2 id="_license">License</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>This project is licensed under MPL 2.0</p></div>
-<div class="paragraph"><p>Contribution is done under GENIVI CLA or MPL2.0.</p></div>
-</div>
-<h2 id="_version">Version</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The current version can be taken from the git.</p></div>
-</div>
-<h2 id="_common_api_overview">Common API Overview</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>Common API and its mechanism specific bindings (e.g. Common API D-Bus) provide a set of libraries and tools to work with
-RPC communication in a way independent of wich mechanism is used. It consist currently consists of four subprojects:</p></div>
-<div class="listingblock">
-<div class="content">
-<pre><tt>CommonAPI - This is the base C++ library, which provides the application interface for users and can
- load runtime bindings such as dbus.
-CommonAPI-Tools - The eclipse based tools for CommonAPI. This is essentially the code generator for
- Franca -> Common API C++ code.
- (This is the current package.)
-CommonAPI-D-Bus - This is the D-Bus binding C++ library, which provides the necesary code to communicate
- over D-Bus. This is invisible to the application code, and simply needs to be linked against.
-CommonAPI-D-Bus-Tools - The eclipse based tools for CommonAPI D-Bus. This is the code generator for
- Franca -> Common API D-Bus C++ code.</tt></pre>
-</div></div>
-</div>
-<h2 id="_usage_instructions">Usage Instructions</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>The simplest way to use the CommonAPI Tools is to add the update site ZIP available in the CommonAPI-D-Bus-Tools project
-under org.genivi.commonapi.dbus.feature/org.genivi.commonapi.dbus.updatesite.zip to you Eclipse. This is available under:</p></div>
-<div class="paragraph"><p>Help→Install New Software→Add Button</p></div>
-<div class="paragraph"><p>There click Browse and navigate to the update site.</p></div>
-<div class="paragraph"><p>In order for dependencies to be resolved you must have a franca update site zip
-(available from <a href="https://code.google.com/a/eclipselabs.org/p/franca/downloads/list">https://code.google.com/a/eclipselabs.org/p/franca/downloads/list</a>) and the xtext update site url
-(<a href="http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/">http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/</a>) also added to your eclipse sources in the same manner.</p></div>
-<div class="paragraph"><p>Then select "All available sites" in the site selection dropdown box, and in the Software selection window,
-select the entire "GENIVI Common API" Tree.</p></div>
-<div class="paragraph"><p>After the software has been installed in Eclipse you can right-click on any .fidl file and generate C++ code for CommonAPI D-Bus
-by selecting the "CommonAPI→Generate Common API Code" option.</p></div>
-</div>
-<h2 id="_build_instructions">Build Instructions</h2>
-<div class="sectionbody">
-<div class="paragraph"><p>These are Eclipse Plug-In projects which require Xtext2 and Franca as dependencies within Eclipse.</p></div>
-<div class="paragraph"><p>To build first import the three projects</p></div>
-<div class="listingblock">
-<div class="content">
-<pre><tt>org.genivi.commonapi.core.
-org.genivi.commonapi.core.ui
-org.genivi.commonapi.core.feature</tt></pre>
-</div></div>
-<div class="paragraph"><p>in to Eclipse. Then simply build the workspace. Then right-click on the .feature project and select "Run as Eclipse Application" to launch
-the built projects.</p></div>
-</div>
-<h2 id="_working_on_the_code_amp_contribution">Working on the code & contribution</h2>
-<div class="sectionbody">
-<div class="literalblock">
-<div class="title">First get the code from the git:</div>
-<div class="content">
-<pre><tt>git clone</tt></pre>
-</div></div>
-<div class="literalblock">
-<div class="title">Get an overview of all branches:</div>
-<div class="content">
-<pre><tt>git branch</tt></pre>
-</div></div>
-<div class="literalblock">
-<div class="title">Switch to the branch you want to work on (master is the feature branch) and verify that it has switched (* changed)</div>
-<div class="content">
-<pre><tt>git checkout <your branch>
-git branch</tt></pre>
-</div></div>
-<div class="literalblock">
-<div class="title">Best practice is to create a local branch based on the current branch:</div>
-<div class="content">
-<pre><tt>git branch working_branch</tt></pre>
-</div></div>
-<div class="paragraph"><p>Start working, best practice is to commit smaller, compilable pieces during the development process that makes it easier to handle later on.</p></div>
-<div class="literalblock">
-<div class="title">If you want to commit you changes, send them to the author, you can create a patch like this:</div>
-<div class="content">
-<pre><tt>git format-patch working_branch <your branch></tt></pre>
-</div></div>
-<div class="paragraph"><p>This creates a set of patches that are published via the mailing list.The patches will be discussed and then merged & uploaded on the git by the maintainer.</p></div>
-<div class="paragraph"><p>Patches can be accepted either under GENIVI Cla or MPL 2.0 (see section License). Please be sure that the signed-off-by is set correctly. For more, check out <a href="http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html">http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html</a></p></div>
-</div>
-<div id="footer">
-<div id="footer-text">
-Last updated 2013-01-21 14:53:03 CEST
-</div>
-</div>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" + "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="generator" content="AsciiDoc 8.4.5" /> +<title>GENIVI_CommonAPI-D-Bus</title> +<style type="text/css"> +/* Debug borders */ +p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 { +/* + border: 1px solid red; +*/ +} + +body { + margin: 1em 5% 1em 5%; +} + +a { + color: blue; + text-decoration: underline; +} +a:visited { + color: fuchsia; +} + +em { + font-style: italic; + color: navy; +} + +strong { + font-weight: bold; + color: #083194; +} + +tt { + color: navy; +} + +h1, h2, h3, h4, h5, h6 { + color: #527bbd; + font-family: sans-serif; + margin-top: 1.2em; + margin-bottom: 0.5em; + line-height: 1.3; +} + +h1, h2, h3 { + border-bottom: 2px solid silver; +} +h2 { + padding-top: 0.5em; +} +h3 { + float: left; +} +h3 + * { + clear: left; +} + +div.sectionbody { + font-family: serif; + margin-left: 0; +} + +hr { + border: 1px solid silver; +} + +p { + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +ul, ol, li > p { + margin-top: 0; +} + +pre { + padding: 0; + margin: 0; +} + +span#author { + color: #527bbd; + font-family: sans-serif; + font-weight: bold; + font-size: 1.1em; +} +span#email { +} +span#revnumber, span#revdate, span#revremark { + font-family: sans-serif; +} + +div#footer { + font-family: sans-serif; + font-size: small; + border-top: 2px solid silver; + padding-top: 0.5em; + margin-top: 4.0em; +} +div#footer-text { + float: left; + padding-bottom: 0.5em; +} +div#footer-badges { + float: right; + padding-bottom: 0.5em; +} + +div#preamble { + margin-top: 1.5em; + margin-bottom: 1.5em; +} +div.tableblock, div.imageblock, div.exampleblock, div.verseblock, +div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, +div.admonitionblock { + margin-top: 1.5em; + margin-bottom: 1.5em; +} +div.admonitionblock { + margin-top: 2.5em; + margin-bottom: 2.5em; +} + +div.content { /* Block element content. */ + padding: 0; +} + +/* Block element titles. */ +div.title, caption.title { + color: #527bbd; + font-family: sans-serif; + font-weight: bold; + text-align: left; + margin-top: 1.0em; + margin-bottom: 0.5em; +} +div.title + * { + margin-top: 0; +} + +td div.title:first-child { + margin-top: 0.0em; +} +div.content div.title:first-child { + margin-top: 0.0em; +} +div.content + div.title { + margin-top: 0.0em; +} + +div.sidebarblock > div.content { + background: #ffffee; + border: 1px solid silver; + padding: 0.5em; +} + +div.listingblock > div.content { + border: 1px solid silver; + background: #f4f4f4; + padding: 0.5em; +} + +div.quoteblock { + padding-left: 2.0em; + margin-right: 10%; +} +div.quoteblock > div.attribution { + padding-top: 0.5em; + text-align: right; +} + +div.verseblock { + padding-left: 2.0em; + margin-right: 10%; +} +div.verseblock > div.content { + white-space: pre; +} +div.verseblock > div.attribution { + padding-top: 0.75em; + text-align: left; +} +/* DEPRECATED: Pre version 8.2.7 verse style literal block. */ +div.verseblock + div.attribution { + text-align: left; +} + +div.admonitionblock .icon { + vertical-align: top; + font-size: 1.1em; + font-weight: bold; + text-decoration: underline; + color: #527bbd; + padding-right: 0.5em; +} +div.admonitionblock td.content { + padding-left: 0.5em; + border-left: 2px solid silver; +} + +div.exampleblock > div.content { + border-left: 2px solid silver; + padding: 0.5em; +} + +div.imageblock div.content { padding-left: 0; } +span.image img { border-style: none; } +a.image:visited { color: white; } + +dl { + margin-top: 0.8em; + margin-bottom: 0.8em; +} +dt { + margin-top: 0.5em; + margin-bottom: 0; + font-style: normal; + color: navy; +} +dd > *:first-child { + margin-top: 0.1em; +} + +ul, ol { + list-style-position: outside; +} +ol.arabic { + list-style-type: decimal; +} +ol.loweralpha { + list-style-type: lower-alpha; +} +ol.upperalpha { + list-style-type: upper-alpha; +} +ol.lowerroman { + list-style-type: lower-roman; +} +ol.upperroman { + list-style-type: upper-roman; +} + +div.compact ul, div.compact ol, +div.compact p, div.compact p, +div.compact div, div.compact div { + margin-top: 0.1em; + margin-bottom: 0.1em; +} + +div.tableblock > table { + border: 3px solid #527bbd; +} +thead { + font-family: sans-serif; + font-weight: bold; +} +tfoot { + font-weight: bold; +} +td > div.verse { + white-space: pre; +} +p.table { + margin-top: 0; +} +/* Because the table frame attribute is overriden by CSS in most browsers. */ +div.tableblock > table[frame="void"] { + border-style: none; +} +div.tableblock > table[frame="hsides"] { + border-left-style: none; + border-right-style: none; +} +div.tableblock > table[frame="vsides"] { + border-top-style: none; + border-bottom-style: none; +} + + +div.hdlist { + margin-top: 0.8em; + margin-bottom: 0.8em; +} +div.hdlist tr { + padding-bottom: 15px; +} +dt.hdlist1.strong, td.hdlist1.strong { + font-weight: bold; +} +td.hdlist1 { + vertical-align: top; + font-style: normal; + padding-right: 0.8em; + color: navy; +} +td.hdlist2 { + vertical-align: top; +} +div.hdlist.compact tr { + margin: 0; + padding-bottom: 0; +} + +.comment { + background: yellow; +} + +@media print { + div#footer-badges { display: none; } +} + +div#toctitle { + color: #527bbd; + font-family: sans-serif; + font-size: 1.1em; + font-weight: bold; + margin-top: 1.0em; + margin-bottom: 0.1em; +} + +div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { + margin-top: 0; + margin-bottom: 0; +} +div.toclevel2 { + margin-left: 2em; + font-size: 0.9em; +} +div.toclevel3 { + margin-left: 4em; + font-size: 0.9em; +} +div.toclevel4 { + margin-left: 6em; + font-size: 0.9em; +} +/* Workarounds for IE6's broken and incomplete CSS2. */ + +div.sidebar-content { + background: #ffffee; + border: 1px solid silver; + padding: 0.5em; +} +div.sidebar-title, div.image-title { + color: #527bbd; + font-family: sans-serif; + font-weight: bold; + margin-top: 0.0em; + margin-bottom: 0.5em; +} + +div.listingblock div.content { + border: 1px solid silver; + background: #f4f4f4; + padding: 0.5em; +} + +div.quoteblock-attribution { + padding-top: 0.5em; + text-align: right; +} + +div.verseblock-content { + white-space: pre; +} +div.verseblock-attribution { + padding-top: 0.75em; + text-align: left; +} + +div.exampleblock-content { + border-left: 2px solid silver; + padding-left: 0.5em; +} + +/* IE6 sets dynamically generated links as visited. */ +div#toc a:visited { color: blue; } +</style> +</head> +<body> +<div id="header"> +<h1>GENIVI_CommonAPI-D-Bus</h1> +<span id="author">Juergen Gehring - juergen.gehring@bmw.de, Manfred Bathelt - manfred.bathelt@bmw.de</span><br /> +</div> +<h2 id="_copyright">Copyright</h2> +<div class="sectionbody"> +<div class="paragraph"><p>Copyright © 2013, GENIVI Alliance, Inc. +Copyright © 2013, BMW AG</p></div> +<div class="paragraph"><p>This file is part of GENIVI Project IPC Common API.</p></div> +<div class="paragraph"><p>Contributions are licensed to the GENIVI Alliance under one or more +Contribution License Agreements or MPL 2.0 .</p></div> +<div class="paragraph"><p>© Copyright +This Source Code Form is subject to the terms of the +Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +this file, You can obtain one at <a href="http://mozilla.org/MPL/2.0/">http://mozilla.org/MPL/2.0/</a>.</p></div> +<div class="paragraph"><p>For further information see <a href="https://collab.genivi.org/wiki/display/genivi/SysInfraEGCommonIDLCommonAPIGuide">https://collab.genivi.org/wiki/display/genivi/SysInfraEGCommonIDLCommonAPIGuide</a></p></div> +</div> +<h2 id="_license">License</h2> +<div class="sectionbody"> +<div class="paragraph"><p>This project is licensed under MPL 2.0</p></div> +<div class="paragraph"><p>Contribution is done under GENIVI CLA or MPL2.0.</p></div> +</div> +<h2 id="_version">Version</h2> +<div class="sectionbody"> +<div class="paragraph"><p>The current version can be taken from the git.</p></div> +</div> +<h2 id="_common_api_overview">Common API Overview</h2> +<div class="sectionbody"> +<div class="paragraph"><p>Common API and its mechanism specific bindings (e.g. Common API D-Bus) provide a set of libraries and tools to work with +RPC communication in a way independent of wich mechanism is used. It consist currently consists of four subprojects:</p></div> +<div class="listingblock"> +<div class="content"> +<pre><tt>CommonAPI - This is the base C++ library, which provides the application interface for users and can + load runtime bindings such as dbus. +CommonAPI-Tools - The eclipse based tools for CommonAPI. This is essentially the code generator for + Franca -> Common API C++ code. + (This is the current package.) +CommonAPI-D-Bus - This is the D-Bus binding C++ library, which provides the necesary code to communicate + over D-Bus. This is invisible to the application code, and simply needs to be linked against. +CommonAPI-D-Bus-Tools - The eclipse based tools for CommonAPI D-Bus. This is the code generator for + Franca -> Common API D-Bus C++ code.</tt></pre> +</div></div> +</div> +<h2 id="_usage_instructions">Usage Instructions</h2> +<div class="sectionbody"> +<div class="paragraph"><p>The simplest way to use the CommonAPI Tools is to add the update site ZIP available in the CommonAPI-D-Bus-Tools project +under org.genivi.commonapi.dbus.feature/org.genivi.commonapi.dbus.updatesite.zip to you Eclipse. This is available under:</p></div> +<div class="paragraph"><p>Help→Install New Software→Add Button</p></div> +<div class="paragraph"><p>There click Browse and navigate to the update site.</p></div> +<div class="paragraph"><p>In order for dependencies to be resolved you must have a franca update site zip +(available from <a href="https://code.google.com/a/eclipselabs.org/p/franca/downloads/list">https://code.google.com/a/eclipselabs.org/p/franca/downloads/list</a>) and the xtext update site url +(<a href="http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/">http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/</a>) also added to your eclipse sources in the same manner.</p></div> +<div class="paragraph"><p>Then select "All available sites" in the site selection dropdown box, and in the Software selection window, +select the entire "GENIVI Common API" Tree.</p></div> +<div class="paragraph"><p>After the software has been installed in Eclipse you can right-click on any .fidl file and generate C++ code for CommonAPI D-Bus +by selecting the "CommonAPI→Generate Common API Code" option.</p></div> +</div> +<h2 id="_build_instructions">Build Instructions</h2> +<div class="sectionbody"> +<div class="paragraph"><p>These are Eclipse Plug-In projects which require Xtext2 and Franca as dependencies within Eclipse.</p></div> +<div class="paragraph"><p>To build first import the three projects</p></div> +<div class="listingblock"> +<div class="content"> +<pre><tt>org.genivi.commonapi.core. +org.genivi.commonapi.core.ui +org.genivi.commonapi.core.feature</tt></pre> +</div></div> +<div class="paragraph"><p>in to Eclipse. Then simply build the workspace. Then right-click on the .feature project and select "Run as Eclipse Application" to launch +the built projects.</p></div> +</div> +<h2 id="_working_on_the_code_amp_contribution">Working on the code & contribution</h2> +<div class="sectionbody"> +<div class="literalblock"> +<div class="title">First get the code from the git:</div> +<div class="content"> +<pre><tt>git clone</tt></pre> +</div></div> +<div class="literalblock"> +<div class="title">Get an overview of all branches:</div> +<div class="content"> +<pre><tt>git branch</tt></pre> +</div></div> +<div class="literalblock"> +<div class="title">Switch to the branch you want to work on (master is the feature branch) and verify that it has switched (* changed)</div> +<div class="content"> +<pre><tt>git checkout <your branch> +git branch</tt></pre> +</div></div> +<div class="literalblock"> +<div class="title">Best practice is to create a local branch based on the current branch:</div> +<div class="content"> +<pre><tt>git branch working_branch</tt></pre> +</div></div> +<div class="paragraph"><p>Start working, best practice is to commit smaller, compilable pieces during the development process that makes it easier to handle later on.</p></div> +<div class="literalblock"> +<div class="title">If you want to commit you changes, send them to the author, you can create a patch like this:</div> +<div class="content"> +<pre><tt>git format-patch working_branch <your branch></tt></pre> +</div></div> +<div class="paragraph"><p>This creates a set of patches that are published via the mailing list.The patches will be discussed and then merged & uploaded on the git by the maintainer.</p></div> +<div class="paragraph"><p>Patches can be accepted either under GENIVI Cla or MPL 2.0 (see section License). Please be sure that the signed-off-by is set correctly. For more, check out <a href="http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html">http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html</a></p></div> +</div> +<div id="footer"> +<div id="footer-text"> +Last updated 2013-01-21 14:53:03 CEST +</div> +</div> +</body> +</html> diff --git a/org.genivi.commonapi.core.tests/src/test-derived-types.fidl b/org.genivi.commonapi.core.tests/src/test-derived-types.fidl index ab91c49..63c3467 100644 --- a/org.genivi.commonapi.core.tests/src/test-derived-types.fidl +++ b/org.genivi.commonapi.core.tests/src/test-derived-types.fidl @@ -1,71 +1,71 @@ -/* Copyright (C) 2013 BMW Group
- * Author: Manfred Bathelt (manfred.bathelt@bmw.de)
- * Author: Juergen Gehring (juergen.gehring@bmw.de)
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-package commonapi.tests
-
-import commonapi.tests.* from "test-predefined-types.fidl"
-
-typeCollection DerivedTypeCollection {
- <** @description : Common errors. **>
- enumeration TestEnum {
- <** @description : default **>
- E_UNKNOWN = "0x00"
- <** @description : no error - positive reply **>
- E_OK = "0x01"
- <** @description : value out of range **>
- E_OUT_OF_RANGE = "0x02"
- <** @description : not used **>
- E_NOT_USED = "0x03"
- }
-
- enumeration TestEnumMissingValue {
- <** @description : default **>
- E1 = "A"
- E2
- E3 = "2"
- }
-
- enumeration TestEnumExtended extends TestEnum {
- <** @description : new error **>
- E_NEW = "0x04"
- }
-
- enumeration TestEnumExtended2 extends TestEnumExtended {
- <** @description : new error **>
- E_NEW2 = "0x05"
- }
-
- struct TestStruct {
- <** @description : the name of the property **>
- PredefinedTypeCollection.TestString testString
-
- <** @description : the actual value **>
- UInt16 uintValue
- }
-
- struct TestStructExtended extends TestStruct {
- TestEnumExtended2 testEnumExtended2
- }
-
- array TestArrayUInt64 of UInt64
- array TestArrayTestStruct of TestStruct
-
- map TestMap { UInt32 to TestArrayTestStruct }
-
- union TestUnionIn {
- TestEnum enum
- Int16 int
- String text
- }
-
- union TestUnionOut {
- TestEnumExtended enum
- Int16 int
- String text
- }
-}
-
-
+/* Copyright (C) 2013 BMW Group + * Author: Manfred Bathelt (manfred.bathelt@bmw.de) + * Author: Juergen Gehring (juergen.gehring@bmw.de) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package commonapi.tests + +import commonapi.tests.* from "test-predefined-types.fidl" + +typeCollection DerivedTypeCollection { + <** @description : Common errors. **> + enumeration TestEnum { + <** @description : default **> + E_UNKNOWN = "0x00" + <** @description : no error - positive reply **> + E_OK = "0x01" + <** @description : value out of range **> + E_OUT_OF_RANGE = "0x02" + <** @description : not used **> + E_NOT_USED = "0x03" + } + + enumeration TestEnumMissingValue { + <** @description : default **> + E1 = "A" + E2 + E3 = "2" + } + + enumeration TestEnumExtended extends TestEnum { + <** @description : new error **> + E_NEW = "0x04" + } + + enumeration TestEnumExtended2 extends TestEnumExtended { + <** @description : new error **> + E_NEW2 = "0x05" + } + + struct TestStruct { + <** @description : the name of the property **> + PredefinedTypeCollection.TestString testString + + <** @description : the actual value **> + UInt16 uintValue + } + + struct TestStructExtended extends TestStruct { + TestEnumExtended2 testEnumExtended2 + } + + array TestArrayUInt64 of UInt64 + array TestArrayTestStruct of TestStruct + + map TestMap { UInt32 to TestArrayTestStruct } + + union TestUnionIn { + TestEnum enum + Int16 int + String text + } + + union TestUnionOut { + TestEnumExtended enum + Int16 int + String text + } +} + + diff --git a/org.genivi.commonapi.core.tests/src/test-interface-proxy.fidl b/org.genivi.commonapi.core.tests/src/test-interface-proxy.fidl index fd77ada..295902f 100644 --- a/org.genivi.commonapi.core.tests/src/test-interface-proxy.fidl +++ b/org.genivi.commonapi.core.tests/src/test-interface-proxy.fidl @@ -1,70 +1,70 @@ -/* Copyright (C) 2013 BMW Group
- * Author: Manfred Bathelt (manfred.bathelt@bmw.de)
- * Author: Juergen Gehring (juergen.gehring@bmw.de)
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-package commonapi.tests
-
-import commonapi.tests.* from "test-derived-types.fidl"
-
-interface TestInterface {
- version { major 1 minor 0 }
-
- attribute UInt32 TestPredefinedTypeAttribute
- attribute DerivedTypeCollection.TestStructExtended TestDerivedStructAttribute
- attribute DerivedTypeCollection.TestArrayUInt64 TestDerivedArrayAttribute
-
- method testVoidPredefinedTypeMethod {
- in {
- UInt32 uint32Value
- String stringValue
- }
- }
-
- method testPredefinedTypeMethod {
- in {
- UInt32 uint32InValue
- String stringInValue
- }
- out {
- UInt32 uint32OutValue
- String stringOutValue
- }
- }
-
- method testVoidDerivedTypeMethod {
- in {
- DerivedTypeCollection.TestEnumExtended2 testEnumExtended2Value
- DerivedTypeCollection.TestMap testMapValue
- }
- }
-
- method testDerivedTypeMethod {
- in {
- DerivedTypeCollection.TestEnumExtended2 testEnumExtended2InValue
- DerivedTypeCollection.TestMap testMapInValue
- }
- out {
- DerivedTypeCollection.TestEnumExtended2 testEnumExtended2OutValue
- DerivedTypeCollection.TestMap testMapOutValue
- }
- }
-
- method testUnionMethod {
- in {
- DerivedTypeCollection.TestUnionIn inParam
- }
- out {
- DerivedTypeCollection.TestUnionOut outParam
- }
- }
-
- broadcast TestPredefinedTypeBroadcast {
- out {
- UInt32 uint32Value
- String stringValue
- }
- }
-}
-
+/* Copyright (C) 2013 BMW Group + * Author: Manfred Bathelt (manfred.bathelt@bmw.de) + * Author: Juergen Gehring (juergen.gehring@bmw.de) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package commonapi.tests + +import commonapi.tests.* from "test-derived-types.fidl" + +interface TestInterface { + version { major 1 minor 0 } + + attribute UInt32 TestPredefinedTypeAttribute + attribute DerivedTypeCollection.TestStructExtended TestDerivedStructAttribute + attribute DerivedTypeCollection.TestArrayUInt64 TestDerivedArrayAttribute + + method testVoidPredefinedTypeMethod { + in { + UInt32 uint32Value + String stringValue + } + } + + method testPredefinedTypeMethod { + in { + UInt32 uint32InValue + String stringInValue + } + out { + UInt32 uint32OutValue + String stringOutValue + } + } + + method testVoidDerivedTypeMethod { + in { + DerivedTypeCollection.TestEnumExtended2 testEnumExtended2Value + DerivedTypeCollection.TestMap testMapValue + } + } + + method testDerivedTypeMethod { + in { + DerivedTypeCollection.TestEnumExtended2 testEnumExtended2InValue + DerivedTypeCollection.TestMap testMapInValue + } + out { + DerivedTypeCollection.TestEnumExtended2 testEnumExtended2OutValue + DerivedTypeCollection.TestMap testMapOutValue + } + } + + method testUnionMethod { + in { + DerivedTypeCollection.TestUnionIn inParam + } + out { + DerivedTypeCollection.TestUnionOut outParam + } + } + + broadcast TestPredefinedTypeBroadcast { + out { + UInt32 uint32Value + String stringValue + } + } +} + diff --git a/org.genivi.commonapi.core.tests/src/test-predefined-types.fidl b/org.genivi.commonapi.core.tests/src/test-predefined-types.fidl index c29034b..c8f9882 100644 --- a/org.genivi.commonapi.core.tests/src/test-predefined-types.fidl +++ b/org.genivi.commonapi.core.tests/src/test-predefined-types.fidl @@ -1,25 +1,25 @@ -/* Copyright (C) 2013 BMW Group
- * Author: Manfred Bathelt (manfred.bathelt@bmw.de)
- * Author: Juergen Gehring (juergen.gehring@bmw.de)
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-package commonapi.tests
-
-typeCollection PredefinedTypeCollection {
- typedef TestUInt8 is UInt8
- typedef TestUInt16 is UInt16
- typedef TestUInt32 is UInt32
- typedef TestUInt64 is UInt64
- typedef TestInt8 is Int8
- typedef TestInt16 is Int16
- typedef TestInt32 is Int32
- typedef TestInt64 is Int64
- typedef TestBoolean is Boolean
- typedef TestByteBuffer is ByteBuffer
- typedef TestDouble is Double
- typedef TestFloat is Float
- typedef TestString is String
-}
-
-
+/* Copyright (C) 2013 BMW Group + * Author: Manfred Bathelt (manfred.bathelt@bmw.de) + * Author: Juergen Gehring (juergen.gehring@bmw.de) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package commonapi.tests + +typeCollection PredefinedTypeCollection { + typedef TestUInt8 is UInt8 + typedef TestUInt16 is UInt16 + typedef TestUInt32 is UInt32 + typedef TestUInt64 is UInt64 + typedef TestInt8 is Int8 + typedef TestInt16 is Int16 + typedef TestInt32 is Int32 + typedef TestInt64 is Int64 + typedef TestBoolean is Boolean + typedef TestByteBuffer is ByteBuffer + typedef TestDouble is Double + typedef TestFloat is Float + typedef TestString is String +} + + diff --git a/org.genivi.commonapi.core.ui/.classpath b/org.genivi.commonapi.core.ui/.classpath index 8a8f166..ad32c83 100644 --- a/org.genivi.commonapi.core.ui/.classpath +++ b/org.genivi.commonapi.core.ui/.classpath @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/org.genivi.commonapi.core.ui/build.properties b/org.genivi.commonapi.core.ui/build.properties index 78d73f7..2b0d95b 100644 --- a/org.genivi.commonapi.core.ui/build.properties +++ b/org.genivi.commonapi.core.ui/build.properties @@ -1,5 +1,5 @@ -source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
- META-INF/,\
- .
+source.. = src/ +output.. = bin/ +bin.includes = plugin.xml,\ + META-INF/,\ + . diff --git a/org.genivi.commonapi.core.ui/plugin.xml b/org.genivi.commonapi.core.ui/plugin.xml index 912b6e9..6b280ca 100644 --- a/org.genivi.commonapi.core.ui/plugin.xml +++ b/org.genivi.commonapi.core.ui/plugin.xml @@ -1,64 +1,64 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
- <extension
- point="org.eclipse.ui.handlers">
- <handler
- class="org.genivi.commonapi.core.ui.CommandExecutableExtensionFactory:org.genivi.commonapi.core.ui.handler.GenerationCommand"
- commandId="org.genivi.commonapi.core.ui.handler.GenerationCommand">
- </handler>
- </extension>
- <extension
- point="org.eclipse.ui.commands">
- <command
- id="org.genivi.commonapi.core.ui.handler.GenerationCommand"
- name="Generate C++ Code">
- </command>
- </extension>
- <extension
- point="org.eclipse.ui.menus">
- <menuContribution
- allPopups="false"
- locationURI="popup:org.eclipse.ui.popup.any?after=additions">
- <menu
- id="org.genivi.commonapi.core.ui.popup.menu"
- label="Common API">
- </menu>
- </menuContribution>
- <menuContribution
- allPopups="false"
- locationURI="popup:org.genivi.commonapi.core.ui.popup.menu">
- <command
- commandId="org.genivi.commonapi.core.ui.handler.GenerationCommand"
- label="Generate C++ Code"
- style="push">
- <visibleWhen
- checkEnabled="false">
- <reference
- definitionId="org.genivi.commonapi.core.ui.FrancaIDL.Resources.selected">
- </reference>
- </visibleWhen>
- </command>
- </menuContribution>
- </extension>
- <extension
- point="org.eclipse.core.expressions.definitions">
- <definition
- id="org.genivi.commonapi.core.ui.FrancaIDL.Resources.selected">
- <or>
- <reference
- definitionId="org.franca.core.dsl.FrancaIDL.Editor.opened">
- </reference>
- <iterate>
- <adapt
- type="org.eclipse.core.resources.IResource">
- <test
- property="org.eclipse.core.resources.name"
- value="*.fidl">
- </test>
- </adapt>
- </iterate>
- </or>
- </definition>
- </extension>
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<plugin> + <extension + point="org.eclipse.ui.handlers"> + <handler + class="org.genivi.commonapi.core.ui.CommandExecutableExtensionFactory:org.genivi.commonapi.core.ui.handler.GenerationCommand" + commandId="org.genivi.commonapi.core.ui.handler.GenerationCommand"> + </handler> + </extension> + <extension + point="org.eclipse.ui.commands"> + <command + id="org.genivi.commonapi.core.ui.handler.GenerationCommand" + name="Generate C++ Code"> + </command> + </extension> + <extension + point="org.eclipse.ui.menus"> + <menuContribution + allPopups="false" + locationURI="popup:org.eclipse.ui.popup.any?after=additions"> + <menu + id="org.genivi.commonapi.core.ui.popup.menu" + label="Common API"> + </menu> + </menuContribution> + <menuContribution + allPopups="false" + locationURI="popup:org.genivi.commonapi.core.ui.popup.menu"> + <command + commandId="org.genivi.commonapi.core.ui.handler.GenerationCommand" + label="Generate C++ Code" + style="push"> + <visibleWhen + checkEnabled="false"> + <reference + definitionId="org.genivi.commonapi.core.ui.FrancaIDL.Resources.selected"> + </reference> + </visibleWhen> + </command> + </menuContribution> + </extension> + <extension + point="org.eclipse.core.expressions.definitions"> + <definition + id="org.genivi.commonapi.core.ui.FrancaIDL.Resources.selected"> + <or> + <reference + definitionId="org.franca.core.dsl.FrancaIDL.Editor.opened"> + </reference> + <iterate> + <adapt + type="org.eclipse.core.resources.IResource"> + <test + property="org.eclipse.core.resources.name" + value="*.fidl"> + </test> + </adapt> + </iterate> + </or> + </definition> + </extension> +</plugin> diff --git a/org.genivi.commonapi.core.ui/src/org/genivi/commonapi/core/ui/CommandExecutableExtensionFactory.java b/org.genivi.commonapi.core.ui/src/org/genivi/commonapi/core/ui/CommandExecutableExtensionFactory.java index 2d34251..a33f72f 100644 --- a/org.genivi.commonapi.core.ui/src/org/genivi/commonapi/core/ui/CommandExecutableExtensionFactory.java +++ b/org.genivi.commonapi.core.ui/src/org/genivi/commonapi/core/ui/CommandExecutableExtensionFactory.java @@ -1,46 +1,46 @@ -/* Copyright (C) 2013 BMW Group
- * Author: Manfred Bathelt (manfred.bathelt@bmw.de)
- * Author: Juergen Gehring (juergen.gehring@bmw.de)
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-package org.genivi.commonapi.core.ui;
-
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.xtext.generator.IGenerator;
-import org.eclipse.xtext.ui.ecore.ExecutableExtensionFactory;
-import org.genivi.commonapi.core.generator.FrancaGenerator;
-import org.osgi.framework.Bundle;
-
-import com.google.inject.Binder;
-import com.google.inject.Injector;
-import com.google.inject.Module;
-
-public class CommandExecutableExtensionFactory extends ExecutableExtensionFactory {
- private Injector injector;
-
- @Override
- protected Bundle getBundle() {
- return CommonApiUiPlugin.getInstance().getBundle();
- }
-
- @Override
- protected Injector getInjector() {
- if (injector == null)
- injector = super.getInjector().createChildInjector(
- new Module() {
- @Override
- public void configure(final Binder binder) {
- binder.bind(ResourceSet.class).to(ResourceSetImpl.class);
- bindGeneratorClass(binder);
- }
- });
-
- return injector;
- }
-
- protected void bindGeneratorClass(final Binder binder) {
- binder.bind(IGenerator.class).to(FrancaGenerator.class);
- }
-}
+/* Copyright (C) 2013 BMW Group + * Author: Manfred Bathelt (manfred.bathelt@bmw.de) + * Author: Juergen Gehring (juergen.gehring@bmw.de) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package org.genivi.commonapi.core.ui; + +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.xtext.generator.IGenerator; +import org.eclipse.xtext.ui.ecore.ExecutableExtensionFactory; +import org.genivi.commonapi.core.generator.FrancaGenerator; +import org.osgi.framework.Bundle; + +import com.google.inject.Binder; +import com.google.inject.Injector; +import com.google.inject.Module; + +public class CommandExecutableExtensionFactory extends ExecutableExtensionFactory { + private Injector injector; + + @Override + protected Bundle getBundle() { + return CommonApiUiPlugin.getInstance().getBundle(); + } + + @Override + protected Injector getInjector() { + if (injector == null) + injector = super.getInjector().createChildInjector( + new Module() { + @Override + public void configure(final Binder binder) { + binder.bind(ResourceSet.class).to(ResourceSetImpl.class); + bindGeneratorClass(binder); + } + }); + + return injector; + } + + protected void bindGeneratorClass(final Binder binder) { + binder.bind(IGenerator.class).to(FrancaGenerator.class); + } +} diff --git a/org.genivi.commonapi.core.ui/src/org/genivi/commonapi/core/ui/CommonApiUiPlugin.java b/org.genivi.commonapi.core.ui/src/org/genivi/commonapi/core/ui/CommonApiUiPlugin.java index ea6b506..13481b2 100644 --- a/org.genivi.commonapi.core.ui/src/org/genivi/commonapi/core/ui/CommonApiUiPlugin.java +++ b/org.genivi.commonapi.core.ui/src/org/genivi/commonapi/core/ui/CommonApiUiPlugin.java @@ -1,35 +1,35 @@ -/* Copyright (C) 2013 BMW Group
- * Author: Manfred Bathelt (manfred.bathelt@bmw.de)
- * Author: Juergen Gehring (juergen.gehring@bmw.de)
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-package org.genivi.commonapi.core.ui;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-public class CommonApiUiPlugin extends AbstractUIPlugin {
- public static final String PLUGIN_ID = "org.genivi.commonapi.core.ui"; //$NON-NLS-1$
-
- private static CommonApiUiPlugin INSTANCE;
-
- public CommonApiUiPlugin() {
- }
-
- @Override
- public void start(final BundleContext context) throws Exception {
- super.start(context);
- INSTANCE = this;
- }
-
- @Override
- public void stop(final BundleContext context) throws Exception {
- INSTANCE = null;
- super.stop(context);
- }
-
- public static CommonApiUiPlugin getInstance() {
- return INSTANCE;
- }
-}
+/* Copyright (C) 2013 BMW Group + * Author: Manfred Bathelt (manfred.bathelt@bmw.de) + * Author: Juergen Gehring (juergen.gehring@bmw.de) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package org.genivi.commonapi.core.ui; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +public class CommonApiUiPlugin extends AbstractUIPlugin { + public static final String PLUGIN_ID = "org.genivi.commonapi.core.ui"; //$NON-NLS-1$ + + private static CommonApiUiPlugin INSTANCE; + + public CommonApiUiPlugin() { + } + + @Override + public void start(final BundleContext context) throws Exception { + super.start(context); + INSTANCE = this; + } + + @Override + public void stop(final BundleContext context) throws Exception { + INSTANCE = null; + super.stop(context); + } + + public static CommonApiUiPlugin getInstance() { + return INSTANCE; + } +} diff --git a/org.genivi.commonapi.core.ui/src/org/genivi/commonapi/core/ui/handler/GenerationCommand.java b/org.genivi.commonapi.core.ui/src/org/genivi/commonapi/core/ui/handler/GenerationCommand.java index e2a6d1a..d6cad91 100644 --- a/org.genivi.commonapi.core.ui/src/org/genivi/commonapi/core/ui/handler/GenerationCommand.java +++ b/org.genivi.commonapi.core.ui/src/org/genivi/commonapi/core/ui/handler/GenerationCommand.java @@ -1,105 +1,105 @@ -/* Copyright (C) 2013 BMW Group
- * Author: Manfred Bathelt (manfred.bathelt@bmw.de)
- * Author: Juergen Gehring (juergen.gehring@bmw.de)
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-package org.genivi.commonapi.core.ui.handler;
-
-import java.util.Iterator;
-
-import javax.inject.Inject;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.handlers.HandlerUtil;
-import org.eclipse.xtext.builder.EclipseResourceFileSystemAccess2;
-import org.eclipse.xtext.generator.IFileSystemAccess;
-import org.eclipse.xtext.generator.IGenerator;
-import org.eclipse.xtext.resource.IResourceDescriptions;
-import org.eclipse.xtext.resource.XtextResource;
-import org.eclipse.xtext.ui.editor.XtextEditor;
-import org.eclipse.xtext.ui.resource.IResourceSetProvider;
-import org.eclipse.xtext.util.concurrent.IUnitOfWork;
-
-import com.google.inject.Provider;
-
-public class GenerationCommand extends AbstractHandler {
- public static final String OUTPUT_DIRECTORY = "src-gen";
-
- @Inject private Provider<EclipseResourceFileSystemAccess2> fileAccessProvider;
- @Inject private IResourceDescriptions resourceDescriptions;
- @Inject private IResourceSetProvider resourceSetProvider;
- @Inject private IGenerator francaGenerator;
-
- @Override
- public Object execute(final ExecutionEvent event) throws ExecutionException {
- final ISelection selection = HandlerUtil.getCurrentSelection(event);
- if (selection instanceof IStructuredSelection) {
- if (!selection.isEmpty())
- executeGeneratorForSelection((IStructuredSelection) selection);
- } else {
- final IEditorPart activeEditor = HandlerUtil.getActiveEditor(event);
- if (activeEditor instanceof XtextEditor)
- executeGeneratorForXtextEditor((XtextEditor) activeEditor);
- else
- throw new ExecutionException("Cannot handle ExecutionEvent: " + event);
- }
-
- return null;
- }
-
- private void executeGeneratorForSelection(final IStructuredSelection structuredSelection) {
- final EclipseResourceFileSystemAccess2 fileSystemAccess = createFileSystemAccess();
-
- for (Iterator<?> iterator = structuredSelection.iterator(); iterator.hasNext();) {
- final Object selectiobObject = iterator.next();
- if (selectiobObject instanceof IFile) {
- final IFile file = (IFile) selectiobObject;
- final URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
- final ResourceSet rs = resourceSetProvider.get(file.getProject());
- final Resource r = rs.getResource(uri, true);
-
- fileSystemAccess.setProject(file.getProject());
- francaGenerator.doGenerate(r, fileSystemAccess);
- }
- }
- }
-
- private void executeGeneratorForXtextEditor(final XtextEditor xtextEditor) {
- final Object fileObject = xtextEditor.getEditorInput().getAdapter(IFile.class);
- if (fileObject instanceof IFile) {
- final EclipseResourceFileSystemAccess2 fileSystemAccess = createFileSystemAccess();
- fileSystemAccess.setProject(((IResource) fileObject).getProject());
-
- xtextEditor.getDocument().readOnly(
- new IUnitOfWork<Boolean, XtextResource>() {
- @Override
- public Boolean exec(XtextResource xtextResource) throws Exception {
- francaGenerator.doGenerate(xtextResource, fileSystemAccess);
- return Boolean.TRUE;
- }
- });
- }
- }
-
- private EclipseResourceFileSystemAccess2 createFileSystemAccess() {
- final EclipseResourceFileSystemAccess2 fsa = fileAccessProvider.get();
-
- fsa.setOutputPath(OUTPUT_DIRECTORY);
- fsa.getOutputConfigurations().get(IFileSystemAccess.DEFAULT_OUTPUT).setCreateOutputDirectory(true);
- fsa.setMonitor(new NullProgressMonitor());
-
- return fsa;
- }
-}
+/* Copyright (C) 2013 BMW Group + * Author: Manfred Bathelt (manfred.bathelt@bmw.de) + * Author: Juergen Gehring (juergen.gehring@bmw.de) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package org.genivi.commonapi.core.ui.handler; + +import java.util.Iterator; + +import javax.inject.Inject; + +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.handlers.HandlerUtil; +import org.eclipse.xtext.builder.EclipseResourceFileSystemAccess2; +import org.eclipse.xtext.generator.IFileSystemAccess; +import org.eclipse.xtext.generator.IGenerator; +import org.eclipse.xtext.resource.IResourceDescriptions; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.ui.editor.XtextEditor; +import org.eclipse.xtext.ui.resource.IResourceSetProvider; +import org.eclipse.xtext.util.concurrent.IUnitOfWork; + +import com.google.inject.Provider; + +public class GenerationCommand extends AbstractHandler { + public static final String OUTPUT_DIRECTORY = "src-gen"; + + @Inject private Provider<EclipseResourceFileSystemAccess2> fileAccessProvider; + @Inject private IResourceDescriptions resourceDescriptions; + @Inject private IResourceSetProvider resourceSetProvider; + @Inject private IGenerator francaGenerator; + + @Override + public Object execute(final ExecutionEvent event) throws ExecutionException { + final ISelection selection = HandlerUtil.getCurrentSelection(event); + if (selection instanceof IStructuredSelection) { + if (!selection.isEmpty()) + executeGeneratorForSelection((IStructuredSelection) selection); + } else { + final IEditorPart activeEditor = HandlerUtil.getActiveEditor(event); + if (activeEditor instanceof XtextEditor) + executeGeneratorForXtextEditor((XtextEditor) activeEditor); + else + throw new ExecutionException("Cannot handle ExecutionEvent: " + event); + } + + return null; + } + + private void executeGeneratorForSelection(final IStructuredSelection structuredSelection) { + final EclipseResourceFileSystemAccess2 fileSystemAccess = createFileSystemAccess(); + + for (Iterator<?> iterator = structuredSelection.iterator(); iterator.hasNext();) { + final Object selectiobObject = iterator.next(); + if (selectiobObject instanceof IFile) { + final IFile file = (IFile) selectiobObject; + final URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true); + final ResourceSet rs = resourceSetProvider.get(file.getProject()); + final Resource r = rs.getResource(uri, true); + + fileSystemAccess.setProject(file.getProject()); + francaGenerator.doGenerate(r, fileSystemAccess); + } + } + } + + private void executeGeneratorForXtextEditor(final XtextEditor xtextEditor) { + final Object fileObject = xtextEditor.getEditorInput().getAdapter(IFile.class); + if (fileObject instanceof IFile) { + final EclipseResourceFileSystemAccess2 fileSystemAccess = createFileSystemAccess(); + fileSystemAccess.setProject(((IResource) fileObject).getProject()); + + xtextEditor.getDocument().readOnly( + new IUnitOfWork<Boolean, XtextResource>() { + @Override + public Boolean exec(XtextResource xtextResource) throws Exception { + francaGenerator.doGenerate(xtextResource, fileSystemAccess); + return Boolean.TRUE; + } + }); + } + } + + private EclipseResourceFileSystemAccess2 createFileSystemAccess() { + final EclipseResourceFileSystemAccess2 fsa = fileAccessProvider.get(); + + fsa.setOutputPath(OUTPUT_DIRECTORY); + fsa.getOutputConfigurations().get(IFileSystemAccess.DEFAULT_OUTPUT).setCreateOutputDirectory(true); + fsa.setMonitor(new NullProgressMonitor()); + + return fsa; + } +} diff --git a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FInterfaceGenerator.xtend b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FInterfaceGenerator.xtend index 4c94b7a..a76015d 100644 --- a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FInterfaceGenerator.xtend +++ b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FInterfaceGenerator.xtend @@ -10,11 +10,11 @@ import javax.inject.Inject import org.eclipse.xtext.generator.IFileSystemAccess import org.franca.core.franca.FInterface -class FInterfaceGenerator {
+class FInterfaceGenerator { @Inject private extension FTypeGenerator @Inject private extension FTypeCommonAreaGenerator @Inject private extension FrancaGeneratorExtensions -
+ def generate(FInterface fInterface, IFileSystemAccess fileSystemAccess) { fileSystemAccess.generateFile(fInterface.headerPath, fInterface.generateHeader) @@ -91,5 +91,5 @@ class FInterfaceGenerator { def private hasSourceFile(FInterface fInterface) { val hasTypeWithImplementation = fInterface.types.exists[hasImplementation] return hasTypeWithImplementation - }
+ } }
\ No newline at end of file diff --git a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FInterfaceProxyGenerator.xtend b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FInterfaceProxyGenerator.xtend index a506c0e..db9d293 100644 --- a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FInterfaceProxyGenerator.xtend +++ b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FInterfaceProxyGenerator.xtend @@ -16,10 +16,10 @@ import org.franca.core.franca.FMethod import static com.google.common.base.Preconditions.* -class FInterfaceProxyGenerator {
+class FInterfaceProxyGenerator { @Inject private extension FTypeGenerator @Inject private extension FrancaGeneratorExtensions -
+ def generateProxy(FInterface fInterface, IFileSystemAccess fileSystemAccess) { fileSystemAccess.generateFile(fInterface.proxyBaseHeaderPath, fInterface.generateProxyBaseHeader) fileSystemAccess.generateFile(fInterface.proxyHeaderPath, fInterface.generateProxyHeader) diff --git a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FInterfaceStubGenerator.xtend b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FInterfaceStubGenerator.xtend index 9eaff51..778ee7d 100644 --- a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FInterfaceStubGenerator.xtend +++ b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FInterfaceStubGenerator.xtend @@ -11,10 +11,10 @@ import org.eclipse.xtext.generator.IFileSystemAccess import org.franca.core.franca.FInterface import org.franca.core.franca.FAttribute -class FInterfaceStubGenerator {
+class FInterfaceStubGenerator { @Inject private extension FTypeGenerator @Inject private extension FrancaGeneratorExtensions -
+ def generateStub(FInterface fInterface, IFileSystemAccess fileSystemAccess) { fileSystemAccess.generateFile(fInterface.stubHeaderPath, fInterface.generateStubHeader) fileSystemAccess.generateFile(fInterface.stubDefaultHeaderPath, fInterface.generateStubDefaultHeader) diff --git a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeCollectionGenerator.xtend b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeCollectionGenerator.xtend index 62813ae..41c881a 100644 --- a/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeCollectionGenerator.xtend +++ b/org.genivi.commonapi.core/src/org/genivi/commonapi/core/generator/FTypeCollectionGenerator.xtend @@ -10,11 +10,11 @@ import javax.inject.Inject import org.eclipse.xtext.generator.IFileSystemAccess import org.franca.core.franca.FTypeCollection -class FTypeCollectionGenerator {
+class FTypeCollectionGenerator { @Inject private extension FTypeGenerator @Inject private extension FTypeCommonAreaGenerator @Inject private extension FrancaGeneratorExtensions -
+ def generate(FTypeCollection fTypeCollection, IFileSystemAccess fileSystemAccess) { fileSystemAccess.generateFile(fTypeCollection.headerPath, fTypeCollection.generateHeader) |