I have done exactly what you have told me to, the last days. I followed
the documentation, and did everything with Customer-Vendor Tutorial in
hands, but I cannot find a proper walkthrought to a solution. This fact
makes me think, that maybe we have a bug, in SAT vs Knopflerfish. So,
when my bundle (using SAT), executes it's deactivate method (after the
lose of some needed service), when it comes to re-execute my activate
method (after a re-registration of the previously lost service) my
bundle doesn't do anything at all!!!!!!! It doesn't execute it's
activate method for second time and all registered interfaces are
de-registered. Why??? SAT is monitoring the registry in a constant
manner, isn't it??? :-( :-(
The project I am working on, is a very large scale project on pervasive
computing, and a toolkit like this would be exactly what we need... :-(
:-( ( I would like to see equinox on this, but this very difficult the
moment we speak... )
Aggelos
Simon J Archer wrote:
Aggelos
Your code looks fine to me. When your bundle has acquired all of its
imported services, be it at start up or otherwise, the activate()
method will get called. Whenever your bundle loses an imported
service, for any reason, the deactivate() method will get called.
Both activate() and deactivate() can get called multiple times as
services are gained/lost.
Please double-check that the bundle that you are stopping and
re-starting is actually re-registering its service correctly. If you
are using Equinox then you can query the services registered and in
use by each bundle by using the "bundle" console command.
Good luck,
Simon
*Aggelos Mpimpoudis <[EMAIL PROTECTED]>*
Sent by: [EMAIL PROTECTED]
08/01/2007 07:56 AM
Please respond to
OSGi Developer Mail List <[email protected]>
To
OSGi Developer Mail List <[email protected]>
cc
Subject
Re: [osgi-dev] Service Tracking Matter
Hello again,
Being in the final stage of development, I have one more question. My
activation/deactivation facilities are the latter as shown:
> protected void activate() {
> System.out.println("Bootstrap::Activation...");
> dataProcessor = getSensorDataProcessorBC();
> dbwrapper = getDBWrapperBC();
> fusion = null;
> commProxy=getCommunicationProxyBC();
> try {
> BootstrapCoordinator service = new
BootstrapCoordinator(dataProcessor, dbwrapper, fusion, commProxy);
> createExportedServices(service);
> } catch (BootstrapCoordinatorException e) {
> e.printStackTrace();
> }
>
> }
>
> protected void deactivate() {
> System.out.println("Bootstrap::Deactivation...");
> }
I use 3 services, each one provided from three separate bundles. After
activation of all three, my bundle is triggered and my facilities are
constructed. I deactivate one of the three services.
Bootstrap::Deactivation is printed on the stdout. Everything is going
fine. After the reactivation, I expect to see my bundle's
Bootstrap::Activation... string, but it seems that the activation method
isn't re-executed.... Is there anything wrong at the above?
Thx,
Aggelos
--
Dept. of Informatics & Telecommunications, University of Athens
Athens, Greece
Gsm: +306942075153 / Skype: aggelos.mpimpoudis
email: a.mpimpoydhs [at] di.uoa.gr
_______________________________________________
OSGi Developer Mail List
[email protected]
http://www2.osgi.org/mailman/listinfo/osgi-dev
------------------------------------------------------------------------
_______________________________________________
OSGi Developer Mail List
[email protected]
http://www2.osgi.org/mailman/listinfo/osgi-dev
--
Dept. of Informatics & Telecommunications, University of Athens
Athens, Greece
Gsm: +306942075153 / Skype: aggelos.mpimpoudis
email: a.mpimpoydhs [at] di.uoa.gr
_______________________________________________
OSGi Developer Mail List
[email protected]
http://www2.osgi.org/mailman/listinfo/osgi-dev