ekkes-corner: eclipse | osgi | mdsd | erp | mobile

July 10, 2009

[galileo] IDE + Target Platform “on the bleeding edge”

Filed under: EasyBeans,Eclipse,Equinox,Galileo,Ganymede,Helios,openArchitectureWare,P2,PDE — ekkescorner @ 8:25 am

Part 12 of my Galileo Reviews around Target Platforms. An Overview of this blog series can be found here.

As many of you already know, I’m developing OSGI Enterprise Applications, so much of my work uses Target Platforms heavyly. My projects are also model-driven using openArchitectureWare (oAW). My work is based on Open Source where possible – not only Eclipse Projects, also 3rdParty like Easybeans.

I like it to test my projects against newest I-Builds, N-Builds etc. for both: my IDE and my Target Platforms.

Before Galileo came out it was a nightmare to manage this all. My main job is to get progress with my projects (== satisfsy my customers) and not to manage updates – so in the past I waited until M6 or M7 EPP packages are ready before doing my daily work with next Eclipse release.

Galileo will change this for me:  all the progress happened in Galileo and the much more easy-to-manage target platforms I’ll start using Helios (Eclipse 3.6) much earlier (from M1 or so).

If you have read all parts of this blog series around Target Platforms you have seen what’s now possible and how easy it is to change / undo configurations.

Experiences following Eclipse 3.5 Milestones: Updatesites

One of the most important things is to know where the P2 Updatesites are – you should do a first stop at http://wiki.eclipse.org/Eclipse_Project_Update_Sites:

eclipse updatesites as of 2009_07_09

And there’s also my collection of Update Sites (3.5, 3.6, 3rdParty) : http://ekkescorner.wordpress.com/eclipse/update-sites/

I jumped on the Eclipse 3.5 Galileo train as M7 came out. Then at first I tried out the Milestones, something later the I-Builds and then the N-Builds and all works well. If I ran into a problem, then I always could Revert the installation or Uninstall a fetaure and try the next Build. I described in my previous blogs how you can do this.

This was the IDE part – and it really was some fun to watch the Cocoa and OSX 64-bit progress and to watch the work from PDE UI team. Using the Milestones so early for daily work of cause was great to detect bugs – some of them I would never have seen if only doing some tests of new features. This means: I would have noticed them perhaps too late. So for me the extra work to write Bugzillas and to isolate problems ( and sometimes fight against responses from bug-owners like “at my site all works well;-) – it was worth the time.

Experiences following Eclipse 3.5 Milestones: Updating your Target Platform

The other part was the Runtime ( == Target Platform). Of course to my customers normaly I don’t send products containing N-Builds ;-) But its good to test early if the products run with newest builds. Galileo is the first Eclipse release enabling me to test my Target Platforms easy with “Target Platform Definitions” containing I-Builds and N-Builds.

Its now so easy to duplicate a definition, to switch between different definitions and run launch configs using different target platform definitions.

target platforms in galileo milestones

You want to use the newest I-Build ? the newest N-Build ? in your Target Platform ?

No Problem :-)

Beside your Target Platform Definitions using the last Release, you also should define Target Platforms using Software Sites of Milestones, I-Builds and N-Builds.

Then its simple to run the latest:

  1. Activate your Target Platform Definition (if its not already running)
  2. Hit Reload ! This is the important step: Now PDE (P2) goes to all Update – Software Sites your target definition contains and tries to get the newest Versions.
  3. Hit OK – Your Workspace will be compiled against the Target Platform.

Now you’re working against the newest builds. For some 3rdParty I have to use  Directories to place the Bundles. But its much less then in Ganymede, because in Galileo I can use much more Updatesites. (Mostly because Duplicates are no problem in Galileio).

HowTo follow early Helios (Eclipse 3.6)

If course it’s a very early time to follow Helios ;-) Think I have to wait some weeks and will blog about it later.

The next part of this blog series will be a summary and overview of this blog series around target platforms. Then this series is finished.

Before writing my Galileo reviews of PDE enhancements I’ll blog about the move of openArchitectureWare (oaw) under eclipse umbrella: I have to convert my huge MDSD projects.


December 18, 2008

EclipseCON 2009 Riena – EMF – oAW and more

