<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-668000943281094776</id><updated>2011-07-08T06:06:25.339-07:00</updated><category term='Easy Beans'/><category term='OSGI'/><category term='java'/><category term='Equinox'/><category term='Eclipse'/><category term='EasyBeans'/><title type='text'>Dissect Tech</title><subtitle type='html'>Clemens Gantert's blog on technology (EJB, J2EE, EasyBeans, Eclipse RAP, OSGI, Equinox...), his pet project, business application design and development.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dissecttech.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/668000943281094776/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dissecttech.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Clemens Gantert</name><uri>http://www.blogger.com/profile/08103965903978591638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-668000943281094776.post-9009847693372810187</id><published>2009-04-20T23:16:00.000-07:00</published><updated>2009-05-18T23:06:29.510-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EasyBeans'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Equinox'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='OSGI'/><category scheme='http://www.blogger.com/atom/ns#' term='Easy Beans'/><title type='text'>How to set up an eclipse target platform and a run configuration for EasyBeans</title><content type='html'>&lt;p&gt;This is the first of a series of planned posts on developing EasyBean bundles in an eclipse / equinox environment.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In essance most of what we are trying to accomplish is already explained in &lt;a href="http://ekkes-corner.blogspot.com/2008/06/easybeans-und-equinox.html"&gt;Ekke's excellent post&lt;/a&gt;. I just have some comments to add:&lt;br /&gt;&lt;br /&gt;1) Go for EasyBeans 1.1, even though it may not be GA (RC1 is out as of writing this), especially if you plan to use EasyBeans with some other framework (and who wouldn't?). The logging problem that Ekke describes in &lt;a href="http://ekkes-corner.blogspot.com/2008/06/catch-22-logging-with-osgi-frameworks.html"&gt;this post&lt;/a&gt;, seems not to be fixed in the 1.o release, at least I could not get Eclipse RAP and EasyBeans to run together (while Ekke was struggeling with Riena and EasyBeans). In fact, I use bundle org.apache.commons.logging in lieu of the EasyBeans bundle ow2-bundles-externals-commons-logging.&lt;br /&gt;&lt;br /&gt;2) Try to understand the EasyBeans startup phases in OSGI, which makes it easier to setup your run configurations in eclipse:&lt;br /&gt;a) First Phase: OSGI is started, some EasyBeans bundles are started, but most EasyBeans bundles are just in state RESOLVED, but not started.&lt;br /&gt;This is what the OSGI console provides after this phase:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;osgi&gt; ss&lt;br /&gt;&lt;br /&gt;Framework is launched.&lt;br /&gt;&lt;br /&gt;id State Bundle&lt;br /&gt;0 ACTIVE org.eclipse.osgi_3.4.0.v20080605-1900&lt;br /&gt;1 RESOLVED org.ow2.easybeans.examples.entitybean_1.1.0.M3&lt;br /&gt;2 RESOLVED org.ow2.easybeans.agent_1.1.0.M3&lt;br /&gt;3 RESOLVED org.ow2.easybeans.component.quartz_1.1.0.M3&lt;br /&gt;4 RESOLVED org.ow2.easybeans.component.joram_1.1.0.M3&lt;br /&gt;5 ACTIVE org.eclipse.osgi.services_3.1.200.v20071203&lt;br /&gt;6 RESOLVED org.ow2.easybeans.component.jmx_1.1.0.M3&lt;br /&gt;7 RESOLVED org.ow2.easybeans.component.jotm_1.1.0.M3&lt;br /&gt;8 RESOLVED org.ow2.easybeans.component.statistic_1.1.0.M3&lt;br /&gt;9 ACTIVE org.ow2.bundles.ow2-util-event-api_1.0.11&lt;br /&gt;10 ACTIVE org.eclipse.equinox.cm_1.0.0.v20080509-1800&lt;br /&gt;11 RESOLVED org.ow2.easybeans.component.jdbcpool_1.1.0.M3&lt;br /&gt;12 RESOLVED org.ow2.easybeans.component.event_1.1.0.M3&lt;br /&gt;13 RESOLVED org.ow2.easybeans.core_1.1.0.M3&lt;br /&gt;14 ACTIVE org.apache.felix.dependencymanager_1.1.0.10&lt;br /&gt;15 ACTIVE slf4j.api_1.5.2&lt;br /&gt;Fragments=24&lt;br /&gt;16 ACTIVE org.ow2.bundles.ow2-bundles-externals-commons-modeler_1.0.11&lt;br /&gt;17 RESOLVED org.ow2.easybeans.component.hsqldb_1.1.0.M3&lt;br /&gt;18 ACTIVE org.eclipse.equinox.ds_1.0.0.v20080427-0830&lt;br /&gt;19 RESOLVED org.ow2.bundles.ow2-util-jmx-impl_1.0.11&lt;br /&gt;20 RESOLVED org.ow2.easybeans.component.carol_1.1.0.M3&lt;br /&gt;21 RESOLVED org.ow2.bundles.ow2-util-event-impl_1.0.11&lt;br /&gt;22 ACTIVE org.ow2.bundles.ow2-util-jmx-api_1.0.11&lt;br /&gt;23 ACTIVE org.apache.commons.logging_1.0.4.v20080605-1930&lt;br /&gt;24 RESOLVED slf4j.jcl_1.5.2&lt;br /&gt;Master=15&lt;br /&gt;25 ACTIVE org.eclipse.equinox.common_3.4.0.v20080421-2006&lt;br /&gt;26 ACTIVE org.eclipse.equinox.util_1.0.0.v20080414&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;b) Second Phase: The EasyBean agent bundle is started. This is done either manually in the OSGI console (e.g. "start 2" in the above example) or as part of the start configuration with a higher run level. The agent starts all other important EasyBeans bundles.&lt;br /&gt;This is the what the OSGI console provides after this phase:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OSGI&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ss&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Framework is launched.&lt;br /&gt;&lt;br /&gt;id State Bundle&lt;br /&gt;0 ACTIVE org.eclipse.osgi_3.4.0.v20080605-1900&lt;br /&gt;1 RESOLVED org.ow2.easybeans.examples.entitybean_1.1.0.M3&lt;br /&gt;2 ACTIVE org.ow2.easybeans.agent_1.1.0.M3&lt;br /&gt;3 ACTIVE org.ow2.easybeans.component.quartz_1.1.0.M3&lt;br /&gt;4 ACTIVE org.ow2.easybeans.component.joram_1.1.0.M3&lt;br /&gt;5 ACTIVE org.eclipse.osgi.services_3.1.200.v20071203&lt;br /&gt;6 ACTIVE org.ow2.easybeans.component.jmx_1.1.0.M3&lt;br /&gt;7 ACTIVE org.ow2.easybeans.component.jotm_1.1.0.M3&lt;br /&gt;8 ACTIVE org.ow2.easybeans.component.statistic_1.1.0.M3&lt;br /&gt;9 ACTIVE org.ow2.bundles.ow2-util-event-api_1.0.11&lt;br /&gt;10 ACTIVE org.eclipse.equinox.cm_1.0.0.v20080509-1800&lt;br /&gt;11 ACTIVE org.ow2.easybeans.component.jdbcpool_1.1.0.M3&lt;br /&gt;12 ACTIVE org.ow2.easybeans.component.event_1.1.0.M3&lt;br /&gt;13 ACTIVE org.ow2.easybeans.core_1.1.0.M3&lt;br /&gt;14 ACTIVE org.apache.felix.dependencymanager_1.1.0.10&lt;br /&gt;15 ACTIVE slf4j.api_1.5.2&lt;br /&gt;Fragments=24&lt;br /&gt;16 ACTIVE org.ow2.bundles.ow2-bundles-externals-commons-modeler_1.0.11&lt;br /&gt;17 ACTIVE org.ow2.easybeans.component.hsqldb_1.1.0.M3&lt;br /&gt;18 ACTIVE org.eclipse.equinox.ds_1.0.0.v20080427-0830&lt;br /&gt;19 ACTIVE org.ow2.bundles.ow2-util-jmx-impl_1.0.11&lt;br /&gt;20 ACTIVE org.ow2.easybeans.component.carol_1.1.0.M3&lt;br /&gt;21 ACTIVE org.ow2.bundles.ow2-util-event-impl_1.0.11&lt;br /&gt;22 ACTIVE org.ow2.bundles.ow2-util-jmx-api_1.0.11&lt;br /&gt;23 ACTIVE org.apache.commons.logging_1.0.4.v20080605-1930&lt;br /&gt;24 RESOLVED slf4j.jcl_1.5.2&lt;br /&gt;Master=15&lt;br /&gt;25 ACTIVE org.eclipse.equinox.common_3.4.0.v20080421-2006&lt;br /&gt;26 ACTIVE org.eclipse.equinox.util_1.0.0.v20080414&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;c) Third Phase: The actual bean bundles, for instance one of the delivered example bundles such as org.ow2.easybeans.examples.entitybean, are started. Now here is the problem: The agent from the previous phase starts all the other &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;EasyBeans&lt;/span&gt; bundles and it does it slowly and outside of the Equinox &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;startup&lt;/span&gt; procedure. This means you CANNOT start the bean bundle as part of the run configuration by giving it even a higher run level than the agent bundle! This is tricky, because if you tried it anyway the console would still say that all bundles are ACTIVE, leading you to believe that your bean bundle is really deployed with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;EasyBeans&lt;/span&gt;, but it's not. You have to start these bundles manually or through a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;deployer&lt;/span&gt; bundle (which would be good topic for another post). So, to stay with example from phase 2, I start the entity bean bundle org.ow2.easybeans.examples.entitybean by typing "start 1" in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;OSGI&lt;/span&gt; console.&lt;br /&gt;&lt;br /&gt;3) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Ekke's&lt;/span&gt; example my be a little outdated in terms of what bundles need to be started. So I just give my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;runtime&lt;/span&gt; configuration. In the run configuration, bundles tab, I got the following entries (format "bundle name" + "@" + start level + ":" + auto-start):&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.ow2.easybeans.agent@5:true&lt;br /&gt;org.ow2.easybeans.component.quartz@default:false&lt;br /&gt;org.eclipse.osgi.services@default:true&lt;br /&gt;org.ow2.easybeans.component.jmx@default:false&lt;br /&gt;org.ow2.easybeans.component.event@default:false&lt;br /&gt;org.ow2.bundles.ow2-bundles-externals-commons-modeler@default:true&lt;br /&gt;org.eclipse.equinox.ds@default:true&lt;br /&gt;org.ow2.bundles.ow2-util-jmx-impl@default:default&lt;br /&gt;org.ow2.easybeans.component.carol@default:false&lt;br /&gt;org.ow2.bundles.ow2-util-event-impl@default:default&lt;br /&gt;org.ow2.easybeans.examples.entitybean@default:false&lt;br /&gt;org.ow2.easybeans.component.joram@default:false&lt;br /&gt;org.ow2.easybeans.component.jotm@default:false&lt;br /&gt;org.ow2.easybeans.component.statistic@default:false&lt;br /&gt;org.eclipse.osgi@:&lt;br /&gt;org.ow2.bundles.ow2-util-event-api@default:default&lt;br /&gt;org.eclipse.equinox.cm@default:true&lt;br /&gt;org.ow2.easybeans.component.jdbcpool@default:false&lt;br /&gt;org.ow2.easybeans.core@default:true&lt;br /&gt;org.apache.felix.dependencymanager@default:default&lt;br /&gt;slf4j.api@default:true&lt;br /&gt;org.ow2.easybeans.component.hsqldb@default:false&lt;br /&gt;org.ow2.bundles.ow2-util-jmx-api@default:default&lt;br /&gt;org.apache.commons.logging@default:default&lt;br /&gt;slf4j.jcl@default:false&lt;br /&gt;org.eclipse.equinox.common@default:default&lt;br /&gt;org.eclipse.equinox.util@default:true&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In my run configuration, arguments tab, I got the following &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;VM&lt;/span&gt; arguments:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-Dorg.osgi.service.http.port=11112 -&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Dosgi&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;noShutdown&lt;/span&gt;=true&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Declipse&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;ignoreApp&lt;/span&gt;=true&lt;br /&gt;-Dorg.osgi.framework.system.packages=org.osgi.framework;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;version=1.3.0,&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;javax.accessibility;javax.activity;javax.imageio;javax.imageio.event;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.imageio.metadata;javax.imageio.plugins.bmp;javax.imageio.plugins.jpeg;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.imageio.spi;javax.imageio.stream;javax.management;javax.management.loading;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.management.modelmbean;javax.management.monitor;javax.management.openmbean;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.management.relation;javax.management.remote;javax.management.remote.rmi;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.management.timer;javax.naming;javax.naming.directory;javax.naming.event;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.naming.ldap;javax.naming.spi;javax.net;javax.net.ssl;javax.print;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.print.attribute;javax.print.attribute.standard;javax.print.event;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.rmi;javax.rmi.CORBA;javax.rmi.ssl;javax.security.auth;javax.security.cert;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.security.auth.callback;javax.security.auth.kerberos;javax.security.auth.login;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.security.auth.spi;javax.security.auth.x500;javax.security.sasl;javax.sound.midi;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.sound.midi.spi;javax.sound.sampled;javax.sound.sampled.spi;javax.sql;javax.sql.rowset;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.sql.rowset.serial;javax.sql.rowset.spi;javax.swing;javax.swing.border;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.swing.colorchooser;javax.swing.event;javax.swing.filechooser;javax.swing.plaf;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.swing.plaf.basic;javax.swing.plaf.metal;javax.swing.plaf.multi;javax.swing.plaf.synth;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.swing.table;javax.swing.text;javax.swing.text.html;javax.swing.text.html.parser;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.swing.text.rtf;javax.swing.tree;javax.swing.undo;javax.xml;javax.xml.datatype;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.xml.namespace;javax.xml.parsers;javax.xml.transform;javax.xml.transform.dom;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.xml.transform.sax;javax.xml.transform.stream;javax.xml.validation;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javax.xml.xpath;org.ietf.jgss;org.omg.CORBA;org.omg.CORBA_2_3;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.omg.CORBA_2_3.portable;org.omg.CORBA.DynAnyPackage;org.omg.CORBA.ORBPackage;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.omg.CORBA.portable;org.omg.CORBA.TypeCodePackage;org.omg.CosNaming;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.omg.CosNaming.NamingContextExtPackage;org.omg.CosNaming.NamingContextPackage;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.omg.Dynamic;org.omg.DynamicAny;org.omg.DynamicAny.DynAnyFactoryPackage;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.omg.DynamicAny.DynAnyPackage;org.omg.IOP;org.omg.IOP.CodecFactoryPackage;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.omg.IOP.CodecPackage;org.omg.Messaging;org.omg.PortableInterceptor;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.omg.PortableInterceptor.ORBInitInfoPackage;org.omg.PortableServer;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.omg.PortableServer.CurrentPackage;org.omg.PortableServer.POAManagerPackage;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.omg.PortableServer.POAPackage;org.omg.PortableServer.portable;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.omg.PortableServer.ServantLocatorPackage;org.omg.SendingContext;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.omg.stub.java.rmi;org.omg.stub.javax.management.remote.rmi;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.w3c.dom;org.w3c.dom.bootstrap;org.w3c.dom.css;org.w3c.dom.events;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.w3c.dom.html;org.w3c.dom.ls;org.w3c.dom.ranges;org.w3c.dom.stylesheets;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.w3c.dom.traversal;org.w3c.dom.views;org.xml.sax;org.xml.sax.ext;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;org.xml.sax.helpers;sun.rmi.server;sun.rmi.transport;sun.rmi.registry;version=1.5.0 -Dorg.osgi.framework.bootdelegation=sun.*,com.sun.*&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/668000943281094776-9009847693372810187?l=dissecttech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dissecttech.blogspot.com/feeds/9009847693372810187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dissecttech.blogspot.com/2009/04/setting-up-eclipse-target-platform-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/668000943281094776/posts/default/9009847693372810187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/668000943281094776/posts/default/9009847693372810187'/><link rel='alternate' type='text/html' href='http://dissecttech.blogspot.com/2009/04/setting-up-eclipse-target-platform-and.html' title='How to set up an eclipse target platform and a run configuration for EasyBeans'/><author><name>Clemens Gantert</name><uri>http://www.blogger.com/profile/08103965903978591638</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
