Recent Posts

RSS Feeds

EMF talk @ EclipseCon

Very very cool stuff. I've built a couple of models with it and I loved it. It was cool to see a call for us as a community do more though.

Here are my notes.

What is EMF?

emf allows you to do either code or modeling

 

Pragamitic unification of key technologies

1)    Java – model impl

2)    XML – model persistence

3)    UML & MOF – model definition

 

EMF has influenced and been influenced by OMG stuff

 

EMF History

MOF

1)    Efficient java implementation of a practical subset of the MOF API

2)    To avoid confusion the MOF-like core was called Ecore

 

What is MDD

1)    a model is – sql schema, uml, xml schemas etc

2)    Use the model to drive the rest of the process – development, architecture, support etc.

3)    Use patterns to transform models into pattern based code

 

Cool example…

Three ways to represent the stuff – java interfaces, uml diagram, xml schema.

Interesting statement that JDK 1.5 (metadata) will fix the lack of ‘getItems’ not specifying that the list that is returned has objects of type Item in it.

EMF can take any of the 3 forms and make a ‘canonical form’

Given one of the three representations you get

1)    full java impl

a.     model change notification

b.     persistence seralization of model data

c.     bi-directional reference handshaking (referntial integrity)

d.     proxy resolution and on demand-load

 

The canonical form is Ecore (really XMI) and from that all the other stuff can be generated (java interfaces, uml diagrams, xml schema).

 

The Ecore model fits on a page

 

Layers

1)    core runtime stuff EObject is the root of your modeled objects

2)    EObject is reflective

3)    Also the key to providing generic editing commands

a.     The EMF auto gens a simple plugin

4)    The .Edit stuff builds the editor that is platform independent (i.e. you could put a Swing UI on it easily)

5)    The next thing (.View I think) builds a simple plugin

Demo – starts with xsd and builds the app from it (the plugin)

Very cool mapping editor that I’ve not played with before

I want to write a book about this…

Generated code for the model, you see only the interfaces if that is all you want (it generates the implementation into another package).

You can modify the code that is generated and it won’t over write it.

Showed the edit project that made the ‘editable’ stuff on top of the model. The edit provides ItemProvider’s and an AdapterFactory for relationships and an EditPlugin thing.

Shows editor running as a plugin to eclipse… very cool. I wonder if they will support RCP plugins…

With the plugin you can edit the model

Rock’n

 

What can we do to use EMF?

Build models!

Visualize legacy code

A ton of other stuff that I could not type…

 

There is an RedBook on GEF

Permalink     No Comments

iPod the cool give away @ EclipseCon...

Two (maybe 3) vendors are giving away 20GB iPods here. I'm so wanting to win one, my 5GB is great but its just not as cool as a new 20GB one :-)

Permalink     No Comments

More EclipseCon Notes

I went to two other talks yesterday but had to leave in the middle of both. Why can't I just be at the conference... Ah well paying the bills is better than being hungry :-)

Plugin talk and the new OSGi talk was really good. The presenter (Nick Edgar) was great! He had a really funny set of questions to point out the way OSGi plugins know about their dependencies but don't have a nervous breakdown if they don't see them. It was full of great physco-bable very funny. Bottom line is that making the Eclipse runtime capable of doing dynamic loading and unloading of plugins is (relatively) easily. The hard thing is getting all the plugins to be aware of the dynamic nature. In other words the Foo plugin should not give up the ghost if it can't find the Bar plugin.

XP w/ Eclipse good talk but I was disappointed that I did not get to see Joshua Kerievsky. If you have not read the refactoring to patterns book you should. The part of the talk I got to see was all about JUnit integration which was really cool but I have the great fortune of already knowing most of what was covered. Cool Stuff;

  • You can run a test, a suite or even all the tests in a project, just select the project and use Run->Run As->JUnit Test
  • You can use QuickFix to drive your TDD process

I'll try to post more about this soon...

Permalink     No Comments