You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Marco Mauri (JIRA)" <ji...@apache.org> on 2010/08/30 14:39:53 UTC

[jira] Created: (DOSGI-76) EndpointListener.endpointRemoved

EndpointListener.endpointRemoved
--------------------------------

                 Key: DOSGI-76
                 URL: https://issues.apache.org/jira/browse/DOSGI-76
             Project: CXF Distributed OSGi
          Issue Type: Bug
         Environment: Eclipse 3.5
CXF Dosgi 1.2
            Reporter: Marco Mauri


The endpointRemoved method of a registered EndpointListener is never called even if an exported service is unregistered.
I've written a simple Endpoint listener:

public class EndpointListenerImpl implements EndpointListener {
	private static final Logger logger = Logger.getLogger(EndpointListenerImpl.class.getName());

	@Override
	public void endpointAdded(EndpointDescription arg0, String arg1) {
		logger.severe("Added: " + arg0); 
		
	}

	@Override
	public void endpointRemoved(EndpointDescription arg0, String arg1) {
		logger.severe("Removed: " + arg0);
		
	}

}
and registered it in my activator:

public void start(BundleContext context) throws Exception {
		Properties props = new Properties();
        props.put(EndpointListener.ENDPOINT_LISTENER_SCOPE, "(" + Constants.OBJECTCLASS + "=*)");
		reg = context.registerService(EndpointListener.class.getName(), new EndpointListenerImpl(), props);
		logger.severe("REGISTRATO");
	}

the endpointAded is correctly called for every exported service but the endpointRemoved is never called, even if I start/stop several time the bundle that registers the exported services.
I discovered this because a service published on Zookeper via the remote discovery bundle is never unpublished until i stop all the Dosgi bundles even if I stop the service that register the service.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (DOSGI-76) EndpointListener.endpointRemoved

Posted by "Marco Mauri (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DOSGI-76?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marco Mauri updated DOSGI-76:
-----------------------------

    Attachment: TopMan.diff

Patch that (IHMO) fixes this bug

> EndpointListener.endpointRemoved
> --------------------------------
>
>                 Key: DOSGI-76
>                 URL: https://issues.apache.org/jira/browse/DOSGI-76
>             Project: CXF Distributed OSGi
>          Issue Type: Bug
>         Environment: Eclipse 3.5
> CXF Dosgi 1.2
>            Reporter: Marco Mauri
>         Attachments: TopMan.diff
>
>
> The endpointRemoved method of a registered EndpointListener is never called even if an exported service is unregistered.
> I've written a simple Endpoint listener:
> public class EndpointListenerImpl implements EndpointListener {
> 	private static final Logger logger = Logger.getLogger(EndpointListenerImpl.class.getName());
> 	@Override
> 	public void endpointAdded(EndpointDescription arg0, String arg1) {
> 		logger.severe("Added: " + arg0); 
> 		
> 	}
> 	@Override
> 	public void endpointRemoved(EndpointDescription arg0, String arg1) {
> 		logger.severe("Removed: " + arg0);
> 		
> 	}
> }
> and registered it in my activator:
> public void start(BundleContext context) throws Exception {
> 		Properties props = new Properties();
>         props.put(EndpointListener.ENDPOINT_LISTENER_SCOPE, "(" + Constants.OBJECTCLASS + "=*)");
> 		reg = context.registerService(EndpointListener.class.getName(), new EndpointListenerImpl(), props);
> 		logger.severe("REGISTRATO");
> 	}
> the endpointAded is correctly called for every exported service but the endpointRemoved is never called, even if I start/stop several time the bundle that registers the exported services.
> I discovered this because a service published on Zookeper via the remote discovery bundle is never unpublished until i stop all the Dosgi bundles even if I stop the service that register the service.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (DOSGI-76) EndpointListener.endpointRemoved

Posted by "Marco Mauri (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/DOSGI-76?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12904574#action_12904574 ] 

Marco Mauri commented on DOSGI-76:
----------------------------------

I think to have pinned down the error: the method removeService of the TopologyManager should notify all the registered EndpointListener of the removed service.
I attach a patch that I wrote to solve my problem.

> EndpointListener.endpointRemoved
> --------------------------------
>
>                 Key: DOSGI-76
>                 URL: https://issues.apache.org/jira/browse/DOSGI-76
>             Project: CXF Distributed OSGi
>          Issue Type: Bug
>         Environment: Eclipse 3.5
> CXF Dosgi 1.2
>            Reporter: Marco Mauri
>         Attachments: TopMan.diff
>
>
> The endpointRemoved method of a registered EndpointListener is never called even if an exported service is unregistered.
> I've written a simple Endpoint listener:
> public class EndpointListenerImpl implements EndpointListener {
> 	private static final Logger logger = Logger.getLogger(EndpointListenerImpl.class.getName());
> 	@Override
> 	public void endpointAdded(EndpointDescription arg0, String arg1) {
> 		logger.severe("Added: " + arg0); 
> 		
> 	}
> 	@Override
> 	public void endpointRemoved(EndpointDescription arg0, String arg1) {
> 		logger.severe("Removed: " + arg0);
> 		
> 	}
> }
> and registered it in my activator:
> public void start(BundleContext context) throws Exception {
> 		Properties props = new Properties();
>         props.put(EndpointListener.ENDPOINT_LISTENER_SCOPE, "(" + Constants.OBJECTCLASS + "=*)");
> 		reg = context.registerService(EndpointListener.class.getName(), new EndpointListenerImpl(), props);
> 		logger.severe("REGISTRATO");
> 	}
> the endpointAded is correctly called for every exported service but the endpointRemoved is never called, even if I start/stop several time the bundle that registers the exported services.
> I discovered this because a service published on Zookeper via the remote discovery bundle is never unpublished until i stop all the Dosgi bundles even if I stop the service that register the service.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.