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/05 14:34:06 UTC
[01/53] [abbrv] syncope git commit: Initial running version,
in order to fix #1
Repository: syncope
Updated Branches:
refs/heads/2_0_X a76be555c -> f6d48fd9e
refs/heads/master 1d58c5006 -> a90a48ad5
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/resources/camelRoute.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/camelRoute.xml b/core/src/main/resources/camelRoute.xml
new file mode 100644
index 0000000..c7ac19a
--- /dev/null
+++ b/core/src/main/resources/camelRoute.xml
@@ -0,0 +1,430 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://camel.apache.org/schema/spring
+ http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+ <!--
+ The default routes define each task involved in user creation:
+ main operations consist in user workflow creation and its propagation.
+ -->
+ <routeContext id="defaultRoutes" xmlns="http://camel.apache.org/schema/spring">
+
+ <!--
+ CREATE USER
+ This is the entry point of the route and is involved in accepting
+ the UserTO. When it arrives, the user workflow is created. If the
+ creation is successfull, the result is sent to propagation, otherwise
+ if an exception was raised, the exception has to be returned to the
+ caller. The property actual allows to store the received UserTO in
+ order to use it later.
+ -->
+
+ <route id="createUser">
+ <from uri="direct:createUser"/>
+ <setProperty propertyName="actual">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="uwfAdapter" method="create(${body},${property.disablePwdPolicyCheck},
+ ${property.enabled},${property.storePassword})"/>
+ <process ref="defaultUserCreatePropagation" />
+ <to uri="direct:createPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ The propagation route deals with propagation of created user. In this
+ case we used a custom processor to perform this task: it means that
+ a custom java class contains the propagation strategy.
+ -->
+
+ <!--
+ UPDATE USER
+ -->
+ <route id="updateUser">
+ <from uri="direct:updateUser"/>
+ <setProperty propertyName="actual">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <process ref="defaultUserUpdatePropagation" />
+ <to uri="direct:updatePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updatePort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+
+
+ <!--
+ UPDATE SYNC USER
+ -->
+ <route id="updateSyncUser">
+ <from uri="direct:updateSyncUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <to uri="direct:syncUserStatus"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updateSyncPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <route id="syncUserStatus">
+ <from uri="direct:syncUserStatus"/>
+ <process ref="userStatusOnSync" />
+ <process ref="defaultUserUpdateSyncPropagation" />
+ <to uri="direct:updateSyncPort"/>
+ </route>
+ <!--
+ DELETE USER
+ -->
+ <route id="deleteUser">
+ <from uri="direct:deleteUser"/>
+ <doTry>
+ <process ref="defaultUserDeletePropagation" />
+ <bean ref="uwfAdapter" method="delete(${body})"/>
+ <setBody>
+ <simple>${property.statuses}</simple>
+ </setBody>
+ <to uri="direct:deletePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:deletePort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ UNLINK USER
+ -->
+ <route id="unlinkUser">
+ <from uri="direct:unlinkUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult.getKey}</simple>
+ </setBody>
+ <to uri="direct:unlinkPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:unlinkPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ LINK USER
+ -->
+
+ <route id="linkUser">
+ <from uri="direct:linkUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult.getKey}</simple>
+ </setBody>
+ <to uri="direct:linkPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:linkPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ ACTIVATE USER
+ -->
+ <route id="activateUser">
+ <from uri="direct:activateUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="activate(${body}, ${property.token})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ REACTIVATE USER
+ -->
+ <route id="reactivateUser">
+ <from uri="direct:reactivateUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="reactivate(${body})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ SUSPEND USER
+ -->
+ <route id="suspendUser">
+ <from uri="direct:suspendUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="suspend(${body})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ STATUS PROPAGATION
+ -->
+
+ <route id="statusUser">
+ <from uri="direct:statusUser"/>
+ <process ref="defaultUserStatusPropagation" />
+ <to uri="direct:statusPort"/>
+ </route>
+
+
+ <!--
+ DEPROVISION USER
+ -->
+ <route id="deprovisionUser">
+ <from uri="direct:deprovisionUser"/>
+ <process ref="defaultUserDeprovisionPropagation" />
+ <to uri="direct:deprovisionPort"/>
+ </route>
+
+ <!--
+ CREATE ROLE
+ -->
+
+ <route id="createRole">
+ <from uri="direct:createRole"/>
+ <setProperty propertyName="subject">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="create(${body})"/>
+ <process ref="defaultRoleCreatePropagation" />
+ <to uri="direct:createRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ CREATE ROLE SYNC
+ -->
+ <route id="createRoleSync">
+ <from uri="direct:createRoleSync"/>
+ <setProperty propertyName="subject">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="create(${body})"/>
+ <process ref="defaultRoleCreateSyncPropagation" />
+ <to uri="direct:createRoleSyncPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createRoleSyncPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+
+ <!--
+ UPDATE ROLE
+ -->
+ <route id="updateRole">
+ <from uri="direct:updateRole"/>
+ <setProperty propertyName="subjectMod">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <process ref="defaultRoleUpdatePropagation" />
+ <to uri="direct:updateRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updateRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ DELETE ROLE
+ -->
+ <route id="deleteRole">
+ <from uri="direct:deleteRole"/>
+ <doTry>
+ <process ref="defaultRoleDeletePropagation" />
+ <bean ref="rwfAdapter" method="delete(${body})"/>
+ <setBody>
+ <simple>${property.statuses}</simple>
+ </setBody>
+ <to uri="direct:deleteRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:deleteRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ UNLINK USER
+ -->
+ <route id="unlinkRole">
+ <from uri="direct:unlinkRole"/>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult}</simple>
+ </setBody>
+ <to uri="direct:unlinkRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:unlinkRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ LINK USER
+ -->
+
+ <route id="linkRole">
+ <from uri="direct:linkRole"/>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult}</simple>
+ </setBody>
+ <to uri="direct:linkRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:linkRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ DEPROVISION ROLE
+ -->
+ <route id="deprovisionRole">
+ <from uri="direct:deprovisionRole"/>
+ <process ref="defaultRoleDeprovisionPropagation" />
+ <to uri="direct:deprovisionRolePort"/>
+ </route>
+
+ <!--
+ SUSPEND USER AFTER POLICY VIOLATION
+ -->
+
+ <route id="suspendUserWF">
+ <from uri="direct:suspendUserWF"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="suspend(${body})"/>
+ <process ref="defaultUserWFSuspendPropagation"/>
+ <to uri="direct:suspendWFPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:suspendWFPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ </routeContext>
+ <bean id="defaultUserCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserCreatePropagation"/>
+ <bean id="defaultUserUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdatePropagation"/>
+ <bean id="userStatusOnSync" class="org.apache.syncope.core.provisioning.camel.processors.UserStatusOnSync"/>
+ <bean id="defaultUserUpdateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdateInSyncPropagation"/>
+ <bean id="defaultUserDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeletePropagation"/>
+ <bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
+ <bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
+ <bean id="defaultUserStatusPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserStatusPropagation"/>
+ <bean id="defaultRoleCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreatePropagation"/>
+ <bean id="defaultRoleCreateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreateSyncPropagation"/>
+ <bean id="defaultRoleUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleUpdatePropagation"/>
+ <bean id="defaultRoleDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeletePropagation"/>
+ <bean id="defaultRoleDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeprovisionPropagation"/>
+</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/resources/content.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/content.xml b/core/src/main/resources/content.xml
index 827e6c9..683ce46 100644
--- a/core/src/main/resources/content.xml
+++ b/core/src/main/resources/content.xml
@@ -179,5 +179,8 @@ under the License.
<Entitlement name="SECURITY_QUESTION_CREATE"/>
<Entitlement name="SECURITY_QUESTION_UPDATE"/>
<Entitlement name="SECURITY_QUESTION_DELETE"/>
+ <Entitlement name="ROUTE_UPDATE"/>
+ <Entitlement name="ROUTE_LIST"/>
+ <Entitlement name="ROUTE_READ"/>
</dataset>
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/resources/coreContext.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/coreContext.xml b/core/src/main/resources/coreContext.xml
index 9b12622..da55cfc 100644
--- a/core/src/main/resources/coreContext.xml
+++ b/core/src/main/resources/coreContext.xml
@@ -20,13 +20,16 @@ under the License.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
+ xmlns:camel="http://camel.apache.org/schema/spring"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/task
- http://www.springframework.org/schema/task/spring-task.xsd">
+ http://www.springframework.org/schema/task/spring-task.xsd
+ http://camel.apache.org/schema/spring
+ http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="confDirectoryPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="order" value="1"/>
@@ -72,6 +75,9 @@ under the License.
<context:component-scan base-package="org.apache.syncope.core.workflow">
<context:exclude-filter type="regex" expression=".*\.activiti\..*"/>
</context:component-scan>
+
+ <bean id="defaultUserProvisioningManager" class="org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager"/>
+ <bean id="defaultRoleProvisioningManager" class="org.apache.syncope.core.provisioning.camel.CamelRoleProvisioningManager"/>
<bean id="nonJPAdbInitializer" class="org.springframework.jdbc.datasource.init.DataSourceInitializer">
<property name="dataSource" ref="dataSource"/>
@@ -145,4 +151,22 @@ under the License.
<constructor-arg value="60"/>
<constructor-arg value="5000"/>
</bean>
+ <!-- Camel Context Definition -->
+ <bean id="syncopeCamelContextFactory" class="org.apache.syncope.core.provisioning.camel.SyncopeCamelContext"/>
+
+ <bean id="defaultUserCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserCreatePropagation"/>
+ <bean id="defaultUserUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdatePropagation"/>
+ <bean id="userStatusOnSync" class="org.apache.syncope.core.provisioning.camel.processors.UserStatusOnSync"/>
+ <bean id="defaultUserUpdateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdateInSyncPropagation"/>
+ <bean id="defaultUserDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeletePropagation"/>
+ <bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
+ <bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
+ <bean id="defaultUserStatusPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserStatusPropagation"/>
+ <bean id="defaultRoleCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreatePropagation"/>
+ <bean id="defaultRoleCreateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreateSyncPropagation"/>
+ <bean id="defaultRoleUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleUpdatePropagation"/>
+ <bean id="defaultRoleDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeletePropagation"/>
+ <bean id="defaultRoleDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeprovisionPropagation"/>
+
+ <bean id="routeController" class="org.apache.syncope.core.rest.controller.RouteController"/>
</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/resources/roleRoute.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/roleRoute.xml b/core/src/main/resources/roleRoute.xml
new file mode 100644
index 0000000..80ff595
--- /dev/null
+++ b/core/src/main/resources/roleRoute.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://camel.apache.org/schema/spring
+ http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+ <!--
+ The default routes define each task involved in user creation:
+ main operations consist in user workflow creation and its propagation.
+ -->
+ <routeContext id="defaultRoleRoutes" xmlns="http://camel.apache.org/schema/spring">
+<!--
+ CREATE ROLE
+ -->
+
+ <route id="createRole">
+ <from uri="direct:createRole"/>
+ <setProperty propertyName="subject">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="create(${body})"/>
+ <process ref="defaultRoleCreatePropagation" />
+ <to uri="direct:createRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ CREATE ROLE SYNC
+ -->
+ <route id="createRoleSync">
+ <from uri="direct:createRoleSync"/>
+ <setProperty propertyName="subject">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="create(${body})"/>
+ <process ref="defaultRoleCreateSyncPropagation" />
+ <to uri="direct:createRoleSyncPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createRoleSyncPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+
+ <!--
+ UPDATE ROLE
+ -->
+ <route id="updateRole">
+ <from uri="direct:updateRole"/>
+ <setProperty propertyName="subjectMod">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <process ref="defaultRoleUpdatePropagation" />
+ <to uri="direct:updateRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updateRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ DELETE ROLE
+ -->
+ <route id="deleteRole">
+ <from uri="direct:deleteRole"/>
+ <doTry>
+ <process ref="defaultRoleDeletePropagation" />
+ <bean ref="rwfAdapter" method="delete(${body})"/>
+ <setBody>
+ <simple>${property.statuses}</simple>
+ </setBody>
+ <to uri="direct:deleteRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:deleteRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ UNLINK USER
+ -->
+ <route id="unlinkRole">
+ <from uri="direct:unlinkRole"/>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult}</simple>
+ </setBody>
+ <to uri="direct:unlinkRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:unlinkRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ LINK USER
+ -->
+
+ <route id="linkRole">
+ <from uri="direct:linkRole"/>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult}</simple>
+ </setBody>
+ <to uri="direct:linkRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:linkRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ DEPROVISION ROLE
+ -->
+ <route id="deprovisionRole">
+ <from uri="direct:deprovisionRole"/>
+ <process ref="defaultRoleDeprovisionPropagation" />
+ <to uri="direct:deprovisionRolePort"/>
+ </route>
+</routeContext>
+</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/resources/userRoute.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/userRoute.xml b/core/src/main/resources/userRoute.xml
new file mode 100644
index 0000000..e65ef2f
--- /dev/null
+++ b/core/src/main/resources/userRoute.xml
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://camel.apache.org/schema/spring
+ http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+ <!--
+ The default routes define each task involved in user creation:
+ main operations consist in user workflow creation and its propagation.
+ -->
+ <routeContext id="defaultUserRoutes" xmlns="http://camel.apache.org/schema/spring">
+ <route id="createUser">
+ <from uri="direct:createUser"/>
+ <setProperty propertyName="actual">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="uwfAdapter"
+ method="create(${body},${property.disablePwdPolicyCheck},
+ ${property.enabled},${property.storePassword})"/>
+ <process ref="defaultUserCreatePropagation" />
+ <to uri="direct:createPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ The propagation route deals with propagation of created user. In this
+ case we used a custom processor to perform this task: it means that
+ a custom java class contains the propagation strategy.
+ -->
+
+ <!--
+ UPDATE USER
+ -->
+ <route id="updateUser">
+ <from uri="direct:updateUser"/>
+ <setProperty propertyName="actual">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <process ref="defaultUserUpdatePropagation" />
+ <to uri="direct:updatePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updatePort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+
+
+ <!--
+ UPDATE SYNC USER
+ -->
+ <route id="updateSyncUser">
+ <from uri="direct:updateSyncUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <to uri="direct:syncUserStatus"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updateSyncPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <route id="syncUserStatus">
+ <from uri="direct:syncUserStatus"/>
+ <process ref="userStatusOnSync" />
+ <process ref="defaultUserUpdateSyncPropagation" />
+ <to uri="direct:updateSyncPort"/>
+ </route>
+ <!--
+ DELETE USER
+ -->
+ <route id="deleteUser">
+ <from uri="direct:deleteUser"/>
+ <doTry>
+ <process ref="defaultUserDeletePropagation" />
+ <bean ref="uwfAdapter" method="delete(${body})"/>
+ <setBody>
+ <simple>${property.statuses}</simple>
+ </setBody>
+ <to uri="direct:deletePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:deletePort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ UNLINK USER
+ -->
+ <route id="unlinkUser">
+ <from uri="direct:unlinkUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult.getKey}</simple>
+ </setBody>
+ <to uri="direct:unlinkPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:unlinkPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ LINK USER
+ -->
+
+ <route id="linkUser">
+ <from uri="direct:linkUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult.getKey}</simple>
+ </setBody>
+ <to uri="direct:linkPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:linkPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ ACTIVATE USER
+ -->
+ <route id="activateUser">
+ <from uri="direct:activateUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="activate(${body}, ${property.token})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ REACTIVATE USER
+ -->
+ <route id="reactivateUser">
+ <from uri="direct:reactivateUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="reactivate(${body})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ SUSPEND USER
+ -->
+ <route id="suspendUser">
+ <from uri="direct:suspendUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="suspend(${body})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+ <!--
+ STATUS PROPAGATION
+ -->
+
+ <route id="statusUser">
+ <from uri="direct:statusUser"/>
+ <process ref="defaultUserStatusPropagation" />
+ <to uri="direct:statusPort"/>
+ </route>
+
+
+ <!--
+ DEPROVISION USER
+ -->
+ <route id="deprovisionUser">
+ <from uri="direct:deprovisionUser"/>
+ <process ref="defaultUserDeprovisionPropagation" />
+ <to uri="direct:deprovisionPort"/>
+ </route>
+
+
+
+ <route id="suspendUserWF">
+ <from uri="direct:suspendUserWF"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="suspend(${body})"/>
+ <process ref="defaultUserWFSuspendPropagation"/>
+ <to uri="direct:suspendWFPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:suspendWFPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
+</routeContext>
+</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/test/java/org/apache/syncope/core/persistence/dao/EntitlementTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/persistence/dao/EntitlementTest.java b/core/src/test/java/org/apache/syncope/core/persistence/dao/EntitlementTest.java
index e55960a..ca8b638 100644
--- a/core/src/test/java/org/apache/syncope/core/persistence/dao/EntitlementTest.java
+++ b/core/src/test/java/org/apache/syncope/core/persistence/dao/EntitlementTest.java
@@ -41,7 +41,7 @@ public class EntitlementTest extends AbstractDAOTest {
@Test
public void findAll() {
List<Entitlement> list = entitlementDAO.findAll();
- assertEquals("did not get expected number of entitlements ", 86, list.size());
+ assertEquals("did not get expected number of entitlements ", 89, list.size());
}
@Test
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/test/resources/content.xml
----------------------------------------------------------------------
diff --git a/core/src/test/resources/content.xml b/core/src/test/resources/content.xml
index d5c4c99..987a42d 100644
--- a/core/src/test/resources/content.xml
+++ b/core/src/test/resources/content.xml
@@ -1118,6 +1118,9 @@ under the License.
<Entitlement name="ROLE_12"/>
<Entitlement name="ROLE_13"/>
<Entitlement name="ROLE_14"/>
+ <Entitlement name="ROUTE_UPDATE"/>
+ <Entitlement name="ROUTE_LIST"/>
+ <Entitlement name="ROUTE_READ"/>
<SyncopeRole_Entitlement entitlement_name="base" role_id="1"/>
<SyncopeRole_Entitlement entitlement_name="advanced" role_id="1"/>
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 737a36f..69a62d6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,8 +21,7 @@ under the License.
<modelVersion>4.0.0</modelVersion>
- <name>Apache Syncope</name>
- <description>Apache Syncope parent POM</description>
+ <name>PoC for integrating Apache Camel in Apache Syncope</name>
<groupId>org.apache.syncope</groupId>
<artifactId>syncope</artifactId>
@@ -325,7 +324,8 @@ under the License.
<aspectj.version>1.8.4</aspectj.version>
- <cxf.version>3.0.3</cxf.version>
+ <cxf.version>3.0.3</cxf.version>
+ <camel.version>2.12.5</camel.version>
<spring.version>4.0.8.RELEASE</spring.version>
<spring-security.version>3.2.5.RELEASE</spring-security.version>
<jackson.version>2.4.4</jackson.version>
@@ -705,6 +705,19 @@ under the License.
<version>${cxf.version}</version>
</dependency>
<!-- /CXF -->
+
+ <!-- Camel -->
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-core</artifactId>
+ <version>${camel.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-spring</artifactId>
+ <version>${camel.version}</version>
+ </dependency>
+ <!-- /Camel -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
[06/53] [abbrv] syncope git commit: Password managed now included in
the provisionig manager
Posted by il...@apache.org.
Password managed now included in the provisionig manager
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/0da02810
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/0da02810
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/0da02810
Branch: refs/heads/master
Commit: 0da02810041a4bbd5c0892a02924cf726a9e016e
Parents: 5b3b124
Author: giacomolm <gi...@hotmail.it>
Authored: Thu Dec 18 10:42:56 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Thu Dec 18 10:42:56 2014 +0100
----------------------------------------------------------------------
.../DefaultUserProvisioningManager.java | 20 ++++++
.../core/provisioning/ProvisioningManager.java | 42 +++++++++++
.../provisioning/UserProvisioningManager.java | 4 ++
.../camel/CamelUserProvisioningManager.java | 48 +++++++++----
.../DefaultUserConfirmPwdResetPropagation.java | 60 ++++++++++++++++
.../provisioning/ProvisioningManager.java | 42 -----------
.../core/rest/controller/UserController.java | 73 +-------------------
core/src/main/resources/camelRoute.xml | 40 ++++++++++-
core/src/main/resources/coreContext.xml | 1 +
9 files changed, 201 insertions(+), 129 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
index 86f6ebe..54f677c 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
@@ -344,4 +344,24 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
}
}
+ @Override
+ public void requestPasswordReset(Long id) {
+ uwfAdapter.requestPasswordReset(id);
+ }
+
+ @Override
+ public void confirmPasswordReset(SyncopeUser user, String token, String password) {
+
+ uwfAdapter.confirmPasswordReset(user.getId(), token, password);
+
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(user, null, null);
+ PropagationReporter propReporter =
+ ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propReporter.onPrimaryResourceFailure(tasks);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
new file mode 100644
index 0000000..adc1cb0
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
@@ -0,0 +1,42 @@
+/*
+ * 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.core.provisioning;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import org.apache.syncope.common.mod.AbstractAttributableMod;
+import org.apache.syncope.common.to.AbstractAttributableTO;
+import org.apache.syncope.common.to.PropagationStatus;
+
+public interface ProvisioningManager<T extends AbstractAttributableTO, M extends AbstractAttributableMod>{
+
+ public Map.Entry<Long, List<PropagationStatus>> create(T subject);
+
+ public Map.Entry<Long, List<PropagationStatus>> update(M subjectMod);
+
+ public List<PropagationStatus> delete(Long subjectId);
+
+ public Long unlink(M subjectMod);
+
+ public Long link(M subjectMod);
+
+ public List<PropagationStatus> deprovision(Long user, Collection<String> resources);
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
index da29a42..32a4d18 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
@@ -47,4 +47,8 @@ public interface UserProvisioningManager extends ProvisioningManager<UserTO, Use
public void innerSuspend(SyncopeUser user, boolean suspend);
+ public void requestPasswordReset(final Long id);
+
+ public void confirmPasswordReset(SyncopeUser user,final String token,final String password);
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
index dc0c552..92b3cfb 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
@@ -18,11 +18,9 @@
*/
package org.apache.syncope.core.provisioning.camel;
-import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
-import java.net.URLDecoder;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Collection;
@@ -33,11 +31,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.Unmarshaller;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
@@ -46,10 +39,7 @@ import org.apache.camel.ProducerTemplate;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.impl.DefaultMessage;
-import org.apache.camel.model.Constants;
-import org.apache.camel.model.RouteDefinition;
import org.apache.camel.model.RoutesDefinition;
-import org.apache.camel.spring.SpringCamelContext;
import org.apache.syncope.common.mod.StatusMod;
import org.apache.syncope.common.mod.UserMod;
import org.apache.syncope.common.to.PropagationStatus;
@@ -60,15 +50,11 @@ import org.apache.syncope.core.persistence.dao.RouteDAO;
import org.apache.syncope.core.propagation.PropagationByResource;
import org.apache.syncope.core.provisioning.UserProvisioningManager;
import org.apache.syncope.core.sync.SyncResult;
-import org.apache.syncope.core.util.ApplicationContextProvider;
import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
+
public class CamelUserProvisioningManager implements UserProvisioningManager {
@@ -453,4 +439,36 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
+ @Override
+ public void requestPasswordReset(Long id) {
+ String uri = "direct:requestPwdResetPort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ sendMessage("direct:requestPwdReset", id);
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+ }
+
+ @Override
+ public void confirmPasswordReset(SyncopeUser user, final String token, final String password) {
+ String uri = "direct:confirmPwdResetPort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map<String, Object> props = new HashMap<String, Object>();
+ props.put("user", user);
+ props.put("userId", user.getId());
+ props.put("token", token);
+ props.put("password", password);
+
+ sendMessage("direct:confirmPwdReset", user, props);
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+ }
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
new file mode 100644
index 0000000..2447689
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
@@ -0,0 +1,60 @@
+/*
+ * 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.core.provisioning.camel.processors;
+
+import java.util.List;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.common.to.UserTO;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+public class DefaultUserConfirmPwdResetPropagation implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultUserConfirmPwdResetPropagation.class);
+
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+
+ @Override
+ public void process(Exchange exchange){
+ SyncopeUser user = exchange.getProperty("user", SyncopeUser.class);
+
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(user, null, null);
+ PropagationReporter propReporter =
+ ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propReporter.onPrimaryResourceFailure(tasks);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/ProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/ProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/ProvisioningManager.java
deleted file mode 100644
index adc1cb0..0000000
--- a/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/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.core.provisioning;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import org.apache.syncope.common.mod.AbstractAttributableMod;
-import org.apache.syncope.common.to.AbstractAttributableTO;
-import org.apache.syncope.common.to.PropagationStatus;
-
-public interface ProvisioningManager<T extends AbstractAttributableTO, M extends AbstractAttributableMod>{
-
- public Map.Entry<Long, List<PropagationStatus>> create(T subject);
-
- public Map.Entry<Long, List<PropagationStatus>> update(M subjectMod);
-
- public List<PropagationStatus> delete(Long subjectId);
-
- public Long unlink(M subjectMod);
-
- public Long link(M subjectMod);
-
- public List<PropagationStatus> deprovision(Long user, Collection<String> resources);
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
index d8fa5f8..606d46b 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
@@ -26,7 +26,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -43,11 +42,8 @@ import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.common.types.ClientExceptionType;
import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.common.mod.AttributeMod;
-import org.apache.syncope.common.mod.MembershipMod;
import org.apache.syncope.common.types.SubjectType;
import org.apache.syncope.common.to.PropagationStatus;
-import org.apache.syncope.core.persistence.beans.CamelRoute;
-import org.apache.syncope.core.persistence.beans.PropagationTask;
import org.apache.syncope.core.provisioning.UserProvisioningManager;
import org.apache.syncope.core.persistence.beans.role.SyncopeRole;
import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
@@ -57,18 +53,11 @@ import org.apache.syncope.core.persistence.dao.NotFoundException;
import org.apache.syncope.core.persistence.dao.RoleDAO;
import org.apache.syncope.core.persistence.dao.UserDAO;
import org.apache.syncope.core.persistence.dao.search.OrderByClause;
-import org.apache.syncope.core.propagation.PropagationByResource;
-import org.apache.syncope.core.propagation.PropagationException;
-import org.apache.syncope.core.propagation.PropagationReporter;
import org.apache.syncope.core.propagation.PropagationTaskExecutor;
import org.apache.syncope.core.propagation.impl.PropagationManager;
-import org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager;
import org.apache.syncope.core.rest.data.AttributableTransformer;
import org.apache.syncope.core.rest.data.UserDataBinder;
-import org.apache.syncope.core.util.ApplicationContextProvider;
import org.apache.syncope.core.util.EntitlementUtil;
-import org.apache.syncope.core.workflow.WorkflowResult;
-import org.apache.syncope.core.workflow.user.UserWorkflowAdapter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Component;
@@ -108,9 +97,6 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
@Autowired
protected AttributableTransformer attrTransformer;
- @Autowired
- protected UserWorkflowAdapter uwfAdapter;
-
@Resource(name = "defaultUserProvisioningManager")
protected UserProvisioningManager provisioningManager;
@@ -269,50 +255,6 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
}
}
- //Actual operations: workflow, propagation, notification
- /*WorkflowResult<Map.Entry<UserMod, Boolean>> updated = uwfAdapter.update(actual);
-
- List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated);
- if (tasks.isEmpty()) {
- // SYNCOPE-459: take care of user virtual attributes ...
- final PropagationByResource propByResVirAttr = binder.fillVirtual(
- updated.getResult().getKey().getId(),
- actual.getVirAttrsToRemove(),
- actual.getVirAttrsToUpdate());
- // SYNCOPE-501: update only virtual attributes (if any of them changed), password propagation is
- // not required, take care also of membership virtual attributes
- boolean addOrUpdateMemberships = false;
- for (MembershipMod membershipMod : actual.getMembershipsToAdd()) {
- if (!binder.fillMembershipVirtual(
- updated.getResult().getKey().getId(),
- membershipMod.getRole(),
- null,
- membershipMod.getVirAttrsToRemove(),
- membershipMod.getVirAttrsToUpdate(),
- false).isEmpty()) {
-
- addOrUpdateMemberships = true;
- }
- }
- tasks.addAll(!propByResVirAttr.isEmpty() || addOrUpdateMemberships || removeMemberships
- ? propagationManager.getUserUpdateTaskIds(updated, false, null)
- : Collections.<PropagationTask>emptyList());
- }
-
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
- getBean(PropagationReporter.class);
-
- if (!tasks.isEmpty()) {
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
- }
-
- final UserTO updatedTO = binder.getUserTO(updated.getResult().getKey().getId());
- updatedTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());*/
Map.Entry<Long, List<PropagationStatus>> updated = provisioningManager.update(actual,removeMemberships);
final UserTO updatedTO = binder.getUserTO(updated.getKey());
@@ -372,7 +314,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
throw SyncopeClientException.build(ClientExceptionType.InvalidSecurityAnswer);
}
- uwfAdapter.requestPasswordReset(user.getId());
+ provisioningManager.requestPasswordReset(user.getId());
}
@PreAuthorize("isAnonymous() or hasRole(T(org.apache.syncope.common.SyncopeConstants).ANONYMOUS_ENTITLEMENT)")
@@ -382,18 +324,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
if (user == null) {
throw new NotFoundException("User with token " + token);
}
-
- uwfAdapter.confirmPasswordReset(user.getId(), token, password);
-
- List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(user, null, null);
- PropagationReporter propReporter =
- ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propReporter.onPrimaryResourceFailure(tasks);
- }
+ provisioningManager.confirmPasswordReset(user, token, password);
}
@PreAuthorize("isAuthenticated() "
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/resources/camelRoute.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/camelRoute.xml b/core/src/main/resources/camelRoute.xml
index c7ac19a..e1ad071 100644
--- a/core/src/main/resources/camelRoute.xml
+++ b/core/src/main/resources/camelRoute.xml
@@ -413,6 +413,43 @@ under the License.
</doTry>
</route>
+ <!--
+ REQUEST PASSWORD RESET ROUTE
+ -->
+
+ <route id="requestPwdReset">
+ <from uri="direct:requestPwdReset"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="requestPasswordReset(${body})"/>
+ <to uri="direct:requestPwdResetPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:requestPwdResetPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ CONFIRM PASSWORD RESET
+ -->
+ <route id="confirmPwdReset">
+ <from uri="direct:confirmPwdReset"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="confirmPasswordReset(${property.userId},${property.token},${property.password})"/>
+ <process ref="defaultUserConfirmPwdResetPropagation" />
+ <to uri="direct:confirmPwdResetPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:confirmPwdResetPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
</routeContext>
<bean id="defaultUserCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserCreatePropagation"/>
<bean id="defaultUserUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdatePropagation"/>
@@ -422,9 +459,10 @@ under the License.
<bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
<bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
<bean id="defaultUserStatusPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserStatusPropagation"/>
+ <bean id="defaultUserConfirmPwdResetPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserConfirmPwdResetPropagation"/>
<bean id="defaultRoleCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreatePropagation"/>
<bean id="defaultRoleCreateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreateSyncPropagation"/>
<bean id="defaultRoleUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleUpdatePropagation"/>
<bean id="defaultRoleDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeletePropagation"/>
- <bean id="defaultRoleDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeprovisionPropagation"/>
+ <bean id="defaultRoleDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeprovisionPropagation"/>
</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/resources/coreContext.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/coreContext.xml b/core/src/main/resources/coreContext.xml
index da55cfc..3950689 100644
--- a/core/src/main/resources/coreContext.xml
+++ b/core/src/main/resources/coreContext.xml
@@ -162,6 +162,7 @@ under the License.
<bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
<bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
<bean id="defaultUserStatusPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserStatusPropagation"/>
+ <bean id="defaultUserConfirmPwdResetPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserConfirmPwdResetPropagation"/>
<bean id="defaultRoleCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreatePropagation"/>
<bean id="defaultRoleCreateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreateSyncPropagation"/>
<bean id="defaultRoleUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleUpdatePropagation"/>
[33/53] [abbrv] syncope git commit: Fixes #4 - Route functionalities
are displayed only with Camel PM
Posted by il...@apache.org.
Fixes #4 - Route functionalities are displayed only with Camel PM
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b19ff851
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b19ff851
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b19ff851
Branch: refs/heads/2_0_X
Commit: b19ff8512f082d7d74ff40b0a53f6380d0905771
Parents: d8ec8da
Author: giacomolm <gi...@hotmail.it>
Authored: Tue Dec 30 16:47:31 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Tue Dec 30 16:47:31 2014 +0100
----------------------------------------------------------------------
.../apache/syncope/client/SyncopeClient.java | 26 +++++++
.../syncope/common/services/RouteService.java | 44 ++++++++---
.../syncope/common/types/RESTHeaders.java | 11 +++
.../apache/syncope/console/SyncopeSession.java | 7 ++
.../syncope/console/pages/Configuration.java | 15 +++-
.../syncope/console/rest/RouteRestClient.java | 22 +++++-
.../syncope/console/pages/Configuration.html | 2 +-
.../core/provisioning/camel/CamelDetector.java | 77 ++++++++++++++++++++
.../syncope/core/services/RouteServiceImpl.java | 31 +++++++-
core/src/main/resources/provisioning.properties | 4 +-
10 files changed, 218 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/client/src/main/java/org/apache/syncope/client/SyncopeClient.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/syncope/client/SyncopeClient.java b/client/src/main/java/org/apache/syncope/client/SyncopeClient.java
index a471d54..f955951 100644
--- a/client/src/main/java/org/apache/syncope/client/SyncopeClient.java
+++ b/client/src/main/java/org/apache/syncope/client/SyncopeClient.java
@@ -26,6 +26,7 @@ import org.apache.syncope.client.rest.RestClientFactoryBean;
import org.apache.syncope.common.search.OrderByClauseBuilder;
import org.apache.syncope.common.search.RoleFiqlSearchConditionBuilder;
import org.apache.syncope.common.search.UserFiqlSearchConditionBuilder;
+import org.apache.syncope.common.services.RouteService;
import org.apache.syncope.common.services.UserSelfService;
import org.apache.syncope.common.services.WorkflowService;
import org.apache.syncope.common.types.Preference;
@@ -265,6 +266,31 @@ public class SyncopeClient {
return result;
}
+
+ /**
+ * Checks whether Camel is enabled for users / roles, by calling <tt>RouteService</tt>'s options.
+ *
+ * @param subjectType user / role
+ * @return whether Camel Provisioning is enabled for given attributable type
+ * @see RouteService#getOptions(org.apache.syncope.common.types.SubjectType)
+ */
+ public boolean isCamelEnabledFor(final SubjectType subjectType) {
+ Response options = getService(RouteService.class).getOptions(subjectType);
+
+ boolean result;
+ switch (subjectType) {
+ case ROLE:
+ result = Boolean.valueOf(options.getHeaderString(RESTHeaders.CAMEL_ROLE_PROVISIONING_MANAGER));
+ break;
+
+ case USER:
+ default:
+ result = Boolean.valueOf(options.getHeaderString(RESTHeaders.CAMEL_USER_PROVISIONING_MANAGER));
+ break;
+ }
+
+ return result;
+ }
/**
* Fetches <tt>ETag</tt> header value from latest service run (if available).
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/common/src/main/java/org/apache/syncope/common/services/RouteService.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/syncope/common/services/RouteService.java b/common/src/main/java/org/apache/syncope/common/services/RouteService.java
index feb7db7..6e3090f 100644
--- a/common/src/main/java/org/apache/syncope/common/services/RouteService.java
+++ b/common/src/main/java/org/apache/syncope/common/services/RouteService.java
@@ -16,34 +16,56 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.common.services;
import java.util.List;
+import javax.validation.constraints.NotNull;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
+import javax.ws.rs.OPTIONS;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import org.apache.cxf.jaxrs.model.wadl.Description;
+import org.apache.cxf.jaxrs.model.wadl.Descriptions;
+import org.apache.cxf.jaxrs.model.wadl.DocTarget;
import org.apache.syncope.common.to.RouteTO;
+import org.apache.syncope.common.types.SubjectType;
+
+@Path("routes/{kind}")
+public interface RouteService extends JAXRSService {
+
+ /**
+ * Checks whether Camel is choosed as default provisioning engine.
+ *
+ * @param kind user or role
+ * @return <tt>Response</tt> contains special syncope HTTP header indicating if Camel is enabled for
+ * users / roles provisioning
+ * @see org.apache.syncope.common.types.RESTHeaders#CAMEL_USER_PROVISIONING_MANAGER
+ * @see org.apache.syncope.common.types.RESTHeaders#CAMEL_ROLE_PROVISIONING_MANAGER
+ *
+ * @Descriptions({
+ * @Description(target = DocTarget.RESPONSE,
+ * value = "Contains special syncope HTTP header indicating if Camel is the default provisioning manager")
+ * }) */
+ @OPTIONS
+ Response getOptions(@NotNull @PathParam("kind") SubjectType kind);
-@Path("routes")
-public interface RouteService extends JAXRSService{
-
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
- List<RouteTO> getRoutes();
-
+ List<RouteTO> getRoutes(@NotNull @PathParam("kind") SubjectType kind);
+
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Path("{id}")
- public RouteTO getRoute(@PathParam("id") Long Id);
-
+ public RouteTO getRoute(@NotNull @PathParam("kind") SubjectType kind, @PathParam("id") Long Id);
+
@PUT
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Path("{id}")
- void importRoute(@PathParam("id") Long id, RouteTO route);
-
-}
\ No newline at end of file
+ void importRoute(@NotNull @PathParam("kind") SubjectType kind,@PathParam("id") Long id, RouteTO route);
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/common/src/main/java/org/apache/syncope/common/types/RESTHeaders.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/syncope/common/types/RESTHeaders.java b/common/src/main/java/org/apache/syncope/common/types/RESTHeaders.java
index ddbfca2..3e7cdc3 100644
--- a/common/src/main/java/org/apache/syncope/common/types/RESTHeaders.java
+++ b/common/src/main/java/org/apache/syncope/common/types/RESTHeaders.java
@@ -57,6 +57,17 @@ public final class RESTHeaders {
* Option key stating if Activiti workflow adapter is in use for roles.
*/
public static final String ACTIVITI_ROLE_ENABLED = "Syncope.Activiti.Role.Enabled";
+
+ /**
+ * Option key stating if Camel is the current provisioning manager engine.
+ */
+ public static final String CAMEL_USER_PROVISIONING_MANAGER ="Syncope.Provisioning.Camel.User.Enabled";
+
+ /**
+ * Option key stating if Camel is the current provisioning manager engine.
+ */
+ public static final String CAMEL_ROLE_PROVISIONING_MANAGER ="Syncope.Provisioning.Camel.Role.Enabled";
+
/**
* HTTP header key for object ID assigned to an object after its creation.
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/console/src/main/java/org/apache/syncope/console/SyncopeSession.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/SyncopeSession.java b/console/src/main/java/org/apache/syncope/console/SyncopeSession.java
index ae81852..53b03c0 100644
--- a/console/src/main/java/org/apache/syncope/console/SyncopeSession.java
+++ b/console/src/main/java/org/apache/syncope/console/SyncopeSession.java
@@ -114,6 +114,13 @@ public class SyncopeSession extends WebSession {
: clients.values().iterator().next();
return client.isActivitiEnabledFor(type);
}
+
+ public boolean isCamelEnabledFor(final SubjectType type) {
+ SyncopeClient client = clients.isEmpty()
+ ? clientFactory.createAnonymous()
+ : clients.values().iterator().next();
+ return client.isCamelEnabledFor(type);
+ }
public <T> T getService(final Class<T> service) {
return getService(service, this.username, this.password);
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/Configuration.java b/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
index 10dcfc7..05316dd 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
@@ -52,6 +52,7 @@ import org.apache.syncope.console.wicket.extensions.markup.html.repeater.data.ta
import org.apache.syncope.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.console.wicket.markup.html.form.ActionLinksPanel;
import org.apache.syncope.console.wicket.markup.html.link.VeilPopupSettings;
+import org.apache.wicket.Component;
import org.apache.wicket.Page;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
@@ -278,7 +279,8 @@ public class Configuration extends BasePage {
add(new LayoutsPanel("selfMembershipLayoutPanel", AttrLayoutType.SELF_MEMBERSHIP, feedbackPanel));
//Route Management
- add(editRouteWin = new ModalWindow("editRouteWin"));
+ editRouteWin = new ModalWindow("editRouteWin");
+ add(editRouteWin);
setupRoutes();
}
@@ -828,7 +830,18 @@ public class Configuration extends BasePage {
WebMarkupContainer routeContainer = new WebMarkupContainer("routesContainer");
routeContainer.add(routeTable);
routeContainer.setOutputMarkupId(true);
+
+ ListItem<Object> li = new ListItem<Object>("routeTab", 0);
+ if (routeRestClient.isCamelEnabledForUsers() == false) {
+ li.setVisible(false);
+ routeContainer.setVisible(false);
+ }
+ else{
+ li.setVisible(true);
+ routeContainer.setVisible(true);
+ }
+ add(li);
add(routeContainer);
editRouteWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/console/src/main/java/org/apache/syncope/console/rest/RouteRestClient.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/rest/RouteRestClient.java b/console/src/main/java/org/apache/syncope/console/rest/RouteRestClient.java
index 673652a..dcfb8c3 100644
--- a/console/src/main/java/org/apache/syncope/console/rest/RouteRestClient.java
+++ b/console/src/main/java/org/apache/syncope/console/rest/RouteRestClient.java
@@ -19,8 +19,11 @@
package org.apache.syncope.console.rest;
import java.util.List;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.common.services.RouteService;
import org.apache.syncope.common.to.RouteTO;
+import org.apache.syncope.common.types.SubjectType;
+import org.apache.syncope.console.SyncopeSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@@ -31,17 +34,30 @@ public class RouteRestClient extends BaseRestClient{
protected static final Logger LOG = LoggerFactory.getLogger(RouteRestClient.class);
public List<RouteTO> readRoutes(){
- return getService(RouteService.class).getRoutes();
+ return getService(RouteService.class).getRoutes(SubjectType.USER);
}
public RouteTO readRoute(Long id){
- return getService(RouteService.class).getRoute(id);
+ return getService(RouteService.class).getRoute(SubjectType.USER, id);
}
public void updateRoute(Long id, String definition){
RouteTO routeTO = readRoute(id);
routeTO.setRouteContent(definition);
- getService(RouteService.class).importRoute(routeTO.getId(), routeTO);
+ getService(RouteService.class).importRoute(SubjectType.USER, routeTO.getId(), routeTO);
+ }
+
+ public boolean isCamelEnabledForUsers() {
+ Boolean result = null;
+ try {
+ result = SyncopeSession.get().isCamelEnabledFor(SubjectType.USER);
+ } catch (SyncopeClientException e) {
+ LOG.error("While seeking if Camel is enabled for users", e);
+ }
+
+ return result == null
+ ? false
+ : result.booleanValue();
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html b/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
index 62f97a8..130c89a 100644
--- a/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
+++ b/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
@@ -38,7 +38,7 @@ under the License.
<li><a href="#notifications"><span><wicket:message key="notifications"/></span></a></li>
<li><a href="#securityQuestions"><span><wicket:message key="securityQuestions"/></span></a></li>
<li><a href="#workflow"><span><wicket:message key="workflow"/></span></a></li>
- <li><a href="#routes"><span><wicket:message key="routes"/></span></a></li>
+ <li wicket:id="routeTab"><a href="#routes"><span><wicket:message key="routes"/></span></a></li>
<li><a href="#logs"><span><wicket:message key="logs"/></span></a></li>
</ul>
<div id="layouts">
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelDetector.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelDetector.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelDetector.java
new file mode 100644
index 0000000..646c350
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelDetector.java
@@ -0,0 +1,77 @@
+/*
+ * 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.core.provisioning.camel;
+
+import java.io.InputStream;
+import java.util.Properties;
+import org.apache.commons.io.IOUtils;
+import org.apache.syncope.core.persistence.dao.impl.ContentLoader;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author giacomolm
+ */
+public class CamelDetector {
+
+ private static final Logger LOG = LoggerFactory.getLogger(CamelDetector.class);
+
+ private static final String PROVISIONING_PROPERTIES = "/provisioning.properties";
+
+ private static String userPMClassName;
+
+ private static String rolePMClassName;
+
+ /**
+ * Read classpath:/provisioning.properties in order to determine the configured provisioning adapter class name.
+ */
+ static {
+ Properties props = new Properties();
+ InputStream propStream = null;
+ try {
+ propStream = ContentLoader.class.getResourceAsStream(PROVISIONING_PROPERTIES);
+ props.load(propStream);
+ userPMClassName = props.getProperty("userProvisioningManager");
+ rolePMClassName = props.getProperty("roleProvisioningManager");
+ } catch (Exception e) {
+ LOG.error("Could not load workflow.properties", e);
+ } finally {
+ IOUtils.closeQuietly(propStream);
+ }
+ }
+
+ /**
+ * Check if the configured user provisioning manager is Camel's.
+ *
+ * @return whether Activiti is configured for user workflow or not
+ */
+ public static boolean isCamelEnabledForUsers() {
+ return userPMClassName != null && userPMClassName.equals(CamelUserProvisioningManager.class.getName());
+ }
+
+ /**
+ * Check if the configured role provisioning manager is Camel's.
+ *
+ * @return whether Activiti is configured for role workflow or not
+ */
+ public static boolean isCamelEnabledForRoles() {
+ return rolePMClassName != null && rolePMClassName.equals(CamelRoleProvisioningManager.class.getName());
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java b/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
index ecc323e..29359f8 100644
--- a/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
@@ -18,33 +18,58 @@
*/
package org.apache.syncope.core.services;
+import static org.apache.syncope.core.services.AbstractServiceImpl.OPTIONS_ALLOW;
+
import java.util.List;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.Response;
import org.apache.syncope.common.services.RouteService;
import org.apache.syncope.common.to.RouteTO;
+import org.apache.syncope.common.types.RESTHeaders;
+import org.apache.syncope.common.types.SubjectType;
+import org.apache.syncope.core.provisioning.camel.CamelDetector;
import org.apache.syncope.core.rest.controller.RouteController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class RouteServiceImpl extends AbstractServiceImpl implements RouteService {
+
+ @Override
+ public Response getOptions(final SubjectType kind) {
+ String key;
+ String value;
+ if (kind == SubjectType.USER) {
+ key = RESTHeaders.CAMEL_USER_PROVISIONING_MANAGER;
+ value = Boolean.toString(CamelDetector.isCamelEnabledForUsers());
+ } else {
+ key = RESTHeaders.CAMEL_ROLE_PROVISIONING_MANAGER;
+ value = Boolean.toString(CamelDetector.isCamelEnabledForRoles());
+ }
+ Response.ResponseBuilder builder = Response.ok().header(HttpHeaders.ALLOW, OPTIONS_ALLOW);
+ if (key != null && value != null) {
+ builder.header(key, value);
+ }
+ return builder.build();
+ }
@Autowired
private RouteController controller;
@Override
- public List<RouteTO> getRoutes() {
+ public List<RouteTO> getRoutes(SubjectType kind) {
return controller.listRoutes();
}
@Override
- public RouteTO getRoute(Long id) {
+ public RouteTO getRoute(SubjectType kind, Long id) {
return controller.readRoute(id);
}
@Override
- public void importRoute(Long id, RouteTO route) {
+ public void importRoute(SubjectType kind,Long id, RouteTO route) {
controller.updateRoute(route);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/core/src/main/resources/provisioning.properties
----------------------------------------------------------------------
diff --git a/core/src/main/resources/provisioning.properties b/core/src/main/resources/provisioning.properties
index a8e49bf..de6c3cd 100644
--- a/core/src/main/resources/provisioning.properties
+++ b/core/src/main/resources/provisioning.properties
@@ -15,5 +15,5 @@
# specific language governing permissions and limitations
# under the License.
-userProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager
-roleProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelRoleProvisioningManager
\ No newline at end of file
+userProvisioningManager=org.apache.syncope.core.provisioning.DefaultUserProvisioningManager
+roleProvisioningManager=org.apache.syncope.core.provisioning.DefaultRoleProvisioningManager
\ No newline at end of file
[40/53] [abbrv] syncope git commit: Manual merge
Posted by il...@apache.org.
Manual merge
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/35966426
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/35966426
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/35966426
Branch: refs/heads/2_0_X
Commit: 35966426c1083591d068003e768e4f65dc429fd3
Parents: a76be55
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Jan 5 10:57:48 2015 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Jan 5 10:57:48 2015 +0100
----------------------------------------------------------------------
syncope620/pom.xml | 11 +++++++++++
1 file changed, 11 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/35966426/syncope620/pom.xml
----------------------------------------------------------------------
diff --git a/syncope620/pom.xml b/syncope620/pom.xml
index f93f639..82e910d 100644
--- a/syncope620/pom.xml
+++ b/syncope620/pom.xml
@@ -270,6 +270,17 @@ under the License.
<url>http://people.apache.org/~andreapatricelli/</url>
<email>andreapatricelli@apache.org</email>
</developer>
+ <developer>
+ <id>giacomolm</id>
+ <name>Giacomo Lamonaco</name>
+ <organization>Tirasa</organization>
+ <organizationUrl>http://www.tirasa.net/</organizationUrl>
+ <roles>
+ <role>committer</role>
+ </roles>
+ <url>http://people.apache.org/~giacomolm/</url>
+ <email>giacomolm@apache.org</email>
+ </developer>
</developers>
<contributors>
[45/53] [abbrv] syncope git commit: Partially fixed #7
Posted by il...@apache.org.
Partially fixed #7
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/ec34515d
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/ec34515d
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/ec34515d
Branch: refs/heads/2_0_X
Commit: ec34515da73044960f445aa472306dbf87ca2c8e
Parents: b1d2ac6
Author: giacomolm <gi...@hotmail.it>
Authored: Mon Jan 5 11:53:23 2015 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Mon Jan 5 11:53:23 2015 +0100
----------------------------------------------------------------------
.../camel/CamelRoleProvisioningManager.java | 28 +++++---------------
.../camel/CamelUserProvisioningManager.java | 20 +++++++++-----
.../provisioning/camel/SyncopeCamelContext.java | 9 +++----
.../DefaultRoleCreatePropagation.java | 2 ++
.../DefaultRoleCreateSyncPropagation.java | 1 +
.../DefaultRoleDeprovisionPropagation.java | 1 +
.../DefaultRoleUpdatePropagation.java | 2 ++
.../DefaultUserCreatePropagation.java | 2 ++
.../DefaultUserDeletePropagation.java | 1 +
.../DefaultUserDeprovisionPropagation.java | 1 +
.../DefaultUserStatusPropagation.java | 1 +
.../DefaultUserUpdateInSyncPropagation.java | 2 ++
.../DefaultUserUpdatePropagation.java | 1 +
.../DefaultUserWFSuspendPropagation.java | 1 +
.../camel/processors/UserStatusOnSync.java | 1 +
15 files changed, 40 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
index 9b121a4..96f5227 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
@@ -18,10 +18,7 @@
*/
package org.apache.syncope.core.provisioning.camel;
-import java.io.ByteArrayInputStream;
-import java.io.File;
import java.io.InputStream;
-import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -30,39 +27,23 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.Unmarshaller;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.PollingConsumer;
import org.apache.camel.ProducerTemplate;
-import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.impl.DefaultMessage;
-import org.apache.camel.model.Constants;
-import org.apache.camel.model.RouteDefinition;
import org.apache.camel.model.RoutesDefinition;
import org.apache.camel.spring.SpringCamelContext;
import org.apache.syncope.common.mod.RoleMod;
import org.apache.syncope.common.to.PropagationStatus;
import org.apache.syncope.common.to.RoleTO;
-import org.apache.syncope.core.persistence.beans.CamelRoute;
import org.apache.syncope.core.persistence.dao.RouteDAO;
import org.apache.syncope.core.propagation.PropagationException;
import org.apache.syncope.core.provisioning.RoleProvisioningManager;
-import org.apache.syncope.core.util.ApplicationContextProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
public class CamelRoleProvisioningManager implements RoleProvisioningManager {
@@ -84,7 +65,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
public CamelRoleProvisioningManager() throws Exception {
knownUri = new ArrayList<String>();
- consumerMap = new HashMap();
+ consumerMap = new HashMap<String, PollingConsumer>();
}
public void startContext() throws Exception {
@@ -165,6 +146,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> create(RoleTO roleTO, Set<String> excludedResources) {
String uri = "direct:createRolePort";
@@ -185,6 +167,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> createInSync(RoleTO roleTO, Map<Long, String> roleOwnerMap,
Set<String> excludedResources) throws PropagationException {
@@ -213,6 +196,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources) {
String uri = "direct:updateRolePort";
@@ -233,6 +217,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public List<PropagationStatus> delete(Long subjectId) {
String uri = "direct:deleteRolePort";
@@ -284,13 +269,14 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public List<PropagationStatus> deprovision(final Long roleId, Collection<String> resources) {
String uri = "direct:deprovisionRolePort";
PollingConsumer pollingConsumer = getConsumer(uri);
- Map props = new HashMap<String, Object>();
+ Map<String, Object> props = new HashMap<String, Object>();
props.put("resources", resources);
sendMessage("direct:deprovisionRole", roleId, props);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
index 01b057a..c65f8eb 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
@@ -31,12 +31,10 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.PollingConsumer;
import org.apache.camel.ProducerTemplate;
-import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.impl.DefaultMessage;
import org.apache.camel.model.RoutesDefinition;
@@ -76,7 +74,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
public CamelUserProvisioningManager() throws Exception {
knownUri = new ArrayList<String>();
- consumerMap = new HashMap();
+ consumerMap = new HashMap<String, PollingConsumer>();
}
public String readerToString(Reader reader, int size) throws IOException {
@@ -177,6 +175,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword,
boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources) {
String uri = "direct:createPort";
@@ -211,6 +210,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> update(UserMod userMod, boolean removeMemberships) {
String uri = "direct:updatePort";
PollingConsumer pollingConsumer = getConsumer(uri);
@@ -236,6 +236,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public List<PropagationStatus> delete(final Long userId, Set<String> excludedResources) {
String uri = "direct:deletePort";
PollingConsumer pollingConsumer = getConsumer(uri);
@@ -272,11 +273,12 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> activate(SyncopeUser user, StatusMod statusMod) {
String uri = "direct:statusPort";
PollingConsumer pollingConsumer = getConsumer(uri);
- Map props = new HashMap<String, Object>();
+ Map<String, Object> props = new HashMap<String, Object>();
props.put("token", statusMod.getToken());
props.put("user", user);
props.put("statusMod", statusMod);
@@ -299,11 +301,12 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> reactivate(SyncopeUser user, StatusMod statusMod) {
String uri = "direct:statusPort";
PollingConsumer pollingConsumer = getConsumer(uri);
- Map props = new HashMap<String, Object>();
+ Map<String, Object> props = new HashMap<String, Object>();
props.put("user", user);
props.put("statusMod", statusMod);
@@ -325,12 +328,13 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> suspend(SyncopeUser user, StatusMod statusMod) {
String uri = "direct:statusPort";
PollingConsumer pollingConsumer = getConsumer(uri);
- Map props = new HashMap<String, Object>();
+ Map<String, Object> props = new HashMap<String, Object>();
props.put("user", user);
props.put("statusMod", statusMod);
@@ -370,12 +374,13 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public List<PropagationStatus> deprovision(Long user, Collection<String> resources) {
String uri = "direct:deprovisionPort";
PollingConsumer pollingConsumer = getConsumer(uri);
- Map props = new HashMap<String, Object>();
+ Map<String, Object> props = new HashMap<String, Object>();
props.put("resources", resources);
sendMessage("direct:deprovisionUser", user, props);
@@ -390,6 +395,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> updateInSync(UserMod userMod, Long id, SyncResult result,
Boolean enabled, Set<String> excludedResources) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
index 6d3e77d..2873735 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
@@ -33,6 +33,7 @@ import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.model.Constants;
import org.apache.camel.model.RouteDefinition;
+import org.apache.camel.model.RoutesDefinition;
import org.apache.camel.spring.SpringCamelContext;
import org.apache.syncope.core.persistence.beans.CamelRoute;
import org.apache.syncope.core.persistence.dao.RouteDAO;
@@ -80,16 +81,14 @@ public class SyncopeCamelContext {
DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
JAXBContext jaxbContext = JAXBContext.newInstance(Constants.JAXB_CONTEXT_PACKAGES);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
- List rds = new ArrayList();
-
- for (int s = 0; s < crl.size(); s++) {
-
+ List<RouteDefinition> rds = new ArrayList<RouteDefinition>();
+ for(int s = 0; s < crl.size(); s++){
InputStream is = new ByteArrayInputStream(URLDecoder.decode(crl.get(s).getRouteContent(), "UTF-8").
getBytes());
Document doc = dBuilder.parse(is);
doc.getDocumentElement().normalize();
Node routeEl = doc.getElementsByTagName("route").item(0);
- JAXBElement obj = unmarshaller.unmarshal(routeEl, RouteDefinition.class);
+ JAXBElement<RouteDefinition> obj = unmarshaller.unmarshal(routeEl, RouteDefinition.class);
//adding route definition to list
rds.add(obj.getValue());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
index 2af3d37..43daf10 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
@@ -53,8 +53,10 @@ public class DefaultRoleCreatePropagation implements Processor {
@Override
public void process(Exchange exchange) {
+ @SuppressWarnings("unchecked")
WorkflowResult<Long> created = (WorkflowResult) exchange.getIn().getBody();
RoleTO subject = exchange.getProperty("subject", RoleTO.class);
+ @SuppressWarnings("unchecked")
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
EntitlementUtil.extendAuthContext(created.getResult());
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
index d796d6d..296d99e 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
@@ -51,6 +51,7 @@ public class DefaultRoleCreateSyncPropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleCreateSyncPropagation.class);
@Override
+ @SuppressWarnings("unchecked")
public void process(Exchange exchange) {
WorkflowResult<Long> created = (WorkflowResult) exchange.getIn().getBody();
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
index a7c35fb..e196187 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
@@ -54,6 +54,7 @@ public class DefaultRoleDeprovisionPropagation implements Processor {
public void process(Exchange exchange) {
Long roleId = exchange.getIn().getBody(Long.class);
+ @SuppressWarnings("unchecked")
List<String> resources = exchange.getProperty("resources", List.class);
final SyncopeRole role = binder.getRoleFromId(roleId);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
index 90d37dd..6722a15 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
@@ -55,8 +55,10 @@ public class DefaultRoleUpdatePropagation implements Processor {
@Override
public void process(Exchange exchange) {
+ @SuppressWarnings("unchecked")
WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
RoleMod subjectMod = exchange.getProperty("subjectMod", RoleMod.class);
+ @SuppressWarnings("unchecked")
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
List<PropagationTask> tasks = propagationManager.getRoleUpdateTaskIds(updated,
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
index 82ba0ab..ed5b990 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
@@ -54,8 +54,10 @@ public class DefaultUserCreatePropagation implements Processor {
if ((exchange.getIn().getBody() instanceof WorkflowResult)) {
+ @SuppressWarnings("unchecked")
WorkflowResult<Map.Entry<Long, Boolean>> created = (WorkflowResult) exchange.getIn().getBody();
UserTO actual = exchange.getProperty("actual", UserTO.class);
+ @SuppressWarnings("unchecked")
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
index 3f80459..c3028ab 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
@@ -50,6 +50,7 @@ public class DefaultUserDeletePropagation implements Processor {
Long userId = (Long) exchange.getIn().getBody();
LOG.info("UserId {} ", userId);
+ @SuppressWarnings("unchecked")
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
// Note here that we can only notify about "delete", not any other
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
index a529dea..caa9d90 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
@@ -54,6 +54,7 @@ public class DefaultUserDeprovisionPropagation implements Processor {
public void process(Exchange exchange) {
Long userId = exchange.getIn().getBody(Long.class);
+ @SuppressWarnings("unchecked")
List<String> resources = exchange.getProperty("resources", List.class);
final SyncopeUser user = binder.getUserFromId(userId);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
index cc167d7..89e9dca 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
@@ -54,6 +54,7 @@ public class DefaultUserStatusPropagation implements Processor {
@Override
public void process(Exchange exchange) {
+ @SuppressWarnings("unchecked")
WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
SyncopeUser user = exchange.getProperty("user", SyncopeUser.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
index a931a5b..1a9ecd3 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
@@ -60,8 +60,10 @@ public class DefaultUserUpdateInSyncPropagation implements Processor {
@Override
public void process(Exchange exchange) {
+ @SuppressWarnings("unchecked")
WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
+ @SuppressWarnings("unchecked")
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
index c9b498e..c34a0bf 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
@@ -56,6 +56,7 @@ public class DefaultUserUpdatePropagation implements Processor {
protected UserDataBinder binder;
@Override
+ @SuppressWarnings("unchecked")
public void process(Exchange exchange) {
WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
index 88cd160..dcc8af8 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
@@ -47,6 +47,7 @@ public class DefaultUserWFSuspendPropagation implements Processor {
@Override
public void process(Exchange exchange) {
+ @SuppressWarnings("unchecked")
WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
Boolean suspend = exchange.getProperty("suspend", Boolean.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
index 7cb7dfa..182913b 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
@@ -45,6 +45,7 @@ public class UserStatusOnSync implements Processor {
@Override
public void process(Exchange exchange) {
+ @SuppressWarnings("unchecked")
WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
Boolean enabled = exchange.getProperty("enabled", Boolean.class);
[31/53] [abbrv] syncope git commit: Merge remote-tracking branch
'upstream/master'
Posted by il...@apache.org.
Merge remote-tracking branch 'upstream/master'
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/d8ec8da8
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/d8ec8da8
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/d8ec8da8
Branch: refs/heads/2_0_X
Commit: d8ec8da83e0f807e89e830540e756470aa231e51
Parents: dff89c0 08893dc
Author: giacomolm <gi...@hotmail.it>
Authored: Tue Dec 30 16:44:05 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Tue Dec 30 16:44:05 2014 +0100
----------------------------------------------------------------------
pom.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8ec8da8/pom.xml
----------------------------------------------------------------------
[42/53] [abbrv] syncope git commit: Merge branch '1_2_X'
Posted by il...@apache.org.
Merge branch '1_2_X'
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/286d5cbb
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/286d5cbb
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/286d5cbb
Branch: refs/heads/2_0_X
Commit: 286d5cbbef4ad373461465deac28cd34d0343df9
Parents: b907a4e 069b56f
Author: Marco Di Sabatino Di Diodoro <md...@apache.org>
Authored: Mon Jan 5 11:08:29 2015 +0100
Committer: Marco Di Sabatino Di Diodoro <md...@apache.org>
Committed: Mon Jan 5 11:08:29 2015 +0100
----------------------------------------------------------------------
.../syncope/installer/utilities/FileSystemUtils.java | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
----------------------------------------------------------------------
[20/53] [abbrv] syncope git commit: Code formatting with netbeans
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/impl/LDAPPasswordSyncActions.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/LDAPPasswordSyncActions.java b/core/src/main/java/org/apache/syncope/core/sync/impl/LDAPPasswordSyncActions.java
index 65f43cc..2304fa4 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/LDAPPasswordSyncActions.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/LDAPPasswordSyncActions.java
@@ -66,7 +66,7 @@ public class LDAPPasswordSyncActions extends DefaultSyncActions {
return delta;
}
-
+
@Transactional(readOnly = true)
@Override
public <T extends AbstractAttributableTO, K extends AbstractAttributableMod> SyncDelta beforeUpdate(
@@ -74,15 +74,15 @@ public class LDAPPasswordSyncActions extends DefaultSyncActions {
final SyncDelta delta,
final T subject,
final K subjectMod) throws JobExecutionException {
-
+
if (subjectMod instanceof UserMod) {
- String modPassword = ((UserMod)subjectMod).getPassword();
+ String modPassword = ((UserMod) subjectMod).getPassword();
parseEncodedPassword(modPassword);
}
-
+
return delta;
}
-
+
private void parseEncodedPassword(String password) {
if (password != null && password.startsWith("{")) {
int closingBracketIndex = password.indexOf('}');
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
index e544687..4e83e66 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
@@ -86,8 +86,8 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
RoleTO roleTO = RoleTO.class.cast(subjectTO);
- Map.Entry<Long, List<PropagationStatus>> created = roleProvisioningManager.createInSync
- (roleTO, roleOwnerMap, Collections.singleton(profile.getSyncTask().getResource().getName()));
+ Map.Entry<Long, List<PropagationStatus>> created = roleProvisioningManager.createInSync(roleTO, roleOwnerMap,
+ Collections.singleton(profile.getSyncTask().getResource().getName()));
roleTO = roleDataBinder.getRoleTO(created.getKey());
@@ -127,7 +127,7 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
RoleMod roleMod = RoleMod.class.cast(subjectMod);
Map.Entry<Long, List<PropagationStatus>> updated = roleProvisioningManager.update(roleMod);
-
+
//moved after role provisioning manager
String roleOwner = null;
for (AttributeMod attrMod : roleMod.getAttrsToUpdate()) {
@@ -140,7 +140,7 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
}
final RoleTO after = roleDataBinder.getRoleTO(updated.getKey());
-
+
result.setName(getName(after));
return after;
@@ -170,6 +170,6 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
LOG.error("Could not propagate user " + id, e);
}
- roleProvisioningManager.delete(id);
+ roleProvisioningManager.delete(id);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
index e5bdc06..6802726 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
@@ -82,8 +82,8 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getSyncTask());
//Delegate User Workflow Creation and its Propagation to provisioning manager
- Map.Entry<Long, List<PropagationStatus>>
- created = userProvisioningManager.create(userTO, true, true, enabled,Collections.singleton(profile.getSyncTask().getResource().getName()));
+ Map.Entry<Long, List<PropagationStatus>> created = userProvisioningManager.create(userTO, true, true, enabled,
+ Collections.singleton(profile.getSyncTask().getResource().getName()));
userTO = userDataBinder.getUserTO(created.getKey());
@@ -121,51 +121,51 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
final UserMod userMod = UserMod.class.cast(subjectMod);
- /*WorkflowResult<Map.Entry<UserMod, Boolean>> updated;
- try {
- updated = uwfAdapter.update(userMod);
- } catch (Exception e) {
- LOG.error("Update of user {} failed, trying to sync its status anyway (if configured)", before.getId(), e);
-
- result.setStatus(SyncResult.Status.FAILURE);
- result.setMessage("Update failed, trying to sync status anyway (if configured)\n"
- + ExceptionUtils.getRootCauseMessage(e));
-
- updated = new WorkflowResult<Map.Entry<UserMod, Boolean>>(
- new AbstractMap.SimpleEntry<UserMod, Boolean>(userMod, false),
- new PropagationByResource(),
- new HashSet<String>());
- }*/
-
+ /* WorkflowResult<Map.Entry<UserMod, Boolean>> updated;
+ * try {
+ * updated = uwfAdapter.update(userMod);
+ * } catch (Exception e) {
+ * LOG.error("Update of user {} failed, trying to sync its status anyway (if configured)", before.getId(), e);
+ *
+ * result.setStatus(SyncResult.Status.FAILURE);
+ * result.setMessage("Update failed, trying to sync status anyway (if configured)\n"
+ * + ExceptionUtils.getRootCauseMessage(e));
+ *
+ * updated = new WorkflowResult<Map.Entry<UserMod, Boolean>>(
+ * new AbstractMap.SimpleEntry<UserMod, Boolean>(userMod, false),
+ * new PropagationByResource(),
+ * new HashSet<String>());
+ * } */
final Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getSyncTask());
- /*if (enabled != null) {
- SyncopeUser user = userDAO.find(before.getId());
-
- WorkflowResult<Long> enableUpdate = null;
- if (user.isSuspended() == null) {
- enableUpdate = uwfAdapter.activate(before.getId(), null);
- } else if (enabled && user.isSuspended()) {
- enableUpdate = uwfAdapter.reactivate(before.getId());
- } else if (!enabled && !user.isSuspended()) {
- enableUpdate = uwfAdapter.suspend(before.getId());
- }
-
- if (enableUpdate != null) {
- if (enableUpdate.getPropByRes() != null) {
- updated.getPropByRes().merge(enableUpdate.getPropByRes());
- updated.getPropByRes().purge();
- }
- updated.getPerformedTasks().addAll(enableUpdate.getPerformedTasks());
- }
- }
-
- final List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(
- updated, updated.getResult().getKey().getPassword() != null,
- Collections.singleton(profile.getSyncTask().getResource().getName()));
-
- taskExecutor.execute(tasks);*/
-
- Map.Entry<Long, List<PropagationStatus>> updated = userProvisioningManager.updateInSync(userMod, before.getId(), result,enabled, Collections.singleton(profile.getSyncTask().getResource().getName()));
+ /* if (enabled != null) {
+ * SyncopeUser user = userDAO.find(before.getId());
+ *
+ * WorkflowResult<Long> enableUpdate = null;
+ * if (user.isSuspended() == null) {
+ * enableUpdate = uwfAdapter.activate(before.getId(), null);
+ * } else if (enabled && user.isSuspended()) {
+ * enableUpdate = uwfAdapter.reactivate(before.getId());
+ * } else if (!enabled && !user.isSuspended()) {
+ * enableUpdate = uwfAdapter.suspend(before.getId());
+ * }
+ *
+ * if (enableUpdate != null) {
+ * if (enableUpdate.getPropByRes() != null) {
+ * updated.getPropByRes().merge(enableUpdate.getPropByRes());
+ * updated.getPropByRes().purge();
+ * }
+ * updated.getPerformedTasks().addAll(enableUpdate.getPerformedTasks());
+ * }
+ * }
+ *
+ * final List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(
+ * updated, updated.getResult().getKey().getPassword() != null,
+ * Collections.singleton(profile.getSyncTask().getResource().getName()));
+ *
+ * taskExecutor.execute(tasks); */
+
+ Map.Entry<Long, List<PropagationStatus>> updated = userProvisioningManager.updateInSync(userMod, before.getId(),
+ result, enabled, Collections.singleton(profile.getSyncTask().getResource().getName()));
return userDataBinder.getUserTO(updated.getKey());
}
@@ -189,7 +189,7 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
protected void delete(final Long id) {
try {
userProvisioningManager.
- delete(id,Collections.<String>singleton(profile.getSyncTask().getResource().getName()));
+ delete(id, Collections.<String>singleton(profile.getSyncTask().getResource().getName()));
} catch (Exception e) {
// A propagation failure doesn't imply a synchronization failure.
// The propagation exception status will be reported into the propagation task execution.
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/util/AttributeDeserializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/util/AttributeDeserializer.java b/core/src/main/java/org/apache/syncope/core/util/AttributeDeserializer.java
index 138b0fe..0c148b1 100644
--- a/core/src/main/java/org/apache/syncope/core/util/AttributeDeserializer.java
+++ b/core/src/main/java/org/apache/syncope/core/util/AttributeDeserializer.java
@@ -77,8 +77,8 @@ class AttributeDeserializer extends JsonDeserializer<Attribute> {
return Uid.NAME.equals(name)
? new Uid(values.isEmpty() || values.get(0) == null ? null : values.get(0).toString())
: Name.NAME.equals(name)
- ? new Name(values.isEmpty() || values.get(0) == null ? null : values.get(0).toString())
- : AttributeBuilder.build(name, values);
+ ? new Name(values.isEmpty() || values.get(0) == null ? null : values.get(0).toString())
+ : AttributeBuilder.build(name, values);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/util/ContentLoaderHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/util/ContentLoaderHandler.java b/core/src/main/java/org/apache/syncope/core/util/ContentLoaderHandler.java
index ea54a90..ccf2e86 100644
--- a/core/src/main/java/org/apache/syncope/core/util/ContentLoaderHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/util/ContentLoaderHandler.java
@@ -57,16 +57,16 @@ public class ContentLoaderHandler extends DefaultHandler {
Map<String, Integer> colTypes = jdbcTemplate.query("SELECT * FROM " + tableName,
new ResultSetExtractor<Map<String, Integer>>() {
- @Override
- public Map<String, Integer> extractData(final ResultSet rs) throws SQLException, DataAccessException {
- Map<String, Integer> colTypes = new HashMap<String, Integer>();
- for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
- colTypes.put(rs.getMetaData().getColumnName(i).toUpperCase(),
- rs.getMetaData().getColumnType(i));
- }
- return colTypes;
- }
- });
+ @Override
+ public Map<String, Integer> extractData(final ResultSet rs) throws SQLException, DataAccessException {
+ Map<String, Integer> colTypes = new HashMap<String, Integer>();
+ for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
+ colTypes.put(rs.getMetaData().getColumnName(i).toUpperCase(),
+ rs.getMetaData().getColumnType(i));
+ }
+ return colTypes;
+ }
+ });
Object[] parameters = new Object[attrs.getLength()];
for (int i = 0; i < attrs.getLength(); i++) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/util/RouteManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/util/RouteManager.java b/core/src/main/java/org/apache/syncope/core/util/RouteManager.java
index 67ebd82..397d7b0 100644
--- a/core/src/main/java/org/apache/syncope/core/util/RouteManager.java
+++ b/core/src/main/java/org/apache/syncope/core/util/RouteManager.java
@@ -16,24 +16,27 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.util;
import java.util.ArrayList;
import java.util.List;
import org.apache.syncope.core.persistence.beans.CamelRoute;
-
public class RouteManager {
+
private static List<CamelRoute> routelist;
-
- public static void addElement(CamelRoute route){
- if(routelist == null) routelist= new ArrayList<CamelRoute>();
+
+ public static void addElement(CamelRoute route) {
+ if (routelist == null) {
+ routelist = new ArrayList<CamelRoute>();
+ }
routelist.add(route);
}
-
- public static List<CamelRoute> getRoutes(){
- if(routelist == null) routelist= new ArrayList<CamelRoute>();
+
+ public static List<CamelRoute> getRoutes() {
+ if (routelist == null) {
+ routelist = new ArrayList<CamelRoute>();
+ }
return routelist;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/util/SecureRandomUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/util/SecureRandomUtil.java b/core/src/main/java/org/apache/syncope/core/util/SecureRandomUtil.java
index 860a153..b11d0a5 100644
--- a/core/src/main/java/org/apache/syncope/core/util/SecureRandomUtil.java
+++ b/core/src/main/java/org/apache/syncope/core/util/SecureRandomUtil.java
@@ -23,21 +23,21 @@ import java.security.SecureRandom;
import org.apache.commons.lang3.RandomStringUtils;
public class SecureRandomUtil {
-
+
private static final SecureRandom RANDOM = new SecureRandom();
public static String generateRandomPassword(final int tokenLength) {
return RandomStringUtils.random(tokenLength, 0, 0, true, false, null, RANDOM);
}
-
+
public static String generateRandomLetter() {
return RandomStringUtils.random(1, 0, 0, true, false, null, RANDOM);
}
-
+
public static String generateRandomNumber() {
return RandomStringUtils.random(1, 0, 0, false, true, null, RANDOM);
}
-
+
public static String generateRandomSpecialCharacter(char[] characters) {
return RandomStringUtils.random(1, 0, 0, false, false, characters, RANDOM);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/util/SyncTokenDeserializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/util/SyncTokenDeserializer.java b/core/src/main/java/org/apache/syncope/core/util/SyncTokenDeserializer.java
index 4e82401..30a0324 100644
--- a/core/src/main/java/org/apache/syncope/core/util/SyncTokenDeserializer.java
+++ b/core/src/main/java/org/apache/syncope/core/util/SyncTokenDeserializer.java
@@ -42,19 +42,19 @@ class SyncTokenDeserializer extends JsonDeserializer<SyncToken> {
value = node.isNull()
? null
: node.isBoolean()
- ? node.asBoolean()
- : node.isDouble()
- ? node.asDouble()
- : node.isLong()
- ? node.asLong()
- : node.isInt()
- ? node.asInt()
- : node.asText();
-
+ ? node.asBoolean()
+ : node.isDouble()
+ ? node.asDouble()
+ : node.isLong()
+ ? node.asLong()
+ : node.isInt()
+ ? node.asInt()
+ : node.asText();
+
if (value instanceof String) {
- byte[] bytes = ((String)value).getBytes();
+ byte[] bytes = ((String) value).getBytes();
if (Base64.isBase64(bytes)) {
- value = Base64.decode(bytes);
+ value = Base64.decode(bytes);
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java b/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java
index 0e67f5e..2f033f2 100644
--- a/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java
+++ b/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java
@@ -134,8 +134,8 @@ public final class JexlUtil {
context.set(fieldName, fieldValue == null
? ""
: (type.equals(Date.class)
- ? DataFormat.format((Date) fieldValue, false)
- : fieldValue));
+ ? DataFormat.format((Date) fieldValue, false)
+ : fieldValue));
LOG.debug("Add field {} with value {}", fieldName, fieldValue);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/package-info.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/package-info.java b/core/src/main/java/org/apache/syncope/core/workflow/package-info.java
index 2821d3a..b459536 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/package-info.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/package-info.java
@@ -17,4 +17,3 @@
* under the License.
*/
package org.apache.syncope.core.workflow;
-
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/role/AbstractRoleWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/role/AbstractRoleWorkflowAdapter.java b/core/src/main/java/org/apache/syncope/core/workflow/role/AbstractRoleWorkflowAdapter.java
index cd40429..b222100 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/role/AbstractRoleWorkflowAdapter.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/role/AbstractRoleWorkflowAdapter.java
@@ -30,7 +30,7 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
-@Transactional(rollbackFor = {Throwable.class})
+@Transactional(rollbackFor = { Throwable.class })
public abstract class AbstractRoleWorkflowAdapter implements RoleWorkflowAdapter {
@Autowired
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java b/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java
index f059a9a..8fbc25c 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java
@@ -117,7 +117,7 @@ public abstract class AbstractUserWorkflowAdapter implements UserWorkflowAdapter
doRequestPasswordReset(dataBinder.getUserFromId(userId));
}
- protected abstract void doConfirmPasswordReset(SyncopeUser user, String token, String password)
+ protected abstract void doConfirmPasswordReset(SyncopeUser user, String token, String password)
throws WorkflowException;
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java b/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java
index 8713261..2157301 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java
@@ -230,7 +230,8 @@ public class NoOpUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
}
@Override
- public WorkflowResult<Map.Entry<Long, Boolean>> create(UserTO userTO, boolean storePassword) throws UnauthorizedRoleException, WorkflowException {
+ public WorkflowResult<Map.Entry<Long, Boolean>> create(UserTO userTO, boolean storePassword) throws
+ UnauthorizedRoleException, WorkflowException {
return create(userTO, false, true);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/user/UserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/UserWorkflowAdapter.java b/core/src/main/java/org/apache/syncope/core/workflow/user/UserWorkflowAdapter.java
index c2844db..0d48227 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/UserWorkflowAdapter.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/UserWorkflowAdapter.java
@@ -152,7 +152,7 @@ public interface UserWorkflowAdapter extends WorkflowAdapter {
* @throws UnauthorizedRoleException authorization exception
* @throws WorkflowException workflow exception
*/
- void confirmPasswordReset(Long userId, String token, String password)
+ void confirmPasswordReset(Long userId, String token, String password)
throws UnauthorizedRoleException, WorkflowException;
/**
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java b/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
index 460b73b..adeb9f8 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
@@ -885,7 +885,8 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
}
@Override
- public WorkflowResult<Map.Entry<Long, Boolean>> create(UserTO userTO, boolean storePassword) throws UnauthorizedRoleException, WorkflowException {
+ public WorkflowResult<Map.Entry<Long, Boolean>> create(UserTO userTO, boolean storePassword) throws
+ UnauthorizedRoleException, WorkflowException {
return create(userTO, false, storePassword);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeGroupManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeGroupManager.java b/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeGroupManager.java
index c91e7e0..f670258 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeGroupManager.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeGroupManager.java
@@ -106,7 +106,7 @@ public class SyncopeGroupManager implements GroupIdentityManager, SyncopeSession
public void updateGroup(final Group updatedGroup) {
throw new UnsupportedOperationException();
}
-
+
@Override
public boolean isNewGroup(final Group group) {
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeUserManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeUserManager.java b/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeUserManager.java
index 42ea38c..9285ed9 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeUserManager.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeUserManager.java
@@ -121,7 +121,7 @@ public class SyncopeUserManager implements UserIdentityManager, SyncopeSession {
public void updateUser(final User updatedUser) {
throw new UnsupportedOperationException();
}
-
+
@Override
public Picture getUserPicture(final String string) {
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/resources/persistenceContextEMFactory.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/persistenceContextEMFactory.xml b/core/src/main/resources/persistenceContextEMFactory.xml
index 3337dd3..8fe4864 100644
--- a/core/src/main/resources/persistenceContextEMFactory.xml
+++ b/core/src/main/resources/persistenceContextEMFactory.xml
@@ -37,8 +37,8 @@ under the License.
<property name="jpaPropertyMap">
<map>
<!--<entry key="openjpa.Log" value="SQL=TRACE"/>
- <entry key="openjpa.ConnectionFactoryProperties"
- value="PrintParameters=true, PrettyPrint=true, PrettyPrintLineLength=80"/>-->
+ <entry key="openjpa.ConnectionFactoryProperties"
+ value="PrintParameters=true, PrettyPrint=true, PrettyPrintLineLength=80"/>-->
<entry key="openjpa.NontransactionalWrite" value="false"/>
<entry key="openjpa.AutoDetach" value="close, commit, nontx-read, rollback"/>
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/resources/report/staticReportlet2fo.xsl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/report/staticReportlet2fo.xsl b/core/src/main/resources/report/staticReportlet2fo.xsl
index 2b9a971..c123d51 100644
--- a/core/src/main/resources/report/staticReportlet2fo.xsl
+++ b/core/src/main/resources/report/staticReportlet2fo.xsl
@@ -23,62 +23,62 @@ under the License.
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
- <xsl:template match="reportlet[@class='org.apache.syncope.core.report.StaticReportlet']">
+ <xsl:template match="reportlet[@class='org.apache.syncope.core.report.StaticReportlet']">
- <fo:block font-size="14pt" font-weight="bold" space-after="0.5cm">Reportlet:
- <xsl:value-of select="@name"/>
- </fo:block>
+ <fo:block font-size="14pt" font-weight="bold" space-after="0.5cm">Reportlet:
+ <xsl:value-of select="@name"/>
+ </fo:block>
- <xsl:if test="string-length(string/text()) > 0">
- <fo:block font-size="11pt">String value:
- <xsl:value-of select="string/text()"/>
- </fo:block>
- </xsl:if>
+ <xsl:if test="string-length(string/text()) > 0">
+ <fo:block font-size="11pt">String value:
+ <xsl:value-of select="string/text()"/>
+ </fo:block>
+ </xsl:if>
- <xsl:if test="string-length(long/text()) > 0">
- <fo:block font-size="11pt">Long value:
- <xsl:value-of select="long/text()"/>
- </fo:block>
- </xsl:if>
+ <xsl:if test="string-length(long/text()) > 0">
+ <fo:block font-size="11pt">Long value:
+ <xsl:value-of select="long/text()"/>
+ </fo:block>
+ </xsl:if>
- <xsl:if test="string-length(double/text()) > 0">
- <fo:block font-size="11pt">Double value:
- <xsl:value-of select="double/text()"/>
- </fo:block>
- </xsl:if>
+ <xsl:if test="string-length(double/text()) > 0">
+ <fo:block font-size="11pt">Double value:
+ <xsl:value-of select="double/text()"/>
+ </fo:block>
+ </xsl:if>
- <xsl:if test="string-length(date/text()) > 0">
- <fo:block font-size="11pt">Date value:
- <xsl:value-of select="date/text()"/>
- </fo:block>
- </xsl:if>
+ <xsl:if test="string-length(date/text()) > 0">
+ <fo:block font-size="11pt">Date value:
+ <xsl:value-of select="date/text()"/>
+ </fo:block>
+ </xsl:if>
- <xsl:if test="string-length(enum/text()) > 0">
- <fo:block font-size="11pt">Enum value:
- <xsl:value-of select="enum/text()"/>
- </fo:block>
- </xsl:if>
+ <xsl:if test="string-length(enum/text()) > 0">
+ <fo:block font-size="11pt">Enum value:
+ <xsl:value-of select="enum/text()"/>
+ </fo:block>
+ </xsl:if>
- <xsl:if test="string-length(list) > 0">
- <fo:block font-size="11pt">List values:</fo:block>
+ <xsl:if test="string-length(list) > 0">
+ <fo:block font-size="11pt">List values:</fo:block>
- <fo:list-block provisional-label-separation="4mm" provisional-distance-between-starts="2mm">
- <xsl:for-each select="list/string">
- <xsl:if test="string-length(string/text()) > 0">
- <fo:list-item>
- <fo:list-item-label end-indent="label-end()">
- <fo:block>•</fo:block>
- </fo:list-item-label>
- <fo:list-item-body start-indent="body-start()">
- <fo:block>
- <xsl:value-of select="text()"/>
- </fo:block>
- </fo:list-item-body>
- </fo:list-item>
- </xsl:if>
- </xsl:for-each>
- </fo:list-block>
- </xsl:if>
+ <fo:list-block provisional-label-separation="4mm" provisional-distance-between-starts="2mm">
+ <xsl:for-each select="list/string">
+ <xsl:if test="string-length(string/text()) > 0">
+ <fo:list-item>
+ <fo:list-item-label end-indent="label-end()">
+ <fo:block>•</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent="body-start()">
+ <fo:block>
+ <xsl:value-of select="text()"/>
+ </fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ </xsl:if>
+ </xsl:for-each>
+ </fo:list-block>
+ </xsl:if>
- </xsl:template>
+ </xsl:template>
</xsl:stylesheet>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/resources/report/staticReportlet2html.xsl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/report/staticReportlet2html.xsl b/core/src/main/resources/report/staticReportlet2html.xsl
index 0fb7b28..da0ba85 100644
--- a/core/src/main/resources/report/staticReportlet2html.xsl
+++ b/core/src/main/resources/report/staticReportlet2html.xsl
@@ -22,53 +22,53 @@ under the License.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
- <xsl:template match="reportlet[@class='org.apache.syncope.core.report.StaticReportlet']">
- <h2>Reportlet:
- <xsl:value-of select="@name"/>
- </h2>
+ <xsl:template match="reportlet[@class='org.apache.syncope.core.report.StaticReportlet']">
+ <h2>Reportlet:
+ <xsl:value-of select="@name"/>
+ </h2>
- <xsl:if test="string-length(string/text()) > 0">
- <p>String value:
- <xsl:value-of select="string/text()"/>
- </p>
- </xsl:if>
+ <xsl:if test="string-length(string/text()) > 0">
+ <p>String value:
+ <xsl:value-of select="string/text()"/>
+ </p>
+ </xsl:if>
- <xsl:if test="string-length(long/text()) > 0">
- <p>Long value:
- <xsl:value-of select="long/text()"/>
- </p>
- </xsl:if>
+ <xsl:if test="string-length(long/text()) > 0">
+ <p>Long value:
+ <xsl:value-of select="long/text()"/>
+ </p>
+ </xsl:if>
- <xsl:if test="string-length(double/text()) > 0">
- <p>Double value:
- <xsl:value-of select="double/text()"/>
- </p>
- </xsl:if>
+ <xsl:if test="string-length(double/text()) > 0">
+ <p>Double value:
+ <xsl:value-of select="double/text()"/>
+ </p>
+ </xsl:if>
- <xsl:if test="string-length(date/text()) > 0">
- <p>Date value:
- <xsl:value-of select="date/text()"/>
- </p>
- </xsl:if>
+ <xsl:if test="string-length(date/text()) > 0">
+ <p>Date value:
+ <xsl:value-of select="date/text()"/>
+ </p>
+ </xsl:if>
- <xsl:if test="string-length(enum/text()) > 0">
- <p>Enum value:
- <xsl:value-of select="enum/text()"/>
- </p>
- </xsl:if>
+ <xsl:if test="string-length(enum/text()) > 0">
+ <p>Enum value:
+ <xsl:value-of select="enum/text()"/>
+ </p>
+ </xsl:if>
- <xsl:if test="string-length(list) > 0">
- <p>List values:</p>
+ <xsl:if test="string-length(list) > 0">
+ <p>List values:</p>
- <ul>
- <xsl:for-each select="list/string">
- <xsl:if test="string-length(string/text()) > 0">
- <li>
- <xsl:value-of select="text()"/>
- </li>
- </xsl:if>
- </xsl:for-each>
- </ul>
- </xsl:if>
- </xsl:template>
+ <ul>
+ <xsl:for-each select="list/string">
+ <xsl:if test="string-length(string/text()) > 0">
+ <li>
+ <xsl:value-of select="text()"/>
+ </li>
+ </xsl:if>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+ </xsl:template>
</xsl:stylesheet>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/resources/report/userReportlet2html.xsl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/report/userReportlet2html.xsl b/core/src/main/resources/report/userReportlet2html.xsl
index 3367169..751cb4c 100644
--- a/core/src/main/resources/report/userReportlet2html.xsl
+++ b/core/src/main/resources/report/userReportlet2html.xsl
@@ -157,9 +157,9 @@ under the License.
</xsl:otherwise>
</xsl:choose>
<xsl:if test="string-length(resources) > 0">
- <xsl:call-template name="resources">
- <xsl:with-param name="node" select="resources/resource"/>
- </xsl:call-template>
+ <xsl:call-template name="resources">
+ <xsl:with-param name="node" select="resources/resource"/>
+ </xsl:call-template>
</xsl:if>
<hr/>
</xsl:for-each>
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/resources/roleRoute.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/roleRoute.xml b/core/src/main/resources/roleRoute.xml
index 80ff595..44cdfa4 100644
--- a/core/src/main/resources/roleRoute.xml
+++ b/core/src/main/resources/roleRoute.xml
@@ -24,151 +24,151 @@ under the License.
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">
+ <!--
+ The default routes define each task involved in user creation:
+ main operations consist in user workflow creation and its propagation.
+ -->
+ <routeContext id="defaultRoleRoutes" xmlns="http://camel.apache.org/schema/spring">
<!--
- The default routes define each task involved in user creation:
- main operations consist in user workflow creation and its propagation.
+ CREATE ROLE
-->
- <routeContext id="defaultRoleRoutes" xmlns="http://camel.apache.org/schema/spring">
-<!--
- CREATE ROLE
- -->
- <route id="createRole">
- <from uri="direct:createRole"/>
- <setProperty propertyName="subject">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="rwfAdapter" method="create(${body})"/>
- <process ref="defaultRoleCreatePropagation" />
- <to uri="direct:createRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:createRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="createRole">
+ <from uri="direct:createRole"/>
+ <setProperty propertyName="subject">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="create(${body})"/>
+ <process ref="defaultRoleCreatePropagation" />
+ <to uri="direct:createRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- CREATE ROLE SYNC
- -->
- <route id="createRoleSync">
- <from uri="direct:createRoleSync"/>
- <setProperty propertyName="subject">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="rwfAdapter" method="create(${body})"/>
- <process ref="defaultRoleCreateSyncPropagation" />
- <to uri="direct:createRoleSyncPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:createRoleSyncPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ CREATE ROLE SYNC
+ -->
+ <route id="createRoleSync">
+ <from uri="direct:createRoleSync"/>
+ <setProperty propertyName="subject">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="create(${body})"/>
+ <process ref="defaultRoleCreateSyncPropagation" />
+ <to uri="direct:createRoleSyncPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createRoleSyncPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UPDATE ROLE
- -->
- <route id="updateRole">
- <from uri="direct:updateRole"/>
- <setProperty propertyName="subjectMod">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="rwfAdapter" method="update(${body})"/>
- <process ref="defaultRoleUpdatePropagation" />
- <to uri="direct:updateRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:updateRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UPDATE ROLE
+ -->
+ <route id="updateRole">
+ <from uri="direct:updateRole"/>
+ <setProperty propertyName="subjectMod">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <process ref="defaultRoleUpdatePropagation" />
+ <to uri="direct:updateRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updateRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- DELETE ROLE
- -->
- <route id="deleteRole">
- <from uri="direct:deleteRole"/>
- <doTry>
- <process ref="defaultRoleDeletePropagation" />
- <bean ref="rwfAdapter" method="delete(${body})"/>
- <setBody>
- <simple>${property.statuses}</simple>
- </setBody>
- <to uri="direct:deleteRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:deleteRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ DELETE ROLE
+ -->
+ <route id="deleteRole">
+ <from uri="direct:deleteRole"/>
+ <doTry>
+ <process ref="defaultRoleDeletePropagation" />
+ <bean ref="rwfAdapter" method="delete(${body})"/>
+ <setBody>
+ <simple>${property.statuses}</simple>
+ </setBody>
+ <to uri="direct:deleteRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:deleteRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UNLINK USER
- -->
- <route id="unlinkRole">
- <from uri="direct:unlinkRole"/>
- <doTry>
- <bean ref="rwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult}</simple>
- </setBody>
- <to uri="direct:unlinkRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:unlinkRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UNLINK USER
+ -->
+ <route id="unlinkRole">
+ <from uri="direct:unlinkRole"/>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult}</simple>
+ </setBody>
+ <to uri="direct:unlinkRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:unlinkRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- LINK USER
- -->
+ <!--
+ LINK USER
+ -->
- <route id="linkRole">
- <from uri="direct:linkRole"/>
- <doTry>
- <bean ref="rwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult}</simple>
- </setBody>
- <to uri="direct:linkRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:linkRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="linkRole">
+ <from uri="direct:linkRole"/>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult}</simple>
+ </setBody>
+ <to uri="direct:linkRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:linkRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- DEPROVISION ROLE
- -->
- <route id="deprovisionRole">
- <from uri="direct:deprovisionRole"/>
- <process ref="defaultRoleDeprovisionPropagation" />
- <to uri="direct:deprovisionRolePort"/>
- </route>
-</routeContext>
+ <!--
+ DEPROVISION ROLE
+ -->
+ <route id="deprovisionRole">
+ <from uri="direct:deprovisionRole"/>
+ <process ref="defaultRoleDeprovisionPropagation" />
+ <to uri="direct:deprovisionRolePort"/>
+ </route>
+ </routeContext>
</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/resources/userRoute.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/userRoute.xml b/core/src/main/resources/userRoute.xml
index e65ef2f..763996d 100644
--- a/core/src/main/resources/userRoute.xml
+++ b/core/src/main/resources/userRoute.xml
@@ -24,240 +24,240 @@ under the License.
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">
- <!--
- The default routes define each task involved in user creation:
- main operations consist in user workflow creation and its propagation.
- -->
- <routeContext id="defaultUserRoutes" xmlns="http://camel.apache.org/schema/spring">
- <route id="createUser">
- <from uri="direct:createUser"/>
- <setProperty propertyName="actual">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="uwfAdapter"
- method="create(${body},${property.disablePwdPolicyCheck},
+ <!--
+ The default routes define each task involved in user creation:
+ main operations consist in user workflow creation and its propagation.
+ -->
+ <routeContext id="defaultUserRoutes" xmlns="http://camel.apache.org/schema/spring">
+ <route id="createUser">
+ <from uri="direct:createUser"/>
+ <setProperty propertyName="actual">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="uwfAdapter"
+ method="create(${body},${property.disablePwdPolicyCheck},
${property.enabled},${property.storePassword})"/>
- <process ref="defaultUserCreatePropagation" />
- <to uri="direct:createPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:createPort"/>
- </doCatch>
- </doTry>
- </route>
+ <process ref="defaultUserCreatePropagation" />
+ <to uri="direct:createPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- The propagation route deals with propagation of created user. In this
- case we used a custom processor to perform this task: it means that
- a custom java class contains the propagation strategy.
- -->
+ <!--
+ The propagation route deals with propagation of created user. In this
+ case we used a custom processor to perform this task: it means that
+ a custom java class contains the propagation strategy.
+ -->
- <!--
- UPDATE USER
- -->
- <route id="updateUser">
- <from uri="direct:updateUser"/>
- <setProperty propertyName="actual">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <process ref="defaultUserUpdatePropagation" />
- <to uri="direct:updatePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:updatePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UPDATE USER
+ -->
+ <route id="updateUser">
+ <from uri="direct:updateUser"/>
+ <setProperty propertyName="actual">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <process ref="defaultUserUpdatePropagation" />
+ <to uri="direct:updatePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updatePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UPDATE SYNC USER
- -->
- <route id="updateSyncUser">
- <from uri="direct:updateSyncUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <to uri="direct:syncUserStatus"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:updateSyncPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UPDATE SYNC USER
+ -->
+ <route id="updateSyncUser">
+ <from uri="direct:updateSyncUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <to uri="direct:syncUserStatus"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updateSyncPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <route id="syncUserStatus">
- <from uri="direct:syncUserStatus"/>
- <process ref="userStatusOnSync" />
- <process ref="defaultUserUpdateSyncPropagation" />
- <to uri="direct:updateSyncPort"/>
- </route>
- <!--
- DELETE USER
- -->
- <route id="deleteUser">
- <from uri="direct:deleteUser"/>
- <doTry>
- <process ref="defaultUserDeletePropagation" />
- <bean ref="uwfAdapter" method="delete(${body})"/>
- <setBody>
- <simple>${property.statuses}</simple>
- </setBody>
- <to uri="direct:deletePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:deletePort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="syncUserStatus">
+ <from uri="direct:syncUserStatus"/>
+ <process ref="userStatusOnSync" />
+ <process ref="defaultUserUpdateSyncPropagation" />
+ <to uri="direct:updateSyncPort"/>
+ </route>
+ <!--
+ DELETE USER
+ -->
+ <route id="deleteUser">
+ <from uri="direct:deleteUser"/>
+ <doTry>
+ <process ref="defaultUserDeletePropagation" />
+ <bean ref="uwfAdapter" method="delete(${body})"/>
+ <setBody>
+ <simple>${property.statuses}</simple>
+ </setBody>
+ <to uri="direct:deletePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:deletePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UNLINK USER
- -->
- <route id="unlinkUser">
- <from uri="direct:unlinkUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult.getKey}</simple>
- </setBody>
- <to uri="direct:unlinkPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:unlinkPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UNLINK USER
+ -->
+ <route id="unlinkUser">
+ <from uri="direct:unlinkUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult.getKey}</simple>
+ </setBody>
+ <to uri="direct:unlinkPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:unlinkPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- LINK USER
- -->
+ <!--
+ LINK USER
+ -->
- <route id="linkUser">
- <from uri="direct:linkUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult.getKey}</simple>
- </setBody>
- <to uri="direct:linkPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:linkPort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="linkUser">
+ <from uri="direct:linkUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult.getKey}</simple>
+ </setBody>
+ <to uri="direct:linkPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:linkPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- ACTIVATE USER
- -->
- <route id="activateUser">
- <from uri="direct:activateUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="activate(${body}, ${property.token})"/>
- <to uri="direct:statusUser"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:statusPort"/>
- </doCatch>
- </doTry>
- </route>
- <!--
- REACTIVATE USER
- -->
- <route id="reactivateUser">
- <from uri="direct:reactivateUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="reactivate(${body})"/>
- <to uri="direct:statusUser"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:statusPort"/>
- </doCatch>
- </doTry>
- </route>
- <!--
- SUSPEND USER
- -->
- <route id="suspendUser">
- <from uri="direct:suspendUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="suspend(${body})"/>
- <to uri="direct:statusUser"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:statusPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ ACTIVATE USER
+ -->
+ <route id="activateUser">
+ <from uri="direct:activateUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="activate(${body}, ${property.token})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ REACTIVATE USER
+ -->
+ <route id="reactivateUser">
+ <from uri="direct:reactivateUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="reactivate(${body})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ SUSPEND USER
+ -->
+ <route id="suspendUser">
+ <from uri="direct:suspendUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="suspend(${body})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- STATUS PROPAGATION
- -->
+ <!--
+ STATUS PROPAGATION
+ -->
- <route id="statusUser">
- <from uri="direct:statusUser"/>
- <process ref="defaultUserStatusPropagation" />
- <to uri="direct:statusPort"/>
- </route>
+ <route id="statusUser">
+ <from uri="direct:statusUser"/>
+ <process ref="defaultUserStatusPropagation" />
+ <to uri="direct:statusPort"/>
+ </route>
- <!--
- DEPROVISION USER
- -->
- <route id="deprovisionUser">
- <from uri="direct:deprovisionUser"/>
- <process ref="defaultUserDeprovisionPropagation" />
- <to uri="direct:deprovisionPort"/>
- </route>
+ <!--
+ DEPROVISION USER
+ -->
+ <route id="deprovisionUser">
+ <from uri="direct:deprovisionUser"/>
+ <process ref="defaultUserDeprovisionPropagation" />
+ <to uri="direct:deprovisionPort"/>
+ </route>
- <route id="suspendUserWF">
- <from uri="direct:suspendUserWF"/>
- <doTry>
- <bean ref="uwfAdapter" method="suspend(${body})"/>
- <process ref="defaultUserWFSuspendPropagation"/>
- <to uri="direct:suspendWFPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:suspendWFPort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="suspendUserWF">
+ <from uri="direct:suspendUserWF"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="suspend(${body})"/>
+ <process ref="defaultUserWFSuspendPropagation"/>
+ <to uri="direct:suspendWFPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:suspendWFPort"/>
+ </doCatch>
+ </doTry>
+ </route>
-</routeContext>
+ </routeContext>
</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/resources/wadl2html/index.xsl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/wadl2html/index.xsl b/core/src/main/resources/wadl2html/index.xsl
index d7b4e98..e238b99 100644
--- a/core/src/main/resources/wadl2html/index.xsl
+++ b/core/src/main/resources/wadl2html/index.xsl
@@ -48,50 +48,50 @@
<link rel="stylesheet" href="{$contextPath}/webjars/jquery-ui/${jquery-ui.version}/themes/base/minified/jquery-ui.min.css"/>
<style>
-body {
- font-family: "Verdana,Arial,sans-serif";
- font-size: 0.9em;
-}
+ body {
+ font-family: "Verdana,Arial,sans-serif";
+ font-size: 0.9em;
+ }
-table {
- font-family: "Verdana,Arial,sans-serif";
- font-size: 0.9em;
- border-width: 1px;
- border-color: #666666;
- border-collapse: collapse;
-}
-table th {
- border-width: 1px;
- padding: 8px;
- border-style: solid;
- border-color: #666666;
- background-color: #dedede;
-}
-td {
- border-width: 1px;
- padding: 8px;
- border-style: solid;
- border-color: #666666;
- background-color: #ffffff;
- vertical-align: top;
-}
+ table {
+ font-family: "Verdana,Arial,sans-serif";
+ font-size: 0.9em;
+ border-width: 1px;
+ border-color: #666666;
+ border-collapse: collapse;
+ }
+ table th {
+ border-width: 1px;
+ padding: 8px;
+ border-style: solid;
+ border-color: #666666;
+ background-color: #dedede;
+ }
+ td {
+ border-width: 1px;
+ padding: 8px;
+ border-style: solid;
+ border-color: #666666;
+ background-color: #ffffff;
+ vertical-align: top;
+ }
-.methods {
- padding: 5px;
-}
+ .methods {
+ padding: 5px;
+ }
-.representation-label {
- font-weight: bold;
- width: 80px;
-}
+ .representation-label {
+ font-weight: bold;
+ width: 80px;
+ }
-.ui-widget { font-size: 0.9em; }
-.ui-tabs-vertical { width: 60em; }
-.ui-tabs-vertical .ui-tabs-nav { padding: .2em .1em .2em .2em; float: left; width: 15em; }
-.ui-tabs-vertical .ui-tabs-nav li { clear: left; width: 100%; border-bottom-width: 1px !important; border-right-width: 0 !important; margin: 0 -1px .2em 0; }
-.ui-tabs-vertical .ui-tabs-nav li a { display:block; }
-.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active { padding-bottom: 0; padding-right: .1em; border-right-width: 1px; border-right-width: 1px; }
-.ui-tabs-vertical .ui-tabs-panel { padding: 1em; float: right; width: 40em;}
+ .ui-widget { font-size: 0.9em; }
+ .ui-tabs-vertical { width: 60em; }
+ .ui-tabs-vertical .ui-tabs-nav { padding: .2em .1em .2em .2em; float: left; width: 15em; }
+ .ui-tabs-vertical .ui-tabs-nav li { clear: left; width: 100%; border-bottom-width: 1px !important; border-right-width: 0 !important; margin: 0 -1px .2em 0; }
+ .ui-tabs-vertical .ui-tabs-nav li a { display:block; }
+ .ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active { padding-bottom: 0; padding-right: .1em; border-right-width: 1px; border-right-width: 1px; }
+ .ui-tabs-vertical .ui-tabs-panel { padding: 1em; float: right; width: 40em;}
</style>
<script src="{$contextPath}/webjars/jquery/${jquery.version}/jquery.min.js">
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java b/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java
index fcc9dc8..ff0c099 100644
--- a/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java
+++ b/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java
@@ -79,7 +79,6 @@ public class DerSchemaTest extends AbstractDAOTest {
assertNull("delete did not work", actual);
// ------------- //
-
RDerSchema rderiveddata = derSchemaDAO.find("rderiveddata", RDerSchema.class);
assertNotNull(rderiveddata);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/test/java/org/apache/syncope/core/persistence/dao/SecurityQuestionTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/persistence/dao/SecurityQuestionTest.java b/core/src/test/java/org/apache/syncope/core/persistence/dao/SecurityQuestionTest.java
index 87bf75b..86e725c 100644
--- a/core/src/test/java/org/apache/syncope/core/persistence/dao/SecurityQuestionTest.java
+++ b/core/src/test/java/org/apache/syncope/core/persistence/dao/SecurityQuestionTest.java
@@ -52,7 +52,7 @@ public class SecurityQuestionTest extends AbstractDAOTest {
public void save() {
SecurityQuestion securityQuestion = new SecurityQuestion();
securityQuestion.setContent("What is your favorite pet's name?");
-
+
SecurityQuestion actual = securityQuestionDAO.save(securityQuestion);
assertNotNull(actual);
assertNotNull(actual.getId());
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java b/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java
index ef0c4a8..efae722 100644
--- a/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java
+++ b/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java
@@ -77,7 +77,6 @@ public class VirSchemaTest extends AbstractDAOTest {
assertNull("delete did not work", actual);
// ------------- //
-
RVirSchema rvirtualdata = virSchemaDAO.find("rvirtualdata", RVirSchema.class);
assertNotNull(rvirtualdata);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java b/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java
index d1063f5..4dbf804 100644
--- a/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java
+++ b/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java
@@ -709,13 +709,13 @@ public class ConnectorTestITCase extends AbstractTest {
@Test
public void issueSYNCOPE605() {
-
+
ConnInstanceTO connectorInstanceTO = connectorService.read(103L);
assertTrue(connectorInstanceTO.getCapabilities().isEmpty());
-
+
connectorInstanceTO.getCapabilities().add(ConnectorCapability.SEARCH);
connectorService.update(connectorInstanceTO.getId(), connectorInstanceTO);
-
+
ConnInstanceTO updatedCapabilities = connectorService.read(connectorInstanceTO.getId());
assertNotNull(updatedCapabilities.getCapabilities());
assertTrue(updatedCapabilities.getCapabilities().size() == 1);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/test/java/org/apache/syncope/core/rest/NotificationTestITCase.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/rest/NotificationTestITCase.java b/core/src/test/java/org/apache/syncope/core/rest/NotificationTestITCase.java
index 7d7a433..3008350 100644
--- a/core/src/test/java/org/apache/syncope/core/rest/NotificationTestITCase.java
+++ b/core/src/test/java/org/apache/syncope/core/rest/NotificationTestITCase.java
@@ -44,7 +44,7 @@ public class NotificationTestITCase extends AbstractTest {
NotificationTO notificationTO = new NotificationTO();
notificationTO.setTraceLevel(TraceLevel.SUMMARY);
notificationTO.getEvents().add("create");
-
+
notificationTO.setUserAbout(SyncopeClient.getUserSearchConditionBuilder().
is("fullname").equalTo("*o*").and("fullname").equalTo("*i*").query());
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java b/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java
index 18b1e3f..0100538 100644
--- a/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java
+++ b/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java
@@ -227,12 +227,12 @@ public class PolicyTestITCase extends AbstractTest {
public void issueSYNCOPE553() {
AccountPolicyTO policy = new AccountPolicyTO(false);
policy.setDescription("SYNCOPE553");
-
+
final AccountPolicySpec accountPolicySpec = new AccountPolicySpec();
accountPolicySpec.setMinLength(3);
accountPolicySpec.setMaxLength(8);
policy.setSpecification(accountPolicySpec);
-
+
policy = createPolicy(policy);
assertNotNull(policy);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java b/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java
index 77f4c66..e4b915f 100644
--- a/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java
+++ b/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java
@@ -507,7 +507,7 @@ public class ResourceTestITCase extends AbstractTest {
item.setExtAttrName("cn");
item.setPurpose(MappingPurpose.BOTH);
mapping.setAccountIdItem(item);
-
+
item = new MappingItemTO();
item.setIntMappingType(IntMappingType.RoleOwnerSchema);
item.setExtAttrName("owner");
[24/53] [abbrv] syncope git commit: Merge remote-tracking branch
'upstream/master'
Posted by il...@apache.org.
Merge remote-tracking branch 'upstream/master'
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/fe8eeb24
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/fe8eeb24
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/fe8eeb24
Branch: refs/heads/master
Commit: fe8eeb247f622b775e2a53472a34b5831b8a2422
Parents: 7aa0db3 51c543d
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Tue Dec 23 08:46:13 2014 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Tue Dec 23 08:46:13 2014 +0100
----------------------------------------------------------------------
installer/pom.xml | 20 +++
.../installer/containers/jboss/JBoss.java | 12 +-
.../org/apache/syncope/installer/enums/DBs.java | 3 +
.../installer/files/ConsoleProperties.java | 31 ++++
.../syncope/installer/files/CoreWebXml.java | 76 ++------
.../installer/files/GlassfishCoreWebXml.java | 38 +---
.../files/JBossDeploymentStructureXml.java | 40 +----
.../syncope/installer/files/ParentPom.java | 176 +------------------
.../files/PersistenceContextEMFactoryXml.java | 47 +----
.../installer/files/PersistenceProperties.java | 27 +--
.../installer/processes/ArchetypeProcess.java | 41 +++--
.../installer/processes/BaseProcess.java | 54 ++++++
.../installer/processes/ContainerProcess.java | 171 ++++++++++++++----
.../installer/processes/PersistenceProcess.java | 25 ++-
.../installer/utilities/FileSystemUtils.java | 45 +++++
.../syncope/installer/utilities/MavenUtils.java | 31 +---
.../src/main/resources/configuration.properties | 31 ++++
.../main/resources/izpack/ProcessPanel.Spec.xml | 40 +++--
installer/src/main/resources/izpack/install.xml | 6 +-
.../main/resources/izpack/userInputLang.xml_eng | 4 +
.../main/resources/izpack/userInputLang.xml_ita | 4 +
.../src/main/resources/izpack/userInputSpec.xml | 20 ++-
installer/src/main/resources/modelerPom.xml | 116 ++++++++++++
23 files changed, 589 insertions(+), 469 deletions(-)
----------------------------------------------------------------------
[43/53] [abbrv] syncope git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/syncope
Posted by il...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/syncope
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/1d58c500
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/1d58c500
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/1d58c500
Branch: refs/heads/2_0_X
Commit: 1d58c50063c4fe0be08db994815671dcc89ff096
Parents: 286d5cb 44b21af
Author: Marco Di Sabatino Di Diodoro <md...@apache.org>
Authored: Mon Jan 5 11:09:30 2015 +0100
Committer: Marco Di Sabatino Di Diodoro <md...@apache.org>
Committed: Mon Jan 5 11:09:30 2015 +0100
----------------------------------------------------------------------
pom.xml | 11 +++++++++++
src/site/site.xml | 3 ---
2 files changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
[41/53] [abbrv] syncope git commit: [SYNCOPE-625] Replaced java.nio
for Java 6
Posted by il...@apache.org.
[SYNCOPE-625] Replaced java.nio for Java 6
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/069b56f9
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/069b56f9
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/069b56f9
Branch: refs/heads/2_0_X
Commit: 069b56f92aee2cfc79c326993ac8bf894bb07b04
Parents: fde8f4d
Author: Marco Di Sabatino Di Diodoro <md...@apache.org>
Authored: Mon Jan 5 11:07:36 2015 +0100
Committer: Marco Di Sabatino Di Diodoro <md...@apache.org>
Committed: Mon Jan 5 11:07:36 2015 +0100
----------------------------------------------------------------------
.../syncope/installer/utilities/FileSystemUtils.java | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/069b56f9/installer/src/main/java/org/apache/syncope/installer/utilities/FileSystemUtils.java
----------------------------------------------------------------------
diff --git a/installer/src/main/java/org/apache/syncope/installer/utilities/FileSystemUtils.java b/installer/src/main/java/org/apache/syncope/installer/utilities/FileSystemUtils.java
index 4381c1e..7e9f7b8 100644
--- a/installer/src/main/java/org/apache/syncope/installer/utilities/FileSystemUtils.java
+++ b/installer/src/main/java/org/apache/syncope/installer/utilities/FileSystemUtils.java
@@ -30,10 +30,6 @@ import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.URL;
-import java.nio.file.CopyOption;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
@@ -61,11 +57,7 @@ public class FileSystemUtils {
public void copyFile(final String sourceFilePath, final String targetFilePath) {
try {
- final CopyOption[] options = new CopyOption[] {
- StandardCopyOption.REPLACE_EXISTING,
- StandardCopyOption.COPY_ATTRIBUTES
- };
- Files.copy(Paths.get(sourceFilePath), Paths.get(targetFilePath), options);
+ FileUtils.copyFile(new File(sourceFilePath), new File(targetFilePath));
} catch (final IOException ex) {
final String errorMessage =
"Error copy file " + sourceFilePath + " to " + targetFilePath;
[49/53] [abbrv] syncope git commit: restoring original POM name / desc
Posted by il...@apache.org.
restoring original POM name / desc
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/01ac2bd7
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/01ac2bd7
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/01ac2bd7
Branch: refs/heads/2_0_X
Commit: 01ac2bd7dd4cb2116b7ee5e6b7502f066527c08b
Parents: d388f24
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Jan 5 14:14:01 2015 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Jan 5 14:14:01 2015 +0100
----------------------------------------------------------------------
pom.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/01ac2bd7/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 1fe0129..30673a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,8 @@ under the License.
<modelVersion>4.0.0</modelVersion>
- <name>PoC for integrating Apache Camel in Apache Syncope</name>
+ <name>Apache Syncope</name>
+ <description>Apache Syncope parent POM</description>
<groupId>org.apache.syncope</groupId>
<artifactId>syncope</artifactId>
[04/53] [abbrv] syncope git commit: Initial running version,
in order to fix #1
Posted by il...@apache.org.
Initial running version, in order to fix #1
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/5b3b124a
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/5b3b124a
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/5b3b124a
Branch: refs/heads/master
Commit: 5b3b124a0c4254e39f0caf5b0daabb5b7d571a56
Parents: bac25e1
Author: giacomolm <gi...@hotmail.it>
Authored: Mon Dec 15 16:37:58 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Mon Dec 15 16:37:58 2014 +0100
----------------------------------------------------------------------
.../syncope/common/services/RouteService.java | 49 ++
.../common/services/WorkflowService.java | 9 +
.../org/apache/syncope/common/to/RouteTO.java | 60 +++
.../syncope/console/pages/Configuration.java | 120 +++++
.../syncope/console/pages/RouteModalPage.java | 90 ++++
.../syncope/console/rest/RouteRestClient.java | 47 ++
console/src/main/resources/authorizations.xml | 13 +
.../syncope/console/pages/Configuration.html | 403 ++++++++--------
.../console/pages/Configuration.properties | 1 +
.../syncope/console/pages/RouteModalPage.html | 49 ++
.../console/pages/RouteModalPage.properties | 18 +
.../console/pages/RouteModalPage_it.properties | 18 +
.../pages/RouteModalPage_pt_BR.properties | 18 +
core/pom.xml | 19 +
.../syncope/core/init/CamelRouteLoader.java | 106 +++++
.../core/init/SpringContextInitializer.java | 5 +
.../core/persistence/beans/CamelRoute.java | 63 +++
.../syncope/core/persistence/dao/RouteDAO.java | 34 ++
.../core/persistence/dao/impl/RouteDAOImpl.java | 58 +++
.../DefaultRoleProvisioningManager.java | 231 ++++++++++
.../DefaultUserProvisioningManager.java | 347 ++++++++++++++
.../provisioning/RoleProvisioningManager.java | 35 ++
.../provisioning/UserProvisioningManager.java | 50 ++
.../camel/CamelRoleProvisioningManager.java | 307 +++++++++++++
.../camel/CamelUserProvisioningManager.java | 456 +++++++++++++++++++
.../provisioning/camel/SyncopeCamelContext.java | 137 ++++++
.../DefaultRoleCreatePropagation.java | 76 ++++
.../DefaultRoleCreateSyncPropagation.java | 79 ++++
.../DefaultRoleDeletePropagation.java | 100 ++++
.../DefaultRoleDeprovisionPropagation.java | 74 +++
.../DefaultRoleUpdatePropagation.java | 75 +++
.../DefaultUserCreatePropagation.java | 76 ++++
.../DefaultUserDeletePropagation.java | 72 +++
.../DefaultUserDeprovisionPropagation.java | 74 +++
.../DefaultUserStatusPropagation.java | 76 ++++
.../DefaultUserUpdateInSyncPropagation.java | 78 ++++
.../DefaultUserUpdatePropagation.java | 120 +++++
.../DefaultUserWFSuspendPropagation.java | 64 +++
.../camel/processors/UserStatusOnSync.java | 72 +++
.../provisioning/ProvisioningManager.java | 42 ++
.../core/rest/controller/RoleController.java | 113 +----
.../core/rest/controller/RouteController.java | 92 ++++
.../core/rest/controller/UserController.java | 146 +++---
.../syncope/core/rest/data/RouteDataBinder.java | 40 ++
.../syncope/core/services/RouteServiceImpl.java | 52 +++
.../core/services/WorkflowServiceImpl.java | 10 +
.../sync/impl/AbstractSyncopeResultHandler.java | 9 +
.../core/sync/impl/RoleSyncResultHandler.java | 37 +-
.../core/sync/impl/UserSyncResultHandler.java | 33 +-
.../apache/syncope/core/util/RouteManager.java | 39 ++
.../core/workflow/WorkflowUserSuspender.java | 29 +-
.../user/AbstractUserWorkflowAdapter.java | 9 -
.../workflow/user/NoOpUserWorkflowAdapter.java | 5 +
.../activiti/ActivitiUserWorkflowAdapter.java | 5 +
core/src/main/resources/camelRoute.xml | 430 +++++++++++++++++
core/src/main/resources/content.xml | 3 +
core/src/main/resources/coreContext.xml | 26 +-
core/src/main/resources/roleRoute.xml | 174 +++++++
core/src/main/resources/userRoute.xml | 263 +++++++++++
.../core/persistence/dao/EntitlementTest.java | 2 +-
core/src/test/resources/content.xml | 3 +
pom.xml | 19 +-
62 files changed, 4906 insertions(+), 454 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/common/src/main/java/org/apache/syncope/common/services/RouteService.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/syncope/common/services/RouteService.java b/common/src/main/java/org/apache/syncope/common/services/RouteService.java
new file mode 100644
index 0000000..feb7db7
--- /dev/null
+++ b/common/src/main/java/org/apache/syncope/common/services/RouteService.java
@@ -0,0 +1,49 @@
+/*
+ * 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.common.services;
+
+import java.util.List;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import org.apache.syncope.common.to.RouteTO;
+
+@Path("routes")
+public interface RouteService extends JAXRSService{
+
+ @GET
+ @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
+ List<RouteTO> getRoutes();
+
+ @GET
+ @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
+ @Path("{id}")
+ public RouteTO getRoute(@PathParam("id") Long Id);
+
+ @PUT
+ @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
+ @Path("{id}")
+ void importRoute(@PathParam("id") Long id, RouteTO route);
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/common/src/main/java/org/apache/syncope/common/services/WorkflowService.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/syncope/common/services/WorkflowService.java b/common/src/main/java/org/apache/syncope/common/services/WorkflowService.java
index 2a291e0..da70043 100644
--- a/common/src/main/java/org/apache/syncope/common/services/WorkflowService.java
+++ b/common/src/main/java/org/apache/syncope/common/services/WorkflowService.java
@@ -86,4 +86,13 @@ public interface WorkflowService extends JAXRSService {
@PUT
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
void importDefinition(@NotNull @PathParam("kind") SubjectType kind, @NotNull String definition);
+
+ @GET
+ @Path("{id}")
+ @Produces({ MediaType.APPLICATION_XML })
+ Response getRoute(@PathParam("id") Long id);
+
+ @GET
+ @Produces({ MediaType.APPLICATION_XML })
+ Response getRoutes();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/common/src/main/java/org/apache/syncope/common/to/RouteTO.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/syncope/common/to/RouteTO.java b/common/src/main/java/org/apache/syncope/common/to/RouteTO.java
new file mode 100644
index 0000000..d9fe833
--- /dev/null
+++ b/common/src/main/java/org/apache/syncope/common/to/RouteTO.java
@@ -0,0 +1,60 @@
+/*
+ * 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.common.to;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import org.apache.syncope.common.AbstractBaseBean;
+
+@XmlRootElement(name = "route")
+@XmlType
+public class RouteTO extends AbstractBaseBean{
+
+ private Long id;
+
+ private String name;
+
+ private String routeContent;
+
+ public void setId(Long id){
+ this.id = id;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getRouteContent() {
+ return routeContent;
+ }
+
+ public void setRouteContent(String routeContent) {
+ this.routeContent = routeContent;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/Configuration.java b/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
index b2e5c07..10dcfc7 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
@@ -32,6 +32,7 @@ import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.common.SyncopeConstants;
import org.apache.syncope.common.to.LoggerTO;
import org.apache.syncope.common.to.NotificationTO;
+import org.apache.syncope.common.to.RouteTO;
import org.apache.syncope.common.to.SecurityQuestionTO;
import org.apache.syncope.console.commons.AttrLayoutType;
import org.apache.syncope.common.types.LoggerLevel;
@@ -44,6 +45,7 @@ import org.apache.syncope.console.pages.panels.LayoutsPanel;
import org.apache.syncope.console.pages.panels.PoliciesPanel;
import org.apache.syncope.console.rest.LoggerRestClient;
import org.apache.syncope.console.rest.NotificationRestClient;
+import org.apache.syncope.console.rest.RouteRestClient;
import org.apache.syncope.console.rest.SecurityQuestionRestClient;
import org.apache.syncope.console.rest.WorkflowRestClient;
import org.apache.syncope.console.wicket.extensions.markup.html.repeater.data.table.CollectionPropertyColumn;
@@ -117,6 +119,9 @@ public class Configuration extends BasePage {
@SpringBean
private WorkflowRestClient wfRestClient;
+
+ @SpringBean
+ private RouteRestClient routeRestClient;
@SpringBean
private PreferenceManager prefMan;
@@ -130,12 +135,16 @@ public class Configuration extends BasePage {
private final ModalWindow createSecurityQuestionWin;
private final ModalWindow editSecurityQuestionWin;
+
+ private final ModalWindow editRouteWin;
private WebMarkupContainer notificationContainer;
private WebMarkupContainer securityQuestionContainer;
private int notificationPaginatorRows;
+
+ private int routePaginatorRows;
public Configuration() {
super();
@@ -267,6 +276,10 @@ public class Configuration extends BasePage {
add(new LayoutsPanel("selfRoleLayoutPanel", AttrLayoutType.SELF_ROLE, feedbackPanel));
add(new LayoutsPanel("adminMembershipLayoutPanel", AttrLayoutType.ADMIN_MEMBERSHIP, feedbackPanel));
add(new LayoutsPanel("selfMembershipLayoutPanel", AttrLayoutType.SELF_MEMBERSHIP, feedbackPanel));
+
+ //Route Management
+ add(editRouteWin = new ModalWindow("editRouteWin"));
+ setupRoutes();
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@@ -754,4 +767,111 @@ public class Configuration extends BasePage {
ctx.updateLoggers();
}
}
+
+ private void setupRoutes() {
+
+ routePaginatorRows = prefMan.getPaginatorRows(getRequest(), "route.paginator.rows");
+
+ final List<IColumn<RouteTO, String>> routeCols = new ArrayList<IColumn<RouteTO, String>>();
+ routeCols.add(new PropertyColumn<RouteTO, String>(
+ new ResourceModel("id"), "id", "id"));
+
+ routeCols.add(new PropertyColumn<RouteTO, String>(
+ new ResourceModel("name"), "name", "name"));
+
+ routeCols.add(new AbstractColumn<RouteTO, String>(new ResourceModel("actions", "")) {
+
+ private static final long serialVersionUID = 2054811145491901166L;
+
+ @Override
+ public String getCssClass() {
+ return "action";
+ }
+
+ @Override
+ public void populateItem(final Item<ICellPopulator<RouteTO>> cellItem, final String componentId,
+ final IModel<RouteTO> model) {
+
+ final ActionLinksPanel panel = new ActionLinksPanel(componentId, model, getPageReference());
+
+ panel.add(new ActionLink() {
+
+ private static final long serialVersionUID = -3722207913631435501L;
+
+ @Override
+ public void onClick(final AjaxRequestTarget target) {
+
+ editRouteWin.setPageCreator(new ModalWindow.PageCreator() {
+
+ private static final long serialVersionUID = -7834632442532690940L;
+
+ @Override
+ public Page createPage() {
+ return new RouteModalPage(Configuration.this.getPageReference(), editRouteWin, routeRestClient.readRoute(model.getObject().getId()), false);
+ //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
+
+ });
+
+ editRouteWin.show(target);
+ }
+ }, ActionLink.ActionType.EDIT, "Routes");
+
+ cellItem.add(panel);
+ }
+ });
+
+ final AjaxFallbackDefaultDataTable<RouteTO, String> routeTable
+ = new AjaxFallbackDefaultDataTable<RouteTO, String>(
+ "routeTable", routeCols, new RouteProvider(), routePaginatorRows);
+
+ WebMarkupContainer routeContainer = new WebMarkupContainer("routesContainer");
+ routeContainer.add(routeTable);
+ routeContainer.setOutputMarkupId(true);
+
+ add(routeContainer);
+
+ editRouteWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
+ editRouteWin.setInitialHeight(NOTIFICATION_WIN_HEIGHT);
+ editRouteWin.setInitialWidth(NOTIFICATION_WIN_WIDTH);
+ }
+
+ private class RouteProvider extends SortableDataProvider<RouteTO, String> {
+
+ private SortableDataProviderComparator<RouteTO> comparator;
+
+ public RouteProvider() {
+ setSort("id", SortOrder.ASCENDING);
+ comparator = new SortableDataProviderComparator<RouteTO>(this);
+ }
+
+ @Override
+ public Iterator<? extends RouteTO> iterator(long first, long count) {
+ List<RouteTO> list = routeRestClient.readRoutes();
+
+ Collections.sort(list, comparator);
+
+ return list.subList((int) first, (int) first + (int) count).iterator();
+ }
+
+ @Override
+ public long size() {
+ return routeRestClient.readRoutes().size();
+ }
+
+ @Override
+ public IModel<RouteTO> model(final RouteTO route) {
+ return new AbstractReadOnlyModel<RouteTO>() {
+
+ private static final long serialVersionUID = 774694801558497248L;
+
+ @Override
+ public RouteTO getObject() {
+ return route;
+ }
+ };
+ }
+
+ }
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/console/src/main/java/org/apache/syncope/console/pages/RouteModalPage.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/RouteModalPage.java b/console/src/main/java/org/apache/syncope/console/pages/RouteModalPage.java
new file mode 100644
index 0000000..bba8aa4
--- /dev/null
+++ b/console/src/main/java/org/apache/syncope/console/pages/RouteModalPage.java
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.console.pages;
+
+import org.apache.syncope.common.SyncopeClientException;
+import org.apache.syncope.common.to.RouteTO;
+import org.apache.syncope.console.commons.Constants;
+import org.apache.syncope.console.rest.RouteRestClient;
+import org.apache.wicket.PageReference;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy;
+import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
+import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.TextArea;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+
+
+public class RouteModalPage extends BaseModalPage{
+
+ @SpringBean
+ private RouteRestClient restClient;
+
+ public RouteModalPage(final PageReference pageRef, final ModalWindow window,
+ final RouteTO routeTO, final boolean createFlag){
+
+ Form routeForm = new Form("routeDefForm");
+
+ final TextArea<String> routeDefArea = new TextArea<String>("routeContent", new PropertyModel<String>(routeTO, "routeContent"));
+ //routeDefArea.setOutputMarkupId(true);
+
+ routeForm.add(routeDefArea);
+ routeForm.setModel(new CompoundPropertyModel<RouteTO>(routeTO));
+
+ //routeDefArea.setMarkupId("routeContent");
+
+ AjaxButton submit =
+ new IndicatingAjaxButton(APPLY, new Model<String>(getString(SUBMIT)), routeForm) {
+
+ private static final long serialVersionUID = -958724007591692537L;
+
+ @Override
+ protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) {
+ try {
+ restClient.updateRoute(routeTO.getId(), ((RouteTO)form.getModelObject()).getRouteContent());
+ info(getString(Constants.OPERATION_SUCCEEDED));
+
+ Configuration callerPage = (Configuration) pageRef.getPage();
+ callerPage.setModalResult(true);
+ window.close(target);
+ } catch (SyncopeClientException scee) {
+ error(getString(Constants.ERROR) + ": " + scee.getMessage());
+ }
+ target.add(feedbackPanel);
+ }
+
+ @Override
+ protected void onError(final AjaxRequestTarget target, final Form<?> form) {
+ target.add(feedbackPanel);
+ }
+
+ };
+
+ MetaDataRoleAuthorizationStrategy.authorize(submit, ENABLE,
+ xmlRolesReader.getEntitlement("Routes", "update"));
+ routeForm.add(submit);
+
+ this.add(routeForm);
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/console/src/main/java/org/apache/syncope/console/rest/RouteRestClient.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/rest/RouteRestClient.java b/console/src/main/java/org/apache/syncope/console/rest/RouteRestClient.java
new file mode 100644
index 0000000..673652a
--- /dev/null
+++ b/console/src/main/java/org/apache/syncope/console/rest/RouteRestClient.java
@@ -0,0 +1,47 @@
+/*
+ * 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.console.rest;
+
+import java.util.List;
+import org.apache.syncope.common.services.RouteService;
+import org.apache.syncope.common.to.RouteTO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+@Component
+public class RouteRestClient extends BaseRestClient{
+
+ protected static final Logger LOG = LoggerFactory.getLogger(RouteRestClient.class);
+
+ public List<RouteTO> readRoutes(){
+ return getService(RouteService.class).getRoutes();
+ }
+
+ public RouteTO readRoute(Long id){
+ return getService(RouteService.class).getRoute(id);
+ }
+
+ public void updateRoute(Long id, String definition){
+ RouteTO routeTO = readRoute(id);
+ routeTO.setRouteContent(definition);
+ getService(RouteService.class).importRoute(routeTO.getId(), routeTO);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/console/src/main/resources/authorizations.xml
----------------------------------------------------------------------
diff --git a/console/src/main/resources/authorizations.xml b/console/src/main/resources/authorizations.xml
index 69e9b0c..d5914f8 100644
--- a/console/src/main/resources/authorizations.xml
+++ b/console/src/main/resources/authorizations.xml
@@ -317,4 +317,17 @@ under the License.
<entitlement>POLICY_UPDATE</entitlement>
</action>
</page>
+ <page id="Routes">
+ <action id="list">
+ <entitlement>ROUTE_LIST</entitlement>
+ </action>
+
+ <action id="read">
+ <entitlement>ROUTE_READ</entitlement>
+ </action>
+
+ <action id="update">
+ <entitlement>ROUTE_UPDATE</entitlement>
+ </action>
+ </page>
</auth>
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html b/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
index f3699b8..62f97a8 100644
--- a/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
+++ b/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
@@ -17,211 +17,220 @@ specific language governing permissions and limitations
under the License.
-->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
- <wicket:head>
- <script type="text/javascript">
- $(document).ready(function () {
- $("#policies").tabs();
- $("#logs").tabs();
- $("#layouts").tabs();
- });
- </script>
- </wicket:head>
+ <wicket:head>
+ <script type="text/javascript">
+ $(document).ready(function () {
+ $("#policies").tabs();
+ $("#logs").tabs();
+ $("#layouts").tabs();
+ });
+ </script>
+ </wicket:head>
- <wicket:extend>
+ <wicket:extend>
- <div id="tabs">
- <ul>
- <li class="tabs-selected">
- <a href="#layouts"><span><wicket:message key="layouts"/></span></a>
- </li>
- <li><a href="#policies"><span><wicket:message key="policies"/></span></a></li>
- <li><a href="#notifications"><span><wicket:message key="notifications"/></span></a></li>
- <li><a href="#securityQuestions"><span><wicket:message key="securityQuestions"/></span></a></li>
- <li><a href="#workflow"><span><wicket:message key="workflow"/></span></a></li>
- <li><a href="#logs"><span><wicket:message key="logs"/></span></a></li>
- </ul>
- <div id="layouts">
- <ul>
- <li class="tabs-selected">
- <a href="#adminUser"><span><wicket:message key="adminUser"/></span></a>
- </li>
- <li><a href="#selfUser"><span><wicket:message key="selfUser"/></span></a></li>
- <li><a href="#adminRole"><span><wicket:message key="adminRole"/></span></a></li>
- <li><a href="#selfRole"><span><wicket:message key="selfRole"/></span></a></li>
- <li><a href="#adminMembership"><span><wicket:message key="adminMembership"/></span></a></li>
- <li><a href="#selfMembership"><span><wicket:message key="selfMembership"/></span></a></li>
- </ul>
- <div id="adminUser" style="border-width: 1px;border-top-width: 0px;">
- <span wicket:id="adminUserLayoutPanel">[admin user layout panel]</span>
- </div>
- <div id="selfUser" style="border-width: 1px;border-top-width: 0px;">
- <span wicket:id="selfUserLayoutPanel">[self user layout panel]</span>
- </div>
- <div id="adminRole" style="border-width: 1px;border-top-width: 0px;">
- <span wicket:id="adminRoleLayoutPanel">[admin role layout panel]</span>
- </div>
- <div id="selfRole" style="border-width: 1px;border-top-width: 0px;">
- <span wicket:id="selfRoleLayoutPanel">[self role layout panel]</span>
- </div>
- <div id="adminMembership" style="border-width: 1px;border-top-width: 0px;">
- <span wicket:id="adminMembershipLayoutPanel">[admin membership layout panel]</span>
- </div>
- <div id="selfMembership" style="border-width: 1px;border-top-width: 0px;">
- <span wicket:id="selfMembershipLayoutPanel">[self membership layout panel]</span>
- </div>
- </div>
- <div id="policies">
- <ul>
- <li class="tabs-selected">
- <a href="#account"><span><wicket:message key="account"/></span></a>
- </li>
- <li><a href="#password"><span><wicket:message key="password"/></span></a></li>
- <li><a href="#sync"><span><wicket:message key="sync"/></span></a></li>
- </ul>
- <div id="account" style="border-width: 1px;border-top-width: 0px;">
- <span wicket:id="accountPoliciesPanel">[account policies]</span>
- </div>
- <div id="password" style="border-width: 1px;border-top-width: 0px;">
- <span wicket:id="passwordPoliciesPanel">[password policies]</span>
- </div>
- <div id="sync" style="border-width: 1px;border-top-width: 0px;">
- <span wicket:id="syncPoliciesPanel">[sync policies]</span>
- </div>
- </div>
- <div id="notifications">
- <div id="users-contain" class="ui-widget" style="width:inherit">
- <span wicket:id="notificationContainer">
- <table class="ui-widget ui-widget-content table-hover"
- wicket:id="notificationTable"/>
- </span>
+ <div id="tabs">
+ <ul>
+ <li class="tabs-selected">
+ <a href="#layouts"><span><wicket:message key="layouts"/></span></a>
+ </li>
+ <li><a href="#policies"><span><wicket:message key="policies"/></span></a></li>
+ <li><a href="#notifications"><span><wicket:message key="notifications"/></span></a></li>
+ <li><a href="#securityQuestions"><span><wicket:message key="securityQuestions"/></span></a></li>
+ <li><a href="#workflow"><span><wicket:message key="workflow"/></span></a></li>
+ <li><a href="#routes"><span><wicket:message key="routes"/></span></a></li>
+ <li><a href="#logs"><span><wicket:message key="logs"/></span></a></li>
+ </ul>
+ <div id="layouts">
+ <ul>
+ <li class="tabs-selected">
+ <a href="#adminUser"><span><wicket:message key="adminUser"/></span></a>
+ </li>
+ <li><a href="#selfUser"><span><wicket:message key="selfUser"/></span></a></li>
+ <li><a href="#adminRole"><span><wicket:message key="adminRole"/></span></a></li>
+ <li><a href="#selfRole"><span><wicket:message key="selfRole"/></span></a></li>
+ <li><a href="#adminMembership"><span><wicket:message key="adminMembership"/></span></a></li>
+ <li><a href="#selfMembership"><span><wicket:message key="selfMembership"/></span></a></li>
+ </ul>
+ <div id="adminUser" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="adminUserLayoutPanel">[admin user layout panel]</span>
+ </div>
+ <div id="selfUser" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="selfUserLayoutPanel">[self user layout panel]</span>
+ </div>
+ <div id="adminRole" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="adminRoleLayoutPanel">[admin role layout panel]</span>
+ </div>
+ <div id="selfRole" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="selfRoleLayoutPanel">[self role layout panel]</span>
+ </div>
+ <div id="adminMembership" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="adminMembershipLayoutPanel">[admin membership layout panel]</span>
+ </div>
+ <div id="selfMembership" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="selfMembershipLayoutPanel">[self membership layout panel]</span>
+ </div>
+ </div>
+ <div id="policies">
+ <ul>
+ <li class="tabs-selected">
+ <a href="#account"><span><wicket:message key="account"/></span></a>
+ </li>
+ <li><a href="#password"><span><wicket:message key="password"/></span></a></li>
+ <li><a href="#sync"><span><wicket:message key="sync"/></span></a></li>
+ </ul>
+ <div id="account" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="accountPoliciesPanel">[account policies]</span>
+ </div>
+ <div id="password" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="passwordPoliciesPanel">[password policies]</span>
+ </div>
+ <div id="sync" style="border-width: 1px;border-top-width: 0px;">
+ <span wicket:id="syncPoliciesPanel">[sync policies]</span>
+ </div>
+ </div>
+ <div id="notifications">
+ <div id="users-contain" class="ui-widget" style="width:inherit">
+ <span wicket:id="notificationContainer">
+ <table class="ui-widget ui-widget-content table-hover"
+ wicket:id="notificationTable"/>
+ </span>
- <span style="float:right">
- <form wicket:id="notificationPaginatorForm" style="display:inline">
- <label><wicket:message key="displayRows"/></label>
- <select class="text ui-widget-content ui-corner-all"
- wicket:id="rowsChooser"/>
- </form>
- </span>
- </div>
+ <span style="float:right">
+ <form wicket:id="notificationPaginatorForm" style="display:inline">
+ <label><wicket:message key="displayRows"/></label>
+ <select class="text ui-widget-content ui-corner-all"
+ wicket:id="rowsChooser"/>
+ </form>
+ </span>
+ </div>
- <div wicket:id="createNotificationWin">[Show modal window for creating notification]</div>
- <div wicket:id="editNotificationWin">[Show modal window for editing notification]</div>
+ <div wicket:id="createNotificationWin">[Show modal window for creating notification]</div>
+ <div wicket:id="editNotificationWin">[Show modal window for editing notification]</div>
- <a class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
- wicket:id="createNotificationLink">
- <wicket:message key="create"/>
- </a>
- </div>
- <div id="securityQuestions">
- <div id="users-contain" class="ui-widget" style="width:inherit">
- <span wicket:id="securityQuestionContainer">
- <table class="ui-widget ui-widget-content table-hover"
- wicket:id="securityQuestionTable"/>
- </span>
- </div>
+ <a class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
+ wicket:id="createNotificationLink">
+ <wicket:message key="create"/>
+ </a>
+ </div>
+ <div id="securityQuestions">
+ <div id="users-contain" class="ui-widget" style="width:inherit">
+ <span wicket:id="securityQuestionContainer">
+ <table class="ui-widget ui-widget-content table-hover"
+ wicket:id="securityQuestionTable"/>
+ </span>
+ </div>
- <div wicket:id="createSecurityQuestionWin">[Show modal window for creating security questions]</div>
- <div wicket:id="editSecurityQuestionWin">[Show modal window for editing security questions]</div>
+ <div wicket:id="createSecurityQuestionWin">[Show modal window for creating security questions]</div>
+ <div wicket:id="editSecurityQuestionWin">[Show modal window for editing security questions]</div>
- <a class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
- wicket:id="createSecurityQuestionLink">
- <wicket:message key="create"/>
- </a>
- </div>
- <div id="workflow">
- <div id="users-contain" class="ui-widget" style="width:inherit">
- <span wicket:id="noActivitiEnabledForUsers"><i><wicket:message key="noActivitiEnabledForUsers"/></i></span>
- <span wicket:id="workflowDefContainer">
- <div style="float: left;">
- <button wicket:id="activitiModeler" style="width: 122px">
- <div style="display: table-row;">
- <div style="display: table-cell">
- <img src="img/modeler.png" alt="Activiti Modeler" title="Activiti Modeler"/>
- </div>
- <div style="display: table-cell;vertical-align:middle;font-size:62.5%;">
- Activiti Modeler
- </div>
- </div>
- </button>
+ <a class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
+ wicket:id="createSecurityQuestionLink">
+ <wicket:message key="create"/>
+ </a>
</div>
- <div>
- <button wicket:id="xmlEditor" style="width: 122px">
- <div style="display: table-row;">
- <div style="display: table-cell">
- <img src="img/xml.png" alt="XML editor" title="XML editor"/>
- </div>
- <div style="display: table-cell;vertical-align:middle;font-size:62.5%;">
- XML editor
- </div>
- </div>
- </button>
+ <div id="workflow">
+ <div id="users-contain" class="ui-widget" style="width:inherit">
+ <span wicket:id="noActivitiEnabledForUsers"><i><wicket:message key="noActivitiEnabledForUsers"/></i></span>
+ <span wicket:id="workflowDefContainer">
+ <div style="float: left;">
+ <button wicket:id="activitiModeler" style="width: 122px">
+ <div style="display: table-row;">
+ <div style="display: table-cell">
+ <img src="img/modeler.png" alt="Activiti Modeler" title="Activiti Modeler"/>
+ </div>
+ <div style="display: table-cell;vertical-align:middle;font-size:62.5%;">
+ Activiti Modeler
+ </div>
+ </div>
+ </button>
+ </div>
+ <div>
+ <button wicket:id="xmlEditor" style="width: 122px">
+ <div style="display: table-row;">
+ <div style="display: table-cell">
+ <img src="img/xml.png" alt="XML editor" title="XML editor"/>
+ </div>
+ <div style="display: table-cell;vertical-align:middle;font-size:62.5%;">
+ XML editor
+ </div>
+ </div>
+ </button>
+ </div>
+ <img wicket:id="workflowDefDiagram" style="width: 100%;"/>
+ </span>
+ </div>
</div>
- <img wicket:id="workflowDefDiagram" style="width: 100%;"/>
- </span>
- </div>
- </div>
- <div id="logs">
- <ul>
- <li class="tabs-selected">
- <a href="#core"><span>Core</span></a>
- </li>
- <li><a href="#console"><span>Console</span></a></li>
- </ul>
- <div id="core" style="border-width: 1px;border-top-width: 0px;">
- <div id="users-contain" class="ui-widget" style="width:inherit">
- <span wicket:id="coreLoggerContainer">
- <table class="ui-widget ui-widget-content table-hover">
- <thead class="ui-widget-header">
- <tr class="heaaders">
- <th><wicket:message key="logger"/></th>
- <th><wicket:message key="level"/></th>
- </tr>
- </thead>
- <tbody>
- <tr wicket:id="corelogger">
- <td><span wicket:id="name"/></td>
- <td id="level"><select wicket:id="level"/></td>
- </tr>
- </tbody>
- </table>
- </span>
- </div>
- </div>
- <div id="console" style="border-width: 1px;border-top-width: 0px;">
- <div id="users-contain" class="ui-widget" style="width:inherit">
- <span wicket:id="consoleLoggerContainer">
- <table class="ui-widget ui-widget-content table-hover">
- <thead class="ui-widget-header">
- <tr class="heaaders">
- <th><wicket:message key="logger"/></th>
- <th><wicket:message key="level"/></th>
- </tr>
- </thead>
- <tbody>
- <tr wicket:id="consolelogger">
- <td><span wicket:id="name"/></td>
- <td id="level"><select wicket:id="level"/></td>
- </tr>
- </tbody>
- </table>
- </span>
- </div>
- </div>
- </div>
- <div>
- <div wicket:id="parameters">
- <a style="position: absolute; top: 2px; right:50px;" wicket:id="confLink">
- <img src="img/actions/settings-icon.png" width="30" height="30"
- alt="Parameters" title="title" wicket:message="title:parameters"/>
- </a>
- </div>
- <div wicket:id="syncopeConfWin">[Show modal window for conf parameters]</div>
+ <div id="routes">
+ <div id="users-contain" class="ui-widget" style="width:inherit">
+ <span wicket:id="routesContainer">
+ <table class="ui-widget ui-widget-content table-hover" wicket:id="routeTable"/>
+ </span>
+ </div>
+ <div wicket:id="editRouteWin">[Show modal window for editing route]</div>
+ </div>
+ <div id="logs">
+ <ul>
+ <li class="tabs-selected">
+ <a href="#core"><span>Core</span></a>
+ </li>
+ <li><a href="#console"><span>Console</span></a></li>
+ </ul>
+ <div id="core" style="border-width: 1px;border-top-width: 0px;">
+ <div id="users-contain" class="ui-widget" style="width:inherit">
+ <span wicket:id="coreLoggerContainer">
+ <table class="ui-widget ui-widget-content table-hover">
+ <thead class="ui-widget-header">
+ <tr class="heaaders">
+ <th><wicket:message key="logger"/></th>
+ <th><wicket:message key="level"/></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr wicket:id="corelogger">
+ <td><span wicket:id="name"/></td>
+ <td id="level"><select wicket:id="level"/></td>
+ </tr>
+ </tbody>
+ </table>
+ </span>
+ </div>
+ </div>
+ <div id="console" style="border-width: 1px;border-top-width: 0px;">
+ <div id="users-contain" class="ui-widget" style="width:inherit">
+ <span wicket:id="consoleLoggerContainer">
+ <table class="ui-widget ui-widget-content table-hover">
+ <thead class="ui-widget-header">
+ <tr class="heaaders">
+ <th><wicket:message key="logger"/></th>
+ <th><wicket:message key="level"/></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr wicket:id="consolelogger">
+ <td><span wicket:id="name"/></td>
+ <td id="level"><select wicket:id="level"/></td>
+ </tr>
+ </tbody>
+ </table>
+ </span>
+ </div>
+ </div>
+ </div>
+ <div>
+ <div wicket:id="parameters">
+ <a style="position: absolute; top: 2px; right:50px;" wicket:id="confLink">
+ <img src="img/actions/settings-icon.png" width="30" height="30"
+ alt="Parameters" title="title" wicket:message="title:parameters"/>
+ </a>
+ </div>
+ <div wicket:id="syncopeConfWin">[Show modal window for conf parameters]</div>
- <a style="position: absolute; top: 2px; right:20px;" wicket:id="dbExportLink">
- <img src="img/db_export.png" width="30" height="30"
- alt="DB export" title="title" wicket:message="title:db_export"/>
- </a>
- </div>
- </div>
- </wicket:extend>
+ <a style="position: absolute; top: 2px; right:20px;" wicket:id="dbExportLink">
+ <img src="img/db_export.png" width="30" height="30"
+ alt="DB export" title="title" wicket:message="title:db_export"/>
+ </a>
+ </div>
+ </div>
+ </wicket:extend>
</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/console/src/main/resources/org/apache/syncope/console/pages/Configuration.properties
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/Configuration.properties b/console/src/main/resources/org/apache/syncope/console/pages/Configuration.properties
index 1b6bcc7..f59b50f 100644
--- a/console/src/main/resources/org/apache/syncope/console/pages/Configuration.properties
+++ b/console/src/main/resources/org/apache/syncope/console/pages/Configuration.properties
@@ -45,3 +45,4 @@ adminRole=Administrator Role Form
selfRole=Self Role Form
adminMembership=Administrator Membership Form
selfMembership=Self Membership Form
+routes=Routes
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage.html
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage.html b/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage.html
new file mode 100644
index 0000000..a237c27
--- /dev/null
+++ b/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage.html
@@ -0,0 +1,49 @@
+<!--
+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.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
+ <wicket:head>
+ <link rel="stylesheet" type="text/css" href="webjars/codemirror/${codemirror.version}/lib/codemirror.css"/>
+
+ <script type="text/javascript" src="webjars/codemirror/${codemirror.version}/lib/codemirror.js"></script>
+ <script type="text/javascript" src="webjars/codemirror/${codemirror.version}/mode/xml/xml.js"></script>
+ <script type="text/javascript">
+ function updateTextArea(editor) {
+ document.getElementById("routeDefForm").elements["routeContent"].value = editor.getValue();
+ }
+ </script>
+ </wicket:head>
+ <wicket:extend>
+ <form wicket:id="routeDefForm" id="routeDefForm">
+ <textarea wicket:id="routeContent" id="routeContent" name="routeContent" style="width: 100%; height: 350px;">
+ </textarea>
+ <div style="margin: 10px;">
+ <input type="submit"
+ class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"
+ wicket:id="apply"
+ onclick=""/>
+ </div>
+ </form>
+ <script>
+ window.onload = function(){
+ var editor = CodeMirror.fromTextArea(document.getElementById("routeContent"),{lineNumbers: true});
+ editor.on("change", updateTextArea);
+ }
+ </script>
+ </wicket:extend>
+</html>
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage.properties
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage.properties b/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage.properties
new file mode 100644
index 0000000..8ac2655
--- /dev/null
+++ b/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage.properties
@@ -0,0 +1,18 @@
+# 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.
+title=Edit route
+id=id
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage_it.properties
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage_it.properties b/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage_it.properties
new file mode 100644
index 0000000..44663f7
--- /dev/null
+++ b/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage_it.properties
@@ -0,0 +1,18 @@
+# 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.
+title=Modifica le rotte
+id=id
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage_pt_BR.properties
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage_pt_BR.properties b/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage_pt_BR.properties
new file mode 100644
index 0000000..a6395a0
--- /dev/null
+++ b/console/src/main/resources/org/apache/syncope/console/pages/RouteModalPage_pt_BR.properties
@@ -0,0 +1,18 @@
+# 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.
+title=Editar rotas
+id=id
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index d9ab5a6..66b5a22 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -117,6 +117,25 @@ under the License.
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-client</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-spring</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <version>2.2.7</version>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ <version>2.2.7</version>
+ </dependency>
<dependency>
<groupId>org.springframework</groupId>
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/init/CamelRouteLoader.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/init/CamelRouteLoader.java b/core/src/main/java/org/apache/syncope/core/init/CamelRouteLoader.java
new file mode 100644
index 0000000..aa6da28
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/init/CamelRouteLoader.java
@@ -0,0 +1,106 @@
+/*
+ * 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.core.init;
+
+import java.io.File;
+import java.io.StringWriter;
+import java.net.URL;
+import javax.sql.DataSource;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import org.apache.syncope.core.persistence.beans.CamelRoute;
+import org.apache.syncope.core.persistence.dao.RouteDAO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataAccessException;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+@Component
+public class CamelRouteLoader {
+
+ private static final Logger LOG = LoggerFactory.getLogger(CamelRouteLoader.class);
+
+ @Autowired
+ private RouteDAO routeDAO;
+
+ @Autowired
+ private DataSource dataSource;
+
+ @Transactional
+ public void load(){
+
+ //if(routeDAO.findAll().isEmpty()){
+ URL url = getClass().getResource("/camelRoute.xml");
+
+ File file = new File(url.getPath());
+ String query= "INSERT INTO CamelRoute(ID, NAME, ROUTECONTENT) VALUES (?, ?, ?)";
+ try{
+
+ DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ Document doc = dBuilder.parse(file);
+ doc.getDocumentElement().normalize();
+
+ JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+
+ NodeList listOfRoutes = doc.getElementsByTagName("route");
+ for(int s=0; s<listOfRoutes.getLength(); s++){
+ //getting the route node element
+ Node routeEl = listOfRoutes.item(s);
+ //crate an instance of CamelRoute Entity
+ CamelRoute route = new CamelRoute();
+ route.setName(((Element)routeEl).getAttribute("id"));
+ route.setRouteContent(nodeToString(listOfRoutes.item(s)));
+
+ jdbcTemplate.update(query, new Object[]{s+1,((Element)routeEl).getAttribute("id"), nodeToString(listOfRoutes.item(s))});
+ LOG.info("Route Registration Successed");
+ }
+ } catch (DataAccessException e) {
+ LOG.error("While trying to perform {}", query, e);
+ } catch (Exception e) {
+ LOG.error("Route Registration failed {}",e.getMessage());
+ }
+ //}
+ }
+
+ private String nodeToString(Node node) {
+ StringWriter sw = new StringWriter();
+ try{
+ Transformer t = TransformerFactory.newInstance().newTransformer();
+ t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+ t.transform(new DOMSource(node), new StreamResult(sw));
+ }catch (TransformerException te) {
+ System.out.println("nodeToString Transformer Exception");
+ }
+ return sw.toString();
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java b/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java
index 403fe96..115587d 100644
--- a/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java
+++ b/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java
@@ -49,6 +49,9 @@ public class SpringContextInitializer implements InitializingBean {
@Autowired
private WorkflowAdapterLoader workflowAdapterLoader;
+
+ @Autowired
+ private CamelRouteLoader routeLoader;
@Override
public void afterPropertiesSet() throws Exception {
@@ -59,6 +62,8 @@ public class SpringContextInitializer implements InitializingBean {
loggerLoader.load();
classNamesLoader.load();
+ routeLoader.load();
+
workflowAdapterLoader.init();
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/persistence/beans/CamelRoute.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/beans/CamelRoute.java b/core/src/main/java/org/apache/syncope/core/persistence/beans/CamelRoute.java
new file mode 100644
index 0000000..ad05f27
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/persistence/beans/CamelRoute.java
@@ -0,0 +1,63 @@
+/*
+ * 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.core.persistence.beans;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+import javax.persistence.GenerationType;
+import javax.persistence.Column;
+
+
+@Entity
+public class CamelRoute {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ @Column(name="id")
+ private Long id;
+
+ private String name;
+
+ @Lob
+ private String routeContent;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getRouteContent() {
+ return routeContent;
+ }
+
+ public void setRouteContent(String routeContent) {
+ this.routeContent = routeContent;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/persistence/dao/RouteDAO.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/dao/RouteDAO.java b/core/src/main/java/org/apache/syncope/core/persistence/dao/RouteDAO.java
new file mode 100644
index 0000000..aa7f4f6
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/persistence/dao/RouteDAO.java
@@ -0,0 +1,34 @@
+/*
+ * 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.core.persistence.dao;
+
+import java.util.List;
+import org.apache.syncope.core.persistence.validation.entity.InvalidEntityException;
+import org.apache.syncope.core.persistence.beans.CamelRoute;
+
+public interface RouteDAO {
+
+ CamelRoute find(Long id);
+
+ List<CamelRoute> findAll();
+
+ CamelRoute save(CamelRoute route) throws InvalidEntityException;
+
+ void delete(Long id);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RouteDAOImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RouteDAOImpl.java b/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RouteDAOImpl.java
new file mode 100644
index 0000000..aaa0026
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RouteDAOImpl.java
@@ -0,0 +1,58 @@
+/*
+ * 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.core.persistence.dao.impl;
+
+import java.util.List;
+import javax.persistence.TypedQuery;
+import org.apache.syncope.core.persistence.beans.CamelRoute;
+import org.apache.syncope.core.persistence.dao.RouteDAO;
+import org.apache.syncope.core.persistence.validation.entity.InvalidEntityException;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+@Repository
+public class RouteDAOImpl extends AbstractDAOImpl implements RouteDAO {
+
+ @Override
+ public CamelRoute find(final Long id) {
+ return entityManager.find(CamelRoute.class, id);
+ }
+
+ @Transactional(readOnly = true)
+ @Override
+ public List<CamelRoute> findAll() {
+ TypedQuery<CamelRoute> query = entityManager.createQuery("SELECT e FROM " + CamelRoute.class.getSimpleName() + " e", CamelRoute.class);
+ return query.getResultList();
+ }
+
+ @Override
+ public CamelRoute save(final CamelRoute route) throws InvalidEntityException {
+ return entityManager.merge(route);
+ }
+
+ @Override
+ public void delete(Long id) {
+ CamelRoute route = find(id);
+ if (route != null) {
+ entityManager.remove(route);
+ }
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
new file mode 100644
index 0000000..de9e1fc
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
@@ -0,0 +1,231 @@
+/*
+ * 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.core.provisioning;
+
+import java.util.AbstractMap;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+import org.apache.syncope.common.mod.RoleMod;
+import org.apache.syncope.common.to.AttributeTO;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.common.to.RoleTO;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.persistence.beans.role.SyncopeRole;
+import org.apache.syncope.core.persistence.dao.RoleDAO;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.rest.data.RoleDataBinder;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.apache.syncope.core.util.EntitlementUtil;
+import org.apache.syncope.core.workflow.WorkflowResult;
+import org.apache.syncope.core.workflow.role.RoleWorkflowAdapter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.apache.commons.lang3.StringUtils;
+
+public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleProvisioningManager.class);
+ @Autowired
+ protected RoleWorkflowAdapter rwfAdapter;
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+ @Autowired
+ protected RoleDAO roleDAO;
+ @Autowired
+ protected RoleDataBinder binder;
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> create(RoleTO subject) {
+ return create(subject, Collections.<String>emptySet());
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> create(RoleTO subject, Set<String> excludedResources) {
+
+ WorkflowResult<Long> created;
+ try{
+ created = rwfAdapter.create(subject);
+ }
+ catch(RuntimeException e){
+ throw e;
+ }
+
+ EntitlementUtil.extendAuthContext(created.getResult());
+
+ List<PropagationTask> tasks = propagationManager.getRoleCreateTaskIds(created, subject.getVirAttrs());
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
+ PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ created.getResult(), propagationReporter.getStatuses());
+ return result;
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> createInSync(RoleTO roleTO, Map<Long, String> roleOwnerMap,Set<String> excludedResources) throws PropagationException{
+
+ WorkflowResult<Long> created = rwfAdapter.create((RoleTO) roleTO);
+ AttributeTO roleOwner = roleTO.getAttrMap().get(StringUtils.EMPTY);
+ if (roleOwner != null) {
+ roleOwnerMap.put(created.getResult(), roleOwner.getValues().iterator().next());
+ }
+
+ EntitlementUtil.extendAuthContext(created.getResult());
+
+ List<PropagationTask> tasks = propagationManager.getRoleCreateTaskIds(created,
+ roleTO.getVirAttrs(), excludedResources);
+
+ taskExecutor.execute(tasks);
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ created.getResult(), null);
+ return result;
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod) {
+
+ return update(subjectMod, Collections.<String>emptySet());
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources) {
+
+ WorkflowResult<Long> updated;
+
+ try{
+ updated = rwfAdapter.update(subjectMod);
+ }
+ catch(RuntimeException e){
+ throw e;
+ }
+
+ List<PropagationTask> tasks = propagationManager.getRoleUpdateTaskIds(updated,
+ subjectMod.getVirAttrsToRemove(), subjectMod.getVirAttrsToUpdate(),excludedResources);
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
+ PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ updated.getResult(), propagationReporter.getStatuses());
+ return result;
+ }
+
+ @Override
+ public List<PropagationStatus> delete(Long subjectId) {
+
+ final List<SyncopeRole> toBeDeprovisioned = new ArrayList<SyncopeRole>();
+
+ final SyncopeRole syncopeRole = roleDAO.find(subjectId);
+
+ if (syncopeRole != null) {
+ toBeDeprovisioned.add(syncopeRole);
+
+ final List<SyncopeRole> descendants = roleDAO.findDescendants(toBeDeprovisioned.get(0));
+ if (descendants != null) {
+ toBeDeprovisioned.addAll(descendants);
+ }
+ }
+
+ final List<PropagationTask> tasks = new ArrayList<PropagationTask>();
+
+ for (SyncopeRole role : toBeDeprovisioned) {
+ // Generate propagation tasks for deleting users from role resources, if they are on those resources only
+ // because of the reason being deleted (see SYNCOPE-357)
+ for (WorkflowResult<Long> wfResult : binder.getUsersOnResourcesOnlyBecauseOfRole(role.getId())) {
+ tasks.addAll(propagationManager.getUserDeleteTaskIds(wfResult));
+ }
+
+ // Generate propagation tasks for deleting this role from resources
+ tasks.addAll(propagationManager.getRoleDeleteTaskIds(role.getId()));
+ }
+
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
+ PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ try{
+ rwfAdapter.delete(subjectId);
+ }
+ catch(RuntimeException e){
+ throw e;
+ }
+
+ return propagationReporter.getStatuses();
+ }
+
+ @Override
+ public Long unlink(RoleMod subjectMod) {
+ WorkflowResult<Long> updated = rwfAdapter.update(subjectMod);
+ return updated.getResult();
+ }
+
+ @Override
+ public List<PropagationStatus> deprovision(final Long roleId, final Collection<String> resources){
+ final SyncopeRole role = binder.getRoleFromId(roleId);
+
+ final Set<String> noPropResourceName = role.getResourceNames();
+ noPropResourceName.removeAll(resources);
+
+ final List<PropagationTask> tasks = propagationManager.getRoleDeleteTaskIds(roleId, new HashSet<String>(resources), noPropResourceName);
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
+ PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+ return propagationReporter.getStatuses();
+ }
+
+ @Override
+ public Long link(RoleMod subjectMod) {
+ return rwfAdapter.update(subjectMod).getResult();
+ }
+
+}
[30/53] [abbrv] syncope git commit: Fixes #5 - Tests pass with latest
version of camel
Posted by il...@apache.org.
Fixes #5 - Tests pass with latest version of camel
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/dff89c00
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/dff89c00
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/dff89c00
Branch: refs/heads/2_0_X
Commit: dff89c00424ce9376359d600c50b21fd6bbb3e36
Parents: 55dfac7
Author: giacomolm <gi...@hotmail.it>
Authored: Tue Dec 23 12:51:04 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Tue Dec 23 12:51:04 2014 +0100
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/dff89c00/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index f680733..c478c3a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -325,7 +325,7 @@ under the License.
<aspectj.version>1.8.4</aspectj.version>
<cxf.version>3.0.3</cxf.version>
- <camel.version>2.12.5</camel.version>
+ <camel.version>2.14.1</camel.version>
<spring.version>4.0.8.RELEASE</spring.version>
<spring-security.version>3.2.5.RELEASE</spring-security.version>
<jackson.version>2.4.4</jackson.version>
[15/53] [abbrv] syncope git commit: Merge remote-tracking branch
'upstream/master'
Posted by il...@apache.org.
Merge remote-tracking branch 'upstream/master'
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b7d6578e
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b7d6578e
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b7d6578e
Branch: refs/heads/master
Commit: b7d6578e340f08933f572ffe99a83b04419b4a9a
Parents: 8b16139 86cbfe4
Author: giacomolm <gi...@hotmail.it>
Authored: Mon Dec 22 17:02:19 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Mon Dec 22 17:02:19 2014 +0100
----------------------------------------------------------------------
.../core/cache/DisabledVirAttrCache.java | 50 +++++++
.../syncope/core/cache/MemoryVirAttrCache.java | 148 +++++++++++++++++++
.../apache/syncope/core/cache/VirAttrCache.java | 65 ++++++++
.../syncope/core/cache/VirAttrCacheKey.java | 79 ++++++++++
.../syncope/core/cache/VirAttrCacheValue.java | 86 +++++++++++
.../syncope/core/connid/ConnObjectUtil.java | 4 +-
.../data/AbstractAttributableDataBinder.java | 2 +-
.../apache/syncope/core/util/MappingUtil.java | 7 +-
.../apache/syncope/core/util/VirAttrCache.java | 144 ------------------
.../syncope/core/util/VirAttrCacheKey.java | 79 ----------
.../syncope/core/util/VirAttrCacheValue.java | 86 -----------
.../apache/syncope/core/util/jexl/JexlUtil.java | 4 +-
core/src/main/resources/coreContext.xml | 2 +-
.../core/rest/DerivedSchemaTestITCase.java | 4 +-
pom.xml | 6 +-
15 files changed, 442 insertions(+), 324 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/b7d6578e/core/src/main/resources/coreContext.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/b7d6578e/pom.xml
----------------------------------------------------------------------
[52/53] [abbrv] syncope git commit: White noise - This closes #2
Posted by il...@apache.org.
White noise - This closes #2
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/a90a48ad
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/a90a48ad
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/a90a48ad
Branch: refs/heads/master
Commit: a90a48ad5dc9dd5667713a159e555ba1ac6b8741
Parents: 01ac2bd
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Jan 5 14:33:32 2015 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Jan 5 14:33:32 2015 +0100
----------------------------------------------------------------------
core/src/main/resources/provisioning.properties | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/a90a48ad/core/src/main/resources/provisioning.properties
----------------------------------------------------------------------
diff --git a/core/src/main/resources/provisioning.properties b/core/src/main/resources/provisioning.properties
index a8e49bf..b55bd06 100644
--- a/core/src/main/resources/provisioning.properties
+++ b/core/src/main/resources/provisioning.properties
@@ -14,6 +14,5 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-
userProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager
-roleProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelRoleProvisioningManager
\ No newline at end of file
+roleProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelRoleProvisioningManager
[09/53] [abbrv] syncope git commit: Merge remote-tracking branch
'upstream/master'
Posted by il...@apache.org.
Merge remote-tracking branch 'upstream/master'
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/de130b7f
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/de130b7f
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/de130b7f
Branch: refs/heads/2_0_X
Commit: de130b7fcbcb763d5578dbc4ae2aa9788aa53b1f
Parents: 43c9462 4de7c70
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Thu Dec 18 11:17:39 2014 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Thu Dec 18 11:17:39 2014 +0100
----------------------------------------------------------------------
.../syncope/console/pages/ConfModalPage.java | 1 +
.../wicket/markup/html/form/DateFieldPanel.java | 6 +-
.../wicket/markup/html/form/FieldPanel.java | 4 +-
.../syncope/console/ConnInstanceTestITCase.java | 58 ++---
.../files/JBossDeploymentStructureXml.java | 9 +-
.../apache/syncope/installer/files/OrmXml.java | 98 ++++++---
.../syncope/installer/files/ParentPom.java | 212 ++++++++++++++-----
.../files/PersistenceContextEMFactoryXml.java | 14 +-
pom.xml | 6 +-
9 files changed, 280 insertions(+), 128 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/de130b7f/pom.xml
----------------------------------------------------------------------
[23/53] [abbrv] syncope git commit: Merge remote-tracking branch
'upstream/master'
Posted by il...@apache.org.
Merge remote-tracking branch 'upstream/master'
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/fe8eeb24
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/fe8eeb24
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/fe8eeb24
Branch: refs/heads/2_0_X
Commit: fe8eeb247f622b775e2a53472a34b5831b8a2422
Parents: 7aa0db3 51c543d
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Tue Dec 23 08:46:13 2014 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Tue Dec 23 08:46:13 2014 +0100
----------------------------------------------------------------------
installer/pom.xml | 20 +++
.../installer/containers/jboss/JBoss.java | 12 +-
.../org/apache/syncope/installer/enums/DBs.java | 3 +
.../installer/files/ConsoleProperties.java | 31 ++++
.../syncope/installer/files/CoreWebXml.java | 76 ++------
.../installer/files/GlassfishCoreWebXml.java | 38 +---
.../files/JBossDeploymentStructureXml.java | 40 +----
.../syncope/installer/files/ParentPom.java | 176 +------------------
.../files/PersistenceContextEMFactoryXml.java | 47 +----
.../installer/files/PersistenceProperties.java | 27 +--
.../installer/processes/ArchetypeProcess.java | 41 +++--
.../installer/processes/BaseProcess.java | 54 ++++++
.../installer/processes/ContainerProcess.java | 171 ++++++++++++++----
.../installer/processes/PersistenceProcess.java | 25 ++-
.../installer/utilities/FileSystemUtils.java | 45 +++++
.../syncope/installer/utilities/MavenUtils.java | 31 +---
.../src/main/resources/configuration.properties | 31 ++++
.../main/resources/izpack/ProcessPanel.Spec.xml | 40 +++--
installer/src/main/resources/izpack/install.xml | 6 +-
.../main/resources/izpack/userInputLang.xml_eng | 4 +
.../main/resources/izpack/userInputLang.xml_ita | 4 +
.../src/main/resources/izpack/userInputSpec.xml | 20 ++-
installer/src/main/resources/modelerPom.xml | 116 ++++++++++++
23 files changed, 589 insertions(+), 469 deletions(-)
----------------------------------------------------------------------
[47/53] [abbrv] syncope git commit: Merge upstream/master
Posted by il...@apache.org.
Merge upstream/master
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/d388f246
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/d388f246
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/d388f246
Branch: refs/heads/2_0_X
Commit: d388f2464d145bd780bb8b2de76b63c52e459c62
Parents: ec34515 1d58c50
Author: giacomolm <gi...@hotmail.it>
Authored: Mon Jan 5 11:58:26 2015 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Mon Jan 5 11:58:26 2015 +0100
----------------------------------------------------------------------
.../syncope/installer/utilities/FileSystemUtils.java | 10 +---------
pom.xml | 15 +++++++++++++--
src/site/site.xml | 3 ---
3 files changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/d388f246/pom.xml
----------------------------------------------------------------------
diff --cc pom.xml
index 641e123,9891ca9..1fe0129
--- a/pom.xml
+++ b/pom.xml
@@@ -323,10 -335,9 +334,10 @@@ under the License
<activiti.version>5.16.4</activiti.version>
<aspectj.version>1.8.4</aspectj.version>
--
- <cxf.version>3.0.3</cxf.version>
++
+ <cxf.version>3.0.3</cxf.version>
+ <camel.version>2.14.1</camel.version>
- <spring.version>4.0.8.RELEASE</spring.version>
+ <spring.version>4.0.9.RELEASE</spring.version>
<spring-security.version>3.2.5.RELEASE</spring-security.version>
<jackson.version>2.4.4</jackson.version>
<velocity.version>1.7</velocity.version>
[11/53] [abbrv] syncope git commit: Default Syncope provisioning
manager correctly restored
Posted by il...@apache.org.
Default Syncope provisioning manager correctly restored
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/efe6c5ea
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/efe6c5ea
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/efe6c5ea
Branch: refs/heads/2_0_X
Commit: efe6c5ea6ebfe99f46435e13a6799c36557eae65
Parents: de130b7
Author: giacomolm <gi...@hotmail.it>
Authored: Mon Dec 22 15:21:47 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Mon Dec 22 15:21:47 2014 +0100
----------------------------------------------------------------------
.../DefaultRoleProvisioningManager.java | 23 +-
.../DefaultUserProvisioningManager.java | 55 +-
core/src/main/resources/camelRoute.xml | 816 +++++++++----------
core/src/main/resources/coreContext.xml | 4 +-
4 files changed, 459 insertions(+), 439 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/efe6c5ea/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
index de9e1fc..f376641 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
@@ -70,13 +70,7 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
@Override
public Map.Entry<Long, List<PropagationStatus>> create(RoleTO subject, Set<String> excludedResources) {
- WorkflowResult<Long> created;
- try{
- created = rwfAdapter.create(subject);
- }
- catch(RuntimeException e){
- throw e;
- }
+ WorkflowResult<Long> created = rwfAdapter.create(subject);
EntitlementUtil.extendAuthContext(created.getResult());
@@ -89,6 +83,9 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
+
+ final RoleTO savedTO = binder.getRoleTO(created.getResult());
+ savedTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
created.getResult(), propagationReporter.getStatuses());
@@ -125,17 +122,10 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
@Override
public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources) {
- WorkflowResult<Long> updated;
-
- try{
- updated = rwfAdapter.update(subjectMod);
- }
- catch(RuntimeException e){
- throw e;
- }
+ WorkflowResult<Long> updated = rwfAdapter.update(subjectMod);
List<PropagationTask> tasks = propagationManager.getRoleUpdateTaskIds(updated,
- subjectMod.getVirAttrsToRemove(), subjectMod.getVirAttrsToUpdate(),excludedResources);
+ subjectMod.getVirAttrsToRemove(), subjectMod.getVirAttrsToUpdate());
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
PropagationReporter.class);
try {
@@ -144,6 +134,7 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
+
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
updated.getResult(), propagationReporter.getStatuses());
http://git-wip-us.apache.org/repos/asf/syncope/blob/efe6c5ea/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
index 54f677c..070c6aa 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
@@ -25,6 +25,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.syncope.common.mod.MembershipMod;
import org.apache.syncope.common.mod.StatusMod;
import org.apache.syncope.common.mod.UserMod;
import org.apache.syncope.common.to.PropagationStatus;
@@ -67,11 +68,11 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
@Override
public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO){
- return create(userTO, true);
+ return create(userTO, true, false, null, Collections.<String>emptySet());
}
public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, boolean storePassword) {
- WorkflowResult<Map.Entry<Long, Boolean>> created;
+ /*WorkflowResult<Map.Entry<Long, Boolean>> created;
try {
created = uwfAdapter.create(userTO,storePassword);
} catch (RuntimeException e) {
@@ -92,20 +93,21 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
created.getResult().getKey(), propagationReporter.getStatuses());
- return result;
+ return result;*/
+ return create(userTO, storePassword, false, null, Collections.<String>emptySet());
}
@Override
public Map.Entry<Long, List<PropagationStatus>> create(UserTO userTO, boolean storePassword, boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources) {
WorkflowResult<Map.Entry<Long, Boolean>> created;
try {
- created = uwfAdapter.create(userTO,storePassword);
+ created = uwfAdapter.create(userTO, disablePwdPolicyCheck, enabled, storePassword);
} catch (RuntimeException e) {
throw e;
}
List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(
- created, userTO.getPassword(), userTO.getVirAttrs(), excludedResources, null);
+ created, userTO.getPassword(), userTO.getVirAttrs(), excludedResources, userTO.getMemberships());
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
getBean(PropagationReporter.class);
try {
@@ -135,14 +137,39 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
}
List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated);
-
+ if (tasks.isEmpty()) {
+ // SYNCOPE-459: take care of user virtual attributes ...
+ final PropagationByResource propByResVirAttr = binder.fillVirtual(
+ updated.getResult().getKey().getId(),
+ userMod.getVirAttrsToRemove(),
+ userMod.getVirAttrsToUpdate());
+ // SYNCOPE-501: update only virtual attributes (if any of them changed), password propagation is
+ // not required, take care also of membership virtual attributes
+ boolean addOrUpdateMemberships = false;
+ for (MembershipMod membershipMod : userMod.getMembershipsToAdd()) {
+ if (!binder.fillMembershipVirtual(
+ updated.getResult().getKey().getId(),
+ membershipMod.getRole(),
+ null,
+ membershipMod.getVirAttrsToRemove(),
+ membershipMod.getVirAttrsToUpdate(),
+ false).isEmpty()) {
+ addOrUpdateMemberships = true;
+ }
+ }
+ tasks.addAll(!propByResVirAttr.isEmpty() || addOrUpdateMemberships || removeMemberships
+ ? propagationManager.getUserUpdateTaskIds(updated, false, null)
+ : Collections.<PropagationTask>emptyList());
+ }
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
getBean(PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
+ if (!tasks.isEmpty()) {
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
}
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
@@ -272,7 +299,8 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
}
@Override
- public Map.Entry<Long, List<PropagationStatus>> updateInSync(final UserMod userMod,final Long id, final SyncResult result, Boolean enabled, Set<String> excludedResources){
+ public Map.Entry<Long, List<PropagationStatus>> updateInSync(final UserMod userMod,final Long id,
+ final SyncResult result, Boolean enabled, Set<String> excludedResources){
WorkflowResult<Map.Entry<UserMod, Boolean>> updated;
try {
@@ -313,13 +341,14 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
getBean(PropagationReporter.class);
List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated,updated.getResult().getKey().getPassword() != null,excludedResources);
-
+
try {
taskExecutor.execute(tasks, propagationReporter);
} catch (PropagationException e) {
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
+
return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult().getKey().getId(), propagationReporter.getStatuses());
http://git-wip-us.apache.org/repos/asf/syncope/blob/efe6c5ea/core/src/main/resources/camelRoute.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/camelRoute.xml b/core/src/main/resources/camelRoute.xml
index e1ad071..260f01c 100644
--- a/core/src/main/resources/camelRoute.xml
+++ b/core/src/main/resources/camelRoute.xml
@@ -24,445 +24,445 @@ under the License.
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">
+ <!--
+ The default routes define each task involved in user creation:
+ main operations consist in user workflow creation and its propagation.
+ -->
+ <routeContext id="defaultRoutes" xmlns="http://camel.apache.org/schema/spring">
+
<!--
- The default routes define each task involved in user creation:
- main operations consist in user workflow creation and its propagation.
+ CREATE USER
+ This is the entry point of the route and is involved in accepting
+ the UserTO. When it arrives, the user workflow is created. If the
+ creation is successfull, the result is sent to propagation, otherwise
+ if an exception was raised, the exception has to be returned to the
+ caller. The property actual allows to store the received UserTO in
+ order to use it later.
-->
- <routeContext id="defaultRoutes" xmlns="http://camel.apache.org/schema/spring">
-
- <!--
- CREATE USER
- This is the entry point of the route and is involved in accepting
- the UserTO. When it arrives, the user workflow is created. If the
- creation is successfull, the result is sent to propagation, otherwise
- if an exception was raised, the exception has to be returned to the
- caller. The property actual allows to store the received UserTO in
- order to use it later.
- -->
- <route id="createUser">
- <from uri="direct:createUser"/>
- <setProperty propertyName="actual">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="uwfAdapter" method="create(${body},${property.disablePwdPolicyCheck},
+ <route id="createUser">
+ <from uri="direct:createUser"/>
+ <setProperty propertyName="actual">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="uwfAdapter" method="create(${body},${property.disablePwdPolicyCheck},
${property.enabled},${property.storePassword})"/>
- <process ref="defaultUserCreatePropagation" />
- <to uri="direct:createPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:createPort"/>
- </doCatch>
- </doTry>
- </route>
+ <process ref="defaultUserCreatePropagation" />
+ <to uri="direct:createPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- The propagation route deals with propagation of created user. In this
- case we used a custom processor to perform this task: it means that
- a custom java class contains the propagation strategy.
- -->
+ <!--
+ The propagation route deals with propagation of created user. In this
+ case we used a custom processor to perform this task: it means that
+ a custom java class contains the propagation strategy.
+ -->
- <!--
- UPDATE USER
- -->
- <route id="updateUser">
- <from uri="direct:updateUser"/>
- <setProperty propertyName="actual">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <process ref="defaultUserUpdatePropagation" />
- <to uri="direct:updatePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:updatePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UPDATE USER
+ -->
+ <route id="updateUser">
+ <from uri="direct:updateUser"/>
+ <setProperty propertyName="actual">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <process ref="defaultUserUpdatePropagation" />
+ <to uri="direct:updatePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updatePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UPDATE SYNC USER
- -->
- <route id="updateSyncUser">
- <from uri="direct:updateSyncUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <to uri="direct:syncUserStatus"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:updateSyncPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UPDATE SYNC USER
+ -->
+ <route id="updateSyncUser">
+ <from uri="direct:updateSyncUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <to uri="direct:syncUserStatus"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updateSyncPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <route id="syncUserStatus">
- <from uri="direct:syncUserStatus"/>
- <process ref="userStatusOnSync" />
- <process ref="defaultUserUpdateSyncPropagation" />
- <to uri="direct:updateSyncPort"/>
- </route>
- <!--
- DELETE USER
- -->
- <route id="deleteUser">
- <from uri="direct:deleteUser"/>
- <doTry>
- <process ref="defaultUserDeletePropagation" />
- <bean ref="uwfAdapter" method="delete(${body})"/>
- <setBody>
- <simple>${property.statuses}</simple>
- </setBody>
- <to uri="direct:deletePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:deletePort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="syncUserStatus">
+ <from uri="direct:syncUserStatus"/>
+ <process ref="userStatusOnSync" />
+ <process ref="defaultUserUpdateSyncPropagation" />
+ <to uri="direct:updateSyncPort"/>
+ </route>
+ <!--
+ DELETE USER
+ -->
+ <route id="deleteUser">
+ <from uri="direct:deleteUser"/>
+ <doTry>
+ <process ref="defaultUserDeletePropagation" />
+ <bean ref="uwfAdapter" method="delete(${body})"/>
+ <setBody>
+ <simple>${property.statuses}</simple>
+ </setBody>
+ <to uri="direct:deletePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:deletePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UNLINK USER
- -->
- <route id="unlinkUser">
- <from uri="direct:unlinkUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult.getKey}</simple>
- </setBody>
- <to uri="direct:unlinkPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:unlinkPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UNLINK USER
+ -->
+ <route id="unlinkUser">
+ <from uri="direct:unlinkUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult.getKey}</simple>
+ </setBody>
+ <to uri="direct:unlinkPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:unlinkPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- LINK USER
- -->
+ <!--
+ LINK USER
+ -->
- <route id="linkUser">
- <from uri="direct:linkUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult.getKey}</simple>
- </setBody>
- <to uri="direct:linkPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:linkPort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="linkUser">
+ <from uri="direct:linkUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult.getKey}</simple>
+ </setBody>
+ <to uri="direct:linkPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:linkPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- ACTIVATE USER
- -->
- <route id="activateUser">
- <from uri="direct:activateUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="activate(${body}, ${property.token})"/>
- <to uri="direct:statusUser"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:statusPort"/>
- </doCatch>
- </doTry>
- </route>
- <!--
- REACTIVATE USER
- -->
- <route id="reactivateUser">
- <from uri="direct:reactivateUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="reactivate(${body})"/>
- <to uri="direct:statusUser"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:statusPort"/>
- </doCatch>
- </doTry>
- </route>
- <!--
- SUSPEND USER
- -->
- <route id="suspendUser">
- <from uri="direct:suspendUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="suspend(${body})"/>
- <to uri="direct:statusUser"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:statusPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ ACTIVATE USER
+ -->
+ <route id="activateUser">
+ <from uri="direct:activateUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="activate(${body}, ${property.token})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ REACTIVATE USER
+ -->
+ <route id="reactivateUser">
+ <from uri="direct:reactivateUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="reactivate(${body})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ SUSPEND USER
+ -->
+ <route id="suspendUser">
+ <from uri="direct:suspendUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="suspend(${body})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- STATUS PROPAGATION
- -->
+ <!--
+ STATUS PROPAGATION
+ -->
- <route id="statusUser">
- <from uri="direct:statusUser"/>
- <process ref="defaultUserStatusPropagation" />
- <to uri="direct:statusPort"/>
- </route>
+ <route id="statusUser">
+ <from uri="direct:statusUser"/>
+ <process ref="defaultUserStatusPropagation" />
+ <to uri="direct:statusPort"/>
+ </route>
- <!--
- DEPROVISION USER
- -->
- <route id="deprovisionUser">
- <from uri="direct:deprovisionUser"/>
- <process ref="defaultUserDeprovisionPropagation" />
- <to uri="direct:deprovisionPort"/>
- </route>
+ <!--
+ DEPROVISION USER
+ -->
+ <route id="deprovisionUser">
+ <from uri="direct:deprovisionUser"/>
+ <process ref="defaultUserDeprovisionPropagation" />
+ <to uri="direct:deprovisionPort"/>
+ </route>
- <!--
- CREATE ROLE
- -->
+ <!--
+ CREATE ROLE
+ -->
- <route id="createRole">
- <from uri="direct:createRole"/>
- <setProperty propertyName="subject">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="rwfAdapter" method="create(${body})"/>
- <process ref="defaultRoleCreatePropagation" />
- <to uri="direct:createRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:createRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="createRole">
+ <from uri="direct:createRole"/>
+ <setProperty propertyName="subject">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="create(${body})"/>
+ <process ref="defaultRoleCreatePropagation" />
+ <to uri="direct:createRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- CREATE ROLE SYNC
- -->
- <route id="createRoleSync">
- <from uri="direct:createRoleSync"/>
- <setProperty propertyName="subject">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="rwfAdapter" method="create(${body})"/>
- <process ref="defaultRoleCreateSyncPropagation" />
- <to uri="direct:createRoleSyncPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:createRoleSyncPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ CREATE ROLE SYNC
+ -->
+ <route id="createRoleSync">
+ <from uri="direct:createRoleSync"/>
+ <setProperty propertyName="subject">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="create(${body})"/>
+ <process ref="defaultRoleCreateSyncPropagation" />
+ <to uri="direct:createRoleSyncPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createRoleSyncPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UPDATE ROLE
- -->
- <route id="updateRole">
- <from uri="direct:updateRole"/>
- <setProperty propertyName="subjectMod">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="rwfAdapter" method="update(${body})"/>
- <process ref="defaultRoleUpdatePropagation" />
- <to uri="direct:updateRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:updateRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UPDATE ROLE
+ -->
+ <route id="updateRole">
+ <from uri="direct:updateRole"/>
+ <setProperty propertyName="subjectMod">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <process ref="defaultRoleUpdatePropagation" />
+ <to uri="direct:updateRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updateRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- DELETE ROLE
- -->
- <route id="deleteRole">
- <from uri="direct:deleteRole"/>
- <doTry>
- <process ref="defaultRoleDeletePropagation" />
- <bean ref="rwfAdapter" method="delete(${body})"/>
- <setBody>
- <simple>${property.statuses}</simple>
- </setBody>
- <to uri="direct:deleteRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:deleteRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ DELETE ROLE
+ -->
+ <route id="deleteRole">
+ <from uri="direct:deleteRole"/>
+ <doTry>
+ <process ref="defaultRoleDeletePropagation" />
+ <bean ref="rwfAdapter" method="delete(${body})"/>
+ <setBody>
+ <simple>${property.statuses}</simple>
+ </setBody>
+ <to uri="direct:deleteRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:deleteRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UNLINK USER
- -->
- <route id="unlinkRole">
- <from uri="direct:unlinkRole"/>
- <doTry>
- <bean ref="rwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult}</simple>
- </setBody>
- <to uri="direct:unlinkRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:unlinkRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UNLINK USER
+ -->
+ <route id="unlinkRole">
+ <from uri="direct:unlinkRole"/>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult}</simple>
+ </setBody>
+ <to uri="direct:unlinkRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:unlinkRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- LINK USER
- -->
+ <!--
+ LINK USER
+ -->
- <route id="linkRole">
- <from uri="direct:linkRole"/>
- <doTry>
- <bean ref="rwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult}</simple>
- </setBody>
- <to uri="direct:linkRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:linkRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="linkRole">
+ <from uri="direct:linkRole"/>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult}</simple>
+ </setBody>
+ <to uri="direct:linkRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:linkRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- DEPROVISION ROLE
- -->
- <route id="deprovisionRole">
- <from uri="direct:deprovisionRole"/>
- <process ref="defaultRoleDeprovisionPropagation" />
- <to uri="direct:deprovisionRolePort"/>
- </route>
+ <!--
+ DEPROVISION ROLE
+ -->
+ <route id="deprovisionRole">
+ <from uri="direct:deprovisionRole"/>
+ <process ref="defaultRoleDeprovisionPropagation" />
+ <to uri="direct:deprovisionRolePort"/>
+ </route>
- <!--
- SUSPEND USER AFTER POLICY VIOLATION
- -->
+ <!--
+ SUSPEND USER AFTER POLICY VIOLATION
+ -->
- <route id="suspendUserWF">
- <from uri="direct:suspendUserWF"/>
- <doTry>
- <bean ref="uwfAdapter" method="suspend(${body})"/>
- <process ref="defaultUserWFSuspendPropagation"/>
- <to uri="direct:suspendWFPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:suspendWFPort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="suspendUserWF">
+ <from uri="direct:suspendUserWF"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="suspend(${body})"/>
+ <process ref="defaultUserWFSuspendPropagation"/>
+ <to uri="direct:suspendWFPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:suspendWFPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- REQUEST PASSWORD RESET ROUTE
- -->
+ <!--
+ REQUEST PASSWORD RESET ROUTE
+ -->
- <route id="requestPwdReset">
- <from uri="direct:requestPwdReset"/>
- <doTry>
- <bean ref="uwfAdapter" method="requestPasswordReset(${body})"/>
- <to uri="direct:requestPwdResetPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:requestPwdResetPort"/>
- </doCatch>
- </doTry>
- </route>
- <!--
- CONFIRM PASSWORD RESET
- -->
- <route id="confirmPwdReset">
- <from uri="direct:confirmPwdReset"/>
- <doTry>
- <bean ref="uwfAdapter" method="confirmPasswordReset(${property.userId},${property.token},${property.password})"/>
- <process ref="defaultUserConfirmPwdResetPropagation" />
- <to uri="direct:confirmPwdResetPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:confirmPwdResetPort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="requestPwdReset">
+ <from uri="direct:requestPwdReset"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="requestPasswordReset(${body})"/>
+ <to uri="direct:requestPwdResetPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:requestPwdResetPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ CONFIRM PASSWORD RESET
+ -->
+ <route id="confirmPwdReset">
+ <from uri="direct:confirmPwdReset"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="confirmPasswordReset(${property.userId},${property.token},${property.password})"/>
+ <process ref="defaultUserConfirmPwdResetPropagation" />
+ <to uri="direct:confirmPwdResetPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:confirmPwdResetPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- </routeContext>
- <bean id="defaultUserCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserCreatePropagation"/>
- <bean id="defaultUserUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdatePropagation"/>
- <bean id="userStatusOnSync" class="org.apache.syncope.core.provisioning.camel.processors.UserStatusOnSync"/>
- <bean id="defaultUserUpdateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdateInSyncPropagation"/>
- <bean id="defaultUserDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeletePropagation"/>
- <bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
- <bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
- <bean id="defaultUserStatusPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserStatusPropagation"/>
- <bean id="defaultUserConfirmPwdResetPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserConfirmPwdResetPropagation"/>
- <bean id="defaultRoleCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreatePropagation"/>
- <bean id="defaultRoleCreateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreateSyncPropagation"/>
- <bean id="defaultRoleUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleUpdatePropagation"/>
- <bean id="defaultRoleDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeletePropagation"/>
- <bean id="defaultRoleDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeprovisionPropagation"/>
+ </routeContext>
+ <bean id="defaultUserCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserCreatePropagation"/>
+ <bean id="defaultUserUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdatePropagation"/>
+ <bean id="userStatusOnSync" class="org.apache.syncope.core.provisioning.camel.processors.UserStatusOnSync"/>
+ <bean id="defaultUserUpdateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdateInSyncPropagation"/>
+ <bean id="defaultUserDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeletePropagation"/>
+ <bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
+ <bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
+ <bean id="defaultUserStatusPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserStatusPropagation"/>
+ <bean id="defaultUserConfirmPwdResetPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserConfirmPwdResetPropagation"/>
+ <bean id="defaultRoleCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreatePropagation"/>
+ <bean id="defaultRoleCreateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreateSyncPropagation"/>
+ <bean id="defaultRoleUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleUpdatePropagation"/>
+ <bean id="defaultRoleDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeletePropagation"/>
+ <bean id="defaultRoleDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeprovisionPropagation"/>
</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/efe6c5ea/core/src/main/resources/coreContext.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/coreContext.xml b/core/src/main/resources/coreContext.xml
index 3950689..e39ceed 100644
--- a/core/src/main/resources/coreContext.xml
+++ b/core/src/main/resources/coreContext.xml
@@ -76,8 +76,8 @@ under the License.
<context:exclude-filter type="regex" expression=".*\.activiti\..*"/>
</context:component-scan>
- <bean id="defaultUserProvisioningManager" class="org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager"/>
- <bean id="defaultRoleProvisioningManager" class="org.apache.syncope.core.provisioning.camel.CamelRoleProvisioningManager"/>
+ <bean id="defaultUserProvisioningManager" class="org.apache.syncope.core.provisioning.DefaultUserProvisioningManager"/>
+ <bean id="defaultRoleProvisioningManager" class="org.apache.syncope.core.provisioning.DefaultRoleProvisioningManager"/>
<bean id="nonJPAdbInitializer" class="org.springframework.jdbc.datasource.init.DataSourceInitializer">
<property name="dataSource" ref="dataSource"/>
[16/53] [abbrv] syncope git commit: Merge remote-tracking branch
'upstream/master'
Posted by il...@apache.org.
Merge remote-tracking branch 'upstream/master'
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b7d6578e
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b7d6578e
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b7d6578e
Branch: refs/heads/2_0_X
Commit: b7d6578e340f08933f572ffe99a83b04419b4a9a
Parents: 8b16139 86cbfe4
Author: giacomolm <gi...@hotmail.it>
Authored: Mon Dec 22 17:02:19 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Mon Dec 22 17:02:19 2014 +0100
----------------------------------------------------------------------
.../core/cache/DisabledVirAttrCache.java | 50 +++++++
.../syncope/core/cache/MemoryVirAttrCache.java | 148 +++++++++++++++++++
.../apache/syncope/core/cache/VirAttrCache.java | 65 ++++++++
.../syncope/core/cache/VirAttrCacheKey.java | 79 ++++++++++
.../syncope/core/cache/VirAttrCacheValue.java | 86 +++++++++++
.../syncope/core/connid/ConnObjectUtil.java | 4 +-
.../data/AbstractAttributableDataBinder.java | 2 +-
.../apache/syncope/core/util/MappingUtil.java | 7 +-
.../apache/syncope/core/util/VirAttrCache.java | 144 ------------------
.../syncope/core/util/VirAttrCacheKey.java | 79 ----------
.../syncope/core/util/VirAttrCacheValue.java | 86 -----------
.../apache/syncope/core/util/jexl/JexlUtil.java | 4 +-
core/src/main/resources/coreContext.xml | 2 +-
.../core/rest/DerivedSchemaTestITCase.java | 4 +-
pom.xml | 6 +-
15 files changed, 442 insertions(+), 324 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/b7d6578e/core/src/main/resources/coreContext.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/b7d6578e/pom.xml
----------------------------------------------------------------------
[14/53] [abbrv] syncope git commit: Fixes #3 - Provisioning manager
properties file added
Posted by il...@apache.org.
Fixes #3 - Provisioning manager properties file added
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/8b161393
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/8b161393
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/8b161393
Branch: refs/heads/master
Commit: 8b1613934d47bd9db5276d08755f9111fd5a6a6c
Parents: efe6c5e
Author: giacomolm <gi...@hotmail.it>
Authored: Mon Dec 22 17:01:49 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Mon Dec 22 17:01:49 2014 +0100
----------------------------------------------------------------------
.../DefaultRoleCreatePropagation.java | 2 ++
.../DefaultRoleCreateSyncPropagation.java | 2 ++
.../DefaultRoleDeletePropagation.java | 2 ++
.../DefaultRoleDeprovisionPropagation.java | 2 ++
.../DefaultRoleUpdatePropagation.java | 2 ++
.../DefaultUserConfirmPwdResetPropagation.java | 3 +-
.../DefaultUserCreatePropagation.java | 2 ++
.../DefaultUserDeletePropagation.java | 3 +-
.../DefaultUserDeprovisionPropagation.java | 2 ++
.../DefaultUserStatusPropagation.java | 2 ++
.../DefaultUserUpdateInSyncPropagation.java | 2 ++
.../DefaultUserUpdatePropagation.java | 2 ++
.../DefaultUserWFSuspendPropagation.java | 2 ++
.../camel/processors/UserStatusOnSync.java | 2 ++
.../core/rest/controller/RoleController.java | 2 +-
.../core/rest/controller/UserController.java | 2 +-
.../sync/impl/AbstractSyncopeResultHandler.java | 4 +--
.../core/workflow/WorkflowUserSuspender.java | 2 +-
core/src/main/resources/camelRoute.xml | 4 +--
core/src/main/resources/coreContext.xml | 29 +++++---------------
core/src/main/resources/provisioning.properties | 19 +++++++++++++
21 files changed, 61 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
index a6b40fb..2c34090 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
@@ -38,7 +38,9 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultRoleCreatePropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleCreatePropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
index ea8df72..c216c41 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
@@ -38,7 +38,9 @@ import org.apache.syncope.core.persistence.beans.PropagationTask;
import org.apache.syncope.core.util.EntitlementUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultRoleCreateSyncPropagation implements Processor{
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
index 1d2c20e..6523b76 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
@@ -37,7 +37,9 @@ import org.apache.syncope.core.workflow.role.RoleWorkflowAdapter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultRoleDeletePropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleDeletePropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
index 0f02258..77e9e73 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
@@ -35,7 +35,9 @@ import org.apache.syncope.core.util.ApplicationContextProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultRoleDeprovisionPropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeprovisionPropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
index cc2fcc0..30fe08d 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
@@ -37,7 +37,9 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultRoleUpdatePropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdatePropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
index 2447689..3ffa5b6 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
@@ -32,8 +32,9 @@ import org.apache.syncope.core.util.ApplicationContextProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
-
+@Component
public class DefaultUserConfirmPwdResetPropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserConfirmPwdResetPropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
index c71e3dc..3d2b18d 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
@@ -37,7 +37,9 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultUserCreatePropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserCreatePropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
index 1afef83..b8fa699 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
@@ -32,8 +32,9 @@ import org.apache.syncope.core.util.ApplicationContextProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
-
+@Component
public class DefaultUserDeletePropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeletePropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
index f62e4b6..2d2eba9 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
@@ -34,7 +34,9 @@ import org.apache.syncope.core.util.ApplicationContextProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultUserDeprovisionPropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeprovisionPropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
index 2cf1e6f..8bbc246 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
@@ -39,7 +39,9 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultUserStatusPropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserStatusPropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
index 6fdec75..48eb3d9 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
@@ -39,7 +39,9 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultUserUpdateInSyncPropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdateInSyncPropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
index 880912e..c8ffe34 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
@@ -42,7 +42,9 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultUserUpdatePropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdatePropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
index 2d08b93..e20c84e 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
@@ -32,7 +32,9 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultUserWFSuspendPropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserWFSuspendPropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
index 7e4c18e..b2acdfb 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
@@ -30,7 +30,9 @@ import org.apache.syncope.core.workflow.user.UserWorkflowAdapter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class UserStatusOnSync implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(UserStatusOnSync.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
index f7a2981..701dc5b 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
@@ -96,7 +96,7 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
@Resource(name = "anonymousUser")
private String anonymousUser;
- @Resource(name = "defaultRoleProvisioningManager")
+ @Resource(name = "roleProvisioningManager")
protected RoleProvisioningManager provisioningManager;
@PreAuthorize("hasAnyRole('ROLE_READ', T(org.apache.syncope.common.SyncopeConstants).ANONYMOUS_ENTITLEMENT)")
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
index 606d46b..0a30a86 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
@@ -97,7 +97,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
@Autowired
protected AttributableTransformer attrTransformer;
- @Resource(name = "defaultUserProvisioningManager")
+ @Resource(name = "userProvisioningManager")
protected UserProvisioningManager provisioningManager;
@Transactional(readOnly = true)
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
index b356e64..78ada92 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
@@ -103,10 +103,10 @@ public abstract class AbstractSyncopeResultHandler<T extends AbstractSyncTask, A
*/
protected SyncProfile<T, A> profile;
- @Resource(name = "defaultUserProvisioningManager")
+ @Resource(name = "userProvisioningManager")
protected UserProvisioningManager userProvisioningManager;
- @Resource(name = "defaultRoleProvisioningManager")
+ @Resource(name = "roleProvisioningManager")
protected RoleProvisioningManager roleProvisioningManager;
public void setProfile(final SyncProfile<T, A> profile) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java b/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java
index ef4a46d..512a240 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java
@@ -40,7 +40,7 @@ public class WorkflowUserSuspender implements UserSuspender {
private static final Logger LOG = LoggerFactory.getLogger(WorkflowUserSuspender.class);
- @Resource(name = "defaultUserProvisioningManager")
+ @Resource(name = "userProvisioningManager")
protected UserProvisioningManager provisioningManager;
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/resources/camelRoute.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/camelRoute.xml b/core/src/main/resources/camelRoute.xml
index 260f01c..7cebf73 100644
--- a/core/src/main/resources/camelRoute.xml
+++ b/core/src/main/resources/camelRoute.xml
@@ -111,7 +111,7 @@ under the License.
<route id="syncUserStatus">
<from uri="direct:syncUserStatus"/>
<process ref="userStatusOnSync" />
- <process ref="defaultUserUpdateSyncPropagation" />
+ <process ref="defaultUserUpdateInSyncPropagation" />
<to uri="direct:updateSyncPort"/>
</route>
<!--
@@ -454,7 +454,7 @@ under the License.
<bean id="defaultUserCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserCreatePropagation"/>
<bean id="defaultUserUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdatePropagation"/>
<bean id="userStatusOnSync" class="org.apache.syncope.core.provisioning.camel.processors.UserStatusOnSync"/>
- <bean id="defaultUserUpdateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdateInSyncPropagation"/>
+ <bean id="defaultUserUpdateInSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdateInSyncPropagation"/>
<bean id="defaultUserDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeletePropagation"/>
<bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
<bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/resources/coreContext.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/coreContext.xml b/core/src/main/resources/coreContext.xml
index e39ceed..5aa2aeb 100644
--- a/core/src/main/resources/coreContext.xml
+++ b/core/src/main/resources/coreContext.xml
@@ -43,6 +43,7 @@ under the License.
<value>file:${conf.directory}/connid.properties</value>
<value>file:${conf.directory}/workflow.properties</value>
<value>file:${conf.directory}/mail.properties</value>
+ <value>file:${conf.directory}/provisioning.properties</value>
</list>
</property>
</bean>
@@ -55,6 +56,7 @@ under the License.
<value>classpath:connid.properties</value>
<value>classpath:workflow.properties</value>
<value>classpath:mail.properties</value>
+ <value>classpath:provisioning.properties</value>
</list>
</property>
</bean>
@@ -75,9 +77,7 @@ under the License.
<context:component-scan base-package="org.apache.syncope.core.workflow">
<context:exclude-filter type="regex" expression=".*\.activiti\..*"/>
</context:component-scan>
-
- <bean id="defaultUserProvisioningManager" class="org.apache.syncope.core.provisioning.DefaultUserProvisioningManager"/>
- <bean id="defaultRoleProvisioningManager" class="org.apache.syncope.core.provisioning.DefaultRoleProvisioningManager"/>
+ <context:component-scan base-package="org.apache.syncope.core.provisioning"/>
<bean id="nonJPAdbInitializer" class="org.springframework.jdbc.datasource.init.DataSourceInitializer">
<property name="dataSource" ref="dataSource"/>
@@ -151,23 +151,8 @@ under the License.
<constructor-arg value="60"/>
<constructor-arg value="5000"/>
</bean>
- <!-- Camel Context Definition -->
- <bean id="syncopeCamelContextFactory" class="org.apache.syncope.core.provisioning.camel.SyncopeCamelContext"/>
-
- <bean id="defaultUserCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserCreatePropagation"/>
- <bean id="defaultUserUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdatePropagation"/>
- <bean id="userStatusOnSync" class="org.apache.syncope.core.provisioning.camel.processors.UserStatusOnSync"/>
- <bean id="defaultUserUpdateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdateInSyncPropagation"/>
- <bean id="defaultUserDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeletePropagation"/>
- <bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
- <bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
- <bean id="defaultUserStatusPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserStatusPropagation"/>
- <bean id="defaultUserConfirmPwdResetPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserConfirmPwdResetPropagation"/>
- <bean id="defaultRoleCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreatePropagation"/>
- <bean id="defaultRoleCreateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreateSyncPropagation"/>
- <bean id="defaultRoleUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleUpdatePropagation"/>
- <bean id="defaultRoleDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeletePropagation"/>
- <bean id="defaultRoleDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeprovisionPropagation"/>
-
- <bean id="routeController" class="org.apache.syncope.core.rest.controller.RouteController"/>
+ <!-- Camel Context Beans Definition -->
+ <bean id="userProvisioningManager" class="${userProvisioningManager}"/>
+ <bean id="roleProvisioningManager" class="${roleProvisioningManager}"/>
+ <bean id="routeController" class="org.apache.syncope.core.rest.controller.RouteController"/>
</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/resources/provisioning.properties
----------------------------------------------------------------------
diff --git a/core/src/main/resources/provisioning.properties b/core/src/main/resources/provisioning.properties
new file mode 100644
index 0000000..a8e49bf
--- /dev/null
+++ b/core/src/main/resources/provisioning.properties
@@ -0,0 +1,19 @@
+# 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.
+
+userProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager
+roleProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelRoleProvisioningManager
\ No newline at end of file
[03/53] [abbrv] syncope git commit: Initial running version,
in order to fix #1
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
new file mode 100644
index 0000000..86f6ebe
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
@@ -0,0 +1,347 @@
+/*
+ * 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.core.provisioning;
+
+import java.util.AbstractMap;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.apache.syncope.common.mod.StatusMod;
+import org.apache.syncope.common.mod.UserMod;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.common.to.UserTO;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
+import org.apache.syncope.core.persistence.dao.UserDAO;
+import org.apache.syncope.core.propagation.PropagationByResource;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.rest.data.UserDataBinder;
+import org.apache.syncope.core.sync.SyncResult;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.apache.syncope.core.workflow.WorkflowResult;
+import org.apache.syncope.core.workflow.user.UserWorkflowAdapter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class DefaultUserProvisioningManager implements UserProvisioningManager{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultUserProvisioningManager.class);
+
+ @Autowired
+ protected UserWorkflowAdapter uwfAdapter;
+
+ @Autowired
+ protected PropagationManager propagationManager;
+
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+
+ @Autowired
+ protected UserDataBinder binder;
+
+ @Autowired
+ protected UserDAO userDAO;
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO){
+ return create(userTO, true);
+ }
+
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, boolean storePassword) {
+ WorkflowResult<Map.Entry<Long, Boolean>> created;
+ try {
+ created = uwfAdapter.create(userTO,storePassword);
+ } catch (RuntimeException e) {
+ throw e;
+ }
+
+ List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(
+ created, userTO.getPassword(), userTO.getVirAttrs(), userTO.getMemberships());
+
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ created.getResult().getKey(), propagationReporter.getStatuses());
+ return result;
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> create(UserTO userTO, boolean storePassword, boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources) {
+ WorkflowResult<Map.Entry<Long, Boolean>> created;
+ try {
+ created = uwfAdapter.create(userTO,storePassword);
+ } catch (RuntimeException e) {
+ throw e;
+ }
+
+ List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(
+ created, userTO.getPassword(), userTO.getVirAttrs(), excludedResources, null);
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ created.getResult().getKey(), propagationReporter.getStatuses());
+ return result;
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> update(final UserMod userMod) {
+ return update(userMod, false);
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> update(UserMod userMod, boolean removeMemberships) {
+ WorkflowResult<Map.Entry<UserMod, Boolean>> updated;
+ try {
+ updated = uwfAdapter.update(userMod);
+ } catch (RuntimeException e) {
+ throw e;
+ }
+
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated);
+
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ updated.getResult().getKey().getId(), propagationReporter.getStatuses());
+ return result;
+ }
+
+ @Override
+ public List<PropagationStatus> delete(final Long userId) {
+
+ return delete(userId, Collections.<String>emptySet());
+ }
+
+ @Override
+ public List<PropagationStatus> delete(Long subjectId, Set<String> excludedResources) {
+ List<PropagationTask> tasks = propagationManager.getUserDeleteTaskIds(subjectId,excludedResources);
+
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ try {
+ uwfAdapter.delete(subjectId);
+ } catch (RuntimeException e) {
+ throw e;
+ }
+
+ return propagationReporter.getStatuses();
+ }
+
+
+ @Override
+ public Long unlink(UserMod userMod) {
+ WorkflowResult<Map.Entry<UserMod, Boolean>> updated = uwfAdapter.update(userMod);
+ return updated.getResult().getKey().getId();
+ }
+
+ @Override
+ public Long link(UserMod subjectMod) {
+ return uwfAdapter.update(subjectMod).getResult().getKey().getId();
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> activate(SyncopeUser user, StatusMod statusMod) {
+ WorkflowResult<Long> updated;
+ if (statusMod.isOnSyncope()) {
+ updated = uwfAdapter.activate(user.getId(), statusMod.getToken());
+ } else {
+ updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
+ }
+
+ List<PropagationStatus> statuses = propagateStatus(user, statusMod);
+ return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult(), statuses);
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> reactivate(SyncopeUser user, StatusMod statusMod) {
+ WorkflowResult<Long> updated;
+ if (statusMod.isOnSyncope()) {
+ updated = uwfAdapter.reactivate(user.getId());
+ } else {
+ updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
+ }
+
+ List<PropagationStatus> statuses = propagateStatus(user, statusMod);
+ return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult(), statuses);
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> suspend(SyncopeUser user, StatusMod statusMod) {
+ WorkflowResult<Long> updated;
+ if (statusMod.isOnSyncope()) {
+ updated = uwfAdapter.suspend(user.getId());
+ } else {
+ updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
+ }
+
+ List<PropagationStatus> statuses = propagateStatus(user, statusMod);
+ return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult(), statuses);
+ }
+
+ public List<PropagationStatus> propagateStatus(SyncopeUser user, StatusMod statusMod){
+
+ Set<String> resourcesToBeExcluded = new HashSet<String>(user.getResourceNames());
+ resourcesToBeExcluded.removeAll(statusMod.getResourceNames());
+
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(
+ user, statusMod.getType() != StatusMod.ModType.SUSPEND, resourcesToBeExcluded);
+ PropagationReporter propReporter =
+ ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ return propReporter.getStatuses();
+
+ }
+
+ @Override
+ public List<PropagationStatus> deprovision(Long userId, Collection<String> resources) {
+
+ final SyncopeUser user = binder.getUserFromId(userId);
+
+ final Set<String> noPropResourceName = user.getResourceNames();
+ noPropResourceName.removeAll(resources);
+
+ final List<PropagationTask> tasks =
+ propagationManager.getUserDeleteTaskIds(userId, new HashSet<String>(resources), noPropResourceName);
+ final PropagationReporter propagationReporter =
+ ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ return propagationReporter.getStatuses();
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> updateInSync(final UserMod userMod,final Long id, final SyncResult result, Boolean enabled, Set<String> excludedResources){
+
+ WorkflowResult<Map.Entry<UserMod, Boolean>> updated;
+ try {
+ updated = uwfAdapter.update(userMod);
+ } catch (Exception e) {
+ LOG.error("Update of user {} failed, trying to sync its status anyway (if configured)", id, e);
+
+ result.setStatus(SyncResult.Status.FAILURE);
+ result.setMessage("Update failed, trying to sync status anyway (if configured)\n" + e.getMessage());
+
+ updated = new WorkflowResult<Map.Entry<UserMod, Boolean>>(
+ new AbstractMap.SimpleEntry<UserMod, Boolean>(userMod, false), new PropagationByResource(),
+ new HashSet<String>());
+ }
+
+ if (enabled != null) {
+ SyncopeUser user = userDAO.find(id);
+
+ WorkflowResult<Long> enableUpdate = null;
+ if (user.isSuspended() == null) {
+ enableUpdate = uwfAdapter.activate(id, null);
+ } else if (enabled && user.isSuspended()) {
+ enableUpdate = uwfAdapter.reactivate(id);
+ } else if (!enabled && !user.isSuspended()) {
+ enableUpdate = uwfAdapter.suspend(id);
+ }
+
+ if (enableUpdate != null) {
+ if (enableUpdate.getPropByRes() != null) {
+ updated.getPropByRes().merge(enableUpdate.getPropByRes());
+ updated.getPropByRes().purge();
+ }
+ updated.getPerformedTasks().addAll(enableUpdate.getPerformedTasks());
+ }
+ }
+
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
+
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated,updated.getResult().getKey().getPassword() != null,excludedResources);
+
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult().getKey().getId(), propagationReporter.getStatuses());
+
+ }
+
+ @Override
+ public void innerSuspend(SyncopeUser user, boolean suspend) {
+
+ final WorkflowResult<Long> updated = uwfAdapter.suspend(user);
+
+ // propagate suspension if and only if it is required by policy
+ if (suspend) {
+ UserMod userMod = new UserMod();
+ userMod.setId(updated.getResult());
+
+ final List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(
+ new WorkflowResult<Map.Entry<UserMod, Boolean>>(
+ new AbstractMap.SimpleEntry<UserMod, Boolean>(userMod, Boolean.FALSE),
+ updated.getPropByRes(), updated.getPerformedTasks()));
+
+ taskExecutor.execute(tasks);
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/RoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/RoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/RoleProvisioningManager.java
new file mode 100644
index 0000000..594bf5e
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/RoleProvisioningManager.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2013 The Apache Software Foundation.
+ *
+ * Licensed 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.core.provisioning;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.apache.syncope.common.to.RoleTO;
+import org.apache.syncope.common.mod.RoleMod;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.core.propagation.PropagationException;
+
+public interface RoleProvisioningManager extends ProvisioningManager<RoleTO, RoleMod>{
+
+ public Map.Entry<Long, List<PropagationStatus>> create(final RoleTO roleTO, Set<String> excludedResources);
+
+ public Map.Entry<Long, List<PropagationStatus>> createInSync(final RoleTO roleTO, Map<Long, String> roleOwnerMap,Set<String> excludedResources) throws PropagationException;
+
+ public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources);
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
new file mode 100644
index 0000000..da29a42
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2013 The Apache Software Foundation.
+ *
+ * Licensed 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.core.provisioning;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.apache.syncope.common.mod.StatusMod;
+import org.apache.syncope.core.workflow.WorkflowResult;
+import org.apache.syncope.common.to.UserTO;
+import org.apache.syncope.common.mod.UserMod;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
+import org.apache.syncope.core.sync.SyncResult;
+
+public interface UserProvisioningManager extends ProvisioningManager<UserTO, UserMod>{
+
+ public Map.Entry<Long, List<PropagationStatus>> activate(SyncopeUser user, StatusMod statusMod);
+
+ public Map.Entry<Long, List<PropagationStatus>> reactivate(SyncopeUser user, StatusMod statusMod);
+
+ public Map.Entry<Long, List<PropagationStatus>> suspend(SyncopeUser user, StatusMod statusMod);
+
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword);
+
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword, boolean disablePwdPolicyCheck, Boolean enabled,Set<String> excludedResources);
+
+ public Map.Entry<Long, List<PropagationStatus>> update(final UserMod userMod, final boolean removeMemberships);
+
+ public Map.Entry<Long, List<PropagationStatus>> updateInSync(final UserMod userMod,final Long id, final SyncResult result, Boolean enabled, Set<String> excludedResources);
+
+ public List<PropagationStatus> delete(Long subjectId, Set<String> excludedResources);
+
+ public void innerSuspend(SyncopeUser user, boolean suspend);
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
new file mode 100644
index 0000000..4857d2f
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
@@ -0,0 +1,307 @@
+/*
+ * 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.core.provisioning.camel;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.InputStream;
+import java.net.URLDecoder;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import org.apache.camel.CamelContext;
+import org.apache.camel.Endpoint;
+import org.apache.camel.Exchange;
+import org.apache.camel.PollingConsumer;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.impl.DefaultExchange;
+import org.apache.camel.impl.DefaultMessage;
+import org.apache.camel.model.Constants;
+import org.apache.camel.model.RouteDefinition;
+import org.apache.camel.model.RoutesDefinition;
+import org.apache.camel.spring.SpringCamelContext;
+import org.apache.syncope.common.mod.RoleMod;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.common.to.RoleTO;
+import org.apache.syncope.core.persistence.beans.CamelRoute;
+import org.apache.syncope.core.persistence.dao.RouteDAO;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.provisioning.RoleProvisioningManager;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class CamelRoleProvisioningManager implements RoleProvisioningManager{
+
+ private static final Logger LOG = LoggerFactory.getLogger(CamelRoleProvisioningManager.class);
+
+ private DefaultCamelContext camelContext;
+
+ private RoutesDefinition routes;
+
+ protected Map<String, PollingConsumer> consumerMap;
+
+ protected List<String> knownUri;
+
+ @Autowired
+ protected RouteDAO routeDAO;
+
+ @Autowired
+ protected SyncopeCamelContext contextFactory;
+
+ public CamelRoleProvisioningManager() throws Exception {
+ knownUri = new ArrayList<String>();
+ consumerMap = new HashMap();
+ }
+
+ public void startContext() throws Exception {
+ camelContext.start();
+ }
+
+ public void stopContext() throws Exception {
+ camelContext.stop();
+ }
+
+ public CamelContext getContext() {
+ //ApplicationContext context = ApplicationContextProvider.getApplicationContext();
+ //return context.getBean("camel-context", DefaultCamelContext.class);
+ return contextFactory.getContext(routeDAO);
+ }
+
+ public void changeRoute(String routePath) {
+ try {
+ camelContext.removeRouteDefinitions(routes.getRoutes());
+ InputStream is = getClass().getResourceAsStream(routePath);
+ routes = getContext().loadRoutesDefinition(is);
+ camelContext.addRouteDefinitions(routes.getRoutes());
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ LOG.error("Unexpected error", e);
+ }
+ }
+
+ protected void sendMessage(String uri, Object obj) {
+ Exchange exc = new DefaultExchange(getContext());
+ DefaultMessage m = new DefaultMessage();
+ m.setBody(obj);
+ exc.setIn(m);
+ ProducerTemplate template = getContext().createProducerTemplate();
+ template.send(uri, exc);
+ }
+
+ protected void sendMessage(String uri, Object obj, Map<String, Object> properties) {
+ Exchange exc = new DefaultExchange(getContext());
+
+ Iterator<Map.Entry<String, Object>> it = properties.entrySet().iterator();
+ while (it.hasNext()) {
+ Map.Entry<String, Object> property = it.next();
+ exc.setProperty(property.getKey(), property.getValue());
+ LOG.info("Added property {}", property.getKey());
+ }
+
+ DefaultMessage m = new DefaultMessage();
+ m.setBody(obj);
+ exc.setIn(m);
+ ProducerTemplate template = getContext().createProducerTemplate();
+ template.send(uri, exc);
+ }
+
+ protected PollingConsumer getConsumer(final String uri) {
+
+ if (!knownUri.contains(uri)) {
+ knownUri.add(uri);
+ Endpoint endpoint = getContext().getEndpoint(uri);
+ PollingConsumer pollingConsumer = null;
+ try {
+ pollingConsumer = endpoint.createPollingConsumer();
+ consumerMap.put(uri, pollingConsumer);
+ pollingConsumer.start();
+ } catch (Exception ex) {
+ LOG.error("Unexpected error in Consumer creation ", ex);
+ }
+ return pollingConsumer;
+ } else {
+ return consumerMap.get(uri);
+ }
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> create(RoleTO subject) {
+
+ return create(subject, Collections.<String>emptySet());
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> create(RoleTO roleTO, Set<String> excludedResources) {
+
+ String uri = "direct:createRolePort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map<String, Object> props = new HashMap<String, Object>();
+ props.put("excludedResources", excludedResources);
+
+ sendMessage("direct:createRole", roleTO, props);
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ return o.getIn().getBody(Map.Entry.class);
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> createInSync(RoleTO roleTO, Map<Long, String> roleOwnerMap, Set<String> excludedResources) throws PropagationException {
+
+ String uri = "direct:createRoleSyncPort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map<String, Object> props = new HashMap<String, Object>();
+ props.put("roleOwnerMap", roleOwnerMap);
+ props.put("excludedResources", excludedResources);
+
+ sendMessage("direct:createRoleSync", roleTO, props);
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ return o.getIn().getBody(Map.Entry.class);
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod) {
+
+ return update(subjectMod, Collections.<String>emptySet());
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources) {
+
+ String uri = "direct:updateRolePort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map<String, Object> props = new HashMap<String, Object>();
+ props.put("excludedResources", excludedResources);
+
+ sendMessage("direct:updateRole",subjectMod, props);
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ return o.getIn().getBody(Map.Entry.class);
+ }
+
+ @Override
+ public List<PropagationStatus> delete(Long subjectId) {
+
+ String uri = "direct:deleteRolePort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ sendMessage("direct:deleteRole", subjectId);
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ return o.getIn().getBody(List.class);
+ }
+
+ @Override
+ public Long unlink(RoleMod subjectMod) {
+ String uri = "direct:unlinkRolePort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ sendMessage("direct:unlinkRole", subjectMod);
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ return o.getIn().getBody(Long.class);
+ }
+
+ @Override
+ public Long link(RoleMod subjectMod) {
+
+ String uri = "direct:linkRolePort";
+
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ sendMessage("direct:linkRole", subjectMod);
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ return o.getIn().getBody(Long.class);
+ }
+
+ @Override
+ public List<PropagationStatus> deprovision(final Long roleId, Collection<String> resources) {
+
+ String uri = "direct:deprovisionRolePort";
+
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map props = new HashMap<String, Object>();
+ props.put("resources", resources);
+
+ sendMessage("direct:deprovisionRole", roleId, props);
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ return o.getIn().getBody(List.class);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
new file mode 100644
index 0000000..dc0c552
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
@@ -0,0 +1,456 @@
+/*
+ * 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.core.provisioning.camel;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.net.URLDecoder;
+import java.util.AbstractMap;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import org.apache.camel.CamelContext;
+import org.apache.camel.Endpoint;
+import org.apache.camel.Exchange;
+import org.apache.camel.PollingConsumer;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.impl.DefaultExchange;
+import org.apache.camel.impl.DefaultMessage;
+import org.apache.camel.model.Constants;
+import org.apache.camel.model.RouteDefinition;
+import org.apache.camel.model.RoutesDefinition;
+import org.apache.camel.spring.SpringCamelContext;
+import org.apache.syncope.common.mod.StatusMod;
+import org.apache.syncope.common.mod.UserMod;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.common.to.UserTO;
+import org.apache.syncope.core.persistence.beans.CamelRoute;
+import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
+import org.apache.syncope.core.persistence.dao.RouteDAO;
+import org.apache.syncope.core.propagation.PropagationByResource;
+import org.apache.syncope.core.provisioning.UserProvisioningManager;
+import org.apache.syncope.core.sync.SyncResult;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.apache.syncope.core.workflow.WorkflowResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class CamelUserProvisioningManager implements UserProvisioningManager {
+
+ private static final Logger LOG = LoggerFactory.getLogger(CamelUserProvisioningManager.class);
+
+ private DefaultCamelContext camelContext;
+
+ private RoutesDefinition routes;
+
+ protected Map<String, PollingConsumer> consumerMap;
+
+ protected List<String> knownUri;
+
+ @Autowired
+ protected RouteDAO routeDAO;
+
+ @Autowired
+ protected SyncopeCamelContext contextFactory;
+
+ public CamelUserProvisioningManager() throws Exception {
+ knownUri = new ArrayList<String>();
+ consumerMap = new HashMap();
+ }
+
+ public String readerToString(Reader reader, int size) throws IOException {
+ StringBuffer content = new StringBuffer();
+ char[] buffer = new char[size];
+ int n;
+
+ while ((n = reader.read(buffer)) != -1) {
+ content.append(buffer, 0, n);
+ }
+
+ return content.toString();
+ }
+
+ public void startContext() throws Exception {
+ getContext().start();
+ }
+
+ public void stopContext() throws Exception {
+ camelContext.stop();
+ }
+
+ public CamelContext getContext() {
+ //ApplicationContext context = ApplicationContextProvider.getApplicationContext();
+ //return context.getBean("camel-context", DefaultCamelContext.class);
+ return contextFactory.getContext(routeDAO);
+ }
+
+ protected List<CamelRoute> getRoutes() {
+ return routeDAO.findAll();
+ }
+
+ public void changeRoute(String routePath) {
+ try {
+ camelContext.removeRouteDefinitions(routes.getRoutes());
+ InputStream is = getClass().getResourceAsStream(routePath);
+ routes = getContext().loadRoutesDefinition(is);
+ camelContext.addRouteDefinitions(routes.getRoutes());
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ LOG.error("Unexpected error", e);
+ }
+ }
+
+ protected void sendMessage(String uri, Object obj) {
+ Exchange exc = new DefaultExchange(getContext());
+ DefaultMessage m = new DefaultMessage();
+ m.setBody(obj);
+ exc.setIn(m);
+ ProducerTemplate template = getContext().createProducerTemplate();
+ template.send(uri, exc);
+ }
+
+ protected void sendMessage(String uri, Object obj, Map<String, Object> properties) {
+ Exchange exc = new DefaultExchange(getContext());
+
+ Iterator<Map.Entry<String, Object>> it = properties.entrySet().iterator();
+ while (it.hasNext()) {
+ Map.Entry<String, Object> property = it.next();
+ exc.setProperty(property.getKey(), property.getValue());
+ LOG.info("Added property {}", property.getKey());
+ }
+
+ DefaultMessage m = new DefaultMessage();
+ m.setBody(obj);
+ exc.setIn(m);
+ ProducerTemplate template = getContext().createProducerTemplate();
+ template.send(uri, exc);
+ }
+
+ protected PollingConsumer getConsumer(String uri) {
+ if (!knownUri.contains(uri)) {
+ knownUri.add(uri);
+ Endpoint endpoint = getContext().getEndpoint(uri);
+ PollingConsumer pollingConsumer = null;
+ try {
+ pollingConsumer = endpoint.createPollingConsumer();
+ consumerMap.put(uri, pollingConsumer);
+ pollingConsumer.start();
+ } catch (Exception ex) {
+ LOG.error("Unexpected error in Consumer creation ", ex);
+ }
+ return pollingConsumer;
+ } else {
+ return consumerMap.get(uri);
+ }
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO) {
+
+ return create(userTO, true, false, null, Collections.<String>emptySet());
+ }
+
+
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, boolean storePassword) {
+
+ return create(userTO, storePassword, false, null, Collections.<String>emptySet());
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword, boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources) {
+ String uri = "direct:createPort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map<String, Object> props = new HashMap<String, Object>();
+ props.put("storePassword", storePassword);
+ props.put("disablePwdPolicyCheck", disablePwdPolicyCheck);
+ props.put("enabled", enabled);
+ props.put("excludedResources", excludedResources);
+
+ sendMessage("direct:createUser", userTO, props);
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ return o.getIn().getBody(Map.Entry.class);
+ }
+
+ /**
+ *
+ * @param userMod
+ * @return
+ * @throws RuntimeException if problems arise on workflow update
+ */
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> update(final UserMod userMod) {
+ return update(userMod, false);
+ }
+
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> update(UserMod userMod, boolean removeMemberships) {
+ String uri = "direct:updatePort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map<String, Object> props = new HashMap<String, Object>();
+ props.put("removeMemberships", removeMemberships);
+
+ sendMessage("direct:updateUser", userMod, props);
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ return o.getIn().getBody(Map.Entry.class);
+ }
+
+
+ @Override
+ public List<PropagationStatus> delete(final Long userId) {
+
+ return delete(userId, Collections.<String>emptySet());
+ }
+
+ @Override
+ public List<PropagationStatus> delete(final Long userId, Set<String> excludedResources) {
+ String uri = "direct:deletePort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map<String, Object> props = new HashMap<String, Object>();
+ props.put("excludedResources", excludedResources);
+
+ sendMessage("direct:deleteUser", userId, props);
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ return o.getIn().getBody(List.class);
+ }
+
+ @Override
+ public Long unlink(final UserMod userMod) {
+ String uri = "direct:unlinkPort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ sendMessage("direct:unlinkUser", userMod);
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ o.getIn().setBody((o.getIn().getBody(UserMod.class).getId()));
+ return o.getIn().getBody(Long.class);
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> activate(SyncopeUser user, StatusMod statusMod) {
+ String uri = "direct:statusPort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map props = new HashMap<String, Object>();
+ props.put("token", statusMod.getToken());
+ props.put("user", user);
+ props.put("statusMod", statusMod);
+
+ if (statusMod.isOnSyncope()) {
+ sendMessage("direct:activateUser", user.getId(), props);
+ } else {
+ WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
+ sendMessage("direct:statusUser", updated, props);
+ }
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ return o.getIn().getBody(Map.Entry.class);
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> reactivate(SyncopeUser user, StatusMod statusMod) {
+ String uri = "direct:statusPort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map props = new HashMap<String, Object>();
+ props.put("user", user);
+ props.put("statusMod", statusMod);
+
+ if (statusMod.isOnSyncope()) {
+ sendMessage("direct:reactivateUser", user.getId(), props);
+ } else {
+ WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
+ sendMessage("direct:statusUser", updated, props);
+ }
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ return o.getIn().getBody(Map.Entry.class);
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> suspend(SyncopeUser user, StatusMod statusMod) {
+
+ String uri = "direct:statusPort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map props = new HashMap<String, Object>();
+ props.put("user", user);
+ props.put("statusMod", statusMod);
+
+ if (statusMod.isOnSyncope()) {
+ sendMessage("direct:suspendUser", user.getId(), props);
+ } else {
+ WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
+ sendMessage("direct:statusUser", updated, props);
+ }
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ return o.getIn().getBody(Map.Entry.class);
+ }
+
+ @Override
+ public Long link(UserMod subjectMod) {
+ String uri = "direct:linkPort";
+
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ sendMessage("direct:linkUser", subjectMod);
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ o.getIn().setBody((o.getIn().getBody(UserMod.class).getId()));
+ return o.getIn().getBody(Long.class);
+ }
+
+ @Override
+ public List<PropagationStatus> deprovision(Long user, Collection<String> resources) {
+ String uri = "direct:deprovisionPort";
+
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map props = new HashMap<String, Object>();
+ props.put("resources", resources);
+
+ sendMessage("direct:deprovisionUser", user, props);
+
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ return o.getIn().getBody(List.class);
+ }
+
+ @Override
+ public Map.Entry<Long, List<PropagationStatus>> updateInSync(UserMod userMod, Long id, SyncResult result, Boolean enabled, Set<String> excludedResources) {
+
+ String uri = "direct:updateSyncPort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map<String, Object> props = new HashMap<String, Object>();
+ props.put("id", id);
+ props.put("result", result);
+ props.put("enabled", enabled);
+ props.put("excludedResources", excludedResources);
+
+ sendMessage("direct:updateSyncUser", userMod, props);
+
+ Exchange o = pollingConsumer.receive();
+ Exception e;
+ if ((e = (Exception) o.getProperty(Exchange.EXCEPTION_CAUGHT)) != null) {
+
+ LOG.error("Update of user {} failed, trying to sync its status anyway (if configured)", id, e);
+
+ result.setStatus(SyncResult.Status.FAILURE);
+ result.setMessage("Update failed, trying to sync status anyway (if configured)\n" + e.getMessage());
+
+ WorkflowResult<Map.Entry<UserMod, Boolean>> updated = new WorkflowResult<Map.Entry<UserMod, Boolean>>(
+ new AbstractMap.SimpleEntry<UserMod, Boolean>(userMod, false), new PropagationByResource(),
+ new HashSet<String>());
+ sendMessage("direct:syncUserStatus", updated, props);
+ o = pollingConsumer.receive();
+ }
+
+ return o.getIn().getBody(Map.Entry.class);
+ }
+
+ @Override
+ public void innerSuspend(SyncopeUser user, boolean suspend) {
+
+ String uri = "direct:suspendWFPort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map<String, Object> props = new HashMap<String, Object>();
+ props.put("suspend", suspend);
+
+ sendMessage("direct:suspendUserWF", user, props);
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
new file mode 100644
index 0000000..6381649
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
@@ -0,0 +1,137 @@
+/*
+ * 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.core.provisioning.camel;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.net.URLDecoder;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.logging.Level;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import org.apache.camel.CamelContext;
+import org.apache.camel.model.Constants;
+import org.apache.camel.model.RouteDefinition;
+import org.apache.camel.spring.SpringCamelContext;
+import org.apache.syncope.core.persistence.beans.CamelRoute;
+import org.apache.syncope.core.persistence.dao.RouteDAO;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+
+
+@Component
+public class SyncopeCamelContext{
+
+ private static final Logger LOG = LoggerFactory.getLogger(SyncopeCamelContext.class);
+
+ private CamelContext camelContext = null;
+
+ public SyncopeCamelContext() {
+ }
+
+ public CamelContext getContext(RouteDAO routeDAO){
+
+ if(camelContext == null) camelContext = new SpringCamelContext(ApplicationContextProvider.getApplicationContext());
+ if(camelContext.getRouteDefinitions().isEmpty()){
+
+ List<CamelRoute> crl = routeDAO.findAll();
+ LOG.info("{} route(s) are going to be loaded ", crl.size());
+ loadContext(routeDAO, crl);
+
+ try {
+ camelContext.start();
+ } catch (Exception ex) {
+ LOG.error("Error during staring camel context {}", ex);
+ }
+ }
+
+ return camelContext;
+ }
+
+ public void loadContext(RouteDAO routeDAO, List<CamelRoute> crl){
+
+ try {
+ DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ JAXBContext jaxbContext = JAXBContext.newInstance(Constants.JAXB_CONTEXT_PACKAGES);
+ Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
+ List rds = new ArrayList();
+
+ for (int s = 0; s < crl.size(); s++) {
+
+ InputStream is = new ByteArrayInputStream( URLDecoder.decode(crl.get(s).getRouteContent(), "UTF-8").getBytes());
+ Document doc = dBuilder.parse(is);
+ doc.getDocumentElement().normalize();
+ Node routeEl = doc.getElementsByTagName("route").item(0);
+ JAXBElement obj = unmarshaller.unmarshal(routeEl, RouteDefinition.class);
+ //adding route definition to list
+ rds.add(obj.getValue());
+ }
+ camelContext.addRouteDefinitions(rds);
+ } catch (Exception ex) {
+ LOG.error("Error during loading camel context {}", ex);
+ }
+
+ }
+
+ public void reloadContext(RouteDAO routeDAO){
+
+ List<CamelRoute> crl = routeDAO.findAll();
+ if(camelContext == null) getContext(routeDAO);
+ else {
+ if( ! camelContext.getRouteDefinitions().isEmpty()){
+ for (Iterator<RouteDefinition> it = camelContext.getRouteDefinitions().iterator(); it.hasNext(); ) {
+ RouteDefinition ard = it.next();
+ it.remove();
+ }
+ }
+
+ loadContext(routeDAO, crl);
+ }
+ }
+
+ public void reloadContext(RouteDAO routeDAO, Long routeId){
+
+ if(camelContext == null) getContext(routeDAO);
+ else {
+ if( ! camelContext.getRouteDefinitions().isEmpty()){
+
+ camelContext.getRouteDefinitions().remove(routeId.intValue());
+ List<CamelRoute> crl = new ArrayList<CamelRoute>();
+ crl.add(routeDAO.find(routeId));
+ loadContext(routeDAO, crl);
+ }
+
+ }
+
+ }
+
+ public List<RouteDefinition> getDefinitions(){
+ return camelContext.getRouteDefinitions();
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
new file mode 100644
index 0000000..a6b40fb
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
@@ -0,0 +1,76 @@
+/*
+ * 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.core.provisioning.camel.processors;
+
+import java.util.AbstractMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.common.to.RoleTO;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.apache.syncope.core.util.EntitlementUtil;
+import org.apache.syncope.core.workflow.WorkflowResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class DefaultRoleCreatePropagation implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleCreatePropagation.class);
+
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+
+ @Override
+ public void process(Exchange exchange){
+
+ WorkflowResult<Long> created = (WorkflowResult) exchange.getIn().getBody();
+ RoleTO subject = exchange.getProperty("subject", RoleTO.class);
+ Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
+
+ EntitlementUtil.extendAuthContext(created.getResult());
+
+ List<PropagationTask> tasks = propagationManager.getRoleCreateTaskIds(created, subject.getVirAttrs());
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
+ PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ created.getResult(), propagationReporter.getStatuses());
+
+ exchange.getOut().setBody(result);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
new file mode 100644
index 0000000..ea8df72
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
@@ -0,0 +1,79 @@
+package org.apache.syncope.core.provisioning.camel.processors;
+
+/*
+ * 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.
+ */
+
+import java.util.AbstractMap;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.common.to.RoleTO;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.workflow.WorkflowResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.syncope.common.to.AttributeTO;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.util.EntitlementUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class DefaultRoleCreateSyncPropagation implements Processor{
+
+
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleCreateSyncPropagation.class);
+
+ @Override
+ public void process(Exchange exchange){
+
+ WorkflowResult<Long> created = (WorkflowResult) exchange.getIn().getBody();
+
+ RoleTO actual = exchange.getProperty("subject", RoleTO.class);
+ Map<Long, String> roleOwnerMap = exchange.getProperty("roleOwnerMap", Map.class);
+ Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
+
+ AttributeTO roleOwner = actual.getAttrMap().get(StringUtils.EMPTY);
+
+ if (roleOwner != null) {
+ roleOwnerMap.put(created.getResult(), roleOwner.getValues().iterator().next());
+ }
+
+ EntitlementUtil.extendAuthContext(created.getResult());
+
+ List<PropagationTask> tasks = propagationManager.getRoleCreateTaskIds(created,
+ actual.getVirAttrs(), excludedResource);
+
+ taskExecutor.execute(tasks);
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ created.getResult(), Collections.<PropagationStatus>emptyList());
+
+ exchange.getOut().setBody(result);
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
new file mode 100644
index 0000000..1d2c20e
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
@@ -0,0 +1,100 @@
+/*
+ * 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.core.provisioning.camel.processors;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.persistence.beans.role.SyncopeRole;
+import org.apache.syncope.core.persistence.dao.RoleDAO;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.rest.data.RoleDataBinder;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.apache.syncope.core.workflow.WorkflowResult;
+import org.apache.syncope.core.workflow.role.RoleWorkflowAdapter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class DefaultRoleDeletePropagation implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleDeletePropagation.class);
+ @Autowired
+ protected RoleWorkflowAdapter rwfAdapter;
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+ @Autowired
+ protected RoleDAO roleDAO;
+ @Autowired
+ protected RoleDataBinder binder;
+
+ @Override
+ public void process(Exchange exchange) throws Exception {
+
+ Long subjectId = exchange.getIn().getBody(Long.class);
+
+ final List<SyncopeRole> toBeDeprovisioned = new ArrayList<SyncopeRole>();
+
+ final SyncopeRole syncopeRole = roleDAO.find(subjectId);
+
+ if (syncopeRole != null) {
+ toBeDeprovisioned.add(syncopeRole);
+
+ final List<SyncopeRole> descendants = roleDAO.findDescendants(toBeDeprovisioned.get(0));
+ if (descendants != null) {
+ toBeDeprovisioned.addAll(descendants);
+ }
+ }
+
+ final List<PropagationTask> tasks = new ArrayList<PropagationTask>();
+
+ for (SyncopeRole role : toBeDeprovisioned) {
+ // Generate propagation tasks for deleting users from role resources, if they are on those resources only
+ // because of the reason being deleted (see SYNCOPE-357)
+ for (WorkflowResult<Long> wfResult : binder.getUsersOnResourcesOnlyBecauseOfRole(role.getId())) {
+ tasks.addAll(propagationManager.getUserDeleteTaskIds(wfResult));
+ }
+
+ // Generate propagation tasks for deleting this role from resources
+ tasks.addAll(propagationManager.getRoleDeleteTaskIds(role.getId()));
+ }
+
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
+ PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ exchange.setProperty("statuses", propagationReporter.getStatuses());
+ }
+
+
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
new file mode 100644
index 0000000..0f02258
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
@@ -0,0 +1,74 @@
+/*
+ * 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.core.provisioning.camel.processors;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.persistence.beans.role.SyncopeRole;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.rest.data.RoleDataBinder;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class DefaultRoleDeprovisionPropagation implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeprovisionPropagation.class);
+
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+ @Autowired
+ protected RoleDataBinder binder;
+
+ @Override
+ public void process(Exchange exchange){
+
+ Long roleId = exchange.getIn().getBody(Long.class);
+ List<String> resources = exchange.getProperty("resources", List.class);
+
+ final SyncopeRole role = binder.getRoleFromId(roleId);
+
+ final Set<String> noPropResourceName = role.getResourceNames();
+ noPropResourceName.removeAll(resources);
+
+ final List<PropagationTask> tasks = propagationManager.getRoleDeleteTaskIds(roleId, new HashSet<String>(resources), noPropResourceName);
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
+ PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ exchange.getOut().setBody(propagationReporter.getStatuses());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
new file mode 100644
index 0000000..cc2fcc0
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
@@ -0,0 +1,75 @@
+/*
+ * 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.core.provisioning.camel.processors;
+
+import java.util.AbstractMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.common.mod.RoleMod;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.rest.data.UserDataBinder;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.apache.syncope.core.workflow.WorkflowResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class DefaultRoleUpdatePropagation implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdatePropagation.class);
+
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+ @Autowired
+ protected UserDataBinder binder;
+
+ @Override
+ public void process(Exchange exchange){
+ WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
+ RoleMod subjectMod = exchange.getProperty("subjectMod", RoleMod.class);
+ Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
+
+ List<PropagationTask> tasks = propagationManager.getRoleUpdateTaskIds(updated,
+ subjectMod.getVirAttrsToRemove(), subjectMod.getVirAttrsToUpdate(),excludedResource);
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
+ PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ updated.getResult(), propagationReporter.getStatuses());
+
+ exchange.getOut().setBody(result);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
new file mode 100644
index 0000000..c71e3dc
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
@@ -0,0 +1,76 @@
+/*
+ * 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.core.provisioning.camel.processors;
+
+import java.util.AbstractMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.common.to.UserTO;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.apache.syncope.core.workflow.WorkflowResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class DefaultUserCreatePropagation implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultUserCreatePropagation.class);
+
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+
+ @Override
+ public void process(Exchange exchange){
+
+ if((exchange.getIn().getBody() instanceof WorkflowResult)){
+
+ WorkflowResult<Map.Entry<Long, Boolean>> created = (WorkflowResult) exchange.getIn().getBody();
+ UserTO actual = exchange.getProperty("actual", UserTO.class);
+ Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
+
+ List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(
+ created, actual.getPassword(), actual.getVirAttrs(), excludedResource, actual.getMemberships());
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource {}", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(created.getResult().getKey(), propagationReporter.getStatuses());
+ exchange.getOut().setBody(result);
+ }
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
new file mode 100644
index 0000000..1afef83
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
@@ -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.syncope.core.provisioning.camel.processors;
+
+import java.util.List;
+import java.util.Set;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+public class DefaultUserDeletePropagation implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeletePropagation.class);
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+
+ @Override
+ public void process(Exchange exchange) throws Exception {
+
+ Long userId = (Long) exchange.getIn().getBody();
+ LOG.info("UserId {} ", userId);
+
+ Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
+
+ // Note here that we can only notify about "delete", not any other
+ // task defined in workflow process definition: this because this
+ // information could only be available after uwfAdapter.delete(), which
+ // will also effectively remove user from db, thus making virtually
+ // impossible by NotificationManager to fetch required user information
+ List<PropagationTask> tasks = propagationManager.getUserDeleteTaskIds(userId,excludedResource);
+
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ exchange.setProperty("statuses", propagationReporter.getStatuses());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
new file mode 100644
index 0000000..f62e4b6
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
@@ -0,0 +1,74 @@
+/*
+ * 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.core.provisioning.camel.processors;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.rest.data.UserDataBinder;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class DefaultUserDeprovisionPropagation implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeprovisionPropagation.class);
+
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+ @Autowired
+ protected UserDataBinder binder;
+
+ @Override
+ public void process(Exchange exchange){
+
+ Long userId = exchange.getIn().getBody(Long.class);
+ List<String> resources = exchange.getProperty("resources", List.class);
+
+ final SyncopeUser user = binder.getUserFromId(userId);
+
+ final Set<String> noPropResourceName = user.getResourceNames();
+ noPropResourceName.removeAll(resources);
+
+ final List<PropagationTask> tasks =
+ propagationManager.getUserDeleteTaskIds(userId, new HashSet<String>(resources), noPropResourceName);
+ final PropagationReporter propagationReporter =
+ ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ exchange.getOut().setBody(propagationReporter.getStatuses());
+ }
+
+}
[05/53] [abbrv] syncope git commit: Password managed now included in
the provisionig manager
Posted by il...@apache.org.
Password managed now included in the provisionig manager
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/0da02810
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/0da02810
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/0da02810
Branch: refs/heads/2_0_X
Commit: 0da02810041a4bbd5c0892a02924cf726a9e016e
Parents: 5b3b124
Author: giacomolm <gi...@hotmail.it>
Authored: Thu Dec 18 10:42:56 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Thu Dec 18 10:42:56 2014 +0100
----------------------------------------------------------------------
.../DefaultUserProvisioningManager.java | 20 ++++++
.../core/provisioning/ProvisioningManager.java | 42 +++++++++++
.../provisioning/UserProvisioningManager.java | 4 ++
.../camel/CamelUserProvisioningManager.java | 48 +++++++++----
.../DefaultUserConfirmPwdResetPropagation.java | 60 ++++++++++++++++
.../provisioning/ProvisioningManager.java | 42 -----------
.../core/rest/controller/UserController.java | 73 +-------------------
core/src/main/resources/camelRoute.xml | 40 ++++++++++-
core/src/main/resources/coreContext.xml | 1 +
9 files changed, 201 insertions(+), 129 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
index 86f6ebe..54f677c 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
@@ -344,4 +344,24 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
}
}
+ @Override
+ public void requestPasswordReset(Long id) {
+ uwfAdapter.requestPasswordReset(id);
+ }
+
+ @Override
+ public void confirmPasswordReset(SyncopeUser user, String token, String password) {
+
+ uwfAdapter.confirmPasswordReset(user.getId(), token, password);
+
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(user, null, null);
+ PropagationReporter propReporter =
+ ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propReporter.onPrimaryResourceFailure(tasks);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
new file mode 100644
index 0000000..adc1cb0
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
@@ -0,0 +1,42 @@
+/*
+ * 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.core.provisioning;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import org.apache.syncope.common.mod.AbstractAttributableMod;
+import org.apache.syncope.common.to.AbstractAttributableTO;
+import org.apache.syncope.common.to.PropagationStatus;
+
+public interface ProvisioningManager<T extends AbstractAttributableTO, M extends AbstractAttributableMod>{
+
+ public Map.Entry<Long, List<PropagationStatus>> create(T subject);
+
+ public Map.Entry<Long, List<PropagationStatus>> update(M subjectMod);
+
+ public List<PropagationStatus> delete(Long subjectId);
+
+ public Long unlink(M subjectMod);
+
+ public Long link(M subjectMod);
+
+ public List<PropagationStatus> deprovision(Long user, Collection<String> resources);
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
index da29a42..32a4d18 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
@@ -47,4 +47,8 @@ public interface UserProvisioningManager extends ProvisioningManager<UserTO, Use
public void innerSuspend(SyncopeUser user, boolean suspend);
+ public void requestPasswordReset(final Long id);
+
+ public void confirmPasswordReset(SyncopeUser user,final String token,final String password);
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
index dc0c552..92b3cfb 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
@@ -18,11 +18,9 @@
*/
package org.apache.syncope.core.provisioning.camel;
-import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
-import java.net.URLDecoder;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Collection;
@@ -33,11 +31,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.Unmarshaller;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
@@ -46,10 +39,7 @@ import org.apache.camel.ProducerTemplate;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.impl.DefaultMessage;
-import org.apache.camel.model.Constants;
-import org.apache.camel.model.RouteDefinition;
import org.apache.camel.model.RoutesDefinition;
-import org.apache.camel.spring.SpringCamelContext;
import org.apache.syncope.common.mod.StatusMod;
import org.apache.syncope.common.mod.UserMod;
import org.apache.syncope.common.to.PropagationStatus;
@@ -60,15 +50,11 @@ import org.apache.syncope.core.persistence.dao.RouteDAO;
import org.apache.syncope.core.propagation.PropagationByResource;
import org.apache.syncope.core.provisioning.UserProvisioningManager;
import org.apache.syncope.core.sync.SyncResult;
-import org.apache.syncope.core.util.ApplicationContextProvider;
import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
+
public class CamelUserProvisioningManager implements UserProvisioningManager {
@@ -453,4 +439,36 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
+ @Override
+ public void requestPasswordReset(Long id) {
+ String uri = "direct:requestPwdResetPort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ sendMessage("direct:requestPwdReset", id);
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+ }
+
+ @Override
+ public void confirmPasswordReset(SyncopeUser user, final String token, final String password) {
+ String uri = "direct:confirmPwdResetPort";
+ PollingConsumer pollingConsumer = getConsumer(uri);
+
+ Map<String, Object> props = new HashMap<String, Object>();
+ props.put("user", user);
+ props.put("userId", user.getId());
+ props.put("token", token);
+ props.put("password", password);
+
+ sendMessage("direct:confirmPwdReset", user, props);
+ Exchange o = pollingConsumer.receive();
+
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
+ }
+ }
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
new file mode 100644
index 0000000..2447689
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
@@ -0,0 +1,60 @@
+/*
+ * 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.core.provisioning.camel.processors;
+
+import java.util.List;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.common.to.UserTO;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+public class DefaultUserConfirmPwdResetPropagation implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultUserConfirmPwdResetPropagation.class);
+
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+
+ @Override
+ public void process(Exchange exchange){
+ SyncopeUser user = exchange.getProperty("user", SyncopeUser.class);
+
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(user, null, null);
+ PropagationReporter propReporter =
+ ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propReporter.onPrimaryResourceFailure(tasks);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/ProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/ProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/ProvisioningManager.java
deleted file mode 100644
index adc1cb0..0000000
--- a/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/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.core.provisioning;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import org.apache.syncope.common.mod.AbstractAttributableMod;
-import org.apache.syncope.common.to.AbstractAttributableTO;
-import org.apache.syncope.common.to.PropagationStatus;
-
-public interface ProvisioningManager<T extends AbstractAttributableTO, M extends AbstractAttributableMod>{
-
- public Map.Entry<Long, List<PropagationStatus>> create(T subject);
-
- public Map.Entry<Long, List<PropagationStatus>> update(M subjectMod);
-
- public List<PropagationStatus> delete(Long subjectId);
-
- public Long unlink(M subjectMod);
-
- public Long link(M subjectMod);
-
- public List<PropagationStatus> deprovision(Long user, Collection<String> resources);
-
-}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
index d8fa5f8..606d46b 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
@@ -26,7 +26,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -43,11 +42,8 @@ import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.common.types.ClientExceptionType;
import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.common.mod.AttributeMod;
-import org.apache.syncope.common.mod.MembershipMod;
import org.apache.syncope.common.types.SubjectType;
import org.apache.syncope.common.to.PropagationStatus;
-import org.apache.syncope.core.persistence.beans.CamelRoute;
-import org.apache.syncope.core.persistence.beans.PropagationTask;
import org.apache.syncope.core.provisioning.UserProvisioningManager;
import org.apache.syncope.core.persistence.beans.role.SyncopeRole;
import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
@@ -57,18 +53,11 @@ import org.apache.syncope.core.persistence.dao.NotFoundException;
import org.apache.syncope.core.persistence.dao.RoleDAO;
import org.apache.syncope.core.persistence.dao.UserDAO;
import org.apache.syncope.core.persistence.dao.search.OrderByClause;
-import org.apache.syncope.core.propagation.PropagationByResource;
-import org.apache.syncope.core.propagation.PropagationException;
-import org.apache.syncope.core.propagation.PropagationReporter;
import org.apache.syncope.core.propagation.PropagationTaskExecutor;
import org.apache.syncope.core.propagation.impl.PropagationManager;
-import org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager;
import org.apache.syncope.core.rest.data.AttributableTransformer;
import org.apache.syncope.core.rest.data.UserDataBinder;
-import org.apache.syncope.core.util.ApplicationContextProvider;
import org.apache.syncope.core.util.EntitlementUtil;
-import org.apache.syncope.core.workflow.WorkflowResult;
-import org.apache.syncope.core.workflow.user.UserWorkflowAdapter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Component;
@@ -108,9 +97,6 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
@Autowired
protected AttributableTransformer attrTransformer;
- @Autowired
- protected UserWorkflowAdapter uwfAdapter;
-
@Resource(name = "defaultUserProvisioningManager")
protected UserProvisioningManager provisioningManager;
@@ -269,50 +255,6 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
}
}
- //Actual operations: workflow, propagation, notification
- /*WorkflowResult<Map.Entry<UserMod, Boolean>> updated = uwfAdapter.update(actual);
-
- List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated);
- if (tasks.isEmpty()) {
- // SYNCOPE-459: take care of user virtual attributes ...
- final PropagationByResource propByResVirAttr = binder.fillVirtual(
- updated.getResult().getKey().getId(),
- actual.getVirAttrsToRemove(),
- actual.getVirAttrsToUpdate());
- // SYNCOPE-501: update only virtual attributes (if any of them changed), password propagation is
- // not required, take care also of membership virtual attributes
- boolean addOrUpdateMemberships = false;
- for (MembershipMod membershipMod : actual.getMembershipsToAdd()) {
- if (!binder.fillMembershipVirtual(
- updated.getResult().getKey().getId(),
- membershipMod.getRole(),
- null,
- membershipMod.getVirAttrsToRemove(),
- membershipMod.getVirAttrsToUpdate(),
- false).isEmpty()) {
-
- addOrUpdateMemberships = true;
- }
- }
- tasks.addAll(!propByResVirAttr.isEmpty() || addOrUpdateMemberships || removeMemberships
- ? propagationManager.getUserUpdateTaskIds(updated, false, null)
- : Collections.<PropagationTask>emptyList());
- }
-
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
- getBean(PropagationReporter.class);
-
- if (!tasks.isEmpty()) {
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
- }
-
- final UserTO updatedTO = binder.getUserTO(updated.getResult().getKey().getId());
- updatedTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());*/
Map.Entry<Long, List<PropagationStatus>> updated = provisioningManager.update(actual,removeMemberships);
final UserTO updatedTO = binder.getUserTO(updated.getKey());
@@ -372,7 +314,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
throw SyncopeClientException.build(ClientExceptionType.InvalidSecurityAnswer);
}
- uwfAdapter.requestPasswordReset(user.getId());
+ provisioningManager.requestPasswordReset(user.getId());
}
@PreAuthorize("isAnonymous() or hasRole(T(org.apache.syncope.common.SyncopeConstants).ANONYMOUS_ENTITLEMENT)")
@@ -382,18 +324,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
if (user == null) {
throw new NotFoundException("User with token " + token);
}
-
- uwfAdapter.confirmPasswordReset(user.getId(), token, password);
-
- List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(user, null, null);
- PropagationReporter propReporter =
- ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propReporter.onPrimaryResourceFailure(tasks);
- }
+ provisioningManager.confirmPasswordReset(user, token, password);
}
@PreAuthorize("isAuthenticated() "
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/resources/camelRoute.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/camelRoute.xml b/core/src/main/resources/camelRoute.xml
index c7ac19a..e1ad071 100644
--- a/core/src/main/resources/camelRoute.xml
+++ b/core/src/main/resources/camelRoute.xml
@@ -413,6 +413,43 @@ under the License.
</doTry>
</route>
+ <!--
+ REQUEST PASSWORD RESET ROUTE
+ -->
+
+ <route id="requestPwdReset">
+ <from uri="direct:requestPwdReset"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="requestPasswordReset(${body})"/>
+ <to uri="direct:requestPwdResetPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:requestPwdResetPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ CONFIRM PASSWORD RESET
+ -->
+ <route id="confirmPwdReset">
+ <from uri="direct:confirmPwdReset"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="confirmPasswordReset(${property.userId},${property.token},${property.password})"/>
+ <process ref="defaultUserConfirmPwdResetPropagation" />
+ <to uri="direct:confirmPwdResetPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:confirmPwdResetPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+
</routeContext>
<bean id="defaultUserCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserCreatePropagation"/>
<bean id="defaultUserUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdatePropagation"/>
@@ -422,9 +459,10 @@ under the License.
<bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
<bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
<bean id="defaultUserStatusPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserStatusPropagation"/>
+ <bean id="defaultUserConfirmPwdResetPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserConfirmPwdResetPropagation"/>
<bean id="defaultRoleCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreatePropagation"/>
<bean id="defaultRoleCreateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreateSyncPropagation"/>
<bean id="defaultRoleUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleUpdatePropagation"/>
<bean id="defaultRoleDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeletePropagation"/>
- <bean id="defaultRoleDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeprovisionPropagation"/>
+ <bean id="defaultRoleDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeprovisionPropagation"/>
</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/0da02810/core/src/main/resources/coreContext.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/coreContext.xml b/core/src/main/resources/coreContext.xml
index da55cfc..3950689 100644
--- a/core/src/main/resources/coreContext.xml
+++ b/core/src/main/resources/coreContext.xml
@@ -162,6 +162,7 @@ under the License.
<bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
<bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
<bean id="defaultUserStatusPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserStatusPropagation"/>
+ <bean id="defaultUserConfirmPwdResetPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserConfirmPwdResetPropagation"/>
<bean id="defaultRoleCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreatePropagation"/>
<bean id="defaultRoleCreateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreateSyncPropagation"/>
<bean id="defaultRoleUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleUpdatePropagation"/>
[10/53] [abbrv] syncope git commit: Merge remote-tracking branch
'upstream/master'
Posted by il...@apache.org.
Merge remote-tracking branch 'upstream/master'
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/de130b7f
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/de130b7f
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/de130b7f
Branch: refs/heads/master
Commit: de130b7fcbcb763d5578dbc4ae2aa9788aa53b1f
Parents: 43c9462 4de7c70
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Thu Dec 18 11:17:39 2014 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Thu Dec 18 11:17:39 2014 +0100
----------------------------------------------------------------------
.../syncope/console/pages/ConfModalPage.java | 1 +
.../wicket/markup/html/form/DateFieldPanel.java | 6 +-
.../wicket/markup/html/form/FieldPanel.java | 4 +-
.../syncope/console/ConnInstanceTestITCase.java | 58 ++---
.../files/JBossDeploymentStructureXml.java | 9 +-
.../apache/syncope/installer/files/OrmXml.java | 98 ++++++---
.../syncope/installer/files/ParentPom.java | 212 ++++++++++++++-----
.../files/PersistenceContextEMFactoryXml.java | 14 +-
pom.xml | 6 +-
9 files changed, 280 insertions(+), 128 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/de130b7f/pom.xml
----------------------------------------------------------------------
[18/53] [abbrv] syncope git commit: Code formatting with netbeans
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
index 92b3cfb..d30c624 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
@@ -55,7 +55,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-
public class CamelUserProvisioningManager implements UserProvisioningManager {
private static final Logger LOG = LoggerFactory.getLogger(CamelUserProvisioningManager.class);
@@ -70,7 +69,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
@Autowired
protected RouteDAO routeDAO;
-
+
@Autowired
protected SyncopeCamelContext contextFactory;
@@ -90,7 +89,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
return content.toString();
}
-
+
public void startContext() throws Exception {
getContext().start();
}
@@ -170,15 +169,15 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
return create(userTO, true, false, null, Collections.<String>emptySet());
}
-
-
+
public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, boolean storePassword) {
return create(userTO, storePassword, false, null, Collections.<String>emptySet());
}
@Override
- public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword, boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources) {
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword,
+ boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources) {
String uri = "direct:createPort";
PollingConsumer pollingConsumer = getConsumer(uri);
@@ -209,13 +208,12 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
public Map.Entry<Long, List<PropagationStatus>> update(final UserMod userMod) {
return update(userMod, false);
}
-
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> update(UserMod userMod, boolean removeMemberships) {
String uri = "direct:updatePort";
PollingConsumer pollingConsumer = getConsumer(uri);
-
+
Map<String, Object> props = new HashMap<String, Object>();
props.put("removeMemberships", removeMemberships);
@@ -227,10 +225,9 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
}
- return o.getIn().getBody(Map.Entry.class);
+ return o.getIn().getBody(Map.Entry.class);
}
-
@Override
public List<PropagationStatus> delete(final Long userId) {
@@ -286,7 +283,8 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
if (statusMod.isOnSyncope()) {
sendMessage("direct:activateUser", user.getId(), props);
} else {
- WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
+ WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().
+ toLowerCase());
sendMessage("direct:statusUser", updated, props);
}
@@ -311,7 +309,8 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
if (statusMod.isOnSyncope()) {
sendMessage("direct:reactivateUser", user.getId(), props);
} else {
- WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
+ WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().
+ toLowerCase());
sendMessage("direct:statusUser", updated, props);
}
@@ -337,7 +336,8 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
if (statusMod.isOnSyncope()) {
sendMessage("direct:suspendUser", user.getId(), props);
} else {
- WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
+ WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().
+ toLowerCase());
sendMessage("direct:statusUser", updated, props);
}
@@ -389,7 +389,8 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
- public Map.Entry<Long, List<PropagationStatus>> updateInSync(UserMod userMod, Long id, SyncResult result, Boolean enabled, Set<String> excludedResources) {
+ public Map.Entry<Long, List<PropagationStatus>> updateInSync(UserMod userMod, Long id, SyncResult result,
+ Boolean enabled, Set<String> excludedResources) {
String uri = "direct:updateSyncPort";
PollingConsumer pollingConsumer = getConsumer(uri);
@@ -456,7 +457,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
public void confirmPasswordReset(SyncopeUser user, final String token, final String password) {
String uri = "direct:confirmPwdResetPort";
PollingConsumer pollingConsumer = getConsumer(uri);
-
+
Map<String, Object> props = new HashMap<String, Object>();
props.put("user", user);
props.put("userId", user.getId());
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
index 6381649..c529dcf 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel;
import java.io.ByteArrayInputStream;
@@ -44,38 +43,39 @@ import org.springframework.stereotype.Component;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
-
@Component
-public class SyncopeCamelContext{
+public class SyncopeCamelContext {
private static final Logger LOG = LoggerFactory.getLogger(SyncopeCamelContext.class);
- private CamelContext camelContext = null;
-
- public SyncopeCamelContext() {
+ private CamelContext camelContext = null;
+
+ public SyncopeCamelContext() {
}
-
- public CamelContext getContext(RouteDAO routeDAO){
- if(camelContext == null) camelContext = new SpringCamelContext(ApplicationContextProvider.getApplicationContext());
- if(camelContext.getRouteDefinitions().isEmpty()){
-
+ public CamelContext getContext(RouteDAO routeDAO) {
+
+ if (camelContext == null) {
+ camelContext = new SpringCamelContext(ApplicationContextProvider.getApplicationContext());
+ }
+ if (camelContext.getRouteDefinitions().isEmpty()) {
+
List<CamelRoute> crl = routeDAO.findAll();
- LOG.info("{} route(s) are going to be loaded ", crl.size());
+ LOG.info("{} route(s) are going to be loaded ", crl.size());
loadContext(routeDAO, crl);
-
+
try {
camelContext.start();
} catch (Exception ex) {
LOG.error("Error during staring camel context {}", ex);
}
}
-
+
return camelContext;
}
-
- public void loadContext(RouteDAO routeDAO, List<CamelRoute> crl){
-
+
+ public void loadContext(RouteDAO routeDAO, List<CamelRoute> crl) {
+
try {
DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
JAXBContext jaxbContext = JAXBContext.newInstance(Constants.JAXB_CONTEXT_PACKAGES);
@@ -84,7 +84,8 @@ public class SyncopeCamelContext{
for (int s = 0; s < crl.size(); s++) {
- InputStream is = new ByteArrayInputStream( URLDecoder.decode(crl.get(s).getRouteContent(), "UTF-8").getBytes());
+ InputStream is = new ByteArrayInputStream(URLDecoder.decode(crl.get(s).getRouteContent(), "UTF-8").
+ getBytes());
Document doc = dBuilder.parse(is);
doc.getDocumentElement().normalize();
Node routeEl = doc.getElementsByTagName("route").item(0);
@@ -96,42 +97,44 @@ public class SyncopeCamelContext{
} catch (Exception ex) {
LOG.error("Error during loading camel context {}", ex);
}
-
+
}
-
- public void reloadContext(RouteDAO routeDAO){
-
+
+ public void reloadContext(RouteDAO routeDAO) {
+
List<CamelRoute> crl = routeDAO.findAll();
- if(camelContext == null) getContext(routeDAO);
- else {
- if( ! camelContext.getRouteDefinitions().isEmpty()){
- for (Iterator<RouteDefinition> it = camelContext.getRouteDefinitions().iterator(); it.hasNext(); ) {
+ if (camelContext == null) {
+ getContext(routeDAO);
+ } else {
+ if (!camelContext.getRouteDefinitions().isEmpty()) {
+ for (Iterator<RouteDefinition> it = camelContext.getRouteDefinitions().iterator(); it.hasNext();) {
RouteDefinition ard = it.next();
- it.remove();
- }
+ it.remove();
+ }
}
loadContext(routeDAO, crl);
}
}
-
- public void reloadContext(RouteDAO routeDAO, Long routeId){
-
- if(camelContext == null) getContext(routeDAO);
- else {
- if( ! camelContext.getRouteDefinitions().isEmpty()){
-
+
+ public void reloadContext(RouteDAO routeDAO, Long routeId) {
+
+ if (camelContext == null) {
+ getContext(routeDAO);
+ } else {
+ if (!camelContext.getRouteDefinitions().isEmpty()) {
+
camelContext.getRouteDefinitions().remove(routeId.intValue());
List<CamelRoute> crl = new ArrayList<CamelRoute>();
crl.add(routeDAO.find(routeId));
loadContext(routeDAO, crl);
}
-
+
}
-
+
}
-
- public List<RouteDefinition> getDefinitions(){
+
+ public List<RouteDefinition> getDefinitions() {
return camelContext.getRouteDefinitions();
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
index 2c34090..2af3d37 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.AbstractMap;
@@ -41,22 +40,23 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultRoleCreatePropagation implements Processor{
+public class DefaultRoleCreatePropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleCreatePropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
@Override
- public void process(Exchange exchange){
-
+ public void process(Exchange exchange) {
+
WorkflowResult<Long> created = (WorkflowResult) exchange.getIn().getBody();
RoleTO subject = exchange.getProperty("subject", RoleTO.class);
- Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
-
+ Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
+
EntitlementUtil.extendAuthContext(created.getResult());
List<PropagationTask> tasks = propagationManager.getRoleCreateTaskIds(created, subject.getVirAttrs());
@@ -68,11 +68,11 @@ public class DefaultRoleCreatePropagation implements Processor{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
+
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
created.getResult(), propagationReporter.getStatuses());
-
+
exchange.getOut().setBody(result);
}
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
index c216c41..d796d6d 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
@@ -2,23 +2,22 @@ package org.apache.syncope.core.provisioning.camel.processors;
/*
* Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
+ * 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
+ * with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * 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
+ * KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
-
import java.util.AbstractMap;
import java.util.Collections;
import java.util.List;
@@ -41,25 +40,25 @@ import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Component
-public class DefaultRoleCreateSyncPropagation implements Processor{
+public class DefaultRoleCreateSyncPropagation implements Processor {
-
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleCreateSyncPropagation.class);
-
+
@Override
- public void process(Exchange exchange){
-
+ public void process(Exchange exchange) {
+
WorkflowResult<Long> created = (WorkflowResult) exchange.getIn().getBody();
-
+
RoleTO actual = exchange.getProperty("subject", RoleTO.class);
Map<Long, String> roleOwnerMap = exchange.getProperty("roleOwnerMap", Map.class);
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
-
+
AttributeTO roleOwner = actual.getAttrMap().get(StringUtils.EMPTY);
if (roleOwner != null) {
@@ -72,10 +71,10 @@ public class DefaultRoleCreateSyncPropagation implements Processor{
actual.getVirAttrs(), excludedResource);
taskExecutor.execute(tasks);
-
+
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
created.getResult(), Collections.<PropagationStatus>emptyList());
-
+
exchange.getOut().setBody(result);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
index 6523b76..1c00131 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.ArrayList;
@@ -40,25 +39,30 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultRoleDeletePropagation implements Processor{
+public class DefaultRoleDeletePropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleDeletePropagation.class);
+
@Autowired
protected RoleWorkflowAdapter rwfAdapter;
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
- protected PropagationTaskExecutor taskExecutor;
+ protected PropagationTaskExecutor taskExecutor;
+
@Autowired
protected RoleDAO roleDAO;
+
@Autowired
protected RoleDataBinder binder;
-
+
@Override
public void process(Exchange exchange) throws Exception {
-
+
Long subjectId = exchange.getIn().getBody(Long.class);
-
+
final List<SyncopeRole> toBeDeprovisioned = new ArrayList<SyncopeRole>();
final SyncopeRole syncopeRole = roleDAO.find(subjectId);
@@ -92,11 +96,9 @@ public class DefaultRoleDeletePropagation implements Processor{
} catch (PropagationException e) {
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
- }
-
+ }
+
exchange.setProperty("statuses", propagationReporter.getStatuses());
}
-
-
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
index 77e9e73..a7c35fb 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.HashSet;
@@ -38,29 +37,32 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultRoleDeprovisionPropagation implements Processor{
+public class DefaultRoleDeprovisionPropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeprovisionPropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
+
@Autowired
protected RoleDataBinder binder;
-
+
@Override
- public void process(Exchange exchange){
-
+ public void process(Exchange exchange) {
+
Long roleId = exchange.getIn().getBody(Long.class);
List<String> resources = exchange.getProperty("resources", List.class);
-
+
final SyncopeRole role = binder.getRoleFromId(roleId);
-
+
final Set<String> noPropResourceName = role.getResourceNames();
noPropResourceName.removeAll(resources);
-
- final List<PropagationTask> tasks = propagationManager.getRoleDeleteTaskIds(roleId, new HashSet<String>(resources), noPropResourceName);
+
+ final List<PropagationTask> tasks = propagationManager.getRoleDeleteTaskIds(roleId, new HashSet<String>(
+ resources), noPropResourceName);
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
PropagationReporter.class);
try {
@@ -69,8 +71,8 @@ public class DefaultRoleDeprovisionPropagation implements Processor{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
+
exchange.getOut().setBody(propagationReporter.getStatuses());
- }
-
+ }
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
index 30fe08d..90d37dd 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
@@ -40,25 +40,27 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultRoleUpdatePropagation implements Processor{
+public class DefaultRoleUpdatePropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdatePropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
+
@Autowired
protected UserDataBinder binder;
-
+
@Override
- public void process(Exchange exchange){
- WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
- RoleMod subjectMod = exchange.getProperty("subjectMod", RoleMod.class);
+ public void process(Exchange exchange) {
+ WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
+ RoleMod subjectMod = exchange.getProperty("subjectMod", RoleMod.class);
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
-
+
List<PropagationTask> tasks = propagationManager.getRoleUpdateTaskIds(updated,
- subjectMod.getVirAttrsToRemove(), subjectMod.getVirAttrsToUpdate(),excludedResource);
+ subjectMod.getVirAttrsToRemove(), subjectMod.getVirAttrsToUpdate(), excludedResource);
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
PropagationReporter.class);
try {
@@ -67,11 +69,11 @@ public class DefaultRoleUpdatePropagation implements Processor{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
+
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
updated.getResult(), propagationReporter.getStatuses());
-
+
exchange.getOut().setBody(result);
}
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
index 3ffa5b6..f3d9d74 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
@@ -35,17 +35,18 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserConfirmPwdResetPropagation implements Processor{
+public class DefaultUserConfirmPwdResetPropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserConfirmPwdResetPropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
@Override
- public void process(Exchange exchange){
+ public void process(Exchange exchange) {
SyncopeUser user = exchange.getProperty("user", SyncopeUser.class);
List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(user, null, null);
@@ -56,6 +57,6 @@ public class DefaultUserConfirmPwdResetPropagation implements Processor{
} catch (PropagationException e) {
LOG.error("Error propagation primary resource", e);
propReporter.onPrimaryResourceFailure(tasks);
- }
+ }
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
index 3d2b18d..82ba0ab 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.AbstractMap;
@@ -40,24 +39,25 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserCreatePropagation implements Processor{
+public class DefaultUserCreatePropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserCreatePropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
@Override
- public void process(Exchange exchange){
-
- if((exchange.getIn().getBody() instanceof WorkflowResult)){
-
- WorkflowResult<Map.Entry<Long, Boolean>> created = (WorkflowResult) exchange.getIn().getBody();
+ public void process(Exchange exchange) {
+
+ if ((exchange.getIn().getBody() instanceof WorkflowResult)) {
+
+ WorkflowResult<Map.Entry<Long, Boolean>> created = (WorkflowResult) exchange.getIn().getBody();
UserTO actual = exchange.getProperty("actual", UserTO.class);
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
-
+
List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(
created, actual.getPassword(), actual.getVirAttrs(), excludedResource, actual.getMemberships());
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
@@ -68,11 +68,12 @@ public class DefaultUserCreatePropagation implements Processor{
LOG.error("Error propagation primary resource {}", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
- Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(created.getResult().getKey(), propagationReporter.getStatuses());
+
+ Map.Entry<Long, List<PropagationStatus>> result =
+ new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(created.getResult().getKey(),
+ propagationReporter.getStatuses());
exchange.getOut().setBody(result);
- }
+ }
}
-
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
index b8fa699..3f80459 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.List;
@@ -35,28 +34,30 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserDeletePropagation implements Processor{
-
+public class DefaultUserDeletePropagation implements Processor {
+
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeletePropagation.class);
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
@Override
public void process(Exchange exchange) throws Exception {
-
- Long userId = (Long) exchange.getIn().getBody();
+
+ Long userId = (Long) exchange.getIn().getBody();
LOG.info("UserId {} ", userId);
-
- Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
-
+
+ Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
+
// Note here that we can only notify about "delete", not any other
// task defined in workflow process definition: this because this
// information could only be available after uwfAdapter.delete(), which
// will also effectively remove user from db, thus making virtually
// impossible by NotificationManager to fetch required user information
- List<PropagationTask> tasks = propagationManager.getUserDeleteTaskIds(userId,excludedResource);
+ List<PropagationTask> tasks = propagationManager.getUserDeleteTaskIds(userId, excludedResource);
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
getBean(PropagationReporter.class);
@@ -66,8 +67,8 @@ public class DefaultUserDeletePropagation implements Processor{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
+
exchange.setProperty("statuses", propagationReporter.getStatuses());
}
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
index 2d2eba9..a529dea 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
@@ -37,28 +37,30 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserDeprovisionPropagation implements Processor{
+public class DefaultUserDeprovisionPropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeprovisionPropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
+
@Autowired
protected UserDataBinder binder;
-
+
@Override
- public void process(Exchange exchange){
-
+ public void process(Exchange exchange) {
+
Long userId = exchange.getIn().getBody(Long.class);
List<String> resources = exchange.getProperty("resources", List.class);
-
- final SyncopeUser user = binder.getUserFromId(userId);
-
+
+ final SyncopeUser user = binder.getUserFromId(userId);
+
final Set<String> noPropResourceName = user.getResourceNames();
noPropResourceName.removeAll(resources);
-
+
final List<PropagationTask> tasks =
propagationManager.getUserDeleteTaskIds(userId, new HashSet<String>(resources), noPropResourceName);
final PropagationReporter propagationReporter =
@@ -69,8 +71,8 @@ public class DefaultUserDeprovisionPropagation implements Processor{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
+
exchange.getOut().setBody(propagationReporter.getStatuses());
}
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
index 8bbc246..cc167d7 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.AbstractMap;
@@ -42,22 +41,24 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserStatusPropagation implements Processor{
-
+public class DefaultUserStatusPropagation implements Processor {
+
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserStatusPropagation.class);
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
@Override
- public void process(Exchange exchange){
-
+ public void process(Exchange exchange) {
+
WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
-
+
SyncopeUser user = exchange.getProperty("user", SyncopeUser.class);
StatusMod statusMod = exchange.getProperty("statusMod", StatusMod.class);
-
+
Set<String> resourcesToBeExcluded = new HashSet<String>(user.getResourceNames());
resourcesToBeExcluded.removeAll(statusMod.getResourceNames());
@@ -71,8 +72,9 @@ public class DefaultUserStatusPropagation implements Processor{
LOG.error("Error propagation primary resource", e);
propReporter.onPrimaryResourceFailure(tasks);
}
-
- Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult(), propReporter.getStatuses());
- exchange.getOut().setBody(result);
- }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ updated.getResult(), propReporter.getStatuses());
+ exchange.getOut().setBody(result);
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
index 48eb3d9..a931a5b 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.AbstractMap;
@@ -42,39 +41,44 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserUpdateInSyncPropagation implements Processor{
+public class DefaultUserUpdateInSyncPropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdateInSyncPropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
+
@Autowired
protected UserDataBinder binder;
+
@Autowired
protected UserDAO userDAO;
-
+
@Override
- public void process(Exchange exchange){
-
- WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
+ public void process(Exchange exchange) {
+
+ WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
+
+ Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
+
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
+
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated, updated.getResult().getKey().
+ getPassword() != null, excludedResource);
- Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
-
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
- getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
- List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated,updated.getResult().getKey().getPassword() != null,excludedResource);
-
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
-
- Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult().getKey().getId(), propagationReporter.getStatuses());
- exchange.getOut().setBody(result);
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ updated.getResult().getKey().getId(), propagationReporter.getStatuses());
+ exchange.getOut().setBody(result);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
index c8ffe34..a94bea5 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.AbstractMap;
@@ -45,78 +44,81 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserUpdatePropagation implements Processor{
+public class DefaultUserUpdatePropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdatePropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
+
@Autowired
protected UserDataBinder binder;
-
+
@Override
- public void process(Exchange exchange){
-
- WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
- UserMod actual = exchange.getProperty("actual", UserMod.class);
- boolean removeMemberships = exchange.getProperty("removeMemberships", boolean.class);
-
- // SYNCOPE-501: check if there are memberships to be removed with virtual attributes assigned
- /*for (Long membershipId : actual.getMembershipsToRemove()) {
- if (!binder.fillMembershipVirtual(
- null,
- null,
- membershipId,
- Collections.<String>emptySet(),
- Collections.<AttributeMod>emptySet(),
- true).isEmpty()) {
+ public void process(Exchange exchange) {
- removeMemberships = true;
- }
- }*/
-
- List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated);
- if (tasks.isEmpty()) {
- // SYNCOPE-459: take care of user virtual attributes ...
- final PropagationByResource propByResVirAttr = binder.fillVirtual(
+ WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
+ UserMod actual = exchange.getProperty("actual", UserMod.class);
+ boolean removeMemberships = exchange.getProperty("removeMemberships", boolean.class);
+
+ // SYNCOPE-501: check if there are memberships to be removed with virtual attributes assigned
+ /* for (Long membershipId :
+ * actual.getMembershipsToRemove()) {
+ * if (!binder.fillMembershipVirtual(
+ * null,
+ * null,
+ * membershipId,
+ * Collections.<String>emptySet(),
+ * Collections.<AttributeMod>emptySet(),
+ * true).isEmpty()) {
+ *
+ * removeMemberships = true;
+ * }
+ * } */
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated);
+ if (tasks.isEmpty()) {
+ // SYNCOPE-459: take care of user virtual attributes ...
+ final PropagationByResource propByResVirAttr = binder.fillVirtual(
+ updated.getResult().getKey().getId(),
+ actual.getVirAttrsToRemove(),
+ actual.getVirAttrsToUpdate());
+ // SYNCOPE-501: update only virtual attributes (if any of them changed), password propagation is
+ // not required, take care also of membership virtual attributes
+ boolean addOrUpdateMemberships = false;
+ for (MembershipMod membershipMod : actual.getMembershipsToAdd()) {
+ if (!binder.fillMembershipVirtual(
updated.getResult().getKey().getId(),
- actual.getVirAttrsToRemove(),
- actual.getVirAttrsToUpdate());
- // SYNCOPE-501: update only virtual attributes (if any of them changed), password propagation is
- // not required, take care also of membership virtual attributes
- boolean addOrUpdateMemberships = false;
- for (MembershipMod membershipMod : actual.getMembershipsToAdd()) {
- if (!binder.fillMembershipVirtual(
- updated.getResult().getKey().getId(),
- membershipMod.getRole(),
- null,
- membershipMod.getVirAttrsToRemove(),
- membershipMod.getVirAttrsToUpdate(),
- false).isEmpty()) {
+ membershipMod.getRole(),
+ null,
+ membershipMod.getVirAttrsToRemove(),
+ membershipMod.getVirAttrsToUpdate(),
+ false).isEmpty()) {
- addOrUpdateMemberships = true;
- }
+ addOrUpdateMemberships = true;
}
- tasks.addAll(!propByResVirAttr.isEmpty() || addOrUpdateMemberships || removeMemberships
- ? propagationManager.getUserUpdateTaskIds(updated, false, null)
- : Collections.<PropagationTask>emptyList());
}
+ tasks.addAll(!propByResVirAttr.isEmpty() || addOrUpdateMemberships || removeMemberships
+ ? propagationManager.getUserUpdateTaskIds(updated, false, null)
+ : Collections.<PropagationTask>emptyList());
+ }
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
- getBean(PropagationReporter.class);
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
- if (!tasks.isEmpty()) {
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
+ if (!tasks.isEmpty()) {
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
}
-
- Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult().getKey().getId(), propagationReporter.getStatuses());
- exchange.getOut().setBody(result);
+ }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ updated.getResult().getKey().getId(), propagationReporter.getStatuses());
+ exchange.getOut().setBody(result);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
index e20c84e..88cd160 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.AbstractMap.SimpleEntry;
@@ -35,19 +34,20 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserWFSuspendPropagation implements Processor{
+public class DefaultUserWFSuspendPropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserWFSuspendPropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
@Override
- public void process(Exchange exchange){
-
- WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
+ public void process(Exchange exchange) {
+
+ WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
Boolean suspend = exchange.getProperty("suspend", Boolean.class);
if (suspend) {
@@ -62,5 +62,5 @@ public class DefaultUserWFSuspendPropagation implements Processor{
taskExecutor.execute(tasks);
}
}
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
index b2acdfb..7cb7dfa 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.Map;
@@ -33,42 +32,43 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class UserStatusOnSync implements Processor{
-
+public class UserStatusOnSync implements Processor {
+
private static final Logger LOG = LoggerFactory.getLogger(UserStatusOnSync.class);
-
+
@Autowired
protected UserDAO userDAO;
+
@Autowired
protected UserWorkflowAdapter uwfAdapter;
-
+
@Override
- public void process(Exchange exchange){
-
- WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
-
+ public void process(Exchange exchange) {
+
+ WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
+
Boolean enabled = exchange.getProperty("enabled", Boolean.class);
Long id = exchange.getProperty("id", Long.class);
-
+
if (enabled != null) {
- SyncopeUser user = userDAO.find(id);
+ SyncopeUser user = userDAO.find(id);
- WorkflowResult<Long> enableUpdate = null;
- if (user.isSuspended() == null) {
- enableUpdate = uwfAdapter.activate(id, null);
- } else if (enabled && user.isSuspended()) {
- enableUpdate = uwfAdapter.reactivate(id);
- } else if (!enabled && !user.isSuspended()) {
- enableUpdate = uwfAdapter.suspend(id);
- }
+ WorkflowResult<Long> enableUpdate = null;
+ if (user.isSuspended() == null) {
+ enableUpdate = uwfAdapter.activate(id, null);
+ } else if (enabled && user.isSuspended()) {
+ enableUpdate = uwfAdapter.reactivate(id);
+ } else if (!enabled && !user.isSuspended()) {
+ enableUpdate = uwfAdapter.suspend(id);
+ }
- if (enableUpdate != null) {
- if (enableUpdate.getPropByRes() != null) {
- updated.getPropByRes().merge(enableUpdate.getPropByRes());
- updated.getPropByRes().purge();
- }
- updated.getPerformedTasks().addAll(enableUpdate.getPerformedTasks());
- }
- }
+ if (enableUpdate != null) {
+ if (enableUpdate.getPropByRes() != null) {
+ updated.getPropByRes().merge(enableUpdate.getPropByRes());
+ updated.getPropByRes().purge();
+ }
+ updated.getPerformedTasks().addAll(enableUpdate.getPerformedTasks());
+ }
+ }
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/quartz/package-info.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/quartz/package-info.java b/core/src/main/java/org/apache/syncope/core/quartz/package-info.java
index 9447e7d..e2121f2 100644
--- a/core/src/main/java/org/apache/syncope/core/quartz/package-info.java
+++ b/core/src/main/java/org/apache/syncope/core/quartz/package-info.java
@@ -17,4 +17,3 @@
* under the License.
*/
package org.apache.syncope.core.quartz;
-
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/report/ReportletConfClass.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/report/ReportletConfClass.java b/core/src/main/java/org/apache/syncope/core/report/ReportletConfClass.java
index 146b23d..e22fa92 100644
--- a/core/src/main/java/org/apache/syncope/core/report/ReportletConfClass.java
+++ b/core/src/main/java/org/apache/syncope/core/report/ReportletConfClass.java
@@ -25,7 +25,7 @@ import java.lang.annotation.Target;
import org.apache.syncope.common.report.ReportletConf;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface ReportletConfClass {
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/report/cocoon/TextSerializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/report/cocoon/TextSerializer.java b/core/src/main/java/org/apache/syncope/core/report/cocoon/TextSerializer.java
index 992df5f..d6e5e4c 100644
--- a/core/src/main/java/org/apache/syncope/core/report/cocoon/TextSerializer.java
+++ b/core/src/main/java/org/apache/syncope/core/report/cocoon/TextSerializer.java
@@ -98,4 +98,4 @@ public class TextSerializer extends XMLSerializer {
serializer.setMethod(TXT);
return serializer;
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java
index a4e53b8..b02bef8 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java
@@ -217,7 +217,7 @@ public class LoggerController extends AbstractTransactionalController<LoggerTO>
final String packageSearchPath =
ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
+ ClassUtils.convertClassNameToResourcePath(
- SystemPropertyUtils.resolvePlaceholders(this.getClass().getPackage().getName()))
+ SystemPropertyUtils.resolvePlaceholders(this.getClass().getPackage().getName()))
+ "/" + "**/*.class";
final Resource[] resources = resourcePatternResolver.getResources(packageSearchPath);
@@ -239,7 +239,7 @@ public class LoggerController extends AbstractTransactionalController<LoggerTO>
}
}
}
-
+
//SYNCOPE-608
final EventCategoryTO authenticationControllerEvents = new EventCategoryTO();
authenticationControllerEvents.setCategory("AuthenticationController");
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
index 701dc5b..3a0f9d6 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
@@ -95,7 +95,7 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
@Resource(name = "anonymousUser")
private String anonymousUser;
-
+
@Resource(name = "roleProvisioningManager")
protected RoleProvisioningManager provisioningManager;
@@ -259,7 +259,7 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
LOG.debug("Transformed: {}", actual);
Map.Entry<Long, List<PropagationStatus>> updated = provisioningManager.update(roleMod);
-
+
final RoleTO updatedTO = binder.getRoleTO(updated.getKey());
updatedTO.getPropagationStatusTOs().addAll(updated.getValue());
return updatedTO;
@@ -281,7 +281,7 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
}
List<PropagationStatus> statuses = provisioningManager.delete(roleId);
-
+
RoleTO roleTO = new RoleTO();
roleTO.setId(roleId);
@@ -318,7 +318,7 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
roleMod.setId(roleId);
roleMod.getResourcesToRemove().addAll(resources);
final Long updatedResult = provisioningManager.unlink(roleMod);
-
+
return binder.getRoleTO(updatedResult);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/controller/RouteController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/RouteController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/RouteController.java
index 117d10f..f905f2c 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/RouteController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/RouteController.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.rest.controller;
import java.lang.reflect.Method;
@@ -36,57 +35,58 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@Component
-public class RouteController extends AbstractTransactionalController<RouteTO>{
-
+public class RouteController extends AbstractTransactionalController<RouteTO> {
+
private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(RouteDataBinder.class);
-
+
@Autowired
private RouteDAO routeDao;
-
+
@Autowired
private RouteDataBinder binder;
-
+
@Autowired
private SyncopeCamelContext context;
-
-
+
@PreAuthorize("hasRole('ROUTE_LIST')")
@Transactional(readOnly = true)
- public List<RouteTO> listRoutes(){
+ public List<RouteTO> listRoutes() {
List<RouteTO> routes = new ArrayList<RouteTO>();
Iterator it = routeDao.findAll().iterator();
- while(it.hasNext()){
+ while (it.hasNext()) {
routes.add(binder.getRouteTO((CamelRoute) it.next()));
}
return routes;
}
-
+
@PreAuthorize("hasRole('ROUTE_READ')")
@Transactional(readOnly = true)
- public RouteTO readRoute(Long id){
+ public RouteTO readRoute(Long id) {
CamelRoute route = routeDao.find(id);
- if (route==null)
- throw new NotFoundException("Route with id="+id);
-
+ if (route == null) {
+ throw new NotFoundException("Route with id=" + id);
+ }
+
return binder.getRouteTO(route);
}
-
+
@PreAuthorize("hasRole('ROUTE_UPDATE')")
- public void updateRoute(RouteTO routeTO){
+ public void updateRoute(RouteTO routeTO) {
CamelRoute route = routeDao.find(routeTO.getId());
- if (route==null)
- throw new NotFoundException("Route with id="+route.getId());
+ if (route == null) {
+ throw new NotFoundException("Route with id=" + route.getId());
+ }
route.setRouteContent(routeTO.getRouteContent());
- routeDao.save(route);
+ routeDao.save(route);
LOG.info("UPDATING ROUTE WITH ID {} ", routeTO.getId());
LOG.info("NEW ROUTE CONTENT {} ", routeTO.getRouteContent());
context.reloadContext(routeDao, routeTO.getId());
- }
-
+ }
+
@Override
protected RouteTO resolveReference(Method method, Object... args) throws UnresolvedReferenceException {
throw new UnresolvedReferenceException();
}
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
index 0a30a86..0607a5f 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
@@ -96,7 +96,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
@Autowired
protected AttributableTransformer attrTransformer;
-
+
@Resource(name = "userProvisioningManager")
protected UserProvisioningManager provisioningManager;
@@ -212,8 +212,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
UserTO actual = attrTransformer.transform(userTO);
LOG.debug("Transformed: {}", actual);
- Map.Entry<Long, List<PropagationStatus>>
- created = provisioningManager.create(actual,storePassword);
+ Map.Entry<Long, List<PropagationStatus>> created = provisioningManager.create(actual, storePassword);
final UserTO savedTO = binder.getUserTO(created.getKey());
savedTO.getPropagationStatusTOs().addAll(created.getValue());
@@ -238,7 +237,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
// AttributableMod transformation (if configured)
UserMod actual = attrTransformer.transform(userMod);
LOG.debug("Transformed: {}", actual);
-
+
//CAMEL
// SYNCOPE-501: check if there are memberships to be removed with virtual attributes assigned
boolean removeMemberships = false;
@@ -254,15 +253,16 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
removeMemberships = true;
}
}
-
- Map.Entry<Long, List<PropagationStatus>> updated = provisioningManager.update(actual,removeMemberships);
+
+ Map.Entry<Long, List<PropagationStatus>> updated = provisioningManager.update(actual, removeMemberships);
final UserTO updatedTO = binder.getUserTO(updated.getKey());
updatedTO.getPropagationStatusTOs().addAll(updated.getValue());
return updatedTO;
}
- protected Map.Entry<Long, List<PropagationStatus>> setStatusOnWfAdapter(final SyncopeUser user, final StatusMod statusMod) {
+ protected Map.Entry<Long, List<PropagationStatus>> setStatusOnWfAdapter(final SyncopeUser user,
+ final StatusMod statusMod) {
Map.Entry<Long, List<PropagationStatus>> updated;
switch (statusMod.getType()) {
@@ -289,8 +289,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
public UserTO status(final StatusMod statusMod) {
SyncopeUser user = binder.getUserFromId(statusMod.getId());
- Map.Entry<Long, List<PropagationStatus>>
- updated = setStatusOnWfAdapter(user, statusMod);
+ Map.Entry<Long, List<PropagationStatus>> updated = setStatusOnWfAdapter(user, statusMod);
final UserTO savedTO = binder.getUserTO(updated.getKey());
savedTO.getPropagationStatusTOs().addAll(updated.getValue());
return savedTO;
@@ -477,8 +476,8 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
@Transactional(rollbackFor = { Throwable.class })
@Override
public UserTO deprovision(final Long userId, final Collection<String> resources) {
- final SyncopeUser user = binder.getUserFromId(userId);
-
+ final SyncopeUser user = binder.getUserFromId(userId);
+
List<PropagationStatus> statuses = provisioningManager.deprovision(userId, resources);
final UserTO updatedUserTO = binder.getUserTO(user);
@@ -535,18 +534,18 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
throw new UnresolvedReferenceException();
}
-
- public PrintStream getDefinition() throws FileNotFoundException{
- /*String result = "";
- if(provisioningManager instanceof CamelUserProvisioningManager){
- List l = ((CamelUserProvisioningManager)provisioningManager).getRoutes();
- Iterator<CamelRoute> it = l.iterator();
-
- while(it.hasNext()){
- result += it.next().getRouteContent();
- }
- }
- return new PrintStream(result);*/
+
+ public PrintStream getDefinition() throws FileNotFoundException {
+ /* String result = "";
+ * if(provisioningManager instanceof CamelUserProvisioningManager){
+ * List l = ((CamelUserProvisioningManager)provisioningManager).getRoutes();
+ * Iterator<CamelRoute> it = l.iterator();
+ *
+ * while(it.hasNext()){
+ * result += it.next().getRouteContent();
+ * }
+ * }
+ * return new PrintStream(result); */
return null;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/data/ReportDataBinder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/data/ReportDataBinder.java b/core/src/main/java/org/apache/syncope/core/rest/data/ReportDataBinder.java
index cfcaee4..2d5a433 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/data/ReportDataBinder.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/data/ReportDataBinder.java
@@ -52,9 +52,9 @@ public class ReportDataBinder {
*/
private static final Logger LOG = LoggerFactory.getLogger(ReportDataBinder.class);
- private static final String[] IGNORE_REPORT_PROPERTIES = {"id", "reportlets", "executions"};
+ private static final String[] IGNORE_REPORT_PROPERTIES = { "id", "reportlets", "executions" };
- private static final String[] IGNORE_REPORT_EXECUTION_PROPERTIES = {"id", "report", "execResult"};
+ private static final String[] IGNORE_REPORT_EXECUTION_PROPERTIES = { "id", "report", "execResult" };
@Autowired
private ReportExecDAO reportExecDAO;
@@ -65,7 +65,7 @@ public class ReportDataBinder {
@Autowired
private ImplementationClassNamesLoader classNamesLoader;
- @SuppressWarnings({"unchecked", "rawtypes"})
+ @SuppressWarnings({ "unchecked", "rawtypes" })
public Set<Class<Reportlet>> getAllReportletClasses() {
Set<Class<Reportlet>> reportletClasses = new HashSet<Class<Reportlet>>();
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/data/RouteDataBinder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/data/RouteDataBinder.java b/core/src/main/java/org/apache/syncope/core/rest/data/RouteDataBinder.java
index c1016e6..824bd52 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/data/RouteDataBinder.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/data/RouteDataBinder.java
@@ -16,10 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.rest.data;
-
import org.apache.syncope.common.to.RouteTO;
import org.apache.syncope.common.util.BeanUtils;
import org.apache.syncope.core.persistence.beans.CamelRoute;
@@ -28,11 +26,11 @@ import org.springframework.stereotype.Component;
@Component
public class RouteDataBinder {
-
+
private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(RouteDataBinder.class);
-
- public RouteTO getRouteTO(CamelRoute route){
-
+
+ public RouteTO getRouteTO(CamelRoute route) {
+
RouteTO routeTO = new RouteTO();
BeanUtils.copyProperties(route, routeTO);
return routeTO;
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/utils/QueryResourceInfoComparator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/utils/QueryResourceInfoComparator.java b/core/src/main/java/org/apache/syncope/core/rest/utils/QueryResourceInfoComparator.java
index bcc015d..e625533 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/utils/QueryResourceInfoComparator.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/utils/QueryResourceInfoComparator.java
@@ -55,8 +55,8 @@ public class QueryResourceInfoComparator extends OperationResourceInfoComparator
return op1Counter == op2Counter
? 0
: op1Counter < op2Counter
- ? 1
- : -1;
+ ? 1
+ : -1;
}
/**
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/utils/RestServiceExceptionMapper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/utils/RestServiceExceptionMapper.java b/core/src/main/java/org/apache/syncope/core/rest/utils/RestServiceExceptionMapper.java
index e8f0e67..f3a9edf 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/utils/RestServiceExceptionMapper.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/utils/RestServiceExceptionMapper.java
@@ -202,8 +202,8 @@ public class RestServiceExceptionMapper implements ExceptionMapper<Exception>, R
if (iee != null) {
ClientExceptionType exType =
iee.getEntityClassSimpleName().endsWith("Policy")
- ? ClientExceptionType.InvalidPolicy
- : ClientExceptionType.valueOf("Invalid" + iee.getEntityClassSimpleName());
+ ? ClientExceptionType.InvalidPolicy
+ : ClientExceptionType.valueOf("Invalid" + iee.getEntityClassSimpleName());
ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
builder.header(RESTHeaders.ERROR_CODE, exType.getHeaderValue());
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/security/AsymmetricCipher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/security/AsymmetricCipher.java b/core/src/main/java/org/apache/syncope/core/security/AsymmetricCipher.java
index 5c95114..b0a6c8e 100644
--- a/core/src/main/java/org/apache/syncope/core/security/AsymmetricCipher.java
+++ b/core/src/main/java/org/apache/syncope/core/security/AsymmetricCipher.java
@@ -35,6 +35,7 @@ import javax.crypto.Cipher;
public class AsymmetricCipher {
final private static String xform = "RSA/NONE/PKCS1Padding";
+
final private static String algorithm = "RSA";
public static byte[] encrypt(byte[] inpBytes, PublicKey key) throws Exception {
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java b/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java
index 4d5c09f..3c1b6fa 100644
--- a/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java
@@ -70,7 +70,7 @@ public class ConnectorServiceImpl extends AbstractServiceImpl implements Connect
final boolean includeSpecial) {
connInstanceTO.setId(connInstanceId);
-
+
List<String> schemaNames = controller.getSchemaNames(connInstanceTO, includeSpecial);
List<SchemaTO> result = new ArrayList<SchemaTO>(schemaNames.size());
for (String name : schemaNames) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java b/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java
index 2fc947c..020414d 100644
--- a/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java
@@ -96,7 +96,7 @@ public class PolicyServiceImpl extends AbstractServiceImpl implements PolicyServ
@Override
public <T extends AbstractPolicyTO> void update(final Long policyId, final T policyTO) {
policyTO.setId(policyId);
-
+
switch (policyTO.getType()) {
case ACCOUNT:
case GLOBAL_ACCOUNT:
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java b/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
index 1c44765..ecc323e 100644
--- a/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.services;
import java.util.List;
@@ -27,20 +26,20 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
-public class RouteServiceImpl extends AbstractServiceImpl implements RouteService{
+public class RouteServiceImpl extends AbstractServiceImpl implements RouteService {
@Autowired
private RouteController controller;
-
+
@Override
public List<RouteTO> getRoutes() {
-
- return controller.listRoutes();
+
+ return controller.listRoutes();
}
-
+
@Override
- public RouteTO getRoute(Long id){
-
+ public RouteTO getRoute(Long id) {
+
return controller.readRoute(id);
}
@@ -48,5 +47,5 @@ public class RouteServiceImpl extends AbstractServiceImpl implements RouteServic
public void importRoute(Long id, RouteTO route) {
controller.updateRoute(route);
}
-
-}
\ No newline at end of file
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java b/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
index fa88e7c..7ab3691 100644
--- a/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
@@ -61,8 +61,8 @@ public class WorkflowServiceImpl extends AbstractServiceImpl implements Workflow
public Response exportDefinition(final SubjectType kind) {
final MediaType accept =
messageContext.getHttpHeaders().getAcceptableMediaTypes().contains(MediaType.APPLICATION_JSON_TYPE)
- ? MediaType.APPLICATION_JSON_TYPE
- : MediaType.APPLICATION_XML_TYPE;
+ ? MediaType.APPLICATION_JSON_TYPE
+ : MediaType.APPLICATION_XML_TYPE;
StreamingOutput sout = new StreamingOutput() {
@@ -104,8 +104,8 @@ public class WorkflowServiceImpl extends AbstractServiceImpl implements Workflow
public void importDefinition(final SubjectType kind, final String definition) {
final MediaType contentType =
messageContext.getHttpHeaders().getMediaType().equals(MediaType.APPLICATION_JSON_TYPE)
- ? MediaType.APPLICATION_JSON_TYPE
- : MediaType.APPLICATION_XML_TYPE;
+ ? MediaType.APPLICATION_JSON_TYPE
+ : MediaType.APPLICATION_XML_TYPE;
if (kind == SubjectType.USER) {
controller.importUserDefinition(contentType, definition);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/SyncActions.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/SyncActions.java b/core/src/main/java/org/apache/syncope/core/sync/SyncActions.java
index 42548d1..0a809be 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/SyncActions.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/SyncActions.java
@@ -162,7 +162,8 @@ public interface SyncActions extends AbstractSyncActions<AbstractSyncopeResultHa
* Action to be executed after each local user / role synchronization.
*
* @param profile profile of the synchronization being executed.
- * @param delta retrieved synchronization information (may be modified by 'beforeProvision/beforeUpdate/beforeDelete')
+ * @param delta retrieved synchronization information (may be modified by
+ * 'beforeProvision/beforeUpdate/beforeDelete')
* @param subject synchronized local user / role
* @param result global synchronization results at the current synchronization step
* @throws JobExecutionException in case of generic failure
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/SyncResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/SyncResult.java b/core/src/main/java/org/apache/syncope/core/sync/SyncResult.java
index 5ebca8a..7f1986a 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/SyncResult.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/SyncResult.java
@@ -28,9 +28,12 @@ import org.apache.syncope.common.types.ResourceOperation;
import org.apache.syncope.common.types.TraceLevel;
public class SyncResult {
+
public enum Status {
+
SUCCESS,
FAILURE
+
}
private String message;
@@ -115,8 +118,8 @@ public class SyncResult {
// All
return String.format("%s %s (id/name): %d/%s %s", operation, status, id, name,
StringUtils.isBlank(message)
- ? ""
- : "with message: " + message);
+ ? ""
+ : "with message: " + message);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSubjectPushResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSubjectPushResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSubjectPushResultHandler.java
index f8cb658..7036ab7 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSubjectPushResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSubjectPushResultHandler.java
@@ -114,7 +114,6 @@ public abstract class AbstractSubjectPushResultHandler extends AbstractSyncopeRe
String operation = null;
// Try to read remote object (user / group) BEFORE any actual operation
-
final String accountId = MappingUtil.getAccountIdValue(
subject, profile.getSyncTask().getResource(), getMapping().getAccountIdItem());
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncJob.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncJob.java b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncJob.java
index cabeb4f..26ff30b 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncJob.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncJob.java
@@ -316,7 +316,7 @@ public abstract class AbstractSyncJob<T extends AbstractSyncTask, A extends Abst
} catch (Exception e) {
final String msg = String.
format("Connector instance bean for resource %s and connInstance %s not found",
- syncTask.getResource(), syncTask.getResource().getConnector());
+ syncTask.getResource(), syncTask.getResource().getConnector());
throw new JobExecutionException(msg, e);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
index 78ada92..0c27004 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
@@ -43,7 +43,7 @@ public abstract class AbstractSyncopeResultHandler<T extends AbstractSyncTask, A
* Logger.
*/
protected static final Logger LOG = LoggerFactory.getLogger(AbstractSyncopeResultHandler.class);
-
+
/**
* User data binder.
*/
@@ -102,10 +102,10 @@ public abstract class AbstractSyncopeResultHandler<T extends AbstractSyncTask, A
* Sync profile.
*/
protected SyncProfile<T, A> profile;
-
+
@Resource(name = "userProvisioningManager")
protected UserProvisioningManager userProvisioningManager;
-
+
@Resource(name = "roleProvisioningManager")
protected RoleProvisioningManager roleProvisioningManager;
[13/53] [abbrv] syncope git commit: Fixes #3 - Provisioning manager
properties file added
Posted by il...@apache.org.
Fixes #3 - Provisioning manager properties file added
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/8b161393
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/8b161393
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/8b161393
Branch: refs/heads/2_0_X
Commit: 8b1613934d47bd9db5276d08755f9111fd5a6a6c
Parents: efe6c5e
Author: giacomolm <gi...@hotmail.it>
Authored: Mon Dec 22 17:01:49 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Mon Dec 22 17:01:49 2014 +0100
----------------------------------------------------------------------
.../DefaultRoleCreatePropagation.java | 2 ++
.../DefaultRoleCreateSyncPropagation.java | 2 ++
.../DefaultRoleDeletePropagation.java | 2 ++
.../DefaultRoleDeprovisionPropagation.java | 2 ++
.../DefaultRoleUpdatePropagation.java | 2 ++
.../DefaultUserConfirmPwdResetPropagation.java | 3 +-
.../DefaultUserCreatePropagation.java | 2 ++
.../DefaultUserDeletePropagation.java | 3 +-
.../DefaultUserDeprovisionPropagation.java | 2 ++
.../DefaultUserStatusPropagation.java | 2 ++
.../DefaultUserUpdateInSyncPropagation.java | 2 ++
.../DefaultUserUpdatePropagation.java | 2 ++
.../DefaultUserWFSuspendPropagation.java | 2 ++
.../camel/processors/UserStatusOnSync.java | 2 ++
.../core/rest/controller/RoleController.java | 2 +-
.../core/rest/controller/UserController.java | 2 +-
.../sync/impl/AbstractSyncopeResultHandler.java | 4 +--
.../core/workflow/WorkflowUserSuspender.java | 2 +-
core/src/main/resources/camelRoute.xml | 4 +--
core/src/main/resources/coreContext.xml | 29 +++++---------------
core/src/main/resources/provisioning.properties | 19 +++++++++++++
21 files changed, 61 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
index a6b40fb..2c34090 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
@@ -38,7 +38,9 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultRoleCreatePropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleCreatePropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
index ea8df72..c216c41 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
@@ -38,7 +38,9 @@ import org.apache.syncope.core.persistence.beans.PropagationTask;
import org.apache.syncope.core.util.EntitlementUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultRoleCreateSyncPropagation implements Processor{
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
index 1d2c20e..6523b76 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
@@ -37,7 +37,9 @@ import org.apache.syncope.core.workflow.role.RoleWorkflowAdapter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultRoleDeletePropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleDeletePropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
index 0f02258..77e9e73 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
@@ -35,7 +35,9 @@ import org.apache.syncope.core.util.ApplicationContextProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultRoleDeprovisionPropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeprovisionPropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
index cc2fcc0..30fe08d 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
@@ -37,7 +37,9 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultRoleUpdatePropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdatePropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
index 2447689..3ffa5b6 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
@@ -32,8 +32,9 @@ import org.apache.syncope.core.util.ApplicationContextProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
-
+@Component
public class DefaultUserConfirmPwdResetPropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserConfirmPwdResetPropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
index c71e3dc..3d2b18d 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
@@ -37,7 +37,9 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultUserCreatePropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserCreatePropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
index 1afef83..b8fa699 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
@@ -32,8 +32,9 @@ import org.apache.syncope.core.util.ApplicationContextProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
-
+@Component
public class DefaultUserDeletePropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeletePropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
index f62e4b6..2d2eba9 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
@@ -34,7 +34,9 @@ import org.apache.syncope.core.util.ApplicationContextProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultUserDeprovisionPropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeprovisionPropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
index 2cf1e6f..8bbc246 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
@@ -39,7 +39,9 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultUserStatusPropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserStatusPropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
index 6fdec75..48eb3d9 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
@@ -39,7 +39,9 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultUserUpdateInSyncPropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdateInSyncPropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
index 880912e..c8ffe34 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
@@ -42,7 +42,9 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultUserUpdatePropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdatePropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
index 2d08b93..e20c84e 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
@@ -32,7 +32,9 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class DefaultUserWFSuspendPropagation implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserWFSuspendPropagation.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
index 7e4c18e..b2acdfb 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
@@ -30,7 +30,9 @@ import org.apache.syncope.core.workflow.user.UserWorkflowAdapter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+@Component
public class UserStatusOnSync implements Processor{
private static final Logger LOG = LoggerFactory.getLogger(UserStatusOnSync.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
index f7a2981..701dc5b 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
@@ -96,7 +96,7 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
@Resource(name = "anonymousUser")
private String anonymousUser;
- @Resource(name = "defaultRoleProvisioningManager")
+ @Resource(name = "roleProvisioningManager")
protected RoleProvisioningManager provisioningManager;
@PreAuthorize("hasAnyRole('ROLE_READ', T(org.apache.syncope.common.SyncopeConstants).ANONYMOUS_ENTITLEMENT)")
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
index 606d46b..0a30a86 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
@@ -97,7 +97,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
@Autowired
protected AttributableTransformer attrTransformer;
- @Resource(name = "defaultUserProvisioningManager")
+ @Resource(name = "userProvisioningManager")
protected UserProvisioningManager provisioningManager;
@Transactional(readOnly = true)
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
index b356e64..78ada92 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
@@ -103,10 +103,10 @@ public abstract class AbstractSyncopeResultHandler<T extends AbstractSyncTask, A
*/
protected SyncProfile<T, A> profile;
- @Resource(name = "defaultUserProvisioningManager")
+ @Resource(name = "userProvisioningManager")
protected UserProvisioningManager userProvisioningManager;
- @Resource(name = "defaultRoleProvisioningManager")
+ @Resource(name = "roleProvisioningManager")
protected RoleProvisioningManager roleProvisioningManager;
public void setProfile(final SyncProfile<T, A> profile) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java b/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java
index ef4a46d..512a240 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java
@@ -40,7 +40,7 @@ public class WorkflowUserSuspender implements UserSuspender {
private static final Logger LOG = LoggerFactory.getLogger(WorkflowUserSuspender.class);
- @Resource(name = "defaultUserProvisioningManager")
+ @Resource(name = "userProvisioningManager")
protected UserProvisioningManager provisioningManager;
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/resources/camelRoute.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/camelRoute.xml b/core/src/main/resources/camelRoute.xml
index 260f01c..7cebf73 100644
--- a/core/src/main/resources/camelRoute.xml
+++ b/core/src/main/resources/camelRoute.xml
@@ -111,7 +111,7 @@ under the License.
<route id="syncUserStatus">
<from uri="direct:syncUserStatus"/>
<process ref="userStatusOnSync" />
- <process ref="defaultUserUpdateSyncPropagation" />
+ <process ref="defaultUserUpdateInSyncPropagation" />
<to uri="direct:updateSyncPort"/>
</route>
<!--
@@ -454,7 +454,7 @@ under the License.
<bean id="defaultUserCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserCreatePropagation"/>
<bean id="defaultUserUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdatePropagation"/>
<bean id="userStatusOnSync" class="org.apache.syncope.core.provisioning.camel.processors.UserStatusOnSync"/>
- <bean id="defaultUserUpdateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdateInSyncPropagation"/>
+ <bean id="defaultUserUpdateInSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdateInSyncPropagation"/>
<bean id="defaultUserDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeletePropagation"/>
<bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
<bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/resources/coreContext.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/coreContext.xml b/core/src/main/resources/coreContext.xml
index e39ceed..5aa2aeb 100644
--- a/core/src/main/resources/coreContext.xml
+++ b/core/src/main/resources/coreContext.xml
@@ -43,6 +43,7 @@ under the License.
<value>file:${conf.directory}/connid.properties</value>
<value>file:${conf.directory}/workflow.properties</value>
<value>file:${conf.directory}/mail.properties</value>
+ <value>file:${conf.directory}/provisioning.properties</value>
</list>
</property>
</bean>
@@ -55,6 +56,7 @@ under the License.
<value>classpath:connid.properties</value>
<value>classpath:workflow.properties</value>
<value>classpath:mail.properties</value>
+ <value>classpath:provisioning.properties</value>
</list>
</property>
</bean>
@@ -75,9 +77,7 @@ under the License.
<context:component-scan base-package="org.apache.syncope.core.workflow">
<context:exclude-filter type="regex" expression=".*\.activiti\..*"/>
</context:component-scan>
-
- <bean id="defaultUserProvisioningManager" class="org.apache.syncope.core.provisioning.DefaultUserProvisioningManager"/>
- <bean id="defaultRoleProvisioningManager" class="org.apache.syncope.core.provisioning.DefaultRoleProvisioningManager"/>
+ <context:component-scan base-package="org.apache.syncope.core.provisioning"/>
<bean id="nonJPAdbInitializer" class="org.springframework.jdbc.datasource.init.DataSourceInitializer">
<property name="dataSource" ref="dataSource"/>
@@ -151,23 +151,8 @@ under the License.
<constructor-arg value="60"/>
<constructor-arg value="5000"/>
</bean>
- <!-- Camel Context Definition -->
- <bean id="syncopeCamelContextFactory" class="org.apache.syncope.core.provisioning.camel.SyncopeCamelContext"/>
-
- <bean id="defaultUserCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserCreatePropagation"/>
- <bean id="defaultUserUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdatePropagation"/>
- <bean id="userStatusOnSync" class="org.apache.syncope.core.provisioning.camel.processors.UserStatusOnSync"/>
- <bean id="defaultUserUpdateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdateInSyncPropagation"/>
- <bean id="defaultUserDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeletePropagation"/>
- <bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
- <bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
- <bean id="defaultUserStatusPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserStatusPropagation"/>
- <bean id="defaultUserConfirmPwdResetPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserConfirmPwdResetPropagation"/>
- <bean id="defaultRoleCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreatePropagation"/>
- <bean id="defaultRoleCreateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreateSyncPropagation"/>
- <bean id="defaultRoleUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleUpdatePropagation"/>
- <bean id="defaultRoleDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeletePropagation"/>
- <bean id="defaultRoleDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeprovisionPropagation"/>
-
- <bean id="routeController" class="org.apache.syncope.core.rest.controller.RouteController"/>
+ <!-- Camel Context Beans Definition -->
+ <bean id="userProvisioningManager" class="${userProvisioningManager}"/>
+ <bean id="roleProvisioningManager" class="${roleProvisioningManager}"/>
+ <bean id="routeController" class="org.apache.syncope.core.rest.controller.RouteController"/>
</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b161393/core/src/main/resources/provisioning.properties
----------------------------------------------------------------------
diff --git a/core/src/main/resources/provisioning.properties b/core/src/main/resources/provisioning.properties
new file mode 100644
index 0000000..a8e49bf
--- /dev/null
+++ b/core/src/main/resources/provisioning.properties
@@ -0,0 +1,19 @@
+# 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.
+
+userProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager
+roleProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelRoleProvisioningManager
\ No newline at end of file
[19/53] [abbrv] syncope git commit: Code formatting with netbeans
Posted by il...@apache.org.
Code formatting with netbeans
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/7aa0db37
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/7aa0db37
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/7aa0db37
Branch: refs/heads/2_0_X
Commit: 7aa0db378d8ab7931c78d570c6f5968e2967bc7b
Parents: b7d6578
Author: giacomolm <gi...@hotmail.it>
Authored: Mon Dec 22 17:48:14 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Mon Dec 22 17:48:14 2014 +0100
----------------------------------------------------------------------
core/pom.xml | 14 +-
.../syncope/core/init/CamelRouteLoader.java | 74 ++--
.../init/ImplementationClassNamesLoader.java | 1 -
.../core/init/SpringContextInitializer.java | 4 +-
.../core/persistence/SQLSchemaGenerator.java | 25 +-
.../persistence/beans/AbstractAttrValue.java | 33 +-
.../persistence/beans/AbstractBaseBean.java | 2 +-
.../core/persistence/beans/CamelRoute.java | 4 +-
.../persistence/beans/ExternalResource.java | 2 +-
.../core/persistence/beans/Notification.java | 5 +-
.../core/persistence/beans/package-info.java | 1 -
.../core/persistence/dao/ConnectorRegistry.java | 2 +-
.../core/persistence/dao/impl/RouteDAOImpl.java | 3 +-
.../entity/AbstractSyncTaskCheck.java | 2 +-
.../entity/AbstractSyncTaskValidator.java | 4 +-
.../validation/entity/AttrCheck.java | 2 +-
.../validation/entity/AttrValueCheck.java | 2 +-
.../validation/entity/ConnInstanceCheck.java | 2 +-
.../entity/ExternalResourceCheck.java | 2 +-
.../validation/entity/NotificationCheck.java | 4 +-
.../validation/entity/PolicyCheck.java | 2 +-
.../validation/entity/PropagationTaskCheck.java | 2 +-
.../validation/entity/ReportCheck.java | 2 +-
.../validation/entity/SchedTaskCheck.java | 2 +-
.../validation/entity/SchemaCheck.java | 2 +-
.../validation/entity/SchemaNameCheck.java | 2 +-
.../validation/entity/SyncopeRoleCheck.java | 2 +-
.../validation/entity/SyncopeUserCheck.java | 3 +-
.../syncope/core/policy/PolicyEvaluator.java | 5 +-
.../syncope/core/policy/PolicyPattern.java | 1 +
.../core/propagation/PropagationReporter.java | 2 +-
.../impl/DBPasswordPropagationActions.java | 16 +-
.../impl/PriorityPropagationTaskExecutor.java | 8 +-
.../propagation/impl/PropagationManager.java | 8 +-
.../syncope/core/propagation/package-info.java | 1 -
.../DefaultRoleProvisioningManager.java | 56 +--
.../DefaultUserProvisioningManager.java | 159 +++----
.../core/provisioning/ProvisioningManager.java | 2 +-
.../provisioning/RoleProvisioningManager.java | 14 +-
.../provisioning/UserProvisioningManager.java | 31 +-
.../camel/CamelRoleProvisioningManager.java | 68 +--
.../camel/CamelUserProvisioningManager.java | 33 +-
.../provisioning/camel/SyncopeCamelContext.java | 81 ++--
.../DefaultRoleCreatePropagation.java | 22 +-
.../DefaultRoleCreateSyncPropagation.java | 31 +-
.../DefaultRoleDeletePropagation.java | 24 +-
.../DefaultRoleDeprovisionPropagation.java | 28 +-
.../DefaultRoleUpdatePropagation.java | 24 +-
.../DefaultUserConfirmPwdResetPropagation.java | 11 +-
.../DefaultUserCreatePropagation.java | 31 +-
.../DefaultUserDeletePropagation.java | 25 +-
.../DefaultUserDeprovisionPropagation.java | 24 +-
.../DefaultUserStatusPropagation.java | 26 +-
.../DefaultUserUpdateInSyncPropagation.java | 48 +-
.../DefaultUserUpdatePropagation.java | 116 ++---
.../DefaultUserWFSuspendPropagation.java | 16 +-
.../camel/processors/UserStatusOnSync.java | 54 +--
.../syncope/core/quartz/package-info.java | 1 -
.../syncope/core/report/ReportletConfClass.java | 2 +-
.../core/report/cocoon/TextSerializer.java | 2 +-
.../core/rest/controller/LoggerController.java | 4 +-
.../core/rest/controller/RoleController.java | 8 +-
.../core/rest/controller/RouteController.java | 46 +-
.../core/rest/controller/UserController.java | 45 +-
.../core/rest/data/ReportDataBinder.java | 6 +-
.../syncope/core/rest/data/RouteDataBinder.java | 10 +-
.../rest/utils/QueryResourceInfoComparator.java | 4 +-
.../rest/utils/RestServiceExceptionMapper.java | 4 +-
.../syncope/core/security/AsymmetricCipher.java | 1 +
.../core/services/ConnectorServiceImpl.java | 2 +-
.../core/services/PolicyServiceImpl.java | 2 +-
.../syncope/core/services/RouteServiceImpl.java | 19 +-
.../core/services/WorkflowServiceImpl.java | 8 +-
.../apache/syncope/core/sync/SyncActions.java | 3 +-
.../apache/syncope/core/sync/SyncResult.java | 7 +-
.../impl/AbstractSubjectPushResultHandler.java | 1 -
.../syncope/core/sync/impl/AbstractSyncJob.java | 2 +-
.../sync/impl/AbstractSyncopeResultHandler.java | 6 +-
.../core/sync/impl/LDAPPasswordSyncActions.java | 10 +-
.../core/sync/impl/RoleSyncResultHandler.java | 10 +-
.../core/sync/impl/UserSyncResultHandler.java | 94 ++--
.../core/util/AttributeDeserializer.java | 4 +-
.../syncope/core/util/ContentLoaderHandler.java | 20 +-
.../apache/syncope/core/util/RouteManager.java | 19 +-
.../syncope/core/util/SecureRandomUtil.java | 8 +-
.../core/util/SyncTokenDeserializer.java | 22 +-
.../apache/syncope/core/util/jexl/JexlUtil.java | 4 +-
.../syncope/core/workflow/package-info.java | 1 -
.../role/AbstractRoleWorkflowAdapter.java | 2 +-
.../user/AbstractUserWorkflowAdapter.java | 2 +-
.../workflow/user/NoOpUserWorkflowAdapter.java | 3 +-
.../core/workflow/user/UserWorkflowAdapter.java | 2 +-
.../activiti/ActivitiUserWorkflowAdapter.java | 3 +-
.../user/activiti/SyncopeGroupManager.java | 2 +-
.../user/activiti/SyncopeUserManager.java | 2 +-
.../resources/persistenceContextEMFactory.xml | 4 +-
.../resources/report/staticReportlet2fo.xsl | 98 ++---
.../resources/report/staticReportlet2html.xsl | 84 ++--
.../resources/report/userReportlet2html.xsl | 6 +-
core/src/main/resources/roleRoute.xml | 272 ++++++------
core/src/main/resources/userRoute.xml | 434 +++++++++----------
core/src/main/resources/wadl2html/index.xsl | 80 ++--
.../core/persistence/dao/DerSchemaTest.java | 1 -
.../persistence/dao/SecurityQuestionTest.java | 2 +-
.../core/persistence/dao/VirSchemaTest.java | 1 -
.../syncope/core/rest/ConnectorTestITCase.java | 6 +-
.../core/rest/NotificationTestITCase.java | 2 +-
.../syncope/core/rest/PolicyTestITCase.java | 4 +-
.../syncope/core/rest/ResourceTestITCase.java | 2 +-
109 files changed, 1291 insertions(+), 1266 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 66b5a22..1628184 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -118,7 +118,7 @@ under the License.
<artifactId>cxf-rt-rs-client</artifactId>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
</dependency>
@@ -127,14 +127,14 @@ under the License.
<artifactId>camel-spring</artifactId>
</dependency>
<dependency>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
- <version>2.2.7</version>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <version>2.2.7</version>
</dependency>
<dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>2.2.7</version>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ <version>2.2.7</version>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/init/CamelRouteLoader.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/init/CamelRouteLoader.java b/core/src/main/java/org/apache/syncope/core/init/CamelRouteLoader.java
index aa6da28..5f63e0d 100644
--- a/core/src/main/java/org/apache/syncope/core/init/CamelRouteLoader.java
+++ b/core/src/main/java/org/apache/syncope/core/init/CamelRouteLoader.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.init;
import java.io.File;
@@ -47,60 +46,61 @@ import org.w3c.dom.NodeList;
@Component
public class CamelRouteLoader {
-
+
private static final Logger LOG = LoggerFactory.getLogger(CamelRouteLoader.class);
-
+
@Autowired
private RouteDAO routeDAO;
-
+
@Autowired
private DataSource dataSource;
-
+
@Transactional
- public void load(){
-
+ public void load() {
+
//if(routeDAO.findAll().isEmpty()){
- URL url = getClass().getResource("/camelRoute.xml");
+ URL url = getClass().getResource("/camelRoute.xml");
+
+ File file = new File(url.getPath());
+ String query = "INSERT INTO CamelRoute(ID, NAME, ROUTECONTENT) VALUES (?, ?, ?)";
+ try {
+
+ DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ Document doc = dBuilder.parse(file);
+ doc.getDocumentElement().normalize();
- File file = new File(url.getPath());
- String query= "INSERT INTO CamelRoute(ID, NAME, ROUTECONTENT) VALUES (?, ?, ?)";
- try{
-
- DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
- Document doc = dBuilder.parse(file);
- doc.getDocumentElement().normalize();
+ JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
- JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+ NodeList listOfRoutes = doc.getElementsByTagName("route");
+ for (int s = 0; s < listOfRoutes.getLength(); s++) {
+ //getting the route node element
+ Node routeEl = listOfRoutes.item(s);
+ //crate an instance of CamelRoute Entity
+ CamelRoute route = new CamelRoute();
+ route.setName(((Element) routeEl).getAttribute("id"));
+ route.setRouteContent(nodeToString(listOfRoutes.item(s)));
- NodeList listOfRoutes = doc.getElementsByTagName("route");
- for(int s=0; s<listOfRoutes.getLength(); s++){
- //getting the route node element
- Node routeEl = listOfRoutes.item(s);
- //crate an instance of CamelRoute Entity
- CamelRoute route = new CamelRoute();
- route.setName(((Element)routeEl).getAttribute("id"));
- route.setRouteContent(nodeToString(listOfRoutes.item(s)));
-
- jdbcTemplate.update(query, new Object[]{s+1,((Element)routeEl).getAttribute("id"), nodeToString(listOfRoutes.item(s))});
- LOG.info("Route Registration Successed");
- }
- } catch (DataAccessException e) {
- LOG.error("While trying to perform {}", query, e);
- } catch (Exception e) {
- LOG.error("Route Registration failed {}",e.getMessage());
+ jdbcTemplate.update(query, new Object[] { s + 1, ((Element) routeEl).getAttribute("id"), nodeToString(
+ listOfRoutes.item(s)) });
+ LOG.info("Route Registration Successed");
}
+ } catch (DataAccessException e) {
+ LOG.error("While trying to perform {}", query, e);
+ } catch (Exception e) {
+ LOG.error("Route Registration failed {}", e.getMessage());
+ }
//}
}
-
- private String nodeToString(Node node) {
+
+ private String nodeToString(Node node) {
StringWriter sw = new StringWriter();
- try{
+ try {
Transformer t = TransformerFactory.newInstance().newTransformer();
t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
t.transform(new DOMSource(node), new StreamResult(sw));
- }catch (TransformerException te) {
+ } catch (TransformerException te) {
System.out.println("nodeToString Transformer Exception");
}
return sw.toString();
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java b/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java
index b7659b8..30c568e 100644
--- a/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java
+++ b/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java
@@ -114,7 +114,6 @@ public class ImplementationClassNamesLoader {
}
// TODO: add push correlation rules management
-
if (interfaces.contains(PropagationActions.class) && !metadata.isAbstract()) {
classNames.get(Type.PROPAGATION_ACTIONS).add(metadata.getClassName());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java b/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java
index 115587d..dc99e34 100644
--- a/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java
+++ b/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java
@@ -49,7 +49,7 @@ public class SpringContextInitializer implements InitializingBean {
@Autowired
private WorkflowAdapterLoader workflowAdapterLoader;
-
+
@Autowired
private CamelRouteLoader routeLoader;
@@ -63,7 +63,7 @@ public class SpringContextInitializer implements InitializingBean {
classNamesLoader.load();
routeLoader.load();
-
+
workflowAdapterLoader.init();
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/SQLSchemaGenerator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/SQLSchemaGenerator.java b/core/src/main/java/org/apache/syncope/core/persistence/SQLSchemaGenerator.java
index 342e347..8942cda 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/SQLSchemaGenerator.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/SQLSchemaGenerator.java
@@ -60,7 +60,7 @@ public final class SQLSchemaGenerator {
}
@SuppressWarnings("unchecked")
- Iterator<File> itor = FileUtils.iterateFiles(baseDir, new String[] {"class"}, true);
+ Iterator<File> itor = FileUtils.iterateFiles(baseDir, new String[] { "class" }, true);
List<File> entityClasses = new ArrayList<File>();
while (itor.hasNext()) {
entityClasses.add(itor.next());
@@ -127,7 +127,7 @@ public final class SQLSchemaGenerator {
for (int i = 0; i < files.size(); i++) {
File file = files.get(i);
- args[ i] = file.getAbsolutePath();
+ args[i] = file.getAbsolutePath();
}
return args;
}
@@ -140,7 +140,6 @@ public final class SQLSchemaGenerator {
final String connectionProperties) {
//extendRealmClasspath();
-
Options opts = new Options();
opts.put(OPTION_PROPERTIES_FILE, persistenceXmlFile);
opts.put(OPTION_CONNECTION_DRIVER_NAME, connectionDriverName);
@@ -156,16 +155,16 @@ public final class SQLSchemaGenerator {
boolean ok = Configurations.runAgainstAllAnchors(opts,
new Configurations.Runnable() {
- @Override
- public boolean run(final Options opts) throws IOException, SQLException {
- JDBCConfiguration conf = new JDBCConfigurationImpl();
- try {
- return MappingTool.run(conf, args, opts);
- } finally {
- conf.close();
- }
- }
- });
+ @Override
+ public boolean run(final Options opts) throws IOException, SQLException {
+ JDBCConfiguration conf = new JDBCConfigurationImpl();
+ try {
+ return MappingTool.run(conf, args, opts);
+ } finally {
+ conf.close();
+ }
+ }
+ });
if (!ok) {
throw new IllegalStateException("The OpenJPA MappingTool detected an error!");
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractAttrValue.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractAttrValue.java b/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractAttrValue.java
index 6ee527e..e3e71a1 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractAttrValue.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractAttrValue.java
@@ -195,21 +195,21 @@ public abstract class AbstractAttrValue extends AbstractBaseBean {
return (T) (booleanValue != null
? getBooleanValue()
: dateValue != null
- ? getDateValue()
- : doubleValue != null
- ? getDoubleValue()
- : longValue != null
- ? getLongValue()
- : binaryValue != null
- ? getBinaryValue()
- : stringValue);
+ ? getDateValue()
+ : doubleValue != null
+ ? getDoubleValue()
+ : longValue != null
+ ? getLongValue()
+ : binaryValue != null
+ ? getBinaryValue()
+ : stringValue);
}
public String getValueAsString() {
final AttributeSchemaType type = getAttribute() == null || getAttribute().getSchema() == null
|| getAttribute().getSchema().getType() == null
- ? AttributeSchemaType.String
- : getAttribute().getSchema().getType();
+ ? AttributeSchemaType.String
+ : getAttribute().getSchema().getType();
return getValueAsString(type);
}
@@ -228,22 +228,23 @@ public abstract class AbstractAttrValue extends AbstractBaseBean {
case Long:
result = getAttribute() == null || getAttribute().getSchema() == null
|| getAttribute().getSchema().getConversionPattern() == null
- ? getLongValue().toString()
- : DataFormat.format(getLongValue(), getAttribute().getSchema().getConversionPattern());
+ ? getLongValue().toString()
+ : DataFormat.format(getLongValue(), getAttribute().getSchema().getConversionPattern());
break;
case Double:
result = getAttribute() == null || getAttribute().getSchema() == null
|| getAttribute().getSchema().getConversionPattern() == null
- ? getDoubleValue().toString()
- : DataFormat.format(getDoubleValue(), getAttribute().getSchema().getConversionPattern());
+ ? getDoubleValue().toString()
+ : DataFormat.format(getDoubleValue(), getAttribute().getSchema().getConversionPattern());
break;
case Date:
result = getAttribute() == null || getAttribute().getSchema() == null
|| getAttribute().getSchema().getConversionPattern() == null
- ? DataFormat.format(getDateValue())
- : DataFormat.format(getDateValue(), false, getAttribute().getSchema().getConversionPattern());
+ ? DataFormat.format(getDateValue())
+ : DataFormat.format(getDateValue(), false, getAttribute().getSchema().
+ getConversionPattern());
break;
case Binary:
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractBaseBean.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractBaseBean.java b/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractBaseBean.java
index b8350b0..af2727a 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractBaseBean.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractBaseBean.java
@@ -73,7 +73,7 @@ public abstract class AbstractBaseBean implements Serializable {
}
}
- return excludeFields.toArray(new String[]{});
+ return excludeFields.toArray(new String[] {});
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/beans/CamelRoute.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/beans/CamelRoute.java b/core/src/main/java/org/apache/syncope/core/persistence/beans/CamelRoute.java
index ad05f27..33fff55 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/beans/CamelRoute.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/beans/CamelRoute.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.persistence.beans;
import javax.persistence.Entity;
@@ -26,13 +25,12 @@ import javax.persistence.Lob;
import javax.persistence.GenerationType;
import javax.persistence.Column;
-
@Entity
public class CamelRoute {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
- @Column(name="id")
+ @Column(name = "id")
private Long id;
private String name;
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/beans/ExternalResource.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/beans/ExternalResource.java b/core/src/main/java/org/apache/syncope/core/persistence/beans/ExternalResource.java
index 438f972..e35eefe 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/beans/ExternalResource.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/beans/ExternalResource.java
@@ -323,7 +323,7 @@ public class ExternalResource extends AbstractSysInfo {
return StringUtils.isBlank(jsonConf)
? Collections.<ConnConfProperty>emptySet()
: new HashSet<ConnConfProperty>(
- Arrays.asList(POJOHelper.deserialize(jsonConf, ConnConfProperty[].class)));
+ Arrays.asList(POJOHelper.deserialize(jsonConf, ConnConfProperty[].class)));
}
public void setConnInstanceConfiguration(final Set<ConnConfProperty> properties) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/beans/Notification.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/beans/Notification.java b/core/src/main/java/org/apache/syncope/core/persistence/beans/Notification.java
index 6c1c466..f548b00 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/beans/Notification.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/beans/Notification.java
@@ -85,7 +85,7 @@ public class Notification extends AbstractBaseBean {
@NotNull
@Enumerated(EnumType.STRING)
private TraceLevel traceLevel;
-
+
@Column(nullable = false)
@Basic
@Min(0)
@@ -168,7 +168,8 @@ public class Notification extends AbstractBaseBean {
}
public boolean addStaticRecipient(String staticRecipient) {
- return staticRecipient != null && !staticRecipients.contains(staticRecipient) && staticRecipients.add(staticRecipient);
+ return staticRecipient != null && !staticRecipients.contains(staticRecipient) && staticRecipients.add(
+ staticRecipient);
}
public boolean removeStaticRecipient(String staticRecipient) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/beans/package-info.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/beans/package-info.java b/core/src/main/java/org/apache/syncope/core/persistence/beans/package-info.java
index 3a78e58..eff4862 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/beans/package-info.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/beans/package-info.java
@@ -17,4 +17,3 @@
* under the License.
*/
package org.apache.syncope.core.persistence.beans;
-
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/dao/ConnectorRegistry.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/dao/ConnectorRegistry.java b/core/src/main/java/org/apache/syncope/core/persistence/dao/ConnectorRegistry.java
index d9c6845..3a783b9 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/dao/ConnectorRegistry.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/dao/ConnectorRegistry.java
@@ -40,4 +40,4 @@ public interface ConnectorRegistry {
* @param id Spring bean id
*/
void unregisterConnector(String id);
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RouteDAOImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RouteDAOImpl.java b/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RouteDAOImpl.java
index aaa0026..7d30a01 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RouteDAOImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RouteDAOImpl.java
@@ -37,7 +37,8 @@ public class RouteDAOImpl extends AbstractDAOImpl implements RouteDAO {
@Transactional(readOnly = true)
@Override
public List<CamelRoute> findAll() {
- TypedQuery<CamelRoute> query = entityManager.createQuery("SELECT e FROM " + CamelRoute.class.getSimpleName() + " e", CamelRoute.class);
+ TypedQuery<CamelRoute> query = entityManager.createQuery("SELECT e FROM " + CamelRoute.class.getSimpleName()
+ + " e", CamelRoute.class);
return query.getResultList();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskCheck.java
index ac3821d..d7e172b 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = AbstractSyncTaskValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskValidator.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskValidator.java
index a53d815..9088a44 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskValidator.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskValidator.java
@@ -60,8 +60,8 @@ public class AbstractSyncTaskValidator extends AbstractValidator<AbstractSyncTas
isAssignable = object instanceof SyncTask
? SyncActions.class.isAssignableFrom(actionsClass)
: object instanceof PushTask
- ? PushActions.class.isAssignableFrom(actionsClass)
- : false;
+ ? PushActions.class.isAssignableFrom(actionsClass)
+ : false;
} catch (Exception e) {
LOG.error("Invalid SyncActions specified", e);
isValid = false;
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrCheck.java
index b569545..f0131dd 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = AttrValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueCheck.java
index a2e9740..b5efbca 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = AttrValueValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceCheck.java
index 6f3af39..172d44e 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target({ElementType.TYPE})
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = ConnInstanceValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceCheck.java
index 74c6984..59be7fb 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = ExternalResourceValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationCheck.java
index 844be3b..8c10eb8 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NotificationValidator.class)
@Documented
@@ -38,4 +38,4 @@ public @interface NotificationCheck {
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyCheck.java
index 7d722b8..ef55fb1 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = PolicyValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskCheck.java
index 8896bc8..ac0a0de 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = PropagationTaskValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportCheck.java
index 1e32c14..9f00b67 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = ReportValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskCheck.java
index bcade2f..76f012a 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = SchedTaskValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaCheck.java
index e6e1be5..e092ec9 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = SchemaValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaNameCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaNameCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaNameCheck.java
index 5ae70e1..65def91 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaNameCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaNameCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = SchemaNameValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleCheck.java
index 5586238..ae7e282 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target({ElementType.TYPE})
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = SyncopeRoleValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserCheck.java
index 028ae4d..5a709b7 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserCheck.java
@@ -27,8 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = SyncopeUserValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/policy/PolicyEvaluator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/policy/PolicyEvaluator.java b/core/src/main/java/org/apache/syncope/core/policy/PolicyEvaluator.java
index e378794..abf7b1d 100644
--- a/core/src/main/java/org/apache/syncope/core/policy/PolicyEvaluator.java
+++ b/core/src/main/java/org/apache/syncope/core/policy/PolicyEvaluator.java
@@ -52,7 +52,7 @@ public class PolicyEvaluator {
final PasswordPolicySpec ppSpec = policy.getSpecification(PasswordPolicySpec.class);
final PasswordPolicySpec evaluatedPPSpec = new PasswordPolicySpec();
- BeanUtils.copyProperties(ppSpec, evaluatedPPSpec, new String[]{"schemasNotPermitted"});
+ BeanUtils.copyProperties(ppSpec, evaluatedPPSpec, new String[] { "schemasNotPermitted" });
for (String schema : ppSpec.getSchemasNotPermitted()) {
AbstractAttr attribute = attributable.getAttr(schema);
@@ -65,7 +65,6 @@ public class PolicyEvaluator {
}
// Password history verification and update
-
if (!(attributable instanceof SyncopeUser)) {
LOG.error("Cannot check previous passwords. attributable is not a user object: {}",
attributable.getClass().getName());
@@ -83,7 +82,7 @@ public class PolicyEvaluator {
final AccountPolicySpec spec = policy.getSpecification(AccountPolicySpec.class);
final AccountPolicySpec accountPolicy = new AccountPolicySpec();
- BeanUtils.copyProperties(spec, accountPolicy, new String[]{"schemasNotPermitted"});
+ BeanUtils.copyProperties(spec, accountPolicy, new String[] { "schemasNotPermitted" });
for (String schema : spec.getSchemasNotPermitted()) {
AbstractAttr attribute = attributable.getAttr(schema);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/policy/PolicyPattern.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/policy/PolicyPattern.java b/core/src/main/java/org/apache/syncope/core/policy/PolicyPattern.java
index 30065c4..e1e0890 100644
--- a/core/src/main/java/org/apache/syncope/core/policy/PolicyPattern.java
+++ b/core/src/main/java/org/apache/syncope/core/policy/PolicyPattern.java
@@ -43,4 +43,5 @@ public class PolicyPattern {
public static final Pattern FIRST_NON_ALPHANUMERIC = Pattern.compile("\\W.*");
public static final Pattern LAST_NON_ALPHANUMERIC = Pattern.compile(".*\\W");
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/propagation/PropagationReporter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/propagation/PropagationReporter.java b/core/src/main/java/org/apache/syncope/core/propagation/PropagationReporter.java
index 0ff432d..e8c985d 100644
--- a/core/src/main/java/org/apache/syncope/core/propagation/PropagationReporter.java
+++ b/core/src/main/java/org/apache/syncope/core/propagation/PropagationReporter.java
@@ -44,7 +44,7 @@ public interface PropagationReporter {
/**
* Report propagation status after executions in case blocking failure (e.g. on primary resources).
- *
+ *
* @param tasks propagation tasks performed before failure
*/
void onPrimaryResourceFailure(List<PropagationTask> tasks);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/propagation/impl/DBPasswordPropagationActions.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/propagation/impl/DBPasswordPropagationActions.java b/core/src/main/java/org/apache/syncope/core/propagation/impl/DBPasswordPropagationActions.java
index 7157907..9ccb146 100644
--- a/core/src/main/java/org/apache/syncope/core/propagation/impl/DBPasswordPropagationActions.java
+++ b/core/src/main/java/org/apache/syncope/core/propagation/impl/DBPasswordPropagationActions.java
@@ -46,7 +46,7 @@ import org.springframework.transaction.annotation.Transactional;
* cipher algorithm property of the DB Connector.
*/
public class DBPasswordPropagationActions extends DefaultPropagationActions {
-
+
private static final String CLEARTEXT = "CLEARTEXT";
@Autowired
@@ -59,12 +59,12 @@ public class DBPasswordPropagationActions extends DefaultPropagationActions {
if (AttributableType.USER == task.getSubjectType()) {
SyncopeUser user = userDAO.find(task.getSubjectId());
-
+
if (user != null && user.getPassword() != null) {
Attribute missing = AttributeUtil.find(
PropagationTaskExecutor.MANDATORY_MISSING_ATTR_NAME,
task.getAttributes());
-
+
ConnInstance connInstance = task.getResource().getConnector();
if (missing != null && missing.getValue() != null && missing.getValue().size() == 1
&& missing.getValue().get(0).equals(OperationalAttributes.PASSWORD_NAME)
@@ -86,7 +86,7 @@ public class DBPasswordPropagationActions extends DefaultPropagationActions {
}
}
}
-
+
private String getCipherAlgorithm(ConnInstance connInstance) {
String cipherAlgorithm = CLEARTEXT;
for (Iterator<ConnConfProperty> propertyIterator = connInstance.getConfiguration().iterator();
@@ -101,21 +101,21 @@ public class DBPasswordPropagationActions extends DefaultPropagationActions {
}
return cipherAlgorithm;
}
-
+
private boolean cipherAlgorithmMatches(String connectorAlgorithm, CipherAlgorithm userAlgorithm) {
if (userAlgorithm == null) {
return false;
}
-
+
if (connectorAlgorithm.equals(userAlgorithm.name())) {
return true;
}
-
+
// Special check for "SHA" (user sync'd from LDAP)
if ("SHA1".equals(connectorAlgorithm) && "SHA".equals(userAlgorithm.name())) {
return true;
}
-
+
return false;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/propagation/impl/PriorityPropagationTaskExecutor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/propagation/impl/PriorityPropagationTaskExecutor.java b/core/src/main/java/org/apache/syncope/core/propagation/impl/PriorityPropagationTaskExecutor.java
index b6734f7..8fd4f18 100644
--- a/core/src/main/java/org/apache/syncope/core/propagation/impl/PriorityPropagationTaskExecutor.java
+++ b/core/src/main/java/org/apache/syncope/core/propagation/impl/PriorityPropagationTaskExecutor.java
@@ -75,7 +75,7 @@ public class PriorityPropagationTaskExecutor extends AbstractPropagationTaskExec
null,
result,
reporter instanceof DefaultPropagationReporter
- ? ((DefaultPropagationReporter) reporter).getStatuses() : null,
+ ? ((DefaultPropagationReporter) reporter).getStatuses() : null,
tasks);
auditManager.audit(
@@ -85,7 +85,7 @@ public class PriorityPropagationTaskExecutor extends AbstractPropagationTaskExec
null,
result,
reporter instanceof DefaultPropagationReporter
- ? ((DefaultPropagationReporter) reporter).getStatuses() : null,
+ ? ((DefaultPropagationReporter) reporter).getStatuses() : null,
tasks);
}
}
@@ -112,8 +112,8 @@ public class PriorityPropagationTaskExecutor extends AbstractPropagationTaskExec
return prop1 > prop2
? 1
: prop1 == prop2
- ? 0
- : -1;
+ ? 0
+ : -1;
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java b/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java
index fcd7110..169c4e8 100644
--- a/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java
+++ b/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java
@@ -388,8 +388,8 @@ public class PropagationManager {
PropagationByResource localPropByRes = binder.fillVirtual(subject, vAttrsToBeRemoved == null
? Collections.<String>emptySet()
: vAttrsToBeRemoved, vAttrsToBeUpdated == null
- ? Collections.<AttributeMod>emptySet()
- : vAttrsToBeUpdated, AttributableUtil.getInstance(subject));
+ ? Collections.<AttributeMod>emptySet()
+ : vAttrsToBeUpdated, AttributableUtil.getInstance(subject));
// SYNCOPE-458 fill membership virtual attributes
if (subject instanceof SyncopeUser) {
@@ -402,8 +402,8 @@ public class PropagationManager {
? Collections.<String>emptySet()
: membershipMod.getVirAttrsToRemove(),
membershipMod.getVirAttrsToUpdate() == null ? Collections.<AttributeMod>emptySet()
- : membershipMod.getVirAttrsToUpdate(), AttributableUtil.getInstance(
- AttributableType.MEMBERSHIP));
+ : membershipMod.getVirAttrsToUpdate(), AttributableUtil.getInstance(
+ AttributableType.MEMBERSHIP));
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/propagation/package-info.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/propagation/package-info.java b/core/src/main/java/org/apache/syncope/core/propagation/package-info.java
index 7331a06..92d1db5 100644
--- a/core/src/main/java/org/apache/syncope/core/propagation/package-info.java
+++ b/core/src/main/java/org/apache/syncope/core/propagation/package-info.java
@@ -17,4 +17,3 @@
* under the License.
*/
package org.apache.syncope.core.propagation;
-
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
index f376641..5986b8e 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning;
import java.util.AbstractMap;
@@ -48,20 +47,25 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.apache.commons.lang3.StringUtils;
-public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
+public class DefaultRoleProvisioningManager implements RoleProvisioningManager {
private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleProvisioningManager.class);
+
@Autowired
protected RoleWorkflowAdapter rwfAdapter;
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
- protected PropagationTaskExecutor taskExecutor;
+ protected PropagationTaskExecutor taskExecutor;
+
@Autowired
protected RoleDAO roleDAO;
+
@Autowired
protected RoleDataBinder binder;
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> create(RoleTO subject) {
return create(subject, Collections.<String>emptySet());
@@ -69,7 +73,7 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
@Override
public Map.Entry<Long, List<PropagationStatus>> create(RoleTO subject, Set<String> excludedResources) {
-
+
WorkflowResult<Long> created = rwfAdapter.create(subject);
EntitlementUtil.extendAuthContext(created.getResult());
@@ -86,15 +90,16 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
final RoleTO savedTO = binder.getRoleTO(created.getResult());
savedTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());
-
+
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
created.getResult(), propagationReporter.getStatuses());
return result;
}
-
+
@Override
- public Map.Entry<Long, List<PropagationStatus>> createInSync(RoleTO roleTO, Map<Long, String> roleOwnerMap,Set<String> excludedResources) throws PropagationException{
-
+ public Map.Entry<Long, List<PropagationStatus>> createInSync(RoleTO roleTO, Map<Long, String> roleOwnerMap,
+ Set<String> excludedResources) throws PropagationException {
+
WorkflowResult<Long> created = rwfAdapter.create((RoleTO) roleTO);
AttributeTO roleOwner = roleTO.getAttrMap().get(StringUtils.EMPTY);
if (roleOwner != null) {
@@ -107,21 +112,21 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
roleTO.getVirAttrs(), excludedResources);
taskExecutor.execute(tasks);
-
+
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
created.getResult(), null);
return result;
}
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod) {
-
+
return update(subjectMod, Collections.<String>emptySet());
}
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources) {
-
+
WorkflowResult<Long> updated = rwfAdapter.update(subjectMod);
List<PropagationTask> tasks = propagationManager.getRoleUpdateTaskIds(updated,
@@ -135,7 +140,6 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
updated.getResult(), propagationReporter.getStatuses());
return result;
@@ -179,13 +183,12 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
propagationReporter.onPrimaryResourceFailure(tasks);
}
- try{
+ try {
rwfAdapter.delete(subjectId);
+ } catch (RuntimeException e) {
+ throw e;
}
- catch(RuntimeException e){
- throw e;
- }
-
+
return propagationReporter.getStatuses();
}
@@ -194,15 +197,16 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
WorkflowResult<Long> updated = rwfAdapter.update(subjectMod);
return updated.getResult();
}
-
+
@Override
- public List<PropagationStatus> deprovision(final Long roleId, final Collection<String> resources){
+ public List<PropagationStatus> deprovision(final Long roleId, final Collection<String> resources) {
final SyncopeRole role = binder.getRoleFromId(roleId);
-
+
final Set<String> noPropResourceName = role.getResourceNames();
noPropResourceName.removeAll(resources);
-
- final List<PropagationTask> tasks = propagationManager.getRoleDeleteTaskIds(roleId, new HashSet<String>(resources), noPropResourceName);
+
+ final List<PropagationTask> tasks = propagationManager.getRoleDeleteTaskIds(roleId, new HashSet<String>(
+ resources), noPropResourceName);
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
PropagationReporter.class);
try {
@@ -218,5 +222,5 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
public Long link(RoleMod subjectMod) {
return rwfAdapter.update(subjectMod).getResult();
}
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
index 070c6aa..ff0544f 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
@@ -47,7 +47,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-public class DefaultUserProvisioningManager implements UserProvisioningManager{
+public class DefaultUserProvisioningManager implements UserProvisioningManager {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserProvisioningManager.class);
@@ -59,47 +59,48 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
@Autowired
- protected UserDataBinder binder;
+ protected UserDataBinder binder;
@Autowired
- protected UserDAO userDAO;
+ protected UserDAO userDAO;
@Override
- public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO){
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO) {
return create(userTO, true, false, null, Collections.<String>emptySet());
}
-
- public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, boolean storePassword) {
- /*WorkflowResult<Map.Entry<Long, Boolean>> created;
- try {
- created = uwfAdapter.create(userTO,storePassword);
- } catch (RuntimeException e) {
- throw e;
- }
-
- List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(
- created, userTO.getPassword(), userTO.getVirAttrs(), userTO.getMemberships());
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
- getBean(PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
-
- Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
- created.getResult().getKey(), propagationReporter.getStatuses());
- return result;*/
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, boolean storePassword) {
+ /* WorkflowResult<Map.Entry<Long, Boolean>> created;
+ * try {
+ * created = uwfAdapter.create(userTO,storePassword);
+ * } catch (RuntimeException e) {
+ * throw e;
+ * }
+ *
+ * List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(
+ * created, userTO.getPassword(), userTO.getVirAttrs(), userTO.getMemberships());
+ *
+ * PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ * getBean(PropagationReporter.class);
+ * try {
+ * taskExecutor.execute(tasks, propagationReporter);
+ * } catch (PropagationException e) {
+ * LOG.error("Error propagation primary resource", e);
+ * propagationReporter.onPrimaryResourceFailure(tasks);
+ * }
+ *
+ * Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ * created.getResult().getKey(), propagationReporter.getStatuses());
+ * return result; */
return create(userTO, storePassword, false, null, Collections.<String>emptySet());
}
-
+
@Override
- public Map.Entry<Long, List<PropagationStatus>> create(UserTO userTO, boolean storePassword, boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources) {
- WorkflowResult<Map.Entry<Long, Boolean>> created;
+ public Map.Entry<Long, List<PropagationStatus>> create(UserTO userTO, boolean storePassword,
+ boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources) {
+ WorkflowResult<Map.Entry<Long, Boolean>> created;
try {
created = uwfAdapter.create(userTO, disablePwdPolicyCheck, enabled, storePassword);
} catch (RuntimeException e) {
@@ -126,7 +127,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
public Map.Entry<Long, List<PropagationStatus>> update(final UserMod userMod) {
return update(userMod, false);
}
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> update(UserMod userMod, boolean removeMemberships) {
WorkflowResult<Map.Entry<UserMod, Boolean>> updated;
@@ -174,9 +175,9 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
updated.getResult().getKey().getId(), propagationReporter.getStatuses());
- return result;
+ return result;
}
-
+
@Override
public List<PropagationStatus> delete(final Long userId) {
@@ -185,7 +186,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
@Override
public List<PropagationStatus> delete(Long subjectId, Set<String> excludedResources) {
- List<PropagationTask> tasks = propagationManager.getUserDeleteTaskIds(subjectId,excludedResources);
+ List<PropagationTask> tasks = propagationManager.getUserDeleteTaskIds(subjectId, excludedResources);
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
getBean(PropagationReporter.class);
@@ -205,7 +206,6 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
return propagationReporter.getStatuses();
}
-
@Override
public Long unlink(UserMod userMod) {
WorkflowResult<Map.Entry<UserMod, Boolean>> updated = uwfAdapter.update(userMod);
@@ -216,7 +216,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
public Long link(UserMod subjectMod) {
return uwfAdapter.update(subjectMod).getResult().getKey().getId();
}
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> activate(SyncopeUser user, StatusMod statusMod) {
WorkflowResult<Long> updated;
@@ -225,7 +225,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
} else {
updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
}
-
+
List<PropagationStatus> statuses = propagateStatus(user, statusMod);
return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult(), statuses);
}
@@ -238,7 +238,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
} else {
updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
}
-
+
List<PropagationStatus> statuses = propagateStatus(user, statusMod);
return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult(), statuses);
}
@@ -251,13 +251,13 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
} else {
updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
}
-
+
List<PropagationStatus> statuses = propagateStatus(user, statusMod);
return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult(), statuses);
}
-
- public List<PropagationStatus> propagateStatus(SyncopeUser user, StatusMod statusMod){
-
+
+ public List<PropagationStatus> propagateStatus(SyncopeUser user, StatusMod statusMod) {
+
Set<String> resourcesToBeExcluded = new HashSet<String>(user.getResourceNames());
resourcesToBeExcluded.removeAll(statusMod.getResourceNames());
@@ -271,19 +271,19 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
LOG.error("Error propagation primary resource", e);
propReporter.onPrimaryResourceFailure(tasks);
}
-
+
return propReporter.getStatuses();
-
+
}
@Override
public List<PropagationStatus> deprovision(Long userId, Collection<String> resources) {
-
- final SyncopeUser user = binder.getUserFromId(userId);
-
+
+ final SyncopeUser user = binder.getUserFromId(userId);
+
final Set<String> noPropResourceName = user.getResourceNames();
noPropResourceName.removeAll(resources);
-
+
final List<PropagationTask> tasks =
propagationManager.getUserDeleteTaskIds(userId, new HashSet<String>(resources), noPropResourceName);
final PropagationReporter propagationReporter =
@@ -294,14 +294,14 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
+
return propagationReporter.getStatuses();
}
@Override
- public Map.Entry<Long, List<PropagationStatus>> updateInSync(final UserMod userMod,final Long id,
- final SyncResult result, Boolean enabled, Set<String> excludedResources){
-
+ public Map.Entry<Long, List<PropagationStatus>> updateInSync(final UserMod userMod, final Long id,
+ final SyncResult result, Boolean enabled, Set<String> excludedResources) {
+
WorkflowResult<Map.Entry<UserMod, Boolean>> updated;
try {
updated = uwfAdapter.update(userMod);
@@ -337,40 +337,41 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
}
}
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
- getBean(PropagationReporter.class);
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
- List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated,updated.getResult().getKey().getPassword() != null,excludedResources);
-
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated, updated.getResult().getKey().
+ getPassword() != null, excludedResources);
-
- return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult().getKey().getId(), propagationReporter.getStatuses());
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult().getKey().getId(),
+ propagationReporter.getStatuses());
}
@Override
public void innerSuspend(SyncopeUser user, boolean suspend) {
-
- final WorkflowResult<Long> updated = uwfAdapter.suspend(user);
- // propagate suspension if and only if it is required by policy
- if (suspend) {
- UserMod userMod = new UserMod();
- userMod.setId(updated.getResult());
+ final WorkflowResult<Long> updated = uwfAdapter.suspend(user);
+
+ // propagate suspension if and only if it is required by policy
+ if (suspend) {
+ UserMod userMod = new UserMod();
+ userMod.setId(updated.getResult());
- final List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(
- new WorkflowResult<Map.Entry<UserMod, Boolean>>(
- new AbstractMap.SimpleEntry<UserMod, Boolean>(userMod, Boolean.FALSE),
- updated.getPropByRes(), updated.getPerformedTasks()));
+ final List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(
+ new WorkflowResult<Map.Entry<UserMod, Boolean>>(
+ new AbstractMap.SimpleEntry<UserMod, Boolean>(userMod, Boolean.FALSE),
+ updated.getPropByRes(), updated.getPerformedTasks()));
- taskExecutor.execute(tasks);
- }
+ taskExecutor.execute(tasks);
+ }
}
@Override
@@ -380,7 +381,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
@Override
public void confirmPasswordReset(SyncopeUser user, String token, String password) {
-
+
uwfAdapter.confirmPasswordReset(user.getId(), token, password);
List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(user, null, null);
@@ -391,6 +392,6 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
} catch (PropagationException e) {
LOG.error("Error propagation primary resource", e);
propReporter.onPrimaryResourceFailure(tasks);
- }
+ }
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
index adc1cb0..65f7f7d 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
@@ -25,7 +25,7 @@ import org.apache.syncope.common.mod.AbstractAttributableMod;
import org.apache.syncope.common.to.AbstractAttributableTO;
import org.apache.syncope.common.to.PropagationStatus;
-public interface ProvisioningManager<T extends AbstractAttributableTO, M extends AbstractAttributableMod>{
+public interface ProvisioningManager<T extends AbstractAttributableTO, M extends AbstractAttributableMod> {
public Map.Entry<Long, List<PropagationStatus>> create(T subject);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/RoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/RoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/RoleProvisioningManager.java
index 594bf5e..53029ac 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/RoleProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/RoleProvisioningManager.java
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.syncope.core.provisioning;
import java.util.List;
@@ -24,12 +23,13 @@ import org.apache.syncope.common.mod.RoleMod;
import org.apache.syncope.common.to.PropagationStatus;
import org.apache.syncope.core.propagation.PropagationException;
-public interface RoleProvisioningManager extends ProvisioningManager<RoleTO, RoleMod>{
-
+public interface RoleProvisioningManager extends ProvisioningManager<RoleTO, RoleMod> {
+
public Map.Entry<Long, List<PropagationStatus>> create(final RoleTO roleTO, Set<String> excludedResources);
-
- public Map.Entry<Long, List<PropagationStatus>> createInSync(final RoleTO roleTO, Map<Long, String> roleOwnerMap,Set<String> excludedResources) throws PropagationException;
-
+
+ public Map.Entry<Long, List<PropagationStatus>> createInSync(final RoleTO roleTO, Map<Long, String> roleOwnerMap,
+ Set<String> excludedResources) throws PropagationException;
+
public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources);
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
index 32a4d18..c5b70a8 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.syncope.core.provisioning;
import java.util.List;
@@ -27,28 +26,30 @@ import org.apache.syncope.common.to.PropagationStatus;
import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
import org.apache.syncope.core.sync.SyncResult;
-public interface UserProvisioningManager extends ProvisioningManager<UserTO, UserMod>{
-
+public interface UserProvisioningManager extends ProvisioningManager<UserTO, UserMod> {
+
public Map.Entry<Long, List<PropagationStatus>> activate(SyncopeUser user, StatusMod statusMod);
public Map.Entry<Long, List<PropagationStatus>> reactivate(SyncopeUser user, StatusMod statusMod);
public Map.Entry<Long, List<PropagationStatus>> suspend(SyncopeUser user, StatusMod statusMod);
-
+
public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword);
-
- public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword, boolean disablePwdPolicyCheck, Boolean enabled,Set<String> excludedResources);
-
+
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword,
+ boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources);
+
public Map.Entry<Long, List<PropagationStatus>> update(final UserMod userMod, final boolean removeMemberships);
-
- public Map.Entry<Long, List<PropagationStatus>> updateInSync(final UserMod userMod,final Long id, final SyncResult result, Boolean enabled, Set<String> excludedResources);
- public List<PropagationStatus> delete(Long subjectId, Set<String> excludedResources);
-
+ public Map.Entry<Long, List<PropagationStatus>> updateInSync(final UserMod userMod, final Long id,
+ final SyncResult result, Boolean enabled, Set<String> excludedResources);
+
+ public List<PropagationStatus> delete(Long subjectId, Set<String> excludedResources);
+
public void innerSuspend(SyncopeUser user, boolean suspend);
-
+
public void requestPasswordReset(final Long id);
-
- public void confirmPasswordReset(SyncopeUser user,final String token,final String password);
-
+
+ public void confirmPasswordReset(SyncopeUser user, final String token, final String password);
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
index 4857d2f..33856a9 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel;
import java.io.ByteArrayInputStream;
@@ -65,7 +64,7 @@ import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-public class CamelRoleProvisioningManager implements RoleProvisioningManager{
+public class CamelRoleProvisioningManager implements RoleProvisioningManager {
private static final Logger LOG = LoggerFactory.getLogger(CamelRoleProvisioningManager.class);
@@ -76,7 +75,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
protected Map<String, PollingConsumer> consumerMap;
protected List<String> knownUri;
-
+
@Autowired
protected RouteDAO routeDAO;
@@ -99,7 +98,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
public CamelContext getContext() {
//ApplicationContext context = ApplicationContextProvider.getApplicationContext();
//return context.getBean("camel-context", DefaultCamelContext.class);
- return contextFactory.getContext(routeDAO);
+ return contextFactory.getContext(routeDAO);
}
public void changeRoute(String routePath) {
@@ -125,12 +124,12 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
protected void sendMessage(String uri, Object obj, Map<String, Object> properties) {
Exchange exc = new DefaultExchange(getContext());
-
+
Iterator<Map.Entry<String, Object>> it = properties.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> property = it.next();
exc.setProperty(property.getKey(), property.getValue());
- LOG.info("Added property {}", property.getKey());
+ LOG.info("Added property {}", property.getKey());
}
DefaultMessage m = new DefaultMessage();
@@ -158,22 +157,22 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
return consumerMap.get(uri);
}
}
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> create(RoleTO subject) {
-
- return create(subject, Collections.<String>emptySet());
+
+ return create(subject, Collections.<String>emptySet());
}
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> create(RoleTO roleTO, Set<String> excludedResources) {
-
+
String uri = "direct:createRolePort";
PollingConsumer pollingConsumer = getConsumer(uri);
Map<String, Object> props = new HashMap<String, Object>();
props.put("excludedResources", excludedResources);
-
+
sendMessage("direct:createRole", roleTO, props);
Exchange o = pollingConsumer.receive();
@@ -184,44 +183,45 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
return o.getIn().getBody(Map.Entry.class);
}
-
+
@Override
- public Map.Entry<Long, List<PropagationStatus>> createInSync(RoleTO roleTO, Map<Long, String> roleOwnerMap, Set<String> excludedResources) throws PropagationException {
-
+ public Map.Entry<Long, List<PropagationStatus>> createInSync(RoleTO roleTO, Map<Long, String> roleOwnerMap,
+ Set<String> excludedResources) throws PropagationException {
+
String uri = "direct:createRoleSyncPort";
PollingConsumer pollingConsumer = getConsumer(uri);
- Map<String, Object> props = new HashMap<String, Object>();
+ Map<String, Object> props = new HashMap<String, Object>();
props.put("roleOwnerMap", roleOwnerMap);
props.put("excludedResources", excludedResources);
-
+
sendMessage("direct:createRoleSync", roleTO, props);
Exchange o = pollingConsumer.receive();
- if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
}
-
+
return o.getIn().getBody(Map.Entry.class);
}
@Override
public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod) {
-
+
return update(subjectMod, Collections.<String>emptySet());
}
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources) {
String uri = "direct:updateRolePort";
PollingConsumer pollingConsumer = getConsumer(uri);
-
+
Map<String, Object> props = new HashMap<String, Object>();
props.put("excludedResources", excludedResources);
- sendMessage("direct:updateRole",subjectMod, props);
+ sendMessage("direct:updateRole", subjectMod, props);
Exchange o = pollingConsumer.receive();
@@ -229,12 +229,12 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
}
- return o.getIn().getBody(Map.Entry.class);
+ return o.getIn().getBody(Map.Entry.class);
}
@Override
public List<PropagationStatus> delete(Long subjectId) {
-
+
String uri = "direct:deleteRolePort";
PollingConsumer pollingConsumer = getConsumer(uri);
@@ -267,9 +267,9 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
@Override
public Long link(RoleMod subjectMod) {
-
+
String uri = "direct:linkRolePort";
-
+
PollingConsumer pollingConsumer = getConsumer(uri);
sendMessage("direct:linkRole", subjectMod);
@@ -280,28 +280,28 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
}
- return o.getIn().getBody(Long.class);
+ return o.getIn().getBody(Long.class);
}
@Override
public List<PropagationStatus> deprovision(final Long roleId, Collection<String> resources) {
-
+
String uri = "direct:deprovisionRolePort";
-
+
PollingConsumer pollingConsumer = getConsumer(uri);
-
+
Map props = new HashMap<String, Object>();
props.put("resources", resources);
sendMessage("direct:deprovisionRole", roleId, props);
-
+
Exchange o = pollingConsumer.receive();
if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
}
-
+
return o.getIn().getBody(List.class);
}
-
+
}
[34/53] [abbrv] syncope git commit: Fixes #4 - Route functionalities
are displayed only with Camel PM
Posted by il...@apache.org.
Fixes #4 - Route functionalities are displayed only with Camel PM
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b19ff851
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b19ff851
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b19ff851
Branch: refs/heads/master
Commit: b19ff8512f082d7d74ff40b0a53f6380d0905771
Parents: d8ec8da
Author: giacomolm <gi...@hotmail.it>
Authored: Tue Dec 30 16:47:31 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Tue Dec 30 16:47:31 2014 +0100
----------------------------------------------------------------------
.../apache/syncope/client/SyncopeClient.java | 26 +++++++
.../syncope/common/services/RouteService.java | 44 ++++++++---
.../syncope/common/types/RESTHeaders.java | 11 +++
.../apache/syncope/console/SyncopeSession.java | 7 ++
.../syncope/console/pages/Configuration.java | 15 +++-
.../syncope/console/rest/RouteRestClient.java | 22 +++++-
.../syncope/console/pages/Configuration.html | 2 +-
.../core/provisioning/camel/CamelDetector.java | 77 ++++++++++++++++++++
.../syncope/core/services/RouteServiceImpl.java | 31 +++++++-
core/src/main/resources/provisioning.properties | 4 +-
10 files changed, 218 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/client/src/main/java/org/apache/syncope/client/SyncopeClient.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/syncope/client/SyncopeClient.java b/client/src/main/java/org/apache/syncope/client/SyncopeClient.java
index a471d54..f955951 100644
--- a/client/src/main/java/org/apache/syncope/client/SyncopeClient.java
+++ b/client/src/main/java/org/apache/syncope/client/SyncopeClient.java
@@ -26,6 +26,7 @@ import org.apache.syncope.client.rest.RestClientFactoryBean;
import org.apache.syncope.common.search.OrderByClauseBuilder;
import org.apache.syncope.common.search.RoleFiqlSearchConditionBuilder;
import org.apache.syncope.common.search.UserFiqlSearchConditionBuilder;
+import org.apache.syncope.common.services.RouteService;
import org.apache.syncope.common.services.UserSelfService;
import org.apache.syncope.common.services.WorkflowService;
import org.apache.syncope.common.types.Preference;
@@ -265,6 +266,31 @@ public class SyncopeClient {
return result;
}
+
+ /**
+ * Checks whether Camel is enabled for users / roles, by calling <tt>RouteService</tt>'s options.
+ *
+ * @param subjectType user / role
+ * @return whether Camel Provisioning is enabled for given attributable type
+ * @see RouteService#getOptions(org.apache.syncope.common.types.SubjectType)
+ */
+ public boolean isCamelEnabledFor(final SubjectType subjectType) {
+ Response options = getService(RouteService.class).getOptions(subjectType);
+
+ boolean result;
+ switch (subjectType) {
+ case ROLE:
+ result = Boolean.valueOf(options.getHeaderString(RESTHeaders.CAMEL_ROLE_PROVISIONING_MANAGER));
+ break;
+
+ case USER:
+ default:
+ result = Boolean.valueOf(options.getHeaderString(RESTHeaders.CAMEL_USER_PROVISIONING_MANAGER));
+ break;
+ }
+
+ return result;
+ }
/**
* Fetches <tt>ETag</tt> header value from latest service run (if available).
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/common/src/main/java/org/apache/syncope/common/services/RouteService.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/syncope/common/services/RouteService.java b/common/src/main/java/org/apache/syncope/common/services/RouteService.java
index feb7db7..6e3090f 100644
--- a/common/src/main/java/org/apache/syncope/common/services/RouteService.java
+++ b/common/src/main/java/org/apache/syncope/common/services/RouteService.java
@@ -16,34 +16,56 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.common.services;
import java.util.List;
+import javax.validation.constraints.NotNull;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
+import javax.ws.rs.OPTIONS;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import org.apache.cxf.jaxrs.model.wadl.Description;
+import org.apache.cxf.jaxrs.model.wadl.Descriptions;
+import org.apache.cxf.jaxrs.model.wadl.DocTarget;
import org.apache.syncope.common.to.RouteTO;
+import org.apache.syncope.common.types.SubjectType;
+
+@Path("routes/{kind}")
+public interface RouteService extends JAXRSService {
+
+ /**
+ * Checks whether Camel is choosed as default provisioning engine.
+ *
+ * @param kind user or role
+ * @return <tt>Response</tt> contains special syncope HTTP header indicating if Camel is enabled for
+ * users / roles provisioning
+ * @see org.apache.syncope.common.types.RESTHeaders#CAMEL_USER_PROVISIONING_MANAGER
+ * @see org.apache.syncope.common.types.RESTHeaders#CAMEL_ROLE_PROVISIONING_MANAGER
+ *
+ * @Descriptions({
+ * @Description(target = DocTarget.RESPONSE,
+ * value = "Contains special syncope HTTP header indicating if Camel is the default provisioning manager")
+ * }) */
+ @OPTIONS
+ Response getOptions(@NotNull @PathParam("kind") SubjectType kind);
-@Path("routes")
-public interface RouteService extends JAXRSService{
-
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
- List<RouteTO> getRoutes();
-
+ List<RouteTO> getRoutes(@NotNull @PathParam("kind") SubjectType kind);
+
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Path("{id}")
- public RouteTO getRoute(@PathParam("id") Long Id);
-
+ public RouteTO getRoute(@NotNull @PathParam("kind") SubjectType kind, @PathParam("id") Long Id);
+
@PUT
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Path("{id}")
- void importRoute(@PathParam("id") Long id, RouteTO route);
-
-}
\ No newline at end of file
+ void importRoute(@NotNull @PathParam("kind") SubjectType kind,@PathParam("id") Long id, RouteTO route);
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/common/src/main/java/org/apache/syncope/common/types/RESTHeaders.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/syncope/common/types/RESTHeaders.java b/common/src/main/java/org/apache/syncope/common/types/RESTHeaders.java
index ddbfca2..3e7cdc3 100644
--- a/common/src/main/java/org/apache/syncope/common/types/RESTHeaders.java
+++ b/common/src/main/java/org/apache/syncope/common/types/RESTHeaders.java
@@ -57,6 +57,17 @@ public final class RESTHeaders {
* Option key stating if Activiti workflow adapter is in use for roles.
*/
public static final String ACTIVITI_ROLE_ENABLED = "Syncope.Activiti.Role.Enabled";
+
+ /**
+ * Option key stating if Camel is the current provisioning manager engine.
+ */
+ public static final String CAMEL_USER_PROVISIONING_MANAGER ="Syncope.Provisioning.Camel.User.Enabled";
+
+ /**
+ * Option key stating if Camel is the current provisioning manager engine.
+ */
+ public static final String CAMEL_ROLE_PROVISIONING_MANAGER ="Syncope.Provisioning.Camel.Role.Enabled";
+
/**
* HTTP header key for object ID assigned to an object after its creation.
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/console/src/main/java/org/apache/syncope/console/SyncopeSession.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/SyncopeSession.java b/console/src/main/java/org/apache/syncope/console/SyncopeSession.java
index ae81852..53b03c0 100644
--- a/console/src/main/java/org/apache/syncope/console/SyncopeSession.java
+++ b/console/src/main/java/org/apache/syncope/console/SyncopeSession.java
@@ -114,6 +114,13 @@ public class SyncopeSession extends WebSession {
: clients.values().iterator().next();
return client.isActivitiEnabledFor(type);
}
+
+ public boolean isCamelEnabledFor(final SubjectType type) {
+ SyncopeClient client = clients.isEmpty()
+ ? clientFactory.createAnonymous()
+ : clients.values().iterator().next();
+ return client.isCamelEnabledFor(type);
+ }
public <T> T getService(final Class<T> service) {
return getService(service, this.username, this.password);
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/Configuration.java b/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
index 10dcfc7..05316dd 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/Configuration.java
@@ -52,6 +52,7 @@ import org.apache.syncope.console.wicket.extensions.markup.html.repeater.data.ta
import org.apache.syncope.console.wicket.markup.html.form.ActionLink;
import org.apache.syncope.console.wicket.markup.html.form.ActionLinksPanel;
import org.apache.syncope.console.wicket.markup.html.link.VeilPopupSettings;
+import org.apache.wicket.Component;
import org.apache.wicket.Page;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
@@ -278,7 +279,8 @@ public class Configuration extends BasePage {
add(new LayoutsPanel("selfMembershipLayoutPanel", AttrLayoutType.SELF_MEMBERSHIP, feedbackPanel));
//Route Management
- add(editRouteWin = new ModalWindow("editRouteWin"));
+ editRouteWin = new ModalWindow("editRouteWin");
+ add(editRouteWin);
setupRoutes();
}
@@ -828,7 +830,18 @@ public class Configuration extends BasePage {
WebMarkupContainer routeContainer = new WebMarkupContainer("routesContainer");
routeContainer.add(routeTable);
routeContainer.setOutputMarkupId(true);
+
+ ListItem<Object> li = new ListItem<Object>("routeTab", 0);
+ if (routeRestClient.isCamelEnabledForUsers() == false) {
+ li.setVisible(false);
+ routeContainer.setVisible(false);
+ }
+ else{
+ li.setVisible(true);
+ routeContainer.setVisible(true);
+ }
+ add(li);
add(routeContainer);
editRouteWin.setCssClassName(ModalWindow.CSS_CLASS_GRAY);
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/console/src/main/java/org/apache/syncope/console/rest/RouteRestClient.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/rest/RouteRestClient.java b/console/src/main/java/org/apache/syncope/console/rest/RouteRestClient.java
index 673652a..dcfb8c3 100644
--- a/console/src/main/java/org/apache/syncope/console/rest/RouteRestClient.java
+++ b/console/src/main/java/org/apache/syncope/console/rest/RouteRestClient.java
@@ -19,8 +19,11 @@
package org.apache.syncope.console.rest;
import java.util.List;
+import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.common.services.RouteService;
import org.apache.syncope.common.to.RouteTO;
+import org.apache.syncope.common.types.SubjectType;
+import org.apache.syncope.console.SyncopeSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@@ -31,17 +34,30 @@ public class RouteRestClient extends BaseRestClient{
protected static final Logger LOG = LoggerFactory.getLogger(RouteRestClient.class);
public List<RouteTO> readRoutes(){
- return getService(RouteService.class).getRoutes();
+ return getService(RouteService.class).getRoutes(SubjectType.USER);
}
public RouteTO readRoute(Long id){
- return getService(RouteService.class).getRoute(id);
+ return getService(RouteService.class).getRoute(SubjectType.USER, id);
}
public void updateRoute(Long id, String definition){
RouteTO routeTO = readRoute(id);
routeTO.setRouteContent(definition);
- getService(RouteService.class).importRoute(routeTO.getId(), routeTO);
+ getService(RouteService.class).importRoute(SubjectType.USER, routeTO.getId(), routeTO);
+ }
+
+ public boolean isCamelEnabledForUsers() {
+ Boolean result = null;
+ try {
+ result = SyncopeSession.get().isCamelEnabledFor(SubjectType.USER);
+ } catch (SyncopeClientException e) {
+ LOG.error("While seeking if Camel is enabled for users", e);
+ }
+
+ return result == null
+ ? false
+ : result.booleanValue();
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
----------------------------------------------------------------------
diff --git a/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html b/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
index 62f97a8..130c89a 100644
--- a/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
+++ b/console/src/main/resources/org/apache/syncope/console/pages/Configuration.html
@@ -38,7 +38,7 @@ under the License.
<li><a href="#notifications"><span><wicket:message key="notifications"/></span></a></li>
<li><a href="#securityQuestions"><span><wicket:message key="securityQuestions"/></span></a></li>
<li><a href="#workflow"><span><wicket:message key="workflow"/></span></a></li>
- <li><a href="#routes"><span><wicket:message key="routes"/></span></a></li>
+ <li wicket:id="routeTab"><a href="#routes"><span><wicket:message key="routes"/></span></a></li>
<li><a href="#logs"><span><wicket:message key="logs"/></span></a></li>
</ul>
<div id="layouts">
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelDetector.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelDetector.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelDetector.java
new file mode 100644
index 0000000..646c350
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelDetector.java
@@ -0,0 +1,77 @@
+/*
+ * 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.core.provisioning.camel;
+
+import java.io.InputStream;
+import java.util.Properties;
+import org.apache.commons.io.IOUtils;
+import org.apache.syncope.core.persistence.dao.impl.ContentLoader;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author giacomolm
+ */
+public class CamelDetector {
+
+ private static final Logger LOG = LoggerFactory.getLogger(CamelDetector.class);
+
+ private static final String PROVISIONING_PROPERTIES = "/provisioning.properties";
+
+ private static String userPMClassName;
+
+ private static String rolePMClassName;
+
+ /**
+ * Read classpath:/provisioning.properties in order to determine the configured provisioning adapter class name.
+ */
+ static {
+ Properties props = new Properties();
+ InputStream propStream = null;
+ try {
+ propStream = ContentLoader.class.getResourceAsStream(PROVISIONING_PROPERTIES);
+ props.load(propStream);
+ userPMClassName = props.getProperty("userProvisioningManager");
+ rolePMClassName = props.getProperty("roleProvisioningManager");
+ } catch (Exception e) {
+ LOG.error("Could not load workflow.properties", e);
+ } finally {
+ IOUtils.closeQuietly(propStream);
+ }
+ }
+
+ /**
+ * Check if the configured user provisioning manager is Camel's.
+ *
+ * @return whether Activiti is configured for user workflow or not
+ */
+ public static boolean isCamelEnabledForUsers() {
+ return userPMClassName != null && userPMClassName.equals(CamelUserProvisioningManager.class.getName());
+ }
+
+ /**
+ * Check if the configured role provisioning manager is Camel's.
+ *
+ * @return whether Activiti is configured for role workflow or not
+ */
+ public static boolean isCamelEnabledForRoles() {
+ return rolePMClassName != null && rolePMClassName.equals(CamelRoleProvisioningManager.class.getName());
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java b/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
index ecc323e..29359f8 100644
--- a/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
@@ -18,33 +18,58 @@
*/
package org.apache.syncope.core.services;
+import static org.apache.syncope.core.services.AbstractServiceImpl.OPTIONS_ALLOW;
+
import java.util.List;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.Response;
import org.apache.syncope.common.services.RouteService;
import org.apache.syncope.common.to.RouteTO;
+import org.apache.syncope.common.types.RESTHeaders;
+import org.apache.syncope.common.types.SubjectType;
+import org.apache.syncope.core.provisioning.camel.CamelDetector;
import org.apache.syncope.core.rest.controller.RouteController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class RouteServiceImpl extends AbstractServiceImpl implements RouteService {
+
+ @Override
+ public Response getOptions(final SubjectType kind) {
+ String key;
+ String value;
+ if (kind == SubjectType.USER) {
+ key = RESTHeaders.CAMEL_USER_PROVISIONING_MANAGER;
+ value = Boolean.toString(CamelDetector.isCamelEnabledForUsers());
+ } else {
+ key = RESTHeaders.CAMEL_ROLE_PROVISIONING_MANAGER;
+ value = Boolean.toString(CamelDetector.isCamelEnabledForRoles());
+ }
+ Response.ResponseBuilder builder = Response.ok().header(HttpHeaders.ALLOW, OPTIONS_ALLOW);
+ if (key != null && value != null) {
+ builder.header(key, value);
+ }
+ return builder.build();
+ }
@Autowired
private RouteController controller;
@Override
- public List<RouteTO> getRoutes() {
+ public List<RouteTO> getRoutes(SubjectType kind) {
return controller.listRoutes();
}
@Override
- public RouteTO getRoute(Long id) {
+ public RouteTO getRoute(SubjectType kind, Long id) {
return controller.readRoute(id);
}
@Override
- public void importRoute(Long id, RouteTO route) {
+ public void importRoute(SubjectType kind,Long id, RouteTO route) {
controller.updateRoute(route);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b19ff851/core/src/main/resources/provisioning.properties
----------------------------------------------------------------------
diff --git a/core/src/main/resources/provisioning.properties b/core/src/main/resources/provisioning.properties
index a8e49bf..de6c3cd 100644
--- a/core/src/main/resources/provisioning.properties
+++ b/core/src/main/resources/provisioning.properties
@@ -15,5 +15,5 @@
# specific language governing permissions and limitations
# under the License.
-userProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager
-roleProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelRoleProvisioningManager
\ No newline at end of file
+userProvisioningManager=org.apache.syncope.core.provisioning.DefaultUserProvisioningManager
+roleProvisioningManager=org.apache.syncope.core.provisioning.DefaultRoleProvisioningManager
\ No newline at end of file
[32/53] [abbrv] syncope git commit: Merge remote-tracking branch
'upstream/master'
Posted by il...@apache.org.
Merge remote-tracking branch 'upstream/master'
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/d8ec8da8
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/d8ec8da8
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/d8ec8da8
Branch: refs/heads/master
Commit: d8ec8da83e0f807e89e830540e756470aa231e51
Parents: dff89c0 08893dc
Author: giacomolm <gi...@hotmail.it>
Authored: Tue Dec 30 16:44:05 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Tue Dec 30 16:44:05 2014 +0100
----------------------------------------------------------------------
pom.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/d8ec8da8/pom.xml
----------------------------------------------------------------------
[44/53] [abbrv] syncope git commit: Merge branch 'master' into 2_0_X
Posted by il...@apache.org.
Merge branch 'master' into 2_0_X
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/ed49626c
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/ed49626c
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/ed49626c
Branch: refs/heads/2_0_X
Commit: ed49626ca17747a97f72bfa2130ee1c3eeb60767
Parents: 3596642 1d58c50
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Jan 5 11:16:48 2015 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Jan 5 11:16:48 2015 +0100
----------------------------------------------------------------------
.../syncope/installer/utilities/FileSystemUtils.java | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
----------------------------------------------------------------------
[48/53] [abbrv] syncope git commit: Merge upstream/master
Posted by il...@apache.org.
Merge upstream/master
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/d388f246
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/d388f246
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/d388f246
Branch: refs/heads/master
Commit: d388f2464d145bd780bb8b2de76b63c52e459c62
Parents: ec34515 1d58c50
Author: giacomolm <gi...@hotmail.it>
Authored: Mon Jan 5 11:58:26 2015 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Mon Jan 5 11:58:26 2015 +0100
----------------------------------------------------------------------
.../syncope/installer/utilities/FileSystemUtils.java | 10 +---------
pom.xml | 15 +++++++++++++--
src/site/site.xml | 3 ---
3 files changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/d388f246/pom.xml
----------------------------------------------------------------------
diff --cc pom.xml
index 641e123,9891ca9..1fe0129
--- a/pom.xml
+++ b/pom.xml
@@@ -323,10 -335,9 +334,10 @@@ under the License
<activiti.version>5.16.4</activiti.version>
<aspectj.version>1.8.4</aspectj.version>
--
- <cxf.version>3.0.3</cxf.version>
++
+ <cxf.version>3.0.3</cxf.version>
+ <camel.version>2.14.1</camel.version>
- <spring.version>4.0.8.RELEASE</spring.version>
+ <spring.version>4.0.9.RELEASE</spring.version>
<spring-security.version>3.2.5.RELEASE</spring-security.version>
<jackson.version>2.4.4</jackson.version>
<velocity.version>1.7</velocity.version>
[36/53] [abbrv] syncope git commit: Fixing deprecation errors during
compilation
Posted by il...@apache.org.
Fixing deprecation errors during compilation
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/ac4d6af4
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/ac4d6af4
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/ac4d6af4
Branch: refs/heads/master
Commit: ac4d6af48f8c08167db7051d69c011f650b48555
Parents: b19ff85
Author: giacomolm <gi...@hotmail.it>
Authored: Tue Dec 30 18:25:12 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Tue Dec 30 18:25:12 2014 +0100
----------------------------------------------------------------------
.../core/provisioning/camel/CamelRoleProvisioningManager.java | 4 ++--
.../core/provisioning/camel/CamelUserProvisioningManager.java | 5 +++--
.../syncope/core/provisioning/camel/SyncopeCamelContext.java | 6 +++---
.../camel/processors/DefaultUserUpdatePropagation.java | 2 --
4 files changed, 8 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/ac4d6af4/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
index 33856a9..9b121a4 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
@@ -68,7 +68,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
private static final Logger LOG = LoggerFactory.getLogger(CamelRoleProvisioningManager.class);
- private DefaultCamelContext camelContext;
+ private SpringCamelContext camelContext;
private RoutesDefinition routes;
@@ -95,7 +95,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
camelContext.stop();
}
- public CamelContext getContext() {
+ public SpringCamelContext getContext() {
//ApplicationContext context = ApplicationContextProvider.getApplicationContext();
//return context.getBean("camel-context", DefaultCamelContext.class);
return contextFactory.getContext(routeDAO);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ac4d6af4/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
index d30c624..01b057a 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
@@ -40,6 +40,7 @@ import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.impl.DefaultMessage;
import org.apache.camel.model.RoutesDefinition;
+import org.apache.camel.spring.SpringCamelContext;
import org.apache.syncope.common.mod.StatusMod;
import org.apache.syncope.common.mod.UserMod;
import org.apache.syncope.common.to.PropagationStatus;
@@ -59,7 +60,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
private static final Logger LOG = LoggerFactory.getLogger(CamelUserProvisioningManager.class);
- private DefaultCamelContext camelContext;
+ private SpringCamelContext camelContext;
private RoutesDefinition routes;
@@ -98,7 +99,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
camelContext.stop();
}
- public CamelContext getContext() {
+ public SpringCamelContext getContext() {
//ApplicationContext context = ApplicationContextProvider.getApplicationContext();
//return context.getBean("camel-context", DefaultCamelContext.class);
return contextFactory.getContext(routeDAO);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ac4d6af4/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
index c529dcf..6d3e77d 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
@@ -48,15 +48,15 @@ public class SyncopeCamelContext {
private static final Logger LOG = LoggerFactory.getLogger(SyncopeCamelContext.class);
- private CamelContext camelContext = null;
+ private SpringCamelContext camelContext = null;
public SyncopeCamelContext() {
}
- public CamelContext getContext(RouteDAO routeDAO) {
+ public SpringCamelContext getContext(RouteDAO routeDAO) {
if (camelContext == null) {
- camelContext = new SpringCamelContext(ApplicationContextProvider.getApplicationContext());
+ camelContext = new SpringCamelContext(ApplicationContextProvider.getApplicationContext());
}
if (camelContext.getRouteDefinitions().isEmpty()) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/ac4d6af4/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
index a94bea5..c9b498e 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
@@ -24,11 +24,9 @@ import java.util.List;
import java.util.Map;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
-import org.apache.syncope.common.mod.AttributeMod;
import org.apache.syncope.common.mod.MembershipMod;
import org.apache.syncope.common.mod.UserMod;
import org.apache.syncope.common.to.PropagationStatus;
-import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.core.persistence.beans.PropagationTask;
import org.apache.syncope.core.propagation.PropagationByResource;
import org.apache.syncope.core.propagation.PropagationException;
[26/53] [abbrv] syncope git commit: Restoring default travis.xml
Posted by il...@apache.org.
Restoring default travis.xml
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b2ba422f
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b2ba422f
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b2ba422f
Branch: refs/heads/master
Commit: b2ba422f21b0998731bff084d71f908b0e4dc5f3
Parents: 7aa0db3
Author: giacomolm <gi...@hotmail.it>
Authored: Tue Dec 23 12:34:12 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Tue Dec 23 12:34:12 2014 +0100
----------------------------------------------------------------------
.travis.yml | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/b2ba422f/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 1eeba36..e9245f1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,23 +1,24 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
-# http://www.apache.org/licenses/LICENSE-2.0
+# 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.
+
language: java
jdk:
-- openjdk6
+ - openjdk6
# default install is mvn install --quiet -DskipTests=true
install: mvn --show-version --quiet -P skipTests
#invoker.streamLogs: we cannot access to log files through Travis web ui, so display everything in the console
script: mvn --show-version --quiet clean install -Dinvoker.streamLogs=true
notifications:
-webhooks: http://rovere.tirasa.net/cgi-bin/travis.cgi
+ webhooks: http://rovere.tirasa.net/cgi-bin/travis.cgi
[02/53] [abbrv] syncope git commit: Initial running version,
in order to fix #1
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
new file mode 100644
index 0000000..2cf1e6f
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
@@ -0,0 +1,76 @@
+/*
+ * 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.core.provisioning.camel.processors;
+
+import java.util.AbstractMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.common.mod.StatusMod;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.apache.syncope.core.workflow.WorkflowResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class DefaultUserStatusPropagation implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultUserStatusPropagation.class);
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+
+ @Override
+ public void process(Exchange exchange){
+
+ WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
+
+ SyncopeUser user = exchange.getProperty("user", SyncopeUser.class);
+ StatusMod statusMod = exchange.getProperty("statusMod", StatusMod.class);
+
+ Set<String> resourcesToBeExcluded = new HashSet<String>(user.getResourceNames());
+ resourcesToBeExcluded.removeAll(statusMod.getResourceNames());
+
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(
+ user, statusMod.getType() != StatusMod.ModType.SUSPEND, resourcesToBeExcluded);
+ PropagationReporter propReporter =
+ ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult(), propReporter.getStatuses());
+ exchange.getOut().setBody(result);
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
new file mode 100644
index 0000000..6fdec75
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
@@ -0,0 +1,78 @@
+/*
+ * 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.core.provisioning.camel.processors;
+
+import java.util.AbstractMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.common.mod.UserMod;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.persistence.dao.UserDAO;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.rest.data.UserDataBinder;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.apache.syncope.core.workflow.WorkflowResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class DefaultUserUpdateInSyncPropagation implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdateInSyncPropagation.class);
+
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+ @Autowired
+ protected UserDataBinder binder;
+ @Autowired
+ protected UserDAO userDAO;
+
+ @Override
+ public void process(Exchange exchange){
+
+ WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
+
+ Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
+
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
+
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated,updated.getResult().getKey().getPassword() != null,excludedResource);
+
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult().getKey().getId(), propagationReporter.getStatuses());
+ exchange.getOut().setBody(result);
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
new file mode 100644
index 0000000..880912e
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.syncope.core.provisioning.camel.processors;
+
+import java.util.AbstractMap;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.common.mod.AttributeMod;
+import org.apache.syncope.common.mod.MembershipMod;
+import org.apache.syncope.common.mod.UserMod;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.common.to.UserTO;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.propagation.PropagationByResource;
+import org.apache.syncope.core.propagation.PropagationException;
+import org.apache.syncope.core.propagation.PropagationReporter;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.rest.data.UserDataBinder;
+import org.apache.syncope.core.util.ApplicationContextProvider;
+import org.apache.syncope.core.workflow.WorkflowResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class DefaultUserUpdatePropagation implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdatePropagation.class);
+
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+ @Autowired
+ protected UserDataBinder binder;
+
+ @Override
+ public void process(Exchange exchange){
+
+ WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
+ UserMod actual = exchange.getProperty("actual", UserMod.class);
+ boolean removeMemberships = exchange.getProperty("removeMemberships", boolean.class);
+
+ // SYNCOPE-501: check if there are memberships to be removed with virtual attributes assigned
+ /*for (Long membershipId : actual.getMembershipsToRemove()) {
+ if (!binder.fillMembershipVirtual(
+ null,
+ null,
+ membershipId,
+ Collections.<String>emptySet(),
+ Collections.<AttributeMod>emptySet(),
+ true).isEmpty()) {
+
+ removeMemberships = true;
+ }
+ }*/
+
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated);
+ if (tasks.isEmpty()) {
+ // SYNCOPE-459: take care of user virtual attributes ...
+ final PropagationByResource propByResVirAttr = binder.fillVirtual(
+ updated.getResult().getKey().getId(),
+ actual.getVirAttrsToRemove(),
+ actual.getVirAttrsToUpdate());
+ // SYNCOPE-501: update only virtual attributes (if any of them changed), password propagation is
+ // not required, take care also of membership virtual attributes
+ boolean addOrUpdateMemberships = false;
+ for (MembershipMod membershipMod : actual.getMembershipsToAdd()) {
+ if (!binder.fillMembershipVirtual(
+ updated.getResult().getKey().getId(),
+ membershipMod.getRole(),
+ null,
+ membershipMod.getVirAttrsToRemove(),
+ membershipMod.getVirAttrsToUpdate(),
+ false).isEmpty()) {
+
+ addOrUpdateMemberships = true;
+ }
+ }
+ tasks.addAll(!propByResVirAttr.isEmpty() || addOrUpdateMemberships || removeMemberships
+ ? propagationManager.getUserUpdateTaskIds(updated, false, null)
+ : Collections.<PropagationTask>emptyList());
+ }
+
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
+
+ if (!tasks.isEmpty()) {
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+ }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult().getKey().getId(), propagationReporter.getStatuses());
+ exchange.getOut().setBody(result);
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
new file mode 100644
index 0000000..2d08b93
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
@@ -0,0 +1,64 @@
+/*
+ * 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.core.provisioning.camel.processors;
+
+import java.util.AbstractMap.SimpleEntry;
+import java.util.List;
+import java.util.Map;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.syncope.common.mod.UserMod;
+import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.propagation.PropagationTaskExecutor;
+import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.workflow.WorkflowResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class DefaultUserWFSuspendPropagation implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(DefaultUserWFSuspendPropagation.class);
+
+ @Autowired
+ protected PropagationManager propagationManager;
+ @Autowired
+ protected PropagationTaskExecutor taskExecutor;
+
+ @Override
+ public void process(Exchange exchange){
+
+ WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
+ Boolean suspend = exchange.getProperty("suspend", Boolean.class);
+
+ if (suspend) {
+ UserMod userMod = new UserMod();
+ userMod.setId(updated.getResult());
+
+ final List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(
+ new WorkflowResult<Map.Entry<UserMod, Boolean>>(
+ new SimpleEntry<UserMod, Boolean>(userMod, Boolean.FALSE),
+ updated.getPropByRes(), updated.getPerformedTasks()));
+
+ taskExecutor.execute(tasks);
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
new file mode 100644
index 0000000..7e4c18e
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
@@ -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.syncope.core.provisioning.camel.processors;
+
+import java.util.Map;
+import org.apache.camel.Processor;
+import org.apache.camel.Exchange;
+import org.apache.syncope.common.mod.UserMod;
+import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
+import org.apache.syncope.core.persistence.dao.UserDAO;
+import org.apache.syncope.core.workflow.WorkflowResult;
+import org.apache.syncope.core.workflow.user.UserWorkflowAdapter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class UserStatusOnSync implements Processor{
+
+ private static final Logger LOG = LoggerFactory.getLogger(UserStatusOnSync.class);
+
+ @Autowired
+ protected UserDAO userDAO;
+ @Autowired
+ protected UserWorkflowAdapter uwfAdapter;
+
+ @Override
+ public void process(Exchange exchange){
+
+ WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
+
+ Boolean enabled = exchange.getProperty("enabled", Boolean.class);
+ Long id = exchange.getProperty("id", Long.class);
+
+ if (enabled != null) {
+ SyncopeUser user = userDAO.find(id);
+
+ WorkflowResult<Long> enableUpdate = null;
+ if (user.isSuspended() == null) {
+ enableUpdate = uwfAdapter.activate(id, null);
+ } else if (enabled && user.isSuspended()) {
+ enableUpdate = uwfAdapter.reactivate(id);
+ } else if (!enabled && !user.isSuspended()) {
+ enableUpdate = uwfAdapter.suspend(id);
+ }
+
+ if (enableUpdate != null) {
+ if (enableUpdate.getPropByRes() != null) {
+ updated.getPropByRes().merge(enableUpdate.getPropByRes());
+ updated.getPropByRes().purge();
+ }
+ updated.getPerformedTasks().addAll(enableUpdate.getPerformedTasks());
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/ProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/ProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/ProvisioningManager.java
new file mode 100644
index 0000000..adc1cb0
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/provisioning/ProvisioningManager.java
@@ -0,0 +1,42 @@
+/*
+ * 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.core.provisioning;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import org.apache.syncope.common.mod.AbstractAttributableMod;
+import org.apache.syncope.common.to.AbstractAttributableTO;
+import org.apache.syncope.common.to.PropagationStatus;
+
+public interface ProvisioningManager<T extends AbstractAttributableTO, M extends AbstractAttributableMod>{
+
+ public Map.Entry<Long, List<PropagationStatus>> create(T subject);
+
+ public Map.Entry<Long, List<PropagationStatus>> update(M subjectMod);
+
+ public List<PropagationStatus> delete(Long subjectId);
+
+ public Long unlink(M subjectMod);
+
+ public Long link(M subjectMod);
+
+ public List<PropagationStatus> deprovision(Long user, Collection<String> resources);
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
index 22001e5..f7a2981 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
@@ -26,6 +26,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import javax.annotation.Resource;
import org.apache.commons.lang3.ArrayUtils;
@@ -34,6 +35,9 @@ import org.apache.syncope.core.persistence.dao.search.SearchCond;
import org.apache.syncope.common.to.RoleTO;
import org.apache.syncope.common.types.ClientExceptionType;
import org.apache.syncope.common.SyncopeClientException;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.core.provisioning.ProvisioningManager;
+import org.apache.syncope.core.provisioning.RoleProvisioningManager;
import org.apache.syncope.common.reqres.BulkAction;
import org.apache.syncope.common.reqres.BulkActionResult;
import org.apache.syncope.common.types.SubjectType;
@@ -53,8 +57,6 @@ import org.apache.syncope.core.rest.data.AttributableTransformer;
import org.apache.syncope.core.rest.data.RoleDataBinder;
import org.apache.syncope.core.util.ApplicationContextProvider;
import org.apache.syncope.core.util.EntitlementUtil;
-import org.apache.syncope.core.workflow.WorkflowResult;
-import org.apache.syncope.core.workflow.role.RoleWorkflowAdapter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Component;
@@ -83,9 +85,6 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
protected RoleDataBinder binder;
@Autowired
- protected RoleWorkflowAdapter rwfAdapter;
-
- @Autowired
protected PropagationManager propagationManager;
@Autowired
@@ -96,6 +95,9 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
@Resource(name = "anonymousUser")
private String anonymousUser;
+
+ @Resource(name = "defaultRoleProvisioningManager")
+ protected RoleProvisioningManager provisioningManager;
@PreAuthorize("hasAnyRole('ROLE_READ', T(org.apache.syncope.common.SyncopeConstants).ANONYMOUS_ENTITLEMENT)")
@Transactional(readOnly = true)
@@ -240,22 +242,9 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
/*
* Actual operations: workflow, propagation
*/
- WorkflowResult<Long> created = rwfAdapter.create(actual);
-
- EntitlementUtil.extendAuthContext(created.getResult());
-
- List<PropagationTask> tasks = propagationManager.getRoleCreateTaskIds(created, actual.getVirAttrs());
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
- PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
-
- final RoleTO savedTO = binder.getRoleTO(created.getResult());
- savedTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());
+ Map.Entry<Long, List<PropagationStatus>> created = provisioningManager.create(roleTO);
+ final RoleTO savedTO = binder.getRoleTO(created.getKey());
+ savedTO.getPropagationStatusTOs().addAll(created.getValue());
return savedTO;
}
@@ -269,23 +258,10 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
RoleMod actual = attrTransformer.transform(roleMod);
LOG.debug("Transformed: {}", actual);
- /*
- * Actual operations: workflow, propagation
- */
- WorkflowResult<Long> updated = rwfAdapter.update(actual);
-
- List<PropagationTask> tasks = propagationManager.getRoleUpdateTaskIds(updated,
- actual.getVirAttrsToRemove(), actual.getVirAttrsToUpdate());
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
- PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
- final RoleTO updatedTO = binder.getRoleTO(updated.getResult());
- updatedTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());
+ Map.Entry<Long, List<PropagationStatus>> updated = provisioningManager.update(roleMod);
+
+ final RoleTO updatedTO = binder.getRoleTO(updated.getKey());
+ updatedTO.getPropagationStatusTOs().addAll(updated.getValue());
return updatedTO;
}
@@ -304,45 +280,12 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
throw sce;
}
- final List<SyncopeRole> toBeDeprovisioned = new ArrayList<SyncopeRole>();
-
- final SyncopeRole syncopeRole = roleDAO.find(roleId);
-
- if (syncopeRole != null) {
- final List<SyncopeRole> descendants = roleDAO.findDescendants(syncopeRole);
- if (descendants != null) {
- // among descendants there is also parent role syncopeRole (to delete)
- toBeDeprovisioned.addAll(descendants);
- }
- }
-
- final List<PropagationTask> tasks = new ArrayList<PropagationTask>();
-
- for (SyncopeRole role : toBeDeprovisioned) {
- // Generate propagation tasks for deleting users from role resources, if they are on those resources only
- // because of the reason being deleted (see SYNCOPE-357)
- for (WorkflowResult<Long> wfResult : binder.getUsersOnResourcesOnlyBecauseOfRole(role.getId())) {
- tasks.addAll(propagationManager.getUserDeleteTaskIds(wfResult));
- }
-
- // Generate propagation tasks for deleting this role from resources
- tasks.addAll(propagationManager.getRoleDeleteTaskIds(role.getId()));
- }
-
+ List<PropagationStatus> statuses = provisioningManager.delete(roleId);
+
RoleTO roleTO = new RoleTO();
roleTO.setId(roleId);
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
- PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
- roleTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());
-
- rwfAdapter.delete(roleId);
+ roleTO.getPropagationStatusTOs().addAll(statuses);
return roleTO;
}
@@ -374,7 +317,9 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
final RoleMod roleMod = new RoleMod();
roleMod.setId(roleId);
roleMod.getResourcesToRemove().addAll(resources);
- return binder.getRoleTO(rwfAdapter.update(roleMod).getResult());
+ final Long updatedResult = provisioningManager.unlink(roleMod);
+
+ return binder.getRoleTO(updatedResult);
}
@PreAuthorize("hasRole('ROLE_UPDATE')")
@@ -384,7 +329,7 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
final RoleMod roleMod = new RoleMod();
roleMod.setId(roleId);
roleMod.getResourcesToAdd().addAll(resources);
- return binder.getRoleTO(rwfAdapter.update(roleMod).getResult());
+ return binder.getRoleTO(provisioningManager.link(roleMod));
}
@PreAuthorize("hasRole('ROLE_UPDATE')")
@@ -414,22 +359,10 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
public RoleTO deprovision(final Long roleId, final Collection<String> resources) {
final SyncopeRole role = binder.getRoleFromId(roleId);
- final Set<String> noPropResourceName = role.getResourceNames();
- noPropResourceName.removeAll(resources);
-
- final List<PropagationTask> tasks =
- propagationManager.getRoleDeleteTaskIds(roleId, new HashSet<String>(resources), noPropResourceName);
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
- PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
+ List<PropagationStatus> statuses = provisioningManager.deprovision(roleId, resources);
final RoleTO updatedTO = binder.getRoleTO(role);
- updatedTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());
+ updatedTO.getPropagationStatusTOs().addAll(statuses);
return updatedTO;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/rest/controller/RouteController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/RouteController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/RouteController.java
new file mode 100644
index 0000000..117d10f
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/RouteController.java
@@ -0,0 +1,92 @@
+/*
+ * 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.core.rest.controller;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import org.apache.syncope.common.to.RouteTO;
+import org.apache.syncope.core.persistence.beans.CamelRoute;
+import org.apache.syncope.core.persistence.dao.NotFoundException;
+import org.apache.syncope.core.persistence.dao.RouteDAO;
+import org.apache.syncope.core.provisioning.camel.SyncopeCamelContext;
+import org.apache.syncope.core.rest.data.RouteDataBinder;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+@Component
+public class RouteController extends AbstractTransactionalController<RouteTO>{
+
+ private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(RouteDataBinder.class);
+
+ @Autowired
+ private RouteDAO routeDao;
+
+ @Autowired
+ private RouteDataBinder binder;
+
+ @Autowired
+ private SyncopeCamelContext context;
+
+
+ @PreAuthorize("hasRole('ROUTE_LIST')")
+ @Transactional(readOnly = true)
+ public List<RouteTO> listRoutes(){
+ List<RouteTO> routes = new ArrayList<RouteTO>();
+ Iterator it = routeDao.findAll().iterator();
+ while(it.hasNext()){
+ routes.add(binder.getRouteTO((CamelRoute) it.next()));
+ }
+ return routes;
+ }
+
+ @PreAuthorize("hasRole('ROUTE_READ')")
+ @Transactional(readOnly = true)
+ public RouteTO readRoute(Long id){
+ CamelRoute route = routeDao.find(id);
+ if (route==null)
+ throw new NotFoundException("Route with id="+id);
+
+ return binder.getRouteTO(route);
+ }
+
+ @PreAuthorize("hasRole('ROUTE_UPDATE')")
+ public void updateRoute(RouteTO routeTO){
+
+ CamelRoute route = routeDao.find(routeTO.getId());
+ if (route==null)
+ throw new NotFoundException("Route with id="+route.getId());
+ route.setRouteContent(routeTO.getRouteContent());
+ routeDao.save(route);
+ LOG.info("UPDATING ROUTE WITH ID {} ", routeTO.getId());
+ LOG.info("NEW ROUTE CONTENT {} ", routeTO.getRouteContent());
+ context.reloadContext(routeDao, routeTO.getId());
+ }
+
+ @Override
+ protected RouteTO resolveReference(Method method, Object... args) throws UnresolvedReferenceException {
+ throw new UnresolvedReferenceException();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
index be426b7..d8fa5f8 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
@@ -18,15 +18,19 @@
*/
package org.apache.syncope.core.rest.controller;
+import java.io.FileNotFoundException;
+import java.io.PrintStream;
import java.lang.reflect.Method;
import java.security.AccessControlException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.annotation.Resource;
import org.apache.syncope.common.mod.StatusMod;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.syncope.common.mod.UserMod;
@@ -41,7 +45,10 @@ import org.apache.syncope.common.SyncopeClientException;
import org.apache.syncope.common.mod.AttributeMod;
import org.apache.syncope.common.mod.MembershipMod;
import org.apache.syncope.common.types.SubjectType;
+import org.apache.syncope.common.to.PropagationStatus;
+import org.apache.syncope.core.persistence.beans.CamelRoute;
import org.apache.syncope.core.persistence.beans.PropagationTask;
+import org.apache.syncope.core.provisioning.UserProvisioningManager;
import org.apache.syncope.core.persistence.beans.role.SyncopeRole;
import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
import org.apache.syncope.core.persistence.dao.SubjectSearchDAO;
@@ -55,6 +62,7 @@ import org.apache.syncope.core.propagation.PropagationException;
import org.apache.syncope.core.propagation.PropagationReporter;
import org.apache.syncope.core.propagation.PropagationTaskExecutor;
import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager;
import org.apache.syncope.core.rest.data.AttributableTransformer;
import org.apache.syncope.core.rest.data.UserDataBinder;
import org.apache.syncope.core.util.ApplicationContextProvider;
@@ -92,9 +100,6 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
protected UserDataBinder binder;
@Autowired
- protected UserWorkflowAdapter uwfAdapter;
-
- @Autowired
protected PropagationManager propagationManager;
@Autowired
@@ -102,6 +107,12 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
@Autowired
protected AttributableTransformer attrTransformer;
+
+ @Autowired
+ protected UserWorkflowAdapter uwfAdapter;
+
+ @Resource(name = "defaultUserProvisioningManager")
+ protected UserProvisioningManager provisioningManager;
@Transactional(readOnly = true)
public boolean isSelfRegAllowed() {
@@ -215,24 +226,11 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
UserTO actual = attrTransformer.transform(userTO);
LOG.debug("Transformed: {}", actual);
- /*
- * Actual operations: workflow, propagation, notification
- */
- WorkflowResult<Map.Entry<Long, Boolean>> created = uwfAdapter.create(actual, storePassword);
-
- List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(
- created, actual.getPassword(), actual.getVirAttrs(), actual.getMemberships());
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
- getBean(PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
+ Map.Entry<Long, List<PropagationStatus>>
+ created = provisioningManager.create(actual,storePassword);
- final UserTO savedTO = binder.getUserTO(created.getResult().getKey());
- savedTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());
+ final UserTO savedTO = binder.getUserTO(created.getKey());
+ savedTO.getPropagationStatusTOs().addAll(created.getValue());
return savedTO;
}
@@ -254,7 +252,8 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
// AttributableMod transformation (if configured)
UserMod actual = attrTransformer.transform(userMod);
LOG.debug("Transformed: {}", actual);
-
+
+ //CAMEL
// SYNCOPE-501: check if there are memberships to be removed with virtual attributes assigned
boolean removeMemberships = false;
for (Long membershipId : actual.getMembershipsToRemove()) {
@@ -269,8 +268,9 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
removeMemberships = true;
}
}
+
//Actual operations: workflow, propagation, notification
- WorkflowResult<Map.Entry<UserMod, Boolean>> updated = uwfAdapter.update(actual);
+ /*WorkflowResult<Map.Entry<UserMod, Boolean>> updated = uwfAdapter.update(actual);
List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated);
if (tasks.isEmpty()) {
@@ -312,25 +312,29 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
}
final UserTO updatedTO = binder.getUserTO(updated.getResult().getKey().getId());
- updatedTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());
+ updatedTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());*/
+ Map.Entry<Long, List<PropagationStatus>> updated = provisioningManager.update(actual,removeMemberships);
+
+ final UserTO updatedTO = binder.getUserTO(updated.getKey());
+ updatedTO.getPropagationStatusTOs().addAll(updated.getValue());
return updatedTO;
}
- protected WorkflowResult<Long> setStatusOnWfAdapter(final SyncopeUser user, final StatusMod statusMod) {
- WorkflowResult<Long> updated;
+ protected Map.Entry<Long, List<PropagationStatus>> setStatusOnWfAdapter(final SyncopeUser user, final StatusMod statusMod) {
+ Map.Entry<Long, List<PropagationStatus>> updated;
switch (statusMod.getType()) {
case SUSPEND:
- updated = uwfAdapter.suspend(user.getId());
+ updated = provisioningManager.suspend(user, statusMod);
break;
case REACTIVATE:
- updated = uwfAdapter.reactivate(user.getId());
+ updated = provisioningManager.reactivate(user, statusMod);
break;
case ACTIVATE:
default:
- updated = uwfAdapter.activate(user.getId(), statusMod.getToken());
+ updated = provisioningManager.activate(user, statusMod);
break;
}
@@ -343,30 +347,10 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
public UserTO status(final StatusMod statusMod) {
SyncopeUser user = binder.getUserFromId(statusMod.getId());
- WorkflowResult<Long> updated;
- if (statusMod.isOnSyncope()) {
+ Map.Entry<Long, List<PropagationStatus>>
updated = setStatusOnWfAdapter(user, statusMod);
- } else {
- updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
- }
-
- // Resources to exclude from propagation
- Set<String> resourcesToBeExcluded = new HashSet<String>(user.getResourceNames());
- resourcesToBeExcluded.removeAll(statusMod.getResourceNames());
-
- List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(
- user, statusMod.getType() != StatusMod.ModType.SUSPEND, resourcesToBeExcluded);
- PropagationReporter propReporter =
- ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propReporter.onPrimaryResourceFailure(tasks);
- }
-
- final UserTO savedTO = binder.getUserTO(updated.getResult());
- savedTO.getPropagationStatusTOs().addAll(propReporter.getStatuses());
+ final UserTO savedTO = binder.getUserTO(updated.getKey());
+ savedTO.getPropagationStatusTOs().addAll(updated.getValue());
return savedTO;
}
@@ -435,23 +419,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
throw sce;
}
- // Note here that we can only notify about "delete", not any other
- // task defined in workflow process definition: this because this
- // information could only be available after uwfAdapter.delete(), which
- // will also effectively remove user from db, thus making virtually
- // impossible by NotificationManager to fetch required user information
- List<PropagationTask> tasks = propagationManager.getUserDeleteTaskIds(userId);
-
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
- getBean(PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
-
- uwfAdapter.delete(userId);
+ List<PropagationStatus> statuses = provisioningManager.delete(userId);
final UserTO deletedTO;
SyncopeUser deleted = userDAO.find(userId);
@@ -461,7 +429,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
} else {
deletedTO = binder.getUserTO(userId);
}
- deletedTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());
+ deletedTO.getPropagationStatusTOs().addAll(statuses);
return deletedTO;
}
@@ -526,7 +494,9 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
final UserMod userMod = new UserMod();
userMod.setId(userId);
userMod.getResourcesToRemove().addAll(resources);
- return binder.getUserTO(uwfAdapter.update(userMod).getResult().getKey().getId());
+ Long updatedId = provisioningManager.unlink(userMod);
+
+ return binder.getUserTO(updatedId);
}
@PreAuthorize("hasRole('USER_UPDATE')")
@@ -536,7 +506,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
final UserMod userMod = new UserMod();
userMod.setId(userId);
userMod.getResourcesToAdd().addAll(resources);
- return binder.getUserTO(uwfAdapter.update(userMod).getResult().getKey().getId());
+ return binder.getUserTO(provisioningManager.link(userMod));
}
@PreAuthorize("hasRole('USER_UPDATE')")
@@ -576,24 +546,12 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
@Transactional(rollbackFor = { Throwable.class })
@Override
public UserTO deprovision(final Long userId, final Collection<String> resources) {
- final SyncopeUser user = binder.getUserFromId(userId);
-
- final Set<String> noPropResourceName = user.getResourceNames();
- noPropResourceName.removeAll(resources);
-
- final List<PropagationTask> tasks =
- propagationManager.getUserDeleteTaskIds(userId, new HashSet<String>(resources), noPropResourceName);
- final PropagationReporter propagationReporter =
- ApplicationContextProvider.getApplicationContext().getBean(PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
+ final SyncopeUser user = binder.getUserFromId(userId);
+
+ List<PropagationStatus> statuses = provisioningManager.deprovision(userId, resources);
final UserTO updatedUserTO = binder.getUserTO(user);
- updatedUserTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());
+ updatedUserTO.getPropagationStatusTOs().addAll(statuses);
return updatedUserTO;
}
@@ -646,4 +604,18 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
throw new UnresolvedReferenceException();
}
+
+ public PrintStream getDefinition() throws FileNotFoundException{
+ /*String result = "";
+ if(provisioningManager instanceof CamelUserProvisioningManager){
+ List l = ((CamelUserProvisioningManager)provisioningManager).getRoutes();
+ Iterator<CamelRoute> it = l.iterator();
+
+ while(it.hasNext()){
+ result += it.next().getRouteContent();
+ }
+ }
+ return new PrintStream(result);*/
+ return null;
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/rest/data/RouteDataBinder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/data/RouteDataBinder.java b/core/src/main/java/org/apache/syncope/core/rest/data/RouteDataBinder.java
new file mode 100644
index 0000000..c1016e6
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/rest/data/RouteDataBinder.java
@@ -0,0 +1,40 @@
+/*
+ * 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.core.rest.data;
+
+
+import org.apache.syncope.common.to.RouteTO;
+import org.apache.syncope.common.util.BeanUtils;
+import org.apache.syncope.core.persistence.beans.CamelRoute;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+@Component
+public class RouteDataBinder {
+
+ private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(RouteDataBinder.class);
+
+ public RouteTO getRouteTO(CamelRoute route){
+
+ RouteTO routeTO = new RouteTO();
+ BeanUtils.copyProperties(route, routeTO);
+ return routeTO;
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java b/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
new file mode 100644
index 0000000..1c44765
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
@@ -0,0 +1,52 @@
+/*
+ * 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.core.services;
+
+import java.util.List;
+import org.apache.syncope.common.services.RouteService;
+import org.apache.syncope.common.to.RouteTO;
+import org.apache.syncope.core.rest.controller.RouteController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class RouteServiceImpl extends AbstractServiceImpl implements RouteService{
+
+ @Autowired
+ private RouteController controller;
+
+ @Override
+ public List<RouteTO> getRoutes() {
+
+ return controller.listRoutes();
+ }
+
+ @Override
+ public RouteTO getRoute(Long id){
+
+ return controller.readRoute(id);
+ }
+
+ @Override
+ public void importRoute(Long id, RouteTO route) {
+ controller.updateRoute(route);
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java b/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
index 8fd0416..fa88e7c 100644
--- a/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
@@ -113,4 +113,14 @@ public class WorkflowServiceImpl extends AbstractServiceImpl implements Workflow
controller.importRoleDefinition(contentType, definition);
}
}
+
+ @Override
+ public Response getRoute(Long id) {
+ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
+
+ @Override
+ public Response getRoutes() {
+ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
index adf7c8d..b356e64 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.core.sync.impl;
+import javax.annotation.Resource;
import org.apache.syncope.core.sync.SyncProfile;
import org.apache.syncope.core.audit.AuditManager;
import org.apache.syncope.core.connid.ConnObjectUtil;
@@ -25,6 +26,8 @@ import org.apache.syncope.core.notification.NotificationManager;
import org.apache.syncope.core.persistence.beans.AbstractSyncTask;
import org.apache.syncope.core.propagation.PropagationTaskExecutor;
import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.provisioning.RoleProvisioningManager;
+import org.apache.syncope.core.provisioning.UserProvisioningManager;
import org.apache.syncope.core.rest.data.RoleDataBinder;
import org.apache.syncope.core.rest.data.UserDataBinder;
import org.apache.syncope.core.sync.AbstractSyncActions;
@@ -99,6 +102,12 @@ public abstract class AbstractSyncopeResultHandler<T extends AbstractSyncTask, A
* Sync profile.
*/
protected SyncProfile<T, A> profile;
+
+ @Resource(name = "defaultUserProvisioningManager")
+ protected UserProvisioningManager userProvisioningManager;
+
+ @Resource(name = "defaultRoleProvisioningManager")
+ protected RoleProvisioningManager roleProvisioningManager;
public void setProfile(final SyncProfile<T, A> profile) {
this.profile = profile;
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
index 8eb3960..e544687 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
@@ -30,6 +30,7 @@ import org.apache.syncope.common.mod.RoleMod;
import org.apache.syncope.common.mod.UserMod;
import org.apache.syncope.common.to.AbstractSubjectTO;
import org.apache.syncope.common.to.AttributeTO;
+import org.apache.syncope.common.to.PropagationStatus;
import org.apache.syncope.common.to.RoleTO;
import org.apache.syncope.common.types.AttributableType;
import org.apache.syncope.core.persistence.beans.PropagationTask;
@@ -85,22 +86,12 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
RoleTO roleTO = RoleTO.class.cast(subjectTO);
- WorkflowResult<Long> created = rwfAdapter.create(roleTO);
- AttributeTO roleOwner = roleTO.getAttrMap().get(StringUtils.EMPTY);
- if (roleOwner != null) {
- roleOwnerMap.put(created.getResult(), roleOwner.getValues().iterator().next());
- }
-
- EntitlementUtil.extendAuthContext(created.getResult());
-
- List<PropagationTask> tasks = propagationManager.getRoleCreateTaskIds(created,
- roleTO.getVirAttrs(), Collections.singleton(profile.getSyncTask().getResource().getName()));
+ Map.Entry<Long, List<PropagationStatus>> created = roleProvisioningManager.createInSync
+ (roleTO, roleOwnerMap, Collections.singleton(profile.getSyncTask().getResource().getName()));
- taskExecutor.execute(tasks);
+ roleTO = roleDataBinder.getRoleTO(created.getKey());
- roleTO = roleDataBinder.getRoleTO(created.getResult());
-
- result.setId(created.getResult());
+ result.setId(created.getKey());
result.setName(getName(subjectTO));
return roleTO;
@@ -135,7 +126,9 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
RoleMod roleMod = RoleMod.class.cast(subjectMod);
- final WorkflowResult<Long> updated = rwfAdapter.update(roleMod);
+ Map.Entry<Long, List<PropagationStatus>> updated = roleProvisioningManager.update(roleMod);
+
+ //moved after role provisioning manager
String roleOwner = null;
for (AttributeMod attrMod : roleMod.getAttrsToUpdate()) {
if (attrMod.getSchema().isEmpty()) {
@@ -143,17 +136,11 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
}
}
if (roleOwner != null) {
- roleOwnerMap.put(updated.getResult(), roleOwner);
+ roleOwnerMap.put(updated.getKey(), roleOwner);
}
- List<PropagationTask> tasks = propagationManager.getRoleUpdateTaskIds(updated,
- roleMod.getVirAttrsToRemove(),
- roleMod.getVirAttrsToUpdate(),
- Collections.singleton(profile.getSyncTask().getResource().getName()));
-
- taskExecutor.execute(tasks);
-
- final RoleTO after = roleDataBinder.getRoleTO(updated.getResult());
+ final RoleTO after = roleDataBinder.getRoleTO(updated.getKey());
+
result.setName(getName(after));
return after;
@@ -183,6 +170,6 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
LOG.error("Could not propagate user " + id, e);
}
- rwfAdapter.delete(id);
+ roleProvisioningManager.delete(id);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
index a8cc00b..e5bdc06 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
@@ -29,6 +29,7 @@ import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.syncope.common.mod.AbstractSubjectMod;
import org.apache.syncope.common.mod.UserMod;
import org.apache.syncope.common.to.AbstractSubjectTO;
+import org.apache.syncope.common.to.PropagationStatus;
import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.common.types.AttributableType;
import org.apache.syncope.core.persistence.beans.PropagationTask;
@@ -80,19 +81,13 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
UserTO userTO = UserTO.class.cast(subjectTO);
Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getSyncTask());
- WorkflowResult<Map.Entry<Long, Boolean>> created =
- uwfAdapter.create(userTO, true, enabled, true);
+ //Delegate User Workflow Creation and its Propagation to provisioning manager
+ Map.Entry<Long, List<PropagationStatus>>
+ created = userProvisioningManager.create(userTO, true, true, enabled,Collections.singleton(profile.getSyncTask().getResource().getName()));
- List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(created,
- userTO.getPassword(), userTO.getVirAttrs(),
- Collections.singleton(profile.getSyncTask().getResource().getName()),
- userTO.getMemberships());
+ userTO = userDataBinder.getUserTO(created.getKey());
- taskExecutor.execute(tasks);
-
- userTO = userDataBinder.getUserTO(created.getResult().getKey());
-
- result.setId(created.getResult().getKey());
+ result.setId(created.getKey());
return userTO;
}
@@ -126,7 +121,7 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
final UserMod userMod = UserMod.class.cast(subjectMod);
- WorkflowResult<Map.Entry<UserMod, Boolean>> updated;
+ /*WorkflowResult<Map.Entry<UserMod, Boolean>> updated;
try {
updated = uwfAdapter.update(userMod);
} catch (Exception e) {
@@ -140,10 +135,10 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
new AbstractMap.SimpleEntry<UserMod, Boolean>(userMod, false),
new PropagationByResource(),
new HashSet<String>());
- }
+ }*/
final Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getSyncTask());
- if (enabled != null) {
+ /*if (enabled != null) {
SyncopeUser user = userDAO.find(before.getId());
WorkflowResult<Long> enableUpdate = null;
@@ -168,9 +163,11 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
updated, updated.getResult().getKey().getPassword() != null,
Collections.singleton(profile.getSyncTask().getResource().getName()));
- taskExecutor.execute(tasks);
+ taskExecutor.execute(tasks);*/
+
+ Map.Entry<Long, List<PropagationStatus>> updated = userProvisioningManager.updateInSync(userMod, before.getId(), result,enabled, Collections.singleton(profile.getSyncTask().getResource().getName()));
- return userDataBinder.getUserTO(updated.getResult().getKey().getId());
+ return userDataBinder.getUserTO(updated.getKey());
}
@Override
@@ -191,8 +188,8 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
@Override
protected void delete(final Long id) {
try {
- taskExecutor.execute(
- propagationManager.getUserDeleteTaskIds(id, profile.getSyncTask().getResource().getName()));
+ userProvisioningManager.
+ delete(id,Collections.<String>singleton(profile.getSyncTask().getResource().getName()));
} catch (Exception e) {
// A propagation failure doesn't imply a synchronization failure.
// The propagation exception status will be reported into the propagation task execution.
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/util/RouteManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/util/RouteManager.java b/core/src/main/java/org/apache/syncope/core/util/RouteManager.java
new file mode 100644
index 0000000..67ebd82
--- /dev/null
+++ b/core/src/main/java/org/apache/syncope/core/util/RouteManager.java
@@ -0,0 +1,39 @@
+/*
+ * 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.core.util;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.syncope.core.persistence.beans.CamelRoute;
+
+
+public class RouteManager {
+ private static List<CamelRoute> routelist;
+
+ public static void addElement(CamelRoute route){
+ if(routelist == null) routelist= new ArrayList<CamelRoute>();
+ routelist.add(route);
+ }
+
+ public static List<CamelRoute> getRoutes(){
+ if(routelist == null) routelist= new ArrayList<CamelRoute>();
+ return routelist;
+ }
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java b/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java
index 7b1ee15..ef4a46d 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/WorkflowUserSuspender.java
@@ -21,12 +21,14 @@ package org.apache.syncope.core.workflow;
import java.util.AbstractMap.SimpleEntry;
import java.util.List;
import java.util.Map;
+import javax.annotation.Resource;
import org.apache.syncope.common.mod.UserMod;
import org.apache.syncope.core.persistence.beans.PropagationTask;
import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
import org.apache.syncope.core.policy.UserSuspender;
import org.apache.syncope.core.propagation.PropagationTaskExecutor;
import org.apache.syncope.core.propagation.impl.PropagationManager;
+import org.apache.syncope.core.provisioning.UserProvisioningManager;
import org.apache.syncope.core.workflow.user.UserWorkflowAdapter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -38,14 +40,8 @@ public class WorkflowUserSuspender implements UserSuspender {
private static final Logger LOG = LoggerFactory.getLogger(WorkflowUserSuspender.class);
- @Autowired
- private UserWorkflowAdapter uwfAdapter;
-
- @Autowired
- private PropagationManager propagationManager;
-
- @Autowired
- private PropagationTaskExecutor taskExecutor;
+ @Resource(name = "defaultUserProvisioningManager")
+ protected UserProvisioningManager provisioningManager;
@Override
public void suspend(final SyncopeUser user, final boolean suspend) {
@@ -55,21 +51,8 @@ public class WorkflowUserSuspender implements UserSuspender {
// reduce failed logins number to avoid multiple request
user.setFailedLogins(user.getFailedLogins() - 1);
- // disable user
- final WorkflowResult<Long> updated = uwfAdapter.suspend(user);
-
- // propagate suspension if and only if it is required by policy
- if (suspend) {
- UserMod userMod = new UserMod();
- userMod.setId(updated.getResult());
-
- final List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(
- new WorkflowResult<Map.Entry<UserMod, Boolean>>(
- new SimpleEntry<UserMod, Boolean>(userMod, Boolean.FALSE),
- updated.getPropByRes(), updated.getPerformedTasks()));
-
- taskExecutor.execute(tasks);
- }
+ // disable user and propagate suspension if and only if it is required by policy
+ provisioningManager.innerSuspend(user, suspend);
} catch (Exception e) {
LOG.error("Error during user suspension", e);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java b/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java
index 9425f17..f059a9a 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java
@@ -19,9 +19,7 @@
package org.apache.syncope.core.workflow.user;
import java.util.Map;
-import java.util.Map.Entry;
import org.apache.syncope.common.mod.UserMod;
-import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
import org.apache.syncope.core.persistence.dao.UserDAO;
import org.apache.syncope.core.rest.controller.UnauthorizedRoleException;
@@ -61,13 +59,6 @@ public abstract class AbstractUserWorkflowAdapter implements UserWorkflowAdapter
return null;
}
- @Override
- public WorkflowResult<Entry<Long, Boolean>> create(final UserTO userTO, final boolean storePassword)
- throws UnauthorizedRoleException, WorkflowException {
-
- return create(userTO, false, storePassword);
- }
-
protected abstract WorkflowResult<Long> doActivate(SyncopeUser user, String token) throws WorkflowException;
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java b/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java
index 1ffc4c7..8713261 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java
@@ -228,4 +228,9 @@ public class NoOpUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
throw new WorkflowException(new UnsupportedOperationException("Not supported."));
}
+
+ @Override
+ public WorkflowResult<Map.Entry<Long, Boolean>> create(UserTO userTO, boolean storePassword) throws UnauthorizedRoleException, WorkflowException {
+ return create(userTO, false, true);
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/5b3b124a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java b/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
index f6cc322..460b73b 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
@@ -883,4 +883,9 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
return new WorkflowResult<UserMod>(userMod, propByRes, postTasks);
}
+
+ @Override
+ public WorkflowResult<Map.Entry<Long, Boolean>> create(UserTO userTO, boolean storePassword) throws UnauthorizedRoleException, WorkflowException {
+ return create(userTO, false, storePassword);
+ }
}
[21/53] [abbrv] syncope git commit: Code formatting with netbeans
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
index 92b3cfb..d30c624 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
@@ -55,7 +55,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-
public class CamelUserProvisioningManager implements UserProvisioningManager {
private static final Logger LOG = LoggerFactory.getLogger(CamelUserProvisioningManager.class);
@@ -70,7 +69,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
@Autowired
protected RouteDAO routeDAO;
-
+
@Autowired
protected SyncopeCamelContext contextFactory;
@@ -90,7 +89,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
return content.toString();
}
-
+
public void startContext() throws Exception {
getContext().start();
}
@@ -170,15 +169,15 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
return create(userTO, true, false, null, Collections.<String>emptySet());
}
-
-
+
public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, boolean storePassword) {
return create(userTO, storePassword, false, null, Collections.<String>emptySet());
}
@Override
- public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword, boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources) {
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword,
+ boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources) {
String uri = "direct:createPort";
PollingConsumer pollingConsumer = getConsumer(uri);
@@ -209,13 +208,12 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
public Map.Entry<Long, List<PropagationStatus>> update(final UserMod userMod) {
return update(userMod, false);
}
-
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> update(UserMod userMod, boolean removeMemberships) {
String uri = "direct:updatePort";
PollingConsumer pollingConsumer = getConsumer(uri);
-
+
Map<String, Object> props = new HashMap<String, Object>();
props.put("removeMemberships", removeMemberships);
@@ -227,10 +225,9 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
}
- return o.getIn().getBody(Map.Entry.class);
+ return o.getIn().getBody(Map.Entry.class);
}
-
@Override
public List<PropagationStatus> delete(final Long userId) {
@@ -286,7 +283,8 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
if (statusMod.isOnSyncope()) {
sendMessage("direct:activateUser", user.getId(), props);
} else {
- WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
+ WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().
+ toLowerCase());
sendMessage("direct:statusUser", updated, props);
}
@@ -311,7 +309,8 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
if (statusMod.isOnSyncope()) {
sendMessage("direct:reactivateUser", user.getId(), props);
} else {
- WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
+ WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().
+ toLowerCase());
sendMessage("direct:statusUser", updated, props);
}
@@ -337,7 +336,8 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
if (statusMod.isOnSyncope()) {
sendMessage("direct:suspendUser", user.getId(), props);
} else {
- WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
+ WorkflowResult<Long> updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().
+ toLowerCase());
sendMessage("direct:statusUser", updated, props);
}
@@ -389,7 +389,8 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
- public Map.Entry<Long, List<PropagationStatus>> updateInSync(UserMod userMod, Long id, SyncResult result, Boolean enabled, Set<String> excludedResources) {
+ public Map.Entry<Long, List<PropagationStatus>> updateInSync(UserMod userMod, Long id, SyncResult result,
+ Boolean enabled, Set<String> excludedResources) {
String uri = "direct:updateSyncPort";
PollingConsumer pollingConsumer = getConsumer(uri);
@@ -456,7 +457,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
public void confirmPasswordReset(SyncopeUser user, final String token, final String password) {
String uri = "direct:confirmPwdResetPort";
PollingConsumer pollingConsumer = getConsumer(uri);
-
+
Map<String, Object> props = new HashMap<String, Object>();
props.put("user", user);
props.put("userId", user.getId());
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
index 6381649..c529dcf 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel;
import java.io.ByteArrayInputStream;
@@ -44,38 +43,39 @@ import org.springframework.stereotype.Component;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
-
@Component
-public class SyncopeCamelContext{
+public class SyncopeCamelContext {
private static final Logger LOG = LoggerFactory.getLogger(SyncopeCamelContext.class);
- private CamelContext camelContext = null;
-
- public SyncopeCamelContext() {
+ private CamelContext camelContext = null;
+
+ public SyncopeCamelContext() {
}
-
- public CamelContext getContext(RouteDAO routeDAO){
- if(camelContext == null) camelContext = new SpringCamelContext(ApplicationContextProvider.getApplicationContext());
- if(camelContext.getRouteDefinitions().isEmpty()){
-
+ public CamelContext getContext(RouteDAO routeDAO) {
+
+ if (camelContext == null) {
+ camelContext = new SpringCamelContext(ApplicationContextProvider.getApplicationContext());
+ }
+ if (camelContext.getRouteDefinitions().isEmpty()) {
+
List<CamelRoute> crl = routeDAO.findAll();
- LOG.info("{} route(s) are going to be loaded ", crl.size());
+ LOG.info("{} route(s) are going to be loaded ", crl.size());
loadContext(routeDAO, crl);
-
+
try {
camelContext.start();
} catch (Exception ex) {
LOG.error("Error during staring camel context {}", ex);
}
}
-
+
return camelContext;
}
-
- public void loadContext(RouteDAO routeDAO, List<CamelRoute> crl){
-
+
+ public void loadContext(RouteDAO routeDAO, List<CamelRoute> crl) {
+
try {
DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
JAXBContext jaxbContext = JAXBContext.newInstance(Constants.JAXB_CONTEXT_PACKAGES);
@@ -84,7 +84,8 @@ public class SyncopeCamelContext{
for (int s = 0; s < crl.size(); s++) {
- InputStream is = new ByteArrayInputStream( URLDecoder.decode(crl.get(s).getRouteContent(), "UTF-8").getBytes());
+ InputStream is = new ByteArrayInputStream(URLDecoder.decode(crl.get(s).getRouteContent(), "UTF-8").
+ getBytes());
Document doc = dBuilder.parse(is);
doc.getDocumentElement().normalize();
Node routeEl = doc.getElementsByTagName("route").item(0);
@@ -96,42 +97,44 @@ public class SyncopeCamelContext{
} catch (Exception ex) {
LOG.error("Error during loading camel context {}", ex);
}
-
+
}
-
- public void reloadContext(RouteDAO routeDAO){
-
+
+ public void reloadContext(RouteDAO routeDAO) {
+
List<CamelRoute> crl = routeDAO.findAll();
- if(camelContext == null) getContext(routeDAO);
- else {
- if( ! camelContext.getRouteDefinitions().isEmpty()){
- for (Iterator<RouteDefinition> it = camelContext.getRouteDefinitions().iterator(); it.hasNext(); ) {
+ if (camelContext == null) {
+ getContext(routeDAO);
+ } else {
+ if (!camelContext.getRouteDefinitions().isEmpty()) {
+ for (Iterator<RouteDefinition> it = camelContext.getRouteDefinitions().iterator(); it.hasNext();) {
RouteDefinition ard = it.next();
- it.remove();
- }
+ it.remove();
+ }
}
loadContext(routeDAO, crl);
}
}
-
- public void reloadContext(RouteDAO routeDAO, Long routeId){
-
- if(camelContext == null) getContext(routeDAO);
- else {
- if( ! camelContext.getRouteDefinitions().isEmpty()){
-
+
+ public void reloadContext(RouteDAO routeDAO, Long routeId) {
+
+ if (camelContext == null) {
+ getContext(routeDAO);
+ } else {
+ if (!camelContext.getRouteDefinitions().isEmpty()) {
+
camelContext.getRouteDefinitions().remove(routeId.intValue());
List<CamelRoute> crl = new ArrayList<CamelRoute>();
crl.add(routeDAO.find(routeId));
loadContext(routeDAO, crl);
}
-
+
}
-
+
}
-
- public List<RouteDefinition> getDefinitions(){
+
+ public List<RouteDefinition> getDefinitions() {
return camelContext.getRouteDefinitions();
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
index 2c34090..2af3d37 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.AbstractMap;
@@ -41,22 +40,23 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultRoleCreatePropagation implements Processor{
+public class DefaultRoleCreatePropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleCreatePropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
@Override
- public void process(Exchange exchange){
-
+ public void process(Exchange exchange) {
+
WorkflowResult<Long> created = (WorkflowResult) exchange.getIn().getBody();
RoleTO subject = exchange.getProperty("subject", RoleTO.class);
- Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
-
+ Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
+
EntitlementUtil.extendAuthContext(created.getResult());
List<PropagationTask> tasks = propagationManager.getRoleCreateTaskIds(created, subject.getVirAttrs());
@@ -68,11 +68,11 @@ public class DefaultRoleCreatePropagation implements Processor{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
+
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
created.getResult(), propagationReporter.getStatuses());
-
+
exchange.getOut().setBody(result);
}
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
index c216c41..d796d6d 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
@@ -2,23 +2,22 @@ package org.apache.syncope.core.provisioning.camel.processors;
/*
* Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
+ * 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
+ * with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * 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
+ * KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
-
import java.util.AbstractMap;
import java.util.Collections;
import java.util.List;
@@ -41,25 +40,25 @@ import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Component
-public class DefaultRoleCreateSyncPropagation implements Processor{
+public class DefaultRoleCreateSyncPropagation implements Processor {
-
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleCreateSyncPropagation.class);
-
+
@Override
- public void process(Exchange exchange){
-
+ public void process(Exchange exchange) {
+
WorkflowResult<Long> created = (WorkflowResult) exchange.getIn().getBody();
-
+
RoleTO actual = exchange.getProperty("subject", RoleTO.class);
Map<Long, String> roleOwnerMap = exchange.getProperty("roleOwnerMap", Map.class);
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
-
+
AttributeTO roleOwner = actual.getAttrMap().get(StringUtils.EMPTY);
if (roleOwner != null) {
@@ -72,10 +71,10 @@ public class DefaultRoleCreateSyncPropagation implements Processor{
actual.getVirAttrs(), excludedResource);
taskExecutor.execute(tasks);
-
+
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
created.getResult(), Collections.<PropagationStatus>emptyList());
-
+
exchange.getOut().setBody(result);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
index 6523b76..1c00131 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeletePropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.ArrayList;
@@ -40,25 +39,30 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultRoleDeletePropagation implements Processor{
+public class DefaultRoleDeletePropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleDeletePropagation.class);
+
@Autowired
protected RoleWorkflowAdapter rwfAdapter;
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
- protected PropagationTaskExecutor taskExecutor;
+ protected PropagationTaskExecutor taskExecutor;
+
@Autowired
protected RoleDAO roleDAO;
+
@Autowired
protected RoleDataBinder binder;
-
+
@Override
public void process(Exchange exchange) throws Exception {
-
+
Long subjectId = exchange.getIn().getBody(Long.class);
-
+
final List<SyncopeRole> toBeDeprovisioned = new ArrayList<SyncopeRole>();
final SyncopeRole syncopeRole = roleDAO.find(subjectId);
@@ -92,11 +96,9 @@ public class DefaultRoleDeletePropagation implements Processor{
} catch (PropagationException e) {
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
- }
-
+ }
+
exchange.setProperty("statuses", propagationReporter.getStatuses());
}
-
-
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
index 77e9e73..a7c35fb 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.HashSet;
@@ -38,29 +37,32 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultRoleDeprovisionPropagation implements Processor{
+public class DefaultRoleDeprovisionPropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeprovisionPropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
+
@Autowired
protected RoleDataBinder binder;
-
+
@Override
- public void process(Exchange exchange){
-
+ public void process(Exchange exchange) {
+
Long roleId = exchange.getIn().getBody(Long.class);
List<String> resources = exchange.getProperty("resources", List.class);
-
+
final SyncopeRole role = binder.getRoleFromId(roleId);
-
+
final Set<String> noPropResourceName = role.getResourceNames();
noPropResourceName.removeAll(resources);
-
- final List<PropagationTask> tasks = propagationManager.getRoleDeleteTaskIds(roleId, new HashSet<String>(resources), noPropResourceName);
+
+ final List<PropagationTask> tasks = propagationManager.getRoleDeleteTaskIds(roleId, new HashSet<String>(
+ resources), noPropResourceName);
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
PropagationReporter.class);
try {
@@ -69,8 +71,8 @@ public class DefaultRoleDeprovisionPropagation implements Processor{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
+
exchange.getOut().setBody(propagationReporter.getStatuses());
- }
-
+ }
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
index 30fe08d..90d37dd 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
@@ -40,25 +40,27 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultRoleUpdatePropagation implements Processor{
+public class DefaultRoleUpdatePropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdatePropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
+
@Autowired
protected UserDataBinder binder;
-
+
@Override
- public void process(Exchange exchange){
- WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
- RoleMod subjectMod = exchange.getProperty("subjectMod", RoleMod.class);
+ public void process(Exchange exchange) {
+ WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
+ RoleMod subjectMod = exchange.getProperty("subjectMod", RoleMod.class);
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
-
+
List<PropagationTask> tasks = propagationManager.getRoleUpdateTaskIds(updated,
- subjectMod.getVirAttrsToRemove(), subjectMod.getVirAttrsToUpdate(),excludedResource);
+ subjectMod.getVirAttrsToRemove(), subjectMod.getVirAttrsToUpdate(), excludedResource);
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
PropagationReporter.class);
try {
@@ -67,11 +69,11 @@ public class DefaultRoleUpdatePropagation implements Processor{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
+
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
updated.getResult(), propagationReporter.getStatuses());
-
+
exchange.getOut().setBody(result);
}
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
index 3ffa5b6..f3d9d74 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserConfirmPwdResetPropagation.java
@@ -35,17 +35,18 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserConfirmPwdResetPropagation implements Processor{
+public class DefaultUserConfirmPwdResetPropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserConfirmPwdResetPropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
@Override
- public void process(Exchange exchange){
+ public void process(Exchange exchange) {
SyncopeUser user = exchange.getProperty("user", SyncopeUser.class);
List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(user, null, null);
@@ -56,6 +57,6 @@ public class DefaultUserConfirmPwdResetPropagation implements Processor{
} catch (PropagationException e) {
LOG.error("Error propagation primary resource", e);
propReporter.onPrimaryResourceFailure(tasks);
- }
+ }
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
index 3d2b18d..82ba0ab 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.AbstractMap;
@@ -40,24 +39,25 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserCreatePropagation implements Processor{
+public class DefaultUserCreatePropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserCreatePropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
@Override
- public void process(Exchange exchange){
-
- if((exchange.getIn().getBody() instanceof WorkflowResult)){
-
- WorkflowResult<Map.Entry<Long, Boolean>> created = (WorkflowResult) exchange.getIn().getBody();
+ public void process(Exchange exchange) {
+
+ if ((exchange.getIn().getBody() instanceof WorkflowResult)) {
+
+ WorkflowResult<Map.Entry<Long, Boolean>> created = (WorkflowResult) exchange.getIn().getBody();
UserTO actual = exchange.getProperty("actual", UserTO.class);
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
-
+
List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(
created, actual.getPassword(), actual.getVirAttrs(), excludedResource, actual.getMemberships());
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
@@ -68,11 +68,12 @@ public class DefaultUserCreatePropagation implements Processor{
LOG.error("Error propagation primary resource {}", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
- Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(created.getResult().getKey(), propagationReporter.getStatuses());
+
+ Map.Entry<Long, List<PropagationStatus>> result =
+ new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(created.getResult().getKey(),
+ propagationReporter.getStatuses());
exchange.getOut().setBody(result);
- }
+ }
}
-
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
index b8fa699..3f80459 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.List;
@@ -35,28 +34,30 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserDeletePropagation implements Processor{
-
+public class DefaultUserDeletePropagation implements Processor {
+
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeletePropagation.class);
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
@Override
public void process(Exchange exchange) throws Exception {
-
- Long userId = (Long) exchange.getIn().getBody();
+
+ Long userId = (Long) exchange.getIn().getBody();
LOG.info("UserId {} ", userId);
-
- Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
-
+
+ Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
+
// Note here that we can only notify about "delete", not any other
// task defined in workflow process definition: this because this
// information could only be available after uwfAdapter.delete(), which
// will also effectively remove user from db, thus making virtually
// impossible by NotificationManager to fetch required user information
- List<PropagationTask> tasks = propagationManager.getUserDeleteTaskIds(userId,excludedResource);
+ List<PropagationTask> tasks = propagationManager.getUserDeleteTaskIds(userId, excludedResource);
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
getBean(PropagationReporter.class);
@@ -66,8 +67,8 @@ public class DefaultUserDeletePropagation implements Processor{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
+
exchange.setProperty("statuses", propagationReporter.getStatuses());
}
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
index 2d2eba9..a529dea 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
@@ -37,28 +37,30 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserDeprovisionPropagation implements Processor{
+public class DefaultUserDeprovisionPropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserDeprovisionPropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
+
@Autowired
protected UserDataBinder binder;
-
+
@Override
- public void process(Exchange exchange){
-
+ public void process(Exchange exchange) {
+
Long userId = exchange.getIn().getBody(Long.class);
List<String> resources = exchange.getProperty("resources", List.class);
-
- final SyncopeUser user = binder.getUserFromId(userId);
-
+
+ final SyncopeUser user = binder.getUserFromId(userId);
+
final Set<String> noPropResourceName = user.getResourceNames();
noPropResourceName.removeAll(resources);
-
+
final List<PropagationTask> tasks =
propagationManager.getUserDeleteTaskIds(userId, new HashSet<String>(resources), noPropResourceName);
final PropagationReporter propagationReporter =
@@ -69,8 +71,8 @@ public class DefaultUserDeprovisionPropagation implements Processor{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
+
exchange.getOut().setBody(propagationReporter.getStatuses());
}
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
index 8bbc246..cc167d7 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.AbstractMap;
@@ -42,22 +41,24 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserStatusPropagation implements Processor{
-
+public class DefaultUserStatusPropagation implements Processor {
+
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserStatusPropagation.class);
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
@Override
- public void process(Exchange exchange){
-
+ public void process(Exchange exchange) {
+
WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
-
+
SyncopeUser user = exchange.getProperty("user", SyncopeUser.class);
StatusMod statusMod = exchange.getProperty("statusMod", StatusMod.class);
-
+
Set<String> resourcesToBeExcluded = new HashSet<String>(user.getResourceNames());
resourcesToBeExcluded.removeAll(statusMod.getResourceNames());
@@ -71,8 +72,9 @@ public class DefaultUserStatusPropagation implements Processor{
LOG.error("Error propagation primary resource", e);
propReporter.onPrimaryResourceFailure(tasks);
}
-
- Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult(), propReporter.getStatuses());
- exchange.getOut().setBody(result);
- }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ updated.getResult(), propReporter.getStatuses());
+ exchange.getOut().setBody(result);
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
index 48eb3d9..a931a5b 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.AbstractMap;
@@ -42,39 +41,44 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserUpdateInSyncPropagation implements Processor{
+public class DefaultUserUpdateInSyncPropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdateInSyncPropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
+
@Autowired
protected UserDataBinder binder;
+
@Autowired
protected UserDAO userDAO;
-
+
@Override
- public void process(Exchange exchange){
-
- WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
+ public void process(Exchange exchange) {
+
+ WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
+
+ Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
+
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
+
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated, updated.getResult().getKey().
+ getPassword() != null, excludedResource);
- Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
-
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
- getBean(PropagationReporter.class);
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
- List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated,updated.getResult().getKey().getPassword() != null,excludedResource);
-
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
-
- Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult().getKey().getId(), propagationReporter.getStatuses());
- exchange.getOut().setBody(result);
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ updated.getResult().getKey().getId(), propagationReporter.getStatuses());
+ exchange.getOut().setBody(result);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
index c8ffe34..a94bea5 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.AbstractMap;
@@ -45,78 +44,81 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserUpdatePropagation implements Processor{
+public class DefaultUserUpdatePropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserUpdatePropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
+
@Autowired
protected UserDataBinder binder;
-
+
@Override
- public void process(Exchange exchange){
-
- WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
- UserMod actual = exchange.getProperty("actual", UserMod.class);
- boolean removeMemberships = exchange.getProperty("removeMemberships", boolean.class);
-
- // SYNCOPE-501: check if there are memberships to be removed with virtual attributes assigned
- /*for (Long membershipId : actual.getMembershipsToRemove()) {
- if (!binder.fillMembershipVirtual(
- null,
- null,
- membershipId,
- Collections.<String>emptySet(),
- Collections.<AttributeMod>emptySet(),
- true).isEmpty()) {
+ public void process(Exchange exchange) {
- removeMemberships = true;
- }
- }*/
-
- List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated);
- if (tasks.isEmpty()) {
- // SYNCOPE-459: take care of user virtual attributes ...
- final PropagationByResource propByResVirAttr = binder.fillVirtual(
+ WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
+ UserMod actual = exchange.getProperty("actual", UserMod.class);
+ boolean removeMemberships = exchange.getProperty("removeMemberships", boolean.class);
+
+ // SYNCOPE-501: check if there are memberships to be removed with virtual attributes assigned
+ /* for (Long membershipId :
+ * actual.getMembershipsToRemove()) {
+ * if (!binder.fillMembershipVirtual(
+ * null,
+ * null,
+ * membershipId,
+ * Collections.<String>emptySet(),
+ * Collections.<AttributeMod>emptySet(),
+ * true).isEmpty()) {
+ *
+ * removeMemberships = true;
+ * }
+ * } */
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated);
+ if (tasks.isEmpty()) {
+ // SYNCOPE-459: take care of user virtual attributes ...
+ final PropagationByResource propByResVirAttr = binder.fillVirtual(
+ updated.getResult().getKey().getId(),
+ actual.getVirAttrsToRemove(),
+ actual.getVirAttrsToUpdate());
+ // SYNCOPE-501: update only virtual attributes (if any of them changed), password propagation is
+ // not required, take care also of membership virtual attributes
+ boolean addOrUpdateMemberships = false;
+ for (MembershipMod membershipMod : actual.getMembershipsToAdd()) {
+ if (!binder.fillMembershipVirtual(
updated.getResult().getKey().getId(),
- actual.getVirAttrsToRemove(),
- actual.getVirAttrsToUpdate());
- // SYNCOPE-501: update only virtual attributes (if any of them changed), password propagation is
- // not required, take care also of membership virtual attributes
- boolean addOrUpdateMemberships = false;
- for (MembershipMod membershipMod : actual.getMembershipsToAdd()) {
- if (!binder.fillMembershipVirtual(
- updated.getResult().getKey().getId(),
- membershipMod.getRole(),
- null,
- membershipMod.getVirAttrsToRemove(),
- membershipMod.getVirAttrsToUpdate(),
- false).isEmpty()) {
+ membershipMod.getRole(),
+ null,
+ membershipMod.getVirAttrsToRemove(),
+ membershipMod.getVirAttrsToUpdate(),
+ false).isEmpty()) {
- addOrUpdateMemberships = true;
- }
+ addOrUpdateMemberships = true;
}
- tasks.addAll(!propByResVirAttr.isEmpty() || addOrUpdateMemberships || removeMemberships
- ? propagationManager.getUserUpdateTaskIds(updated, false, null)
- : Collections.<PropagationTask>emptyList());
}
+ tasks.addAll(!propByResVirAttr.isEmpty() || addOrUpdateMemberships || removeMemberships
+ ? propagationManager.getUserUpdateTaskIds(updated, false, null)
+ : Collections.<PropagationTask>emptyList());
+ }
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
- getBean(PropagationReporter.class);
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
- if (!tasks.isEmpty()) {
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
+ if (!tasks.isEmpty()) {
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
}
-
- Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult().getKey().getId(), propagationReporter.getStatuses());
- exchange.getOut().setBody(result);
+ }
+
+ Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ updated.getResult().getKey().getId(), propagationReporter.getStatuses());
+ exchange.getOut().setBody(result);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
index e20c84e..88cd160 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.AbstractMap.SimpleEntry;
@@ -35,19 +34,20 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class DefaultUserWFSuspendPropagation implements Processor{
+public class DefaultUserWFSuspendPropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserWFSuspendPropagation.class);
-
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
@Override
- public void process(Exchange exchange){
-
- WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
+ public void process(Exchange exchange) {
+
+ WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
Boolean suspend = exchange.getProperty("suspend", Boolean.class);
if (suspend) {
@@ -62,5 +62,5 @@ public class DefaultUserWFSuspendPropagation implements Processor{
taskExecutor.execute(tasks);
}
}
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
index b2acdfb..7cb7dfa 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel.processors;
import java.util.Map;
@@ -33,42 +32,43 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
-public class UserStatusOnSync implements Processor{
-
+public class UserStatusOnSync implements Processor {
+
private static final Logger LOG = LoggerFactory.getLogger(UserStatusOnSync.class);
-
+
@Autowired
protected UserDAO userDAO;
+
@Autowired
protected UserWorkflowAdapter uwfAdapter;
-
+
@Override
- public void process(Exchange exchange){
-
- WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
-
+ public void process(Exchange exchange) {
+
+ WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
+
Boolean enabled = exchange.getProperty("enabled", Boolean.class);
Long id = exchange.getProperty("id", Long.class);
-
+
if (enabled != null) {
- SyncopeUser user = userDAO.find(id);
+ SyncopeUser user = userDAO.find(id);
- WorkflowResult<Long> enableUpdate = null;
- if (user.isSuspended() == null) {
- enableUpdate = uwfAdapter.activate(id, null);
- } else if (enabled && user.isSuspended()) {
- enableUpdate = uwfAdapter.reactivate(id);
- } else if (!enabled && !user.isSuspended()) {
- enableUpdate = uwfAdapter.suspend(id);
- }
+ WorkflowResult<Long> enableUpdate = null;
+ if (user.isSuspended() == null) {
+ enableUpdate = uwfAdapter.activate(id, null);
+ } else if (enabled && user.isSuspended()) {
+ enableUpdate = uwfAdapter.reactivate(id);
+ } else if (!enabled && !user.isSuspended()) {
+ enableUpdate = uwfAdapter.suspend(id);
+ }
- if (enableUpdate != null) {
- if (enableUpdate.getPropByRes() != null) {
- updated.getPropByRes().merge(enableUpdate.getPropByRes());
- updated.getPropByRes().purge();
- }
- updated.getPerformedTasks().addAll(enableUpdate.getPerformedTasks());
- }
- }
+ if (enableUpdate != null) {
+ if (enableUpdate.getPropByRes() != null) {
+ updated.getPropByRes().merge(enableUpdate.getPropByRes());
+ updated.getPropByRes().purge();
+ }
+ updated.getPerformedTasks().addAll(enableUpdate.getPerformedTasks());
+ }
+ }
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/quartz/package-info.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/quartz/package-info.java b/core/src/main/java/org/apache/syncope/core/quartz/package-info.java
index 9447e7d..e2121f2 100644
--- a/core/src/main/java/org/apache/syncope/core/quartz/package-info.java
+++ b/core/src/main/java/org/apache/syncope/core/quartz/package-info.java
@@ -17,4 +17,3 @@
* under the License.
*/
package org.apache.syncope.core.quartz;
-
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/report/ReportletConfClass.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/report/ReportletConfClass.java b/core/src/main/java/org/apache/syncope/core/report/ReportletConfClass.java
index 146b23d..e22fa92 100644
--- a/core/src/main/java/org/apache/syncope/core/report/ReportletConfClass.java
+++ b/core/src/main/java/org/apache/syncope/core/report/ReportletConfClass.java
@@ -25,7 +25,7 @@ import java.lang.annotation.Target;
import org.apache.syncope.common.report.ReportletConf;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface ReportletConfClass {
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/report/cocoon/TextSerializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/report/cocoon/TextSerializer.java b/core/src/main/java/org/apache/syncope/core/report/cocoon/TextSerializer.java
index 992df5f..d6e5e4c 100644
--- a/core/src/main/java/org/apache/syncope/core/report/cocoon/TextSerializer.java
+++ b/core/src/main/java/org/apache/syncope/core/report/cocoon/TextSerializer.java
@@ -98,4 +98,4 @@ public class TextSerializer extends XMLSerializer {
serializer.setMethod(TXT);
return serializer;
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java
index a4e53b8..b02bef8 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/LoggerController.java
@@ -217,7 +217,7 @@ public class LoggerController extends AbstractTransactionalController<LoggerTO>
final String packageSearchPath =
ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
+ ClassUtils.convertClassNameToResourcePath(
- SystemPropertyUtils.resolvePlaceholders(this.getClass().getPackage().getName()))
+ SystemPropertyUtils.resolvePlaceholders(this.getClass().getPackage().getName()))
+ "/" + "**/*.class";
final Resource[] resources = resourcePatternResolver.getResources(packageSearchPath);
@@ -239,7 +239,7 @@ public class LoggerController extends AbstractTransactionalController<LoggerTO>
}
}
}
-
+
//SYNCOPE-608
final EventCategoryTO authenticationControllerEvents = new EventCategoryTO();
authenticationControllerEvents.setCategory("AuthenticationController");
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
index 701dc5b..3a0f9d6 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/RoleController.java
@@ -95,7 +95,7 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
@Resource(name = "anonymousUser")
private String anonymousUser;
-
+
@Resource(name = "roleProvisioningManager")
protected RoleProvisioningManager provisioningManager;
@@ -259,7 +259,7 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
LOG.debug("Transformed: {}", actual);
Map.Entry<Long, List<PropagationStatus>> updated = provisioningManager.update(roleMod);
-
+
final RoleTO updatedTO = binder.getRoleTO(updated.getKey());
updatedTO.getPropagationStatusTOs().addAll(updated.getValue());
return updatedTO;
@@ -281,7 +281,7 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
}
List<PropagationStatus> statuses = provisioningManager.delete(roleId);
-
+
RoleTO roleTO = new RoleTO();
roleTO.setId(roleId);
@@ -318,7 +318,7 @@ public class RoleController extends AbstractSubjectController<RoleTO, RoleMod> {
roleMod.setId(roleId);
roleMod.getResourcesToRemove().addAll(resources);
final Long updatedResult = provisioningManager.unlink(roleMod);
-
+
return binder.getRoleTO(updatedResult);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/controller/RouteController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/RouteController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/RouteController.java
index 117d10f..f905f2c 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/RouteController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/RouteController.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.rest.controller;
import java.lang.reflect.Method;
@@ -36,57 +35,58 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@Component
-public class RouteController extends AbstractTransactionalController<RouteTO>{
-
+public class RouteController extends AbstractTransactionalController<RouteTO> {
+
private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(RouteDataBinder.class);
-
+
@Autowired
private RouteDAO routeDao;
-
+
@Autowired
private RouteDataBinder binder;
-
+
@Autowired
private SyncopeCamelContext context;
-
-
+
@PreAuthorize("hasRole('ROUTE_LIST')")
@Transactional(readOnly = true)
- public List<RouteTO> listRoutes(){
+ public List<RouteTO> listRoutes() {
List<RouteTO> routes = new ArrayList<RouteTO>();
Iterator it = routeDao.findAll().iterator();
- while(it.hasNext()){
+ while (it.hasNext()) {
routes.add(binder.getRouteTO((CamelRoute) it.next()));
}
return routes;
}
-
+
@PreAuthorize("hasRole('ROUTE_READ')")
@Transactional(readOnly = true)
- public RouteTO readRoute(Long id){
+ public RouteTO readRoute(Long id) {
CamelRoute route = routeDao.find(id);
- if (route==null)
- throw new NotFoundException("Route with id="+id);
-
+ if (route == null) {
+ throw new NotFoundException("Route with id=" + id);
+ }
+
return binder.getRouteTO(route);
}
-
+
@PreAuthorize("hasRole('ROUTE_UPDATE')")
- public void updateRoute(RouteTO routeTO){
+ public void updateRoute(RouteTO routeTO) {
CamelRoute route = routeDao.find(routeTO.getId());
- if (route==null)
- throw new NotFoundException("Route with id="+route.getId());
+ if (route == null) {
+ throw new NotFoundException("Route with id=" + route.getId());
+ }
route.setRouteContent(routeTO.getRouteContent());
- routeDao.save(route);
+ routeDao.save(route);
LOG.info("UPDATING ROUTE WITH ID {} ", routeTO.getId());
LOG.info("NEW ROUTE CONTENT {} ", routeTO.getRouteContent());
context.reloadContext(routeDao, routeTO.getId());
- }
-
+ }
+
@Override
protected RouteTO resolveReference(Method method, Object... args) throws UnresolvedReferenceException {
throw new UnresolvedReferenceException();
}
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
index 0a30a86..0607a5f 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/controller/UserController.java
@@ -96,7 +96,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
@Autowired
protected AttributableTransformer attrTransformer;
-
+
@Resource(name = "userProvisioningManager")
protected UserProvisioningManager provisioningManager;
@@ -212,8 +212,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
UserTO actual = attrTransformer.transform(userTO);
LOG.debug("Transformed: {}", actual);
- Map.Entry<Long, List<PropagationStatus>>
- created = provisioningManager.create(actual,storePassword);
+ Map.Entry<Long, List<PropagationStatus>> created = provisioningManager.create(actual, storePassword);
final UserTO savedTO = binder.getUserTO(created.getKey());
savedTO.getPropagationStatusTOs().addAll(created.getValue());
@@ -238,7 +237,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
// AttributableMod transformation (if configured)
UserMod actual = attrTransformer.transform(userMod);
LOG.debug("Transformed: {}", actual);
-
+
//CAMEL
// SYNCOPE-501: check if there are memberships to be removed with virtual attributes assigned
boolean removeMemberships = false;
@@ -254,15 +253,16 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
removeMemberships = true;
}
}
-
- Map.Entry<Long, List<PropagationStatus>> updated = provisioningManager.update(actual,removeMemberships);
+
+ Map.Entry<Long, List<PropagationStatus>> updated = provisioningManager.update(actual, removeMemberships);
final UserTO updatedTO = binder.getUserTO(updated.getKey());
updatedTO.getPropagationStatusTOs().addAll(updated.getValue());
return updatedTO;
}
- protected Map.Entry<Long, List<PropagationStatus>> setStatusOnWfAdapter(final SyncopeUser user, final StatusMod statusMod) {
+ protected Map.Entry<Long, List<PropagationStatus>> setStatusOnWfAdapter(final SyncopeUser user,
+ final StatusMod statusMod) {
Map.Entry<Long, List<PropagationStatus>> updated;
switch (statusMod.getType()) {
@@ -289,8 +289,7 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
public UserTO status(final StatusMod statusMod) {
SyncopeUser user = binder.getUserFromId(statusMod.getId());
- Map.Entry<Long, List<PropagationStatus>>
- updated = setStatusOnWfAdapter(user, statusMod);
+ Map.Entry<Long, List<PropagationStatus>> updated = setStatusOnWfAdapter(user, statusMod);
final UserTO savedTO = binder.getUserTO(updated.getKey());
savedTO.getPropagationStatusTOs().addAll(updated.getValue());
return savedTO;
@@ -477,8 +476,8 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
@Transactional(rollbackFor = { Throwable.class })
@Override
public UserTO deprovision(final Long userId, final Collection<String> resources) {
- final SyncopeUser user = binder.getUserFromId(userId);
-
+ final SyncopeUser user = binder.getUserFromId(userId);
+
List<PropagationStatus> statuses = provisioningManager.deprovision(userId, resources);
final UserTO updatedUserTO = binder.getUserTO(user);
@@ -535,18 +534,18 @@ public class UserController extends AbstractSubjectController<UserTO, UserMod> {
throw new UnresolvedReferenceException();
}
-
- public PrintStream getDefinition() throws FileNotFoundException{
- /*String result = "";
- if(provisioningManager instanceof CamelUserProvisioningManager){
- List l = ((CamelUserProvisioningManager)provisioningManager).getRoutes();
- Iterator<CamelRoute> it = l.iterator();
-
- while(it.hasNext()){
- result += it.next().getRouteContent();
- }
- }
- return new PrintStream(result);*/
+
+ public PrintStream getDefinition() throws FileNotFoundException {
+ /* String result = "";
+ * if(provisioningManager instanceof CamelUserProvisioningManager){
+ * List l = ((CamelUserProvisioningManager)provisioningManager).getRoutes();
+ * Iterator<CamelRoute> it = l.iterator();
+ *
+ * while(it.hasNext()){
+ * result += it.next().getRouteContent();
+ * }
+ * }
+ * return new PrintStream(result); */
return null;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/data/ReportDataBinder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/data/ReportDataBinder.java b/core/src/main/java/org/apache/syncope/core/rest/data/ReportDataBinder.java
index cfcaee4..2d5a433 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/data/ReportDataBinder.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/data/ReportDataBinder.java
@@ -52,9 +52,9 @@ public class ReportDataBinder {
*/
private static final Logger LOG = LoggerFactory.getLogger(ReportDataBinder.class);
- private static final String[] IGNORE_REPORT_PROPERTIES = {"id", "reportlets", "executions"};
+ private static final String[] IGNORE_REPORT_PROPERTIES = { "id", "reportlets", "executions" };
- private static final String[] IGNORE_REPORT_EXECUTION_PROPERTIES = {"id", "report", "execResult"};
+ private static final String[] IGNORE_REPORT_EXECUTION_PROPERTIES = { "id", "report", "execResult" };
@Autowired
private ReportExecDAO reportExecDAO;
@@ -65,7 +65,7 @@ public class ReportDataBinder {
@Autowired
private ImplementationClassNamesLoader classNamesLoader;
- @SuppressWarnings({"unchecked", "rawtypes"})
+ @SuppressWarnings({ "unchecked", "rawtypes" })
public Set<Class<Reportlet>> getAllReportletClasses() {
Set<Class<Reportlet>> reportletClasses = new HashSet<Class<Reportlet>>();
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/data/RouteDataBinder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/data/RouteDataBinder.java b/core/src/main/java/org/apache/syncope/core/rest/data/RouteDataBinder.java
index c1016e6..824bd52 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/data/RouteDataBinder.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/data/RouteDataBinder.java
@@ -16,10 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.rest.data;
-
import org.apache.syncope.common.to.RouteTO;
import org.apache.syncope.common.util.BeanUtils;
import org.apache.syncope.core.persistence.beans.CamelRoute;
@@ -28,11 +26,11 @@ import org.springframework.stereotype.Component;
@Component
public class RouteDataBinder {
-
+
private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(RouteDataBinder.class);
-
- public RouteTO getRouteTO(CamelRoute route){
-
+
+ public RouteTO getRouteTO(CamelRoute route) {
+
RouteTO routeTO = new RouteTO();
BeanUtils.copyProperties(route, routeTO);
return routeTO;
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/utils/QueryResourceInfoComparator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/utils/QueryResourceInfoComparator.java b/core/src/main/java/org/apache/syncope/core/rest/utils/QueryResourceInfoComparator.java
index bcc015d..e625533 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/utils/QueryResourceInfoComparator.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/utils/QueryResourceInfoComparator.java
@@ -55,8 +55,8 @@ public class QueryResourceInfoComparator extends OperationResourceInfoComparator
return op1Counter == op2Counter
? 0
: op1Counter < op2Counter
- ? 1
- : -1;
+ ? 1
+ : -1;
}
/**
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/rest/utils/RestServiceExceptionMapper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/rest/utils/RestServiceExceptionMapper.java b/core/src/main/java/org/apache/syncope/core/rest/utils/RestServiceExceptionMapper.java
index e8f0e67..f3a9edf 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/utils/RestServiceExceptionMapper.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/utils/RestServiceExceptionMapper.java
@@ -202,8 +202,8 @@ public class RestServiceExceptionMapper implements ExceptionMapper<Exception>, R
if (iee != null) {
ClientExceptionType exType =
iee.getEntityClassSimpleName().endsWith("Policy")
- ? ClientExceptionType.InvalidPolicy
- : ClientExceptionType.valueOf("Invalid" + iee.getEntityClassSimpleName());
+ ? ClientExceptionType.InvalidPolicy
+ : ClientExceptionType.valueOf("Invalid" + iee.getEntityClassSimpleName());
ResponseBuilder builder = Response.status(Response.Status.BAD_REQUEST);
builder.header(RESTHeaders.ERROR_CODE, exType.getHeaderValue());
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/security/AsymmetricCipher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/security/AsymmetricCipher.java b/core/src/main/java/org/apache/syncope/core/security/AsymmetricCipher.java
index 5c95114..b0a6c8e 100644
--- a/core/src/main/java/org/apache/syncope/core/security/AsymmetricCipher.java
+++ b/core/src/main/java/org/apache/syncope/core/security/AsymmetricCipher.java
@@ -35,6 +35,7 @@ import javax.crypto.Cipher;
public class AsymmetricCipher {
final private static String xform = "RSA/NONE/PKCS1Padding";
+
final private static String algorithm = "RSA";
public static byte[] encrypt(byte[] inpBytes, PublicKey key) throws Exception {
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java b/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java
index 4d5c09f..3c1b6fa 100644
--- a/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/services/ConnectorServiceImpl.java
@@ -70,7 +70,7 @@ public class ConnectorServiceImpl extends AbstractServiceImpl implements Connect
final boolean includeSpecial) {
connInstanceTO.setId(connInstanceId);
-
+
List<String> schemaNames = controller.getSchemaNames(connInstanceTO, includeSpecial);
List<SchemaTO> result = new ArrayList<SchemaTO>(schemaNames.size());
for (String name : schemaNames) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java b/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java
index 2fc947c..020414d 100644
--- a/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/services/PolicyServiceImpl.java
@@ -96,7 +96,7 @@ public class PolicyServiceImpl extends AbstractServiceImpl implements PolicyServ
@Override
public <T extends AbstractPolicyTO> void update(final Long policyId, final T policyTO) {
policyTO.setId(policyId);
-
+
switch (policyTO.getType()) {
case ACCOUNT:
case GLOBAL_ACCOUNT:
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java b/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
index 1c44765..ecc323e 100644
--- a/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/services/RouteServiceImpl.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.services;
import java.util.List;
@@ -27,20 +26,20 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
-public class RouteServiceImpl extends AbstractServiceImpl implements RouteService{
+public class RouteServiceImpl extends AbstractServiceImpl implements RouteService {
@Autowired
private RouteController controller;
-
+
@Override
public List<RouteTO> getRoutes() {
-
- return controller.listRoutes();
+
+ return controller.listRoutes();
}
-
+
@Override
- public RouteTO getRoute(Long id){
-
+ public RouteTO getRoute(Long id) {
+
return controller.readRoute(id);
}
@@ -48,5 +47,5 @@ public class RouteServiceImpl extends AbstractServiceImpl implements RouteServic
public void importRoute(Long id, RouteTO route) {
controller.updateRoute(route);
}
-
-}
\ No newline at end of file
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java b/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
index fa88e7c..7ab3691 100644
--- a/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/services/WorkflowServiceImpl.java
@@ -61,8 +61,8 @@ public class WorkflowServiceImpl extends AbstractServiceImpl implements Workflow
public Response exportDefinition(final SubjectType kind) {
final MediaType accept =
messageContext.getHttpHeaders().getAcceptableMediaTypes().contains(MediaType.APPLICATION_JSON_TYPE)
- ? MediaType.APPLICATION_JSON_TYPE
- : MediaType.APPLICATION_XML_TYPE;
+ ? MediaType.APPLICATION_JSON_TYPE
+ : MediaType.APPLICATION_XML_TYPE;
StreamingOutput sout = new StreamingOutput() {
@@ -104,8 +104,8 @@ public class WorkflowServiceImpl extends AbstractServiceImpl implements Workflow
public void importDefinition(final SubjectType kind, final String definition) {
final MediaType contentType =
messageContext.getHttpHeaders().getMediaType().equals(MediaType.APPLICATION_JSON_TYPE)
- ? MediaType.APPLICATION_JSON_TYPE
- : MediaType.APPLICATION_XML_TYPE;
+ ? MediaType.APPLICATION_JSON_TYPE
+ : MediaType.APPLICATION_XML_TYPE;
if (kind == SubjectType.USER) {
controller.importUserDefinition(contentType, definition);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/SyncActions.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/SyncActions.java b/core/src/main/java/org/apache/syncope/core/sync/SyncActions.java
index 42548d1..0a809be 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/SyncActions.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/SyncActions.java
@@ -162,7 +162,8 @@ public interface SyncActions extends AbstractSyncActions<AbstractSyncopeResultHa
* Action to be executed after each local user / role synchronization.
*
* @param profile profile of the synchronization being executed.
- * @param delta retrieved synchronization information (may be modified by 'beforeProvision/beforeUpdate/beforeDelete')
+ * @param delta retrieved synchronization information (may be modified by
+ * 'beforeProvision/beforeUpdate/beforeDelete')
* @param subject synchronized local user / role
* @param result global synchronization results at the current synchronization step
* @throws JobExecutionException in case of generic failure
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/SyncResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/SyncResult.java b/core/src/main/java/org/apache/syncope/core/sync/SyncResult.java
index 5ebca8a..7f1986a 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/SyncResult.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/SyncResult.java
@@ -28,9 +28,12 @@ import org.apache.syncope.common.types.ResourceOperation;
import org.apache.syncope.common.types.TraceLevel;
public class SyncResult {
+
public enum Status {
+
SUCCESS,
FAILURE
+
}
private String message;
@@ -115,8 +118,8 @@ public class SyncResult {
// All
return String.format("%s %s (id/name): %d/%s %s", operation, status, id, name,
StringUtils.isBlank(message)
- ? ""
- : "with message: " + message);
+ ? ""
+ : "with message: " + message);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSubjectPushResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSubjectPushResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSubjectPushResultHandler.java
index f8cb658..7036ab7 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSubjectPushResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSubjectPushResultHandler.java
@@ -114,7 +114,6 @@ public abstract class AbstractSubjectPushResultHandler extends AbstractSyncopeRe
String operation = null;
// Try to read remote object (user / group) BEFORE any actual operation
-
final String accountId = MappingUtil.getAccountIdValue(
subject, profile.getSyncTask().getResource(), getMapping().getAccountIdItem());
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncJob.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncJob.java b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncJob.java
index cabeb4f..26ff30b 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncJob.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncJob.java
@@ -316,7 +316,7 @@ public abstract class AbstractSyncJob<T extends AbstractSyncTask, A extends Abst
} catch (Exception e) {
final String msg = String.
format("Connector instance bean for resource %s and connInstance %s not found",
- syncTask.getResource(), syncTask.getResource().getConnector());
+ syncTask.getResource(), syncTask.getResource().getConnector());
throw new JobExecutionException(msg, e);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
index 78ada92..0c27004 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/AbstractSyncopeResultHandler.java
@@ -43,7 +43,7 @@ public abstract class AbstractSyncopeResultHandler<T extends AbstractSyncTask, A
* Logger.
*/
protected static final Logger LOG = LoggerFactory.getLogger(AbstractSyncopeResultHandler.class);
-
+
/**
* User data binder.
*/
@@ -102,10 +102,10 @@ public abstract class AbstractSyncopeResultHandler<T extends AbstractSyncTask, A
* Sync profile.
*/
protected SyncProfile<T, A> profile;
-
+
@Resource(name = "userProvisioningManager")
protected UserProvisioningManager userProvisioningManager;
-
+
@Resource(name = "roleProvisioningManager")
protected RoleProvisioningManager roleProvisioningManager;
[17/53] [abbrv] syncope git commit: Code formatting with netbeans
Posted by il...@apache.org.
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/impl/LDAPPasswordSyncActions.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/LDAPPasswordSyncActions.java b/core/src/main/java/org/apache/syncope/core/sync/impl/LDAPPasswordSyncActions.java
index 65f43cc..2304fa4 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/LDAPPasswordSyncActions.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/LDAPPasswordSyncActions.java
@@ -66,7 +66,7 @@ public class LDAPPasswordSyncActions extends DefaultSyncActions {
return delta;
}
-
+
@Transactional(readOnly = true)
@Override
public <T extends AbstractAttributableTO, K extends AbstractAttributableMod> SyncDelta beforeUpdate(
@@ -74,15 +74,15 @@ public class LDAPPasswordSyncActions extends DefaultSyncActions {
final SyncDelta delta,
final T subject,
final K subjectMod) throws JobExecutionException {
-
+
if (subjectMod instanceof UserMod) {
- String modPassword = ((UserMod)subjectMod).getPassword();
+ String modPassword = ((UserMod) subjectMod).getPassword();
parseEncodedPassword(modPassword);
}
-
+
return delta;
}
-
+
private void parseEncodedPassword(String password) {
if (password != null && password.startsWith("{")) {
int closingBracketIndex = password.indexOf('}');
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
index e544687..4e83e66 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/RoleSyncResultHandler.java
@@ -86,8 +86,8 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
RoleTO roleTO = RoleTO.class.cast(subjectTO);
- Map.Entry<Long, List<PropagationStatus>> created = roleProvisioningManager.createInSync
- (roleTO, roleOwnerMap, Collections.singleton(profile.getSyncTask().getResource().getName()));
+ Map.Entry<Long, List<PropagationStatus>> created = roleProvisioningManager.createInSync(roleTO, roleOwnerMap,
+ Collections.singleton(profile.getSyncTask().getResource().getName()));
roleTO = roleDataBinder.getRoleTO(created.getKey());
@@ -127,7 +127,7 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
RoleMod roleMod = RoleMod.class.cast(subjectMod);
Map.Entry<Long, List<PropagationStatus>> updated = roleProvisioningManager.update(roleMod);
-
+
//moved after role provisioning manager
String roleOwner = null;
for (AttributeMod attrMod : roleMod.getAttrsToUpdate()) {
@@ -140,7 +140,7 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
}
final RoleTO after = roleDataBinder.getRoleTO(updated.getKey());
-
+
result.setName(getName(after));
return after;
@@ -170,6 +170,6 @@ public class RoleSyncResultHandler extends AbstractSubjectSyncResultHandler {
LOG.error("Could not propagate user " + id, e);
}
- roleProvisioningManager.delete(id);
+ roleProvisioningManager.delete(id);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java b/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
index e5bdc06..6802726 100644
--- a/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/sync/impl/UserSyncResultHandler.java
@@ -82,8 +82,8 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getSyncTask());
//Delegate User Workflow Creation and its Propagation to provisioning manager
- Map.Entry<Long, List<PropagationStatus>>
- created = userProvisioningManager.create(userTO, true, true, enabled,Collections.singleton(profile.getSyncTask().getResource().getName()));
+ Map.Entry<Long, List<PropagationStatus>> created = userProvisioningManager.create(userTO, true, true, enabled,
+ Collections.singleton(profile.getSyncTask().getResource().getName()));
userTO = userDataBinder.getUserTO(created.getKey());
@@ -121,51 +121,51 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
final UserMod userMod = UserMod.class.cast(subjectMod);
- /*WorkflowResult<Map.Entry<UserMod, Boolean>> updated;
- try {
- updated = uwfAdapter.update(userMod);
- } catch (Exception e) {
- LOG.error("Update of user {} failed, trying to sync its status anyway (if configured)", before.getId(), e);
-
- result.setStatus(SyncResult.Status.FAILURE);
- result.setMessage("Update failed, trying to sync status anyway (if configured)\n"
- + ExceptionUtils.getRootCauseMessage(e));
-
- updated = new WorkflowResult<Map.Entry<UserMod, Boolean>>(
- new AbstractMap.SimpleEntry<UserMod, Boolean>(userMod, false),
- new PropagationByResource(),
- new HashSet<String>());
- }*/
-
+ /* WorkflowResult<Map.Entry<UserMod, Boolean>> updated;
+ * try {
+ * updated = uwfAdapter.update(userMod);
+ * } catch (Exception e) {
+ * LOG.error("Update of user {} failed, trying to sync its status anyway (if configured)", before.getId(), e);
+ *
+ * result.setStatus(SyncResult.Status.FAILURE);
+ * result.setMessage("Update failed, trying to sync status anyway (if configured)\n"
+ * + ExceptionUtils.getRootCauseMessage(e));
+ *
+ * updated = new WorkflowResult<Map.Entry<UserMod, Boolean>>(
+ * new AbstractMap.SimpleEntry<UserMod, Boolean>(userMod, false),
+ * new PropagationByResource(),
+ * new HashSet<String>());
+ * } */
final Boolean enabled = syncUtilities.readEnabled(delta.getObject(), profile.getSyncTask());
- /*if (enabled != null) {
- SyncopeUser user = userDAO.find(before.getId());
-
- WorkflowResult<Long> enableUpdate = null;
- if (user.isSuspended() == null) {
- enableUpdate = uwfAdapter.activate(before.getId(), null);
- } else if (enabled && user.isSuspended()) {
- enableUpdate = uwfAdapter.reactivate(before.getId());
- } else if (!enabled && !user.isSuspended()) {
- enableUpdate = uwfAdapter.suspend(before.getId());
- }
-
- if (enableUpdate != null) {
- if (enableUpdate.getPropByRes() != null) {
- updated.getPropByRes().merge(enableUpdate.getPropByRes());
- updated.getPropByRes().purge();
- }
- updated.getPerformedTasks().addAll(enableUpdate.getPerformedTasks());
- }
- }
-
- final List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(
- updated, updated.getResult().getKey().getPassword() != null,
- Collections.singleton(profile.getSyncTask().getResource().getName()));
-
- taskExecutor.execute(tasks);*/
-
- Map.Entry<Long, List<PropagationStatus>> updated = userProvisioningManager.updateInSync(userMod, before.getId(), result,enabled, Collections.singleton(profile.getSyncTask().getResource().getName()));
+ /* if (enabled != null) {
+ * SyncopeUser user = userDAO.find(before.getId());
+ *
+ * WorkflowResult<Long> enableUpdate = null;
+ * if (user.isSuspended() == null) {
+ * enableUpdate = uwfAdapter.activate(before.getId(), null);
+ * } else if (enabled && user.isSuspended()) {
+ * enableUpdate = uwfAdapter.reactivate(before.getId());
+ * } else if (!enabled && !user.isSuspended()) {
+ * enableUpdate = uwfAdapter.suspend(before.getId());
+ * }
+ *
+ * if (enableUpdate != null) {
+ * if (enableUpdate.getPropByRes() != null) {
+ * updated.getPropByRes().merge(enableUpdate.getPropByRes());
+ * updated.getPropByRes().purge();
+ * }
+ * updated.getPerformedTasks().addAll(enableUpdate.getPerformedTasks());
+ * }
+ * }
+ *
+ * final List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(
+ * updated, updated.getResult().getKey().getPassword() != null,
+ * Collections.singleton(profile.getSyncTask().getResource().getName()));
+ *
+ * taskExecutor.execute(tasks); */
+
+ Map.Entry<Long, List<PropagationStatus>> updated = userProvisioningManager.updateInSync(userMod, before.getId(),
+ result, enabled, Collections.singleton(profile.getSyncTask().getResource().getName()));
return userDataBinder.getUserTO(updated.getKey());
}
@@ -189,7 +189,7 @@ public class UserSyncResultHandler extends AbstractSubjectSyncResultHandler {
protected void delete(final Long id) {
try {
userProvisioningManager.
- delete(id,Collections.<String>singleton(profile.getSyncTask().getResource().getName()));
+ delete(id, Collections.<String>singleton(profile.getSyncTask().getResource().getName()));
} catch (Exception e) {
// A propagation failure doesn't imply a synchronization failure.
// The propagation exception status will be reported into the propagation task execution.
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/util/AttributeDeserializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/util/AttributeDeserializer.java b/core/src/main/java/org/apache/syncope/core/util/AttributeDeserializer.java
index 138b0fe..0c148b1 100644
--- a/core/src/main/java/org/apache/syncope/core/util/AttributeDeserializer.java
+++ b/core/src/main/java/org/apache/syncope/core/util/AttributeDeserializer.java
@@ -77,8 +77,8 @@ class AttributeDeserializer extends JsonDeserializer<Attribute> {
return Uid.NAME.equals(name)
? new Uid(values.isEmpty() || values.get(0) == null ? null : values.get(0).toString())
: Name.NAME.equals(name)
- ? new Name(values.isEmpty() || values.get(0) == null ? null : values.get(0).toString())
- : AttributeBuilder.build(name, values);
+ ? new Name(values.isEmpty() || values.get(0) == null ? null : values.get(0).toString())
+ : AttributeBuilder.build(name, values);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/util/ContentLoaderHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/util/ContentLoaderHandler.java b/core/src/main/java/org/apache/syncope/core/util/ContentLoaderHandler.java
index ea54a90..ccf2e86 100644
--- a/core/src/main/java/org/apache/syncope/core/util/ContentLoaderHandler.java
+++ b/core/src/main/java/org/apache/syncope/core/util/ContentLoaderHandler.java
@@ -57,16 +57,16 @@ public class ContentLoaderHandler extends DefaultHandler {
Map<String, Integer> colTypes = jdbcTemplate.query("SELECT * FROM " + tableName,
new ResultSetExtractor<Map<String, Integer>>() {
- @Override
- public Map<String, Integer> extractData(final ResultSet rs) throws SQLException, DataAccessException {
- Map<String, Integer> colTypes = new HashMap<String, Integer>();
- for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
- colTypes.put(rs.getMetaData().getColumnName(i).toUpperCase(),
- rs.getMetaData().getColumnType(i));
- }
- return colTypes;
- }
- });
+ @Override
+ public Map<String, Integer> extractData(final ResultSet rs) throws SQLException, DataAccessException {
+ Map<String, Integer> colTypes = new HashMap<String, Integer>();
+ for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
+ colTypes.put(rs.getMetaData().getColumnName(i).toUpperCase(),
+ rs.getMetaData().getColumnType(i));
+ }
+ return colTypes;
+ }
+ });
Object[] parameters = new Object[attrs.getLength()];
for (int i = 0; i < attrs.getLength(); i++) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/util/RouteManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/util/RouteManager.java b/core/src/main/java/org/apache/syncope/core/util/RouteManager.java
index 67ebd82..397d7b0 100644
--- a/core/src/main/java/org/apache/syncope/core/util/RouteManager.java
+++ b/core/src/main/java/org/apache/syncope/core/util/RouteManager.java
@@ -16,24 +16,27 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.util;
import java.util.ArrayList;
import java.util.List;
import org.apache.syncope.core.persistence.beans.CamelRoute;
-
public class RouteManager {
+
private static List<CamelRoute> routelist;
-
- public static void addElement(CamelRoute route){
- if(routelist == null) routelist= new ArrayList<CamelRoute>();
+
+ public static void addElement(CamelRoute route) {
+ if (routelist == null) {
+ routelist = new ArrayList<CamelRoute>();
+ }
routelist.add(route);
}
-
- public static List<CamelRoute> getRoutes(){
- if(routelist == null) routelist= new ArrayList<CamelRoute>();
+
+ public static List<CamelRoute> getRoutes() {
+ if (routelist == null) {
+ routelist = new ArrayList<CamelRoute>();
+ }
return routelist;
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/util/SecureRandomUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/util/SecureRandomUtil.java b/core/src/main/java/org/apache/syncope/core/util/SecureRandomUtil.java
index 860a153..b11d0a5 100644
--- a/core/src/main/java/org/apache/syncope/core/util/SecureRandomUtil.java
+++ b/core/src/main/java/org/apache/syncope/core/util/SecureRandomUtil.java
@@ -23,21 +23,21 @@ import java.security.SecureRandom;
import org.apache.commons.lang3.RandomStringUtils;
public class SecureRandomUtil {
-
+
private static final SecureRandom RANDOM = new SecureRandom();
public static String generateRandomPassword(final int tokenLength) {
return RandomStringUtils.random(tokenLength, 0, 0, true, false, null, RANDOM);
}
-
+
public static String generateRandomLetter() {
return RandomStringUtils.random(1, 0, 0, true, false, null, RANDOM);
}
-
+
public static String generateRandomNumber() {
return RandomStringUtils.random(1, 0, 0, false, true, null, RANDOM);
}
-
+
public static String generateRandomSpecialCharacter(char[] characters) {
return RandomStringUtils.random(1, 0, 0, false, false, characters, RANDOM);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/util/SyncTokenDeserializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/util/SyncTokenDeserializer.java b/core/src/main/java/org/apache/syncope/core/util/SyncTokenDeserializer.java
index 4e82401..30a0324 100644
--- a/core/src/main/java/org/apache/syncope/core/util/SyncTokenDeserializer.java
+++ b/core/src/main/java/org/apache/syncope/core/util/SyncTokenDeserializer.java
@@ -42,19 +42,19 @@ class SyncTokenDeserializer extends JsonDeserializer<SyncToken> {
value = node.isNull()
? null
: node.isBoolean()
- ? node.asBoolean()
- : node.isDouble()
- ? node.asDouble()
- : node.isLong()
- ? node.asLong()
- : node.isInt()
- ? node.asInt()
- : node.asText();
-
+ ? node.asBoolean()
+ : node.isDouble()
+ ? node.asDouble()
+ : node.isLong()
+ ? node.asLong()
+ : node.isInt()
+ ? node.asInt()
+ : node.asText();
+
if (value instanceof String) {
- byte[] bytes = ((String)value).getBytes();
+ byte[] bytes = ((String) value).getBytes();
if (Base64.isBase64(bytes)) {
- value = Base64.decode(bytes);
+ value = Base64.decode(bytes);
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java b/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java
index 0e67f5e..2f033f2 100644
--- a/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java
+++ b/core/src/main/java/org/apache/syncope/core/util/jexl/JexlUtil.java
@@ -134,8 +134,8 @@ public final class JexlUtil {
context.set(fieldName, fieldValue == null
? ""
: (type.equals(Date.class)
- ? DataFormat.format((Date) fieldValue, false)
- : fieldValue));
+ ? DataFormat.format((Date) fieldValue, false)
+ : fieldValue));
LOG.debug("Add field {} with value {}", fieldName, fieldValue);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/package-info.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/package-info.java b/core/src/main/java/org/apache/syncope/core/workflow/package-info.java
index 2821d3a..b459536 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/package-info.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/package-info.java
@@ -17,4 +17,3 @@
* under the License.
*/
package org.apache.syncope.core.workflow;
-
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/role/AbstractRoleWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/role/AbstractRoleWorkflowAdapter.java b/core/src/main/java/org/apache/syncope/core/workflow/role/AbstractRoleWorkflowAdapter.java
index cd40429..b222100 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/role/AbstractRoleWorkflowAdapter.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/role/AbstractRoleWorkflowAdapter.java
@@ -30,7 +30,7 @@ import org.apache.syncope.core.workflow.WorkflowResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
-@Transactional(rollbackFor = {Throwable.class})
+@Transactional(rollbackFor = { Throwable.class })
public abstract class AbstractRoleWorkflowAdapter implements RoleWorkflowAdapter {
@Autowired
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java b/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java
index f059a9a..8fbc25c 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/AbstractUserWorkflowAdapter.java
@@ -117,7 +117,7 @@ public abstract class AbstractUserWorkflowAdapter implements UserWorkflowAdapter
doRequestPasswordReset(dataBinder.getUserFromId(userId));
}
- protected abstract void doConfirmPasswordReset(SyncopeUser user, String token, String password)
+ protected abstract void doConfirmPasswordReset(SyncopeUser user, String token, String password)
throws WorkflowException;
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java b/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java
index 8713261..2157301 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/NoOpUserWorkflowAdapter.java
@@ -230,7 +230,8 @@ public class NoOpUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
}
@Override
- public WorkflowResult<Map.Entry<Long, Boolean>> create(UserTO userTO, boolean storePassword) throws UnauthorizedRoleException, WorkflowException {
+ public WorkflowResult<Map.Entry<Long, Boolean>> create(UserTO userTO, boolean storePassword) throws
+ UnauthorizedRoleException, WorkflowException {
return create(userTO, false, true);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/user/UserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/UserWorkflowAdapter.java b/core/src/main/java/org/apache/syncope/core/workflow/user/UserWorkflowAdapter.java
index c2844db..0d48227 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/UserWorkflowAdapter.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/UserWorkflowAdapter.java
@@ -152,7 +152,7 @@ public interface UserWorkflowAdapter extends WorkflowAdapter {
* @throws UnauthorizedRoleException authorization exception
* @throws WorkflowException workflow exception
*/
- void confirmPasswordReset(Long userId, String token, String password)
+ void confirmPasswordReset(Long userId, String token, String password)
throws UnauthorizedRoleException, WorkflowException;
/**
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java b/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
index 460b73b..adeb9f8 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/ActivitiUserWorkflowAdapter.java
@@ -885,7 +885,8 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
}
@Override
- public WorkflowResult<Map.Entry<Long, Boolean>> create(UserTO userTO, boolean storePassword) throws UnauthorizedRoleException, WorkflowException {
+ public WorkflowResult<Map.Entry<Long, Boolean>> create(UserTO userTO, boolean storePassword) throws
+ UnauthorizedRoleException, WorkflowException {
return create(userTO, false, storePassword);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeGroupManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeGroupManager.java b/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeGroupManager.java
index c91e7e0..f670258 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeGroupManager.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeGroupManager.java
@@ -106,7 +106,7 @@ public class SyncopeGroupManager implements GroupIdentityManager, SyncopeSession
public void updateGroup(final Group updatedGroup) {
throw new UnsupportedOperationException();
}
-
+
@Override
public boolean isNewGroup(final Group group) {
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeUserManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeUserManager.java b/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeUserManager.java
index 42ea38c..9285ed9 100644
--- a/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeUserManager.java
+++ b/core/src/main/java/org/apache/syncope/core/workflow/user/activiti/SyncopeUserManager.java
@@ -121,7 +121,7 @@ public class SyncopeUserManager implements UserIdentityManager, SyncopeSession {
public void updateUser(final User updatedUser) {
throw new UnsupportedOperationException();
}
-
+
@Override
public Picture getUserPicture(final String string) {
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/resources/persistenceContextEMFactory.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/persistenceContextEMFactory.xml b/core/src/main/resources/persistenceContextEMFactory.xml
index 3337dd3..8fe4864 100644
--- a/core/src/main/resources/persistenceContextEMFactory.xml
+++ b/core/src/main/resources/persistenceContextEMFactory.xml
@@ -37,8 +37,8 @@ under the License.
<property name="jpaPropertyMap">
<map>
<!--<entry key="openjpa.Log" value="SQL=TRACE"/>
- <entry key="openjpa.ConnectionFactoryProperties"
- value="PrintParameters=true, PrettyPrint=true, PrettyPrintLineLength=80"/>-->
+ <entry key="openjpa.ConnectionFactoryProperties"
+ value="PrintParameters=true, PrettyPrint=true, PrettyPrintLineLength=80"/>-->
<entry key="openjpa.NontransactionalWrite" value="false"/>
<entry key="openjpa.AutoDetach" value="close, commit, nontx-read, rollback"/>
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/resources/report/staticReportlet2fo.xsl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/report/staticReportlet2fo.xsl b/core/src/main/resources/report/staticReportlet2fo.xsl
index 2b9a971..c123d51 100644
--- a/core/src/main/resources/report/staticReportlet2fo.xsl
+++ b/core/src/main/resources/report/staticReportlet2fo.xsl
@@ -23,62 +23,62 @@ under the License.
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
- <xsl:template match="reportlet[@class='org.apache.syncope.core.report.StaticReportlet']">
+ <xsl:template match="reportlet[@class='org.apache.syncope.core.report.StaticReportlet']">
- <fo:block font-size="14pt" font-weight="bold" space-after="0.5cm">Reportlet:
- <xsl:value-of select="@name"/>
- </fo:block>
+ <fo:block font-size="14pt" font-weight="bold" space-after="0.5cm">Reportlet:
+ <xsl:value-of select="@name"/>
+ </fo:block>
- <xsl:if test="string-length(string/text()) > 0">
- <fo:block font-size="11pt">String value:
- <xsl:value-of select="string/text()"/>
- </fo:block>
- </xsl:if>
+ <xsl:if test="string-length(string/text()) > 0">
+ <fo:block font-size="11pt">String value:
+ <xsl:value-of select="string/text()"/>
+ </fo:block>
+ </xsl:if>
- <xsl:if test="string-length(long/text()) > 0">
- <fo:block font-size="11pt">Long value:
- <xsl:value-of select="long/text()"/>
- </fo:block>
- </xsl:if>
+ <xsl:if test="string-length(long/text()) > 0">
+ <fo:block font-size="11pt">Long value:
+ <xsl:value-of select="long/text()"/>
+ </fo:block>
+ </xsl:if>
- <xsl:if test="string-length(double/text()) > 0">
- <fo:block font-size="11pt">Double value:
- <xsl:value-of select="double/text()"/>
- </fo:block>
- </xsl:if>
+ <xsl:if test="string-length(double/text()) > 0">
+ <fo:block font-size="11pt">Double value:
+ <xsl:value-of select="double/text()"/>
+ </fo:block>
+ </xsl:if>
- <xsl:if test="string-length(date/text()) > 0">
- <fo:block font-size="11pt">Date value:
- <xsl:value-of select="date/text()"/>
- </fo:block>
- </xsl:if>
+ <xsl:if test="string-length(date/text()) > 0">
+ <fo:block font-size="11pt">Date value:
+ <xsl:value-of select="date/text()"/>
+ </fo:block>
+ </xsl:if>
- <xsl:if test="string-length(enum/text()) > 0">
- <fo:block font-size="11pt">Enum value:
- <xsl:value-of select="enum/text()"/>
- </fo:block>
- </xsl:if>
+ <xsl:if test="string-length(enum/text()) > 0">
+ <fo:block font-size="11pt">Enum value:
+ <xsl:value-of select="enum/text()"/>
+ </fo:block>
+ </xsl:if>
- <xsl:if test="string-length(list) > 0">
- <fo:block font-size="11pt">List values:</fo:block>
+ <xsl:if test="string-length(list) > 0">
+ <fo:block font-size="11pt">List values:</fo:block>
- <fo:list-block provisional-label-separation="4mm" provisional-distance-between-starts="2mm">
- <xsl:for-each select="list/string">
- <xsl:if test="string-length(string/text()) > 0">
- <fo:list-item>
- <fo:list-item-label end-indent="label-end()">
- <fo:block>•</fo:block>
- </fo:list-item-label>
- <fo:list-item-body start-indent="body-start()">
- <fo:block>
- <xsl:value-of select="text()"/>
- </fo:block>
- </fo:list-item-body>
- </fo:list-item>
- </xsl:if>
- </xsl:for-each>
- </fo:list-block>
- </xsl:if>
+ <fo:list-block provisional-label-separation="4mm" provisional-distance-between-starts="2mm">
+ <xsl:for-each select="list/string">
+ <xsl:if test="string-length(string/text()) > 0">
+ <fo:list-item>
+ <fo:list-item-label end-indent="label-end()">
+ <fo:block>•</fo:block>
+ </fo:list-item-label>
+ <fo:list-item-body start-indent="body-start()">
+ <fo:block>
+ <xsl:value-of select="text()"/>
+ </fo:block>
+ </fo:list-item-body>
+ </fo:list-item>
+ </xsl:if>
+ </xsl:for-each>
+ </fo:list-block>
+ </xsl:if>
- </xsl:template>
+ </xsl:template>
</xsl:stylesheet>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/resources/report/staticReportlet2html.xsl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/report/staticReportlet2html.xsl b/core/src/main/resources/report/staticReportlet2html.xsl
index 0fb7b28..da0ba85 100644
--- a/core/src/main/resources/report/staticReportlet2html.xsl
+++ b/core/src/main/resources/report/staticReportlet2html.xsl
@@ -22,53 +22,53 @@ under the License.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
- <xsl:template match="reportlet[@class='org.apache.syncope.core.report.StaticReportlet']">
- <h2>Reportlet:
- <xsl:value-of select="@name"/>
- </h2>
+ <xsl:template match="reportlet[@class='org.apache.syncope.core.report.StaticReportlet']">
+ <h2>Reportlet:
+ <xsl:value-of select="@name"/>
+ </h2>
- <xsl:if test="string-length(string/text()) > 0">
- <p>String value:
- <xsl:value-of select="string/text()"/>
- </p>
- </xsl:if>
+ <xsl:if test="string-length(string/text()) > 0">
+ <p>String value:
+ <xsl:value-of select="string/text()"/>
+ </p>
+ </xsl:if>
- <xsl:if test="string-length(long/text()) > 0">
- <p>Long value:
- <xsl:value-of select="long/text()"/>
- </p>
- </xsl:if>
+ <xsl:if test="string-length(long/text()) > 0">
+ <p>Long value:
+ <xsl:value-of select="long/text()"/>
+ </p>
+ </xsl:if>
- <xsl:if test="string-length(double/text()) > 0">
- <p>Double value:
- <xsl:value-of select="double/text()"/>
- </p>
- </xsl:if>
+ <xsl:if test="string-length(double/text()) > 0">
+ <p>Double value:
+ <xsl:value-of select="double/text()"/>
+ </p>
+ </xsl:if>
- <xsl:if test="string-length(date/text()) > 0">
- <p>Date value:
- <xsl:value-of select="date/text()"/>
- </p>
- </xsl:if>
+ <xsl:if test="string-length(date/text()) > 0">
+ <p>Date value:
+ <xsl:value-of select="date/text()"/>
+ </p>
+ </xsl:if>
- <xsl:if test="string-length(enum/text()) > 0">
- <p>Enum value:
- <xsl:value-of select="enum/text()"/>
- </p>
- </xsl:if>
+ <xsl:if test="string-length(enum/text()) > 0">
+ <p>Enum value:
+ <xsl:value-of select="enum/text()"/>
+ </p>
+ </xsl:if>
- <xsl:if test="string-length(list) > 0">
- <p>List values:</p>
+ <xsl:if test="string-length(list) > 0">
+ <p>List values:</p>
- <ul>
- <xsl:for-each select="list/string">
- <xsl:if test="string-length(string/text()) > 0">
- <li>
- <xsl:value-of select="text()"/>
- </li>
- </xsl:if>
- </xsl:for-each>
- </ul>
- </xsl:if>
- </xsl:template>
+ <ul>
+ <xsl:for-each select="list/string">
+ <xsl:if test="string-length(string/text()) > 0">
+ <li>
+ <xsl:value-of select="text()"/>
+ </li>
+ </xsl:if>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+ </xsl:template>
</xsl:stylesheet>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/resources/report/userReportlet2html.xsl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/report/userReportlet2html.xsl b/core/src/main/resources/report/userReportlet2html.xsl
index 3367169..751cb4c 100644
--- a/core/src/main/resources/report/userReportlet2html.xsl
+++ b/core/src/main/resources/report/userReportlet2html.xsl
@@ -157,9 +157,9 @@ under the License.
</xsl:otherwise>
</xsl:choose>
<xsl:if test="string-length(resources) > 0">
- <xsl:call-template name="resources">
- <xsl:with-param name="node" select="resources/resource"/>
- </xsl:call-template>
+ <xsl:call-template name="resources">
+ <xsl:with-param name="node" select="resources/resource"/>
+ </xsl:call-template>
</xsl:if>
<hr/>
</xsl:for-each>
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/resources/roleRoute.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/roleRoute.xml b/core/src/main/resources/roleRoute.xml
index 80ff595..44cdfa4 100644
--- a/core/src/main/resources/roleRoute.xml
+++ b/core/src/main/resources/roleRoute.xml
@@ -24,151 +24,151 @@ under the License.
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">
+ <!--
+ The default routes define each task involved in user creation:
+ main operations consist in user workflow creation and its propagation.
+ -->
+ <routeContext id="defaultRoleRoutes" xmlns="http://camel.apache.org/schema/spring">
<!--
- The default routes define each task involved in user creation:
- main operations consist in user workflow creation and its propagation.
+ CREATE ROLE
-->
- <routeContext id="defaultRoleRoutes" xmlns="http://camel.apache.org/schema/spring">
-<!--
- CREATE ROLE
- -->
- <route id="createRole">
- <from uri="direct:createRole"/>
- <setProperty propertyName="subject">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="rwfAdapter" method="create(${body})"/>
- <process ref="defaultRoleCreatePropagation" />
- <to uri="direct:createRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:createRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="createRole">
+ <from uri="direct:createRole"/>
+ <setProperty propertyName="subject">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="create(${body})"/>
+ <process ref="defaultRoleCreatePropagation" />
+ <to uri="direct:createRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- CREATE ROLE SYNC
- -->
- <route id="createRoleSync">
- <from uri="direct:createRoleSync"/>
- <setProperty propertyName="subject">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="rwfAdapter" method="create(${body})"/>
- <process ref="defaultRoleCreateSyncPropagation" />
- <to uri="direct:createRoleSyncPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:createRoleSyncPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ CREATE ROLE SYNC
+ -->
+ <route id="createRoleSync">
+ <from uri="direct:createRoleSync"/>
+ <setProperty propertyName="subject">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="create(${body})"/>
+ <process ref="defaultRoleCreateSyncPropagation" />
+ <to uri="direct:createRoleSyncPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createRoleSyncPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UPDATE ROLE
- -->
- <route id="updateRole">
- <from uri="direct:updateRole"/>
- <setProperty propertyName="subjectMod">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="rwfAdapter" method="update(${body})"/>
- <process ref="defaultRoleUpdatePropagation" />
- <to uri="direct:updateRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:updateRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UPDATE ROLE
+ -->
+ <route id="updateRole">
+ <from uri="direct:updateRole"/>
+ <setProperty propertyName="subjectMod">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <process ref="defaultRoleUpdatePropagation" />
+ <to uri="direct:updateRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updateRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- DELETE ROLE
- -->
- <route id="deleteRole">
- <from uri="direct:deleteRole"/>
- <doTry>
- <process ref="defaultRoleDeletePropagation" />
- <bean ref="rwfAdapter" method="delete(${body})"/>
- <setBody>
- <simple>${property.statuses}</simple>
- </setBody>
- <to uri="direct:deleteRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:deleteRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ DELETE ROLE
+ -->
+ <route id="deleteRole">
+ <from uri="direct:deleteRole"/>
+ <doTry>
+ <process ref="defaultRoleDeletePropagation" />
+ <bean ref="rwfAdapter" method="delete(${body})"/>
+ <setBody>
+ <simple>${property.statuses}</simple>
+ </setBody>
+ <to uri="direct:deleteRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:deleteRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UNLINK USER
- -->
- <route id="unlinkRole">
- <from uri="direct:unlinkRole"/>
- <doTry>
- <bean ref="rwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult}</simple>
- </setBody>
- <to uri="direct:unlinkRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:unlinkRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UNLINK USER
+ -->
+ <route id="unlinkRole">
+ <from uri="direct:unlinkRole"/>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult}</simple>
+ </setBody>
+ <to uri="direct:unlinkRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:unlinkRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- LINK USER
- -->
+ <!--
+ LINK USER
+ -->
- <route id="linkRole">
- <from uri="direct:linkRole"/>
- <doTry>
- <bean ref="rwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult}</simple>
- </setBody>
- <to uri="direct:linkRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:linkRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="linkRole">
+ <from uri="direct:linkRole"/>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult}</simple>
+ </setBody>
+ <to uri="direct:linkRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:linkRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- DEPROVISION ROLE
- -->
- <route id="deprovisionRole">
- <from uri="direct:deprovisionRole"/>
- <process ref="defaultRoleDeprovisionPropagation" />
- <to uri="direct:deprovisionRolePort"/>
- </route>
-</routeContext>
+ <!--
+ DEPROVISION ROLE
+ -->
+ <route id="deprovisionRole">
+ <from uri="direct:deprovisionRole"/>
+ <process ref="defaultRoleDeprovisionPropagation" />
+ <to uri="direct:deprovisionRolePort"/>
+ </route>
+ </routeContext>
</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/resources/userRoute.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/userRoute.xml b/core/src/main/resources/userRoute.xml
index e65ef2f..763996d 100644
--- a/core/src/main/resources/userRoute.xml
+++ b/core/src/main/resources/userRoute.xml
@@ -24,240 +24,240 @@ under the License.
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">
- <!--
- The default routes define each task involved in user creation:
- main operations consist in user workflow creation and its propagation.
- -->
- <routeContext id="defaultUserRoutes" xmlns="http://camel.apache.org/schema/spring">
- <route id="createUser">
- <from uri="direct:createUser"/>
- <setProperty propertyName="actual">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="uwfAdapter"
- method="create(${body},${property.disablePwdPolicyCheck},
+ <!--
+ The default routes define each task involved in user creation:
+ main operations consist in user workflow creation and its propagation.
+ -->
+ <routeContext id="defaultUserRoutes" xmlns="http://camel.apache.org/schema/spring">
+ <route id="createUser">
+ <from uri="direct:createUser"/>
+ <setProperty propertyName="actual">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="uwfAdapter"
+ method="create(${body},${property.disablePwdPolicyCheck},
${property.enabled},${property.storePassword})"/>
- <process ref="defaultUserCreatePropagation" />
- <to uri="direct:createPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:createPort"/>
- </doCatch>
- </doTry>
- </route>
+ <process ref="defaultUserCreatePropagation" />
+ <to uri="direct:createPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- The propagation route deals with propagation of created user. In this
- case we used a custom processor to perform this task: it means that
- a custom java class contains the propagation strategy.
- -->
+ <!--
+ The propagation route deals with propagation of created user. In this
+ case we used a custom processor to perform this task: it means that
+ a custom java class contains the propagation strategy.
+ -->
- <!--
- UPDATE USER
- -->
- <route id="updateUser">
- <from uri="direct:updateUser"/>
- <setProperty propertyName="actual">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <process ref="defaultUserUpdatePropagation" />
- <to uri="direct:updatePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:updatePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UPDATE USER
+ -->
+ <route id="updateUser">
+ <from uri="direct:updateUser"/>
+ <setProperty propertyName="actual">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <process ref="defaultUserUpdatePropagation" />
+ <to uri="direct:updatePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updatePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UPDATE SYNC USER
- -->
- <route id="updateSyncUser">
- <from uri="direct:updateSyncUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <to uri="direct:syncUserStatus"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:updateSyncPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UPDATE SYNC USER
+ -->
+ <route id="updateSyncUser">
+ <from uri="direct:updateSyncUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <to uri="direct:syncUserStatus"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updateSyncPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <route id="syncUserStatus">
- <from uri="direct:syncUserStatus"/>
- <process ref="userStatusOnSync" />
- <process ref="defaultUserUpdateSyncPropagation" />
- <to uri="direct:updateSyncPort"/>
- </route>
- <!--
- DELETE USER
- -->
- <route id="deleteUser">
- <from uri="direct:deleteUser"/>
- <doTry>
- <process ref="defaultUserDeletePropagation" />
- <bean ref="uwfAdapter" method="delete(${body})"/>
- <setBody>
- <simple>${property.statuses}</simple>
- </setBody>
- <to uri="direct:deletePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:deletePort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="syncUserStatus">
+ <from uri="direct:syncUserStatus"/>
+ <process ref="userStatusOnSync" />
+ <process ref="defaultUserUpdateSyncPropagation" />
+ <to uri="direct:updateSyncPort"/>
+ </route>
+ <!--
+ DELETE USER
+ -->
+ <route id="deleteUser">
+ <from uri="direct:deleteUser"/>
+ <doTry>
+ <process ref="defaultUserDeletePropagation" />
+ <bean ref="uwfAdapter" method="delete(${body})"/>
+ <setBody>
+ <simple>${property.statuses}</simple>
+ </setBody>
+ <to uri="direct:deletePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:deletePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UNLINK USER
- -->
- <route id="unlinkUser">
- <from uri="direct:unlinkUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult.getKey}</simple>
- </setBody>
- <to uri="direct:unlinkPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:unlinkPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UNLINK USER
+ -->
+ <route id="unlinkUser">
+ <from uri="direct:unlinkUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult.getKey}</simple>
+ </setBody>
+ <to uri="direct:unlinkPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:unlinkPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- LINK USER
- -->
+ <!--
+ LINK USER
+ -->
- <route id="linkUser">
- <from uri="direct:linkUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult.getKey}</simple>
- </setBody>
- <to uri="direct:linkPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:linkPort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="linkUser">
+ <from uri="direct:linkUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult.getKey}</simple>
+ </setBody>
+ <to uri="direct:linkPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:linkPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- ACTIVATE USER
- -->
- <route id="activateUser">
- <from uri="direct:activateUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="activate(${body}, ${property.token})"/>
- <to uri="direct:statusUser"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:statusPort"/>
- </doCatch>
- </doTry>
- </route>
- <!--
- REACTIVATE USER
- -->
- <route id="reactivateUser">
- <from uri="direct:reactivateUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="reactivate(${body})"/>
- <to uri="direct:statusUser"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:statusPort"/>
- </doCatch>
- </doTry>
- </route>
- <!--
- SUSPEND USER
- -->
- <route id="suspendUser">
- <from uri="direct:suspendUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="suspend(${body})"/>
- <to uri="direct:statusUser"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:statusPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ ACTIVATE USER
+ -->
+ <route id="activateUser">
+ <from uri="direct:activateUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="activate(${body}, ${property.token})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ REACTIVATE USER
+ -->
+ <route id="reactivateUser">
+ <from uri="direct:reactivateUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="reactivate(${body})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ SUSPEND USER
+ -->
+ <route id="suspendUser">
+ <from uri="direct:suspendUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="suspend(${body})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- STATUS PROPAGATION
- -->
+ <!--
+ STATUS PROPAGATION
+ -->
- <route id="statusUser">
- <from uri="direct:statusUser"/>
- <process ref="defaultUserStatusPropagation" />
- <to uri="direct:statusPort"/>
- </route>
+ <route id="statusUser">
+ <from uri="direct:statusUser"/>
+ <process ref="defaultUserStatusPropagation" />
+ <to uri="direct:statusPort"/>
+ </route>
- <!--
- DEPROVISION USER
- -->
- <route id="deprovisionUser">
- <from uri="direct:deprovisionUser"/>
- <process ref="defaultUserDeprovisionPropagation" />
- <to uri="direct:deprovisionPort"/>
- </route>
+ <!--
+ DEPROVISION USER
+ -->
+ <route id="deprovisionUser">
+ <from uri="direct:deprovisionUser"/>
+ <process ref="defaultUserDeprovisionPropagation" />
+ <to uri="direct:deprovisionPort"/>
+ </route>
- <route id="suspendUserWF">
- <from uri="direct:suspendUserWF"/>
- <doTry>
- <bean ref="uwfAdapter" method="suspend(${body})"/>
- <process ref="defaultUserWFSuspendPropagation"/>
- <to uri="direct:suspendWFPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:suspendWFPort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="suspendUserWF">
+ <from uri="direct:suspendUserWF"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="suspend(${body})"/>
+ <process ref="defaultUserWFSuspendPropagation"/>
+ <to uri="direct:suspendWFPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:suspendWFPort"/>
+ </doCatch>
+ </doTry>
+ </route>
-</routeContext>
+ </routeContext>
</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/resources/wadl2html/index.xsl
----------------------------------------------------------------------
diff --git a/core/src/main/resources/wadl2html/index.xsl b/core/src/main/resources/wadl2html/index.xsl
index d7b4e98..e238b99 100644
--- a/core/src/main/resources/wadl2html/index.xsl
+++ b/core/src/main/resources/wadl2html/index.xsl
@@ -48,50 +48,50 @@
<link rel="stylesheet" href="{$contextPath}/webjars/jquery-ui/${jquery-ui.version}/themes/base/minified/jquery-ui.min.css"/>
<style>
-body {
- font-family: "Verdana,Arial,sans-serif";
- font-size: 0.9em;
-}
+ body {
+ font-family: "Verdana,Arial,sans-serif";
+ font-size: 0.9em;
+ }
-table {
- font-family: "Verdana,Arial,sans-serif";
- font-size: 0.9em;
- border-width: 1px;
- border-color: #666666;
- border-collapse: collapse;
-}
-table th {
- border-width: 1px;
- padding: 8px;
- border-style: solid;
- border-color: #666666;
- background-color: #dedede;
-}
-td {
- border-width: 1px;
- padding: 8px;
- border-style: solid;
- border-color: #666666;
- background-color: #ffffff;
- vertical-align: top;
-}
+ table {
+ font-family: "Verdana,Arial,sans-serif";
+ font-size: 0.9em;
+ border-width: 1px;
+ border-color: #666666;
+ border-collapse: collapse;
+ }
+ table th {
+ border-width: 1px;
+ padding: 8px;
+ border-style: solid;
+ border-color: #666666;
+ background-color: #dedede;
+ }
+ td {
+ border-width: 1px;
+ padding: 8px;
+ border-style: solid;
+ border-color: #666666;
+ background-color: #ffffff;
+ vertical-align: top;
+ }
-.methods {
- padding: 5px;
-}
+ .methods {
+ padding: 5px;
+ }
-.representation-label {
- font-weight: bold;
- width: 80px;
-}
+ .representation-label {
+ font-weight: bold;
+ width: 80px;
+ }
-.ui-widget { font-size: 0.9em; }
-.ui-tabs-vertical { width: 60em; }
-.ui-tabs-vertical .ui-tabs-nav { padding: .2em .1em .2em .2em; float: left; width: 15em; }
-.ui-tabs-vertical .ui-tabs-nav li { clear: left; width: 100%; border-bottom-width: 1px !important; border-right-width: 0 !important; margin: 0 -1px .2em 0; }
-.ui-tabs-vertical .ui-tabs-nav li a { display:block; }
-.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active { padding-bottom: 0; padding-right: .1em; border-right-width: 1px; border-right-width: 1px; }
-.ui-tabs-vertical .ui-tabs-panel { padding: 1em; float: right; width: 40em;}
+ .ui-widget { font-size: 0.9em; }
+ .ui-tabs-vertical { width: 60em; }
+ .ui-tabs-vertical .ui-tabs-nav { padding: .2em .1em .2em .2em; float: left; width: 15em; }
+ .ui-tabs-vertical .ui-tabs-nav li { clear: left; width: 100%; border-bottom-width: 1px !important; border-right-width: 0 !important; margin: 0 -1px .2em 0; }
+ .ui-tabs-vertical .ui-tabs-nav li a { display:block; }
+ .ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active { padding-bottom: 0; padding-right: .1em; border-right-width: 1px; border-right-width: 1px; }
+ .ui-tabs-vertical .ui-tabs-panel { padding: 1em; float: right; width: 40em;}
</style>
<script src="{$contextPath}/webjars/jquery/${jquery.version}/jquery.min.js">
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java b/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java
index fcc9dc8..ff0c099 100644
--- a/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java
+++ b/core/src/test/java/org/apache/syncope/core/persistence/dao/DerSchemaTest.java
@@ -79,7 +79,6 @@ public class DerSchemaTest extends AbstractDAOTest {
assertNull("delete did not work", actual);
// ------------- //
-
RDerSchema rderiveddata = derSchemaDAO.find("rderiveddata", RDerSchema.class);
assertNotNull(rderiveddata);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/test/java/org/apache/syncope/core/persistence/dao/SecurityQuestionTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/persistence/dao/SecurityQuestionTest.java b/core/src/test/java/org/apache/syncope/core/persistence/dao/SecurityQuestionTest.java
index 87bf75b..86e725c 100644
--- a/core/src/test/java/org/apache/syncope/core/persistence/dao/SecurityQuestionTest.java
+++ b/core/src/test/java/org/apache/syncope/core/persistence/dao/SecurityQuestionTest.java
@@ -52,7 +52,7 @@ public class SecurityQuestionTest extends AbstractDAOTest {
public void save() {
SecurityQuestion securityQuestion = new SecurityQuestion();
securityQuestion.setContent("What is your favorite pet's name?");
-
+
SecurityQuestion actual = securityQuestionDAO.save(securityQuestion);
assertNotNull(actual);
assertNotNull(actual.getId());
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java b/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java
index ef0c4a8..efae722 100644
--- a/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java
+++ b/core/src/test/java/org/apache/syncope/core/persistence/dao/VirSchemaTest.java
@@ -77,7 +77,6 @@ public class VirSchemaTest extends AbstractDAOTest {
assertNull("delete did not work", actual);
// ------------- //
-
RVirSchema rvirtualdata = virSchemaDAO.find("rvirtualdata", RVirSchema.class);
assertNotNull(rvirtualdata);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java b/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java
index d1063f5..4dbf804 100644
--- a/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java
+++ b/core/src/test/java/org/apache/syncope/core/rest/ConnectorTestITCase.java
@@ -709,13 +709,13 @@ public class ConnectorTestITCase extends AbstractTest {
@Test
public void issueSYNCOPE605() {
-
+
ConnInstanceTO connectorInstanceTO = connectorService.read(103L);
assertTrue(connectorInstanceTO.getCapabilities().isEmpty());
-
+
connectorInstanceTO.getCapabilities().add(ConnectorCapability.SEARCH);
connectorService.update(connectorInstanceTO.getId(), connectorInstanceTO);
-
+
ConnInstanceTO updatedCapabilities = connectorService.read(connectorInstanceTO.getId());
assertNotNull(updatedCapabilities.getCapabilities());
assertTrue(updatedCapabilities.getCapabilities().size() == 1);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/test/java/org/apache/syncope/core/rest/NotificationTestITCase.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/rest/NotificationTestITCase.java b/core/src/test/java/org/apache/syncope/core/rest/NotificationTestITCase.java
index 7d7a433..3008350 100644
--- a/core/src/test/java/org/apache/syncope/core/rest/NotificationTestITCase.java
+++ b/core/src/test/java/org/apache/syncope/core/rest/NotificationTestITCase.java
@@ -44,7 +44,7 @@ public class NotificationTestITCase extends AbstractTest {
NotificationTO notificationTO = new NotificationTO();
notificationTO.setTraceLevel(TraceLevel.SUMMARY);
notificationTO.getEvents().add("create");
-
+
notificationTO.setUserAbout(SyncopeClient.getUserSearchConditionBuilder().
is("fullname").equalTo("*o*").and("fullname").equalTo("*i*").query());
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java b/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java
index 18b1e3f..0100538 100644
--- a/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java
+++ b/core/src/test/java/org/apache/syncope/core/rest/PolicyTestITCase.java
@@ -227,12 +227,12 @@ public class PolicyTestITCase extends AbstractTest {
public void issueSYNCOPE553() {
AccountPolicyTO policy = new AccountPolicyTO(false);
policy.setDescription("SYNCOPE553");
-
+
final AccountPolicySpec accountPolicySpec = new AccountPolicySpec();
accountPolicySpec.setMinLength(3);
accountPolicySpec.setMaxLength(8);
policy.setSpecification(accountPolicySpec);
-
+
policy = createPolicy(policy);
assertNotNull(policy);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java b/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java
index 77f4c66..e4b915f 100644
--- a/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java
+++ b/core/src/test/java/org/apache/syncope/core/rest/ResourceTestITCase.java
@@ -507,7 +507,7 @@ public class ResourceTestITCase extends AbstractTest {
item.setExtAttrName("cn");
item.setPurpose(MappingPurpose.BOTH);
mapping.setAccountIdItem(item);
-
+
item = new MappingItemTO();
item.setIntMappingType(IntMappingType.RoleOwnerSchema);
item.setExtAttrName("owner");
[27/53] [abbrv] syncope git commit: Merge branch 'master' of
https://github.com/Tirasa/SyncopeCamel
Posted by il...@apache.org.
Merge branch 'master' of https://github.com/Tirasa/SyncopeCamel
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/55dfac77
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/55dfac77
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/55dfac77
Branch: refs/heads/master
Commit: 55dfac7706a7a80e62254d749bf0af340b22eaed
Parents: b2ba422 fe8eeb2
Author: giacomolm <gi...@hotmail.it>
Authored: Tue Dec 23 12:34:16 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Tue Dec 23 12:34:16 2014 +0100
----------------------------------------------------------------------
installer/pom.xml | 20 +++
.../installer/containers/jboss/JBoss.java | 12 +-
.../org/apache/syncope/installer/enums/DBs.java | 3 +
.../installer/files/ConsoleProperties.java | 31 ++++
.../syncope/installer/files/CoreWebXml.java | 76 ++------
.../installer/files/GlassfishCoreWebXml.java | 38 +---
.../files/JBossDeploymentStructureXml.java | 40 +----
.../syncope/installer/files/ParentPom.java | 176 +------------------
.../files/PersistenceContextEMFactoryXml.java | 47 +----
.../installer/files/PersistenceProperties.java | 27 +--
.../installer/processes/ArchetypeProcess.java | 41 +++--
.../installer/processes/BaseProcess.java | 54 ++++++
.../installer/processes/ContainerProcess.java | 171 ++++++++++++++----
.../installer/processes/PersistenceProcess.java | 25 ++-
.../installer/utilities/FileSystemUtils.java | 45 +++++
.../syncope/installer/utilities/MavenUtils.java | 31 +---
.../src/main/resources/configuration.properties | 31 ++++
.../main/resources/izpack/ProcessPanel.Spec.xml | 40 +++--
installer/src/main/resources/izpack/install.xml | 6 +-
.../main/resources/izpack/userInputLang.xml_eng | 4 +
.../main/resources/izpack/userInputLang.xml_ita | 4 +
.../src/main/resources/izpack/userInputSpec.xml | 20 ++-
installer/src/main/resources/modelerPom.xml | 116 ++++++++++++
23 files changed, 589 insertions(+), 469 deletions(-)
----------------------------------------------------------------------
[50/53] [abbrv] syncope git commit: restoring original POM name / desc
Posted by il...@apache.org.
restoring original POM name / desc
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/01ac2bd7
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/01ac2bd7
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/01ac2bd7
Branch: refs/heads/master
Commit: 01ac2bd7dd4cb2116b7ee5e6b7502f066527c08b
Parents: d388f24
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Jan 5 14:14:01 2015 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Jan 5 14:14:01 2015 +0100
----------------------------------------------------------------------
pom.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/01ac2bd7/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 1fe0129..30673a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,8 @@ under the License.
<modelVersion>4.0.0</modelVersion>
- <name>PoC for integrating Apache Camel in Apache Syncope</name>
+ <name>Apache Syncope</name>
+ <description>Apache Syncope parent POM</description>
<groupId>org.apache.syncope</groupId>
<artifactId>syncope</artifactId>
[51/53] [abbrv] syncope git commit: White noise - This closes #2
Posted by il...@apache.org.
White noise - This closes #2
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/a90a48ad
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/a90a48ad
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/a90a48ad
Branch: refs/heads/2_0_X
Commit: a90a48ad5dc9dd5667713a159e555ba1ac6b8741
Parents: 01ac2bd
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Jan 5 14:33:32 2015 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Jan 5 14:33:32 2015 +0100
----------------------------------------------------------------------
core/src/main/resources/provisioning.properties | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/a90a48ad/core/src/main/resources/provisioning.properties
----------------------------------------------------------------------
diff --git a/core/src/main/resources/provisioning.properties b/core/src/main/resources/provisioning.properties
index a8e49bf..b55bd06 100644
--- a/core/src/main/resources/provisioning.properties
+++ b/core/src/main/resources/provisioning.properties
@@ -14,6 +14,5 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-
userProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager
-roleProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelRoleProvisioningManager
\ No newline at end of file
+roleProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelRoleProvisioningManager
[35/53] [abbrv] syncope git commit: Fixing deprecation errors during
compilation
Posted by il...@apache.org.
Fixing deprecation errors during compilation
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/ac4d6af4
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/ac4d6af4
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/ac4d6af4
Branch: refs/heads/2_0_X
Commit: ac4d6af48f8c08167db7051d69c011f650b48555
Parents: b19ff85
Author: giacomolm <gi...@hotmail.it>
Authored: Tue Dec 30 18:25:12 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Tue Dec 30 18:25:12 2014 +0100
----------------------------------------------------------------------
.../core/provisioning/camel/CamelRoleProvisioningManager.java | 4 ++--
.../core/provisioning/camel/CamelUserProvisioningManager.java | 5 +++--
.../syncope/core/provisioning/camel/SyncopeCamelContext.java | 6 +++---
.../camel/processors/DefaultUserUpdatePropagation.java | 2 --
4 files changed, 8 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/ac4d6af4/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
index 33856a9..9b121a4 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
@@ -68,7 +68,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
private static final Logger LOG = LoggerFactory.getLogger(CamelRoleProvisioningManager.class);
- private DefaultCamelContext camelContext;
+ private SpringCamelContext camelContext;
private RoutesDefinition routes;
@@ -95,7 +95,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
camelContext.stop();
}
- public CamelContext getContext() {
+ public SpringCamelContext getContext() {
//ApplicationContext context = ApplicationContextProvider.getApplicationContext();
//return context.getBean("camel-context", DefaultCamelContext.class);
return contextFactory.getContext(routeDAO);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ac4d6af4/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
index d30c624..01b057a 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
@@ -40,6 +40,7 @@ import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.impl.DefaultMessage;
import org.apache.camel.model.RoutesDefinition;
+import org.apache.camel.spring.SpringCamelContext;
import org.apache.syncope.common.mod.StatusMod;
import org.apache.syncope.common.mod.UserMod;
import org.apache.syncope.common.to.PropagationStatus;
@@ -59,7 +60,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
private static final Logger LOG = LoggerFactory.getLogger(CamelUserProvisioningManager.class);
- private DefaultCamelContext camelContext;
+ private SpringCamelContext camelContext;
private RoutesDefinition routes;
@@ -98,7 +99,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
camelContext.stop();
}
- public CamelContext getContext() {
+ public SpringCamelContext getContext() {
//ApplicationContext context = ApplicationContextProvider.getApplicationContext();
//return context.getBean("camel-context", DefaultCamelContext.class);
return contextFactory.getContext(routeDAO);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ac4d6af4/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
index c529dcf..6d3e77d 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
@@ -48,15 +48,15 @@ public class SyncopeCamelContext {
private static final Logger LOG = LoggerFactory.getLogger(SyncopeCamelContext.class);
- private CamelContext camelContext = null;
+ private SpringCamelContext camelContext = null;
public SyncopeCamelContext() {
}
- public CamelContext getContext(RouteDAO routeDAO) {
+ public SpringCamelContext getContext(RouteDAO routeDAO) {
if (camelContext == null) {
- camelContext = new SpringCamelContext(ApplicationContextProvider.getApplicationContext());
+ camelContext = new SpringCamelContext(ApplicationContextProvider.getApplicationContext());
}
if (camelContext.getRouteDefinitions().isEmpty()) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/ac4d6af4/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
index a94bea5..c9b498e 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
@@ -24,11 +24,9 @@ import java.util.List;
import java.util.Map;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
-import org.apache.syncope.common.mod.AttributeMod;
import org.apache.syncope.common.mod.MembershipMod;
import org.apache.syncope.common.mod.UserMod;
import org.apache.syncope.common.to.PropagationStatus;
-import org.apache.syncope.common.to.UserTO;
import org.apache.syncope.core.persistence.beans.PropagationTask;
import org.apache.syncope.core.propagation.PropagationByResource;
import org.apache.syncope.core.propagation.PropagationException;
[28/53] [abbrv] syncope git commit: Merge branch 'master' of
https://github.com/Tirasa/SyncopeCamel
Posted by il...@apache.org.
Merge branch 'master' of https://github.com/Tirasa/SyncopeCamel
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/55dfac77
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/55dfac77
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/55dfac77
Branch: refs/heads/2_0_X
Commit: 55dfac7706a7a80e62254d749bf0af340b22eaed
Parents: b2ba422 fe8eeb2
Author: giacomolm <gi...@hotmail.it>
Authored: Tue Dec 23 12:34:16 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Tue Dec 23 12:34:16 2014 +0100
----------------------------------------------------------------------
installer/pom.xml | 20 +++
.../installer/containers/jboss/JBoss.java | 12 +-
.../org/apache/syncope/installer/enums/DBs.java | 3 +
.../installer/files/ConsoleProperties.java | 31 ++++
.../syncope/installer/files/CoreWebXml.java | 76 ++------
.../installer/files/GlassfishCoreWebXml.java | 38 +---
.../files/JBossDeploymentStructureXml.java | 40 +----
.../syncope/installer/files/ParentPom.java | 176 +------------------
.../files/PersistenceContextEMFactoryXml.java | 47 +----
.../installer/files/PersistenceProperties.java | 27 +--
.../installer/processes/ArchetypeProcess.java | 41 +++--
.../installer/processes/BaseProcess.java | 54 ++++++
.../installer/processes/ContainerProcess.java | 171 ++++++++++++++----
.../installer/processes/PersistenceProcess.java | 25 ++-
.../installer/utilities/FileSystemUtils.java | 45 +++++
.../syncope/installer/utilities/MavenUtils.java | 31 +---
.../src/main/resources/configuration.properties | 31 ++++
.../main/resources/izpack/ProcessPanel.Spec.xml | 40 +++--
installer/src/main/resources/izpack/install.xml | 6 +-
.../main/resources/izpack/userInputLang.xml_eng | 4 +
.../main/resources/izpack/userInputLang.xml_ita | 4 +
.../src/main/resources/izpack/userInputSpec.xml | 20 ++-
installer/src/main/resources/modelerPom.xml | 116 ++++++++++++
23 files changed, 589 insertions(+), 469 deletions(-)
----------------------------------------------------------------------
[22/53] [abbrv] syncope git commit: Code formatting with netbeans
Posted by il...@apache.org.
Code formatting with netbeans
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/7aa0db37
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/7aa0db37
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/7aa0db37
Branch: refs/heads/master
Commit: 7aa0db378d8ab7931c78d570c6f5968e2967bc7b
Parents: b7d6578
Author: giacomolm <gi...@hotmail.it>
Authored: Mon Dec 22 17:48:14 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Mon Dec 22 17:48:14 2014 +0100
----------------------------------------------------------------------
core/pom.xml | 14 +-
.../syncope/core/init/CamelRouteLoader.java | 74 ++--
.../init/ImplementationClassNamesLoader.java | 1 -
.../core/init/SpringContextInitializer.java | 4 +-
.../core/persistence/SQLSchemaGenerator.java | 25 +-
.../persistence/beans/AbstractAttrValue.java | 33 +-
.../persistence/beans/AbstractBaseBean.java | 2 +-
.../core/persistence/beans/CamelRoute.java | 4 +-
.../persistence/beans/ExternalResource.java | 2 +-
.../core/persistence/beans/Notification.java | 5 +-
.../core/persistence/beans/package-info.java | 1 -
.../core/persistence/dao/ConnectorRegistry.java | 2 +-
.../core/persistence/dao/impl/RouteDAOImpl.java | 3 +-
.../entity/AbstractSyncTaskCheck.java | 2 +-
.../entity/AbstractSyncTaskValidator.java | 4 +-
.../validation/entity/AttrCheck.java | 2 +-
.../validation/entity/AttrValueCheck.java | 2 +-
.../validation/entity/ConnInstanceCheck.java | 2 +-
.../entity/ExternalResourceCheck.java | 2 +-
.../validation/entity/NotificationCheck.java | 4 +-
.../validation/entity/PolicyCheck.java | 2 +-
.../validation/entity/PropagationTaskCheck.java | 2 +-
.../validation/entity/ReportCheck.java | 2 +-
.../validation/entity/SchedTaskCheck.java | 2 +-
.../validation/entity/SchemaCheck.java | 2 +-
.../validation/entity/SchemaNameCheck.java | 2 +-
.../validation/entity/SyncopeRoleCheck.java | 2 +-
.../validation/entity/SyncopeUserCheck.java | 3 +-
.../syncope/core/policy/PolicyEvaluator.java | 5 +-
.../syncope/core/policy/PolicyPattern.java | 1 +
.../core/propagation/PropagationReporter.java | 2 +-
.../impl/DBPasswordPropagationActions.java | 16 +-
.../impl/PriorityPropagationTaskExecutor.java | 8 +-
.../propagation/impl/PropagationManager.java | 8 +-
.../syncope/core/propagation/package-info.java | 1 -
.../DefaultRoleProvisioningManager.java | 56 +--
.../DefaultUserProvisioningManager.java | 159 +++----
.../core/provisioning/ProvisioningManager.java | 2 +-
.../provisioning/RoleProvisioningManager.java | 14 +-
.../provisioning/UserProvisioningManager.java | 31 +-
.../camel/CamelRoleProvisioningManager.java | 68 +--
.../camel/CamelUserProvisioningManager.java | 33 +-
.../provisioning/camel/SyncopeCamelContext.java | 81 ++--
.../DefaultRoleCreatePropagation.java | 22 +-
.../DefaultRoleCreateSyncPropagation.java | 31 +-
.../DefaultRoleDeletePropagation.java | 24 +-
.../DefaultRoleDeprovisionPropagation.java | 28 +-
.../DefaultRoleUpdatePropagation.java | 24 +-
.../DefaultUserConfirmPwdResetPropagation.java | 11 +-
.../DefaultUserCreatePropagation.java | 31 +-
.../DefaultUserDeletePropagation.java | 25 +-
.../DefaultUserDeprovisionPropagation.java | 24 +-
.../DefaultUserStatusPropagation.java | 26 +-
.../DefaultUserUpdateInSyncPropagation.java | 48 +-
.../DefaultUserUpdatePropagation.java | 116 ++---
.../DefaultUserWFSuspendPropagation.java | 16 +-
.../camel/processors/UserStatusOnSync.java | 54 +--
.../syncope/core/quartz/package-info.java | 1 -
.../syncope/core/report/ReportletConfClass.java | 2 +-
.../core/report/cocoon/TextSerializer.java | 2 +-
.../core/rest/controller/LoggerController.java | 4 +-
.../core/rest/controller/RoleController.java | 8 +-
.../core/rest/controller/RouteController.java | 46 +-
.../core/rest/controller/UserController.java | 45 +-
.../core/rest/data/ReportDataBinder.java | 6 +-
.../syncope/core/rest/data/RouteDataBinder.java | 10 +-
.../rest/utils/QueryResourceInfoComparator.java | 4 +-
.../rest/utils/RestServiceExceptionMapper.java | 4 +-
.../syncope/core/security/AsymmetricCipher.java | 1 +
.../core/services/ConnectorServiceImpl.java | 2 +-
.../core/services/PolicyServiceImpl.java | 2 +-
.../syncope/core/services/RouteServiceImpl.java | 19 +-
.../core/services/WorkflowServiceImpl.java | 8 +-
.../apache/syncope/core/sync/SyncActions.java | 3 +-
.../apache/syncope/core/sync/SyncResult.java | 7 +-
.../impl/AbstractSubjectPushResultHandler.java | 1 -
.../syncope/core/sync/impl/AbstractSyncJob.java | 2 +-
.../sync/impl/AbstractSyncopeResultHandler.java | 6 +-
.../core/sync/impl/LDAPPasswordSyncActions.java | 10 +-
.../core/sync/impl/RoleSyncResultHandler.java | 10 +-
.../core/sync/impl/UserSyncResultHandler.java | 94 ++--
.../core/util/AttributeDeserializer.java | 4 +-
.../syncope/core/util/ContentLoaderHandler.java | 20 +-
.../apache/syncope/core/util/RouteManager.java | 19 +-
.../syncope/core/util/SecureRandomUtil.java | 8 +-
.../core/util/SyncTokenDeserializer.java | 22 +-
.../apache/syncope/core/util/jexl/JexlUtil.java | 4 +-
.../syncope/core/workflow/package-info.java | 1 -
.../role/AbstractRoleWorkflowAdapter.java | 2 +-
.../user/AbstractUserWorkflowAdapter.java | 2 +-
.../workflow/user/NoOpUserWorkflowAdapter.java | 3 +-
.../core/workflow/user/UserWorkflowAdapter.java | 2 +-
.../activiti/ActivitiUserWorkflowAdapter.java | 3 +-
.../user/activiti/SyncopeGroupManager.java | 2 +-
.../user/activiti/SyncopeUserManager.java | 2 +-
.../resources/persistenceContextEMFactory.xml | 4 +-
.../resources/report/staticReportlet2fo.xsl | 98 ++---
.../resources/report/staticReportlet2html.xsl | 84 ++--
.../resources/report/userReportlet2html.xsl | 6 +-
core/src/main/resources/roleRoute.xml | 272 ++++++------
core/src/main/resources/userRoute.xml | 434 +++++++++----------
core/src/main/resources/wadl2html/index.xsl | 80 ++--
.../core/persistence/dao/DerSchemaTest.java | 1 -
.../persistence/dao/SecurityQuestionTest.java | 2 +-
.../core/persistence/dao/VirSchemaTest.java | 1 -
.../syncope/core/rest/ConnectorTestITCase.java | 6 +-
.../core/rest/NotificationTestITCase.java | 2 +-
.../syncope/core/rest/PolicyTestITCase.java | 4 +-
.../syncope/core/rest/ResourceTestITCase.java | 2 +-
109 files changed, 1291 insertions(+), 1266 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 66b5a22..1628184 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -118,7 +118,7 @@ under the License.
<artifactId>cxf-rt-rs-client</artifactId>
</dependency>
- <dependency>
+ <dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
</dependency>
@@ -127,14 +127,14 @@ under the License.
<artifactId>camel-spring</artifactId>
</dependency>
<dependency>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
- <version>2.2.7</version>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <version>2.2.7</version>
</dependency>
<dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>2.2.7</version>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ <version>2.2.7</version>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/init/CamelRouteLoader.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/init/CamelRouteLoader.java b/core/src/main/java/org/apache/syncope/core/init/CamelRouteLoader.java
index aa6da28..5f63e0d 100644
--- a/core/src/main/java/org/apache/syncope/core/init/CamelRouteLoader.java
+++ b/core/src/main/java/org/apache/syncope/core/init/CamelRouteLoader.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.init;
import java.io.File;
@@ -47,60 +46,61 @@ import org.w3c.dom.NodeList;
@Component
public class CamelRouteLoader {
-
+
private static final Logger LOG = LoggerFactory.getLogger(CamelRouteLoader.class);
-
+
@Autowired
private RouteDAO routeDAO;
-
+
@Autowired
private DataSource dataSource;
-
+
@Transactional
- public void load(){
-
+ public void load() {
+
//if(routeDAO.findAll().isEmpty()){
- URL url = getClass().getResource("/camelRoute.xml");
+ URL url = getClass().getResource("/camelRoute.xml");
+
+ File file = new File(url.getPath());
+ String query = "INSERT INTO CamelRoute(ID, NAME, ROUTECONTENT) VALUES (?, ?, ?)";
+ try {
+
+ DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ Document doc = dBuilder.parse(file);
+ doc.getDocumentElement().normalize();
- File file = new File(url.getPath());
- String query= "INSERT INTO CamelRoute(ID, NAME, ROUTECONTENT) VALUES (?, ?, ?)";
- try{
-
- DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
- Document doc = dBuilder.parse(file);
- doc.getDocumentElement().normalize();
+ JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
- JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+ NodeList listOfRoutes = doc.getElementsByTagName("route");
+ for (int s = 0; s < listOfRoutes.getLength(); s++) {
+ //getting the route node element
+ Node routeEl = listOfRoutes.item(s);
+ //crate an instance of CamelRoute Entity
+ CamelRoute route = new CamelRoute();
+ route.setName(((Element) routeEl).getAttribute("id"));
+ route.setRouteContent(nodeToString(listOfRoutes.item(s)));
- NodeList listOfRoutes = doc.getElementsByTagName("route");
- for(int s=0; s<listOfRoutes.getLength(); s++){
- //getting the route node element
- Node routeEl = listOfRoutes.item(s);
- //crate an instance of CamelRoute Entity
- CamelRoute route = new CamelRoute();
- route.setName(((Element)routeEl).getAttribute("id"));
- route.setRouteContent(nodeToString(listOfRoutes.item(s)));
-
- jdbcTemplate.update(query, new Object[]{s+1,((Element)routeEl).getAttribute("id"), nodeToString(listOfRoutes.item(s))});
- LOG.info("Route Registration Successed");
- }
- } catch (DataAccessException e) {
- LOG.error("While trying to perform {}", query, e);
- } catch (Exception e) {
- LOG.error("Route Registration failed {}",e.getMessage());
+ jdbcTemplate.update(query, new Object[] { s + 1, ((Element) routeEl).getAttribute("id"), nodeToString(
+ listOfRoutes.item(s)) });
+ LOG.info("Route Registration Successed");
}
+ } catch (DataAccessException e) {
+ LOG.error("While trying to perform {}", query, e);
+ } catch (Exception e) {
+ LOG.error("Route Registration failed {}", e.getMessage());
+ }
//}
}
-
- private String nodeToString(Node node) {
+
+ private String nodeToString(Node node) {
StringWriter sw = new StringWriter();
- try{
+ try {
Transformer t = TransformerFactory.newInstance().newTransformer();
t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
t.transform(new DOMSource(node), new StreamResult(sw));
- }catch (TransformerException te) {
+ } catch (TransformerException te) {
System.out.println("nodeToString Transformer Exception");
}
return sw.toString();
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java b/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java
index b7659b8..30c568e 100644
--- a/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java
+++ b/core/src/main/java/org/apache/syncope/core/init/ImplementationClassNamesLoader.java
@@ -114,7 +114,6 @@ public class ImplementationClassNamesLoader {
}
// TODO: add push correlation rules management
-
if (interfaces.contains(PropagationActions.class) && !metadata.isAbstract()) {
classNames.get(Type.PROPAGATION_ACTIONS).add(metadata.getClassName());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java b/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java
index 115587d..dc99e34 100644
--- a/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java
+++ b/core/src/main/java/org/apache/syncope/core/init/SpringContextInitializer.java
@@ -49,7 +49,7 @@ public class SpringContextInitializer implements InitializingBean {
@Autowired
private WorkflowAdapterLoader workflowAdapterLoader;
-
+
@Autowired
private CamelRouteLoader routeLoader;
@@ -63,7 +63,7 @@ public class SpringContextInitializer implements InitializingBean {
classNamesLoader.load();
routeLoader.load();
-
+
workflowAdapterLoader.init();
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/SQLSchemaGenerator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/SQLSchemaGenerator.java b/core/src/main/java/org/apache/syncope/core/persistence/SQLSchemaGenerator.java
index 342e347..8942cda 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/SQLSchemaGenerator.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/SQLSchemaGenerator.java
@@ -60,7 +60,7 @@ public final class SQLSchemaGenerator {
}
@SuppressWarnings("unchecked")
- Iterator<File> itor = FileUtils.iterateFiles(baseDir, new String[] {"class"}, true);
+ Iterator<File> itor = FileUtils.iterateFiles(baseDir, new String[] { "class" }, true);
List<File> entityClasses = new ArrayList<File>();
while (itor.hasNext()) {
entityClasses.add(itor.next());
@@ -127,7 +127,7 @@ public final class SQLSchemaGenerator {
for (int i = 0; i < files.size(); i++) {
File file = files.get(i);
- args[ i] = file.getAbsolutePath();
+ args[i] = file.getAbsolutePath();
}
return args;
}
@@ -140,7 +140,6 @@ public final class SQLSchemaGenerator {
final String connectionProperties) {
//extendRealmClasspath();
-
Options opts = new Options();
opts.put(OPTION_PROPERTIES_FILE, persistenceXmlFile);
opts.put(OPTION_CONNECTION_DRIVER_NAME, connectionDriverName);
@@ -156,16 +155,16 @@ public final class SQLSchemaGenerator {
boolean ok = Configurations.runAgainstAllAnchors(opts,
new Configurations.Runnable() {
- @Override
- public boolean run(final Options opts) throws IOException, SQLException {
- JDBCConfiguration conf = new JDBCConfigurationImpl();
- try {
- return MappingTool.run(conf, args, opts);
- } finally {
- conf.close();
- }
- }
- });
+ @Override
+ public boolean run(final Options opts) throws IOException, SQLException {
+ JDBCConfiguration conf = new JDBCConfigurationImpl();
+ try {
+ return MappingTool.run(conf, args, opts);
+ } finally {
+ conf.close();
+ }
+ }
+ });
if (!ok) {
throw new IllegalStateException("The OpenJPA MappingTool detected an error!");
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractAttrValue.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractAttrValue.java b/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractAttrValue.java
index 6ee527e..e3e71a1 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractAttrValue.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractAttrValue.java
@@ -195,21 +195,21 @@ public abstract class AbstractAttrValue extends AbstractBaseBean {
return (T) (booleanValue != null
? getBooleanValue()
: dateValue != null
- ? getDateValue()
- : doubleValue != null
- ? getDoubleValue()
- : longValue != null
- ? getLongValue()
- : binaryValue != null
- ? getBinaryValue()
- : stringValue);
+ ? getDateValue()
+ : doubleValue != null
+ ? getDoubleValue()
+ : longValue != null
+ ? getLongValue()
+ : binaryValue != null
+ ? getBinaryValue()
+ : stringValue);
}
public String getValueAsString() {
final AttributeSchemaType type = getAttribute() == null || getAttribute().getSchema() == null
|| getAttribute().getSchema().getType() == null
- ? AttributeSchemaType.String
- : getAttribute().getSchema().getType();
+ ? AttributeSchemaType.String
+ : getAttribute().getSchema().getType();
return getValueAsString(type);
}
@@ -228,22 +228,23 @@ public abstract class AbstractAttrValue extends AbstractBaseBean {
case Long:
result = getAttribute() == null || getAttribute().getSchema() == null
|| getAttribute().getSchema().getConversionPattern() == null
- ? getLongValue().toString()
- : DataFormat.format(getLongValue(), getAttribute().getSchema().getConversionPattern());
+ ? getLongValue().toString()
+ : DataFormat.format(getLongValue(), getAttribute().getSchema().getConversionPattern());
break;
case Double:
result = getAttribute() == null || getAttribute().getSchema() == null
|| getAttribute().getSchema().getConversionPattern() == null
- ? getDoubleValue().toString()
- : DataFormat.format(getDoubleValue(), getAttribute().getSchema().getConversionPattern());
+ ? getDoubleValue().toString()
+ : DataFormat.format(getDoubleValue(), getAttribute().getSchema().getConversionPattern());
break;
case Date:
result = getAttribute() == null || getAttribute().getSchema() == null
|| getAttribute().getSchema().getConversionPattern() == null
- ? DataFormat.format(getDateValue())
- : DataFormat.format(getDateValue(), false, getAttribute().getSchema().getConversionPattern());
+ ? DataFormat.format(getDateValue())
+ : DataFormat.format(getDateValue(), false, getAttribute().getSchema().
+ getConversionPattern());
break;
case Binary:
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractBaseBean.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractBaseBean.java b/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractBaseBean.java
index b8350b0..af2727a 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractBaseBean.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/beans/AbstractBaseBean.java
@@ -73,7 +73,7 @@ public abstract class AbstractBaseBean implements Serializable {
}
}
- return excludeFields.toArray(new String[]{});
+ return excludeFields.toArray(new String[] {});
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/beans/CamelRoute.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/beans/CamelRoute.java b/core/src/main/java/org/apache/syncope/core/persistence/beans/CamelRoute.java
index ad05f27..33fff55 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/beans/CamelRoute.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/beans/CamelRoute.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.persistence.beans;
import javax.persistence.Entity;
@@ -26,13 +25,12 @@ import javax.persistence.Lob;
import javax.persistence.GenerationType;
import javax.persistence.Column;
-
@Entity
public class CamelRoute {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
- @Column(name="id")
+ @Column(name = "id")
private Long id;
private String name;
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/beans/ExternalResource.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/beans/ExternalResource.java b/core/src/main/java/org/apache/syncope/core/persistence/beans/ExternalResource.java
index 438f972..e35eefe 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/beans/ExternalResource.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/beans/ExternalResource.java
@@ -323,7 +323,7 @@ public class ExternalResource extends AbstractSysInfo {
return StringUtils.isBlank(jsonConf)
? Collections.<ConnConfProperty>emptySet()
: new HashSet<ConnConfProperty>(
- Arrays.asList(POJOHelper.deserialize(jsonConf, ConnConfProperty[].class)));
+ Arrays.asList(POJOHelper.deserialize(jsonConf, ConnConfProperty[].class)));
}
public void setConnInstanceConfiguration(final Set<ConnConfProperty> properties) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/beans/Notification.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/beans/Notification.java b/core/src/main/java/org/apache/syncope/core/persistence/beans/Notification.java
index 6c1c466..f548b00 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/beans/Notification.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/beans/Notification.java
@@ -85,7 +85,7 @@ public class Notification extends AbstractBaseBean {
@NotNull
@Enumerated(EnumType.STRING)
private TraceLevel traceLevel;
-
+
@Column(nullable = false)
@Basic
@Min(0)
@@ -168,7 +168,8 @@ public class Notification extends AbstractBaseBean {
}
public boolean addStaticRecipient(String staticRecipient) {
- return staticRecipient != null && !staticRecipients.contains(staticRecipient) && staticRecipients.add(staticRecipient);
+ return staticRecipient != null && !staticRecipients.contains(staticRecipient) && staticRecipients.add(
+ staticRecipient);
}
public boolean removeStaticRecipient(String staticRecipient) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/beans/package-info.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/beans/package-info.java b/core/src/main/java/org/apache/syncope/core/persistence/beans/package-info.java
index 3a78e58..eff4862 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/beans/package-info.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/beans/package-info.java
@@ -17,4 +17,3 @@
* under the License.
*/
package org.apache.syncope.core.persistence.beans;
-
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/dao/ConnectorRegistry.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/dao/ConnectorRegistry.java b/core/src/main/java/org/apache/syncope/core/persistence/dao/ConnectorRegistry.java
index d9c6845..3a783b9 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/dao/ConnectorRegistry.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/dao/ConnectorRegistry.java
@@ -40,4 +40,4 @@ public interface ConnectorRegistry {
* @param id Spring bean id
*/
void unregisterConnector(String id);
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RouteDAOImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RouteDAOImpl.java b/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RouteDAOImpl.java
index aaa0026..7d30a01 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RouteDAOImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/dao/impl/RouteDAOImpl.java
@@ -37,7 +37,8 @@ public class RouteDAOImpl extends AbstractDAOImpl implements RouteDAO {
@Transactional(readOnly = true)
@Override
public List<CamelRoute> findAll() {
- TypedQuery<CamelRoute> query = entityManager.createQuery("SELECT e FROM " + CamelRoute.class.getSimpleName() + " e", CamelRoute.class);
+ TypedQuery<CamelRoute> query = entityManager.createQuery("SELECT e FROM " + CamelRoute.class.getSimpleName()
+ + " e", CamelRoute.class);
return query.getResultList();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskCheck.java
index ac3821d..d7e172b 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = AbstractSyncTaskValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskValidator.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskValidator.java
index a53d815..9088a44 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskValidator.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AbstractSyncTaskValidator.java
@@ -60,8 +60,8 @@ public class AbstractSyncTaskValidator extends AbstractValidator<AbstractSyncTas
isAssignable = object instanceof SyncTask
? SyncActions.class.isAssignableFrom(actionsClass)
: object instanceof PushTask
- ? PushActions.class.isAssignableFrom(actionsClass)
- : false;
+ ? PushActions.class.isAssignableFrom(actionsClass)
+ : false;
} catch (Exception e) {
LOG.error("Invalid SyncActions specified", e);
isValid = false;
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrCheck.java
index b569545..f0131dd 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = AttrValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueCheck.java
index a2e9740..b5efbca 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/AttrValueCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = AttrValueValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceCheck.java
index 6f3af39..172d44e 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ConnInstanceCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target({ElementType.TYPE})
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = ConnInstanceValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceCheck.java
index 74c6984..59be7fb 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ExternalResourceCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = ExternalResourceValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationCheck.java
index 844be3b..8c10eb8 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/NotificationCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NotificationValidator.class)
@Documented
@@ -38,4 +38,4 @@ public @interface NotificationCheck {
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyCheck.java
index 7d722b8..ef55fb1 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PolicyCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = PolicyValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskCheck.java
index 8896bc8..ac0a0de 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/PropagationTaskCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = PropagationTaskValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportCheck.java
index 1e32c14..9f00b67 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/ReportCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = ReportValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskCheck.java
index bcade2f..76f012a 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchedTaskCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = SchedTaskValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaCheck.java
index e6e1be5..e092ec9 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = SchemaValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaNameCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaNameCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaNameCheck.java
index 5ae70e1..65def91 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaNameCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SchemaNameCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = SchemaNameValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleCheck.java
index 5586238..ae7e282 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeRoleCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-@Target({ElementType.TYPE})
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = SyncopeRoleValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserCheck.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserCheck.java b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserCheck.java
index 028ae4d..5a709b7 100644
--- a/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserCheck.java
+++ b/core/src/main/java/org/apache/syncope/core/persistence/validation/entity/SyncopeUserCheck.java
@@ -27,8 +27,7 @@ import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;
-
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = SyncopeUserValidator.class)
@Documented
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/policy/PolicyEvaluator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/policy/PolicyEvaluator.java b/core/src/main/java/org/apache/syncope/core/policy/PolicyEvaluator.java
index e378794..abf7b1d 100644
--- a/core/src/main/java/org/apache/syncope/core/policy/PolicyEvaluator.java
+++ b/core/src/main/java/org/apache/syncope/core/policy/PolicyEvaluator.java
@@ -52,7 +52,7 @@ public class PolicyEvaluator {
final PasswordPolicySpec ppSpec = policy.getSpecification(PasswordPolicySpec.class);
final PasswordPolicySpec evaluatedPPSpec = new PasswordPolicySpec();
- BeanUtils.copyProperties(ppSpec, evaluatedPPSpec, new String[]{"schemasNotPermitted"});
+ BeanUtils.copyProperties(ppSpec, evaluatedPPSpec, new String[] { "schemasNotPermitted" });
for (String schema : ppSpec.getSchemasNotPermitted()) {
AbstractAttr attribute = attributable.getAttr(schema);
@@ -65,7 +65,6 @@ public class PolicyEvaluator {
}
// Password history verification and update
-
if (!(attributable instanceof SyncopeUser)) {
LOG.error("Cannot check previous passwords. attributable is not a user object: {}",
attributable.getClass().getName());
@@ -83,7 +82,7 @@ public class PolicyEvaluator {
final AccountPolicySpec spec = policy.getSpecification(AccountPolicySpec.class);
final AccountPolicySpec accountPolicy = new AccountPolicySpec();
- BeanUtils.copyProperties(spec, accountPolicy, new String[]{"schemasNotPermitted"});
+ BeanUtils.copyProperties(spec, accountPolicy, new String[] { "schemasNotPermitted" });
for (String schema : spec.getSchemasNotPermitted()) {
AbstractAttr attribute = attributable.getAttr(schema);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/policy/PolicyPattern.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/policy/PolicyPattern.java b/core/src/main/java/org/apache/syncope/core/policy/PolicyPattern.java
index 30065c4..e1e0890 100644
--- a/core/src/main/java/org/apache/syncope/core/policy/PolicyPattern.java
+++ b/core/src/main/java/org/apache/syncope/core/policy/PolicyPattern.java
@@ -43,4 +43,5 @@ public class PolicyPattern {
public static final Pattern FIRST_NON_ALPHANUMERIC = Pattern.compile("\\W.*");
public static final Pattern LAST_NON_ALPHANUMERIC = Pattern.compile(".*\\W");
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/propagation/PropagationReporter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/propagation/PropagationReporter.java b/core/src/main/java/org/apache/syncope/core/propagation/PropagationReporter.java
index 0ff432d..e8c985d 100644
--- a/core/src/main/java/org/apache/syncope/core/propagation/PropagationReporter.java
+++ b/core/src/main/java/org/apache/syncope/core/propagation/PropagationReporter.java
@@ -44,7 +44,7 @@ public interface PropagationReporter {
/**
* Report propagation status after executions in case blocking failure (e.g. on primary resources).
- *
+ *
* @param tasks propagation tasks performed before failure
*/
void onPrimaryResourceFailure(List<PropagationTask> tasks);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/propagation/impl/DBPasswordPropagationActions.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/propagation/impl/DBPasswordPropagationActions.java b/core/src/main/java/org/apache/syncope/core/propagation/impl/DBPasswordPropagationActions.java
index 7157907..9ccb146 100644
--- a/core/src/main/java/org/apache/syncope/core/propagation/impl/DBPasswordPropagationActions.java
+++ b/core/src/main/java/org/apache/syncope/core/propagation/impl/DBPasswordPropagationActions.java
@@ -46,7 +46,7 @@ import org.springframework.transaction.annotation.Transactional;
* cipher algorithm property of the DB Connector.
*/
public class DBPasswordPropagationActions extends DefaultPropagationActions {
-
+
private static final String CLEARTEXT = "CLEARTEXT";
@Autowired
@@ -59,12 +59,12 @@ public class DBPasswordPropagationActions extends DefaultPropagationActions {
if (AttributableType.USER == task.getSubjectType()) {
SyncopeUser user = userDAO.find(task.getSubjectId());
-
+
if (user != null && user.getPassword() != null) {
Attribute missing = AttributeUtil.find(
PropagationTaskExecutor.MANDATORY_MISSING_ATTR_NAME,
task.getAttributes());
-
+
ConnInstance connInstance = task.getResource().getConnector();
if (missing != null && missing.getValue() != null && missing.getValue().size() == 1
&& missing.getValue().get(0).equals(OperationalAttributes.PASSWORD_NAME)
@@ -86,7 +86,7 @@ public class DBPasswordPropagationActions extends DefaultPropagationActions {
}
}
}
-
+
private String getCipherAlgorithm(ConnInstance connInstance) {
String cipherAlgorithm = CLEARTEXT;
for (Iterator<ConnConfProperty> propertyIterator = connInstance.getConfiguration().iterator();
@@ -101,21 +101,21 @@ public class DBPasswordPropagationActions extends DefaultPropagationActions {
}
return cipherAlgorithm;
}
-
+
private boolean cipherAlgorithmMatches(String connectorAlgorithm, CipherAlgorithm userAlgorithm) {
if (userAlgorithm == null) {
return false;
}
-
+
if (connectorAlgorithm.equals(userAlgorithm.name())) {
return true;
}
-
+
// Special check for "SHA" (user sync'd from LDAP)
if ("SHA1".equals(connectorAlgorithm) && "SHA".equals(userAlgorithm.name())) {
return true;
}
-
+
return false;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/propagation/impl/PriorityPropagationTaskExecutor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/propagation/impl/PriorityPropagationTaskExecutor.java b/core/src/main/java/org/apache/syncope/core/propagation/impl/PriorityPropagationTaskExecutor.java
index b6734f7..8fd4f18 100644
--- a/core/src/main/java/org/apache/syncope/core/propagation/impl/PriorityPropagationTaskExecutor.java
+++ b/core/src/main/java/org/apache/syncope/core/propagation/impl/PriorityPropagationTaskExecutor.java
@@ -75,7 +75,7 @@ public class PriorityPropagationTaskExecutor extends AbstractPropagationTaskExec
null,
result,
reporter instanceof DefaultPropagationReporter
- ? ((DefaultPropagationReporter) reporter).getStatuses() : null,
+ ? ((DefaultPropagationReporter) reporter).getStatuses() : null,
tasks);
auditManager.audit(
@@ -85,7 +85,7 @@ public class PriorityPropagationTaskExecutor extends AbstractPropagationTaskExec
null,
result,
reporter instanceof DefaultPropagationReporter
- ? ((DefaultPropagationReporter) reporter).getStatuses() : null,
+ ? ((DefaultPropagationReporter) reporter).getStatuses() : null,
tasks);
}
}
@@ -112,8 +112,8 @@ public class PriorityPropagationTaskExecutor extends AbstractPropagationTaskExec
return prop1 > prop2
? 1
: prop1 == prop2
- ? 0
- : -1;
+ ? 0
+ : -1;
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java b/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java
index fcd7110..169c4e8 100644
--- a/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java
+++ b/core/src/main/java/org/apache/syncope/core/propagation/impl/PropagationManager.java
@@ -388,8 +388,8 @@ public class PropagationManager {
PropagationByResource localPropByRes = binder.fillVirtual(subject, vAttrsToBeRemoved == null
? Collections.<String>emptySet()
: vAttrsToBeRemoved, vAttrsToBeUpdated == null
- ? Collections.<AttributeMod>emptySet()
- : vAttrsToBeUpdated, AttributableUtil.getInstance(subject));
+ ? Collections.<AttributeMod>emptySet()
+ : vAttrsToBeUpdated, AttributableUtil.getInstance(subject));
// SYNCOPE-458 fill membership virtual attributes
if (subject instanceof SyncopeUser) {
@@ -402,8 +402,8 @@ public class PropagationManager {
? Collections.<String>emptySet()
: membershipMod.getVirAttrsToRemove(),
membershipMod.getVirAttrsToUpdate() == null ? Collections.<AttributeMod>emptySet()
- : membershipMod.getVirAttrsToUpdate(), AttributableUtil.getInstance(
- AttributableType.MEMBERSHIP));
+ : membershipMod.getVirAttrsToUpdate(), AttributableUtil.getInstance(
+ AttributableType.MEMBERSHIP));
}
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/propagation/package-info.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/propagation/package-info.java b/core/src/main/java/org/apache/syncope/core/propagation/package-info.java
index 7331a06..92d1db5 100644
--- a/core/src/main/java/org/apache/syncope/core/propagation/package-info.java
+++ b/core/src/main/java/org/apache/syncope/core/propagation/package-info.java
@@ -17,4 +17,3 @@
* under the License.
*/
package org.apache.syncope.core.propagation;
-
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
index f376641..5986b8e 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning;
import java.util.AbstractMap;
@@ -48,20 +47,25 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.apache.commons.lang3.StringUtils;
-public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
+public class DefaultRoleProvisioningManager implements RoleProvisioningManager {
private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleProvisioningManager.class);
+
@Autowired
protected RoleWorkflowAdapter rwfAdapter;
+
@Autowired
protected PropagationManager propagationManager;
+
@Autowired
- protected PropagationTaskExecutor taskExecutor;
+ protected PropagationTaskExecutor taskExecutor;
+
@Autowired
protected RoleDAO roleDAO;
+
@Autowired
protected RoleDataBinder binder;
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> create(RoleTO subject) {
return create(subject, Collections.<String>emptySet());
@@ -69,7 +73,7 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
@Override
public Map.Entry<Long, List<PropagationStatus>> create(RoleTO subject, Set<String> excludedResources) {
-
+
WorkflowResult<Long> created = rwfAdapter.create(subject);
EntitlementUtil.extendAuthContext(created.getResult());
@@ -86,15 +90,16 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
final RoleTO savedTO = binder.getRoleTO(created.getResult());
savedTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());
-
+
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
created.getResult(), propagationReporter.getStatuses());
return result;
}
-
+
@Override
- public Map.Entry<Long, List<PropagationStatus>> createInSync(RoleTO roleTO, Map<Long, String> roleOwnerMap,Set<String> excludedResources) throws PropagationException{
-
+ public Map.Entry<Long, List<PropagationStatus>> createInSync(RoleTO roleTO, Map<Long, String> roleOwnerMap,
+ Set<String> excludedResources) throws PropagationException {
+
WorkflowResult<Long> created = rwfAdapter.create((RoleTO) roleTO);
AttributeTO roleOwner = roleTO.getAttrMap().get(StringUtils.EMPTY);
if (roleOwner != null) {
@@ -107,21 +112,21 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
roleTO.getVirAttrs(), excludedResources);
taskExecutor.execute(tasks);
-
+
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
created.getResult(), null);
return result;
}
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod) {
-
+
return update(subjectMod, Collections.<String>emptySet());
}
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources) {
-
+
WorkflowResult<Long> updated = rwfAdapter.update(subjectMod);
List<PropagationTask> tasks = propagationManager.getRoleUpdateTaskIds(updated,
@@ -135,7 +140,6 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
updated.getResult(), propagationReporter.getStatuses());
return result;
@@ -179,13 +183,12 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
propagationReporter.onPrimaryResourceFailure(tasks);
}
- try{
+ try {
rwfAdapter.delete(subjectId);
+ } catch (RuntimeException e) {
+ throw e;
}
- catch(RuntimeException e){
- throw e;
- }
-
+
return propagationReporter.getStatuses();
}
@@ -194,15 +197,16 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
WorkflowResult<Long> updated = rwfAdapter.update(subjectMod);
return updated.getResult();
}
-
+
@Override
- public List<PropagationStatus> deprovision(final Long roleId, final Collection<String> resources){
+ public List<PropagationStatus> deprovision(final Long roleId, final Collection<String> resources) {
final SyncopeRole role = binder.getRoleFromId(roleId);
-
+
final Set<String> noPropResourceName = role.getResourceNames();
noPropResourceName.removeAll(resources);
-
- final List<PropagationTask> tasks = propagationManager.getRoleDeleteTaskIds(roleId, new HashSet<String>(resources), noPropResourceName);
+
+ final List<PropagationTask> tasks = propagationManager.getRoleDeleteTaskIds(roleId, new HashSet<String>(
+ resources), noPropResourceName);
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
PropagationReporter.class);
try {
@@ -218,5 +222,5 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
public Long link(RoleMod subjectMod) {
return rwfAdapter.update(subjectMod).getResult();
}
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
index 070c6aa..ff0544f 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
@@ -47,7 +47,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-public class DefaultUserProvisioningManager implements UserProvisioningManager{
+public class DefaultUserProvisioningManager implements UserProvisioningManager {
private static final Logger LOG = LoggerFactory.getLogger(DefaultUserProvisioningManager.class);
@@ -59,47 +59,48 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
@Autowired
protected PropagationTaskExecutor taskExecutor;
-
+
@Autowired
- protected UserDataBinder binder;
+ protected UserDataBinder binder;
@Autowired
- protected UserDAO userDAO;
+ protected UserDAO userDAO;
@Override
- public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO){
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO) {
return create(userTO, true, false, null, Collections.<String>emptySet());
}
-
- public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, boolean storePassword) {
- /*WorkflowResult<Map.Entry<Long, Boolean>> created;
- try {
- created = uwfAdapter.create(userTO,storePassword);
- } catch (RuntimeException e) {
- throw e;
- }
-
- List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(
- created, userTO.getPassword(), userTO.getVirAttrs(), userTO.getMemberships());
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
- getBean(PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
-
- Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
- created.getResult().getKey(), propagationReporter.getStatuses());
- return result;*/
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, boolean storePassword) {
+ /* WorkflowResult<Map.Entry<Long, Boolean>> created;
+ * try {
+ * created = uwfAdapter.create(userTO,storePassword);
+ * } catch (RuntimeException e) {
+ * throw e;
+ * }
+ *
+ * List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(
+ * created, userTO.getPassword(), userTO.getVirAttrs(), userTO.getMemberships());
+ *
+ * PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ * getBean(PropagationReporter.class);
+ * try {
+ * taskExecutor.execute(tasks, propagationReporter);
+ * } catch (PropagationException e) {
+ * LOG.error("Error propagation primary resource", e);
+ * propagationReporter.onPrimaryResourceFailure(tasks);
+ * }
+ *
+ * Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
+ * created.getResult().getKey(), propagationReporter.getStatuses());
+ * return result; */
return create(userTO, storePassword, false, null, Collections.<String>emptySet());
}
-
+
@Override
- public Map.Entry<Long, List<PropagationStatus>> create(UserTO userTO, boolean storePassword, boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources) {
- WorkflowResult<Map.Entry<Long, Boolean>> created;
+ public Map.Entry<Long, List<PropagationStatus>> create(UserTO userTO, boolean storePassword,
+ boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources) {
+ WorkflowResult<Map.Entry<Long, Boolean>> created;
try {
created = uwfAdapter.create(userTO, disablePwdPolicyCheck, enabled, storePassword);
} catch (RuntimeException e) {
@@ -126,7 +127,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
public Map.Entry<Long, List<PropagationStatus>> update(final UserMod userMod) {
return update(userMod, false);
}
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> update(UserMod userMod, boolean removeMemberships) {
WorkflowResult<Map.Entry<UserMod, Boolean>> updated;
@@ -174,9 +175,9 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
updated.getResult().getKey().getId(), propagationReporter.getStatuses());
- return result;
+ return result;
}
-
+
@Override
public List<PropagationStatus> delete(final Long userId) {
@@ -185,7 +186,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
@Override
public List<PropagationStatus> delete(Long subjectId, Set<String> excludedResources) {
- List<PropagationTask> tasks = propagationManager.getUserDeleteTaskIds(subjectId,excludedResources);
+ List<PropagationTask> tasks = propagationManager.getUserDeleteTaskIds(subjectId, excludedResources);
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
getBean(PropagationReporter.class);
@@ -205,7 +206,6 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
return propagationReporter.getStatuses();
}
-
@Override
public Long unlink(UserMod userMod) {
WorkflowResult<Map.Entry<UserMod, Boolean>> updated = uwfAdapter.update(userMod);
@@ -216,7 +216,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
public Long link(UserMod subjectMod) {
return uwfAdapter.update(subjectMod).getResult().getKey().getId();
}
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> activate(SyncopeUser user, StatusMod statusMod) {
WorkflowResult<Long> updated;
@@ -225,7 +225,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
} else {
updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
}
-
+
List<PropagationStatus> statuses = propagateStatus(user, statusMod);
return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult(), statuses);
}
@@ -238,7 +238,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
} else {
updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
}
-
+
List<PropagationStatus> statuses = propagateStatus(user, statusMod);
return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult(), statuses);
}
@@ -251,13 +251,13 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
} else {
updated = new WorkflowResult<Long>(user.getId(), null, statusMod.getType().name().toLowerCase());
}
-
+
List<PropagationStatus> statuses = propagateStatus(user, statusMod);
return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult(), statuses);
}
-
- public List<PropagationStatus> propagateStatus(SyncopeUser user, StatusMod statusMod){
-
+
+ public List<PropagationStatus> propagateStatus(SyncopeUser user, StatusMod statusMod) {
+
Set<String> resourcesToBeExcluded = new HashSet<String>(user.getResourceNames());
resourcesToBeExcluded.removeAll(statusMod.getResourceNames());
@@ -271,19 +271,19 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
LOG.error("Error propagation primary resource", e);
propReporter.onPrimaryResourceFailure(tasks);
}
-
+
return propReporter.getStatuses();
-
+
}
@Override
public List<PropagationStatus> deprovision(Long userId, Collection<String> resources) {
-
- final SyncopeUser user = binder.getUserFromId(userId);
-
+
+ final SyncopeUser user = binder.getUserFromId(userId);
+
final Set<String> noPropResourceName = user.getResourceNames();
noPropResourceName.removeAll(resources);
-
+
final List<PropagationTask> tasks =
propagationManager.getUserDeleteTaskIds(userId, new HashSet<String>(resources), noPropResourceName);
final PropagationReporter propagationReporter =
@@ -294,14 +294,14 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
-
+
return propagationReporter.getStatuses();
}
@Override
- public Map.Entry<Long, List<PropagationStatus>> updateInSync(final UserMod userMod,final Long id,
- final SyncResult result, Boolean enabled, Set<String> excludedResources){
-
+ public Map.Entry<Long, List<PropagationStatus>> updateInSync(final UserMod userMod, final Long id,
+ final SyncResult result, Boolean enabled, Set<String> excludedResources) {
+
WorkflowResult<Map.Entry<UserMod, Boolean>> updated;
try {
updated = uwfAdapter.update(userMod);
@@ -337,40 +337,41 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
}
}
- PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
- getBean(PropagationReporter.class);
+ PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
+ getBean(PropagationReporter.class);
- List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated,updated.getResult().getKey().getPassword() != null,excludedResources);
-
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
- }
+ List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated, updated.getResult().getKey().
+ getPassword() != null, excludedResources);
-
- return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult().getKey().getId(), propagationReporter.getStatuses());
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
+
+ return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult().getKey().getId(),
+ propagationReporter.getStatuses());
}
@Override
public void innerSuspend(SyncopeUser user, boolean suspend) {
-
- final WorkflowResult<Long> updated = uwfAdapter.suspend(user);
- // propagate suspension if and only if it is required by policy
- if (suspend) {
- UserMod userMod = new UserMod();
- userMod.setId(updated.getResult());
+ final WorkflowResult<Long> updated = uwfAdapter.suspend(user);
+
+ // propagate suspension if and only if it is required by policy
+ if (suspend) {
+ UserMod userMod = new UserMod();
+ userMod.setId(updated.getResult());
- final List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(
- new WorkflowResult<Map.Entry<UserMod, Boolean>>(
- new AbstractMap.SimpleEntry<UserMod, Boolean>(userMod, Boolean.FALSE),
- updated.getPropByRes(), updated.getPerformedTasks()));
+ final List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(
+ new WorkflowResult<Map.Entry<UserMod, Boolean>>(
+ new AbstractMap.SimpleEntry<UserMod, Boolean>(userMod, Boolean.FALSE),
+ updated.getPropByRes(), updated.getPerformedTasks()));
- taskExecutor.execute(tasks);
- }
+ taskExecutor.execute(tasks);
+ }
}
@Override
@@ -380,7 +381,7 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
@Override
public void confirmPasswordReset(SyncopeUser user, String token, String password) {
-
+
uwfAdapter.confirmPasswordReset(user.getId(), token, password);
List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(user, null, null);
@@ -391,6 +392,6 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
} catch (PropagationException e) {
LOG.error("Error propagation primary resource", e);
propReporter.onPrimaryResourceFailure(tasks);
- }
+ }
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
index adc1cb0..65f7f7d 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/ProvisioningManager.java
@@ -25,7 +25,7 @@ import org.apache.syncope.common.mod.AbstractAttributableMod;
import org.apache.syncope.common.to.AbstractAttributableTO;
import org.apache.syncope.common.to.PropagationStatus;
-public interface ProvisioningManager<T extends AbstractAttributableTO, M extends AbstractAttributableMod>{
+public interface ProvisioningManager<T extends AbstractAttributableTO, M extends AbstractAttributableMod> {
public Map.Entry<Long, List<PropagationStatus>> create(T subject);
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/RoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/RoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/RoleProvisioningManager.java
index 594bf5e..53029ac 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/RoleProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/RoleProvisioningManager.java
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.syncope.core.provisioning;
import java.util.List;
@@ -24,12 +23,13 @@ import org.apache.syncope.common.mod.RoleMod;
import org.apache.syncope.common.to.PropagationStatus;
import org.apache.syncope.core.propagation.PropagationException;
-public interface RoleProvisioningManager extends ProvisioningManager<RoleTO, RoleMod>{
-
+public interface RoleProvisioningManager extends ProvisioningManager<RoleTO, RoleMod> {
+
public Map.Entry<Long, List<PropagationStatus>> create(final RoleTO roleTO, Set<String> excludedResources);
-
- public Map.Entry<Long, List<PropagationStatus>> createInSync(final RoleTO roleTO, Map<Long, String> roleOwnerMap,Set<String> excludedResources) throws PropagationException;
-
+
+ public Map.Entry<Long, List<PropagationStatus>> createInSync(final RoleTO roleTO, Map<Long, String> roleOwnerMap,
+ Set<String> excludedResources) throws PropagationException;
+
public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources);
-
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
index 32a4d18..c5b70a8 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/UserProvisioningManager.java
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.syncope.core.provisioning;
import java.util.List;
@@ -27,28 +26,30 @@ import org.apache.syncope.common.to.PropagationStatus;
import org.apache.syncope.core.persistence.beans.user.SyncopeUser;
import org.apache.syncope.core.sync.SyncResult;
-public interface UserProvisioningManager extends ProvisioningManager<UserTO, UserMod>{
-
+public interface UserProvisioningManager extends ProvisioningManager<UserTO, UserMod> {
+
public Map.Entry<Long, List<PropagationStatus>> activate(SyncopeUser user, StatusMod statusMod);
public Map.Entry<Long, List<PropagationStatus>> reactivate(SyncopeUser user, StatusMod statusMod);
public Map.Entry<Long, List<PropagationStatus>> suspend(SyncopeUser user, StatusMod statusMod);
-
+
public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword);
-
- public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword, boolean disablePwdPolicyCheck, Boolean enabled,Set<String> excludedResources);
-
+
+ public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword,
+ boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources);
+
public Map.Entry<Long, List<PropagationStatus>> update(final UserMod userMod, final boolean removeMemberships);
-
- public Map.Entry<Long, List<PropagationStatus>> updateInSync(final UserMod userMod,final Long id, final SyncResult result, Boolean enabled, Set<String> excludedResources);
- public List<PropagationStatus> delete(Long subjectId, Set<String> excludedResources);
-
+ public Map.Entry<Long, List<PropagationStatus>> updateInSync(final UserMod userMod, final Long id,
+ final SyncResult result, Boolean enabled, Set<String> excludedResources);
+
+ public List<PropagationStatus> delete(Long subjectId, Set<String> excludedResources);
+
public void innerSuspend(SyncopeUser user, boolean suspend);
-
+
public void requestPasswordReset(final Long id);
-
- public void confirmPasswordReset(SyncopeUser user,final String token,final String password);
-
+
+ public void confirmPasswordReset(SyncopeUser user, final String token, final String password);
+
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/7aa0db37/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
index 4857d2f..33856a9 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.syncope.core.provisioning.camel;
import java.io.ByteArrayInputStream;
@@ -65,7 +64,7 @@ import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-public class CamelRoleProvisioningManager implements RoleProvisioningManager{
+public class CamelRoleProvisioningManager implements RoleProvisioningManager {
private static final Logger LOG = LoggerFactory.getLogger(CamelRoleProvisioningManager.class);
@@ -76,7 +75,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
protected Map<String, PollingConsumer> consumerMap;
protected List<String> knownUri;
-
+
@Autowired
protected RouteDAO routeDAO;
@@ -99,7 +98,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
public CamelContext getContext() {
//ApplicationContext context = ApplicationContextProvider.getApplicationContext();
//return context.getBean("camel-context", DefaultCamelContext.class);
- return contextFactory.getContext(routeDAO);
+ return contextFactory.getContext(routeDAO);
}
public void changeRoute(String routePath) {
@@ -125,12 +124,12 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
protected void sendMessage(String uri, Object obj, Map<String, Object> properties) {
Exchange exc = new DefaultExchange(getContext());
-
+
Iterator<Map.Entry<String, Object>> it = properties.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> property = it.next();
exc.setProperty(property.getKey(), property.getValue());
- LOG.info("Added property {}", property.getKey());
+ LOG.info("Added property {}", property.getKey());
}
DefaultMessage m = new DefaultMessage();
@@ -158,22 +157,22 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
return consumerMap.get(uri);
}
}
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> create(RoleTO subject) {
-
- return create(subject, Collections.<String>emptySet());
+
+ return create(subject, Collections.<String>emptySet());
}
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> create(RoleTO roleTO, Set<String> excludedResources) {
-
+
String uri = "direct:createRolePort";
PollingConsumer pollingConsumer = getConsumer(uri);
Map<String, Object> props = new HashMap<String, Object>();
props.put("excludedResources", excludedResources);
-
+
sendMessage("direct:createRole", roleTO, props);
Exchange o = pollingConsumer.receive();
@@ -184,44 +183,45 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
return o.getIn().getBody(Map.Entry.class);
}
-
+
@Override
- public Map.Entry<Long, List<PropagationStatus>> createInSync(RoleTO roleTO, Map<Long, String> roleOwnerMap, Set<String> excludedResources) throws PropagationException {
-
+ public Map.Entry<Long, List<PropagationStatus>> createInSync(RoleTO roleTO, Map<Long, String> roleOwnerMap,
+ Set<String> excludedResources) throws PropagationException {
+
String uri = "direct:createRoleSyncPort";
PollingConsumer pollingConsumer = getConsumer(uri);
- Map<String, Object> props = new HashMap<String, Object>();
+ Map<String, Object> props = new HashMap<String, Object>();
props.put("roleOwnerMap", roleOwnerMap);
props.put("excludedResources", excludedResources);
-
+
sendMessage("direct:createRoleSync", roleTO, props);
Exchange o = pollingConsumer.receive();
- if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
+ if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
}
-
+
return o.getIn().getBody(Map.Entry.class);
}
@Override
public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod) {
-
+
return update(subjectMod, Collections.<String>emptySet());
}
-
+
@Override
public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources) {
String uri = "direct:updateRolePort";
PollingConsumer pollingConsumer = getConsumer(uri);
-
+
Map<String, Object> props = new HashMap<String, Object>();
props.put("excludedResources", excludedResources);
- sendMessage("direct:updateRole",subjectMod, props);
+ sendMessage("direct:updateRole", subjectMod, props);
Exchange o = pollingConsumer.receive();
@@ -229,12 +229,12 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
}
- return o.getIn().getBody(Map.Entry.class);
+ return o.getIn().getBody(Map.Entry.class);
}
@Override
public List<PropagationStatus> delete(Long subjectId) {
-
+
String uri = "direct:deleteRolePort";
PollingConsumer pollingConsumer = getConsumer(uri);
@@ -267,9 +267,9 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
@Override
public Long link(RoleMod subjectMod) {
-
+
String uri = "direct:linkRolePort";
-
+
PollingConsumer pollingConsumer = getConsumer(uri);
sendMessage("direct:linkRole", subjectMod);
@@ -280,28 +280,28 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager{
throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
}
- return o.getIn().getBody(Long.class);
+ return o.getIn().getBody(Long.class);
}
@Override
public List<PropagationStatus> deprovision(final Long roleId, Collection<String> resources) {
-
+
String uri = "direct:deprovisionRolePort";
-
+
PollingConsumer pollingConsumer = getConsumer(uri);
-
+
Map props = new HashMap<String, Object>();
props.put("resources", resources);
sendMessage("direct:deprovisionRole", roleId, props);
-
+
Exchange o = pollingConsumer.receive();
if (o.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
throw (RuntimeException) o.getProperty(Exchange.EXCEPTION_CAUGHT);
}
-
+
return o.getIn().getBody(List.class);
}
-
+
}
[07/53] [abbrv] syncope git commit: Travis file aligned
Posted by il...@apache.org.
Travis file aligned
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/43c94629
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/43c94629
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/43c94629
Branch: refs/heads/2_0_X
Commit: 43c946295c410662a59db3c62890818f60ef92f9
Parents: 0da0281
Author: giacomolm <gi...@hotmail.it>
Authored: Thu Dec 18 10:51:54 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Thu Dec 18 10:51:54 2014 +0100
----------------------------------------------------------------------
.travis.yml | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/43c94629/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index e9245f1..1eeba36 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,24 +1,23 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
-# http://www.apache.org/licenses/LICENSE-2.0
+# 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.
-
language: java
jdk:
- - openjdk6
+- openjdk6
# default install is mvn install --quiet -DskipTests=true
install: mvn --show-version --quiet -P skipTests
#invoker.streamLogs: we cannot access to log files through Travis web ui, so display everything in the console
script: mvn --show-version --quiet clean install -Dinvoker.streamLogs=true
notifications:
- webhooks: http://rovere.tirasa.net/cgi-bin/travis.cgi
+webhooks: http://rovere.tirasa.net/cgi-bin/travis.cgi
[12/53] [abbrv] syncope git commit: Default Syncope provisioning
manager correctly restored
Posted by il...@apache.org.
Default Syncope provisioning manager correctly restored
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/efe6c5ea
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/efe6c5ea
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/efe6c5ea
Branch: refs/heads/master
Commit: efe6c5ea6ebfe99f46435e13a6799c36557eae65
Parents: de130b7
Author: giacomolm <gi...@hotmail.it>
Authored: Mon Dec 22 15:21:47 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Mon Dec 22 15:21:47 2014 +0100
----------------------------------------------------------------------
.../DefaultRoleProvisioningManager.java | 23 +-
.../DefaultUserProvisioningManager.java | 55 +-
core/src/main/resources/camelRoute.xml | 816 +++++++++----------
core/src/main/resources/coreContext.xml | 4 +-
4 files changed, 459 insertions(+), 439 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/efe6c5ea/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
index de9e1fc..f376641 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultRoleProvisioningManager.java
@@ -70,13 +70,7 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
@Override
public Map.Entry<Long, List<PropagationStatus>> create(RoleTO subject, Set<String> excludedResources) {
- WorkflowResult<Long> created;
- try{
- created = rwfAdapter.create(subject);
- }
- catch(RuntimeException e){
- throw e;
- }
+ WorkflowResult<Long> created = rwfAdapter.create(subject);
EntitlementUtil.extendAuthContext(created.getResult());
@@ -89,6 +83,9 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
+
+ final RoleTO savedTO = binder.getRoleTO(created.getResult());
+ savedTO.getPropagationStatusTOs().addAll(propagationReporter.getStatuses());
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
created.getResult(), propagationReporter.getStatuses());
@@ -125,17 +122,10 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
@Override
public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources) {
- WorkflowResult<Long> updated;
-
- try{
- updated = rwfAdapter.update(subjectMod);
- }
- catch(RuntimeException e){
- throw e;
- }
+ WorkflowResult<Long> updated = rwfAdapter.update(subjectMod);
List<PropagationTask> tasks = propagationManager.getRoleUpdateTaskIds(updated,
- subjectMod.getVirAttrsToRemove(), subjectMod.getVirAttrsToUpdate(),excludedResources);
+ subjectMod.getVirAttrsToRemove(), subjectMod.getVirAttrsToUpdate());
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().getBean(
PropagationReporter.class);
try {
@@ -144,6 +134,7 @@ public class DefaultRoleProvisioningManager implements RoleProvisioningManager{
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
+
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
updated.getResult(), propagationReporter.getStatuses());
http://git-wip-us.apache.org/repos/asf/syncope/blob/efe6c5ea/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
index 54f677c..070c6aa 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/DefaultUserProvisioningManager.java
@@ -25,6 +25,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.apache.syncope.common.mod.MembershipMod;
import org.apache.syncope.common.mod.StatusMod;
import org.apache.syncope.common.mod.UserMod;
import org.apache.syncope.common.to.PropagationStatus;
@@ -67,11 +68,11 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
@Override
public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO){
- return create(userTO, true);
+ return create(userTO, true, false, null, Collections.<String>emptySet());
}
public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, boolean storePassword) {
- WorkflowResult<Map.Entry<Long, Boolean>> created;
+ /*WorkflowResult<Map.Entry<Long, Boolean>> created;
try {
created = uwfAdapter.create(userTO,storePassword);
} catch (RuntimeException e) {
@@ -92,20 +93,21 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
created.getResult().getKey(), propagationReporter.getStatuses());
- return result;
+ return result;*/
+ return create(userTO, storePassword, false, null, Collections.<String>emptySet());
}
@Override
public Map.Entry<Long, List<PropagationStatus>> create(UserTO userTO, boolean storePassword, boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources) {
WorkflowResult<Map.Entry<Long, Boolean>> created;
try {
- created = uwfAdapter.create(userTO,storePassword);
+ created = uwfAdapter.create(userTO, disablePwdPolicyCheck, enabled, storePassword);
} catch (RuntimeException e) {
throw e;
}
List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(
- created, userTO.getPassword(), userTO.getVirAttrs(), excludedResources, null);
+ created, userTO.getPassword(), userTO.getVirAttrs(), excludedResources, userTO.getMemberships());
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
getBean(PropagationReporter.class);
try {
@@ -135,14 +137,39 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
}
List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated);
-
+ if (tasks.isEmpty()) {
+ // SYNCOPE-459: take care of user virtual attributes ...
+ final PropagationByResource propByResVirAttr = binder.fillVirtual(
+ updated.getResult().getKey().getId(),
+ userMod.getVirAttrsToRemove(),
+ userMod.getVirAttrsToUpdate());
+ // SYNCOPE-501: update only virtual attributes (if any of them changed), password propagation is
+ // not required, take care also of membership virtual attributes
+ boolean addOrUpdateMemberships = false;
+ for (MembershipMod membershipMod : userMod.getMembershipsToAdd()) {
+ if (!binder.fillMembershipVirtual(
+ updated.getResult().getKey().getId(),
+ membershipMod.getRole(),
+ null,
+ membershipMod.getVirAttrsToRemove(),
+ membershipMod.getVirAttrsToUpdate(),
+ false).isEmpty()) {
+ addOrUpdateMemberships = true;
+ }
+ }
+ tasks.addAll(!propByResVirAttr.isEmpty() || addOrUpdateMemberships || removeMemberships
+ ? propagationManager.getUserUpdateTaskIds(updated, false, null)
+ : Collections.<PropagationTask>emptyList());
+ }
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
getBean(PropagationReporter.class);
- try {
- taskExecutor.execute(tasks, propagationReporter);
- } catch (PropagationException e) {
- LOG.error("Error propagation primary resource", e);
- propagationReporter.onPrimaryResourceFailure(tasks);
+ if (!tasks.isEmpty()) {
+ try {
+ taskExecutor.execute(tasks, propagationReporter);
+ } catch (PropagationException e) {
+ LOG.error("Error propagation primary resource", e);
+ propagationReporter.onPrimaryResourceFailure(tasks);
+ }
}
Map.Entry<Long, List<PropagationStatus>> result = new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(
@@ -272,7 +299,8 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
}
@Override
- public Map.Entry<Long, List<PropagationStatus>> updateInSync(final UserMod userMod,final Long id, final SyncResult result, Boolean enabled, Set<String> excludedResources){
+ public Map.Entry<Long, List<PropagationStatus>> updateInSync(final UserMod userMod,final Long id,
+ final SyncResult result, Boolean enabled, Set<String> excludedResources){
WorkflowResult<Map.Entry<UserMod, Boolean>> updated;
try {
@@ -313,13 +341,14 @@ public class DefaultUserProvisioningManager implements UserProvisioningManager{
getBean(PropagationReporter.class);
List<PropagationTask> tasks = propagationManager.getUserUpdateTaskIds(updated,updated.getResult().getKey().getPassword() != null,excludedResources);
-
+
try {
taskExecutor.execute(tasks, propagationReporter);
} catch (PropagationException e) {
LOG.error("Error propagation primary resource", e);
propagationReporter.onPrimaryResourceFailure(tasks);
}
+
return new AbstractMap.SimpleEntry<Long, List<PropagationStatus>>(updated.getResult().getKey().getId(), propagationReporter.getStatuses());
http://git-wip-us.apache.org/repos/asf/syncope/blob/efe6c5ea/core/src/main/resources/camelRoute.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/camelRoute.xml b/core/src/main/resources/camelRoute.xml
index e1ad071..260f01c 100644
--- a/core/src/main/resources/camelRoute.xml
+++ b/core/src/main/resources/camelRoute.xml
@@ -24,445 +24,445 @@ under the License.
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd">
+ <!--
+ The default routes define each task involved in user creation:
+ main operations consist in user workflow creation and its propagation.
+ -->
+ <routeContext id="defaultRoutes" xmlns="http://camel.apache.org/schema/spring">
+
<!--
- The default routes define each task involved in user creation:
- main operations consist in user workflow creation and its propagation.
+ CREATE USER
+ This is the entry point of the route and is involved in accepting
+ the UserTO. When it arrives, the user workflow is created. If the
+ creation is successfull, the result is sent to propagation, otherwise
+ if an exception was raised, the exception has to be returned to the
+ caller. The property actual allows to store the received UserTO in
+ order to use it later.
-->
- <routeContext id="defaultRoutes" xmlns="http://camel.apache.org/schema/spring">
-
- <!--
- CREATE USER
- This is the entry point of the route and is involved in accepting
- the UserTO. When it arrives, the user workflow is created. If the
- creation is successfull, the result is sent to propagation, otherwise
- if an exception was raised, the exception has to be returned to the
- caller. The property actual allows to store the received UserTO in
- order to use it later.
- -->
- <route id="createUser">
- <from uri="direct:createUser"/>
- <setProperty propertyName="actual">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="uwfAdapter" method="create(${body},${property.disablePwdPolicyCheck},
+ <route id="createUser">
+ <from uri="direct:createUser"/>
+ <setProperty propertyName="actual">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="uwfAdapter" method="create(${body},${property.disablePwdPolicyCheck},
${property.enabled},${property.storePassword})"/>
- <process ref="defaultUserCreatePropagation" />
- <to uri="direct:createPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:createPort"/>
- </doCatch>
- </doTry>
- </route>
+ <process ref="defaultUserCreatePropagation" />
+ <to uri="direct:createPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- The propagation route deals with propagation of created user. In this
- case we used a custom processor to perform this task: it means that
- a custom java class contains the propagation strategy.
- -->
+ <!--
+ The propagation route deals with propagation of created user. In this
+ case we used a custom processor to perform this task: it means that
+ a custom java class contains the propagation strategy.
+ -->
- <!--
- UPDATE USER
- -->
- <route id="updateUser">
- <from uri="direct:updateUser"/>
- <setProperty propertyName="actual">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <process ref="defaultUserUpdatePropagation" />
- <to uri="direct:updatePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:updatePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UPDATE USER
+ -->
+ <route id="updateUser">
+ <from uri="direct:updateUser"/>
+ <setProperty propertyName="actual">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <process ref="defaultUserUpdatePropagation" />
+ <to uri="direct:updatePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updatePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UPDATE SYNC USER
- -->
- <route id="updateSyncUser">
- <from uri="direct:updateSyncUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <to uri="direct:syncUserStatus"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:updateSyncPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UPDATE SYNC USER
+ -->
+ <route id="updateSyncUser">
+ <from uri="direct:updateSyncUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <to uri="direct:syncUserStatus"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updateSyncPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <route id="syncUserStatus">
- <from uri="direct:syncUserStatus"/>
- <process ref="userStatusOnSync" />
- <process ref="defaultUserUpdateSyncPropagation" />
- <to uri="direct:updateSyncPort"/>
- </route>
- <!--
- DELETE USER
- -->
- <route id="deleteUser">
- <from uri="direct:deleteUser"/>
- <doTry>
- <process ref="defaultUserDeletePropagation" />
- <bean ref="uwfAdapter" method="delete(${body})"/>
- <setBody>
- <simple>${property.statuses}</simple>
- </setBody>
- <to uri="direct:deletePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:deletePort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="syncUserStatus">
+ <from uri="direct:syncUserStatus"/>
+ <process ref="userStatusOnSync" />
+ <process ref="defaultUserUpdateSyncPropagation" />
+ <to uri="direct:updateSyncPort"/>
+ </route>
+ <!--
+ DELETE USER
+ -->
+ <route id="deleteUser">
+ <from uri="direct:deleteUser"/>
+ <doTry>
+ <process ref="defaultUserDeletePropagation" />
+ <bean ref="uwfAdapter" method="delete(${body})"/>
+ <setBody>
+ <simple>${property.statuses}</simple>
+ </setBody>
+ <to uri="direct:deletePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:deletePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UNLINK USER
- -->
- <route id="unlinkUser">
- <from uri="direct:unlinkUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult.getKey}</simple>
- </setBody>
- <to uri="direct:unlinkPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:unlinkPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UNLINK USER
+ -->
+ <route id="unlinkUser">
+ <from uri="direct:unlinkUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult.getKey}</simple>
+ </setBody>
+ <to uri="direct:unlinkPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:unlinkPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- LINK USER
- -->
+ <!--
+ LINK USER
+ -->
- <route id="linkUser">
- <from uri="direct:linkUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult.getKey}</simple>
- </setBody>
- <to uri="direct:linkPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:linkPort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="linkUser">
+ <from uri="direct:linkUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult.getKey}</simple>
+ </setBody>
+ <to uri="direct:linkPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:linkPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- ACTIVATE USER
- -->
- <route id="activateUser">
- <from uri="direct:activateUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="activate(${body}, ${property.token})"/>
- <to uri="direct:statusUser"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:statusPort"/>
- </doCatch>
- </doTry>
- </route>
- <!--
- REACTIVATE USER
- -->
- <route id="reactivateUser">
- <from uri="direct:reactivateUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="reactivate(${body})"/>
- <to uri="direct:statusUser"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:statusPort"/>
- </doCatch>
- </doTry>
- </route>
- <!--
- SUSPEND USER
- -->
- <route id="suspendUser">
- <from uri="direct:suspendUser"/>
- <doTry>
- <bean ref="uwfAdapter" method="suspend(${body})"/>
- <to uri="direct:statusUser"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:statusPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ ACTIVATE USER
+ -->
+ <route id="activateUser">
+ <from uri="direct:activateUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="activate(${body}, ${property.token})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ REACTIVATE USER
+ -->
+ <route id="reactivateUser">
+ <from uri="direct:reactivateUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="reactivate(${body})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ SUSPEND USER
+ -->
+ <route id="suspendUser">
+ <from uri="direct:suspendUser"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="suspend(${body})"/>
+ <to uri="direct:statusUser"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:statusPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- STATUS PROPAGATION
- -->
+ <!--
+ STATUS PROPAGATION
+ -->
- <route id="statusUser">
- <from uri="direct:statusUser"/>
- <process ref="defaultUserStatusPropagation" />
- <to uri="direct:statusPort"/>
- </route>
+ <route id="statusUser">
+ <from uri="direct:statusUser"/>
+ <process ref="defaultUserStatusPropagation" />
+ <to uri="direct:statusPort"/>
+ </route>
- <!--
- DEPROVISION USER
- -->
- <route id="deprovisionUser">
- <from uri="direct:deprovisionUser"/>
- <process ref="defaultUserDeprovisionPropagation" />
- <to uri="direct:deprovisionPort"/>
- </route>
+ <!--
+ DEPROVISION USER
+ -->
+ <route id="deprovisionUser">
+ <from uri="direct:deprovisionUser"/>
+ <process ref="defaultUserDeprovisionPropagation" />
+ <to uri="direct:deprovisionPort"/>
+ </route>
- <!--
- CREATE ROLE
- -->
+ <!--
+ CREATE ROLE
+ -->
- <route id="createRole">
- <from uri="direct:createRole"/>
- <setProperty propertyName="subject">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="rwfAdapter" method="create(${body})"/>
- <process ref="defaultRoleCreatePropagation" />
- <to uri="direct:createRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:createRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="createRole">
+ <from uri="direct:createRole"/>
+ <setProperty propertyName="subject">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="create(${body})"/>
+ <process ref="defaultRoleCreatePropagation" />
+ <to uri="direct:createRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- CREATE ROLE SYNC
- -->
- <route id="createRoleSync">
- <from uri="direct:createRoleSync"/>
- <setProperty propertyName="subject">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="rwfAdapter" method="create(${body})"/>
- <process ref="defaultRoleCreateSyncPropagation" />
- <to uri="direct:createRoleSyncPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:createRoleSyncPort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ CREATE ROLE SYNC
+ -->
+ <route id="createRoleSync">
+ <from uri="direct:createRoleSync"/>
+ <setProperty propertyName="subject">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="create(${body})"/>
+ <process ref="defaultRoleCreateSyncPropagation" />
+ <to uri="direct:createRoleSyncPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:createRoleSyncPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UPDATE ROLE
- -->
- <route id="updateRole">
- <from uri="direct:updateRole"/>
- <setProperty propertyName="subjectMod">
- <simple>${body}</simple>
- </setProperty>
- <doTry>
- <bean ref="rwfAdapter" method="update(${body})"/>
- <process ref="defaultRoleUpdatePropagation" />
- <to uri="direct:updateRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:updateRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UPDATE ROLE
+ -->
+ <route id="updateRole">
+ <from uri="direct:updateRole"/>
+ <setProperty propertyName="subjectMod">
+ <simple>${body}</simple>
+ </setProperty>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <process ref="defaultRoleUpdatePropagation" />
+ <to uri="direct:updateRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:updateRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- DELETE ROLE
- -->
- <route id="deleteRole">
- <from uri="direct:deleteRole"/>
- <doTry>
- <process ref="defaultRoleDeletePropagation" />
- <bean ref="rwfAdapter" method="delete(${body})"/>
- <setBody>
- <simple>${property.statuses}</simple>
- </setBody>
- <to uri="direct:deleteRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:deleteRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ DELETE ROLE
+ -->
+ <route id="deleteRole">
+ <from uri="direct:deleteRole"/>
+ <doTry>
+ <process ref="defaultRoleDeletePropagation" />
+ <bean ref="rwfAdapter" method="delete(${body})"/>
+ <setBody>
+ <simple>${property.statuses}</simple>
+ </setBody>
+ <to uri="direct:deleteRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:deleteRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- UNLINK USER
- -->
- <route id="unlinkRole">
- <from uri="direct:unlinkRole"/>
- <doTry>
- <bean ref="rwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult}</simple>
- </setBody>
- <to uri="direct:unlinkRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:unlinkRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <!--
+ UNLINK USER
+ -->
+ <route id="unlinkRole">
+ <from uri="direct:unlinkRole"/>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult}</simple>
+ </setBody>
+ <to uri="direct:unlinkRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:unlinkRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- LINK USER
- -->
+ <!--
+ LINK USER
+ -->
- <route id="linkRole">
- <from uri="direct:linkRole"/>
- <doTry>
- <bean ref="rwfAdapter" method="update(${body})"/>
- <setBody>
- <simple>${body.getResult}</simple>
- </setBody>
- <to uri="direct:linkRolePort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:linkRolePort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="linkRole">
+ <from uri="direct:linkRole"/>
+ <doTry>
+ <bean ref="rwfAdapter" method="update(${body})"/>
+ <setBody>
+ <simple>${body.getResult}</simple>
+ </setBody>
+ <to uri="direct:linkRolePort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:linkRolePort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- DEPROVISION ROLE
- -->
- <route id="deprovisionRole">
- <from uri="direct:deprovisionRole"/>
- <process ref="defaultRoleDeprovisionPropagation" />
- <to uri="direct:deprovisionRolePort"/>
- </route>
+ <!--
+ DEPROVISION ROLE
+ -->
+ <route id="deprovisionRole">
+ <from uri="direct:deprovisionRole"/>
+ <process ref="defaultRoleDeprovisionPropagation" />
+ <to uri="direct:deprovisionRolePort"/>
+ </route>
- <!--
- SUSPEND USER AFTER POLICY VIOLATION
- -->
+ <!--
+ SUSPEND USER AFTER POLICY VIOLATION
+ -->
- <route id="suspendUserWF">
- <from uri="direct:suspendUserWF"/>
- <doTry>
- <bean ref="uwfAdapter" method="suspend(${body})"/>
- <process ref="defaultUserWFSuspendPropagation"/>
- <to uri="direct:suspendWFPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:suspendWFPort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="suspendUserWF">
+ <from uri="direct:suspendUserWF"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="suspend(${body})"/>
+ <process ref="defaultUserWFSuspendPropagation"/>
+ <to uri="direct:suspendWFPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:suspendWFPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- <!--
- REQUEST PASSWORD RESET ROUTE
- -->
+ <!--
+ REQUEST PASSWORD RESET ROUTE
+ -->
- <route id="requestPwdReset">
- <from uri="direct:requestPwdReset"/>
- <doTry>
- <bean ref="uwfAdapter" method="requestPasswordReset(${body})"/>
- <to uri="direct:requestPwdResetPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:requestPwdResetPort"/>
- </doCatch>
- </doTry>
- </route>
- <!--
- CONFIRM PASSWORD RESET
- -->
- <route id="confirmPwdReset">
- <from uri="direct:confirmPwdReset"/>
- <doTry>
- <bean ref="uwfAdapter" method="confirmPasswordReset(${property.userId},${property.token},${property.password})"/>
- <process ref="defaultUserConfirmPwdResetPropagation" />
- <to uri="direct:confirmPwdResetPort"/>
- <doCatch>
- <exception>java.lang.RuntimeException</exception>
- <handled>
- <constant>false</constant>
- </handled>
- <to uri="direct:confirmPwdResetPort"/>
- </doCatch>
- </doTry>
- </route>
+ <route id="requestPwdReset">
+ <from uri="direct:requestPwdReset"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="requestPasswordReset(${body})"/>
+ <to uri="direct:requestPwdResetPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:requestPwdResetPort"/>
+ </doCatch>
+ </doTry>
+ </route>
+ <!--
+ CONFIRM PASSWORD RESET
+ -->
+ <route id="confirmPwdReset">
+ <from uri="direct:confirmPwdReset"/>
+ <doTry>
+ <bean ref="uwfAdapter" method="confirmPasswordReset(${property.userId},${property.token},${property.password})"/>
+ <process ref="defaultUserConfirmPwdResetPropagation" />
+ <to uri="direct:confirmPwdResetPort"/>
+ <doCatch>
+ <exception>java.lang.RuntimeException</exception>
+ <handled>
+ <constant>false</constant>
+ </handled>
+ <to uri="direct:confirmPwdResetPort"/>
+ </doCatch>
+ </doTry>
+ </route>
- </routeContext>
- <bean id="defaultUserCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserCreatePropagation"/>
- <bean id="defaultUserUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdatePropagation"/>
- <bean id="userStatusOnSync" class="org.apache.syncope.core.provisioning.camel.processors.UserStatusOnSync"/>
- <bean id="defaultUserUpdateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdateInSyncPropagation"/>
- <bean id="defaultUserDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeletePropagation"/>
- <bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
- <bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
- <bean id="defaultUserStatusPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserStatusPropagation"/>
- <bean id="defaultUserConfirmPwdResetPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserConfirmPwdResetPropagation"/>
- <bean id="defaultRoleCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreatePropagation"/>
- <bean id="defaultRoleCreateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreateSyncPropagation"/>
- <bean id="defaultRoleUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleUpdatePropagation"/>
- <bean id="defaultRoleDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeletePropagation"/>
- <bean id="defaultRoleDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeprovisionPropagation"/>
+ </routeContext>
+ <bean id="defaultUserCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserCreatePropagation"/>
+ <bean id="defaultUserUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdatePropagation"/>
+ <bean id="userStatusOnSync" class="org.apache.syncope.core.provisioning.camel.processors.UserStatusOnSync"/>
+ <bean id="defaultUserUpdateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserUpdateInSyncPropagation"/>
+ <bean id="defaultUserDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeletePropagation"/>
+ <bean id="defaultUserDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserDeprovisionPropagation"/>
+ <bean id="defaultUserWFSuspendPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserWFSuspendPropagation"/>
+ <bean id="defaultUserStatusPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserStatusPropagation"/>
+ <bean id="defaultUserConfirmPwdResetPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultUserConfirmPwdResetPropagation"/>
+ <bean id="defaultRoleCreatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreatePropagation"/>
+ <bean id="defaultRoleCreateSyncPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleCreateSyncPropagation"/>
+ <bean id="defaultRoleUpdatePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleUpdatePropagation"/>
+ <bean id="defaultRoleDeletePropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeletePropagation"/>
+ <bean id="defaultRoleDeprovisionPropagation" class="org.apache.syncope.core.provisioning.camel.processors.DefaultRoleDeprovisionPropagation"/>
</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/efe6c5ea/core/src/main/resources/coreContext.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/coreContext.xml b/core/src/main/resources/coreContext.xml
index 3950689..e39ceed 100644
--- a/core/src/main/resources/coreContext.xml
+++ b/core/src/main/resources/coreContext.xml
@@ -76,8 +76,8 @@ under the License.
<context:exclude-filter type="regex" expression=".*\.activiti\..*"/>
</context:component-scan>
- <bean id="defaultUserProvisioningManager" class="org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager"/>
- <bean id="defaultRoleProvisioningManager" class="org.apache.syncope.core.provisioning.camel.CamelRoleProvisioningManager"/>
+ <bean id="defaultUserProvisioningManager" class="org.apache.syncope.core.provisioning.DefaultUserProvisioningManager"/>
+ <bean id="defaultRoleProvisioningManager" class="org.apache.syncope.core.provisioning.DefaultRoleProvisioningManager"/>
<bean id="nonJPAdbInitializer" class="org.springframework.jdbc.datasource.init.DataSourceInitializer">
<property name="dataSource" ref="dataSource"/>
[53/53] [abbrv] syncope git commit: Merge branch 'master' into 2_0_X
Posted by il...@apache.org.
Merge branch 'master' into 2_0_X
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/f6d48fd9
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/f6d48fd9
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/f6d48fd9
Branch: refs/heads/2_0_X
Commit: f6d48fd9ec9704f3ee9e971928da7fcd93e4411d
Parents: ed49626 a90a48a
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Jan 5 14:33:46 2015 +0100
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Jan 5 14:33:46 2015 +0100
----------------------------------------------------------------------
.../apache/syncope/client/SyncopeClient.java | 26 +
.../syncope/common/services/RouteService.java | 71 +++
.../common/services/WorkflowService.java | 9 +
.../org/apache/syncope/common/to/RouteTO.java | 60 +++
.../syncope/common/types/RESTHeaders.java | 11 +
.../apache/syncope/console/SyncopeSession.java | 7 +
.../syncope/console/pages/Configuration.java | 133 +++++
.../syncope/console/pages/RouteModalPage.java | 90 ++++
.../syncope/console/rest/RouteRestClient.java | 63 +++
console/src/main/resources/authorizations.xml | 13 +
.../syncope/console/pages/Configuration.html | 403 ++++++++--------
.../console/pages/Configuration.properties | 1 +
.../syncope/console/pages/RouteModalPage.html | 49 ++
.../console/pages/RouteModalPage.properties | 18 +
.../console/pages/RouteModalPage_it.properties | 18 +
.../pages/RouteModalPage_pt_BR.properties | 18 +
core/pom.xml | 19 +
.../syncope/core/init/CamelRouteLoader.java | 106 ++++
.../init/ImplementationClassNamesLoader.java | 1 -
.../core/init/SpringContextInitializer.java | 5 +
.../core/persistence/SQLSchemaGenerator.java | 25 +-
.../persistence/beans/AbstractAttrValue.java | 33 +-
.../persistence/beans/AbstractBaseBean.java | 2 +-
.../core/persistence/beans/CamelRoute.java | 61 +++
.../persistence/beans/ExternalResource.java | 2 +-
.../core/persistence/beans/Notification.java | 5 +-
.../core/persistence/beans/package-info.java | 1 -
.../core/persistence/dao/ConnectorRegistry.java | 2 +-
.../syncope/core/persistence/dao/RouteDAO.java | 34 ++
.../core/persistence/dao/impl/RouteDAOImpl.java | 59 +++
.../entity/AbstractSyncTaskCheck.java | 2 +-
.../entity/AbstractSyncTaskValidator.java | 4 +-
.../validation/entity/AttrCheck.java | 2 +-
.../validation/entity/AttrValueCheck.java | 2 +-
.../validation/entity/ConnInstanceCheck.java | 2 +-
.../entity/ExternalResourceCheck.java | 2 +-
.../validation/entity/NotificationCheck.java | 4 +-
.../validation/entity/PolicyCheck.java | 2 +-
.../validation/entity/PropagationTaskCheck.java | 2 +-
.../validation/entity/ReportCheck.java | 2 +-
.../validation/entity/SchedTaskCheck.java | 2 +-
.../validation/entity/SchemaCheck.java | 2 +-
.../validation/entity/SchemaNameCheck.java | 2 +-
.../validation/entity/SyncopeRoleCheck.java | 2 +-
.../validation/entity/SyncopeUserCheck.java | 3 +-
.../syncope/core/policy/PolicyEvaluator.java | 5 +-
.../syncope/core/policy/PolicyPattern.java | 1 +
.../core/propagation/PropagationReporter.java | 2 +-
.../impl/DBPasswordPropagationActions.java | 16 +-
.../impl/PriorityPropagationTaskExecutor.java | 8 +-
.../propagation/impl/PropagationManager.java | 8 +-
.../syncope/core/propagation/package-info.java | 1 -
.../DefaultRoleProvisioningManager.java | 226 +++++++++
.../DefaultUserProvisioningManager.java | 397 +++++++++++++++
.../core/provisioning/ProvisioningManager.java | 42 ++
.../provisioning/RoleProvisioningManager.java | 35 ++
.../provisioning/UserProvisioningManager.java | 55 +++
.../core/provisioning/camel/CamelDetector.java | 77 +++
.../camel/CamelRoleProvisioningManager.java | 293 +++++++++++
.../camel/CamelUserProvisioningManager.java | 482 +++++++++++++++++++
.../provisioning/camel/SyncopeCamelContext.java | 139 ++++++
.../DefaultRoleCreatePropagation.java | 80 +++
.../DefaultRoleCreateSyncPropagation.java | 81 ++++
.../DefaultRoleDeletePropagation.java | 104 ++++
.../DefaultRoleDeprovisionPropagation.java | 79 +++
.../DefaultRoleUpdatePropagation.java | 81 ++++
.../DefaultUserConfirmPwdResetPropagation.java | 62 +++
.../DefaultUserCreatePropagation.java | 81 ++++
.../DefaultUserDeletePropagation.java | 75 +++
.../DefaultUserDeprovisionPropagation.java | 79 +++
.../DefaultUserStatusPropagation.java | 81 ++++
.../DefaultUserUpdateInSyncPropagation.java | 86 ++++
.../DefaultUserUpdatePropagation.java | 123 +++++
.../DefaultUserWFSuspendPropagation.java | 67 +++
.../camel/processors/UserStatusOnSync.java | 75 +++
.../syncope/core/quartz/package-info.java | 1 -
.../syncope/core/report/ReportletConfClass.java | 2 +-
.../core/report/cocoon/TextSerializer.java | 2 +-
.../core/rest/controller/LoggerController.java | 4 +-
.../core/rest/controller/RoleController.java | 111 +----
.../core/rest/controller/RouteController.java | 92 ++++
.../core/rest/controller/UserController.java | 194 ++------
.../core/rest/data/ReportDataBinder.java | 6 +-
.../syncope/core/rest/data/RouteDataBinder.java | 38 ++
.../rest/utils/QueryResourceInfoComparator.java | 4 +-
.../rest/utils/RestServiceExceptionMapper.java | 4 +-
.../syncope/core/security/AsymmetricCipher.java | 1 +
.../core/services/ConnectorServiceImpl.java | 2 +-
.../core/services/PolicyServiceImpl.java | 2 +-
.../syncope/core/services/RouteServiceImpl.java | 76 +++
.../core/services/WorkflowServiceImpl.java | 18 +-
.../apache/syncope/core/sync/SyncActions.java | 3 +-
.../apache/syncope/core/sync/SyncResult.java | 7 +-
.../impl/AbstractSubjectPushResultHandler.java | 1 -
.../syncope/core/sync/impl/AbstractSyncJob.java | 2 +-
.../sync/impl/AbstractSyncopeResultHandler.java | 11 +-
.../core/sync/impl/LDAPPasswordSyncActions.java | 10 +-
.../core/sync/impl/RoleSyncResultHandler.java | 35 +-
.../core/sync/impl/UserSyncResultHandler.java | 111 +++--
.../core/util/AttributeDeserializer.java | 4 +-
.../syncope/core/util/ContentLoaderHandler.java | 20 +-
.../apache/syncope/core/util/RouteManager.java | 42 ++
.../syncope/core/util/SecureRandomUtil.java | 8 +-
.../core/util/SyncTokenDeserializer.java | 22 +-
.../apache/syncope/core/util/jexl/JexlUtil.java | 4 +-
.../core/workflow/WorkflowUserSuspender.java | 29 +-
.../syncope/core/workflow/package-info.java | 1 -
.../role/AbstractRoleWorkflowAdapter.java | 2 +-
.../user/AbstractUserWorkflowAdapter.java | 11 +-
.../workflow/user/NoOpUserWorkflowAdapter.java | 6 +
.../core/workflow/user/UserWorkflowAdapter.java | 2 +-
.../activiti/ActivitiUserWorkflowAdapter.java | 6 +
.../user/activiti/SyncopeGroupManager.java | 2 +-
.../user/activiti/SyncopeUserManager.java | 2 +-
core/src/main/resources/camelRoute.xml | 468 ++++++++++++++++++
core/src/main/resources/content.xml | 3 +
core/src/main/resources/coreContext.xml | 12 +-
.../resources/persistenceContextEMFactory.xml | 4 +-
core/src/main/resources/provisioning.properties | 18 +
.../resources/report/staticReportlet2fo.xsl | 98 ++--
.../resources/report/staticReportlet2html.xsl | 84 ++--
.../resources/report/userReportlet2html.xsl | 6 +-
core/src/main/resources/roleRoute.xml | 174 +++++++
core/src/main/resources/userRoute.xml | 263 ++++++++++
core/src/main/resources/wadl2html/index.xsl | 80 +--
.../core/persistence/dao/DerSchemaTest.java | 1 -
.../core/persistence/dao/EntitlementTest.java | 2 +-
.../persistence/dao/SecurityQuestionTest.java | 2 +-
.../core/persistence/dao/VirSchemaTest.java | 1 -
.../syncope/core/rest/ConnectorTestITCase.java | 6 +-
.../core/rest/NotificationTestITCase.java | 2 +-
.../syncope/core/rest/PolicyTestITCase.java | 4 +-
.../syncope/core/rest/ResourceTestITCase.java | 2 +-
core/src/test/resources/content.xml | 3 +
pom.xml | 18 +-
135 files changed, 5636 insertions(+), 834 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/f6d48fd9/core/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/f6d48fd9/pom.xml
----------------------------------------------------------------------
[46/53] [abbrv] syncope git commit: Partially fixed #7
Posted by il...@apache.org.
Partially fixed #7
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/ec34515d
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/ec34515d
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/ec34515d
Branch: refs/heads/master
Commit: ec34515da73044960f445aa472306dbf87ca2c8e
Parents: b1d2ac6
Author: giacomolm <gi...@hotmail.it>
Authored: Mon Jan 5 11:53:23 2015 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Mon Jan 5 11:53:23 2015 +0100
----------------------------------------------------------------------
.../camel/CamelRoleProvisioningManager.java | 28 +++++---------------
.../camel/CamelUserProvisioningManager.java | 20 +++++++++-----
.../provisioning/camel/SyncopeCamelContext.java | 9 +++----
.../DefaultRoleCreatePropagation.java | 2 ++
.../DefaultRoleCreateSyncPropagation.java | 1 +
.../DefaultRoleDeprovisionPropagation.java | 1 +
.../DefaultRoleUpdatePropagation.java | 2 ++
.../DefaultUserCreatePropagation.java | 2 ++
.../DefaultUserDeletePropagation.java | 1 +
.../DefaultUserDeprovisionPropagation.java | 1 +
.../DefaultUserStatusPropagation.java | 1 +
.../DefaultUserUpdateInSyncPropagation.java | 2 ++
.../DefaultUserUpdatePropagation.java | 1 +
.../DefaultUserWFSuspendPropagation.java | 1 +
.../camel/processors/UserStatusOnSync.java | 1 +
15 files changed, 40 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
index 9b121a4..96f5227 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelRoleProvisioningManager.java
@@ -18,10 +18,7 @@
*/
package org.apache.syncope.core.provisioning.camel;
-import java.io.ByteArrayInputStream;
-import java.io.File;
import java.io.InputStream;
-import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -30,39 +27,23 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.Unmarshaller;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.PollingConsumer;
import org.apache.camel.ProducerTemplate;
-import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.impl.DefaultMessage;
-import org.apache.camel.model.Constants;
-import org.apache.camel.model.RouteDefinition;
import org.apache.camel.model.RoutesDefinition;
import org.apache.camel.spring.SpringCamelContext;
import org.apache.syncope.common.mod.RoleMod;
import org.apache.syncope.common.to.PropagationStatus;
import org.apache.syncope.common.to.RoleTO;
-import org.apache.syncope.core.persistence.beans.CamelRoute;
import org.apache.syncope.core.persistence.dao.RouteDAO;
import org.apache.syncope.core.propagation.PropagationException;
import org.apache.syncope.core.provisioning.RoleProvisioningManager;
-import org.apache.syncope.core.util.ApplicationContextProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
public class CamelRoleProvisioningManager implements RoleProvisioningManager {
@@ -84,7 +65,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
public CamelRoleProvisioningManager() throws Exception {
knownUri = new ArrayList<String>();
- consumerMap = new HashMap();
+ consumerMap = new HashMap<String, PollingConsumer>();
}
public void startContext() throws Exception {
@@ -165,6 +146,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> create(RoleTO roleTO, Set<String> excludedResources) {
String uri = "direct:createRolePort";
@@ -185,6 +167,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> createInSync(RoleTO roleTO, Map<Long, String> roleOwnerMap,
Set<String> excludedResources) throws PropagationException {
@@ -213,6 +196,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> update(RoleMod subjectMod, Set<String> excludedResources) {
String uri = "direct:updateRolePort";
@@ -233,6 +217,7 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public List<PropagationStatus> delete(Long subjectId) {
String uri = "direct:deleteRolePort";
@@ -284,13 +269,14 @@ public class CamelRoleProvisioningManager implements RoleProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public List<PropagationStatus> deprovision(final Long roleId, Collection<String> resources) {
String uri = "direct:deprovisionRolePort";
PollingConsumer pollingConsumer = getConsumer(uri);
- Map props = new HashMap<String, Object>();
+ Map<String, Object> props = new HashMap<String, Object>();
props.put("resources", resources);
sendMessage("direct:deprovisionRole", roleId, props);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
index 01b057a..c65f8eb 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/CamelUserProvisioningManager.java
@@ -31,12 +31,10 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.PollingConsumer;
import org.apache.camel.ProducerTemplate;
-import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.impl.DefaultMessage;
import org.apache.camel.model.RoutesDefinition;
@@ -76,7 +74,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
public CamelUserProvisioningManager() throws Exception {
knownUri = new ArrayList<String>();
- consumerMap = new HashMap();
+ consumerMap = new HashMap<String, PollingConsumer>();
}
public String readerToString(Reader reader, int size) throws IOException {
@@ -177,6 +175,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> create(final UserTO userTO, final boolean storePassword,
boolean disablePwdPolicyCheck, Boolean enabled, Set<String> excludedResources) {
String uri = "direct:createPort";
@@ -211,6 +210,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> update(UserMod userMod, boolean removeMemberships) {
String uri = "direct:updatePort";
PollingConsumer pollingConsumer = getConsumer(uri);
@@ -236,6 +236,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public List<PropagationStatus> delete(final Long userId, Set<String> excludedResources) {
String uri = "direct:deletePort";
PollingConsumer pollingConsumer = getConsumer(uri);
@@ -272,11 +273,12 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> activate(SyncopeUser user, StatusMod statusMod) {
String uri = "direct:statusPort";
PollingConsumer pollingConsumer = getConsumer(uri);
- Map props = new HashMap<String, Object>();
+ Map<String, Object> props = new HashMap<String, Object>();
props.put("token", statusMod.getToken());
props.put("user", user);
props.put("statusMod", statusMod);
@@ -299,11 +301,12 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> reactivate(SyncopeUser user, StatusMod statusMod) {
String uri = "direct:statusPort";
PollingConsumer pollingConsumer = getConsumer(uri);
- Map props = new HashMap<String, Object>();
+ Map<String, Object> props = new HashMap<String, Object>();
props.put("user", user);
props.put("statusMod", statusMod);
@@ -325,12 +328,13 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> suspend(SyncopeUser user, StatusMod statusMod) {
String uri = "direct:statusPort";
PollingConsumer pollingConsumer = getConsumer(uri);
- Map props = new HashMap<String, Object>();
+ Map<String, Object> props = new HashMap<String, Object>();
props.put("user", user);
props.put("statusMod", statusMod);
@@ -370,12 +374,13 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public List<PropagationStatus> deprovision(Long user, Collection<String> resources) {
String uri = "direct:deprovisionPort";
PollingConsumer pollingConsumer = getConsumer(uri);
- Map props = new HashMap<String, Object>();
+ Map<String, Object> props = new HashMap<String, Object>();
props.put("resources", resources);
sendMessage("direct:deprovisionUser", user, props);
@@ -390,6 +395,7 @@ public class CamelUserProvisioningManager implements UserProvisioningManager {
}
@Override
+ @SuppressWarnings("unchecked")
public Map.Entry<Long, List<PropagationStatus>> updateInSync(UserMod userMod, Long id, SyncResult result,
Boolean enabled, Set<String> excludedResources) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
index 6d3e77d..2873735 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/SyncopeCamelContext.java
@@ -33,6 +33,7 @@ import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.model.Constants;
import org.apache.camel.model.RouteDefinition;
+import org.apache.camel.model.RoutesDefinition;
import org.apache.camel.spring.SpringCamelContext;
import org.apache.syncope.core.persistence.beans.CamelRoute;
import org.apache.syncope.core.persistence.dao.RouteDAO;
@@ -80,16 +81,14 @@ public class SyncopeCamelContext {
DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
JAXBContext jaxbContext = JAXBContext.newInstance(Constants.JAXB_CONTEXT_PACKAGES);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
- List rds = new ArrayList();
-
- for (int s = 0; s < crl.size(); s++) {
-
+ List<RouteDefinition> rds = new ArrayList<RouteDefinition>();
+ for(int s = 0; s < crl.size(); s++){
InputStream is = new ByteArrayInputStream(URLDecoder.decode(crl.get(s).getRouteContent(), "UTF-8").
getBytes());
Document doc = dBuilder.parse(is);
doc.getDocumentElement().normalize();
Node routeEl = doc.getElementsByTagName("route").item(0);
- JAXBElement obj = unmarshaller.unmarshal(routeEl, RouteDefinition.class);
+ JAXBElement<RouteDefinition> obj = unmarshaller.unmarshal(routeEl, RouteDefinition.class);
//adding route definition to list
rds.add(obj.getValue());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
index 2af3d37..43daf10 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreatePropagation.java
@@ -53,8 +53,10 @@ public class DefaultRoleCreatePropagation implements Processor {
@Override
public void process(Exchange exchange) {
+ @SuppressWarnings("unchecked")
WorkflowResult<Long> created = (WorkflowResult) exchange.getIn().getBody();
RoleTO subject = exchange.getProperty("subject", RoleTO.class);
+ @SuppressWarnings("unchecked")
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
EntitlementUtil.extendAuthContext(created.getResult());
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
index d796d6d..296d99e 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleCreateSyncPropagation.java
@@ -51,6 +51,7 @@ public class DefaultRoleCreateSyncPropagation implements Processor {
private static final Logger LOG = LoggerFactory.getLogger(DefaultRoleCreateSyncPropagation.class);
@Override
+ @SuppressWarnings("unchecked")
public void process(Exchange exchange) {
WorkflowResult<Long> created = (WorkflowResult) exchange.getIn().getBody();
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
index a7c35fb..e196187 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleDeprovisionPropagation.java
@@ -54,6 +54,7 @@ public class DefaultRoleDeprovisionPropagation implements Processor {
public void process(Exchange exchange) {
Long roleId = exchange.getIn().getBody(Long.class);
+ @SuppressWarnings("unchecked")
List<String> resources = exchange.getProperty("resources", List.class);
final SyncopeRole role = binder.getRoleFromId(roleId);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
index 90d37dd..6722a15 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultRoleUpdatePropagation.java
@@ -55,8 +55,10 @@ public class DefaultRoleUpdatePropagation implements Processor {
@Override
public void process(Exchange exchange) {
+ @SuppressWarnings("unchecked")
WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
RoleMod subjectMod = exchange.getProperty("subjectMod", RoleMod.class);
+ @SuppressWarnings("unchecked")
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
List<PropagationTask> tasks = propagationManager.getRoleUpdateTaskIds(updated,
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
index 82ba0ab..ed5b990 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserCreatePropagation.java
@@ -54,8 +54,10 @@ public class DefaultUserCreatePropagation implements Processor {
if ((exchange.getIn().getBody() instanceof WorkflowResult)) {
+ @SuppressWarnings("unchecked")
WorkflowResult<Map.Entry<Long, Boolean>> created = (WorkflowResult) exchange.getIn().getBody();
UserTO actual = exchange.getProperty("actual", UserTO.class);
+ @SuppressWarnings("unchecked")
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
List<PropagationTask> tasks = propagationManager.getUserCreateTaskIds(
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
index 3f80459..c3028ab 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeletePropagation.java
@@ -50,6 +50,7 @@ public class DefaultUserDeletePropagation implements Processor {
Long userId = (Long) exchange.getIn().getBody();
LOG.info("UserId {} ", userId);
+ @SuppressWarnings("unchecked")
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
// Note here that we can only notify about "delete", not any other
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
index a529dea..caa9d90 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserDeprovisionPropagation.java
@@ -54,6 +54,7 @@ public class DefaultUserDeprovisionPropagation implements Processor {
public void process(Exchange exchange) {
Long userId = exchange.getIn().getBody(Long.class);
+ @SuppressWarnings("unchecked")
List<String> resources = exchange.getProperty("resources", List.class);
final SyncopeUser user = binder.getUserFromId(userId);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
index cc167d7..89e9dca 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserStatusPropagation.java
@@ -54,6 +54,7 @@ public class DefaultUserStatusPropagation implements Processor {
@Override
public void process(Exchange exchange) {
+ @SuppressWarnings("unchecked")
WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
SyncopeUser user = exchange.getProperty("user", SyncopeUser.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
index a931a5b..1a9ecd3 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdateInSyncPropagation.java
@@ -60,8 +60,10 @@ public class DefaultUserUpdateInSyncPropagation implements Processor {
@Override
public void process(Exchange exchange) {
+ @SuppressWarnings("unchecked")
WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
+ @SuppressWarnings("unchecked")
Set<String> excludedResource = exchange.getProperty("excludedResources", Set.class);
PropagationReporter propagationReporter = ApplicationContextProvider.getApplicationContext().
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
index c9b498e..c34a0bf 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserUpdatePropagation.java
@@ -56,6 +56,7 @@ public class DefaultUserUpdatePropagation implements Processor {
protected UserDataBinder binder;
@Override
+ @SuppressWarnings("unchecked")
public void process(Exchange exchange) {
WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
index 88cd160..dcc8af8 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/DefaultUserWFSuspendPropagation.java
@@ -47,6 +47,7 @@ public class DefaultUserWFSuspendPropagation implements Processor {
@Override
public void process(Exchange exchange) {
+ @SuppressWarnings("unchecked")
WorkflowResult<Long> updated = (WorkflowResult) exchange.getIn().getBody();
Boolean suspend = exchange.getProperty("suspend", Boolean.class);
http://git-wip-us.apache.org/repos/asf/syncope/blob/ec34515d/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
index 7cb7dfa..182913b 100644
--- a/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
+++ b/core/src/main/java/org/apache/syncope/core/provisioning/camel/processors/UserStatusOnSync.java
@@ -45,6 +45,7 @@ public class UserStatusOnSync implements Processor {
@Override
public void process(Exchange exchange) {
+ @SuppressWarnings("unchecked")
WorkflowResult<Map.Entry<UserMod, Boolean>> updated = (WorkflowResult) exchange.getIn().getBody();
Boolean enabled = exchange.getProperty("enabled", Boolean.class);
[25/53] [abbrv] syncope git commit: Restoring default travis.xml
Posted by il...@apache.org.
Restoring default travis.xml
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b2ba422f
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b2ba422f
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b2ba422f
Branch: refs/heads/2_0_X
Commit: b2ba422f21b0998731bff084d71f908b0e4dc5f3
Parents: 7aa0db3
Author: giacomolm <gi...@hotmail.it>
Authored: Tue Dec 23 12:34:12 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Tue Dec 23 12:34:12 2014 +0100
----------------------------------------------------------------------
.travis.yml | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/b2ba422f/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 1eeba36..e9245f1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,23 +1,24 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
-# http://www.apache.org/licenses/LICENSE-2.0
+# 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.
+
language: java
jdk:
-- openjdk6
+ - openjdk6
# default install is mvn install --quiet -DskipTests=true
install: mvn --show-version --quiet -P skipTests
#invoker.streamLogs: we cannot access to log files through Travis web ui, so display everything in the console
script: mvn --show-version --quiet clean install -Dinvoker.streamLogs=true
notifications:
-webhooks: http://rovere.tirasa.net/cgi-bin/travis.cgi
+ webhooks: http://rovere.tirasa.net/cgi-bin/travis.cgi
[38/53] [abbrv] syncope git commit: Fixes #8
Posted by il...@apache.org.
Fixes #8
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b1d2ac65
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b1d2ac65
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b1d2ac65
Branch: refs/heads/master
Commit: b1d2ac65be87d8e5e620291207777d4fe614a486
Parents: ac4d6af
Author: giacomolm <gi...@hotmail.it>
Authored: Wed Dec 31 09:38:04 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Wed Dec 31 09:38:04 2014 +0100
----------------------------------------------------------------------
core/src/main/resources/provisioning.properties | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/b1d2ac65/core/src/main/resources/provisioning.properties
----------------------------------------------------------------------
diff --git a/core/src/main/resources/provisioning.properties b/core/src/main/resources/provisioning.properties
index de6c3cd..a8e49bf 100644
--- a/core/src/main/resources/provisioning.properties
+++ b/core/src/main/resources/provisioning.properties
@@ -15,5 +15,5 @@
# specific language governing permissions and limitations
# under the License.
-userProvisioningManager=org.apache.syncope.core.provisioning.DefaultUserProvisioningManager
-roleProvisioningManager=org.apache.syncope.core.provisioning.DefaultRoleProvisioningManager
\ No newline at end of file
+userProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager
+roleProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelRoleProvisioningManager
\ No newline at end of file
[29/53] [abbrv] syncope git commit: Fixes #5 - Tests pass with latest
version of camel
Posted by il...@apache.org.
Fixes #5 - Tests pass with latest version of camel
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/dff89c00
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/dff89c00
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/dff89c00
Branch: refs/heads/master
Commit: dff89c00424ce9376359d600c50b21fd6bbb3e36
Parents: 55dfac7
Author: giacomolm <gi...@hotmail.it>
Authored: Tue Dec 23 12:51:04 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Tue Dec 23 12:51:04 2014 +0100
----------------------------------------------------------------------
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/dff89c00/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index f680733..c478c3a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -325,7 +325,7 @@ under the License.
<aspectj.version>1.8.4</aspectj.version>
<cxf.version>3.0.3</cxf.version>
- <camel.version>2.12.5</camel.version>
+ <camel.version>2.14.1</camel.version>
<spring.version>4.0.8.RELEASE</spring.version>
<spring-security.version>3.2.5.RELEASE</spring-security.version>
<jackson.version>2.4.4</jackson.version>
[08/53] [abbrv] syncope git commit: Travis file aligned
Posted by il...@apache.org.
Travis file aligned
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/43c94629
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/43c94629
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/43c94629
Branch: refs/heads/master
Commit: 43c946295c410662a59db3c62890818f60ef92f9
Parents: 0da0281
Author: giacomolm <gi...@hotmail.it>
Authored: Thu Dec 18 10:51:54 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Thu Dec 18 10:51:54 2014 +0100
----------------------------------------------------------------------
.travis.yml | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/43c94629/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index e9245f1..1eeba36 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,24 +1,23 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
+# 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
+# the License. You may obtain a copy of the License at
#
-# http://www.apache.org/licenses/LICENSE-2.0
+# 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.
-
language: java
jdk:
- - openjdk6
+- openjdk6
# default install is mvn install --quiet -DskipTests=true
install: mvn --show-version --quiet -P skipTests
#invoker.streamLogs: we cannot access to log files through Travis web ui, so display everything in the console
script: mvn --show-version --quiet clean install -Dinvoker.streamLogs=true
notifications:
- webhooks: http://rovere.tirasa.net/cgi-bin/travis.cgi
+webhooks: http://rovere.tirasa.net/cgi-bin/travis.cgi
[39/53] [abbrv] syncope git commit: Merge branch '1_2_X' of
https://git-wip-us.apache.org/repos/asf/syncope into 1_2_X
Posted by il...@apache.org.
Merge branch '1_2_X' of https://git-wip-us.apache.org/repos/asf/syncope into 1_2_X
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/fde8f4d3
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/fde8f4d3
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/fde8f4d3
Branch: refs/heads/2_0_X
Commit: fde8f4d365f3f3cda5cc9169406ca275793977e2
Parents: 5e013aa 257be98
Author: Marco Di Sabatino Di Diodoro <md...@apache.org>
Authored: Mon Jan 5 09:08:37 2015 +0100
Committer: Marco Di Sabatino Di Diodoro <md...@apache.org>
Committed: Mon Jan 5 09:08:37 2015 +0100
----------------------------------------------------------------------
pom.xml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
[37/53] [abbrv] syncope git commit: Fixes #8
Posted by il...@apache.org.
Fixes #8
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b1d2ac65
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b1d2ac65
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b1d2ac65
Branch: refs/heads/2_0_X
Commit: b1d2ac65be87d8e5e620291207777d4fe614a486
Parents: ac4d6af
Author: giacomolm <gi...@hotmail.it>
Authored: Wed Dec 31 09:38:04 2014 +0100
Committer: giacomolm <gi...@hotmail.it>
Committed: Wed Dec 31 09:38:04 2014 +0100
----------------------------------------------------------------------
core/src/main/resources/provisioning.properties | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/b1d2ac65/core/src/main/resources/provisioning.properties
----------------------------------------------------------------------
diff --git a/core/src/main/resources/provisioning.properties b/core/src/main/resources/provisioning.properties
index de6c3cd..a8e49bf 100644
--- a/core/src/main/resources/provisioning.properties
+++ b/core/src/main/resources/provisioning.properties
@@ -15,5 +15,5 @@
# specific language governing permissions and limitations
# under the License.
-userProvisioningManager=org.apache.syncope.core.provisioning.DefaultUserProvisioningManager
-roleProvisioningManager=org.apache.syncope.core.provisioning.DefaultRoleProvisioningManager
\ No newline at end of file
+userProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelUserProvisioningManager
+roleProvisioningManager=org.apache.syncope.core.provisioning.camel.CamelRoleProvisioningManager
\ No newline at end of file