<?xml version="1.0"?>
<rdf:RDF
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:foaf="http://xmlns.com/foaf/0.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns="http://purl.org/rss/1.0/"
>
<channel rdf:about="http://www.openarchitectureware.org/planet">
	<title>planet openArchitectureWare</title>
	<link>http://www.openarchitectureware.org/planet</link>
	<description>planet openArchitectureWare - http://www.openarchitectureware.org/planet</description>

	<items>
		<rdf:Seq>
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-24248206.post-1558124365604516030" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-19398645.post-547849828568920240" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-1495223311988358528.post-6486301519248686529" />
		</rdf:Seq>
	</items>
</channel>

<item rdf:about="tag:blogger.com,1999:blog-24248206.post-1558124365604516030">
	<title>Sven Efftinge: openArchitectureWare new release and constitution</title>
	<link>http://blog.efftinge.de/2008/12/openarchitectureware-new-release-and.html</link>
	<content:encoded>&lt;a href=&quot;http://4.bp.blogspot.com/_Ii_da0jTxAY/STzcNlxD9kI/AAAAAAAAACE/WxNLmF4w37Q/s1600-h/Logo_oaw_rgb.png&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_Ii_da0jTxAY/STzcNlxD9kI/AAAAAAAAACE/WxNLmF4w37Q/s400/Logo_oaw_rgb.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5277334989405681218&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;As Markus &lt;a href=&quot;http://www.openarchitectureware.org/article.php/oaw431_release_schedule&quot;&gt;posted earlier&lt;/a&gt; we're about to release a minor upgrade to the current version of &lt;a href=&quot;http://www.openarchitectureware.org/&quot;&gt;oAW&lt;/a&gt;.&lt;br /&gt;The ramp down plan, links to the downloads as well as what changes it includes can be found &lt;a href=&quot;http://www.openarchitectureware.org/article.php/oaw431_release_schedule&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We do heavy testing these days, but it would still be very helpful if you could find the time to test the new release with your existing oAW projects. :-)&lt;br /&gt;&lt;br /&gt;In addition to the current release there are other changes you might be interested in.&lt;br /&gt;We (the oAW team) have had a very productive meeting at &lt;a href=&quot;http://www.eclipsecon.org/summiteurope2008/&quot;&gt;ESE&lt;/a&gt; about the future organization of openArchitectureWare. oAW has been an Eclipse project for several years now, but as it has always been a complete solution for MDSD it never really fitted into the separated structure of the Eclipse Modeling Project (EMP).&lt;br /&gt;As a result, we put our key technologies &lt;a href=&quot;http://www.eclipse.org/modeling/m2t/?project=xpand&quot;&gt;Xpand&lt;/a&gt;, &lt;a href=&quot;http://www.xtext.org/&quot;&gt;Xtext&lt;/a&gt; and the &lt;a href=&quot;http://www.eclipse.org/modeling/emft/?project=mwe&quot;&gt;workflow engine&lt;/a&gt; into separate top level projects under EMP. We did so because Eclipse is a well organized home for high quality open-source development and we want to leverage it.&lt;br /&gt;Developing under Eclipse means development under the &lt;a href=&quot;http://www.eclipse.org/projects/dev_process/development_process.php&quot;&gt;Eclipse Development Process&lt;/a&gt;. &lt;blockquote&gt;This Process assists new project startup and ensures that all Eclipse projects are run in an open, transparent and meritocratic manner.&lt;/blockquote&gt;We also wanted to make sure that our technology lives under an independent not-for-profit corporation (such as the Eclipse Foundation), &lt;blockquote&gt;which ensures that no single entity is able to control the strategy, policies or operations of the Eclipse community.&lt;/blockquote&gt;Okay, but what about oAW? oAW will stay being a one stop shop for MDSD technologies and a home for it's community, but we don't want it to be part of Eclipse/GMT anymore, as ...&lt;br /&gt;&lt;blockquote&gt;GMT is the official research incubator project of the top-level Eclipse Modeling Project.&lt;/blockquote&gt;oAW has been used in commercial projects for many years now and is everything but a research incubator project.&lt;br /&gt;&lt;br /&gt;So basically for our users everything will stay as is&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the code will be developed at Eclipse (IP approved and independent)&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;the &lt;a href=&quot;http://www.openarchitectureware.org/&quot;&gt;openarchitectureware.org&lt;/a&gt; page will remain (and be enhanced)&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;you will find polished open-source MDSD products and a &lt;a href=&quot;http://www.openarchitectureware.org/forum/&quot;&gt;friendly and helpful community&lt;/a&gt; there.&lt;/li&gt;&lt;/ul&gt;We've set up a formal paper describing the constitution. It contains information about how one can become a member of the oAW team and how a company becomes a &quot;Supporter&quot; or a &quot;Certified Service Provider&quot;.&lt;br /&gt;&lt;span&gt;&lt;br /&gt;Read the whole &lt;a href=&quot;http://www.openarchitectureware.org/article.php/oaw_constituation&quot;&gt;constitution&lt;/a&gt;.&lt;/span&gt;&lt;span&gt; We want you to participate!&lt;/span&gt;</content:encoded>
	<dc:date>2008-12-08T09:39:34+00:00</dc:date>
	<dc:creator>Sven Efftinge</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-19398645.post-547849828568920240">
	<title>Markus Voelter: oAW 4.3.1 Release Plan</title>
	<link>http://voelterblog.blogspot.com/2008/12/oaw-431-release-plan.html</link>
	<content:encoded>FYI, the &lt;a href=&quot;http://www.openarchitectureware.org/article.php/oaw431_release_schedule&quot;&gt;oAW 4.3.1 Release Plan and Release Notes&lt;/a&gt; are available.</content:encoded>
	<dc:date>2008-12-08T09:00:17+00:00</dc:date>
	<dc:creator>Markus Voelter</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-1495223311988358528.post-6486301519248686529">
	<title>Jan Koehnlein: How to make an xtext language reference another by nsURI</title>
	<link>http://koehnlein.blogspot.com/2008/11/how-to-make-xtext-language-reference.html</link>
	<content:encoded>In principle, Xtext allows two languages to refer to each other by means of the &lt;span&gt;importMetamodel&lt;/span&gt; feature. If you specify the imported meta-model by means of a file URI, everything works out of the box. Unfortunately, file URIs are not suitable in many scenarios, so something less physical would be appropriate.&lt;br /&gt;&lt;br /&gt;Due to a certain mismatch between the way openArchitectureWare (and thereby all the language's Xtend and Check files) and EMF access files and handle &lt;span&gt;EPackage&lt;/span&gt; registration. The following describes the way to go in the version of Xtext that is shipped with oAW 4.3.1. Note that in TMF/Xtext we will provide easier support by means of classpath relative URIs.&lt;h3&gt;Example&lt;/h3&gt;We consider the following two DSLs &lt;span&gt;asl&lt;/span&gt; and &lt;span&gt;bsl&lt;/span&gt;, where &lt;span&gt;asl&lt;/span&gt; references &lt;span&gt;bsl&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;asl:&lt;pre&gt;importMetamodel &quot;http://www.example.org/my/bsl&quot; as mybsl;&lt;br /&gt;A:&lt;br /&gt; (imports+=Import)*&lt;br /&gt; (bs+=BRef)*;&lt;br /&gt;Import:&lt;br /&gt;&quot;import&quot; file=URI;&lt;br /&gt;BRef:&lt;br /&gt;&quot;a&quot; name=ID &quot;b&quot; b=[mybsl::B];&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;bsl:&lt;pre&gt;B:&lt;br /&gt;&quot;b&quot; name=ID;&lt;br /&gt;&lt;/pre&gt;To allow such cross-language reference, you have &lt;span&gt;bsl&lt;/span&gt; has to be installed in the workbench you use for editing &lt;span&gt;asl&lt;/span&gt;.&lt;br /&gt;&lt;h3&gt;Install an xtext language&lt;/h3&gt;This usually boils down to deploying the language plug-in into the Eclipse workbench, e.g. by exporting it as &lt;span&gt;deployable plug-ins and fragments&lt;/span&gt; into the &lt;span&gt;dropins&lt;/span&gt; folder of the Eclipse installation.&lt;br /&gt;&lt;br /&gt;There is one issue with the way xtext registers its meta-model. The &lt;span&gt;EPackage&lt;/span&gt; is added to the &lt;span&gt;EPackage.Registry&lt;/span&gt; programatically in the generated &lt;span&gt;MetaModelRegistration&lt;/span&gt; class, such that we can call it inside or outside a running Eclipse. If running inside Eclipse, the &lt;span&gt;MetaModelRegistration&lt;/span&gt; is called by the &lt;span&gt;Activator&lt;/span&gt; of the language plug-in. This can be too late, as other plug-ins might not use the language but the meta-model, and rely on it to be accessible from the &lt;span&gt;EPackage.Registry&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;We cannot use EMFs &lt;span&gt;dynamic_package&lt;/span&gt; extension point, as it requires the ecore file to be in a plug-in neutral folder. This is not the case in Xtext, as it stores the generated file in a source folder, which is no longer present once the plug-in is deployed.&lt;br /&gt;&lt;br /&gt;There are two ways to solve this problem&lt;br /&gt;1) Run the EMF generator to generate code from the ecore model. This will also register the generated &lt;span&gt;EPackage&lt;/span&gt; Java class to the&lt;span&gt; generated_package&lt;/span&gt; extension point of EMF.&lt;br /&gt;2) Register a proxy class to the &lt;span&gt;generated_package&lt;/span&gt; extension point, that implements &lt;span&gt;EPackage&lt;/span&gt; (empty methods) and returns &lt;span&gt;MetaModelRegistration.getEPackage()&lt;/span&gt; as its &lt;span&gt;eINSTANCE&lt;/span&gt;. To ensure that the model is really loaded, you should delete the registered proxy in the static initializer and set the right resource loader before registering the package.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;org.example.bsl.EPackageProxy&lt;/span&gt;:&lt;pre&gt;package org.example.bsl;&lt;br /&gt;...&lt;br /&gt;public class EPackageProxy implements EPackage {&lt;br /&gt;  static {&lt;br /&gt;    ResourceLoader cl = ResourceLoaderFactory.createResourceLoader();&lt;br /&gt;    try {&lt;br /&gt;      ResourceLoaderFactory&lt;br /&gt;        .setCurrentThreadResourceLoader(new ResourceLoaderImpl(&lt;br /&gt;           EPackageProxy.class.getClassLoader()));&lt;br /&gt;      EPackage.Registry.INSTANCE.remove(&quot;http://www.example.org/my/bsl&quot;);&lt;br /&gt;      MetaModelRegistration.register();&lt;br /&gt;    } finally {&lt;br /&gt;      ResourceLoaderFactory.setCurrentThreadResourceLoader(cl);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public static final EPackage eINSTANCE = MetaModelRegistration&lt;br /&gt;       .getEPackage();&lt;br /&gt;&lt;br /&gt;  public EClassifier getEClassifier(String name) {&lt;br /&gt;    throw new UnsupportedOperationException(&quot;Method not implemented&quot;);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  // remaining methods of EPackage&lt;br /&gt;  ...&lt;/pre&gt;plugin.xml:&lt;pre&gt;  &amp;lt;extension point=&quot;org.eclipse.emf.ecore.generated_package&quot;&amp;gt;&lt;br /&gt;     &amp;lt;package class=&quot;org.example.bsl.EPackageProxy&quot; uri=&quot;http://www.example.org/my/bsl&quot;&amp;gt;&lt;br /&gt;     &amp;lt;/package&amp;gt;&lt;br /&gt;  &amp;lt;/extension&amp;gt;&lt;/pre&gt;&lt;h3&gt;Referencing an installed xtext language by nsURI&lt;/h3&gt;The xtext generator starts a new plain Java VM, and therefore does not have access to EPackages registered via extension points. That's why you have to explicitly register the referenced metamodel of bsl in the generator workflow of asl. Into the bargain, we have to register bsl's resource factory. Write a class&lt;br /&gt;&lt;br /&gt;&lt;span&gt;RegisterBslHelper:&lt;/span&gt;&lt;pre&gt;package org.example.asl;&lt;br /&gt;...&lt;br /&gt;public class RegisterBslHelper {&lt;br /&gt;&lt;br /&gt;   public RegisterBslHelper() {&lt;br /&gt;     EPackage package1 = org.example.bsl.MetaModelRegistration.getEPackage();&lt;br /&gt;     package1.eResource().setURI(URI.createURI(package1.getNsURI()));&lt;br /&gt;     org.example.bsl.ResourceFactoryRegistration.register();&lt;br /&gt;   }&lt;br /&gt;}&lt;/pre&gt;and call it in the generator workflow &lt;span&gt;generator.oaw&lt;/span&gt;:&lt;pre&gt;&amp;lt;workflow&amp;gt;&lt;br /&gt;  &amp;lt;property file=&quot;'generate.properties'/&quot;&amp;gt;&lt;br /&gt;  &amp;lt;bean class=&quot;org.example.asl.RegisterBslHelper&quot;&amp;gt;&lt;br /&gt;  &amp;lt;component file=&quot;'org/openarchitectureware/xtext/Generator.oaw'&quot; inheritall=&quot;'true'/&quot;&amp;gt;&lt;br /&gt;  &amp;lt;/component&amp;gt;&lt;br /&gt;&amp;lt;/workflow&amp;gt;&lt;/pre&gt;Also make sure, that the &lt;span&gt;my.asl&lt;/span&gt; plug-in has a dependency on &lt;span&gt;my.bsl&lt;/span&gt; and reexports that.</content:encoded>
	<dc:date>2008-12-05T13:57:21+00:00</dc:date>
	<dc:creator>Jan Köhnlein</dc:creator>
</item>

</rdf:RDF>
