Just Because I saw that the html message was scrubbed, here is the mail at plain text.
sry for the incovenience.

Aggelos Mpimpoudis wrote:
The following message was originally posted at the eclipse.platform newsgroup <http://dev.eclipse.org/newslists/news.eclipse.platform/msg62264.html>, but with regards to Peter Kriens for his assistance I managed to subscribe here, at the official osgi mailing list. I am a new java/osgi developer for the needs of my graduate project and I am in the early stages of development. (searching for tutorials etc etc)
Well here is my original request
http://i23.photobucket.com/albums/b352/grnemo/Screenshot1.jpg
http://i23.photobucket.com/albums/b352/grnemo/Screenshot2.jpg

Hello to all,
I am a new developer of java & OSGi framework.
After tutorials, java book etc etc I managed to write some code. A bundle which acts as a primitive server. I connect to a socket and whatever i write to the console it is logged to the log bundle (practicing also to the reusing bundles model) The bundle runs perfectly with the knopflerfish platform but I want to run it inside eclipse. I have a setup of the knopflerfish (plugin) I select the bundles I use etc etc but it doesn't find the log service....I don't know what else to do. I have included 2 screenshots of me working on eclipse and marked my trouble area. If you have anything in mind I would be grateful.

Thank you in advance,



Aggelos Mpimpoudis,
Undergraduate student @ National University of Greece


PS: from the little research i did until i have reached this newsgroup I found that I can eliminate this null problem by using service listeners
but the context var is now my problem.
void start (BundleContext context)
...
        ServiceListener sL = new ServiceListener() {
            public void serviceChanged (ServiceEvent event){
                ServiceReference sr = event.getServiceReference();
                switch (event.getType()){
                case ServiceEvent.REGISTERED:
                    {
logService=(LogService)context.getService(logSref);
                    }
                    break;
                default:
                    break;
                }
            }
};

I have found more information since then, mostly from knopflerfish's site <http://www.knopflerfish.org/osgi_service_tutorial.html> and tutorial <http://www.knopflerfish.org/tutorials/osgi_tutorial.pdf> I can't get the log service reference by any way by running as osgi project from the eclipse run menu.
Any recommendation would be helpfull.

I have now, something like this

public class Activator implements BundleActivator {

private final static String filter="(objectclass=org.osgi.service.log.LogService)";
    private ServiceReference logSref=null;
    private LogService logService=null;
    public static BundleContext bc = null;
private void startUsingService() {
        this.thread = new ServiceUserThread(this.service);
        this.thread.start();
        }
public void start(final BundleContext bc) throws Exception {
        Activator.bc = bc;
        try {
            ServiceListener logServiceListener = new ServiceListener() {
                public void serviceChanged (ServiceEvent event){
                    switch (event.getType()){
                    case ServiceEvent.REGISTERED:{
logService=(LogService)bc.getService(event.getServiceReference());
                            startUsingService();
                        }
                        break;
                    default:
                        break;
                    }
                }
};
            bc.addServiceListener(logServiceListener, filter);
ServiceReference[] srl = bc.getServiceReferences(null, filter);
            for(int i = 0; srl != null && i < srl.length; i++)
logServiceListener.serviceChanged(new ServiceEvent(ServiceEvent.REGISTERED, srl[i]));

        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
public void stop(BundleContext context) throws Exception {
        context.ungetService(logSref);
        logSref = null;
        logService = null;
        System.out.println("Goodbye World");
    }
}

Am I thinking the right way? Can I proceed like this?

With great respect to the community and much enthusiasm about the osgi middleware,

Aggelos Mpimpoudis
| Department of Informatics And Telecommunication NKUA |




_______________________________________________
OSGi Developer Mail List
[email protected]
http://www2.osgi.org/mailman/listinfo/osgi-dev

Reply via email to