You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2016/10/19 20:38:59 UTC
svn commit: r1765713 - in
/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent:
NodeAgent.java config/AgentConfiguration.java event/AgentEventListener.java
processors/DefaultNodeInventoryProcessor.java
Author: cwiklik
Date: Wed Oct 19 20:38:58 2016
New Revision: 1765713
URL: http://svn.apache.org/viewvc?rev=1765713&view=rev
Log:
UIMA-5060 Force inventory update if OR sequence is not what is expected. Also fixed a bug preventing last OR sequence from being published
Modified:
uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java
uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/config/AgentConfiguration.java
uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/event/AgentEventListener.java
uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeInventoryProcessor.java
Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java?rev=1765713&r1=1765712&r2=1765713&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java Wed Oct 19 20:38:58 2016
@@ -187,6 +187,9 @@ public class NodeAgent extends AbstractD
}
return lastORSequence;
}
+ public AgentEventListener getEventListener() {
+ return eventListener;
+ }
public void setAgentEventListener(AgentEventListener listener) {
eventListener = listener;
}
Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/config/AgentConfiguration.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/config/AgentConfiguration.java?rev=1765713&r1=1765712&r2=1765713&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/config/AgentConfiguration.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/config/AgentConfiguration.java Wed Oct 19 20:38:58 2016
@@ -422,6 +422,8 @@ public class AgentConfiguration {
agentTransport.configureJMSTransport(logger,common.agentRequestEndpoint, camelContext);
AgentEventListener delegateListener = agentDelegateListener(agent);
+ agent.setAgentEventListener(delegateListener);
+
if (common.managedProcessStateUpdateEndpointType != null
&& common.managedProcessStateUpdateEndpointType.equalsIgnoreCase("socket")) {
String agentSocketParams = "";
Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/event/AgentEventListener.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/event/AgentEventListener.java?rev=1765713&r1=1765712&r2=1765713&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/event/AgentEventListener.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/event/AgentEventListener.java Wed Oct 19 20:38:58 2016
@@ -54,6 +54,7 @@ public class AgentEventListener implemen
// This cleanup will happen once right after processing of the first OR publication.
private boolean cleanupPhase = true;
private AtomicLong lastSequence = new AtomicLong();
+ private volatile boolean forceInventoryUpdateDueToSequence = false;
private NodeAgent agent;
public AgentEventListener(NodeAgent agent, ProcessLifecycleController lifecycleController) {
@@ -81,6 +82,12 @@ public class AgentEventListener implemen
}
logger.info("reportIncomingStateForThisNode",null,sb.toString());
}
+ public boolean forceInvotoryUpdate() {
+ return forceInventoryUpdateDueToSequence;
+ }
+ public void resetForceInventoryUpdateFlag() {
+ forceInventoryUpdateDueToSequence = false;
+ }
/**
* This method is called by Camel when PM sends DUCC state to agent's queue. It
* takes responsibility of reconciling processes on this node.
@@ -109,7 +116,8 @@ public class AgentEventListener implemen
} else {
// Out of band message. Expected message with sequence larger than a previous message
logger.warn("reportIncomingStateForThisNode",null,"Received Out of Band Message. Expected Sequence Greater Than "+lastSequence+" Received "+sequence+" Instead");
- return;
+ forceInventoryUpdateDueToSequence = true;
+ return;
}
// typically lifecycleController is null and the agent assumes the role. For jUnit testing though,
Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeInventoryProcessor.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeInventoryProcessor.java?rev=1765713&r1=1765712&r2=1765713&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeInventoryProcessor.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeInventoryProcessor.java Wed Oct 19 20:38:58 2016
@@ -81,6 +81,10 @@ public class DefaultNodeInventoryProcess
// (ducc.agent.node.inventory.publish.rate.skip)
// configured in ducc.properties.
if (previousInventory != null) {
+ if ( agent.getEventListener().forceInvotoryUpdate()) {
+ inventoryChanged = true;
+ agent.getEventListener().resetForceInventoryUpdateFlag();
+ }
if (inventory.size() != previousInventory.size()) {
inventoryChanged = true;
} else {