CDO extensions
06/29/2011 - 06:01

I recently wrote an extension for the CDO server. This is simpler that one might expect. There is an extension point provided by CDO. This extension point is called org.eclipse.emf.cdo.server.appExtensions. subscribe to this in your plugin like this:

 <extension
         point="org.eclipse.emf.cdo.server.appExtensions">
      <appExtension
            class="com.example.cdo.server.extension.ExampleAppExtension">
      </appExtension>
   </extension>

This referred class looks like this

public class ExampleAppExtension implements IAppExtension {

    @Override
    public void start(File configFile) throws Exception {
        IRepository repository = CDOServerUtil.getRepository(IPluginContainer.INSTANCE, "example");
        ...

All repositories defined in cdo-server.xml are already available when the start() method is called. So you have access to your repository to do anything you like.


CDO
12/12/2010 - 17:04

This is the first time I am writing on on CDO so I will introduce the basic concepts and continue to blog on this subject for some time. CDO stands for Connected Data Objects and is an implementation of EMF models that allows for multi user access to a model repository. The CDO provides a server implementation and a client API to interact with the server. The server provides one or more repositories. the client can open a view or a transaction on this repository.A view provides readonly access to a repository and a transaction provides read/write access.

A client creates/opens a resource via an transaction. This resource handles all interaction with the CDO server. From here the client can just create EObjects as normal. Calling save() on the resource will cause the changes in the resource to be commited.

A lot of detailed information is available on http://wiki.eclipse.org/CDO.

more blogs on CDO will come.


org.eclipse.emf.ecore.protocol_parser
11/23/2010 - 09:35

EMF supports an extension point org.eclipse.emf.ecore.protocol_parser. This extension point can be used to implement your own protocol used in the URI to resolve EMF resources. So, you have your own persistency and want use that in EMF. This is possible. Say, you have an application called foo. You can extend on the org.eclipse.emf.ecore.protocol_parser extension point

<extension point = "org.eclipse.emf.ecore.protocol_parser">
<protocolName="foo"
class="org.sample.FooResourceFactoryImpl"/>
</extension>

Now, you can refer in your code to your resource as foo://bar or foo://bar.xyz. In your resource factory you can map this URI on anything you like. Below is an resource factory implementaion fragment:

public class FOOResourceFactory implements Resource.Factory {
    @Override
    public Resource createResource(URI uri) {
          //TODO return an implementation of a EMF Resource.
    }
}


org.eclipse.emf.ecore.extension_parser
11/23/2010 - 10:51

EMF also has an extension point calles org.eclipse.emf.ecore.extension_parser. This extension point allows you to hook in your resource factory based on an extension.

   <extension point = "org.eclipse.emf.ecore.extension_parser">
       <parser type="foo"
       class="org.sample.foo.ResourceFactoryImpl"/>
   </extension>

So referring to a resource using the URI file://bar.foo wil invoke your resource factory. see the article on emf protocol_parser extension point.


Eclipse Helios is released
07/13/2010 - 07:42

I was away for a few weeks, so a bit late. But the Eclipse Foundation has released a new version of Eclipse called Helios. This is a simultaneous release of 39 projects. I hope I can find the time to play with it.

The Eclipse Foundation starts with a new project called Indigo. This project is scheduled for next year (June 22, 2011).


Mod4J
03/06/2010 - 16:12

Mod4J stands for Modeling for Java. It is a project to create an development environment for administrative enterprise applications. This enviroment is based on DSLs. That is for all aspects of such an application a DSL developed. There is a DSL for data modeling, there is a DSL for the specification of the services. The project is not finished, the DSL for the specification of a user interface is still in development.

Take a look at http://www.mod4j.org/


Rascal
03/04/2010 - 04:26

An new interesting language is Rascal. Rascal is a meta programming language intended for source code analysis and transformation. There is an basic IDE integration with Eclipse. Take a look at http://www.rascal-mpl.org/.


Eclipse E4
02/08/2010 - 17:09

One big project for the next major eclipse version is the e4 project. e4 is positioned as a cluster of related technologies for building extensible component-based applications. the scope of e4 is indeed huge. One interesting part is the development of a user interface model. This model will drive the UI so that all components can one API to query en modify the UI.

For more en e4 see http://wiki.eclipse.org/E4 en for the modeled ui specifically look see http://wiki.eclipse.org/E4/UI/Modeled_UI.


handling inter-DSL coordination
02/03/2010 - 05:06

Below a link to an article on inter-DSL coordination.

https://gforge.inria.fr/plugins/scmsvn/viewcvs.php/*checkout*/Publicatio...


oopsla 2009 session on DSLs in IDEs
02/01/2010 - 03:28

One of the problems with creating a DSL is how to make an enviroment where this DSLs can be used effectively. Making an parser/compiler is only step one. We are all used to develop using IDEs. So how can we easily create an IDE for a DSL? The links below are to articles on this subject.

    Talk given at the OOPSLA 2009

http://www.slideshare.net/lennartkats/providing-rapid-feedback-in-genera...
This talk is on error handling while editing DSL specifications.

    Domain-Specific Languages for Composable Editor Plugins

http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2009-00...
This paper is from the Delft university. On building DSL editors for eclipse using IMP.