Author: tommaso
Date: Fri Oct 7 13:42:17 2016
New Revision: 1763764
URL: http://svn.apache.org/viewvc?rev=1763764&view=rev
Log:
SLING-6101 - introduced agent mbeans, patch by Simone Tripodi
Added:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBean.java
(with props)
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBeanImpl.java
(with props)
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBean.java
(with props)
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBeanImpl.java
(with props)
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBean.java
(with props)
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBeanImpl.java
(with props)
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBean.java
(with props)
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBeanImpl.java
(with props)
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBean.java
(with props)
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBeanImpl.java
(with props)
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java?rev=1763764&r1=1763763&r2=1763764&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java
Fri Oct 7 13:42:17 2016
@@ -24,6 +24,8 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
+import javax.management.ObjectName;
+
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.distribution.agent.DistributionAgent;
import
org.apache.sling.distribution.component.impl.DistributionComponentConstants;
@@ -41,7 +43,7 @@ import org.slf4j.LoggerFactory;
/**
* An abstract OSGi service factory for registering {@link
org.apache.sling.distribution.agent.impl.SimpleDistributionAgent}s
*/
-abstract class AbstractDistributionAgentFactory {
+abstract class AbstractDistributionAgentFactory<DistributionAgentMBeanType> {
private final Logger log = LoggerFactory.getLogger(getClass());
private static final String NAME = DistributionComponentConstants.PN_NAME;
@@ -54,14 +56,20 @@ abstract class AbstractDistributionAgent
static final String LOG_LEVEL = "log.level";
+ private final Class<DistributionAgentMBeanType> distributionAgentMBeanType;
private ServiceRegistration componentReg;
+ private ServiceRegistration mbeanServiceRegistration;
private String agentName;
private final List<DistributionTrigger> triggers = new
CopyOnWriteArrayList<DistributionTrigger>();
private boolean triggersEnabled = false;
private SimpleDistributionAgent agent;
+ public AbstractDistributionAgentFactory(Class<DistributionAgentMBeanType>
distributionAgentMBeanType) {
+ this.distributionAgentMBeanType = distributionAgentMBeanType;
+ }
+
void activate(BundleContext context, Map<String, Object> config) {
log.info("activating with config {}",
OsgiUtils.osgiPropertyMapToString(config));
@@ -115,12 +123,19 @@ abstract class AbstractDistributionAgent
componentReg =
context.registerService(DistributionAgent.class.getName(), agent, props);
agent.enable();
+
if (triggersEnabled) {
for (DistributionTrigger trigger : triggers) {
agent.enableTrigger(trigger);
}
}
+ Dictionary<String, String> mbeanProps = new
Hashtable<String, String>();
+ mbeanProps.put("jmx.objectname",
"org.apache.sling.distribution:type=agent,id=" + ObjectName.quote(agentName));
+
+ DistributionAgentMBeanType mbean = createMBeanAgent(agent,
config);
+ mbeanServiceRegistration =
context.registerService(distributionAgentMBeanType.getName(), mbean,
mbeanProps);
+
}
log.info("activated agent {}", agentName);
@@ -160,15 +175,29 @@ abstract class AbstractDistributionAgent
agent.disable();
}
- componentReg.unregister();
- componentReg = null;
+ if (safeUnregister(componentReg)) {
+ componentReg = null;
+ }
agent = null;
}
+ if (safeUnregister(mbeanServiceRegistration)) {
+ mbeanServiceRegistration = null;
+ }
+
log.info("deactivated agent {}", agentName);
}
+ private static boolean safeUnregister(ServiceRegistration
serviceRegistration) {
+ if (serviceRegistration != null) {
+ serviceRegistration.unregister();
+ return true;
+ }
+ return false;
+ }
protected abstract SimpleDistributionAgent createAgent(String agentName,
BundleContext context, Map<String, Object> config, DefaultDistributionLog
distributionLog);
+ protected abstract DistributionAgentMBeanType
createMBeanAgent(DistributionAgent agent, Map<String, Object>
osgiConfiguration);
+
}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java?rev=1763764&r1=1763763&r2=1763764&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java
Fri Oct 7 13:42:17 2016
@@ -39,10 +39,13 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.commons.scheduler.Scheduler;
import org.apache.sling.distribution.DistributionRequestType;
+import org.apache.sling.distribution.agent.DistributionAgent;
import
org.apache.sling.distribution.component.impl.DistributionComponentConstants;
import org.apache.sling.distribution.component.impl.SettingsUtils;
import org.apache.sling.distribution.event.impl.DistributionEventFactory;
import org.apache.sling.distribution.log.impl.DefaultDistributionLog;
+import
org.apache.sling.distribution.monitor.impl.ForwardDistributionAgentMBean;
+import
org.apache.sling.distribution.monitor.impl.ForwardDistributionAgentMBeanImpl;
import org.apache.sling.distribution.packaging.DistributionPackageBuilder;
import org.apache.sling.distribution.packaging.DistributionPackageExporter;
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
@@ -78,7 +81,7 @@ import org.osgi.service.cm.Configuration
policy = ReferencePolicy.DYNAMIC, cardinality =
ReferenceCardinality.OPTIONAL_MULTIPLE,
bind = "bindDistributionTrigger", unbind = "unbindDistributionTrigger")
@Property(name = "webconsole.configurationFactory.nameHint", value = "Agent
name: {name}")
-public class ForwardDistributionAgentFactory extends
AbstractDistributionAgentFactory {
+public class ForwardDistributionAgentFactory extends
AbstractDistributionAgentFactory<ForwardDistributionAgentMBean> {
@Property(label = "Name", description = "The name of the agent.")
public static final String NAME = DistributionComponentConstants.PN_NAME;
@@ -198,6 +201,10 @@ public class ForwardDistributionAgentFac
@Reference
private ConfigurationAdmin configAdmin;
+ public ForwardDistributionAgentFactory() {
+ super(ForwardDistributionAgentMBean.class);
+ }
+
@Activate
protected void activate(BundleContext context, Map<String, Object> config)
{
super.activate(context, config);
@@ -300,4 +307,10 @@ public class ForwardDistributionAgentFac
}
+
+ @Override
+ protected ForwardDistributionAgentMBean createMBeanAgent(DistributionAgent
agent, Map<String, Object> osgiConfiguration) {
+ return new ForwardDistributionAgentMBeanImpl(agent, osgiConfiguration);
+ }
+
}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java?rev=1763764&r1=1763763&r2=1763764&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java
Fri Oct 7 13:42:17 2016
@@ -33,10 +33,13 @@ import org.apache.jackrabbit.vault.packa
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.distribution.DistributionRequestType;
+import org.apache.sling.distribution.agent.DistributionAgent;
import
org.apache.sling.distribution.component.impl.DistributionComponentConstants;
import org.apache.sling.distribution.component.impl.SettingsUtils;
import org.apache.sling.distribution.event.impl.DistributionEventFactory;
import org.apache.sling.distribution.log.impl.DefaultDistributionLog;
+import org.apache.sling.distribution.monitor.impl.QueueDistributionAgentMBean;
+import
org.apache.sling.distribution.monitor.impl.QueueDistributionAgentMBeanImpl;
import org.apache.sling.distribution.packaging.DistributionPackageBuilder;
import org.apache.sling.distribution.packaging.DistributionPackageExporter;
import
org.apache.sling.distribution.packaging.impl.exporter.LocalDistributionPackageExporter;
@@ -68,7 +71,7 @@ import org.osgi.framework.BundleContext;
policy = ReferencePolicy.DYNAMIC, cardinality =
ReferenceCardinality.OPTIONAL_MULTIPLE,
bind = "bindDistributionTrigger", unbind = "unbindDistributionTrigger")
@Property(name="webconsole.configurationFactory.nameHint", value="Agent name:
{name}")
-public class QueueDistributionAgentFactory extends
AbstractDistributionAgentFactory {
+public class QueueDistributionAgentFactory extends
AbstractDistributionAgentFactory<QueueDistributionAgentMBean> {
@Property(label = "Name", description = "The name of the agent.")
public static final String NAME = DistributionComponentConstants.PN_NAME;
@@ -138,6 +141,10 @@ public class QueueDistributionAgentFacto
@Reference
private SlingRepository slingRepository;
+ public QueueDistributionAgentFactory() {
+ super(QueueDistributionAgentMBean.class);
+ }
+
@Activate
protected void activate(BundleContext context, Map<String, Object> config)
{
super.activate(context, config);
@@ -187,4 +194,10 @@ public class QueueDistributionAgentFacto
queueProvider, exportQueueStrategy, null,
distributionEventFactory, resourceResolverFactory, slingRepository,
distributionLog, allowedRequests, allowedRoots, 0);
}
+
+ @Override
+ protected QueueDistributionAgentMBean createMBeanAgent(DistributionAgent
agent, Map<String, Object> osgiConfiguration) {
+ return new QueueDistributionAgentMBeanImpl(agent, osgiConfiguration);
+ }
+
}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java?rev=1763764&r1=1763763&r2=1763764&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java
Fri Oct 7 13:42:17 2016
@@ -35,10 +35,14 @@ import org.apache.jackrabbit.vault.packa
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.distribution.DistributionRequestType;
+import org.apache.sling.distribution.agent.DistributionAgent;
import
org.apache.sling.distribution.component.impl.DistributionComponentConstants;
import org.apache.sling.distribution.component.impl.SettingsUtils;
import org.apache.sling.distribution.event.impl.DistributionEventFactory;
import org.apache.sling.distribution.log.impl.DefaultDistributionLog;
+import
org.apache.sling.distribution.monitor.impl.ReverseDistributionAgentMBean;
+import
org.apache.sling.distribution.monitor.impl.ReverseDistributionAgentMBeanImpl;
+import org.apache.sling.distribution.packaging.DistributionPackageBuilder;
import org.apache.sling.distribution.packaging.DistributionPackageExporter;
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
import
org.apache.sling.distribution.packaging.impl.exporter.RemoteDistributionPackageExporter;
@@ -47,7 +51,6 @@ import org.apache.sling.distribution.que
import
org.apache.sling.distribution.queue.impl.DistributionQueueDispatchingStrategy;
import org.apache.sling.distribution.queue.impl.SingleQueueDispatchingStrategy;
import
org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueueProvider;
-import org.apache.sling.distribution.packaging.DistributionPackageBuilder;
import
org.apache.sling.distribution.transport.DistributionTransportSecretProvider;
import org.apache.sling.distribution.trigger.DistributionTrigger;
import org.apache.sling.event.jobs.JobManager;
@@ -71,7 +74,7 @@ import org.osgi.framework.BundleContext;
policy = ReferencePolicy.DYNAMIC, cardinality =
ReferenceCardinality.OPTIONAL_MULTIPLE,
bind = "bindDistributionTrigger", unbind = "unbindDistributionTrigger")
@Property(name="webconsole.configurationFactory.nameHint", value="Agent name:
{name}")
-public class ReverseDistributionAgentFactory extends
AbstractDistributionAgentFactory {
+public class ReverseDistributionAgentFactory extends
AbstractDistributionAgentFactory<ReverseDistributionAgentMBean> {
@Property(label = "Name", description = "The name of the agent.")
public static final String NAME = DistributionComponentConstants.PN_NAME;
@@ -154,6 +157,9 @@ public class ReverseDistributionAgentFac
@Reference
private SlingRepository slingRepository;
+ public ReverseDistributionAgentFactory() {
+ super(ReverseDistributionAgentMBean.class);
+ }
@Activate
protected void activate(BundleContext context, Map<String, Object> config)
{
@@ -201,4 +207,10 @@ public class ReverseDistributionAgentFac
queueProvider, exportQueueStrategy, importQueueStrategy,
distributionEventFactory, resourceResolverFactory, slingRepository,
distributionLog, allowedRequests, null, 0);
}
+
+ @Override
+ protected ReverseDistributionAgentMBean createMBeanAgent(DistributionAgent
agent, Map<String, Object> osgiConfiguration) {
+ return new ReverseDistributionAgentMBeanImpl(agent, osgiConfiguration);
+ }
+
}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentFactory.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentFactory.java?rev=1763764&r1=1763763&r2=1763764&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentFactory.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentFactory.java
Fri Oct 7 13:42:17 2016
@@ -33,9 +33,12 @@ import org.apache.felix.scr.annotations.
import org.apache.felix.scr.annotations.ReferencePolicy;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.commons.osgi.PropertiesUtil;
+import org.apache.sling.distribution.agent.DistributionAgent;
import
org.apache.sling.distribution.component.impl.DistributionComponentConstants;
import org.apache.sling.distribution.event.impl.DistributionEventFactory;
import org.apache.sling.distribution.log.impl.DefaultDistributionLog;
+import org.apache.sling.distribution.monitor.impl.SimpleDistributionAgentMBean;
+import
org.apache.sling.distribution.monitor.impl.SimpleDistributionAgentMBeanImpl;
import org.apache.sling.distribution.packaging.DistributionPackageExporter;
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
import org.apache.sling.distribution.queue.DistributionQueueProvider;
@@ -62,7 +65,7 @@ import org.osgi.framework.BundleContext;
policy = ReferencePolicy.DYNAMIC, cardinality =
ReferenceCardinality.OPTIONAL_MULTIPLE,
bind = "bindDistributionTrigger", unbind = "unbindDistributionTrigger")
@Property(name="webconsole.configurationFactory.nameHint", value="Agent name:
{name}")
-public class SimpleDistributionAgentFactory extends
AbstractDistributionAgentFactory {
+public class SimpleDistributionAgentFactory extends
AbstractDistributionAgentFactory<SimpleDistributionAgentMBean> {
@Property(label = "Name", description = "The name of the agent.")
public static final String NAME = DistributionComponentConstants.PN_NAME;
@@ -132,6 +135,9 @@ public class SimpleDistributionAgentFact
@Reference
private SlingRepository slingRepository;
+ public SimpleDistributionAgentFactory() {
+ super(SimpleDistributionAgentMBean.class);
+ }
@Activate
protected void activate(BundleContext context, Map<String, Object> config)
{
@@ -171,4 +177,10 @@ public class SimpleDistributionAgentFact
distributionLog, null, null, 0);
}
+
+ @Override
+ protected SimpleDistributionAgentMBean createMBeanAgent(DistributionAgent
agent, Map<String, Object> osgiConfiguration) {
+ return new SimpleDistributionAgentMBeanImpl(agent, osgiConfiguration);
+ }
+
}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java?rev=1763764&r1=1763763&r2=1763764&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java
Fri Oct 7 13:42:17 2016
@@ -37,10 +37,13 @@ import org.apache.jackrabbit.vault.packa
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.distribution.DistributionRequestType;
+import org.apache.sling.distribution.agent.DistributionAgent;
import
org.apache.sling.distribution.component.impl.DistributionComponentConstants;
import org.apache.sling.distribution.component.impl.SettingsUtils;
import org.apache.sling.distribution.event.impl.DistributionEventFactory;
import org.apache.sling.distribution.log.impl.DefaultDistributionLog;
+import org.apache.sling.distribution.monitor.impl.SyncDistributionAgentMBean;
+import
org.apache.sling.distribution.monitor.impl.SyncDistributionAgentMBeanImpl;
import org.apache.sling.distribution.packaging.DistributionPackageBuilder;
import org.apache.sling.distribution.packaging.DistributionPackageExporter;
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
@@ -74,7 +77,7 @@ import org.osgi.framework.BundleContext;
policy = ReferencePolicy.DYNAMIC, cardinality =
ReferenceCardinality.OPTIONAL_MULTIPLE,
bind = "bindDistributionTrigger", unbind = "unbindDistributionTrigger")
@Property(name="webconsole.configurationFactory.nameHint", value="Agent name:
{name}")
-public class SyncDistributionAgentFactory extends
AbstractDistributionAgentFactory {
+public class SyncDistributionAgentFactory extends
AbstractDistributionAgentFactory<SyncDistributionAgentMBean> {
@Property(label = "Name", description = "The name of the agent.")
public static final String NAME = DistributionComponentConstants.PN_NAME;
@@ -178,6 +181,10 @@ public class SyncDistributionAgentFactor
@Reference
private SlingRepository slingRepository;
+ public SyncDistributionAgentFactory() {
+ super(SyncDistributionAgentMBean.class);
+ }
+
@Activate
protected void activate(BundleContext context, Map<String, Object> config)
{
super.activate(context, config);
@@ -252,4 +259,10 @@ public class SyncDistributionAgentFactor
distributionLog, allowedRequests, null, retryAttepts);
}
+
+ @Override
+ protected SyncDistributionAgentMBean createMBeanAgent(DistributionAgent
agent, Map<String, Object> osgiConfiguration) {
+ return new SyncDistributionAgentMBeanImpl(agent, osgiConfiguration);
+ }
+
}
Added:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBean.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBean.java?rev=1763764&view=auto
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBean.java
(added)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBean.java
Fri Oct 7 13:42:17 2016
@@ -0,0 +1,144 @@
+/*
+ * 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.sling.distribution.monitor.impl;
+
+/**
+ * The ForwardDistributionAgent MBean definition.
+ */
+public interface ForwardDistributionAgentMBean {
+
+ /**
+ * The name of the agent.
+ *
+ * @return the Name
+ */
+ String getName();
+
+ /**
+ * The display friendly title of the agent.
+ *
+ * @return the Title
+ */
+ String getTitle();
+
+ /**
+ * The display friendly details of the agent.
+ *
+ * @return the Details
+ */
+ String getDetails();
+
+ /**
+ * Whether or not to start the distribution agent.
+ *
+ * @return the Enabled
+ */
+ boolean isEnabled();
+
+ /**
+ * The name of the service used to access the repository.
+ *
+ * @return the Service Name
+ */
+ String getServiceName();
+
+ /**
+ * The log level recorded in the transient log accessible via http.
+ *
+ * @return the Log Level
+ */
+ String getLogLevel();
+
+ /**
+ * If set the agent will allow only distribution requests under the
specified roots.
+ *
+ * @return the Allowed roots
+ */
+ String getAllowedRoots();
+
+ /**
+ * Whether or not the distribution agent should process packages in the
queues.
+ *
+ * @return the Queue Processing Enabled
+ */
+ boolean isQueueProcessingEnabled();
+
+ /**
+ * List of endpoints to which packages are sent (imported). The list can
be given as a map in case a queue should be configured for each endpoint, e.g.
queueName=http://...
+ *
+ * @return the Importer Endpoints
+ */
+ String getPackageImporterEndpoints();
+
+ /**
+ * List of queues that should be disabled.These queues will gather all the
packages until they are removed explicitly.
+ *
+ * @return the Passive queues
+ */
+ String getPassiveQueues();
+
+ /**
+ * List of priority queues that should used for specific paths.The
selector format is {queuePrefix}[|{mainQueueMatcher}]={pathMatcher}, e.g.
french=/content/fr.*
+ *
+ * @return the Priority queues
+ */
+ String getPriorityQueues();
+
+ /**
+ * The strategy to apply after a certain number of failed retries.
+ *
+ * @return the Retry Strategy
+ */
+ String getRetryStrategy();
+
+ /**
+ * The number of times to retry until the retry strategy is applied.
+ *
+ * @return the Retry attempts
+ */
+ int getRetryAttempts();
+
+ /**
+ * The queue provider implementation.
+ *
+ * @return the Queue provider
+ */
+ String getQueueProvider();
+
+ /**
+ * Whether or not to use a separate delivery queue to maximize transport
throughput when queue has more than 100 items
+ *
+ * @return the Async delivery
+ */
+ boolean isAsyncDelivery();
+
+ /**
+ * The distribution agent status, usually one of:
+ * paused
+ * idle
+ * running
+ * blocked
+ *
+ *
+ * @return the distribution agent status
+ * @see org.apache.sling.distribution.agent.DistributionAgentState
+ */
+ String getStatus();
+
+}
Propchange:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBeanImpl.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBeanImpl.java?rev=1763764&view=auto
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBeanImpl.java
(added)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBeanImpl.java
Fri Oct 7 13:42:17 2016
@@ -0,0 +1,120 @@
+/*/*
+ * 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.sling.distribution.monitor.impl;
+
+import java.util.Map;
+
+import org.apache.sling.commons.osgi.PropertiesUtil;
+import org.apache.sling.distribution.agent.DistributionAgent;
+
+/**
+ * The ForwardDistributionAgent MBean implementation, based on the OSGi
configuration.
+ */
+public final class ForwardDistributionAgentMBeanImpl implements
ForwardDistributionAgentMBean {
+
+ private final DistributionAgent agent;
+
+ private final Map<String, Object> osgiConfiguration;
+
+ public ForwardDistributionAgentMBeanImpl(DistributionAgent agent,
Map<String, Object> osgiConfiguration) {
+ this.agent = agent;
+ this.osgiConfiguration = osgiConfiguration;
+ }
+
+ @Override
+ public String getName() {
+ return PropertiesUtil.toString(osgiConfiguration.get("name"), null);
+ }
+
+ @Override
+ public String getTitle() {
+ return PropertiesUtil.toString(osgiConfiguration.get("title"), null);
+ }
+
+ @Override
+ public String getDetails() {
+ return PropertiesUtil.toString(osgiConfiguration.get("details"), null);
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return PropertiesUtil.toBoolean(osgiConfiguration.get("enabled"),
true);
+ }
+
+ @Override
+ public String getServiceName() {
+ return PropertiesUtil.toString(osgiConfiguration.get("serviceName"),
null);
+ }
+
+ @Override
+ public String getLogLevel() {
+ return PropertiesUtil.toString(osgiConfiguration.get("log.level"),
"info");
+ }
+
+ @Override
+ public String getAllowedRoots() {
+ return PropertiesUtil.toString(osgiConfiguration.get("allowed.roots"),
null);
+ }
+
+ @Override
+ public boolean isQueueProcessingEnabled() {
+ return
PropertiesUtil.toBoolean(osgiConfiguration.get("queue.processing.enabled"),
true);
+ }
+
+ @Override
+ public String getPackageImporterEndpoints() {
+ return
PropertiesUtil.toString(osgiConfiguration.get("packageImporter.endpoints"),
null);
+ }
+
+ @Override
+ public String getPassiveQueues() {
+ return PropertiesUtil.toString(osgiConfiguration.get("passiveQueues"),
null);
+ }
+
+ @Override
+ public String getPriorityQueues() {
+ return
PropertiesUtil.toString(osgiConfiguration.get("priorityQueues"), null);
+ }
+
+ @Override
+ public String getRetryStrategy() {
+ return
PropertiesUtil.toString(osgiConfiguration.get("retry.strategy"), "none");
+ }
+
+ @Override
+ public int getRetryAttempts() {
+ return
PropertiesUtil.toInteger(osgiConfiguration.get("retry.attempts"), 100);
+ }
+
+ @Override
+ public String getQueueProvider() {
+ return
PropertiesUtil.toString(osgiConfiguration.get("queue.provider"), "jobs");
+ }
+
+ @Override
+ public boolean isAsyncDelivery() {
+ return
PropertiesUtil.toBoolean(osgiConfiguration.get("async.delivery"), false);
+ }
+
+
+ @Override
+ public String getStatus() {
+ return agent.getState().name().toLowerCase();
+ }
+}
Propchange:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBeanImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBean.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBean.java?rev=1763764&view=auto
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBean.java
(added)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBean.java
Fri Oct 7 13:42:17 2016
@@ -0,0 +1,95 @@
+/*
+ * 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.sling.distribution.monitor.impl;
+
+/**
+ * The QueueDistributionAgent MBean definition.
+ */
+public interface QueueDistributionAgentMBean {
+
+ /**
+ * The name of the agent.
+ *
+ * @return the Name
+ */
+ String getName();
+
+ /**
+ * The display friendly title of the agent.
+ *
+ * @return the Title
+ */
+ String getTitle();
+
+ /**
+ * The display friendly details of the agent.
+ *
+ * @return the Details
+ */
+ String getDetails();
+
+ /**
+ * Whether or not to start the distribution agent.
+ *
+ * @return the Enabled
+ */
+ boolean isEnabled();
+
+ /**
+ * The name of the service used to access the repository.
+ *
+ * @return the Service Name
+ */
+ String getServiceName();
+
+ /**
+ * The log level recorded in the transient log accessible via http.
+ *
+ * @return the Log Level
+ */
+ String getLogLevel();
+
+ /**
+ * If set the agent will allow only distribution requests under the
specified roots.
+ *
+ * @return the Allowed roots
+ */
+ String getAllowedRoots();
+
+ /**
+ * List of priority queues that should used for specific paths.The
selector format is {queuePrefix}[|{mainQueueMatcher}]={pathMatcher}, e.g.
french=/content/fr.*
+ *
+ * @return the Priority queues
+ */
+ String getPriorityQueues();
+
+ /**
+ * The distribution agent status, usually one of:
+ * paused
+ * idle
+ * running
+ * blocked
+ *
+ *
+ * @return the distribution agent status
+ * @see org.apache.sling.distribution.agent.DistributionAgentState
+ */
+ String getStatus();
+
+}
Propchange:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBeanImpl.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBeanImpl.java?rev=1763764&view=auto
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBeanImpl.java
(added)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBeanImpl.java
Fri Oct 7 13:42:17 2016
@@ -0,0 +1,85 @@
+/*/*
+ * 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.sling.distribution.monitor.impl;
+
+import java.util.Map;
+
+import org.apache.sling.commons.osgi.PropertiesUtil;
+import org.apache.sling.distribution.agent.DistributionAgent;
+
+/**
+ * The QueueDistributionAgent MBean implementation, based on the OSGi
configuration.
+ */
+public final class QueueDistributionAgentMBeanImpl implements
QueueDistributionAgentMBean {
+
+ private final DistributionAgent agent;
+
+ private final Map<String, Object> osgiConfiguration;
+
+ public QueueDistributionAgentMBeanImpl(DistributionAgent agent,
Map<String, Object> osgiConfiguration) {
+ this.agent = agent;
+ this.osgiConfiguration = osgiConfiguration;
+ }
+
+ @Override
+ public String getName() {
+ return PropertiesUtil.toString(osgiConfiguration.get("name"), null);
+ }
+
+ @Override
+ public String getTitle() {
+ return PropertiesUtil.toString(osgiConfiguration.get("title"), null);
+ }
+
+ @Override
+ public String getDetails() {
+ return PropertiesUtil.toString(osgiConfiguration.get("details"), null);
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return PropertiesUtil.toBoolean(osgiConfiguration.get("enabled"),
true);
+ }
+
+ @Override
+ public String getServiceName() {
+ return PropertiesUtil.toString(osgiConfiguration.get("serviceName"),
null);
+ }
+
+ @Override
+ public String getLogLevel() {
+ return PropertiesUtil.toString(osgiConfiguration.get("log.level"),
"info");
+ }
+
+ @Override
+ public String getAllowedRoots() {
+ return PropertiesUtil.toString(osgiConfiguration.get("allowed.roots"),
null);
+ }
+
+ @Override
+ public String getPriorityQueues() {
+ return
PropertiesUtil.toString(osgiConfiguration.get("priorityQueues"), null);
+ }
+
+ @Override
+ public String getStatus() {
+ return agent.getState().name().toLowerCase();
+ }
+
+}
Propchange:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBeanImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBean.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBean.java?rev=1763764&view=auto
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBean.java
(added)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBean.java
Fri Oct 7 13:42:17 2016
@@ -0,0 +1,102 @@
+/*
+ * 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.sling.distribution.monitor.impl;
+
+/**
+ * The ReverseDistributionAgent MBean definition.
+ */
+public interface ReverseDistributionAgentMBean {
+
+ /**
+ * The name of the agent.
+ *
+ * @return the Name
+ */
+ String getName();
+
+ /**
+ * The display friendly title of the agent.
+ *
+ * @return the Title
+ */
+ String getTitle();
+
+ /**
+ * The display friendly details of the agent.
+ *
+ * @return the Details
+ */
+ String getDetails();
+
+ /**
+ * Whether or not to start the distribution agent.
+ *
+ * @return the Enabled
+ */
+ boolean isEnabled();
+
+ /**
+ * The name of the service used to access the repository.
+ *
+ * @return the Service Name
+ */
+ String getServiceName();
+
+ /**
+ * The log level recorded in the transient log accessible via http.
+ *
+ * @return the Log Level
+ */
+ String getLogLevel();
+
+ /**
+ * Whether or not the distribution agent should process packages in the
queues.
+ *
+ * @return the Queue Processing Enabled
+ */
+ boolean isQueueProcessingEnabled();
+
+ /**
+ * List of endpoints from which packages are received (exported).
+ *
+ * @return the Importer Endpoints
+ */
+ String getPackageExporterEndpoints();
+
+ /**
+ * Number of subsequent pull requests to make.
+ *
+ * @return the Pull Items
+ */
+ int getPullItems();
+
+ /**
+ * The distribution agent status, usually one of:
+ * paused
+ * idle
+ * running
+ * blocked
+ *
+ *
+ * @return the distribution agent status
+ * @see org.apache.sling.distribution.agent.DistributionAgentState
+ */
+ String getStatus();
+
+}
Propchange:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBeanImpl.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBeanImpl.java?rev=1763764&view=auto
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBeanImpl.java
(added)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBeanImpl.java
Fri Oct 7 13:42:17 2016
@@ -0,0 +1,90 @@
+/*/*
+ * 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.sling.distribution.monitor.impl;
+
+import java.util.Map;
+
+import org.apache.sling.commons.osgi.PropertiesUtil;
+import org.apache.sling.distribution.agent.DistributionAgent;
+
+/**
+ * The ReverseDistributionAgent MBean implementation, based on the OSGi
configuration.
+ */
+public final class ReverseDistributionAgentMBeanImpl implements
ReverseDistributionAgentMBean {
+
+ private final DistributionAgent agent;
+
+ private final Map<String, Object> osgiConfiguration;
+
+ public ReverseDistributionAgentMBeanImpl(DistributionAgent agent,
Map<String, Object> osgiConfiguration) {
+ this.agent = agent;
+ this.osgiConfiguration = osgiConfiguration;
+ }
+
+ @Override
+ public String getName() {
+ return PropertiesUtil.toString(osgiConfiguration.get("name"), null);
+ }
+
+ @Override
+ public String getTitle() {
+ return PropertiesUtil.toString(osgiConfiguration.get("title"), null);
+ }
+
+ @Override
+ public String getDetails() {
+ return PropertiesUtil.toString(osgiConfiguration.get("details"), null);
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return PropertiesUtil.toBoolean(osgiConfiguration.get("enabled"),
true);
+ }
+
+ @Override
+ public String getServiceName() {
+ return PropertiesUtil.toString(osgiConfiguration.get("serviceName"),
null);
+ }
+
+ @Override
+ public String getLogLevel() {
+ return PropertiesUtil.toString(osgiConfiguration.get("log.level"),
"info");
+ }
+
+ @Override
+ public boolean isQueueProcessingEnabled() {
+ return
PropertiesUtil.toBoolean(osgiConfiguration.get("queue.processing.enabled"),
true);
+ }
+
+ @Override
+ public String getPackageExporterEndpoints() {
+ return
PropertiesUtil.toString(osgiConfiguration.get("packageExporter.endpoints"),
null);
+ }
+
+ @Override
+ public int getPullItems() {
+ return PropertiesUtil.toInteger(osgiConfiguration.get("pull.items"),
100);
+ }
+
+ @Override
+ public String getStatus() {
+ return agent.getState().name().toLowerCase();
+ }
+
+}
Propchange:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBeanImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBean.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBean.java?rev=1763764&view=auto
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBean.java
(added)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBean.java
Fri Oct 7 13:42:17 2016
@@ -0,0 +1,88 @@
+/*
+ * 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.sling.distribution.monitor.impl;
+
+/**
+ * The SimpleDistributionAgent MBean definition.
+ */
+public interface SimpleDistributionAgentMBean {
+
+ /**
+ * The name of the agent.
+ *
+ * @return the Name
+ */
+ String getName();
+
+ /**
+ * The display friendly title of the agent.
+ *
+ * @return the Title
+ */
+ String getTitle();
+
+ /**
+ * The display friendly details of the agent.
+ *
+ * @return the Details
+ */
+ String getDetails();
+
+ /**
+ * Whether or not to start the distribution agent.
+ *
+ * @return the Enabled
+ */
+ boolean isEnabled();
+
+ /**
+ * The name of the service used to access the repository.
+ *
+ * @return the Service Name
+ */
+ String getServiceName();
+
+ /**
+ * The log level recorded in the transient log accessible via http.
+ *
+ * @return the Log Level
+ */
+ String getLogLevel();
+
+ /**
+ * Whether or not the distribution agent should process packages in the
queues.
+ *
+ * @return the Queue Processing Enabled
+ */
+ boolean isQueueProcessingEnabled();
+
+ /**
+ * The distribution agent status, usually one of:
+ * paused
+ * idle
+ * running
+ * blocked
+ *
+ *
+ * @return the distribution agent status
+ * @see org.apache.sling.distribution.agent.DistributionAgentState
+ */
+ String getStatus();
+
+}
Propchange:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBeanImpl.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBeanImpl.java?rev=1763764&view=auto
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBeanImpl.java
(added)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBeanImpl.java
Fri Oct 7 13:42:17 2016
@@ -0,0 +1,80 @@
+/*/*
+ * 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.sling.distribution.monitor.impl;
+
+import java.util.Map;
+
+import org.apache.sling.commons.osgi.PropertiesUtil;
+import org.apache.sling.distribution.agent.DistributionAgent;
+
+/**
+ * The SimpleDistributionAgent MBean implementation, based on the OSGi
configuration.
+ */
+public final class SimpleDistributionAgentMBeanImpl implements
SimpleDistributionAgentMBean {
+
+ private final DistributionAgent agent;
+
+ private final Map<String, Object> osgiConfiguration;
+
+ public SimpleDistributionAgentMBeanImpl(DistributionAgent agent,
Map<String, Object> osgiConfiguration) {
+ this.agent = agent;
+ this.osgiConfiguration = osgiConfiguration;
+ }
+
+ @Override
+ public String getName() {
+ return PropertiesUtil.toString(osgiConfiguration.get("name"), null);
+ }
+
+ @Override
+ public String getTitle() {
+ return PropertiesUtil.toString(osgiConfiguration.get("title"), null);
+ }
+
+ @Override
+ public String getDetails() {
+ return PropertiesUtil.toString(osgiConfiguration.get("details"), null);
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return PropertiesUtil.toBoolean(osgiConfiguration.get("enabled"),
true);
+ }
+
+ @Override
+ public String getServiceName() {
+ return PropertiesUtil.toString(osgiConfiguration.get("serviceName"),
null);
+ }
+
+ @Override
+ public String getLogLevel() {
+ return PropertiesUtil.toString(osgiConfiguration.get("log.level"),
"info");
+ }
+
+ @Override
+ public boolean isQueueProcessingEnabled() {
+ return
PropertiesUtil.toBoolean(osgiConfiguration.get("queue.processing.enabled"),
true);
+ }
+
+ @Override
+ public String getStatus() {
+ return agent.getState().name().toLowerCase();
+ }
+
+}
Propchange:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBeanImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBean.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBean.java?rev=1763764&view=auto
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBean.java
(added)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBean.java
Fri Oct 7 13:42:17 2016
@@ -0,0 +1,130 @@
+/*
+ * 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.sling.distribution.monitor.impl;
+
+/**
+ * The SyncDistributionAgent MBean definition.
+ */
+public interface SyncDistributionAgentMBean {
+
+ /**
+ * The name of the agent.
+ *
+ * @return the Name
+ */
+ String getName();
+
+ /**
+ * The display friendly title of the agent.
+ *
+ * @return the Title
+ */
+ String getTitle();
+
+ /**
+ * The display friendly details of the agent.
+ *
+ * @return the Details
+ */
+ String getDetails();
+
+ /**
+ * Whether or not to start the distribution agent.
+ *
+ * @return the Enabled
+ */
+ boolean isEnabled();
+
+ /**
+ * The name of the service used to access the repository.
+ *
+ * @return the Service Name
+ */
+ String getServiceName();
+
+ /**
+ * The log level recorded in the transient log accessible via http.
+ *
+ * @return the Log Level
+ */
+ String getLogLevel();
+
+ /**
+ * Whether or not the distribution agent should process packages in the
queues.
+ *
+ * @return the Queue Processing Enabled
+ */
+ boolean isQueueProcessingEnabled();
+
+ /**
+ * List of queues that should be disabled.These queues will gather all the
packages until they are removed explicitly.
+ *
+ * @return the Passive queues
+ */
+ String getPassiveQueues();
+
+ /**
+ * List of endpoints from which packages are received (exported)
+ *
+ * @return the Exporter Endpoints
+ */
+ String getPackageExporterEndpoints();
+
+ /**
+ * List of endpoints to which packages are sent (imported). The list can
be given as a map in case a queue should be configured for each endpoint, e.g.
queueName=http://...
+ *
+ * @return the Importer Endpoints
+ */
+ String getPackageImporterEndpoints();
+
+ /**
+ * The strategy to apply after a certain number of failed retries.
+ *
+ * @return the Retry Strategy
+ */
+ String getRetryStrategy();
+
+ /**
+ * The number of times to retry until the retry strategy is applied.
+ *
+ * @return the Retry attempts
+ */
+ int getRetryAttempts();
+
+ /**
+ * Number of subsequent pull requests to make.
+ *
+ * @return the Pull Items
+ */
+ int getPullItems();
+
+ /**
+ * The distribution agent status, usually one of:
+ * paused
+ * idle
+ * running
+ * blocked
+ *
+ *
+ * @return the distribution agent status
+ * @see org.apache.sling.distribution.agent.DistributionAgentState
+ */
+ String getStatus();
+
+}
Propchange:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBeanImpl.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBeanImpl.java?rev=1763764&view=auto
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBeanImpl.java
(added)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBeanImpl.java
Fri Oct 7 13:42:17 2016
@@ -0,0 +1,110 @@
+/*/*
+ * 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.sling.distribution.monitor.impl;
+
+import java.util.Map;
+
+import org.apache.sling.commons.osgi.PropertiesUtil;
+import org.apache.sling.distribution.agent.DistributionAgent;
+
+/**
+ * The SyncDistributionAgent MBean implementation, based on the OSGi
configuration.
+ */
+public final class SyncDistributionAgentMBeanImpl implements
SyncDistributionAgentMBean {
+
+ private final DistributionAgent agent;
+
+ private final Map<String, Object> osgiConfiguration;
+
+ public SyncDistributionAgentMBeanImpl(DistributionAgent agent, Map<String,
Object> osgiConfiguration) {
+ this.agent = agent;
+ this.osgiConfiguration = osgiConfiguration;
+ }
+
+ @Override
+ public String getName() {
+ return PropertiesUtil.toString(osgiConfiguration.get("name"), null);
+ }
+
+ @Override
+ public String getTitle() {
+ return PropertiesUtil.toString(osgiConfiguration.get("title"), null);
+ }
+
+ @Override
+ public String getDetails() {
+ return PropertiesUtil.toString(osgiConfiguration.get("details"), null);
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return PropertiesUtil.toBoolean(osgiConfiguration.get("enabled"),
true);
+ }
+
+ @Override
+ public String getServiceName() {
+ return PropertiesUtil.toString(osgiConfiguration.get("serviceName"),
null);
+ }
+
+ @Override
+ public String getLogLevel() {
+ return PropertiesUtil.toString(osgiConfiguration.get("log.level"),
"info");
+ }
+
+ @Override
+ public boolean isQueueProcessingEnabled() {
+ return
PropertiesUtil.toBoolean(osgiConfiguration.get("queue.processing.enabled"),
true);
+ }
+
+ @Override
+ public String getPassiveQueues() {
+ return PropertiesUtil.toString(osgiConfiguration.get("passiveQueues"),
null);
+ }
+
+ @Override
+ public String getPackageExporterEndpoints() {
+ return
PropertiesUtil.toString(osgiConfiguration.get("packageExporter.endpoints"),
null);
+ }
+
+ @Override
+ public String getPackageImporterEndpoints() {
+ return
PropertiesUtil.toString(osgiConfiguration.get("packageImporter.endpoints"),
null);
+ }
+
+ @Override
+ public String getRetryStrategy() {
+ return
PropertiesUtil.toString(osgiConfiguration.get("retry.strategy"), "none");
+ }
+
+ @Override
+ public int getRetryAttempts() {
+ return
PropertiesUtil.toInteger(osgiConfiguration.get("retry.attempts"), 100);
+ }
+
+ @Override
+ public int getPullItems() {
+ return PropertiesUtil.toInteger(osgiConfiguration.get("pull.items"),
100);
+ }
+
+ @Override
+ public String getStatus() {
+ return agent.getState().name().toLowerCase();
+ }
+
+}
Propchange:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBeanImpl.java
------------------------------------------------------------------------------
svn:eol-style = native