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;
}
/**