Filed under: EasyBeans,Eclipse,openArchitectureWare,Riena — ekkescorner @ 1:13 pm
This time I’ll not only visit the eclipseCON – one of my submissions was accepted:
Dynamic Views for Business Applications (Riena + Eclipse Modeling: EMF, oAW)
I’m very happy about this. This was the second really good news last time – first was at german W-Jax where I became a member of the oAW Team.
redView (Riena – EMF – Dynamic View) is a sub-project of my model-driven OSGI Enterprise Application. redView  will be Open Source (EPL). Dynamic views from redView can be used stand-alone or in combination with openArchitectureWare (oAW).  … I’ll talk more about this next weeks 
This week was a heavy update – week: 
  • OSX 10.5.6
  • MagicDraw 16.0
  • openArchitectureWare 4.3.1RC3 und RC4
  • Riena M6
  • EasyBeans 1.1.0 Snapshots
Thanks to EasyBeans – Team (they added some properties for Declarative Services) I can continue my work to switch from ServiceTracker to Declarative Servics (DS) and there’ll be new blogs also coming soon.
stay tuned…
ekke
BTW: dont wonder if my submission 391 has no author. I tried to add my assistant as co-author, got an error and now the submissions has lost author and assistant. reported a bugzilla...

December 4, 2008

Properties in OSGI Declarative Services and ServiceTracker

Filed under: EasyBeans,Eclipse,Equinox,OSGI — ekkescorner @ 9:23 pm
As proposed in my last blog “Dependencies and Services in OSGI Enterprise Applications” it seems that a new blog series was started ;-)
ServiceTracker vs Declarative Services
There was only a short statement last time – now some tips follow how to use properties in ServiceTracker vs Declarative Services (DS).
A ServiceTracker from my OSGI Server project was opened with this Filter: 
final String filterPool = “(“
+Constants.OBJECTCLASS
+ “=”
+ JDBCPoolComponent.class.getName()
+”)”;
So the ServiceTracker will get Services of Type JDBCPoolComponent – we are interested into the attribut JndiName:
private void processDataSources(JDBCPoolComponent service) {
  if (service.getJndiName().equals(“foo_entity_data_source_hsql”)) {
  // do something
  }
}
How could this be done using Declarative Services (equinox.ds): 
We’re defining a reference to get exactly one specific service of type JDBCPoolComponent to know that a DataSource is ready. 
A first idea to declare this reference could be:

Launching the OSGI application, but the reference wasn’t resolved. 
How could we find the reason ? At first we should test if the Filter is correct and there’s no typo in the Interface.
Tip: Use of Equinox OSGI Console to test the Filter !
Try this command:
services (&(objectclass=org.ow2.easybeans.component.jdbcpool.JDBCPoolComponent)
(jndiName=foo_entity_data_source_hsql))
But no Service was found: No registered Services.
As next we try only to look for Services of Interface JDBCPoolComponent. Now our command looks like: 
services (objectclass=org.ow2.easybeans.component.jdbcpool.JDBCPoolComponent)
Some Services were listet – we also see the one we’re looking for:
{org.ow2.easybeans.component.jdbcpool.JDBCPoolComponent}={classname=org.ow2.easybeans.component.jdbcpo……, xmlconfig=
  Registered by bundle: …/easybeans-component-jdbcpool_1.1.0-M3-SNAPSHOT.jar/
Analyzing the printed text we found: jndiName=”foo_entity_data_source_hsql”
But there’s a small difference: its the Property xmlconfig containing the informations. Thats the solution:
services (&(objectclass=org.ow2.easybeans.component.jdbcpool.JDBCPoolComponent)
(xmlconfig=*foo_entity_data_source_hsql*))
The Service we want to reference will be found and we know how to declare the reference inside the Service Component:


Why can the ServiceTracker use  getJndiName(), but the target Filter can’t ?
getJndiName() is a Methode of JDBCPoolComponent, but JndiName isn’t registered as Service Property ! 
Target Filter cannot access methods of implementation – only Service Properties. 
You maybe run into this using 3rdParty bundles where you have to live with their services as-is. If you’re in luck its Open Source, you write a Bugzilla or JIRA and get it fixed in hours :-)
Remark:
You can take a look at my blog series about “OSGI Enterprise Applications” – the index is in the column right beside this blog.
There are also some submissions for EclipseCon 2009 – if you want to hear more about: comments are welcome ;-)

blog in german
Next Page »

Theme: Customized Rubric. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.