blob: 32cf8c0a3e4e6bbf8ff95a1c30f17e69d439f3bd [file] [log] [blame]
<br style="clear:both;height:1em;">
<div id="leftcol">
<div class="nav-logo">
<a href="index.php"><img src="logo.png" style="margin-left:10px; width:155px"/></a>
</div>
<ul id="leftnav">
<li class="partentry" >
Documentation
</li>
<li class="separator"><div class="separator">
<img src="triangle.gif" style="height:12px; margin-right: 2px; display:none" /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
<a href="01-Introduction.php">Introduction</a></div>
</li>
<li class="separator"><div class="separator">
<img src="triangle.gif" style="height:12px; margin-right: 2px; " /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
<a href="02-GettingStarted.php">Getting Started</a></div>
<ul style="display: none;" id="subToc_02-GettingStarted.html">
<li id="02-GettingStarted.html#Installation.html" ><a href="02-GettingStarted.php#Installation.php" >Installation</a></li>
<li id="02-GettingStarted.html#FirstExample.html" ><a href="02-GettingStarted.php#FirstExample.php" >First Example</a></li>
<li id="02-GettingStarted.html#RCPMail.html" ><a href="02-GettingStarted.php#RCPMail.php" >RCP Mail Example</a></li>
</ul>
</li>
<li class="separator"><div class="separator">
<img src="triangle.gif" style="height:12px; margin-right: 2px; " /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
<a href="03-Components.php">Components</a></div>
<ul style="display: none;" id="subToc_03-Components.html">
<li id="03-Components.html#FormComponent.html" ><a href="03-Components.php#FormComponent.php" >Form Component</a></li>
<li id="03-Components.html#TreeComponent.html" ><a href="03-Components.php#TreeComponent.php" >Tree Component</a></li>
<li id="03-Components.html#TreeFormComponent.html" ><a href="03-Components.php#TreeFormComponent.php" >Tree Form Component</a></li>
<li id="03-Components.html#TableComponent.html" ><a href="03-Components.php#TableComponent.php" >Table Component</a></li>
</ul>
</li>
<li class="separator"><div class="separator">
<img src="triangle.gif" style="height:12px; margin-right: 2px; " /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
<a href="04-Customization.php">Customization</a></div>
<ul style="display: none;" id="subToc_04-Customization.html">
<li id="04-Customization.html#ResourceManagers.html" ><a href="04-Customization.php#ResourceManagers.php" >Managing Resources</a></li>
<li id="04-Customization.html#Providers.html" ><a href="04-Customization.php#Providers.php" >Providers</a></li>
<li id="04-Customization.html#SelectionAndMenu.html" ><a href="04-Customization.php#SelectionAndMenu.php" >Selection And Menu</a></li>
<li id="04-Customization.html#Builders.html" ><a href="04-Customization.php#Builders.php" >Builders</a></li>
<li id="04-Customization.html#Factories.html" ><a href="04-Customization.php#Factories.php" >Factories</a></li>
<li id="04-Customization.html#Viewers.html" ><a href="04-Customization.php#Viewers.php" >Viewers</a></li>
</ul>
</li>
<li class="separator"><div class="separator">
<img src="triangle.gif" style="height:12px; margin-right: 2px; " /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
<a href="05-DSL.php">EMF Parsley DSL</a></div>
<ul style="display: none;" id="subToc_05-DSL.html">
<li id="05-DSL.html#xbase.html" ><a href="05-DSL.php#xbase.php" >Xbase features</a></li>
</ul>
</li>
<li class="separator"><div class="separator">
<img src="triangle.gif" style="height:12px; margin-right: 2px; display:none" /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
<a href="06-AdvancedComponents.php">Advanced Components</a></div>
</li>
<li class="separator"><div class="separator">
<img src="triangle.gif" style="height:12px; margin-right: 2px; " /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
<a href="07-Eclipse4.php">Eclipse 4</a></div>
<ul style="display: none;" id="subToc_07-Eclipse4.html">
<li id="07-Eclipse4.html#GetFirstExample.html" ><a href="07-Eclipse4.php#GetFirstExample.php" >First Example Setup</a></li>
<li id="07-Eclipse4.html#PrepareForEclipse4Application.html" ><a href="07-Eclipse4.php#PrepareForEclipse4Application.php" >Preparing for a pure Eclipse 4 Application</a></li>
<li id="07-Eclipse4.html#CreateEclipse4Application.html" ><a href="07-Eclipse4.php#CreateEclipse4Application.php" >Create an Eclipse 4 Application</a></li>
<li id="07-Eclipse4.html#Eclipse4ApplicationAndEMFParsley.html" ><a href="07-Eclipse4.php#Eclipse4ApplicationAndEMFParsley.php" >Using an EMF Parsley TreeComposite into an Eclipse 4 Part</a></li>
<li id="07-Eclipse4.html#Eclipse4Save.html" ><a href="07-Eclipse4.php#Eclipse4Save.php" >Adding the dirty state and Save command</a></li>
</ul>
</li>
<li class="partentry" >
Appendix
</li>
<li class="separator"><div class="separator">
<img src="triangle.gif" style="height:12px; margin-right: 2px; display:none" /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
<a href="GettingSources.php">Getting Sources</a></div>
</li>
<li class="separator"><div class="separator">
<img src="triangle.gif" style="height:12px; margin-right: 2px; display:none" /><img src="triangle-90.gif" style="display:none; margin-right: 2px" height="12px" />
<a href="Downloads.php">EMF Parsley - Downloads</a></div>
</li>
</ul>
</div>
<div id="midcolumn">
<a name="GettingSources" ></a>
<h1>Getting Sources</h1>
<p>
If you want to get the sources of EMF Parsley,
for instance, to contribute new features and patches, you can get them
via Git.
</p>
<p>
Note that you need two different workspaces (and two different target platforms)
if you want to materialize also the workspace for developing the <a href="http://eclipse.org/rap/" >RAP</a>
version of Emf Parsley (see below).
</p>
<p>
In both cases, you need a <a href="http://www.eclipse.org/Xtext/download.html" >"Full eclipse"</a>
from Xtext website or use the <a href="http://www.eclipse.org/downloads/" >eclipse DSL Package</a>
(we use Xtend for many source files, and we do not put the generated files
in the repository).
</p>
<p>
We use <a href="http://www.eclipse.org/buckminster/" >Buckminster</a> as the
building and materialization infrastructure.
We provide an <a href="http://git.eclipse.org/c/emf-parsley/org.eclipse.emf-parsley.git/plain/devtools/org.eclipse.emf.parsley.contributor/workspace.ant" >ant script</a> which installs and runs Buckminster.
This will automatically materialize the sources in the workspace and setup
the target platform, so that you will have everything that is necessary
to have a working workspace with EMF Parsley sources.
</p>
<p>
What this ant script will do in detail:
</p>
<p>
<ul>
<li>installs Buckminster headless if not found;
default path: <em>${user.home}/buckminster.parsley</em>.
It can be changed by passing a path for the variable
<em>buckminster.home</em>.</li>
<li>creates an eclipse workspace;
default: <em>${user.home}/workspaces/emf-parsley-sources</em>
or <em>${user.home}/workspaces/emf-parsley-rap-sources</em>
for target <em>materialize.workspace.rap</em>.
It can be changed by passing a path for the
variable <em>WORKSPACE</em></li>
<li>clones the Emf Parsley git repository;
default: <em>${user.home}/git/org.eclipse.emf-parsley</em>.
It can be changed by passing a full path for the
variable <em>git.clone.dest</em>. Note that the repository will
be cloned only if it is not found in the given path.</li>
<li>creates and sets a target platform</li>
<li>imports necessary projects in the created workspace</li>
<li>runs the MWE2 workflow for generating Xtext language infrastructure for the DSL
(in this phase, you should ignore possible Java compilation errors you see in the
console)</li>
<li>sets some important workspace settings</li>
</ul>
</p>
<p>
Especially the first time (for cloning and materializing the target platform)
the script might take several minutes. (Target platform materialization
might also fail due to network problems; in that case, try and run the
script again).
</p>
<p>
Run the ant script located <a href="http://git.eclipse.org/c/emf-parsley/org.eclipse.emf-parsley.git/plain/devtools/org.eclipse.emf.parsley.contributor/workspace.ant" >here</a>.
In unix you can use following command:
</p>
<p>
<div class="literallayout">
<div class="incode">
<p class="code">
wget&nbsp;-N&nbsp;http:<span class="comment">//git.eclipse.org/c/emf-parsley/org.eclipse.emf-parsley.git/plain/devtools/org.eclipse.emf.parsley.contributor/workspace.ant</span>
</p>
</div>
</div>
</p>
<p>
and then run the script:
</p>
<p>
<div class="literallayout">
<div class="incode">
<p class="code">
ant&nbsp;-f&nbsp;workspace.ant
</p>
</div>
</div>
</p>
<p>
If you want the workspace for RAP version of Emf Parsley, run the script as
follows:
</p>
<p>
<div class="literallayout">
<div class="incode">
<p class="code">
ant&nbsp;-f&nbsp;workspace.ant&nbsp;materialize.workspace.rap
</p>
</div>
</div>
</p>
<p>
You can pass custom path using the variables defined above; for instance
</p>
<p>
<div class="literallayout">
<div class="incode">
<p class="code">
ant&nbsp;-Dgit.clone.dest=/myrepos/emf-parsley&nbsp;-DWORKSPACE=/myworkspaces/parsley&nbsp;-f&nbsp;workspace.ant
</p>
</div>
</div>
</p>
<p>
After the script terminates successfully, you can open the materialized
workspace with Eclipse (an automatic build will also start for compiling
Xtend files). The workspace is already setup with the correct target platform.
</p>
<div id="disqus_thread"></div>
<script type="text/javascript" src="documentationRoot.js"></script>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'xtext'; // required: replace example with your forum shortname
// The following are highly recommended additional parameters. Remove the slashes in front to use.
var disqus_identifier = 'GettingSources';
var disqus_url = documentationRoot+'GettingSources.php';
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<br style="clear:both;height:1em;">