You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2015/01/12 17:31:53 UTC
[14/52] [abbrv] [partial] syncope git commit: [SYNCOPE-620] Unit
tests all in
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/AttributableTransformer.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/AttributableTransformer.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/AttributableTransformer.java
deleted file mode 100644
index b1f39f9..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/AttributableTransformer.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.syncope.provisioning.api;
-
-import org.apache.syncope.common.lib.mod.AbstractAttributableMod;
-import org.apache.syncope.common.lib.to.AbstractAttributableTO;
-
-/**
- * Provides logic for transforming user or role, received as input by RESTful methods, before any internal
- * processing logic takes place.
- */
-public interface AttributableTransformer {
-
- <T extends AbstractAttributableTO> T transform(T input);
-
- <T extends AbstractAttributableMod> T transform(T input);
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnIdBundleManager.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnIdBundleManager.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnIdBundleManager.java
deleted file mode 100644
index bf07215..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnIdBundleManager.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
- * 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.syncope.provisioning.api;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URL;
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.persistence.api.dao.NotFoundException;
-import org.identityconnectors.common.IOUtil;
-import org.identityconnectors.common.security.GuardedString;
-import org.identityconnectors.framework.api.APIConfiguration;
-import org.identityconnectors.framework.api.ConfigurationProperties;
-import org.identityconnectors.framework.api.ConnectorInfo;
-import org.identityconnectors.framework.api.ConnectorInfoManager;
-import org.identityconnectors.framework.api.ConnectorInfoManagerFactory;
-import org.identityconnectors.framework.api.ConnectorKey;
-import org.identityconnectors.framework.api.RemoteFrameworkConnectionInfo;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Manage information about ConnId connector bundles.
- */
-public class ConnIdBundleManager {
-
- private static final Logger LOG = LoggerFactory.getLogger(ConnIdBundleManager.class);
-
- private String stringLocations;
-
- /**
- * ConnId Locations.
- */
- private List<URI> locations;
-
- /**
- * ConnectorInfoManager instances.
- */
- private final Map<URI, ConnectorInfoManager> connInfoManagers =
- Collections.synchronizedMap(new LinkedHashMap<URI, ConnectorInfoManager>());
-
- public void setStringLocations(final String stringLocations) {
- this.stringLocations = stringLocations;
- }
-
- private void init() {
- if (locations == null) {
- locations = new ArrayList<>();
- for (String location : StringUtils.isBlank(stringLocations) ? new String[0] : stringLocations.split(",")) {
- try {
- locations.add(URIUtil.buildForConnId(location));
- LOG.info("Valid ConnId location: {}", location.trim());
- } catch (Exception e) {
- LOG.error("Invalid ConnId location: {}", location.trim(), e);
- }
- }
- locations = Collections.unmodifiableList(locations);
- }
- }
-
- private void initLocal(final URI location) {
- // 1. Find bundles inside local directory
- File bundleDirectory = new File(location);
- String[] bundleFiles = bundleDirectory.list();
- if (bundleFiles == null) {
- throw new NotFoundException("Local bundles directory " + location);
- }
-
- List<URL> bundleFileURLs = new ArrayList<>();
- for (String file : bundleFiles) {
- try {
- bundleFileURLs.add(IOUtil.makeURL(bundleDirectory, file));
- } catch (IOException ignore) {
- // ignore exception and don't add bundle
- LOG.debug("{}/{} is not a valid connector bundle", bundleDirectory.toString(), file, ignore);
- }
- }
-
- if (bundleFileURLs.isEmpty()) {
- LOG.warn("No connector bundles found in {}", location);
- }
- LOG.debug("Configuring local connector server:"
- + "\n\tFiles: {}", bundleFileURLs);
-
- // 2. Get connector info manager
- ConnectorInfoManager manager = ConnectorInfoManagerFactory.getInstance().getLocalManager(
- bundleFileURLs.toArray(new URL[bundleFileURLs.size()]));
- if (manager == null) {
- throw new NotFoundException("Local ConnectorInfoManager");
- }
-
- connInfoManagers.put(location, manager);
- }
-
- private void initRemote(final URI location) {
- // 1. Extract conf params for remote connection from given URI
- final String host = location.getHost();
- final int port = location.getPort();
- final GuardedString key = new GuardedString(location.getUserInfo().toCharArray());
- final boolean useSSL = location.getScheme().equals("connids");
-
- final List<TrustManager> trustManagers = new ArrayList<>();
- final String[] params = StringUtils.isBlank(location.getQuery()) ? null : location.getQuery().split("&");
- if (params != null && params.length > 0) {
- final String[] trustAllCerts = params[0].split("=");
- if (trustAllCerts != null && trustAllCerts.length > 1
- && "trustAllCerts".equalsIgnoreCase(trustAllCerts[0])
- && "true".equalsIgnoreCase(trustAllCerts[1])) {
-
- trustManagers.add(new X509TrustManager() {
-
- @Override
- public void checkClientTrusted(final X509Certificate[] chain, final String authType)
- throws CertificateException {
- // no checks, trust all
- }
-
- @Override
- public void checkServerTrusted(final X509Certificate[] chain, final String authType)
- throws CertificateException {
- // no checks, trust all
- }
-
- @Override
- public X509Certificate[] getAcceptedIssuers() {
- return null;
- }
- });
- }
- }
-
- LOG.debug("Configuring remote connector server:"
- + "\n\tHost: {}"
- + "\n\tPort: {}"
- + "\n\tKey: {}"
- + "\n\tUseSSL: {}"
- + "\n\tTrustAllCerts: {}",
- host, port, key, useSSL, !trustManagers.isEmpty());
-
- RemoteFrameworkConnectionInfo info =
- new RemoteFrameworkConnectionInfo(host, port, key, useSSL, trustManagers, 60 * 1000);
- LOG.debug("Remote connection info: {}", info);
-
- // 2. Get connector info manager
- ConnectorInfoManager manager = ConnectorInfoManagerFactory.getInstance().getRemoteManager(info);
- if (manager == null) {
- throw new NotFoundException("Remote ConnectorInfoManager");
- }
-
- connInfoManagers.put(location, manager);
- }
-
- public void resetConnManagers() {
- connInfoManagers.clear();
- }
-
- public Map<URI, ConnectorInfoManager> getConnManagers() {
- init();
-
- if (connInfoManagers.isEmpty()) {
- for (URI location : locations) {
- try {
- if ("file".equals(location.getScheme())) {
- LOG.debug("Local initialization: {}", location);
- initLocal(location);
- } else if (location.getScheme().startsWith("connid")) {
- LOG.debug("Remote initialization: {}", location);
- initRemote(location);
- } else {
- LOG.warn("Unsupported scheme: {}", location);
- }
- } catch (Exception e) {
- LOG.error("Could not process {}", location, e);
- }
- }
- }
-
- if (LOG.isDebugEnabled()) {
- for (Map.Entry<URI, ConnectorInfoManager> entry : connInfoManagers.entrySet()) {
- LOG.debug("Connector bundles found at {}", entry.getKey());
- for (ConnectorInfo connInfo : entry.getValue().getConnectorInfos()) {
- LOG.debug("\t{}", connInfo.getConnectorDisplayName());
- }
- }
- }
-
- return connInfoManagers;
- }
-
- public ConnectorInfo getConnectorInfo(
- final String location, final String bundleName, final String bundleVersion, final String connectorName) {
-
- // check ConnIdLocation
- URI uriLocation = null;
- try {
- uriLocation = URIUtil.buildForConnId(location);
- } catch (Exception e) {
- throw new IllegalArgumentException("Invalid ConnId location " + location, e);
- }
-
- // create key for search all properties
- final ConnectorKey key = new ConnectorKey(bundleName, bundleVersion, connectorName);
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("\nBundle name: " + key.getBundleName()
- + "\nBundle version: " + key.getBundleVersion()
- + "\nBundle class: " + key.getConnectorName());
- }
-
- // get the specified connector
- ConnectorInfo info = null;
- if (getConnManagers().containsKey(uriLocation)) {
- info = getConnManagers().get(uriLocation).findConnectorInfo(key);
- }
- if (info == null) {
- throw new NotFoundException("Connector Info for location " + location + " and key " + key);
- }
-
- return info;
- }
-
- public Map<String, List<ConnectorInfo>> getConnectorInfos() {
- final Map<String, List<ConnectorInfo>> infos = new LinkedHashMap<>();
- for (Map.Entry<URI, ConnectorInfoManager> entry : connInfoManagers.entrySet()) {
- infos.put(entry.getKey().toString(), entry.getValue().getConnectorInfos());
- }
- return infos;
- }
-
- public ConfigurationProperties getConfigurationProperties(final ConnectorInfo info) {
- if (info == null) {
- throw new NotFoundException("Invalid: connector info is null");
- }
-
- // create default configuration
- final APIConfiguration apiConfig = info.createDefaultAPIConfiguration();
- if (apiConfig == null) {
- throw new NotFoundException("Default API configuration");
- }
-
- // retrieve the ConfigurationProperties.
- final ConfigurationProperties properties = apiConfig.getConfigurationProperties();
- if (properties == null) {
- throw new NotFoundException("Configuration properties");
- }
-
- if (LOG.isDebugEnabled()) {
- for (String propName : properties.getPropertyNames()) {
- LOG.debug("Property Name: {}"
- + "\nProperty Type: {}",
- properties.getProperty(propName).getName(),
- properties.getProperty(propName).getType());
- }
- }
-
- return properties;
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnPoolConfUtil.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnPoolConfUtil.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnPoolConfUtil.java
deleted file mode 100644
index 917473e..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnPoolConfUtil.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.syncope.provisioning.api;
-
-import org.apache.syncope.common.lib.to.ConnPoolConfTO;
-import org.apache.syncope.persistence.api.entity.ConnPoolConf;
-import org.identityconnectors.common.pooling.ObjectPoolConfiguration;
-
-public final class ConnPoolConfUtil {
-
- public static ConnPoolConf getConnPoolConf(final ConnPoolConfTO cpcto, final ConnPoolConf cpc) {
- ObjectPoolConfiguration opc = new ObjectPoolConfiguration();
-
- cpc.setMaxIdle(cpcto.getMaxIdle() == null ? opc.getMaxIdle() : cpcto.getMaxIdle());
- cpc.setMaxObjects(cpcto.getMaxObjects() == null ? opc.getMaxObjects() : cpcto.getMaxObjects());
- cpc.setMaxWait(cpcto.getMaxWait() == null ? opc.getMaxWait() : cpcto.getMaxWait());
- cpc.setMinEvictableIdleTimeMillis(cpcto.getMinEvictableIdleTimeMillis() == null
- ? opc.getMinEvictableIdleTimeMillis() : cpcto.getMinEvictableIdleTimeMillis());
- cpc.setMinIdle(cpcto.getMinIdle() == null ? opc.getMinIdle() : cpcto.getMinIdle());
-
- return cpc;
- }
-
- public static ObjectPoolConfiguration getObjectPoolConfiguration(final ConnPoolConf cpc) {
- ObjectPoolConfiguration opc = new ObjectPoolConfiguration();
- updateObjectPoolConfiguration(opc, cpc);
- return opc;
- }
-
- public static void updateObjectPoolConfiguration(
- final ObjectPoolConfiguration opc, final ConnPoolConf cpc) {
-
- if (cpc.getMaxIdle() != null) {
- opc.setMaxIdle(cpc.getMaxIdle());
- }
- if (cpc.getMaxObjects() != null) {
- opc.setMaxObjects(cpc.getMaxObjects());
- }
- if (cpc.getMaxWait() != null) {
- opc.setMaxWait(cpc.getMaxWait());
- }
- if (cpc.getMinEvictableIdleTimeMillis() != null) {
- opc.setMinEvictableIdleTimeMillis(cpc.getMinEvictableIdleTimeMillis());
- }
- if (cpc.getMinIdle() != null) {
- opc.setMinIdle(cpc.getMinIdle());
- }
- }
-
- private ConnPoolConfUtil() {
- // empty constructor for static utility class
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/Connector.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/Connector.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/Connector.java
deleted file mode 100644
index de4b472..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/Connector.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * 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.syncope.provisioning.api;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import org.apache.syncope.common.lib.types.PropagationMode;
-import org.apache.syncope.common.lib.types.ResourceOperation;
-import org.apache.syncope.persistence.api.entity.ConnInstance;
-import org.apache.syncope.persistence.api.entity.MappingItem;
-import org.identityconnectors.framework.common.objects.Attribute;
-import org.identityconnectors.framework.common.objects.ConnectorObject;
-import org.identityconnectors.framework.common.objects.ObjectClass;
-import org.identityconnectors.framework.common.objects.OperationOptions;
-import org.identityconnectors.framework.common.objects.SyncResultsHandler;
-import org.identityconnectors.framework.common.objects.SyncToken;
-import org.identityconnectors.framework.common.objects.Uid;
-import org.identityconnectors.framework.common.objects.filter.Filter;
-
-/**
- * Entry point for making requests on underlying connector bundles.
- */
-public interface Connector {
-
- /**
- * Authenticate user on a connector instance.
- *
- * @param username the name based credential for authentication
- * @param password the password based credential for authentication
- * @param options ConnId's OperationOptions
- * @return Uid of the account that was used to authenticate
- */
- Uid authenticate(String username, String password, OperationOptions options);
-
- /**
- * Create user / role on a connector instance.
- *
- * @param propagationMode propagation mode
- * @param objectClass ConnId's object class
- * @param attrs attributes for creation
- * @param options ConnId's OperationOptions
- * @param propagationAttempted if creation is actually performed (based on connector instance's capabilities)
- * @return Uid for created object
- */
- Uid create(PropagationMode propagationMode, ObjectClass objectClass,
- Set<Attribute> attrs, OperationOptions options,
- Set<String> propagationAttempted);
-
- /**
- * Update user / role on a connector instance.
- *
- * @param propagationMode propagation mode
- * @param objectClass ConnId's object class
- * @param uid user to be updated
- * @param attrs attributes for update
- * @param options ConnId's OperationOptions
- * @param propagationAttempted if update is actually performed (based on connector instance's capabilities)
- * @return Uid for updated object
- */
- Uid update(PropagationMode propagationMode, ObjectClass objectClass,
- Uid uid, Set<Attribute> attrs, OperationOptions options,
- Set<String> propagationAttempted);
-
- /**
- * Delete user / role on a connector instance.
- *
- * @param propagationMode propagation mode
- * @param objectClass ConnId's object class
- * @param uid user to be deleted
- * @param options ConnId's OperationOptions
- * @param propagationAttempted if deletion is actually performed (based on connector instance's capabilities)
- */
- void delete(PropagationMode propagationMode, ObjectClass objectClass,
- Uid uid, OperationOptions options, Set<String> propagationAttempted);
-
- /**
- * Sync users / roles from a connector instance.
- *
- * @param objectClass ConnId's object class
- * @param token to be passed to the underlying connector
- * @param handler to be used to handle deltas
- * @param options ConnId's OperationOptions
- */
- void sync(ObjectClass objectClass, SyncToken token, SyncResultsHandler handler, OperationOptions options);
-
- /**
- * Read latest sync token from a connector instance.
- *
- * @param objectClass ConnId's object class.
- * @return latest sync token
- */
- SyncToken getLatestSyncToken(ObjectClass objectClass);
-
- /**
- * Get remote object.
- *
- * @param objectClass ConnId's object class
- * @param uid ConnId's Uid
- * @param options ConnId's OperationOptions
- * @return ConnId's connector object for given uid
- */
- ConnectorObject getObject(ObjectClass objectClass, Uid uid, OperationOptions options);
-
- /**
- * Get remote object used by the propagation manager in order to choose for a create (object doesn't exist) or an
- * update (object exists).
- *
- * @param propagationMode propagation mode
- * @param operationType resource operation type
- * @param objectClass ConnId's object class
- * @param uid ConnId's Uid
- * @param options ConnId's OperationOptions
- * @return ConnId's connector object for given uid
- */
- ConnectorObject getObject(PropagationMode propagationMode, ResourceOperation operationType, ObjectClass objectClass,
- Uid uid, OperationOptions options);
-
- /**
- * Search for remote objects.
- *
- * @param objectClass ConnId's object class
- * @param filter search filter
- * @param options ConnId's OperationOptions
- * @return ConnId's connector objects matching the given filter
- */
- List<ConnectorObject> search(ObjectClass objectClass, Filter filter, OperationOptions options);
-
- /**
- * Get remote object used by the propagation manager in order to choose for a create (object doesn't exist) or an
- * update (object exists).
- *
- * @param objectClass ConnId's object class.
- * @param handler to be used to handle deltas.
- * @param options ConnId's OperationOptions.
- */
- void getAllObjects(ObjectClass objectClass, SyncResultsHandler handler, OperationOptions options);
-
- /**
- * Read attribute for a given connector object.
- *
- * @param objectClass ConnId's object class
- * @param uid ConnId's Uid
- * @param options ConnId's OperationOptions
- * @param attributeName attribute to read
- * @return attribute (if present)
- */
- Attribute getObjectAttribute(ObjectClass objectClass, Uid uid, OperationOptions options, String attributeName);
-
- /**
- * Read attributes for a given connector object.
- *
- * @param objectClass ConnId's object class
- * @param uid ConnId's Uid
- * @param options ConnId's OperationOptions
- * @return attributes (if present)
- */
- Set<Attribute> getObjectAttributes(ObjectClass objectClass, Uid uid, OperationOptions options);
-
- /**
- * Return resource schema names.
- *
- * @param includeSpecial return special attributes (like as __NAME__ or __PASSWORD__) if true
- * @return schema names
- */
- Set<String> getSchemaNames(boolean includeSpecial);
-
- /**
- * Return ConnId's object classes supported by this connector.
- *
- * @return supported object classes
- */
- Set<ObjectClass> getSupportedObjectClasses();
-
- /**
- * Validate a connector instance.
- */
- void validate();
-
- /**
- * Check connection to resource.
- */
- void test();
-
- /**
- * Getter for active connector instance.
- *
- * @return active connector instance.
- */
- ConnInstance getActiveConnInstance();
-
- /**
- * Build options for requesting all mapped connector attributes.
- *
- * @param mapItems mapping items
- * @return options for requesting all mapped connector attributes
- * @see OperationOptions
- */
- OperationOptions getOperationOptions(Collection<MappingItem> mapItems);
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnectorFactory.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnectorFactory.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnectorFactory.java
deleted file mode 100644
index e68975c..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnectorFactory.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.syncope.provisioning.api;
-
-import java.util.Set;
-import org.apache.syncope.common.lib.types.ConnConfProperty;
-import org.apache.syncope.persistence.api.entity.ConnInstance;
-import org.apache.syncope.persistence.api.entity.ExternalResource;
-
-/**
- * Entry point for creating and destroying connectors for external resources.
- *
- * @see org.apache.syncope.core.propagation.Connector
- */
-public interface ConnectorFactory {
-
- /**
- * Create connector from given connector instance and configuration properties.
- *
- * @param connInstance connector instance
- * @param configuration configuration properties
- * @return connector
- */
- Connector createConnector(ConnInstance connInstance, Set<ConnConfProperty> configuration);
-
- /**
- * Get existing connector for the given resource.
- *
- * @param resource the resource.
- * @return live connector bran for given resource
- */
- Connector getConnector(ExternalResource resource);
-
- /**
- * Load connectors for all existing resources.
- *
- * @see ExternalResource
- */
- void load();
-
- /**
- * Unload connectors for all existing resources.
- *
- * @see ExternalResource
- */
- void unload();
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnectorRegistry.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnectorRegistry.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnectorRegistry.java
deleted file mode 100644
index aa1d1c0..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ConnectorRegistry.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.syncope.provisioning.api;
-
-import org.apache.syncope.persistence.api.entity.ExternalResource;
-
-/**
- * Manage Spring beans lifecycle for connectors.
- */
-public interface ConnectorRegistry {
-
- /**
- * Create and register into Spring context a bean for the given resource.
- *
- * @param resource external resource
- */
- void registerConnector(ExternalResource resource);
-
- /**
- * Removes the Spring bean for the given id from the context.
- *
- * @param id Spring bean id
- */
- void unregisterConnector(String id);
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ProvisioningManager.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ProvisioningManager.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ProvisioningManager.java
deleted file mode 100644
index 66f5e73..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/ProvisioningManager.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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.syncope.provisioning.api;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import org.apache.syncope.common.lib.mod.AbstractAttributableMod;
-import org.apache.syncope.common.lib.to.AbstractAttributableTO;
-import org.apache.syncope.common.lib.to.PropagationStatus;
-
-public interface ProvisioningManager<T extends AbstractAttributableTO, M extends AbstractAttributableMod> {
-
- Map.Entry<Long, List<PropagationStatus>> create(T subject);
-
- Map.Entry<Long, List<PropagationStatus>> update(M subjectMod);
-
- List<PropagationStatus> delete(Long subjectId);
-
- Long unlink(M subjectMod);
-
- Long link(M subjectMod);
-
- List<PropagationStatus> deprovision(Long user, Collection<String> resources);
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/RoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/RoleProvisioningManager.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/RoleProvisioningManager.java
deleted file mode 100644
index 822981b..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/RoleProvisioningManager.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.syncope.provisioning.api;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import org.apache.syncope.common.lib.mod.RoleMod;
-import org.apache.syncope.common.lib.to.PropagationStatus;
-import org.apache.syncope.common.lib.to.RoleTO;
-
-public interface RoleProvisioningManager extends ProvisioningManager<RoleTO, RoleMod> {
-
- Map.Entry<Long, List<PropagationStatus>> create(RoleTO roleTO, Set<String> excludedResources);
-
- Map.Entry<Long, List<PropagationStatus>> create(
- RoleTO roleTO, Map<Long, String> roleOwnerMap, Set<String> excludedResources);
-
- Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources);
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/URIUtil.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/URIUtil.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/URIUtil.java
deleted file mode 100644
index f8fd111..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/URIUtil.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * 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.syncope.provisioning.api;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-
-public final class URIUtil {
-
- private URIUtil() {
- // empty constructor for static utility class
- }
-
- /**
- * Build a valid URI out of the given location.
- * Only "file", "connid" and "connids" schemes are allowed.
- * For "file", invalid characters are handled via intermediate transformation into URL.
- *
- * @param location the candidate location for URI
- * @return valid URI for the given location
- * @throws MalformedURLException if the intermediate URL is not valid
- * @throws URISyntaxException if the given location does not correspond to a valid URI
- */
- public static URI buildForConnId(final String location) throws MalformedURLException, URISyntaxException {
- final String candidate = location.trim();
-
- if (!candidate.startsWith("file:")
- && !candidate.startsWith("connid:") && !candidate.startsWith("connids:")) {
-
- throw new IllegalArgumentException(candidate + " is not a valid URI for file or connid(s) schemes");
- }
-
- URI uri;
- if (candidate.startsWith("file:")) {
- uri = new File(new URL(candidate).getFile()).getAbsoluteFile().toURI();
- } else {
- uri = new URI(candidate);
- }
-
- return uri;
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/UserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/UserProvisioningManager.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/UserProvisioningManager.java
deleted file mode 100644
index b686127..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/UserProvisioningManager.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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.syncope.provisioning.api;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import org.apache.syncope.common.lib.mod.StatusMod;
-import org.apache.syncope.common.lib.mod.UserMod;
-import org.apache.syncope.common.lib.to.PropagationStatus;
-import org.apache.syncope.common.lib.to.UserTO;
-import org.apache.syncope.persistence.api.entity.user.User;
-import org.apache.syncope.provisioning.api.sync.SyncResult;
-
-public interface UserProvisioningManager extends ProvisioningManager<UserTO, UserMod> {
-
- Map.Entry<Long, List<PropagationStatus>> activate(User user, StatusMod statusMod);
-
- Map.Entry<Long, List<PropagationStatus>> reactivate(User user, StatusMod statusMod);
-
- Map.Entry<Long, List<PropagationStatus>> suspend(User user, StatusMod statusMod);
-
- void innerSuspend(User user, boolean propagate);
-
- Map.Entry<Long, List<PropagationStatus>> create(UserTO userTO, boolean storePassword);
-
- Map.Entry<Long, List<PropagationStatus>> create(UserTO userTO, boolean storePassword,
- boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources);
-
- Map.Entry<Long, List<PropagationStatus>> update(UserMod userMod, boolean removeMemberships);
-
- Map.Entry<Long, List<PropagationStatus>> update(UserMod userMod, Long key,
- SyncResult result, Boolean enabled, Set<String> excludedResources);
-
- List<PropagationStatus> delete(Long subjectKey, Set<String> excludedResources);
-
- void requestPasswordReset(Long key);
-
- void confirmPasswordReset(User user, String token, String password);
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/WorkflowResult.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/WorkflowResult.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/WorkflowResult.java
deleted file mode 100644
index bb80219..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/WorkflowResult.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * 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.syncope.provisioning.api;
-
-import java.util.Collections;
-import java.util.Set;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
-import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import org.apache.syncope.provisioning.api.propagation.PropagationByResource;
-
-public class WorkflowResult<T> {
-
- private T result;
-
- private PropagationByResource propByRes;
-
- private Set<String> performedTasks;
-
- public WorkflowResult(final T result, final PropagationByResource propByRes, final String performedTask) {
- this.result = result;
- this.propByRes = propByRes;
- this.performedTasks = Collections.singleton(performedTask);
- }
-
- public WorkflowResult(final T result, final PropagationByResource propByRes, final Set<String> performedTasks) {
- this.result = result;
- this.propByRes = propByRes;
- this.performedTasks = performedTasks;
- }
-
- public T getResult() {
- return result;
- }
-
- public void setResult(final T result) {
- this.result = result;
- }
-
- public Set<String> getPerformedTasks() {
- return performedTasks;
- }
-
- public void setPerformedTasks(final Set<String> performedTasks) {
- this.performedTasks = performedTasks;
- }
-
- public PropagationByResource getPropByRes() {
- return propByRes;
- }
-
- public void setPropByRes(final PropagationByResource propByRes) {
- this.propByRes = propByRes;
- }
-
- @Override
- public boolean equals(final Object obj) {
- return EqualsBuilder.reflectionEquals(this, obj);
- }
-
- @Override
- public int hashCode() {
- return HashCodeBuilder.reflectionHashCode(this);
- }
-
- @Override
- public String toString() {
- return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/cache/VirAttrCache.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/cache/VirAttrCache.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/cache/VirAttrCache.java
deleted file mode 100644
index c4936a5..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/cache/VirAttrCache.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.syncope.provisioning.api.cache;
-
-import org.apache.syncope.common.lib.types.AttributableType;
-
-/**
- * Virtual Attribute Value cache.
- */
-public interface VirAttrCache {
-
- /**
- * Force entry expiring.
- *
- * @param type user or role
- * @param id user or role id
- * @param schemaName virtual attribute schema name
- */
- void expire(AttributableType type, Long id, String schemaName);
-
- /**
- * Retrieve cached value. Return null in case of virtual attribute not cached.
- *
- * @param type user or role
- * @param id user or role id
- * @param schemaName virtual attribute schema name.
- * @return cached values or null if virtual attribute is not cached.
- */
- VirAttrCacheValue get(AttributableType type, Long id, String schemaName);
-
- /**
- * Cache entry is valid if and only if value exist and it is not expired.
- *
- * @param value cache entry value.
- * @return TRUE if the value is valid; FALSE otherwise.
- */
- boolean isValidEntry(VirAttrCacheValue value);
-
- /**
- * Cache virtual attribute values.
- *
- * @param type user or role
- * @param id user or role id
- * @param schemaName virtual attribute name
- * @param value virtual attribute values
- */
- void put(AttributableType type, Long id, String schemaName, VirAttrCacheValue value);
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/cache/VirAttrCacheKey.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/cache/VirAttrCacheKey.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/cache/VirAttrCacheKey.java
deleted file mode 100644
index bdc60db..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/cache/VirAttrCacheKey.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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.syncope.provisioning.api.cache;
-
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
-import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import org.apache.syncope.common.lib.types.AttributableType;
-
-/**
- * Cache entry key.
- */
-public class VirAttrCacheKey {
-
- /**
- * Subject type.
- */
- private final AttributableType type;
-
- /**
- * Subject ID.
- */
- private final transient Long id;
-
- /**
- * Virtual attribute schema name.
- */
- private final transient String virSchema;
-
- public VirAttrCacheKey(final AttributableType type, final Long id, final String virSchema) {
- this.type = type;
- this.id = id;
- this.virSchema = virSchema;
- }
-
- public AttributableType getType() {
- return type;
- }
-
- public Long getId() {
- return id;
- }
-
- public String getVirSchema() {
- return virSchema;
- }
-
- @Override
- public boolean equals(final Object obj) {
- return EqualsBuilder.reflectionEquals(this, obj, true);
- }
-
- @Override
- public int hashCode() {
- return HashCodeBuilder.reflectionHashCode(this, true);
- }
-
- @Override
- public String toString() {
- return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE, true);
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/cache/VirAttrCacheValue.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/cache/VirAttrCacheValue.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/cache/VirAttrCacheValue.java
deleted file mode 100644
index 1ca9965..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/cache/VirAttrCacheValue.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * 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.syncope.provisioning.api.cache;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Cache entry value.
- */
-public class VirAttrCacheValue {
-
- /**
- * Virtual attribute values.
- */
- private final Map<String, Set<String>> values;
-
- /**
- * Entry creation date.
- */
- private Date creationDate;
-
- /**
- * Entry access date.
- */
- private Date lastAccessDate;
-
- public VirAttrCacheValue() {
- this.creationDate = new Date();
- this.lastAccessDate = new Date();
- values = new HashMap<>();
- }
-
- public void setResourceValues(final String resourceName, final Set<String> values) {
- this.values.put(resourceName, values);
- }
-
- public Date getCreationDate() {
- return creationDate;
- }
-
- public void forceExpiring() {
- creationDate = new Date(0);
- }
-
- public Set<String> getValues(final String resourceName) {
- return values.get(resourceName);
- }
-
- public Set<String> getValues() {
- final Set<String> res = new HashSet<>();
-
- for (Set<String> value : values.values()) {
- res.addAll(value);
- }
-
- return res;
- }
-
- public Date getLastAccessDate() {
- return lastAccessDate;
- }
-
- void setLastAccessDate(final Date lastAccessDate) {
- this.lastAccessDate = lastAccessDate;
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/ProvisioningJob.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/ProvisioningJob.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/ProvisioningJob.java
deleted file mode 100644
index 68e8dae..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/ProvisioningJob.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * 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.syncope.provisioning.api.job;
-
-import java.util.List;
-import org.apache.syncope.persistence.api.entity.task.ProvisioningTask;
-import org.apache.syncope.provisioning.api.sync.ProvisioningActions;
-
-public interface ProvisioningJob<T extends ProvisioningTask, A extends ProvisioningActions> extends TaskJob {
-
- void setActions(List<A> actions);
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/PushJob.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/PushJob.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/PushJob.java
deleted file mode 100644
index 016623c..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/PushJob.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.syncope.provisioning.api.job;
-
-import org.apache.syncope.persistence.api.entity.task.PushTask;
-import org.apache.syncope.provisioning.api.sync.PushActions;
-
-public interface PushJob extends ProvisioningJob<PushTask, PushActions> {
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/SyncJob.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/SyncJob.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/SyncJob.java
deleted file mode 100644
index fa74c8f..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/SyncJob.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.syncope.provisioning.api.job;
-
-import org.apache.syncope.persistence.api.entity.task.SyncTask;
-import org.apache.syncope.provisioning.api.sync.SyncActions;
-
-public interface SyncJob extends ProvisioningJob<SyncTask, SyncActions> {
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/TaskJob.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/TaskJob.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/TaskJob.java
deleted file mode 100644
index 94f906e..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/job/TaskJob.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.syncope.provisioning.api.job;
-
-import org.quartz.DisallowConcurrentExecution;
-import org.quartz.Job;
-
-/**
- * Interface for Quartz jobs bound to a given Task.
- */
-@DisallowConcurrentExecution
-public interface TaskJob extends Job {
-
- public static final String DRY_RUN_JOBDETAIL_KEY = "dryRun";
-
- /**
- * Task execution status.
- */
- public enum Status {
-
- SUCCESS,
- FAILURE
-
- }
-
- void setTaskId(Long taskId);
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/propagation/PropagationActions.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/propagation/PropagationActions.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/propagation/PropagationActions.java
deleted file mode 100644
index d23843e..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/propagation/PropagationActions.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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.syncope.provisioning.api.propagation;
-
-import org.apache.syncope.persistence.api.entity.task.PropagationTask;
-import org.apache.syncope.persistence.api.entity.task.TaskExec;
-import org.identityconnectors.framework.common.objects.ConnectorObject;
-
-public interface PropagationActions {
-
- void before(PropagationTask task, ConnectorObject beforeObj);
-
- void after(PropagationTask task, TaskExec execution, ConnectorObject afterObj);
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/propagation/PropagationByResource.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/propagation/PropagationByResource.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/propagation/PropagationByResource.java
deleted file mode 100644
index e43443e..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/propagation/PropagationByResource.java
+++ /dev/null
@@ -1,365 +0,0 @@
-/*
- * 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.syncope.provisioning.api.propagation;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import org.apache.syncope.common.lib.types.ResourceOperation;
-
-/**
- * Utility class for encapsulating operations to be performed on various resources.
- */
-public class PropagationByResource implements Serializable {
-
- private static final long serialVersionUID = -5699740428104336636L;
-
- /**
- * Resources for creation.
- */
- private final Set<String> toBeCreated;
-
- /**
- * Resources for update.
- */
- private final Set<String> toBeUpdated;
-
- /**
- * Resources for deletion.
- */
- private final Set<String> toBeDeleted;
-
- /**
- * Mapping target resource names to old account ids (when applicable).
- */
- private final Map<String, String> oldAccountIds;
-
- /**
- * Default constructor.
- */
- public PropagationByResource() {
- toBeCreated = new HashSet<String>();
- toBeUpdated = new HashSet<String>();
- toBeDeleted = new HashSet<String>();
-
- oldAccountIds = new HashMap<String, String>();
- }
-
- /**
- * Avoid potential conflicts by not doing create or update on any resource for which a delete is requested, and by
- * not doing any create on any resource for which an update is requested.
- */
- public final void purge() {
- toBeCreated.removeAll(toBeDeleted);
- toBeCreated.removeAll(toBeUpdated);
-
- toBeUpdated.removeAll(toBeDeleted);
- }
-
- /**
- * Add an element.
- *
- * @param type resource operation type
- * @param resourceName target resource
- * @return whether the operation was successful or not
- */
- public final boolean add(final ResourceOperation type, final String resourceName) {
- Set<String> set;
- switch (type) {
- case CREATE:
- set = toBeCreated;
- break;
-
- case UPDATE:
- set = toBeUpdated;
- break;
-
- case DELETE:
- default:
- set = toBeDeleted;
- break;
- }
-
- return set.add(resourceName);
- }
-
- /**
- * Add some elements.
- *
- * @param type resource operation type
- * @param resourceNames target resources
- * @return whether the operation was successful or not
- */
- public boolean addAll(final ResourceOperation type, final Collection<String> resourceNames) {
- Set<String> set;
- switch (type) {
- case CREATE:
- set = toBeCreated;
- break;
-
- case UPDATE:
- set = toBeUpdated;
- break;
-
- case DELETE:
- default:
- set = toBeDeleted;
- break;
- }
-
- return set.addAll(resourceNames);
- }
-
- /**
- * Remove an element.
- *
- * @param type resource operation type
- * @param resourceName target resource
- * @return whether the operation was successful or not
- */
- public final boolean remove(final ResourceOperation type, final String resourceName) {
- boolean result = false;
-
- switch (type) {
- case CREATE:
- result = toBeCreated.remove(resourceName);
- break;
-
- case UPDATE:
- result = toBeUpdated.remove(resourceName);
- break;
-
- case DELETE:
- result = toBeDeleted.remove(resourceName);
- break;
-
- default:
- }
-
- return result;
- }
-
- /**
- * Remove some elements.
- *
- * @param type resource operation type
- * @param resourceNames target resources
- * @return whether the operation was successful or not
- */
- public boolean removeAll(final ResourceOperation type, final Set<String> resourceNames) {
- Set<String> set;
- switch (type) {
- case CREATE:
- set = toBeCreated;
- break;
-
- case UPDATE:
- set = toBeUpdated;
- break;
-
- case DELETE:
- default:
- set = toBeDeleted;
- break;
- }
-
- return set.removeAll(resourceNames);
- }
-
- /**
- * Removes only the resource names in the underlying resource name sets that are contained in the specified
- * collection.
- *
- * @param resourceNames collection containing resource names to be retained in the underlying resource name sets
- * @return <tt>true</tt> if the underlying resource name sets changed as a result of the call
- * @see Collection#removeAll(java.util.Collection)
- */
- public boolean removeAll(final Collection<String> resourceNames) {
- return toBeCreated.removeAll(resourceNames)
- | toBeUpdated.removeAll(resourceNames)
- | toBeDeleted.removeAll(resourceNames);
- }
-
- /**
- * Retains only the resource names in the underlying resource name sets that are contained in the specified
- * collection.
- *
- * @param resourceNames collection containing resource names to be retained in the underlying resource name sets
- * @return <tt>true</tt> if the underlying resource name sets changed as a result of the call
- * @see Collection#retainAll(java.util.Collection)
- */
- public boolean retainAll(final Collection<String> resourceNames) {
- return toBeCreated.retainAll(resourceNames)
- | toBeUpdated.retainAll(resourceNames)
- | toBeDeleted.retainAll(resourceNames);
- }
-
- public boolean contains(final ResourceOperation type, final String resourceName) {
- boolean result = false;
-
- switch (type) {
- case CREATE:
- result = toBeCreated.contains(resourceName);
- break;
-
- case UPDATE:
- result = toBeUpdated.contains(resourceName);
- break;
-
- case DELETE:
- result = toBeDeleted.contains(resourceName);
- break;
-
- default:
- }
-
- return result;
- }
-
- /**
- * Get resources for a given resource operation type.
- *
- * @param type resource operation type
- * @return resource matching the given type
- */
- public final Set<String> get(final ResourceOperation type) {
- Set<String> result = Collections.<String>emptySet();
-
- switch (type) {
- case CREATE:
- result = toBeCreated;
- break;
-
- case UPDATE:
- result = toBeUpdated;
- break;
-
- case DELETE:
- result = toBeDeleted;
- break;
-
- default:
- }
-
- return result;
- }
-
- /**
- * Set resources for a given resource operation type.
- *
- * @param type resource operation type
- * @param resourceNames to be set
- */
- public final void set(final ResourceOperation type, final Set<String> resourceNames) {
-
- switch (type) {
- case CREATE:
- toBeCreated.clear();
- toBeCreated.addAll(resourceNames);
- break;
-
- case UPDATE:
- toBeUpdated.clear();
- toBeUpdated.addAll(resourceNames);
- break;
-
- case DELETE:
- toBeDeleted.clear();
- toBeDeleted.addAll(resourceNames);
- break;
-
- default:
- }
- }
-
- /**
- * Merge another resource operation instance into this instance.
- *
- * @param propByRes to be merged
- */
- public final void merge(final PropagationByResource propByRes) {
- if (propByRes != null) {
- toBeCreated.addAll(propByRes.get(ResourceOperation.CREATE));
- toBeUpdated.addAll(propByRes.get(ResourceOperation.UPDATE));
- toBeDeleted.addAll(propByRes.get(ResourceOperation.DELETE));
- oldAccountIds.putAll(propByRes.getOldAccountIds());
- }
- }
-
- /**
- * Removes all of the operations.
- */
- public void clear() {
- toBeCreated.clear();
- toBeUpdated.clear();
- toBeDeleted.clear();
- }
-
- /**
- * Whether no operations are present.
- *
- * @return true if no operations (create / update / delete) and no old account ids are present
- */
- public final boolean isEmpty() {
- return toBeCreated.isEmpty() && toBeUpdated.isEmpty() && toBeDeleted.isEmpty() && oldAccountIds.isEmpty();
- }
-
- /**
- * Fetch all old account ids.
- *
- * @return old account ids; can be empty
- */
- public Map<String, String> getOldAccountIds() {
- return oldAccountIds;
- }
-
- /**
- * Fetch old account id for given resource name.
- *
- * @param resourceName resource name
- * @return old account id; can be null
- */
- public String getOldAccountId(final String resourceName) {
- return oldAccountIds.get(resourceName);
- }
-
- /**
- * Add old account id for a given resource name.
- *
- * @param resourceName resourceName resource name
- * @param oldAccountId old account id
- */
- public void addOldAccountId(final String resourceName, final String oldAccountId) {
- if (resourceName != null && oldAccountId != null) {
- oldAccountIds.put(resourceName, oldAccountId);
- }
- }
-
- @Override
- public String toString() {
- return "To be Created: " + toBeCreated + ";\n"
- + "To be Updated: " + toBeUpdated + ";\n"
- + "To be Deleted: " + toBeDeleted + ";\n"
- + "Old account Ids: " + oldAccountIds;
- }
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/propagation/PropagationException.java
----------------------------------------------------------------------
diff --git a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/propagation/PropagationException.java b/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/propagation/PropagationException.java
deleted file mode 100644
index ff25634..0000000
--- a/syncope620/server/provisioning-api/src/main/java/org/apache/syncope/provisioning/api/propagation/PropagationException.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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.syncope.provisioning.api.propagation;
-
-/**
- * Bear stacktrace received during propagation towards a certain resource.
- */
-public class PropagationException extends RuntimeException {
-
- private static final long serialVersionUID = -4828426289616526116L;
-
- /**
- * The resource involved in this exception.
- */
- private final String resourceName;
-
- /**
- * Create a new instance based on resource name and original stacktrace received during propagation.
- *
- * @param resourceName name of resource involved in this exception
- * @param stackTrace original stacktrace
- */
- public PropagationException(final String resourceName, final String stackTrace) {
- super("Exception during provision on resource " + resourceName + "\n" + stackTrace);
-
- this.resourceName = resourceName;
- }
-
- /**
- * @return name of resource involved in this exception
- */
- public String getResourceName() {
- return resourceName;
- }
-}