Hi Mike,
On 4/27/2011 4:07 AM, mike howard wrote:
hi Bryan,
thanks for the help.
i don't know the plugin that need to have
"Activate this plug-in when one of its classes is loaded".
Although the use cases can be complex, I've found that when you have
a plugin that implements BundleActivator (i.e. has an Activator
class), that having the plugin activate when one of its classes is
loaded is the right thing to do.
Incidently...I've discovered that the lazy start was *not*
previously set in the hello example bundle (i.e.
org.eclipse.ecf.examples.remoteservices.hello). This may have been
the actual cause of the start problem discussed in this thread [1].
In any event, I've opened a new bug to fix this in the hello example
[2]. I will fix this quickly...and in subsequent builds (and ECF
releases, of course) I'm hopeful that it will also deal with the
problem discussed in [1]. That issue seems to be limited to Equinox
3.6.2 (and does not show itself on 3.7), but in any event...like I
said I'm hopeful that it will permanently deal with the issue [1] on
3.6.2...and I will find the time to test on 3.6.2 to verify.
Anyway i have been managed to run the hello example, but i
need to change some things in launch configuration.
the plugins that need parameter autostart=true in the host
side are:
- org.eclipse.ecf
- plugins that contains DS component definition
- org.eclipse.ecf.osgi.service.distribution
- org.eclipse.ecf.osgi.service.remoteserviceadmin
- org.eclipse.equinox.common
- org.eclipse.equinox.ds
Ds plugin need to define autostart level greater than plugins
that contains DS component.i use level 5 for ds plugin and
default level 4 for DS component definition plugins.
One resource for this information is the product config:
/org.eclipse.ecf.examples.remoteservices.hello.ds.host/products/Hello
Service DS Host (zeroconf,generic).product
i.e. here's the <configuration> for that product:
<configurations>
<plugin id="org.eclipse.ecf" autoStart="true"
startLevel="0" />
<plugin
id="org.eclipse.ecf.examples.remoteservices.hello.ds.host"
autoStart="true" startLevel="0" />
<plugin id="org.eclipse.ecf.osgi.services.distribution"
autoStart="true" startLevel="0" />
<plugin
id="org.eclipse.ecf.osgi.services.remoteserviceadmin"
autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.common" autoStart="true"
startLevel="2" />
<plugin id="org.eclipse.equinox.ds" autoStart="true"
startLevel="2" />
</configurations>
I recognize that we need to make this information much more
available/transparent, however. To do this, I suggest that we
1) Add to the documentation on this wiki page [3] (or with a link on
this page to a new page(s)...with information from the configuration
sections of the various product configs. This can/could be
considered part of the ECF documentation project [4], and we can
track it there.
2) I would like to create more product configurations...e.g. one for
zookeeper,generic for the DS host and consumer (e.g. Hello Service
DS Host (zookeeper,generic).product, Hello Service DS Consumer
(zookeeper, generic)...it would also be nice to have ones for rosgi
as well...e.g. Hello Service DS Host (zookeeper, rosgi).product,
Hello Service DS Consumer (zookeeper, rosgi).product. I created an
enhancement request for this here [5]. Nice bug number, don't you
think? :)
if i'm using generic distribution provider, how can i define
port and server address. I don't see this parameters in launch
configuration or in the properties of DS component. I guess it
is using default parameters, but if i want to change it, where
must define server address?
There's an example of doing this with service registration
properties (i.e. using DS):
/org.eclipse.ecf.examples.remoteservices.hello.ds.host/OSGI-INF/hello.xml
In this file are several service properties...i.e.
<property name="service.exported.interfaces" type="String"
value="*"/>
<property name="service.exported.configs" type="String"
value="ecf.generic.server"/>
<property name="ecf.exported.containerfactoryargs"
type="String" value="ecftcp://localhost:3787/server"/>
The last one (ecf.exported.containerfactoryargs) provides a single
argument that specifies the server's ID/URI...including the
hostname, the port (3787), and the path (/server).
There are other ways (e.g. programmatically...or using config admin)
to configure things for the generic provider (incidently, in case
it's not clear, in general every provider has it's own
configuration). And we need more documentation on this (i.e. a
configuration wiki page for every distribution provider...and for
that matter every discovery provider). If anyone can provide some
contributions for this as well, please consider helping
out/contributing...and coordinate via the ECF documentation project
bug [4].
Thanks,
Scott
[1] http://dev.eclipse.org/mhonarc/lists/ecf-dev/msg05222.html
[2] https://bugs.eclipse.org/bugs/show_bug.cgi?id=343992
[3]
http://wiki.eclipse.org/EIG:Getting_Started_with_OSGi_Remote_Services#Running_the_Example_Hello_Service_Host
and
http://wiki.eclipse.org/EIG:Getting_Started_with_OSGi_Remote_Services#Running_the_Example_Hello_Service_Consumer
[4] https://bugs.eclipse.org/bugs/show_bug.cgi?id=329124
[5] https://bugs.eclipse.org/bugs/show_bug.cgi?id=344000
2011/4/26 Bryan Hunt <bhunt@xxxxxxx>
There a couple of simple
things to check ...
- Make sure org.eclipse.ecf.osgi.services.distribution
is in the ACTIVE state (I set Auto-Start to true in my
launch configuration)
- Make sure org.eclipse.update.configurator is not in
your launch configuration
- Make sure you have "Activate this plug-in when one
of its classes is loaded" checked in the MANIFEST.MF
Bryan
On Apr 26, 2011, at 6:26 AM, mike howard wrote:
Hi all,
i'm trying to configure the hello service example
using declarative service, but using zookeeper
instead of zeroconf.
To do this, i have clone the launch configuration
of Hello DS host (zerocong, generic) and change
plugin org.eclipse.ecf.provider.jmdns by plugins
org.apache.hadoop.zookeeper and
org.eclipse.ecf.provider.zookeeper (both with
autostart=true). i also change launch
configuration to add new parameters
-Dzoodiscovery.dataDir=zookeeperdata2
-Dzoodiscovery.flavor=zoodiscovery.flavor.standalone=localhost:2002;clientPort=2001
when i launch new Hello DS host configuration, i
can see that zooDiscovery is started ( trace
ZooDiscovery> Discovery Service Activated ),
but when i check hello service status, it's
configured but no bundle is using it.
i did the same thing with the client configuration
(launch parameters -Dzoodiscovery.autoStart=true;
-Dzoodiscovery.flavor=zoodiscovery.flavor.standalone=localhost:2001;clientPort=2002),
but when i launch it, it doesn't work.
need additional parameters, or zoodiscovey doen't
work with DS?
thanks in advance.
Aldir
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev
|