Fix unregistered agent error

Use the appropriate filter format when searching for the SnaAgent identifier

 LocalAgentImpl does not implement RemoteAgent interface anymore

cosmetic : remove some  useless  comments or sysout
diff --git a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/ModelInstance.java b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/ModelInstance.java
index 8668c65..97ab69e 100644
--- a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/ModelInstance.java
+++ b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/ModelInstance.java
@@ -106,7 +106,7 @@
 	 * the {@link MesssageHandler} handling messages coming from this

 	 * SensiNactResourceModel

 	 */

-	protected MessageRouter messageHandler;

+	protected MessageRouter messageRouter;

 

 	/**

 	 * the String identifier of the profile of this SnaServiceProvider

@@ -324,11 +324,11 @@
 	 *            the {@link SnaMessage} to post

 	 */

 	public void postMessage(SnaMessage<?> message) {

-		if (this.messageHandler == null) {

+		if (this.messageRouter == null) {

 			return;

 		}

 		((AbstractSnaMessage<?>)message).put("namespace", this.namespace, true);

-		this.messageHandler.handle(message);

+		this.messageRouter.handle(message);

 	}

 

 	/**

@@ -401,7 +401,7 @@
 			List<String> observed = this.configuration.getObserved();

 

 			this.registration = new ModelInstanceRegistration(uri, observed, instanceRegistration, this.configuration);

-			this.messageHandler = new SnaMessageListener(mediator, this.configuration());

+			this.messageRouter = new SnaMessageListener(mediator, this.configuration());

 			

 			boolean pattern = false;

 

@@ -436,11 +436,11 @@
 			SnaFilter filter = new SnaFilter(mediator, observedBuilder.toString(), pattern, false);

 

 			filter.addHandledType(SnaMessage.Type.UPDATE);

-			this.messageHandler.addCallback(filter, registration);

+			this.messageRouter.addCallback(filter, registration);

 

-			filter = new SnaFilter(mediator, "(\\/[^\\/]+)+", true, false);

+			filter = new SnaFilter(mediator, "(/[^/]+)+", true, false);

 			filter.addHandledType(SnaMessage.Type.LIFECYCLE);

-			this.messageHandler.addCallback(filter, registration);

+			this.messageRouter.addCallback(filter, registration);

 

 			if (this.configuration().getStartAtInitializationTime()) {

 				this.provider.start();

@@ -466,8 +466,8 @@
 		} catch (Exception e) {

 			mediator.error(e);

 		}

-		this.messageHandler.close(true);

-		this.messageHandler = null;

+		this.messageRouter.close(true);

+		this.messageRouter = null;

 

 		AccessController.<Void>doPrivileged(new PrivilegedAction<Void>() {

 			@Override

@@ -531,10 +531,10 @@
 	 * @param callback

 	 */

 	public void registerCallback(SnaFilter filter, MidCallback callback) {

-		if (this.messageHandler == null) {

+		if (this.messageRouter == null) {

 			return;

 		}

-		this.messageHandler.addCallback(filter, callback);

+		this.messageRouter.addCallback(filter, callback);

 	}

 

 	/**

@@ -542,10 +542,10 @@
 	 * @param callback

 	 */

 	public void unregisterCallback(String callback) {

-		if (this.messageHandler == null) {

+		if (this.messageRouter == null) {

 			return;

 		}

-		this.messageHandler.deleteCallback(callback);

+		this.messageRouter.deleteCallback(callback);

 	}

 

 	/**

diff --git a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/ResourceImpl.java b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/ResourceImpl.java
index 4cc2329..2a180f9 100644
--- a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/ResourceImpl.java
+++ b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/ResourceImpl.java
@@ -554,21 +554,11 @@
 		return (Class<S>) this.resourceType;
 	}
 
-	/**
-	 * @inheritDoc
-	 *
-	 * @see Elements#getName()
-	 */
 	@Override
 	public String getName() {
 		return (String) this.getAttribute(Resource.NAME).getValue();
 	}
 
-	/**
-	 * @inheritDoc
-	 *
-	 * @see Typable#getType()
-	 */
 	@Override
 	public Resource.Type getType() {
 		return (Resource.Type) this.getAttribute(Resource.TYPE).getValue();
@@ -767,11 +757,6 @@
 		this.links.add(path);
 	}
 
-	/**
-	 * @inheritDoc
-	 * 
-	 * @see org.eclipse.sensinact.gateway.core.SnaObject#isRegistered()
-	 */
 	@Override
 	public void start() {
 		if (!super.getModelInstance().isRegistered() || this.isHidden()) {
@@ -844,12 +829,6 @@
 		super.stop();
 	}
 
-	/**
-	 * @inheritDoc
-	 *
-	 * @see ModelElement# passOn(AccessMethod.Type, java.lang.String,
-	 *      java.lang.Object[])
-	 */
 	@Override
 	protected <TASK> TASK passOn(String type, String uri, Object[] parameters) throws Exception {
 		if (!type.equals(AccessMethod.GET) || this.getUpdatePolicy() == Resource.UpdatePolicy.NONE
@@ -878,31 +857,16 @@
 		}
 	}
 
-	/**
-	 * @inheritDoc
-	 * 
-	 * @see ModelElement#getProxyType()
-	 */
 	@Override
 	protected Class<? extends ElementsProxy<AttributeDescription>> getProxyType() {
 		return this.resourceType;
 	}
 
-	/**
-	 * @inheritDoc
-	 *
-	 * @see ModelElement#getRegisteredEvent()
-	 */
 	@Override
 	protected SnaLifecycleMessage.Lifecycle getRegisteredEvent() {
 		return SnaLifecycleMessage.Lifecycle.RESOURCE_APPEARING;
 	}
 
-	/**
-	 * @inheritDoc
-	 *
-	 * @see ModelElement#getUnregisteredEvent()
-	 */
 	@Override
 	protected SnaLifecycleMessage.Lifecycle getUnregisteredEvent() {
 		return SnaLifecycleMessage.Lifecycle.RESOURCE_DISAPPEARING;
@@ -927,25 +891,12 @@
 		return this.updatePolicy;
 	}
 
-	/**
-	 * @inheritDoc
-	 * 
-	 * @see org.eclipse.sensinact.gateway.core.SensiNactResourceModelElement#
-	 *      getProxy(java.util.List)
-	 */
 	@Override
 	public ResourceProxy getProxy(List<MethodAccessibility> methodAccessibilities) {
 		ResourceProxy proxy = new ResourceProxy(super.modelInstance.mediator(), this, methodAccessibilities);
 		return proxy;
 	}
 
-	/**
-	 * @inheritDoc
-	 * 
-	 * @see org.eclipse.sensinact.gateway.core.ModelElement#
-	 *      getElementProxy(org.eclipse.sensinact.gateway.core.security.AccessTree,
-	 *      org.eclipse.sensinact.gateway.common.primitive.Nameable)
-	 */
 	@Override
 	protected AttributeDescription getElementProxy(AccessTree<?> tree, Attribute element)
 			throws ModelElementProxyBuildException {
@@ -955,13 +906,6 @@
 		return element.getDescription();
 	}
 
-	/**
-	 * @inheritDoc
-	 * 
-	 * @see org.eclipse.sensinact.gateway.core.ModelElement#
-	 *      getWrapper(org.eclipse.sensinact.gateway.core.ModelElementProxy,
-	 *      org.eclipse.sensinact.gateway.core.security.ImmutableAccessTree)
-	 */
 	@Override
 	protected ModelElementProxyWrapper getWrapper(ResourceProxy proxy, ImmutableAccessTree tree) {
 		ResourceProxyWrapper wrapper = new ResourceProxyWrapper(proxy, tree);
diff --git a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/SessionKey.java b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/SessionKey.java
index 8649c46..758c8ce 100644
--- a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/SessionKey.java
+++ b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/SessionKey.java
@@ -17,7 +17,12 @@
 import org.eclipse.sensinact.gateway.common.bundle.Mediator;
 import org.eclipse.sensinact.gateway.common.execution.Executable;
 import org.eclipse.sensinact.gateway.core.Sessions.SessionObserver;
-import org.eclipse.sensinact.gateway.core.message.*;
+import org.eclipse.sensinact.gateway.core.message.LocalAgentImpl;
+import org.eclipse.sensinact.gateway.core.message.MidAgentCallback;
+import org.eclipse.sensinact.gateway.core.message.RemoteAgentCallback;
+import org.eclipse.sensinact.gateway.core.message.RemoteAgentImpl;
+import org.eclipse.sensinact.gateway.core.message.SnaAgent;
+import org.eclipse.sensinact.gateway.core.message.SnaFilter;
 import org.eclipse.sensinact.gateway.core.security.AccessNode;
 import org.eclipse.sensinact.gateway.core.security.AccessTree;
 import org.eclipse.sensinact.gateway.core.security.UserKey;
@@ -26,7 +31,6 @@
  *
  * @author <a href="mailto:christophe.munilla@cea.fr">Christophe Munilla</a>
  */
-//@Component(immediate = false)
 public class SessionKey {
 	private Mediator mediator;
 
@@ -133,8 +137,8 @@
 	public boolean unregisterAgent(String agentId) {
 		if (!this.agents.remove(agentId)) {
 			return false;
-		}
-		return this.mediator.callService(SnaAgent.class, String.format("org.eclipse.sensinact.gateway.agent.id=%s",agentId), new Executable<SnaAgent, Boolean>() {
+		}		
+		return this.mediator.callService(SnaAgent.class, String.format("(org.eclipse.sensinact.gateway.agent.id=%s)",agentId), new Executable<SnaAgent, Boolean>() {
 			@Override
 			public Boolean execute(SnaAgent agent) throws Exception {
 				try {
diff --git a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/AbstractAgent.java b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/AbstractAgent.java
index e35c743..e185376 100644
--- a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/AbstractAgent.java
+++ b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/AbstractAgent.java
@@ -127,7 +127,8 @@
 			try {
 				this.registration = this.mediator.getContext().registerService(
 					getAgentInterfaces(),  this, properties);
-			} catch (IllegalStateException e) {
+			} catch (Exception e) {
+				e.printStackTrace();
 				this.mediator.error("The agent is not registered ", e);
 			}
 			doStart();
diff --git a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/BufferMidCallback.java b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/BufferMidCallback.java
index f70634e..baad1bd 100644
--- a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/BufferMidCallback.java
+++ b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/BufferMidCallback.java
@@ -54,9 +54,9 @@
 		buffer = new SnaMessage[this.bufferSize];
 	}
 
-	/**
-	 * @inheritDoc
-	 *
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see StackEngineHandler#doHandle(java.lang.Object)
 	 */
 	@Override
diff --git a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/LocalAgentImpl.java b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/LocalAgentImpl.java
index 697b686..cb1a50d 100644
--- a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/LocalAgentImpl.java
+++ b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/LocalAgentImpl.java
@@ -19,7 +19,7 @@
 /**
  * @author <a href="mailto:christophe.munilla@cea.fr">Christophe Munilla</a>
  */
-public class LocalAgentImpl extends AbstractAgent implements LocalAgent,RemoteAgent {
+public class LocalAgentImpl extends AbstractAgent implements LocalAgent {
 
 	// ********************************************************************//
 	// STATIC DECLARATIONS //
@@ -50,7 +50,7 @@
 			String sender = LocalAgentImpl.getSender(mediator, suffix);
 
 			if (sender == null) {
-				sender = ".*";
+				sender = "(/[^/]+)+";
 				isPattern = true;
 			} else {
 				isPattern = LocalAgentImpl.isPattern(mediator, suffix);
@@ -221,6 +221,6 @@
 	 */
 	@Override
 	public String[] getAgentInterfaces() {
-		return new String[] {SnaAgent.class.getName(), LocalAgent.class.getName(),RemoteAgent.class.getName()};
+		return new String[] {SnaAgent.class.getName(), LocalAgent.class.getName() };
 	}
 }
diff --git a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/SnaMessageListener.java b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/SnaMessageListener.java
index 9db3737..c0ad65b 100644
--- a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/SnaMessageListener.java
+++ b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/message/SnaMessageListener.java
@@ -267,8 +267,8 @@
 			public Void run() {
 				mediator.callServices(SnaAgent.class, new Executable<SnaAgent, Void>() {
 					@Override
-					public Void execute(SnaAgent agent) throws Exception {
-						String agentKey = agent.getPublicKey();
+					public Void execute(SnaAgent agent) throws Exception {	
+						String agentKey = agent.getPublicKey();						
 						List<MethodAccessibility> methodAccessibilities = SnaMessageListener.this.agentsAccessibility.get(agentKey);
 						int index = -1;
 						if (methodAccessibilities == null) {
@@ -278,7 +278,7 @@
 							}
 							methodAccessibilities = SnaMessageListener.this.configuration.getAccessibleMethods(path, option);
 							SnaMessageListener.this.agentsAccessibility.put(agentKey, methodAccessibilities);
-						}
+						}						
 						if ((index = methodAccessibilities.indexOf(new Name<MethodAccessibility>(method))) > -1
 								&& methodAccessibilities.get(index).isAccessible()) {
 							agent.register(message);
diff --git a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/remote/AbstractRemoteEndpoint.java b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/remote/AbstractRemoteEndpoint.java
index 29a369a..f67f4c4 100644
--- a/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/remote/AbstractRemoteEndpoint.java
+++ b/platform/sensinact-core/src/main/java/org/eclipse/sensinact/gateway/core/remote/AbstractRemoteEndpoint.java
@@ -179,8 +179,6 @@
 	 * @param connected

 	 */

 	private void setConnected(boolean connected) {

-		System.out.println("SET CONNECTED "+connected);

-		Thread.dumpStack();

 		synchronized(lock) {			

 			this.connected = connected;

 		}

diff --git a/platform/sensinact-core/src/test/java/org/eclipse/sensinact/gateway/core/test/MyModelInstance.java b/platform/sensinact-core/src/test/java/org/eclipse/sensinact/gateway/core/test/MyModelInstance.java
index 8753eb6..eb764dd 100644
--- a/platform/sensinact-core/src/test/java/org/eclipse/sensinact/gateway/core/test/MyModelInstance.java
+++ b/platform/sensinact-core/src/test/java/org/eclipse/sensinact/gateway/core/test/MyModelInstance.java
@@ -45,7 +45,7 @@
 	}
 
 	public MessageRouter getHandler() {
-		return super.messageHandler;
+		return super.messageRouter;
 	}
 
 	/**