You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by ma...@apache.org on 2011/09/08 15:59:14 UTC
svn commit: r1166694 -
/incubator/ace/trunk/ace-managementagent/src/main/java/org/apache/ace/managementagent/Activator.java
Author: marrs
Date: Thu Sep 8 13:59:14 2011
New Revision: 1166694
URL: http://svn.apache.org/viewvc?rev=1166694&view=rev
Log:
ACE-169 updated the management agent to support multiple instances through a new system property called 'agents'
Modified:
incubator/ace/trunk/ace-managementagent/src/main/java/org/apache/ace/managementagent/Activator.java
Modified: incubator/ace/trunk/ace-managementagent/src/main/java/org/apache/ace/managementagent/Activator.java
URL: http://svn.apache.org/viewvc/incubator/ace/trunk/ace-managementagent/src/main/java/org/apache/ace/managementagent/Activator.java?rev=1166694&r1=1166693&r2=1166694&view=diff
==============================================================================
--- incubator/ace/trunk/ace-managementagent/src/main/java/org/apache/ace/managementagent/Activator.java (original)
+++ incubator/ace/trunk/ace-managementagent/src/main/java/org/apache/ace/managementagent/Activator.java Thu Sep 8 13:59:14 2011
@@ -1,6 +1,7 @@
package org.apache.ace.managementagent;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Dictionary;
import java.util.Properties;
@@ -12,6 +13,8 @@ import org.osgi.service.cm.Configuration
import org.osgi.service.cm.ConfigurationAdmin;
public class Activator extends DependencyActivatorBase {
+ private static final String[] PROTOTYPE_ARRAY = new String[] {};
+
private BundleActivator[] m_activators = new BundleActivator[] {
new org.apache.ace.deployment.deploymentadmin.Activator(),
new org.apache.ace.deployment.task.Activator(),
@@ -55,29 +58,64 @@ public class Activator extends Dependenc
public void start() {
try {
- String server = System.getProperty("discovery", "http://localhost:8080");
- configure("org.apache.ace.discovery.property", "serverURL", server);
- String targetId = System.getProperty("identification", "configuredGatewayID");
- configure("org.apache.ace.identification.property", "gatewayID", targetId);
String syncInterval = System.getProperty("syncinterval", "2000");
- configure("org.apache.ace.scheduler",
- "auditlog", syncInterval,
- "org.apache.ace.deployment.task.DeploymentUpdateTask", syncInterval);
-
- String stopUnaffectedBundles = System.getProperty("org.apache.felix.deploymentadmin.stopunaffectedbundle", "false");
- System.setProperty("org.apache.felix.deploymentadmin.stopunaffectedbundle", stopUnaffectedBundles);
-
configureFactory("org.apache.ace.gateway.log.factory", "name", "auditlog");
configureFactory("org.apache.ace.gateway.log.store.factory", "name", "auditlog");
-
- if (!m_quiet) {
- System.out.println("Started management agent.\n"
+ configure("org.apache.ace.scheduler", "org.apache.ace.deployment.task.DeploymentUpdateTask", syncInterval);
+ String stopUnaffectedBundles = System.getProperty("org.apache.felix.deploymentadmin.stopunaffectedbundle", "false");
+ System.setProperty("org.apache.felix.deploymentadmin.stopunaffectedbundle", stopUnaffectedBundles);
+ String agents = System.getProperty("agents");
+ if (agents != null) {
+ // format: a,b,c;d,e,f
+ // a=name, b=id, c=url
+ String[] definitions = agents.split(";");
+ StringBuffer instances = new StringBuffer();
+
+ for (String definition : definitions) {
+ String[] args = definition.split(",");
+ if (args.length != 3) {
+ System.err.println("Each agent definition needs to consist of 3 parts: name, identification and discovery, and not: " + definition);
+ System.exit(20);
+ }
+ String ma = args[0];
+ String id = args[1];
+ String url = args[2];
+
+ configureFactory("org.apache.ace.identification.property.factory", "ma", ma, "gatewayID", id);
+ configureFactory("org.apache.ace.discovery.property.factory", "ma", ma, "serverURL", url);
+ configureFactory("org.apache.ace.gateway.log.sync.factory", "ma", ma, "name", "auditlog");
+ configureFactory("org.apache.ace.deployment.factory", "ma", ma);
+ configure("org.apache.ace.scheduler", "ma=" + ma + ";name=auditlog", syncInterval);
+ instances.append(
+ " Instance : " + ma + "\n" +
+ " Target ID : " + id + "\n" +
+ " Server : " + url + "\n");
+ }
+
+ if (!m_quiet) {
+ System.out.println("Started management agent instances.\n" +
+ instances.toString() +
+ " Sync interval: " + syncInterval + " ms\n" +
+ " Unaffected bundles will " + ("false".equals(stopUnaffectedBundles) ? "not " : "") + "be stopped during deployment.");
+ }
+ }
+ else {
+ String server = System.getProperty("discovery", "http://localhost:8080");
+ configure("org.apache.ace.discovery.property", "serverURL", server);
+ String targetId = System.getProperty("identification", "configuredGatewayID");
+ configure("org.apache.ace.identification.property", "gatewayID", targetId);
+ configureFactory("org.apache.ace.gateway.log.sync.factory", "name", "auditlog");
+ configure("org.apache.ace.scheduler", "auditlog", syncInterval);
+ if (!m_quiet) {
+ System.out.println("Started management agent.\n"
+ " Target ID : " + targetId + "\n"
+ " Server : " + server + "\n"
+ " Sync interval: " + syncInterval + " ms\n"
+ " Unaffected bundles will " + ("false".equals(stopUnaffectedBundles) ? "not " : "")
+ "be stopped during deployment.");
+ }
}
+
}
catch (Exception e) {
e.printStackTrace();