You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by mp...@apache.org on 2014/11/17 17:00:18 UTC
svn commit: r1640176 - in /sling/trunk/contrib/extensions/distribution:
api/src/main/java/org/apache/sling/distribution/component/
core/src/main/java/org/apache/sling/distribution/agent/impl/
core/src/main/java/org/apache/sling/distribution/component/i...
Author: mpetria
Date: Mon Nov 17 16:00:18 2014
New Revision: 1640176
URL: http://svn.apache.org/r1640176
Log:
SLING-4153: Cleaning DistributionComponentFactory of all constants and making it a ConsumerType
Added:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryConstants.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentFactoryManager.java
Modified:
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentProvider.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/CoordinatingDistributionAgentFactory.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/component/impl/DefaultDistributionComponentFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/GenericDistributionComponentFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/ResourceBasedDistributionComponentFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/AdvancedRemoteDistributionPackageImporter.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/authentication/impl/UserCredentialsTransportAuthenticationProviderFactory.java
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/CoordinatingDistributionAgentFactoryTest.java
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryTest.java
Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentFactory.java Mon Nov 17 16:00:18 2014
@@ -23,308 +23,22 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.Map;
+import aQute.bnd.annotation.ConsumerType;
import aQute.bnd.annotation.ProviderType;
/**
- * factory for {@link DistributionComponent}s
+ * factory for {@link DistributionComponent}s.
+ * A client should register a component factory if it has custom implementations of distribution components.
*/
-@ProviderType
+@ConsumerType
public interface DistributionComponentFactory {
- /**
- * the type of the component
- */
- String COMPONENT_TYPE = "type";
-
- /**
- * the name of the component
- */
- String COMPONENT_NAME = "name";
-
- /**
- * type for components referencing OSGi services
- */
- String COMPONENT_TYPE_SERVICE = "service";
-
- /**
- * component enabled
- */
- String COMPONENT_ENABLED = "enabled";
-
-
- /**
- * distribution agent component
- */
- String COMPONENT_AGENT = "agent";
-
- /**
- * package exporter component
- */
- String COMPONENT_PACKAGE_EXPORTER = "packageExporter";
-
- /**
- * package importer component
- */
- String COMPONENT_PACKAGE_IMPORTER = "packageImporter";
-
- /**
- * request authorization strategy component
- */
- String COMPONENT_REQUEST_AUTHORIZATION_STRATEGY = "requestAuthorizationStrategy";
-
- /**
- * queue distribution strategy component
- */
- String COMPONENT_QUEUE_DISTRIBUTION_STRATEGY = "queueDistributionStrategy";
-
- /**
- * queue provider component
- */
- String COMPONENT_QUEUE_PROVIDER = "queueProvider";
-
- /**
- * trigger component
- */
- String COMPONENT_TRIGGER = "trigger";
-
- /**
- * package builder component
- */
- String COMPONENT_PACKAGE_BUILDER = "packageBuilder";
-
- /**
- * transport authentication provider component
- */
- String COMPONENT_TRANSPORT_AUTHENTICATION_PROVIDER = "transportAuthenticationProvider";
-
- /**
- * simple distribution agent type
- */
- String AGENT_SIMPLE = "simple";
-
- /**
- * service user property
- */
- String AGENT_SIMPLE_PROPERTY_SERVICE_NAME = "serviceName";
-
- /**
- * 'passive' property for agents (for defining "queueing agents")
- */
- String AGENT_SIMPLE_PROPERTY_IS_PASSIVE = "isPassive";
-
- /**
- * local package exporter type
- */
- String PACKAGE_EXPORTER_LOCAL = "local";
-
- /**
- * remote package exporter type
- */
- String PACKAGE_EXPORTER_REMOTE = "remote";
-
- /**
- * endpoints property
- */
- String PACKAGE_EXPORTER_REMOTE_PROPERTY_ENDPOINTS = "endpoints";
-
- /**
- * endpoint strategy property
- */
- String PACKAGE_EXPORTER_REMOTE_PROPERTY_ENDPOINTS_STRATEGY = "endpoints.strategy";
-
- /**
- * no. of items to poll property
- */
- String PACKAGE_EXPORTER_REMOTE_PROPERTY_POLL_ITEMS = "poll.items";
-
- /**
- * package exporter's agent property
- */
- String PACKAGE_EXPORTER_AGENT = "agent";
-
- /**
- * local package importer type
- */
- String PACKAGE_IMPORTER_LOCAL = "local";
-
- /**
- * remote package importer type
- */
- String PACKAGE_IMPORTER_REMOTE = "remote";
-
- /**
- * endpoints property
- */
- String PACKAGE_IMPORTER_REMOTE_PROPERTY_ENDPOINTS = "endpoints";
-
- /**
- * endpoint strategy property
- */
- String PACKAGE_IMPORTER_REMOTE_PROPERTY_ENDPOINTS_STRATEGY = "endpoints.strategy";
-
- /**
- * user property
- */
- String TRANSPORT_AUTHENTICATION_PROVIDER_USER = "user";
-
- /**
- * username property
- */
- String TRANSPORT_AUTHENTICATION_PROVIDER_USER_PROPERTY_USERNAME = "username";
-
- /**
- * password property
- */
- String TRANSPORT_AUTHENTICATION_PROVIDER_USER_PROPERTY_PASSWORD = "password";
-
- /**
- * remote event trigger type
- */
- String TRIGGER_REMOTE_EVENT = "remoteEvent";
-
- /**
- * remote event endpoint property
- */
- String TRIGGER_REMOTE_EVENT_PROPERTY_ENDPOINT = "endpoint";
-
- /**
- * resource event trigger type
- */
- String TRIGGER_RESOURCE_EVENT = "resourceEvent";
-
- /**
- * resource event path property
- */
- String TRIGGER_RESOURCE_EVENT_PROPERTY_PATH = "path";
-
- /**
- * scheduled trigger type
- */
- String TRIGGER_SCHEDULED_EVENT = "scheduledEvent";
-
- /**
- * scheduled trigger action property
- */
- String TRIGGER_SCHEDULED_EVENT_PROPERTY_ACTION = "action";
-
- /**
- * scheduled trigger path property
- */
- String TRIGGER_SCHEDULED_EVENT_PROPERTY_PATH = "path";
-
- /**
- * scheduled trigger seconds property
- */
- String TRIGGER_SCHEDULED_EVENT_PROPERTY_SECONDS = "seconds";
-
- /**
- * chain distribution trigger type
- */
- String TRIGGER_DISTRIBUTION_EVENT = "distributionEvent";
-
- /**
- * chain distribution path property
- */
- String TRIGGER_DISTRIBUTION_EVENT_PROPERTY_PATH = "path";
-
- /**
- * jcr event trigger type
- */
- String TRIGGER_JCR_EVENT = "jcrEvent";
-
- /**
- * jcr event trigger path property
- */
- String TRIGGER_JCR_EVENT_PROPERTY_PATH = "path";
-
- /**
- * jcr event trigger service user property
- */
- String TRIGGER_JCR_EVENT_PROPERTY_SERVICE_NAME = "servicename";
-
- /**
- * jcr persisting event trigger type
- */
- String TRIGGER_PERSISTED_JCR_EVENT = "persistedJcrEvent";
-
- /**
- * jcr persisting event trigger path property
- */
- String TRIGGER_PERSISTED_JCR_EVENT_PROPERTY_PATH = "path";
-
- /**
- * jcr persisting event trigger service user property
- */
- String TRIGGER_PERSISTED_JCR_EVENT_PROPERTY_SERVICE_NAME = "servicename";
-
- /**
- * jcr persisting event trigger nuggets path property
- */
- String TRIGGER_PERSISTED_JCR_EVENT_PROPERTY_NUGGETS_PATH = "nuggetsPath";
-
- /**
- * privilege request authorization strategy type
- */
- String REQUEST_AUTHORIZATION_STRATEGY_PRIVILEGE = "privilege";
-
- /**
- * privilege request authorization strategy jcr privilege property
- */
- String REQUEST_AUTHORIZATION_STRATEGY_PRIVILEGE_PROPERTY_JCR_PRIVILEGE = "jcrPrivilege";
-
- /**
- * file vault package builder type
- */
- String PACKAGE_BUILDER_FILEVLT = "vlt";
-
- /**
- * import mode property for file vault package builder
- */
- String PACKAGE_BUILDER_FILEVLT_IMPORT_MODE = "importMode";
-
- /**
- * ACL handling property for file vault package builder
- */
- String PACKAGE_BUILDER_FILEVLT_ACLHANDLING = "aclHandling";
-
- /**
- * queue provider job type
- */
- String QUEUE_PROVIDER_JOB = "job";
-
- /**
- * property for default topics
- */
- String QUEUE_PROVIDER_PROPERTY_QUEUE_PREFIX = "queue.prefix";
-
-
- /**
- * queue provider simple type
- */
- String QUEUE_PROVIDER_SIMPLE = "simple";
-
- /**
- * queue distribution strategy single type
- */
- String QUEUE_DISTRIBUTION_STRATEGY_SINGLE = "single";
-
- /**
- * queue distribution strategy priority type
- */
- String QUEUE_DISTRIBUTION_STRATEGY_PRIORITY = "priority";
-
- /**
- * queue distribution strategy priority paths property
- */
- String QUEUE_DISTRIBUTION_STRATEGY_PRIORITY_PROPERTY_PATHS = "priority.paths";
/**
* create a {@link DistributionComponent}
*
* @param type the {@link java.lang.Class} of the component to be created
* @param properties the properties to be supplied for the initialization of the component
- * @param componentProvider the {@link DistributionComponentProvider} used to eventually
- * wire additional required {@link DistributionComponent}s
* @param <ComponentType> the actual type of the {@link DistributionComponent}
* to be created
* @return a {@link DistributionComponent} of the specified type initialized with given properties or <code>null</code>
@@ -332,6 +46,5 @@ public interface DistributionComponentFa
*/
@CheckForNull
<ComponentType extends DistributionComponent> ComponentType createComponent(@Nonnull java.lang.Class<ComponentType> type,
- @Nonnull Map<String, Object> properties,
- @Nullable DistributionComponentProvider componentProvider);
+ @Nonnull Map<String, Object> properties);
}
Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentProvider.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentProvider.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentProvider.java (original)
+++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/component/DistributionComponentProvider.java Mon Nov 17 16:00:18 2014
@@ -22,12 +22,12 @@ import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import aQute.bnd.annotation.ConsumerType;
+import aQute.bnd.annotation.ProviderType;
/**
* provider for already existing {@link DistributionComponent}s
*/
-@ConsumerType
+@ProviderType
public interface DistributionComponentProvider {
/**
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/CoordinatingDistributionAgentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/CoordinatingDistributionAgentFactory.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/CoordinatingDistributionAgentFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/CoordinatingDistributionAgentFactory.java Mon Nov 17 16:00:18 2014
@@ -34,9 +34,10 @@ import org.apache.felix.scr.annotations.
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.distribution.agent.DistributionAgent;
import org.apache.sling.distribution.component.DistributionComponent;
-import org.apache.sling.distribution.component.DistributionComponentFactory;
import org.apache.sling.distribution.component.DistributionComponentProvider;
import org.apache.sling.distribution.component.ManagedDistributionComponent;
+import org.apache.sling.distribution.component.impl.DefaultDistributionComponentFactoryConstants;
+import org.apache.sling.distribution.component.impl.DistributionComponentFactoryManager;
import org.apache.sling.distribution.component.impl.SettingsUtils;
import org.apache.sling.distribution.event.impl.DistributionEventFactory;
import org.apache.sling.distribution.queue.DistributionQueueDispatchingStrategy;
@@ -65,37 +66,37 @@ import org.slf4j.LoggerFactory;
)
public class CoordinatingDistributionAgentFactory implements DistributionComponentProvider {
- private static final String TRANSPORT_AUTHENTICATION_PROVIDER_TARGET = DistributionComponentFactory.COMPONENT_TRANSPORT_AUTHENTICATION_PROVIDER + ".target";
+ private static final String TRANSPORT_AUTHENTICATION_PROVIDER_TARGET = DefaultDistributionComponentFactoryConstants.COMPONENT_TRANSPORT_AUTHENTICATION_PROVIDER + ".target";
private final Logger log = LoggerFactory.getLogger(getClass());
@Property(boolValue = true, label = "Enabled")
- private static final String ENABLED = DistributionComponentFactory.COMPONENT_ENABLED;
+ private static final String ENABLED = DefaultDistributionComponentFactoryConstants.COMPONENT_ENABLED;
- @Property(value = DistributionComponentFactory.AGENT_SIMPLE, propertyPrivate = true)
- private static final String TYPE = DistributionComponentFactory.COMPONENT_TYPE;
+ @Property(value = DefaultDistributionComponentFactoryConstants.AGENT_SIMPLE, propertyPrivate = true)
+ private static final String TYPE = DefaultDistributionComponentFactoryConstants.COMPONENT_TYPE;
@Property(label = "Name")
- public static final String NAME = DistributionComponentFactory.COMPONENT_NAME;
+ public static final String NAME = DefaultDistributionComponentFactoryConstants.COMPONENT_NAME;
@Property(boolValue = false, propertyPrivate = true)
- public static final String IS_PASSIVE = DistributionComponentFactory.AGENT_SIMPLE_PROPERTY_IS_PASSIVE;
+ public static final String IS_PASSIVE = DefaultDistributionComponentFactoryConstants.AGENT_SIMPLE_PROPERTY_IS_PASSIVE;
@Property(label = "Service Name")
- public static final String SERVICE_NAME = DistributionComponentFactory.AGENT_SIMPLE_PROPERTY_SERVICE_NAME;
+ public static final String SERVICE_NAME = DefaultDistributionComponentFactoryConstants.AGENT_SIMPLE_PROPERTY_SERVICE_NAME;
@Property(label = "Request Authorization Strategy Properties", cardinality = 100)
- public static final String REQUEST_AUTHORIZATION_STRATEGY = DistributionComponentFactory.COMPONENT_REQUEST_AUTHORIZATION_STRATEGY;
+ public static final String REQUEST_AUTHORIZATION_STRATEGY = DefaultDistributionComponentFactoryConstants.COMPONENT_REQUEST_AUTHORIZATION_STRATEGY;
@Property(label = "Package Exporter Properties", cardinality = 100)
- public static final String PACKAGE_EXPORTER = DistributionComponentFactory.COMPONENT_PACKAGE_EXPORTER;
+ public static final String PACKAGE_EXPORTER = DefaultDistributionComponentFactoryConstants.COMPONENT_PACKAGE_EXPORTER;
@Property(label = "Package Importer Properties", cardinality = 100)
- public static final String PACKAGE_IMPORTER = DistributionComponentFactory.COMPONENT_PACKAGE_IMPORTER;
+ public static final String PACKAGE_IMPORTER = DefaultDistributionComponentFactoryConstants.COMPONENT_PACKAGE_IMPORTER;
@Property(label = "Trigger Properties", cardinality = 100)
- public static final String TRIGGER = DistributionComponentFactory.COMPONENT_TRIGGER;
+ public static final String TRIGGER = DefaultDistributionComponentFactoryConstants.COMPONENT_TRIGGER;
@Property(label = "Target TransportAuthenticationProvider", name = TRANSPORT_AUTHENTICATION_PROVIDER_TARGET)
@Reference(name = "transportAuthenticationProvider")
@@ -111,7 +112,7 @@ public class CoordinatingDistributionAge
private JobManager jobManager;
@Reference
- private DistributionComponentFactory componentFactory;
+ private DistributionComponentFactoryManager componentManager;
private BundleContext savedContext;
@@ -160,8 +161,9 @@ public class CoordinatingDistributionAge
((Map) properties.get(PACKAGE_EXPORTER)).put("type", "remote");
((Map) properties.get(PACKAGE_IMPORTER)).put("type", "remote");
+ properties.put(DefaultDistributionComponentFactoryConstants.COMPONENT_PROVIDER, this);
- DistributionAgent agent = componentFactory.createComponent(DistributionAgent.class, properties, this);
+ DistributionAgent agent = componentManager.createComponent(DistributionAgent.class, properties);
log.debug("activated agent {}", agentName);
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=1640176&r1=1640175&r2=1640176&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 Mon Nov 17 16:00:18 2014
@@ -39,6 +39,8 @@ import org.apache.sling.distribution.com
import org.apache.sling.distribution.component.DistributionComponentFactory;
import org.apache.sling.distribution.component.DistributionComponentProvider;
import org.apache.sling.distribution.component.ManagedDistributionComponent;
+import org.apache.sling.distribution.component.impl.DefaultDistributionComponentFactoryConstants;
+import org.apache.sling.distribution.component.impl.DistributionComponentFactoryManager;
import org.apache.sling.distribution.component.impl.SettingsUtils;
import org.apache.sling.distribution.event.impl.DistributionEventFactory;
import org.apache.sling.distribution.queue.DistributionQueueDispatchingStrategy;
@@ -67,36 +69,36 @@ import org.slf4j.LoggerFactory;
)
public class SimpleDistributionAgentFactory implements DistributionComponentProvider {
- private static final String TRANSPORT_AUTHENTICATION_PROVIDER_TARGET = DistributionComponentFactory.COMPONENT_TRANSPORT_AUTHENTICATION_PROVIDER + ".target";
+ private static final String TRANSPORT_AUTHENTICATION_PROVIDER_TARGET = DefaultDistributionComponentFactoryConstants.COMPONENT_TRANSPORT_AUTHENTICATION_PROVIDER + ".target";
private final Logger log = LoggerFactory.getLogger(getClass());
@Property(boolValue = true, label = "Enabled")
- private static final String ENABLED = DistributionComponentFactory.COMPONENT_ENABLED;
+ private static final String ENABLED = DefaultDistributionComponentFactoryConstants.COMPONENT_ENABLED;
- @Property(value = DistributionComponentFactory.AGENT_SIMPLE, propertyPrivate = true)
- private static final String TYPE = DistributionComponentFactory.COMPONENT_TYPE;
+ @Property(value = DefaultDistributionComponentFactoryConstants.AGENT_SIMPLE, propertyPrivate = true)
+ private static final String TYPE = DefaultDistributionComponentFactoryConstants.COMPONENT_TYPE;
@Property(label = "Name")
- public static final String NAME = DistributionComponentFactory.COMPONENT_NAME;
+ public static final String NAME = DefaultDistributionComponentFactoryConstants.COMPONENT_NAME;
@Property(boolValue = false, label = "Use this agent as a passive one (only queueing)")
- public static final String IS_PASSIVE = DistributionComponentFactory.AGENT_SIMPLE_PROPERTY_IS_PASSIVE;
+ public static final String IS_PASSIVE = DefaultDistributionComponentFactoryConstants.AGENT_SIMPLE_PROPERTY_IS_PASSIVE;
@Property(label = "Request Authorization Strategy Properties", cardinality = 100)
- public static final String REQUEST_AUTHORIZATION_STRATEGY = DistributionComponentFactory.COMPONENT_REQUEST_AUTHORIZATION_STRATEGY;
+ public static final String REQUEST_AUTHORIZATION_STRATEGY = DefaultDistributionComponentFactoryConstants.COMPONENT_REQUEST_AUTHORIZATION_STRATEGY;
@Property(label = "Package Exporter Properties", cardinality = 100)
- public static final String PACKAGE_EXPORTER = DistributionComponentFactory.COMPONENT_PACKAGE_EXPORTER;
+ public static final String PACKAGE_EXPORTER = DefaultDistributionComponentFactoryConstants.COMPONENT_PACKAGE_EXPORTER;
@Property(label = "Package Importer Properties", cardinality = 100)
- public static final String PACKAGE_IMPORTER = DistributionComponentFactory.COMPONENT_PACKAGE_IMPORTER;
+ public static final String PACKAGE_IMPORTER = DefaultDistributionComponentFactoryConstants.COMPONENT_PACKAGE_IMPORTER;
@Property(label = "Trigger Properties", cardinality = 100)
- public static final String TRIGGER = DistributionComponentFactory.COMPONENT_TRIGGER;
+ public static final String TRIGGER = DefaultDistributionComponentFactoryConstants.COMPONENT_TRIGGER;
@Property(label = "Service Name")
- public static final String SERVICE_NAME = DistributionComponentFactory.AGENT_SIMPLE_PROPERTY_SERVICE_NAME;
+ public static final String SERVICE_NAME = DefaultDistributionComponentFactoryConstants.AGENT_SIMPLE_PROPERTY_SERVICE_NAME;
@Property(label = "Target TransportAuthenticationProvider", name = TRANSPORT_AUTHENTICATION_PROVIDER_TARGET)
@Reference(name = "transportAuthenticationProvider", policy = ReferencePolicy.DYNAMIC,
@@ -113,7 +115,7 @@ public class SimpleDistributionAgentFact
private JobManager jobManager;
@Reference
- private DistributionComponentFactory componentFactory;
+ private DistributionComponentFactoryManager componentFactoryManager;
private ServiceRegistration componentReg;
private BundleContext savedContext;
@@ -139,7 +141,7 @@ public class SimpleDistributionAgentFact
agentName = PropertiesUtil.toString(config.get(NAME), null);
props.put(NAME, agentName);
- if (componentReg == null && componentFactory != null) {
+ if (componentReg == null && componentFactoryManager != null) {
String[] requestAuthProperties = PropertiesUtil.toStringArray(config.get(REQUEST_AUTHORIZATION_STRATEGY), new String[0]);
String[] packageImporterProperties = PropertiesUtil.toStringArray(config.get(PACKAGE_IMPORTER), new String[0]);
@@ -153,10 +155,11 @@ public class SimpleDistributionAgentFact
properties.put(PACKAGE_IMPORTER, SettingsUtils.parseLines(packageImporterProperties));
properties.put(PACKAGE_EXPORTER, SettingsUtils.parseLines(packageExporterProperties));
properties.put(TRIGGER, SettingsUtils.parseLines(triggerProperties));
+ properties.put(DefaultDistributionComponentFactoryConstants.COMPONENT_PROVIDER, this);
DistributionAgent agent = null;
try {
- agent = componentFactory.createComponent(DistributionAgent.class, properties, this);
+ agent = componentFactoryManager.createComponent(DistributionAgent.class, properties);
}
catch (IllegalArgumentException e) {
log.warn("cannot create agent", e);
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactory.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactory.java Mon Nov 17 16:00:18 2014
@@ -25,10 +25,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
+import org.apache.felix.scr.annotations.*;
import org.apache.jackrabbit.vault.packaging.Packaging;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.commons.osgi.PropertiesUtil;
@@ -72,6 +69,7 @@ import org.apache.sling.jcr.api.SlingRep
import org.osgi.framework.BundleContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static org.apache.sling.distribution.component.impl.DefaultDistributionComponentFactoryConstants.*;
/**
* A generic factory for distribution components using a compact configuration, already existing OSGi services
@@ -88,6 +86,7 @@ import org.slf4j.LoggerFactory;
immediate = true
)
@Service(DistributionComponentFactory.class)
+@Property(name = "name", value = "default")
public class DefaultDistributionComponentFactory implements DistributionComponentFactory, DistributionComponentProvider {
private final Logger log = LoggerFactory.getLogger(getClass());
@@ -118,9 +117,9 @@ public class DefaultDistributionComponen
}
public <ComponentType extends DistributionComponent> ComponentType createComponent(@Nonnull Class<ComponentType> type,
- @Nonnull Map<String, Object> properties,
- @Nullable DistributionComponentProvider componentProvider) {
+ @Nonnull Map<String, Object> properties) {
+ DistributionComponentProvider componentProvider = (DistributionComponentProvider) properties.get(COMPONENT_PROVIDER);
if (componentProvider == null) {
componentProvider = this;
}
@@ -142,9 +141,9 @@ public class DefaultDistributionComponen
DistributionAgent createAgent(Map<String, Object> properties, DistributionComponentProvider componentProvider) {
- String factory = PropertiesUtil.toString(properties.get(COMPONENT_TYPE), DistributionComponentFactory.AGENT_SIMPLE);
+ String factory = PropertiesUtil.toString(properties.get(COMPONENT_TYPE), AGENT_SIMPLE);
- if (DistributionComponentFactory.AGENT_SIMPLE.equals(factory)) {
+ if (AGENT_SIMPLE.equals(factory)) {
String agentName = PropertiesUtil.toString(properties.get(COMPONENT_NAME), null);
@@ -168,9 +167,9 @@ public class DefaultDistributionComponen
List<DistributionTrigger> triggers = createTriggerList(triggersProperties, componentProvider);
- String serviceName = PropertiesUtil.toString(properties.get(DistributionComponentFactory.AGENT_SIMPLE_PROPERTY_SERVICE_NAME), null);
+ String serviceName = PropertiesUtil.toString(properties.get(AGENT_SIMPLE_PROPERTY_SERVICE_NAME), null);
- boolean isPassive = PropertiesUtil.toBoolean(properties.get(DistributionComponentFactory.AGENT_SIMPLE_PROPERTY_IS_PASSIVE), false);
+ boolean isPassive = PropertiesUtil.toBoolean(properties.get(AGENT_SIMPLE_PROPERTY_IS_PASSIVE), false);
return new SimpleDistributionAgent(agentName, isPassive, serviceName,
packageImporter, packageExporter, packageExporterStrategy,
Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryConstants.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryConstants.java?rev=1640176&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryConstants.java (added)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryConstants.java Mon Nov 17 16:00:18 2014
@@ -0,0 +1,317 @@
+/*
+ * 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.component.impl;
+
+/**
+ * Contains the string constants used by {@link DefaultDistributionComponentFactory}
+ */
+public final class DefaultDistributionComponentFactoryConstants {
+ /**
+ * the type of the component
+ */
+ public static final String COMPONENT_TYPE = "type";
+
+ /**
+ * the name of the component
+ */
+ public static final String COMPONENT_NAME = "name";
+
+ /**
+ * type for components referencing OSGi services
+ */
+ public static final String COMPONENT_TYPE_SERVICE = "service";
+
+ /**
+ * property that contains a custom component provider
+ */
+ public static final String COMPONENT_PROVIDER = "componentProvider";
+
+ /**
+ * component enabled
+ */
+ public static final String COMPONENT_ENABLED = "enabled";
+
+
+ /**
+ * distribution agent component
+ */
+ public static final String COMPONENT_AGENT = "agent";
+
+ /**
+ * package exporter component
+ */
+ public static final String COMPONENT_PACKAGE_EXPORTER = "packageExporter";
+
+ /**
+ * package importer component
+ */
+ public static final String COMPONENT_PACKAGE_IMPORTER = "packageImporter";
+
+ /**
+ * request authorization strategy component
+ */
+ public static final String COMPONENT_REQUEST_AUTHORIZATION_STRATEGY = "requestAuthorizationStrategy";
+
+ /**
+ * queue distribution strategy component
+ */
+ public static final String COMPONENT_QUEUE_DISTRIBUTION_STRATEGY = "queueDistributionStrategy";
+
+ /**
+ * queue provider component
+ */
+ public static final String COMPONENT_QUEUE_PROVIDER = "queueProvider";
+
+ /**
+ * trigger component
+ */
+ public static final String COMPONENT_TRIGGER = "trigger";
+
+ /**
+ * package builder component
+ */
+ public static final String COMPONENT_PACKAGE_BUILDER = "packageBuilder";
+
+ /**
+ * transport authentication provider component
+ */
+ public static final String COMPONENT_TRANSPORT_AUTHENTICATION_PROVIDER = "transportAuthenticationProvider";
+
+ /**
+ * simple distribution agent type
+ */
+ public static final String AGENT_SIMPLE = "simple";
+
+ /**
+ * service user property
+ */
+ public static final String AGENT_SIMPLE_PROPERTY_SERVICE_NAME = "serviceName";
+
+ /**
+ * 'passive' property for agents (for defining "queueing agents")
+ */
+ public static final String AGENT_SIMPLE_PROPERTY_IS_PASSIVE = "isPassive";
+
+ /**
+ * local package exporter type
+ */
+ public static final String PACKAGE_EXPORTER_LOCAL = "local";
+
+ /**
+ * remote package exporter type
+ */
+ public static final String PACKAGE_EXPORTER_REMOTE = "remote";
+
+ /**
+ * endpoints property
+ */
+ public static final String PACKAGE_EXPORTER_REMOTE_PROPERTY_ENDPOINTS = "endpoints";
+
+ /**
+ * endpoint strategy property
+ */
+ public static final String PACKAGE_EXPORTER_REMOTE_PROPERTY_ENDPOINTS_STRATEGY = "endpoints.strategy";
+
+ /**
+ * no. of items to poll property
+ */
+ public static final String PACKAGE_EXPORTER_REMOTE_PROPERTY_POLL_ITEMS = "poll.items";
+
+ /**
+ * package exporter's agent property
+ */
+ public static final String PACKAGE_EXPORTER_AGENT = "agent";
+
+ /**
+ * local package importer type
+ */
+ public static final String PACKAGE_IMPORTER_LOCAL = "local";
+
+ /**
+ * remote package importer type
+ */
+ public static final String PACKAGE_IMPORTER_REMOTE = "remote";
+
+ /**
+ * endpoints property
+ */
+ public static final String PACKAGE_IMPORTER_REMOTE_PROPERTY_ENDPOINTS = "endpoints";
+
+ /**
+ * endpoint strategy property
+ */
+ public static final String PACKAGE_IMPORTER_REMOTE_PROPERTY_ENDPOINTS_STRATEGY = "endpoints.strategy";
+
+ /**
+ * user property
+ */
+ public static final String TRANSPORT_AUTHENTICATION_PROVIDER_USER = "user";
+
+ /**
+ * username property
+ */
+ public static final String TRANSPORT_AUTHENTICATION_PROVIDER_USER_PROPERTY_USERNAME = "username";
+
+ /**
+ * password property
+ */
+ public static final String TRANSPORT_AUTHENTICATION_PROVIDER_USER_PROPERTY_PASSWORD = "password";
+
+ /**
+ * remote event trigger type
+ */
+ public static final String TRIGGER_REMOTE_EVENT = "remoteEvent";
+
+ /**
+ * remote event endpoint property
+ */
+ public static final String TRIGGER_REMOTE_EVENT_PROPERTY_ENDPOINT = "endpoint";
+
+ /**
+ * resource event trigger type
+ */
+ public static final String TRIGGER_RESOURCE_EVENT = "resourceEvent";
+
+ /**
+ * resource event path property
+ */
+ public static final String TRIGGER_RESOURCE_EVENT_PROPERTY_PATH = "path";
+
+ /**
+ * scheduled trigger type
+ */
+ public static final String TRIGGER_SCHEDULED_EVENT = "scheduledEvent";
+
+ /**
+ * scheduled trigger action property
+ */
+ public static final String TRIGGER_SCHEDULED_EVENT_PROPERTY_ACTION = "action";
+
+ /**
+ * scheduled trigger path property
+ */
+ public static final String TRIGGER_SCHEDULED_EVENT_PROPERTY_PATH = "path";
+
+ /**
+ * scheduled trigger seconds property
+ */
+ public static final String TRIGGER_SCHEDULED_EVENT_PROPERTY_SECONDS = "seconds";
+
+ /**
+ * chain distribution trigger type
+ */
+ public static final String TRIGGER_DISTRIBUTION_EVENT = "distributionEvent";
+
+ /**
+ * chain distribution path property
+ */
+ public static final String TRIGGER_DISTRIBUTION_EVENT_PROPERTY_PATH = "path";
+
+ /**
+ * jcr event trigger type
+ */
+ public static final String TRIGGER_JCR_EVENT = "jcrEvent";
+
+ /**
+ * jcr event trigger path property
+ */
+ public static final String TRIGGER_JCR_EVENT_PROPERTY_PATH = "path";
+
+ /**
+ * jcr event trigger service user property
+ */
+ public static final String TRIGGER_JCR_EVENT_PROPERTY_SERVICE_NAME = "servicename";
+
+ /**
+ * jcr persisting event trigger type
+ */
+ public static final String TRIGGER_PERSISTED_JCR_EVENT = "persistedJcrEvent";
+
+ /**
+ * jcr persisting event trigger path property
+ */
+ public static final String TRIGGER_PERSISTED_JCR_EVENT_PROPERTY_PATH = "path";
+
+ /**
+ * jcr persisting event trigger service user property
+ */
+ public static final String TRIGGER_PERSISTED_JCR_EVENT_PROPERTY_SERVICE_NAME = "servicename";
+
+ /**
+ * jcr persisting event trigger nuggets path property
+ */
+ public static final String TRIGGER_PERSISTED_JCR_EVENT_PROPERTY_NUGGETS_PATH = "nuggetsPath";
+
+ /**
+ * privilege request authorization strategy type
+ */
+ public static final String REQUEST_AUTHORIZATION_STRATEGY_PRIVILEGE = "privilege";
+
+ /**
+ * privilege request authorization strategy jcr privilege property
+ */
+ public static final String REQUEST_AUTHORIZATION_STRATEGY_PRIVILEGE_PROPERTY_JCR_PRIVILEGE = "jcrPrivilege";
+
+ /**
+ * file vault package builder type
+ */
+ public static final String PACKAGE_BUILDER_FILEVLT = "vlt";
+
+ /**
+ * import mode property for file vault package builder
+ */
+ public static final String PACKAGE_BUILDER_FILEVLT_IMPORT_MODE = "importMode";
+
+ /**
+ * ACL handling property for file vault package builder
+ */
+ public static final String PACKAGE_BUILDER_FILEVLT_ACLHANDLING = "aclHandling";
+
+ /**
+ * queue provider job type
+ */
+ public static final String QUEUE_PROVIDER_JOB = "job";
+
+ /**
+ * property for default topics
+ */
+ public static final String QUEUE_PROVIDER_PROPERTY_QUEUE_PREFIX = "queue.prefix";
+
+
+ /**
+ * queue provider simple type
+ */
+ public static final String QUEUE_PROVIDER_SIMPLE = "simple";
+
+ /**
+ * queue distribution strategy single type
+ */
+ public static final String QUEUE_DISTRIBUTION_STRATEGY_SINGLE = "single";
+
+ /**
+ * queue distribution strategy priority type
+ */
+ public static final String QUEUE_DISTRIBUTION_STRATEGY_PRIORITY = "priority";
+
+ /**
+ * queue distribution strategy priority paths property
+ */
+ public static final String QUEUE_DISTRIBUTION_STRATEGY_PRIORITY_PROPERTY_PATHS = "priority.paths";
+
+}
Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentFactoryManager.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentFactoryManager.java?rev=1640176&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentFactoryManager.java (added)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentFactoryManager.java Mon Nov 17 16:00:18 2014
@@ -0,0 +1,72 @@
+/*
+ * 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.component.impl;
+
+import org.apache.felix.scr.annotations.*;
+import org.apache.sling.distribution.component.DistributionComponent;
+import org.apache.sling.distribution.component.DistributionComponentFactory;
+
+
+import javax.annotation.Nonnull;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Manager of all {@link DistributionComponentFactory}s. The manager iterates through all of them to create a suitable component.
+ */
+@Component
+@References({
+ @Reference(name = "distributionComponentFactory", referenceInterface = DistributionComponentFactory.class, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC),
+})
+@Service(DistributionComponentFactoryManager.class)
+public class DistributionComponentFactoryManager implements DistributionComponentFactory {
+
+
+
+ Map<String, DistributionComponentFactory> distributionComponentFactoryMap = new ConcurrentHashMap<String, DistributionComponentFactory>();
+
+
+
+ protected void bindDistributionComponentFactory(DistributionComponentFactory distributionComponentFactory, Map<String, Object> config) {
+
+ String name = (String) config.get("name");
+ if (name != null) {
+ distributionComponentFactoryMap.put(name, distributionComponentFactory);
+ }
+ }
+
+ protected void unbindDistributionComponentFactory(DistributionComponentFactory distributionComponentFactory, Map<String, Object> config) {
+
+ String name = (String) config.get("name");
+ if (name != null) {
+ distributionComponentFactoryMap.remove(name);
+ }
+ }
+
+ public <ComponentType extends DistributionComponent> ComponentType createComponent(@Nonnull Class<ComponentType> type, @Nonnull Map<String, Object> properties) {
+ for (DistributionComponentFactory distributionComponentFactory : distributionComponentFactoryMap.values()) {
+ ComponentType component = distributionComponentFactory.createComponent(type, properties);
+ if (component != null) {
+ return component;
+ }
+ }
+
+ return null;
+ }
+}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/GenericDistributionComponentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/GenericDistributionComponentFactory.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/GenericDistributionComponentFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/GenericDistributionComponentFactory.java Mon Nov 17 16:00:18 2014
@@ -36,7 +36,6 @@ import org.apache.felix.scr.annotations.
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.distribution.agent.DistributionAgent;
import org.apache.sling.distribution.component.DistributionComponent;
-import org.apache.sling.distribution.component.DistributionComponentFactory;
import org.apache.sling.distribution.component.DistributionComponentProvider;
import org.apache.sling.distribution.component.ManagedDistributionComponent;
import org.apache.sling.distribution.resources.impl.OsgiUtils;
@@ -57,16 +56,16 @@ import org.slf4j.LoggerFactory;
policy = ConfigurationPolicy.REQUIRE
)
public class GenericDistributionComponentFactory implements DistributionComponentProvider {
- private static final String TRANSPORT_AUTHENTICATION_PROVIDER_TARGET = DistributionComponentFactory.COMPONENT_TRANSPORT_AUTHENTICATION_PROVIDER + ".target";
+ private static final String TRANSPORT_AUTHENTICATION_PROVIDER_TARGET = DefaultDistributionComponentFactoryConstants.COMPONENT_TRANSPORT_AUTHENTICATION_PROVIDER + ".target";
private final Logger log = LoggerFactory.getLogger(getClass());
@Property(boolValue = true, label = "Enabled")
- private static final String ENABLED = DistributionComponentFactory.COMPONENT_ENABLED;
+ private static final String ENABLED = DefaultDistributionComponentFactoryConstants.COMPONENT_ENABLED;
@Property(label = "Name")
- public static final String NAME = DistributionComponentFactory.COMPONENT_NAME;
+ public static final String NAME = DefaultDistributionComponentFactoryConstants.COMPONENT_NAME;
@Property(label = "Properties")
public static final String PROPERTIES = "properties";
@@ -78,7 +77,8 @@ public class GenericDistributionComponen
private SlingSettingsService settingsService;
@Reference
- private DistributionComponentFactory componentFactory;
+ private DistributionComponentFactoryManager componentManager;
+
@Property(label = "Target TransportAuthenticationProvider", name = TRANSPORT_AUTHENTICATION_PROVIDER_TARGET)
@Reference(name = "transportAuthenticationProvider", policy = ReferencePolicy.DYNAMIC, cardinality = ReferenceCardinality.OPTIONAL_UNARY)
@@ -120,16 +120,17 @@ public class GenericDistributionComponen
String componentClass = null;
Object componentObject = null;
+ properties.put(DefaultDistributionComponentFactoryConstants.COMPONENT_PROVIDER, this);
try {
- if (DistributionComponentFactory.COMPONENT_AGENT.equals(componentType)) {
- DistributionAgent agent = componentFactory.createComponent(DistributionAgent.class, properties, this);
+ if (DefaultDistributionComponentFactoryConstants.COMPONENT_AGENT.equals(componentType)) {
+ DistributionAgent agent = componentManager.createComponent(DistributionAgent.class, properties);
componentClass = DistributionAgent.class.getName();
componentObject = agent;
- } else if (DistributionComponentFactory.COMPONENT_TRIGGER.equals(componentType)) {
+ } else if (DefaultDistributionComponentFactoryConstants.COMPONENT_TRIGGER.equals(componentType)) {
- DistributionTrigger trigger = componentFactory.createComponent(DistributionTrigger.class, properties, this);
+ DistributionTrigger trigger = componentManager.createComponent(DistributionTrigger.class, properties);
componentClass = DistributionTrigger.class.getName();
componentObject = trigger;
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/ResourceBasedDistributionComponentFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/ResourceBasedDistributionComponentFactory.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/ResourceBasedDistributionComponentFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/ResourceBasedDistributionComponentFactory.java Mon Nov 17 16:00:18 2014
@@ -23,7 +23,6 @@ import org.apache.sling.api.SlingConstan
import org.apache.sling.api.resource.*;
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.distribution.agent.DistributionAgent;
-import org.apache.sling.distribution.component.DistributionComponentFactory;
import org.apache.sling.distribution.component.ManagedDistributionComponent;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
@@ -71,7 +70,8 @@ public class ResourceBasedDistributionCo
@Reference
- DistributionComponentFactory componentFactory;
+ private DistributionComponentFactoryManager componentManager;
+
@Reference
ResourceResolverFactory resourceResolverFactory;
@@ -186,7 +186,7 @@ public class ResourceBasedDistributionCo
Map<String, Object> componentConfig = extractMap(0, resource);
putMap(0, componentConfig, config);
- config.put(DistributionComponentFactory.COMPONENT_NAME, name);
+ config.put(DefaultDistributionComponentFactoryConstants.COMPONENT_NAME, name);
register(name, config);
} catch (LoginException e) {
@@ -263,7 +263,7 @@ public class ResourceBasedDistributionCo
if ("agent".equals(kind)) {
componentClass = DistributionAgent.class.getName();
- componentObject = componentFactory.createComponent(DistributionAgent.class, config, null);
+ componentObject = componentManager.createComponent(DistributionAgent.class, config);
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterFactory.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterFactory.java Mon Nov 17 16:00:18 2014
@@ -36,8 +36,9 @@ import org.apache.sling.commons.osgi.Pro
import org.apache.sling.distribution.agent.DistributionAgent;
import org.apache.sling.distribution.communication.DistributionRequest;
import org.apache.sling.distribution.component.DistributionComponent;
-import org.apache.sling.distribution.component.DistributionComponentFactory;
import org.apache.sling.distribution.component.DistributionComponentProvider;
+import org.apache.sling.distribution.component.impl.DefaultDistributionComponentFactoryConstants;
+import org.apache.sling.distribution.component.impl.DistributionComponentFactoryManager;
import org.apache.sling.distribution.component.impl.SettingsUtils;
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageExportException;
@@ -54,11 +55,11 @@ import org.slf4j.LoggerFactory;
public class AgentDistributionPackageExporterFactory implements DistributionPackageExporter, DistributionComponentProvider {
private final Logger log = LoggerFactory.getLogger(getClass());
- @Property(value = DistributionComponentFactory.PACKAGE_EXPORTER_AGENT, propertyPrivate = true)
- private static final String TYPE = DistributionComponentFactory.COMPONENT_TYPE;
+ @Property(value = DefaultDistributionComponentFactoryConstants.PACKAGE_EXPORTER_AGENT, propertyPrivate = true)
+ private static final String TYPE = DefaultDistributionComponentFactoryConstants.COMPONENT_TYPE;
@Property
- private static final String NAME = DistributionComponentFactory.COMPONENT_NAME;
+ private static final String NAME = DefaultDistributionComponentFactoryConstants.COMPONENT_NAME;
@Property(label = "Target DistributionAgent", name = "DistributionAgent.target")
@Reference(name = "DistributionAgent", policy = ReferencePolicy.STATIC)
@@ -66,10 +67,10 @@ public class AgentDistributionPackageExp
@Property(label = "Package Builder Properties", cardinality = 100)
- public static final String PACKAGE_BUILDER = DistributionComponentFactory.COMPONENT_PACKAGE_BUILDER;
+ public static final String PACKAGE_BUILDER = DefaultDistributionComponentFactoryConstants.COMPONENT_PACKAGE_BUILDER;
@Reference
- DistributionComponentFactory distributionComponentFactory;
+ private DistributionComponentFactoryManager componentManager;
private DistributionPackageExporter packageExporter;
@@ -81,8 +82,9 @@ public class AgentDistributionPackageExp
properties.putAll(config);
String[] packageBuilderProperties = PropertiesUtil.toStringArray(config.get(PACKAGE_BUILDER));
properties.put(PACKAGE_BUILDER, SettingsUtils.parseLines(packageBuilderProperties));
+ properties.put(DefaultDistributionComponentFactoryConstants.COMPONENT_PROVIDER, this);
- packageExporter = distributionComponentFactory.createComponent(DistributionPackageExporter.class, properties, this);
+ packageExporter = componentManager.createComponent(DistributionPackageExporter.class, properties);
}
@Nonnull
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterFactory.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterFactory.java Mon Nov 17 16:00:18 2014
@@ -32,7 +32,8 @@ import org.apache.felix.scr.annotations.
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.distribution.communication.DistributionRequest;
-import org.apache.sling.distribution.component.DistributionComponentFactory;
+import org.apache.sling.distribution.component.impl.DefaultDistributionComponentFactoryConstants;
+import org.apache.sling.distribution.component.impl.DistributionComponentFactoryManager;
import org.apache.sling.distribution.component.impl.SettingsUtils;
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageExportException;
@@ -54,17 +55,17 @@ public class LocalDistributionPackageExp
private final Logger log = LoggerFactory.getLogger(getClass());
- @Property(value = DistributionComponentFactory.PACKAGE_EXPORTER_LOCAL, propertyPrivate = true)
- private static final String TYPE = DistributionComponentFactory.COMPONENT_TYPE;
+ @Property(value = DefaultDistributionComponentFactoryConstants.PACKAGE_EXPORTER_LOCAL, propertyPrivate = true)
+ private static final String TYPE = DefaultDistributionComponentFactoryConstants.COMPONENT_TYPE;
@Property
- private static final String NAME = DistributionComponentFactory.COMPONENT_NAME;
+ private static final String NAME = DefaultDistributionComponentFactoryConstants.COMPONENT_NAME;
@Property(label = "Package Builder Properties", cardinality = 100)
- public static final String PACKAGE_BUILDER = DistributionComponentFactory.COMPONENT_PACKAGE_BUILDER;
+ public static final String PACKAGE_BUILDER = DefaultDistributionComponentFactoryConstants.COMPONENT_PACKAGE_BUILDER;
@Reference
- DistributionComponentFactory distributionComponentFactory;
+ private DistributionComponentFactoryManager componentManager;
private DistributionPackageExporter exporter;
@@ -75,7 +76,7 @@ public class LocalDistributionPackageExp
String[] packageBuilderProperties = PropertiesUtil.toStringArray(config.get(PACKAGE_BUILDER));
properties.put(PACKAGE_BUILDER, SettingsUtils.parseLines(packageBuilderProperties));
- exporter = distributionComponentFactory.createComponent(DistributionPackageExporter.class, properties, null);
+ exporter = componentManager.createComponent(DistributionPackageExporter.class, properties);
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java Mon Nov 17 16:00:18 2014
@@ -37,8 +37,9 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.commons.osgi.PropertiesUtil;
import org.apache.sling.distribution.communication.DistributionRequest;
import org.apache.sling.distribution.component.DistributionComponent;
-import org.apache.sling.distribution.component.DistributionComponentFactory;
import org.apache.sling.distribution.component.DistributionComponentProvider;
+import org.apache.sling.distribution.component.impl.DefaultDistributionComponentFactoryConstants;
+import org.apache.sling.distribution.component.impl.DistributionComponentFactoryManager;
import org.apache.sling.distribution.component.impl.SettingsUtils;
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageExportException;
@@ -57,23 +58,23 @@ import org.slf4j.LoggerFactory;
policy = ConfigurationPolicy.REQUIRE)
@Service(value = DistributionPackageExporter.class)
public class RemoteDistributionPackageExporterFactory implements DistributionPackageExporter, DistributionComponentProvider {
- private static final String TRANSPORT_AUTHENTICATION_PROVIDER_TARGET = DistributionComponentFactory.COMPONENT_TRANSPORT_AUTHENTICATION_PROVIDER + ".target";
+ private static final String TRANSPORT_AUTHENTICATION_PROVIDER_TARGET = DefaultDistributionComponentFactoryConstants.COMPONENT_TRANSPORT_AUTHENTICATION_PROVIDER + ".target";
private final Logger log = LoggerFactory.getLogger(getClass());
- @Property(value = DistributionComponentFactory.PACKAGE_EXPORTER_REMOTE, propertyPrivate = true)
- private static final String TYPE = DistributionComponentFactory.COMPONENT_TYPE;
+ @Property(value = DefaultDistributionComponentFactoryConstants.PACKAGE_EXPORTER_REMOTE, propertyPrivate = true)
+ private static final String TYPE = DefaultDistributionComponentFactoryConstants.COMPONENT_TYPE;
@Property
- private static final String NAME = DistributionComponentFactory.COMPONENT_NAME;
+ private static final String NAME = DefaultDistributionComponentFactoryConstants.COMPONENT_NAME;
@Property(name = TRANSPORT_AUTHENTICATION_PROVIDER_TARGET)
@Reference(name = "TransportAuthenticationProvider", policy = ReferencePolicy.STATIC)
private volatile TransportAuthenticationProvider transportAuthenticationProvider;
@Property(cardinality = 100)
- public static final String ENDPOINTS = DistributionComponentFactory.PACKAGE_EXPORTER_REMOTE_PROPERTY_ENDPOINTS;
+ public static final String ENDPOINTS = DefaultDistributionComponentFactoryConstants.PACKAGE_EXPORTER_REMOTE_PROPERTY_ENDPOINTS;
@Property(name = "poll items", description = "number of subsequent poll requests to make", intValue = 1)
public static final String POLL_ITEMS = "poll.items";
@@ -87,14 +88,14 @@ public class RemoteDistributionPackageEx
)},
value = "One"
)
- private static final String ENDPOINT_STRATEGY = DistributionComponentFactory.PACKAGE_EXPORTER_REMOTE_PROPERTY_ENDPOINTS_STRATEGY;
+ private static final String ENDPOINT_STRATEGY = DefaultDistributionComponentFactoryConstants.PACKAGE_EXPORTER_REMOTE_PROPERTY_ENDPOINTS_STRATEGY;
@Property(label = "Package Builder Properties", cardinality = 100)
- public static final String PACKAGE_BUILDER = DistributionComponentFactory.COMPONENT_PACKAGE_BUILDER;
+ public static final String PACKAGE_BUILDER = DefaultDistributionComponentFactoryConstants.COMPONENT_PACKAGE_BUILDER;
@Reference
- private DistributionComponentFactory distributionComponentFactory;
+ private DistributionComponentFactoryManager componentManager;
private DistributionPackageExporter exporter;
@@ -104,8 +105,9 @@ public class RemoteDistributionPackageEx
properties.putAll(config);
String[] packageBuilderProperties = PropertiesUtil.toStringArray(config.get(PACKAGE_BUILDER));
properties.put(PACKAGE_BUILDER, SettingsUtils.parseLines(packageBuilderProperties));
+ properties.put(DefaultDistributionComponentFactoryConstants.COMPONENT_PROVIDER, this);
- exporter = distributionComponentFactory.createComponent(DistributionPackageExporter.class, properties, this);
+ exporter = componentManager.createComponent(DistributionPackageExporter.class, properties);
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/AdvancedRemoteDistributionPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/AdvancedRemoteDistributionPackageImporter.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/AdvancedRemoteDistributionPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/AdvancedRemoteDistributionPackageImporter.java Mon Nov 17 16:00:18 2014
@@ -34,7 +34,7 @@ import org.apache.felix.scr.annotations.
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.commons.osgi.PropertiesUtil;
-import org.apache.sling.distribution.component.DistributionComponentFactory;
+import org.apache.sling.distribution.component.impl.DefaultDistributionComponentFactoryConstants;
import org.apache.sling.distribution.event.impl.DistributionEventFactory;
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageImportException;
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
policy = ConfigurationPolicy.REQUIRE)
@Service(value = DistributionPackageImporter.class)
public class AdvancedRemoteDistributionPackageImporter implements DistributionPackageImporter {
- private static final String TRANSPORT_AUTHENTICATION_PROVIDER_TARGET = DistributionComponentFactory.COMPONENT_TRANSPORT_AUTHENTICATION_PROVIDER + ".target";
+ private static final String TRANSPORT_AUTHENTICATION_PROVIDER_TARGET = DefaultDistributionComponentFactoryConstants.COMPONENT_TRANSPORT_AUTHENTICATION_PROVIDER + ".target";
private final Logger log = LoggerFactory.getLogger(getClass());
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java Mon Nov 17 16:00:18 2014
@@ -31,7 +31,8 @@ import org.apache.felix.scr.annotations.
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.commons.osgi.PropertiesUtil;
-import org.apache.sling.distribution.component.DistributionComponentFactory;
+import org.apache.sling.distribution.component.impl.DefaultDistributionComponentFactoryConstants;
+import org.apache.sling.distribution.component.impl.DistributionComponentFactoryManager;
import org.apache.sling.distribution.component.impl.SettingsUtils;
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageImportException;
@@ -52,18 +53,19 @@ import org.slf4j.LoggerFactory;
public class LocalDistributionPackageImporterFactory implements DistributionPackageImporter {
private final Logger log = LoggerFactory.getLogger(getClass());
- @Property(value = DistributionComponentFactory.PACKAGE_IMPORTER_LOCAL, propertyPrivate = true)
- private static final String TYPE = DistributionComponentFactory.COMPONENT_TYPE;
+ @Property(value = DefaultDistributionComponentFactoryConstants.PACKAGE_IMPORTER_LOCAL, propertyPrivate = true)
+ private static final String TYPE = DefaultDistributionComponentFactoryConstants.COMPONENT_TYPE;
@Property
- private static final String NAME = DistributionComponentFactory.COMPONENT_NAME;
+ private static final String NAME = DefaultDistributionComponentFactoryConstants.COMPONENT_NAME;
@Property(label = "Package Builder Properties", cardinality = 100)
- public static final String PACKAGE_BUILDER = DistributionComponentFactory.COMPONENT_PACKAGE_BUILDER;
+ public static final String PACKAGE_BUILDER = DefaultDistributionComponentFactoryConstants.COMPONENT_PACKAGE_BUILDER;
@Reference
- private DistributionComponentFactory componentFactory;
+ private DistributionComponentFactoryManager componentManager;
+
private DistributionPackageImporter importer;
@@ -74,7 +76,7 @@ public class LocalDistributionPackageImp
String[] packageBuilderProperties = PropertiesUtil.toStringArray(config.get(PACKAGE_BUILDER));
properties.put(PACKAGE_BUILDER, SettingsUtils.parseLines(packageBuilderProperties));
- importer = componentFactory.createComponent(DistributionPackageImporter.class, properties, null);
+ importer = componentManager.createComponent(DistributionPackageImporter.class, properties);
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java Mon Nov 17 16:00:18 2014
@@ -34,13 +34,13 @@ import org.apache.felix.scr.annotations.
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.distribution.component.DistributionComponent;
-import org.apache.sling.distribution.component.DistributionComponentFactory;
import org.apache.sling.distribution.component.DistributionComponentProvider;
+import org.apache.sling.distribution.component.impl.DefaultDistributionComponentFactoryConstants;
+import org.apache.sling.distribution.component.impl.DistributionComponentFactoryManager;
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageImportException;
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
import org.apache.sling.distribution.transport.authentication.TransportAuthenticationProvider;
-import org.osgi.framework.BundleContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -54,23 +54,23 @@ import org.slf4j.LoggerFactory;
policy = ConfigurationPolicy.REQUIRE)
@Service(value = DistributionPackageImporter.class)
public class RemoteDistributionPackageImporterFactory implements DistributionPackageImporter, DistributionComponentProvider {
- private static final String TRANSPORT_AUTHENTICATION_PROVIDER_TARGET = DistributionComponentFactory.COMPONENT_TRANSPORT_AUTHENTICATION_PROVIDER + ".target";
+ private static final String TRANSPORT_AUTHENTICATION_PROVIDER_TARGET = DefaultDistributionComponentFactoryConstants.COMPONENT_TRANSPORT_AUTHENTICATION_PROVIDER + ".target";
private final Logger log = LoggerFactory.getLogger(getClass());
- @Property(value = DistributionComponentFactory.PACKAGE_IMPORTER_REMOTE, propertyPrivate = true)
- private static final String TYPE = DistributionComponentFactory.COMPONENT_TYPE;
+ @Property(value = DefaultDistributionComponentFactoryConstants.PACKAGE_IMPORTER_REMOTE, propertyPrivate = true)
+ private static final String TYPE = DefaultDistributionComponentFactoryConstants.COMPONENT_TYPE;
@Property
- private static final String NAME = DistributionComponentFactory.COMPONENT_NAME;
+ private static final String NAME = DefaultDistributionComponentFactoryConstants.COMPONENT_NAME;
@Property(name = TRANSPORT_AUTHENTICATION_PROVIDER_TARGET)
@Reference(name = "TransportAuthenticationProvider", policy = ReferencePolicy.STATIC)
private volatile TransportAuthenticationProvider transportAuthenticationProvider;
@Property(cardinality = 100)
- public static final String ENDPOINTS = DistributionComponentFactory.PACKAGE_IMPORTER_REMOTE_PROPERTY_ENDPOINTS;
+ public static final String ENDPOINTS = DefaultDistributionComponentFactoryConstants.PACKAGE_IMPORTER_REMOTE_PROPERTY_ENDPOINTS;
@Property(options = {
@PropertyOption(name = "All",
@@ -81,12 +81,13 @@ public class RemoteDistributionPackageIm
)},
value = "One"
)
- private static final String ENDPOINT_STRATEGY = DistributionComponentFactory.PACKAGE_IMPORTER_REMOTE_PROPERTY_ENDPOINTS_STRATEGY;
+ private static final String ENDPOINT_STRATEGY = DefaultDistributionComponentFactoryConstants.PACKAGE_IMPORTER_REMOTE_PROPERTY_ENDPOINTS_STRATEGY;
private DistributionPackageImporter importer;
@Reference
- DistributionComponentFactory distributionComponentFactory;
+ private DistributionComponentFactoryManager componentManager;
+
@Activate
protected void activate(Map<String, Object> config) {
@@ -94,7 +95,9 @@ public class RemoteDistributionPackageIm
Map<String, Object> properties = new HashMap<String, Object>();
properties.putAll(config);
- importer = distributionComponentFactory.createComponent(DistributionPackageImporter.class, properties, this);
+ properties.put(DefaultDistributionComponentFactoryConstants.COMPONENT_PROVIDER, this);
+
+ importer = componentManager.createComponent(DistributionPackageImporter.class, properties);
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/authentication/impl/UserCredentialsTransportAuthenticationProviderFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/authentication/impl/UserCredentialsTransportAuthenticationProviderFactory.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/authentication/impl/UserCredentialsTransportAuthenticationProviderFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/authentication/impl/UserCredentialsTransportAuthenticationProviderFactory.java Mon Nov 17 16:00:18 2014
@@ -25,7 +25,8 @@ import org.apache.felix.scr.annotations.
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
-import org.apache.sling.distribution.component.DistributionComponentFactory;
+import org.apache.sling.distribution.component.impl.DefaultDistributionComponentFactoryConstants;
+import org.apache.sling.distribution.component.impl.DistributionComponentFactoryManager;
import org.apache.sling.distribution.transport.authentication.TransportAuthenticationContext;
import org.apache.sling.distribution.transport.authentication.TransportAuthenticationException;
import org.apache.sling.distribution.transport.authentication.TransportAuthenticationProvider;
@@ -40,26 +41,27 @@ import org.slf4j.LoggerFactory;
public class UserCredentialsTransportAuthenticationProviderFactory implements
TransportAuthenticationProvider {
- @Property(value = DistributionComponentFactory.TRANSPORT_AUTHENTICATION_PROVIDER_USER, propertyPrivate = true)
- private static final String TYPE = DistributionComponentFactory.COMPONENT_TYPE;
+ @Property(value = DefaultDistributionComponentFactoryConstants.TRANSPORT_AUTHENTICATION_PROVIDER_USER, propertyPrivate = true)
+ private static final String TYPE = DefaultDistributionComponentFactoryConstants.COMPONENT_TYPE;
@Property
- public final static String USERNAME = DistributionComponentFactory.TRANSPORT_AUTHENTICATION_PROVIDER_USER_PROPERTY_USERNAME;
+ public final static String USERNAME = DefaultDistributionComponentFactoryConstants.TRANSPORT_AUTHENTICATION_PROVIDER_USER_PROPERTY_USERNAME;
@Property
- public final static String PASSWORD = DistributionComponentFactory.TRANSPORT_AUTHENTICATION_PROVIDER_USER_PROPERTY_PASSWORD;
+ public final static String PASSWORD = DefaultDistributionComponentFactoryConstants.TRANSPORT_AUTHENTICATION_PROVIDER_USER_PROPERTY_PASSWORD;
private final Logger log = LoggerFactory.getLogger(getClass());
@Reference
- DistributionComponentFactory distributionComponentFactory;
+ private DistributionComponentFactoryManager componentManager;
+
private TransportAuthenticationProvider transportAuthenticationProvider;
public void activate(Map<String, Object> config) {
- transportAuthenticationProvider = distributionComponentFactory.createComponent(TransportAuthenticationProvider.class, config, null);
+ transportAuthenticationProvider = componentManager.createComponent(TransportAuthenticationProvider.class, config);
}
public Object authenticate(Object authenticable, TransportAuthenticationContext context)
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/CoordinatingDistributionAgentFactoryTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/CoordinatingDistributionAgentFactoryTest.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/CoordinatingDistributionAgentFactoryTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/CoordinatingDistributionAgentFactoryTest.java Mon Nov 17 16:00:18 2014
@@ -23,7 +23,8 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.sling.distribution.agent.DistributionAgent;
-import org.apache.sling.distribution.component.DistributionComponentFactory;
+import org.apache.sling.distribution.component.impl.DefaultDistributionComponentFactoryConstants;
+import org.apache.sling.distribution.component.impl.DistributionComponentFactoryManager;
import org.junit.Test;
import org.osgi.framework.BundleContext;
@@ -84,15 +85,17 @@ public class CoordinatingDistributionAge
"endpoints[1]=http://localhost:102/libs/sling/distribution/services/importers/default",
"endpoints[2]=http://localhost:103/libs/sling/distribution/services/importers/default",
"endpoints.strategy=All"});
- DistributionComponentFactory distributionComponentFactory = mock(DistributionComponentFactory.class);
+ DistributionComponentFactoryManager componentManager = mock(DistributionComponentFactoryManager.class);
DistributionAgent distributionAgent = mock(DistributionAgent.class);
CoordinatingDistributionAgentFactory coordinatingdistributionAgentFactory = new CoordinatingDistributionAgentFactory();
- when(distributionComponentFactory.createComponent(DistributionAgent.class, config, coordinatingdistributionAgentFactory)).
+
+ config.put(DefaultDistributionComponentFactoryConstants.COMPONENT_PROVIDER, coordinatingdistributionAgentFactory);
+ when(componentManager.createComponent(DistributionAgent.class, config)).
thenReturn(distributionAgent);
- Field componentFactory = coordinatingdistributionAgentFactory.getClass().getDeclaredField("componentFactory");
- componentFactory.setAccessible(true);
- componentFactory.set(coordinatingdistributionAgentFactory, distributionComponentFactory);
+ Field componentManagerField= coordinatingdistributionAgentFactory.getClass().getDeclaredField("componentManager");
+ componentManagerField.setAccessible(true);
+ componentManagerField.set(coordinatingdistributionAgentFactory, componentManager);
coordinatingdistributionAgentFactory.activate(context, config);
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryTest.java?rev=1640176&r1=1640175&r2=1640176&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentFactoryTest.java Mon Nov 17 16:00:18 2014
@@ -51,7 +51,7 @@ public class DefaultDistributionComponen
DistributionAgent agent = mock(DistributionAgent.class);
when(provider.getComponent(DistributionAgent.class, name)).thenReturn(agent);
try {
- defaultdistributionComponentFactory.createComponent(DistributionAgent.class, properties, provider);
+ defaultdistributionComponentFactory.createComponent(DistributionAgent.class, properties);
fail("agents cannot be referenced by service name using the factory");
}
catch (IllegalArgumentException e) {
@@ -68,7 +68,9 @@ public class DefaultDistributionComponen
DistributionComponentProvider provider = mock(DistributionComponentProvider.class);
DistributionTrigger trigger = mock(DistributionTrigger.class);
when(provider.getComponent(DistributionTrigger.class, name)).thenReturn(trigger);
- DistributionTrigger component = defaultdistributionComponentFactory.createComponent(DistributionTrigger.class, properties, provider);
+ properties.put(DefaultDistributionComponentFactoryConstants.COMPONENT_PROVIDER, provider);
+
+ DistributionTrigger component = defaultdistributionComponentFactory.createComponent(DistributionTrigger.class, properties);
assertNotNull(component);
}
@@ -81,7 +83,9 @@ public class DefaultDistributionComponen
DistributionComponentProvider provider = mock(DistributionComponentProvider.class);
TransportAuthenticationProvider authenticationProvider = mock(TransportAuthenticationProvider.class);
when(provider.getComponent(TransportAuthenticationProvider.class, name)).thenReturn(authenticationProvider);
- TransportAuthenticationProvider component = defaultdistributionComponentFactory.createComponent(TransportAuthenticationProvider.class, properties, provider);
+ properties.put(DefaultDistributionComponentFactoryConstants.COMPONENT_PROVIDER, provider);
+
+ TransportAuthenticationProvider component = defaultdistributionComponentFactory.createComponent(TransportAuthenticationProvider.class, properties);
assertNotNull(component);
}
@@ -94,7 +98,9 @@ public class DefaultDistributionComponen
DistributionComponentProvider provider = mock(DistributionComponentProvider.class);
DistributionPackageImporter importer = mock(DistributionPackageImporter.class);
when(provider.getComponent(DistributionPackageImporter.class, name)).thenReturn(importer);
- DistributionPackageImporter component = defaultdistributionComponentFactory.createComponent(DistributionPackageImporter.class, properties, provider);
+ properties.put(DefaultDistributionComponentFactoryConstants.COMPONENT_PROVIDER, provider);
+
+ DistributionPackageImporter component = defaultdistributionComponentFactory.createComponent(DistributionPackageImporter.class, properties);
assertNotNull(component);
}
@@ -107,7 +113,9 @@ public class DefaultDistributionComponen
DistributionComponentProvider provider = mock(DistributionComponentProvider.class);
DistributionPackageExporter exporter = mock(DistributionPackageExporter.class);
when(provider.getComponent(DistributionPackageExporter.class, name)).thenReturn(exporter);
- DistributionPackageExporter component = defaultdistributionComponentFactory.createComponent(DistributionPackageExporter.class, properties, provider);
+ properties.put(DefaultDistributionComponentFactoryConstants.COMPONENT_PROVIDER, provider);
+
+ DistributionPackageExporter component = defaultdistributionComponentFactory.createComponent(DistributionPackageExporter.class, properties);
assertNotNull(component);
}