You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by br...@apache.org on 2013/08/22 10:39:46 UTC
svn commit: r1516385 - in
/ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent: ./ impl/
Author: bramk
Date: Thu Aug 22 08:39:46 2013
New Revision: 1516385
URL: http://svn.apache.org/r1516385
Log:
ACE-347 ACE-382 Moved feedback to seperate interface/handler
Added:
ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/FeedbackHandler.java
ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/FeedbackHandlerImpl.java
Modified:
ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/AgentContext.java
ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/AgentControl.java
ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/Activator.java
ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/AgentContextImpl.java
ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/AgentControlImpl.java
ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/DefaultController.java
ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/EventLoggerImpl.java
Modified: ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/AgentContext.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/AgentContext.java?rev=1516385&r1=1516384&r2=1516385&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/AgentContext.java (original)
+++ ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/AgentContext.java Thu Aug 22 08:39:46 2013
@@ -79,6 +79,13 @@ public interface AgentContext {
AgentUpdateHandler getAgentUpdateHandler();
/**
+ * Return the feedback handler.
+ *
+ * @return The handler
+ */
+ FeedbackHandler getFeedbackHandler();
+
+ /**
* Return the agent control service.
*
* @return The service
Modified: ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/AgentControl.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/AgentControl.java?rev=1516385&r1=1516384&r2=1516385&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/AgentControl.java (original)
+++ ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/AgentControl.java Thu Aug 22 08:39:46 2013
@@ -18,8 +18,6 @@
*/
package org.apache.ace.agent;
-import java.util.List;
-
/**
* The agent's control (service) interface. Provides control functions and access to configuration for consumers that
* wish to control the agent's behavior.
@@ -38,9 +36,6 @@ public interface AgentControl {
/** Returns the update handler */
AgentUpdateHandler getAgentUpdateHandler();
- /** Returns the feedback channels names */
- List<String> getFeedbackChannelNames();
-
- /** Returns the feedback channel for a name */
- FeedbackChannel getFeedbackChannel(String name);
+ /** Returns the feedback handler */
+ FeedbackHandler getFeedbackHandler();
}
Added: ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/FeedbackHandler.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/FeedbackHandler.java?rev=1516385&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/FeedbackHandler.java (added)
+++ ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/FeedbackHandler.java Thu Aug 22 08:39:46 2013
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ace.agent;
+
+import java.util.List;
+
+/**
+ * Agent control delegate interface that is responsible for handling feedback channels.
+ */
+public interface FeedbackHandler {
+
+ /** Returns the feedback channels names */
+ List<String> getChannelNames();
+
+ /** Returns the feedback channel for a name */
+ FeedbackChannel getChannel(String name);
+}
Modified: ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/Activator.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/Activator.java?rev=1516385&r1=1516384&r2=1516385&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/Activator.java (original)
+++ ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/Activator.java Thu Aug 22 08:39:46 2013
@@ -37,6 +37,7 @@ import org.apache.ace.agent.ConnectionHa
import org.apache.ace.agent.DeploymentHandler;
import org.apache.ace.agent.DiscoveryHandler;
import org.apache.ace.agent.DownloadHandler;
+import org.apache.ace.agent.FeedbackHandler;
import org.apache.ace.agent.IdentificationHandler;
import org.apache.felix.deploymentadmin.DeploymentAdminImpl;
import org.apache.felix.dm.Component;
@@ -86,6 +87,7 @@ public class Activator extends Dependenc
m_agentControl = new AgentControlImpl(m_agentContext);
m_agentUpdateHandler = new AgentUpdateHandlerImpl(context);
+ // TODO replace with setters
configureField(m_agentContext, AgentControl.class, m_agentControl);
configureField(m_agentContext, ConfigurationHandler.class, new ConfigurationHandlerImpl());
configureField(m_agentContext, ConnectionHandler.class, new ConnectionHandlerImpl());
@@ -95,6 +97,7 @@ public class Activator extends Dependenc
configureField(m_agentContext, IdentificationHandler.class, new IdentificationHandlerImpl());
configureField(m_agentContext, ScheduledExecutorService.class, m_executorService);
configureField(m_agentContext, AgentUpdateHandler.class, m_agentUpdateHandler);
+ configureField(m_agentContext, FeedbackHandler.class, new FeedbackHandlerImpl());
Component agentContextComponent = createComponent()
.setImplementation(m_agentContext)
Modified: ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/AgentContextImpl.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/AgentContextImpl.java?rev=1516385&r1=1516384&r2=1516385&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/AgentContextImpl.java (original)
+++ ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/AgentContextImpl.java Thu Aug 22 08:39:46 2013
@@ -31,6 +31,7 @@ import org.apache.ace.agent.ConnectionHa
import org.apache.ace.agent.DeploymentHandler;
import org.apache.ace.agent.DiscoveryHandler;
import org.apache.ace.agent.DownloadHandler;
+import org.apache.ace.agent.FeedbackHandler;
import org.apache.ace.agent.IdentificationHandler;
import org.apache.ace.agent.impl.Activator.InternalEvents;
import org.apache.ace.agent.impl.Activator.InternalLogger;
@@ -50,12 +51,13 @@ public class AgentContextImpl implements
private volatile DownloadHandler m_downloadHandler;
private volatile ConnectionHandler m_connectionHandler;
private volatile AgentUpdateHandler m_agentUpdateHandler;
+ private volatile FeedbackHandler m_feedbackHandler;
private volatile ScheduledExecutorService m_executorService;
private final InternalLogger m_logger;
private final InternalEvents m_events;
-
+
private final File m_workDir;
public AgentContextImpl(File workDir, InternalLogger logger, InternalEvents events) {
@@ -73,11 +75,13 @@ public class AgentContextImpl implements
startHandler(m_downloadHandler);
startHandler(m_connectionHandler);
startHandler(m_agentUpdateHandler);
+ startHandler(m_feedbackHandler);
startHandler(m_agentControl);
}
public void stop() throws Exception {
stopHandler(m_agentControl);
+ stopHandler(m_feedbackHandler);
stopHandler(m_configurationHandler);
stopHandler(m_identificationHandler);
stopHandler(m_discoveryHandler);
@@ -139,6 +143,11 @@ public class AgentContextImpl implements
}
@Override
+ public FeedbackHandler getFeedbackHandler() {
+ return m_feedbackHandler;
+ }
+
+ @Override
public File getWorkDir() {
return m_workDir;
}
Modified: ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/AgentControlImpl.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/AgentControlImpl.java?rev=1516385&r1=1516384&r2=1516385&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/AgentControlImpl.java (original)
+++ ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/AgentControlImpl.java Thu Aug 22 08:39:46 2013
@@ -19,10 +19,6 @@
package org.apache.ace.agent.impl;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
import org.apache.ace.agent.AgentContext;
import org.apache.ace.agent.AgentControl;
@@ -30,7 +26,7 @@ import org.apache.ace.agent.AgentUpdateH
import org.apache.ace.agent.ConfigurationHandler;
import org.apache.ace.agent.DeploymentHandler;
import org.apache.ace.agent.DownloadHandler;
-import org.apache.ace.agent.FeedbackChannel;
+import org.apache.ace.agent.FeedbackHandler;
/**
* Implementation of the public agent control service.
@@ -40,12 +36,8 @@ public class AgentControlImpl implements
private final AgentContext m_agentContext;
- private final Map<String, FeedbackChannelImpl> m_feedbackChannels = new HashMap<String, FeedbackChannelImpl>();
-
public AgentControlImpl(AgentContext agentContext) throws IOException {
m_agentContext = agentContext;
- // TODO get from configuration
- m_feedbackChannels.put("auditlog", new FeedbackChannelImpl(m_agentContext, "auditlog"));
}
@Override
@@ -64,20 +56,12 @@ public class AgentControlImpl implements
}
@Override
- public List<String> getFeedbackChannelNames() {
- // TODO get from configuration
- List<String> channels = new ArrayList<String>();
- channels.addAll(m_feedbackChannels.keySet());
- return channels;
- }
-
- @Override
- public FeedbackChannel getFeedbackChannel(String name) {
- return m_feedbackChannels.get(name);
+ public AgentUpdateHandler getAgentUpdateHandler() {
+ return m_agentContext.getAgentUpdateHandler();
}
@Override
- public AgentUpdateHandler getAgentUpdateHandler() {
- return m_agentContext.getAgentUpdateHandler();
+ public FeedbackHandler getFeedbackHandler() {
+ return m_agentContext.getFeedbackHandler();
}
}
Modified: ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/DefaultController.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/DefaultController.java?rev=1516385&r1=1516384&r2=1516385&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/DefaultController.java (original)
+++ ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/DefaultController.java Thu Aug 22 08:39:46 2013
@@ -121,9 +121,9 @@ public class DefaultController implement
m_agentContext.logDebug(COMPONENT_IDENTIFIER, "Controller syncing...");
long interval = configurationHandler.getLong(CONFIG_KEY_SYNCINTERVAL, CONFIG_DEFAULT_SYNCINTERVAL);
try {
+ runSafeFeedback();
runSafeAgent();
runSafeUpdate();
- runSafeFeedback();
}
catch (RetryAfterException e) {
interval = e.getSeconds();
@@ -194,9 +194,9 @@ public class DefaultController implement
AgentControl agentControl = m_agentContext.getAgentControl();
m_agentContext.logDebug(COMPONENT_IDENTIFIER, "Synchronizing feedback channels");
- List<String> channelNames = agentControl.getFeedbackChannelNames();
+ List<String> channelNames = agentControl.getFeedbackHandler().getChannelNames();
for (String channelName : channelNames) {
- FeedbackChannel channel = agentControl.getFeedbackChannel(channelName);
+ FeedbackChannel channel = agentControl.getFeedbackHandler().getChannel(channelName);
if (channel != null) {
channel.sendFeedback();
}
Modified: ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/EventLoggerImpl.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/EventLoggerImpl.java?rev=1516385&r1=1516384&r2=1516385&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/EventLoggerImpl.java (original)
+++ ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/EventLoggerImpl.java Thu Aug 22 08:39:46 2013
@@ -236,7 +236,8 @@ public class EventLoggerImpl implements
}
private void writeEvent(int eventType, Map<String, String> payload) {
- FeedbackChannel channel = m_agentControl.getFeedbackChannel(EVENTLOGGER_FEEDBACKCHANNEL);
+ FeedbackChannel channel = m_agentControl.getFeedbackHandler()
+ .getChannel(EVENTLOGGER_FEEDBACKCHANNEL);
if (channel != null) {
try {
channel.write(eventType, payload);
Added: ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/FeedbackHandlerImpl.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/FeedbackHandlerImpl.java?rev=1516385&view=auto
==============================================================================
--- ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/FeedbackHandlerImpl.java (added)
+++ ace/trunk/org.apache.ace.agent/src/org/apache/ace/agent/impl/FeedbackHandlerImpl.java Thu Aug 22 08:39:46 2013
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ace.agent.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ace.agent.FeedbackChannel;
+import org.apache.ace.agent.FeedbackHandler;
+
+/**
+ * Default implementation of the feedback handler.
+ */
+public class FeedbackHandlerImpl extends HandlerBase implements FeedbackHandler {
+
+ private final Map<String, FeedbackChannelImpl> m_feedbackChannels = new HashMap<String, FeedbackChannelImpl>();
+
+ public FeedbackHandlerImpl() {
+ super("feedback");
+ }
+
+ @Override
+ protected void onStart() throws Exception {
+ // TODO get from configuration
+ m_feedbackChannels.put("auditlog", new FeedbackChannelImpl(getAgentContext(), "auditlog"));
+ }
+
+ @Override
+ protected void onStop() throws Exception {
+ m_feedbackChannels.clear();
+ }
+
+ @Override
+ public List<String> getChannelNames() {
+ List<String> names = new ArrayList<String>(m_feedbackChannels.keySet());
+ return java.util.Collections.unmodifiableList(names);
+ }
+
+ @Override
+ public FeedbackChannel getChannel(String name) {
+ return m_feedbackChannels.get(name);
+ }
+}