tuscany-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Thoma <m.th...@b2m-software.de>
Subject warnings using callbacks
Date Fri, 26 Jun 2009 15:12:54 GMT
Hello,

we implemented some kind of registering and broadcasting for one server and multiple clients
running on different hosts using tuscany 1.3.1

The server implements two interfaces:

The server interfaces:
UpdateProvider for initiating the broadcast and 
UpdateRegistry for the clients to register to the server.

Here are the interfaces for the server
@Remotable
public interface UpdateProvider {
	public void broadcast(String e);
}

and

@Remotable
@Callback(UpdateListener.class)
public interface UpdateRegistry {

	void register();
}

The server implementation:

public class UpdateServiceImpl implements UpdateProvider, UpdateRegistry {

	@Callback
	protected UpdateListener updateListener;

	private static List<UpdateListener> listeners = new Vector<UpdateListener>();

	public void broadcast(String e) {
		for (UpdateListener listener: listeners)
			listener.receiveUpdate(e)
	}

	public void register() {
		listeners.add(updateListener);
	}
}

and the server composite:

<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
	targetNamespace="http://updateservice"
	xmlns:hw="http://updateservice"
	name="Updateservice">

	<component name="UpdateServiceImplComp">
		<implementation.java class="test.UpdateServiceImpl"/>
		<service name="UpdateProvider">
			<binding.ws/>
		</service>
		<service name="UpdateRegistry">
			<binding.ws/>
			<callback>
				<binding.ws/>
			</callback>
		</service>
	</component>
</composite>


The clients have one interface for receiving the broadcasted event:

@Remotable
public interface UpdateListener {
	void receiveUpdate(String re);
}

the client implementation

@Scope("COMPOSITE")
public class UpdateListenerImpl implements UpdateListener {

	@Reference
	protected UpdateRegistry updateRegistry;

	public void receiveUpdate(String e) {}
	public void init(){	updateRegistry.register();	}
}

and the client composite:

<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
	targetNamespace="http://updatelistener"
	xmlns:hw="http://updatelistener"
	name="UpdateListener">

	<component name="UpdateListenerImplCompHostA">
		<implementation.java class="test.UpdateListenerImpl"/>
		<service name="UpdateListener">
			<binding.ws/>
		</service>
		<reference name="updateRegistry" target="UpdateServiceImplComp/UpdateRegistry">
			<binding.ws/>
			<callback>
				<binding.ws uri="http://hosta:5501/UpdateListenerImplCompHostA/UpdateListener"/>
			</callback>
		</reference>
	</component>
</composite>

Everything works fine,
the clients running on different hosts
receive the broadcasted events.

The only "problem":
we got the following warnings:


26.06.2009 14:25:52 org.apache.tuscany.sca.node.launcher.NodeLauncher main
INFO: Apache Tuscany SCA Node starting...
26.06.2009 14:25:52 org.apache.tuscany.sca.node.launcher.NodeLauncher main
INFO: SCA Node configuration: http://localhost:9990/node-config/UpdateserviceNode
26.06.2009 14:25:53 org.apache.tuscany.sca.node.impl.NodeImpl 
INFO: Creating node: http://localhost:9990/node-config/UpdateserviceNode
26.06.2009 14:25:53 org.apache.tuscany.sca.node.impl.NodeImpl configureNode
INFO: Loading contribution: file:/./components/updateservice.jar
26.06.2009 14:25:55 org.apache.tuscany.sca.node.impl.NodeImpl configureNode
INFO: Loading composite: http://localhost:9990/composite-resolved/composite:updateservice;http://updateservice;Updateservice
26.06.2009 14:25:55 org.apache.tuscany.sca.assembly.builder.impl.ComponentConfigurationBuilderImpl
WARNUNG: Reference not found for component reference: Component = UpdateServiceImplComp Reference
= UpdateRegistry
26.06.2009 14:25:55 org.apache.tuscany.sca.assembly.builder.impl.CompositeBindingURIBuilderImpl
WARNUNG: Reference not found for component reference: Component = UpdateServiceImplComp Reference
= UpdateRegistry
26.06.2009 14:25:55 org.apache.tuscany.sca.assembly.builder.impl.CompositeBindingURIBuilderImpl
WARNUNG: Multiple bindings with the same name for a service: Binding = UpdateRegistry Service
=UpdateRegistry Binding = {2}
26.06.2009 14:25:56 org.apache.tuscany.sca.node.impl.NodeImpl start
INFO: Starting node: http://localhost:9990/node-config/UpdateserviceNode
26.06.2009 14:25:57 org.apache.tuscany.sca.http.jetty.JettyServer addServletMapping
INFO: Added Servlet mapping: http://roadrunner:5000/UpdateServiceImplComp/UpdateProvider
26.06.2009 14:25:57 org.apache.tuscany.sca.http.jetty.JettyServer addServletMapping
INFO: Added Servlet mapping: http://roadrunner:5000/UpdateServiceImplComp/UpdateRegistry
26.06.2009 14:25:57 org.apache.tuscany.sca.node.launcher.NodeLauncher main
INFO: SCA Node started.
26.06.2009 14:25:57 org.apache.tuscany.sca.node.launcher.NodeLauncher main
INFO: Press enter to shutdown.

Is it possible to avoid this warnings somehow ?

Mit freundlichem Gruß / Kind regards

Martin Thoma


Mime
View raw message