syncope-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ilgro...@apache.org
Subject [2/2] syncope git commit: Some integration tests improvements
Date Thu, 11 Aug 2016 14:29:42 GMT
Some integration tests improvements


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/f19e261c
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/f19e261c
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/f19e261c

Branch: refs/heads/master
Commit: f19e261cf768ddab0aa85c194cf9452852142808
Parents: 7af5e99
Author: Francesco Chicchiriccò <ilgrosso@apache.org>
Authored: Thu Aug 11 16:29:08 2016 +0200
Committer: Francesco Chicchiriccò <ilgrosso@apache.org>
Committed: Thu Aug 11 16:29:08 2016 +0200

----------------------------------------------------------------------
 .../client/lib/RestClientExceptionMapper.java   |   2 +-
 .../apache/syncope/core/logic/SyncopeLogic.java |   2 +-
 .../init/ClassPathScanImplementationLookup.java |   4 +-
 core/logic/src/main/resources/logic.properties  |   1 +
 core/logic/src/main/resources/logicContext.xml  |   2 +
 .../persistence/api/ImplementationLookup.java   |   2 +-
 .../src/test/resources/persistenceTest.xml      |   2 +-
 .../src/test/resources/provisioningTest.xml     |   2 +-
 .../buildtools/ApacheDSStartStopListener.java   |   3 -
 .../core/reference/ITImplementationLookup.java  | 209 +++++++++++++++++++
 .../src/main/resources/coreContext.xml          |   4 +-
 .../src/main/resources/logic.properties         |   1 +
 .../org/apache/syncope/fit/AbstractITCase.java  |  17 +-
 .../org/apache/syncope/fit/cli/CLIITCase.java   |   3 -
 .../fit/console/AbstractConsoleITCase.java      |  40 ++--
 .../fit/console/AjaxPalettePanelITCase.java     |   8 +-
 .../fit/console/AjaxTextFieldITCase.java        |  15 +-
 .../syncope/fit/console/AnyObjectsITCase.java   |  33 ++-
 .../fit/console/AnyTypeClassesITCase.java       |   3 -
 .../syncope/fit/console/AnyTypesITCase.java     |   5 +-
 .../apache/syncope/fit/console/BaseITCase.java  |  94 ---------
 .../syncope/fit/console/BrowseITCase.java       |  91 ++++++++
 .../syncope/fit/console/BulkActionITCase.java   | 111 +++++-----
 .../syncope/fit/console/ConsoleSetup.java       |  47 +++++
 .../fit/console/DisplayAttributesITCase.java    |   3 -
 .../syncope/fit/console/GroupsITCase.java       |   3 -
 .../apache/syncope/fit/console/LogsITCase.java  |   4 +-
 .../fit/console/NotificationsITCase.java        |   3 -
 .../syncope/fit/console/ParametersITCase.java   |   3 -
 .../syncope/fit/console/PoliciesITCase.java     |   3 -
 .../syncope/fit/console/RealmsITCase.java       |  19 +-
 .../fit/console/RelationshipTypeITCase.java     | 124 -----------
 .../fit/console/RelationshipTypesITCase.java    | 121 +++++++++++
 .../syncope/fit/console/ReportsITCase.java      |   3 -
 .../apache/syncope/fit/console/RolesITCase.java |   3 -
 .../syncope/fit/console/SchemasITCase.java      |   5 +-
 .../fit/console/SecurityQuestionsITCase.java    |   3 -
 .../apache/syncope/fit/console/UsersITCase.java |  21 +-
 .../syncope/fit/core/AnyObjectITCase.java       |   3 -
 .../syncope/fit/core/AnyTypeClassITCase.java    |   3 -
 .../apache/syncope/fit/core/AnyTypeITCase.java  |   3 -
 .../syncope/fit/core/AuthenticationITCase.java  |  16 +-
 .../syncope/fit/core/CamelRouteITCase.java      |   3 -
 .../syncope/fit/core/ConfigurationITCase.java   |   3 -
 .../syncope/fit/core/ConnectorITCase.java       |   3 -
 .../syncope/fit/core/DerSchemaITCase.java       |   3 -
 .../apache/syncope/fit/core/DomainITCase.java   |   3 -
 .../syncope/fit/core/ExceptionMapperITCase.java |   3 -
 .../apache/syncope/fit/core/GroupITCase.java    |   3 -
 .../apache/syncope/fit/core/LoggerITCase.java   |   3 -
 .../syncope/fit/core/MailTemplateITCase.java    |   3 -
 .../syncope/fit/core/MembershipITCase.java      |  13 +-
 .../syncope/fit/core/MigrationITCase.java       |   8 +-
 .../syncope/fit/core/MultitenancyITCase.java    |   6 +-
 .../syncope/fit/core/NotificationITCase.java    |   3 -
 .../fit/core/NotificationTaskITCase.java        |   3 -
 .../syncope/fit/core/PlainSchemaITCase.java     |   3 -
 .../apache/syncope/fit/core/PolicyITCase.java   |   3 -
 .../syncope/fit/core/PropagationTaskITCase.java |   3 -
 .../apache/syncope/fit/core/PullTaskITCase.java |  13 +-
 .../apache/syncope/fit/core/PushTaskITCase.java |  13 +-
 .../org/apache/syncope/fit/core/RESTITCase.java |   3 -
 .../apache/syncope/fit/core/RealmITCase.java    |   3 -
 .../fit/core/RelationshipTypeITCase.java        |   3 -
 .../apache/syncope/fit/core/ReportITCase.java   |   3 -
 .../syncope/fit/core/ReportTemplateITCase.java  |   3 -
 .../apache/syncope/fit/core/ResourceITCase.java |   3 -
 .../org/apache/syncope/fit/core/RoleITCase.java |   3 -
 .../syncope/fit/core/SchedTaskITCase.java       |   3 -
 .../apache/syncope/fit/core/SearchITCase.java   |   3 -
 .../fit/core/SecurityQuestionITCase.java        |   3 -
 .../apache/syncope/fit/core/SwaggerITCase.java  |   3 -
 .../org/apache/syncope/fit/core/UserITCase.java |   3 -
 .../syncope/fit/core/UserIssuesITCase.java      |  13 +-
 .../apache/syncope/fit/core/UserSelfITCase.java |  13 +-
 .../syncope/fit/core/UserWorkflowITCase.java    |  13 +-
 .../apache/syncope/fit/core/VirAttrITCase.java  |  13 +-
 .../syncope/fit/core/VirSchemaITCase.java       |   3 -
 .../src/test/resources/migrationContext.xml     |  51 -----
 .../src/test/resources/migrationEnv.xml         |  51 +++++
 .../src/test/resources/testJDBCContext.xml      |  33 ---
 .../src/test/resources/testJDBCEnv.xml          |  33 +++
 82 files changed, 770 insertions(+), 628 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/client/lib/src/main/java/org/apache/syncope/client/lib/RestClientExceptionMapper.java
----------------------------------------------------------------------
diff --git a/client/lib/src/main/java/org/apache/syncope/client/lib/RestClientExceptionMapper.java b/client/lib/src/main/java/org/apache/syncope/client/lib/RestClientExceptionMapper.java
index 208ec2f..d1c51a4 100644
--- a/client/lib/src/main/java/org/apache/syncope/client/lib/RestClientExceptionMapper.java
+++ b/client/lib/src/main/java/org/apache/syncope/client/lib/RestClientExceptionMapper.java
@@ -47,7 +47,7 @@ public class RestClientExceptionMapper implements ExceptionMapper<Exception>, Re
     @Override
     public Response toResponse(final Exception exception) {
         throw new UnsupportedOperationException(
-                "Call of toResponse() method is not expected in RestClientExceptionnMapper");
+                "Call of toResponse() method is not expected in " + RestClientExceptionMapper.class.getSimpleName());
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
index 5a76d63..0caa8ab 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
@@ -186,7 +186,7 @@ public class SyncopeLogic extends AbstractLogic<AbstractBaseBean> {
                         addAll(implLookup.getClassNames(Type.RECONCILIATION_FILTER_BUILDER));
                 PLATFORM_INFO.getLogicActions().addAll(implLookup.getClassNames(Type.LOGIC_ACTIONS));
                 PLATFORM_INFO.getPropagationActions().addAll(implLookup.getClassNames(Type.PROPAGATION_ACTIONS));
-                PLATFORM_INFO.getPullActions().addAll(implLookup.getClassNames(Type.SYNC_ACTIONS));
+                PLATFORM_INFO.getPullActions().addAll(implLookup.getClassNames(Type.PULL_ACTIONS));
                 PLATFORM_INFO.getPushActions().addAll(implLookup.getClassNames(Type.PUSH_ACTIONS));
                 PLATFORM_INFO.getPullCorrelationRules().addAll(implLookup.getClassNames(Type.PULL_CORRELATION_RULE));
                 PLATFORM_INFO.getValidators().addAll(implLookup.getClassNames(Type.VALIDATOR));

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/core/logic/src/main/java/org/apache/syncope/core/logic/init/ClassPathScanImplementationLookup.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/init/ClassPathScanImplementationLookup.java b/core/logic/src/main/java/org/apache/syncope/core/logic/init/ClassPathScanImplementationLookup.java
index 7728080..a5b9a78 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/init/ClassPathScanImplementationLookup.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/init/ClassPathScanImplementationLookup.java
@@ -50,7 +50,6 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.config.BeanDefinition;
 import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
 import org.springframework.core.type.filter.AssignableTypeFilter;
-import org.springframework.stereotype.Component;
 import org.springframework.util.ClassUtils;
 import org.apache.syncope.core.provisioning.api.pushpull.ReconciliationFilterBuilder;
 import org.apache.syncope.core.provisioning.api.pushpull.PullCorrelationRule;
@@ -62,7 +61,6 @@ import org.apache.syncope.core.provisioning.java.pushpull.PlainAttrsPullCorrelat
 /**
  * Cache class names for all implementations of Syncope interfaces found in classpath, for later usage.
  */
-@Component
 public class ClassPathScanImplementationLookup implements ImplementationLookup {
 
     private static final Logger LOG = LoggerFactory.getLogger(ImplementationLookup.class);
@@ -170,7 +168,7 @@ public class ClassPathScanImplementationLookup implements ImplementationLookup {
                 }
 
                 if (PullActions.class.isAssignableFrom(clazz) && !isAbsractClazz) {
-                    classNames.get(Type.SYNC_ACTIONS).add(bd.getBeanClassName());
+                    classNames.get(Type.PULL_ACTIONS).add(bd.getBeanClassName());
                 }
 
                 if (PushActions.class.isAssignableFrom(clazz) && !isAbsractClazz) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/core/logic/src/main/resources/logic.properties
----------------------------------------------------------------------
diff --git a/core/logic/src/main/resources/logic.properties b/core/logic/src/main/resources/logic.properties
index 4af398a..a9a71b1 100644
--- a/core/logic/src/main/resources/logic.properties
+++ b/core/logic/src/main/resources/logic.properties
@@ -15,3 +15,4 @@
 # specific language governing permissions and limitations
 # under the License.
 logicInvocationHandler=org.apache.syncope.core.logic.LogicInvocationHandler
+classPathScanImplementationLookup=org.apache.syncope.core.logic.init.ClassPathScanImplementationLookup

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/core/logic/src/main/resources/logicContext.xml
----------------------------------------------------------------------
diff --git a/core/logic/src/main/resources/logicContext.xml b/core/logic/src/main/resources/logicContext.xml
index 5bec085..7faa00c 100644
--- a/core/logic/src/main/resources/logicContext.xml
+++ b/core/logic/src/main/resources/logicContext.xml
@@ -38,4 +38,6 @@ under the License.
 
   <bean class="${logicInvocationHandler}"/>
 
+  <bean class="${classPathScanImplementationLookup}"/>
+
 </beans>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/ImplementationLookup.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/ImplementationLookup.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/ImplementationLookup.java
index c3c1c2d..61eb327 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/ImplementationLookup.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/ImplementationLookup.java
@@ -38,7 +38,7 @@ public interface ImplementationLookup extends SyncopeLoader {
         RECONCILIATION_FILTER_BUILDER,
         LOGIC_ACTIONS,
         PROPAGATION_ACTIONS,
-        SYNC_ACTIONS,
+        PULL_ACTIONS,
         PUSH_ACTIONS,
         PULL_CORRELATION_RULE,
         VALIDATOR,

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/core/persistence-jpa/src/test/resources/persistenceTest.xml
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/resources/persistenceTest.xml b/core/persistence-jpa/src/test/resources/persistenceTest.xml
index b4d7125..80f854b 100644
--- a/core/persistence-jpa/src/test/resources/persistenceTest.xml
+++ b/core/persistence-jpa/src/test/resources/persistenceTest.xml
@@ -25,7 +25,7 @@ under the License.
                            http://www.springframework.org/schema/context
                            http://www.springframework.org/schema/context/spring-context.xsd">
 
-  <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+  <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
     <property name="locations">
       <list>
         <value>classpath:persistence.properties</value>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/core/provisioning-java/src/test/resources/provisioningTest.xml
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/test/resources/provisioningTest.xml b/core/provisioning-java/src/test/resources/provisioningTest.xml
index 54797a5..88b61b4 100644
--- a/core/provisioning-java/src/test/resources/provisioningTest.xml
+++ b/core/provisioning-java/src/test/resources/provisioningTest.xml
@@ -22,7 +22,7 @@ under the License.
        xsi:schemaLocation="http://www.springframework.org/schema/beans
                            http://www.springframework.org/schema/beans/spring-beans.xsd">
     
-  <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+  <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
     <property name="locations">
       <list>
         <value>classpath:persistence.properties</value>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/ApacheDSStartStopListener.java
----------------------------------------------------------------------
diff --git a/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/ApacheDSStartStopListener.java b/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/ApacheDSStartStopListener.java
index 061007a..50049c8 100644
--- a/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/ApacheDSStartStopListener.java
+++ b/fit/build-tools/src/main/java/org/apache/syncope/fit/buildtools/ApacheDSStartStopListener.java
@@ -59,9 +59,6 @@ import org.springframework.web.context.support.WebApplicationContextUtils;
  */
 public class ApacheDSStartStopListener implements ServletContextListener {
 
-    /**
-     * Logger.
-     */
     private static final Logger LOG = LoggerFactory.getLogger(ApacheDSStartStopListener.class);
 
     private DirectoryService service;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/ITImplementationLookup.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/ITImplementationLookup.java b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/ITImplementationLookup.java
new file mode 100644
index 0000000..ae329b9
--- /dev/null
+++ b/fit/core-reference/src/main/java/org/apache/syncope/fit/core/reference/ITImplementationLookup.java
@@ -0,0 +1,209 @@
+/*
+ * 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.fit.core.reference;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import org.apache.syncope.common.lib.policy.AccountRuleConf;
+import org.apache.syncope.common.lib.policy.DefaultAccountRuleConf;
+import org.apache.syncope.common.lib.policy.DefaultPasswordRuleConf;
+import org.apache.syncope.common.lib.policy.PasswordRuleConf;
+import org.apache.syncope.common.lib.report.AuditReportletConf;
+import org.apache.syncope.common.lib.report.GroupReportletConf;
+import org.apache.syncope.common.lib.report.ReconciliationReportletConf;
+import org.apache.syncope.common.lib.report.ReportletConf;
+import org.apache.syncope.common.lib.report.StaticReportletConf;
+import org.apache.syncope.common.lib.report.UserReportletConf;
+import org.apache.syncope.core.logic.report.AuditReportlet;
+import org.apache.syncope.core.logic.report.GroupReportlet;
+import org.apache.syncope.core.logic.report.ReconciliationReportlet;
+import org.apache.syncope.core.logic.report.StaticReportlet;
+import org.apache.syncope.core.logic.report.UserReportlet;
+import org.apache.syncope.core.migration.MigrationPullActions;
+import org.apache.syncope.core.persistence.api.ImplementationLookup;
+import org.apache.syncope.core.persistence.api.dao.AccountRule;
+import org.apache.syncope.core.persistence.api.dao.PasswordRule;
+import org.apache.syncope.core.persistence.api.dao.Reportlet;
+import org.apache.syncope.core.persistence.jpa.attrvalue.validation.AlwaysTrueValidator;
+import org.apache.syncope.core.persistence.jpa.attrvalue.validation.BasicValidator;
+import org.apache.syncope.core.persistence.jpa.attrvalue.validation.EmailAddressValidator;
+import org.apache.syncope.core.persistence.jpa.dao.DefaultAccountRule;
+import org.apache.syncope.core.persistence.jpa.dao.DefaultPasswordRule;
+import org.apache.syncope.core.provisioning.java.DefaultLogicActions;
+import org.apache.syncope.core.provisioning.java.data.DefaultMappingItemTransformer;
+import org.apache.syncope.core.provisioning.java.propagation.DBPasswordPropagationActions;
+import org.apache.syncope.core.provisioning.java.propagation.LDAPMembershipPropagationActions;
+import org.apache.syncope.core.provisioning.java.propagation.LDAPPasswordPropagationActions;
+import org.apache.syncope.core.provisioning.java.pushpull.DBPasswordPullActions;
+import org.apache.syncope.core.provisioning.java.pushpull.LDAPMembershipPullActions;
+import org.apache.syncope.core.provisioning.java.pushpull.LDAPPasswordPullActions;
+
+/**
+ * Static implementation providing information about the integration test environment.
+ */
+public class ITImplementationLookup implements ImplementationLookup {
+
+    private static final Map<Type, Set<String>> CLASS_NAMES = new HashMap<Type, Set<String>>() {
+
+        private static final long serialVersionUID = 3109256773218160485L;
+
+        {
+            Set<String> classNames = new HashSet<>();
+            classNames.add(ReconciliationReportletConf.class.getName());
+            classNames.add(UserReportletConf.class.getName());
+            classNames.add(GroupReportletConf.class.getName());
+            classNames.add(AuditReportletConf.class.getName());
+            classNames.add(StaticReportletConf.class.getName());
+            put(Type.REPORTLET_CONF, classNames);
+
+            classNames = new HashSet<>();
+            classNames.add(TestAccountRuleConf.class.getName());
+            classNames.add(DefaultAccountRuleConf.class.getName());
+            put(Type.ACCOUNT_RULE_CONF, classNames);
+
+            classNames = new HashSet<>();
+            classNames.add(TestPasswordRuleConf.class.getName());
+            classNames.add(DefaultPasswordRuleConf.class.getName());
+            put(Type.PASSWORD_RULE_CONF, classNames);
+
+            classNames = new HashSet<>();
+            classNames.add(PrefixMappingItemTransformer.class.getName());
+            classNames.add(DefaultMappingItemTransformer.class.getName());
+            put(Type.MAPPING_ITEM_TRANSFORMER, classNames);
+
+            classNames = new HashSet<>();
+            classNames.add(TestSampleJobDelegate.class.getName());
+            put(Type.TASKJOBDELEGATE, classNames);
+
+            classNames = new HashSet<>();
+            classNames.add(TestReconciliationFilterBuilder.class.getName());
+            put(Type.RECONCILIATION_FILTER_BUILDER, classNames);
+
+            classNames = new HashSet<>();
+            classNames.add(DoubleValueLogicActions.class.getName());
+            classNames.add(DefaultLogicActions.class.getName());
+            put(Type.LOGIC_ACTIONS, classNames);
+
+            classNames = new HashSet<>();
+            classNames.add(LDAPMembershipPropagationActions.class.getName());
+            classNames.add(LDAPPasswordPropagationActions.class.getName());
+            classNames.add(DBPasswordPropagationActions.class.getName());
+            put(Type.PROPAGATION_ACTIONS, classNames);
+
+            classNames = new HashSet<>();
+            classNames.add(LDAPPasswordPullActions.class.getName());
+            classNames.add(TestPullActions.class.getName());
+            classNames.add(MigrationPullActions.class.getName());
+            classNames.add(LDAPMembershipPullActions.class.getName());
+            classNames.add(DBPasswordPullActions.class.getName());
+            put(Type.PULL_ACTIONS, classNames);
+
+            classNames = new HashSet<>();
+            put(Type.PUSH_ACTIONS, classNames);
+
+            classNames = new HashSet<>();
+            classNames.add(TestPullRule.class.getName());
+            put(Type.PULL_CORRELATION_RULE, classNames);
+
+            classNames = new HashSet<>();
+            classNames.add(BasicValidator.class.getName());
+            classNames.add(EmailAddressValidator.class.getName());
+            classNames.add(AlwaysTrueValidator.class.getName());
+            put(Type.VALIDATOR, classNames);
+
+            classNames = new HashSet<>();
+            classNames.add(TestNotificationRecipientsProvider.class.getName());
+            put(Type.NOTIFICATION_RECIPIENTS_PROVIDER, classNames);
+        }
+    };
+
+    private static final Map<Class<? extends ReportletConf>, Class<? extends Reportlet>> REPORTLET_CLASSES =
+            new HashMap<Class<? extends ReportletConf>, Class<? extends Reportlet>>() {
+
+        private static final long serialVersionUID = 3109256773218160485L;
+
+        {
+            put(AuditReportletConf.class, AuditReportlet.class);
+            put(ReconciliationReportletConf.class, ReconciliationReportlet.class);
+            put(GroupReportletConf.class, GroupReportlet.class);
+            put(UserReportletConf.class, UserReportlet.class);
+            put(StaticReportletConf.class, StaticReportlet.class);
+        }
+    };
+
+    private static final Map<Class<? extends AccountRuleConf>, Class<? extends AccountRule>> ACCOUNT_RULE_CLASSES =
+            new HashMap<Class<? extends AccountRuleConf>, Class<? extends AccountRule>>() {
+
+        private static final long serialVersionUID = 3109256773218160485L;
+
+        {
+            put(TestAccountRuleConf.class, TestAccountRule.class);
+            put(DefaultAccountRuleConf.class, DefaultAccountRule.class);
+        }
+    };
+
+    private static final Map<Class<? extends PasswordRuleConf>, Class<? extends PasswordRule>> PASSWORD_RULE_CLASSES =
+            new HashMap<Class<? extends PasswordRuleConf>, Class<? extends PasswordRule>>() {
+
+        private static final long serialVersionUID = -6624291041977583649L;
+
+        {
+            put(TestPasswordRuleConf.class, TestPasswordRule.class);
+            put(DefaultPasswordRuleConf.class, DefaultPasswordRule.class);
+        }
+    };
+
+    @Override
+    public Integer getPriority() {
+        return 400;
+    }
+
+    @Override
+    public void load() {
+        // nothing to do
+    }
+
+    @Override
+    public Set<String> getClassNames(final Type type) {
+        return CLASS_NAMES.get(type);
+    }
+
+    @Override
+    public Class<? extends Reportlet> getReportletClass(
+            final Class<? extends ReportletConf> reportletConfClass) {
+
+        return REPORTLET_CLASSES.get(reportletConfClass);
+    }
+
+    @Override
+    public Class<? extends AccountRule> getAccountRuleClass(
+            final Class<? extends AccountRuleConf> accountRuleConfClass) {
+
+        return ACCOUNT_RULE_CLASSES.get(accountRuleConfClass);
+    }
+
+    @Override
+    public Class<? extends PasswordRule> getPasswordRuleClass(
+            final Class<? extends PasswordRuleConf> passwordRuleConfClass) {
+
+        return PASSWORD_RULE_CLASSES.get(passwordRuleConfClass);
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/main/resources/coreContext.xml
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/resources/coreContext.xml b/fit/core-reference/src/main/resources/coreContext.xml
index 03f7fc9..de4a865 100644
--- a/fit/core-reference/src/main/resources/coreContext.xml
+++ b/fit/core-reference/src/main/resources/coreContext.xml
@@ -22,7 +22,7 @@ under the License.
        xsi:schemaLocation="http://www.springframework.org/schema/beans
                            http://www.springframework.org/schema/beans/spring-beans.xsd">
 
-  <bean id="confDirectoryPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+  <bean id="confDirectoryPropertyConfigurer" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
     <property name="order" value="1"/>
     <property name="ignoreResourceNotFound" value="true"/>
     <property name="ignoreUnresolvablePlaceholders" value="true"/>
@@ -39,7 +39,7 @@ under the License.
       </list>
     </property>
   </bean>
-  <bean id="classpathPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+  <bean id="classpathPropertyConfigurer" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
     <property name="locations">
       <list>
         <value>classpath:persistence.properties</value>

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/main/resources/logic.properties
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/resources/logic.properties b/fit/core-reference/src/main/resources/logic.properties
index 4af398a..802e7853 100644
--- a/fit/core-reference/src/main/resources/logic.properties
+++ b/fit/core-reference/src/main/resources/logic.properties
@@ -15,3 +15,4 @@
 # specific language governing permissions and limitations
 # under the License.
 logicInvocationHandler=org.apache.syncope.core.logic.LogicInvocationHandler
+classPathScanImplementationLookup=org.apache.syncope.fit.core.reference.ITImplementationLookup

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
index 465b01a..4003c3b 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
@@ -18,6 +18,8 @@
  */
 package org.apache.syncope.fit;
 
+import static org.junit.Assert.assertNotNull;
+
 import java.io.InputStream;
 import java.net.URI;
 import java.util.Locale;
@@ -27,7 +29,6 @@ import java.util.UUID;
 import javax.naming.Context;
 import javax.naming.NamingException;
 import javax.naming.directory.InitialDirContext;
-import javax.sql.DataSource;
 import javax.ws.rs.core.GenericType;
 import javax.ws.rs.core.Response;
 import org.apache.commons.io.IOUtils;
@@ -79,17 +80,12 @@ import org.apache.syncope.common.rest.api.service.UserWorkflowService;
 import org.apache.syncope.common.rest.api.service.WorkflowService;
 import org.identityconnectors.common.security.Encryptor;
 import org.junit.BeforeClass;
-import org.junit.runner.RunWith;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.junit.FixMethodOrder;
+import org.junit.runners.MethodSorters;
 
-import static org.junit.Assert.assertNotNull;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = { "classpath:testJDBCContext.xml" })
+@FixMethodOrder(MethodSorters.JVM)
 public abstract class AbstractITCase {
 
     protected static final Logger LOG = LoggerFactory.getLogger(AbstractITCase.class);
@@ -212,9 +208,6 @@ public abstract class AbstractITCase {
 
     protected static CamelRouteService camelRouteService;
 
-    @Autowired
-    protected DataSource testDataSource;
-
     @BeforeClass
     public static void securitySetup() {
         InputStream propStream = null;

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java
index 3840f7c..ae598d0 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/cli/CLIITCase.java
@@ -45,11 +45,8 @@ import org.apache.syncope.client.cli.commands.user.UserCommand;
 import org.apache.syncope.common.lib.SyncopeConstants;
 import org.apache.syncope.fit.AbstractITCase;
 import org.junit.BeforeClass;
-import org.junit.FixMethodOrder;
 import org.junit.Test;
-import org.junit.runners.MethodSorters;
 
-@FixMethodOrder(MethodSorters.JVM)
 public class CLIITCase extends AbstractITCase {
 
     private static final String SCRIPT_FILENAME = "syncopeadm";

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java
index 97df15e..0565590 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java
@@ -20,13 +20,7 @@ package org.apache.syncope.fit.console;
 
 import java.io.Serializable;
 import java.lang.reflect.Method;
-import javax.servlet.ServletContext;
-import org.apache.syncope.client.console.SyncopeConsoleApplication;
-import org.apache.syncope.client.console.init.ClassPathScanImplementationLookup;
-import org.apache.syncope.client.console.init.ConsoleInitializer;
-import org.apache.syncope.client.console.init.MIMETypesLoader;
 import org.apache.syncope.client.console.pages.Login;
-import org.apache.syncope.fit.AbstractITCase;
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.behavior.AbstractAjaxBehavior;
@@ -38,8 +32,19 @@ import org.apache.wicket.util.tester.WicketTester;
 import org.apache.wicket.util.visit.IVisit;
 import org.apache.wicket.util.visit.IVisitor;
 import org.junit.BeforeClass;
+import org.junit.FixMethodOrder;
+import org.junit.runners.MethodSorters;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-public abstract class AbstractConsoleITCase extends AbstractITCase {
+@FixMethodOrder(MethodSorters.JVM)
+public abstract class AbstractConsoleITCase {
+
+    protected static final Logger LOG = LoggerFactory.getLogger(AbstractConsoleITCase.class);
+
+    protected static final String ADMIN_UNAME = "admin";
+
+    protected static final String ADMIN_PWD = "password";
 
     protected static final String KEY = "key";
 
@@ -49,26 +54,7 @@ public abstract class AbstractConsoleITCase extends AbstractITCase {
 
     @BeforeClass
     public static void setUp() {
-        synchronized (KEY) {
-            if (TESTER == null) {
-                TESTER = new WicketTester(new SyncopeConsoleApplication() {
-
-                    @Override
-                    protected void init() {
-                        ServletContext ctx = getServletContext();
-                        ClassPathScanImplementationLookup lookup = new ClassPathScanImplementationLookup();
-                        lookup.load();
-                        ctx.setAttribute(ConsoleInitializer.CLASSPATH_LOOKUP, lookup);
-
-                        MIMETypesLoader mimeTypes = new MIMETypesLoader();
-                        mimeTypes.load();
-                        ctx.setAttribute(ConsoleInitializer.MIMETYPES_LOADER, mimeTypes);
-
-                        super.init();
-                    }
-                });
-            }
-        }
+        TESTER = ConsoleSetup.TESTER;
     }
 
     protected void doLogin(final String user, final String passwd) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxPalettePanelITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxPalettePanelITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxPalettePanelITCase.java
index 828e40f..a8da748 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxPalettePanelITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxPalettePanelITCase.java
@@ -20,7 +20,6 @@ package org.apache.syncope.fit.console;
 
 import static org.junit.Assert.assertEquals;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Iterator;
@@ -29,16 +28,13 @@ import org.apache.syncope.client.console.wicket.markup.html.form.AjaxPalettePane
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.util.ListModel;
 import org.apache.wicket.util.tester.FormTester;
-import org.junit.FixMethodOrder;
 import org.junit.Test;
-import org.junit.runners.MethodSorters;
 
-@FixMethodOrder(MethodSorters.JVM)
 public class AjaxPalettePanelITCase extends AbstractConsoleITCase {
 
-    private static final IModel<List<String>> SELECTED = new ListModel<>(new ArrayList<>(Arrays.asList("A", "D")));
+    private static final IModel<List<String>> SELECTED = new ListModel<>(Arrays.asList("A", "D"));
 
-    private static final ListModel<String> ALL = new ListModel<>(new ArrayList<>(Arrays.asList("A", "B", "C", "D")));
+    private static final ListModel<String> ALL = new ListModel<>(Arrays.asList("A", "B", "C", "D"));
 
     @Test
     public void isRendered() {

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxTextFieldITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxTextFieldITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxTextFieldITCase.java
index 7b56367..a29b296 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxTextFieldITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxTextFieldITCase.java
@@ -28,19 +28,16 @@ import org.apache.wicket.validation.validator.StringValidator;
 import org.junit.Test;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-import org.junit.FixMethodOrder;
-import org.junit.runners.MethodSorters;
 
-@FixMethodOrder(MethodSorters.JVM)
 public class AjaxTextFieldITCase extends AbstractConsoleITCase {
 
-    private final IModel<String> textModel = Model.of((String) null);
+    private static final IModel<String> TEXT_MODEL = Model.of((String) null);
 
     @Test
     public void emptyInputConvertedToNull() {
         TestPage<String, AjaxTextFieldPanel> testPage =
                 new TestPage.Builder<String, AjaxTextFieldPanel>().build(
-                        new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, textModel));
+                        new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, TEXT_MODEL));
         TESTER.startPage(testPage);
         FormTester formTester = TESTER.newFormTester(testPage.getForm().getId());
         formTester.setValue("field:textField", "");
@@ -52,9 +49,9 @@ public class AjaxTextFieldITCase extends AbstractConsoleITCase {
     public void valueAttribute() {
         TestPage<String, AjaxTextFieldPanel> testPage =
                 new TestPage.Builder<String, AjaxTextFieldPanel>().build(
-                        new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, textModel));
+                        new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, TEXT_MODEL));
         String text = "sometext";
-        textModel.setObject(text);
+        TEXT_MODEL.setObject(text);
         TESTER.startPage(testPage);
         assertTrue(TESTER.getLastResponseAsString().contains(Strings.escapeMarkup(text)));
     }
@@ -63,7 +60,7 @@ public class AjaxTextFieldITCase extends AbstractConsoleITCase {
     public void nullIsNotValidated() {
         TestPage<String, AjaxTextFieldPanel> testPage =
                 new TestPage.Builder<String, AjaxTextFieldPanel>().build(
-                        new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, textModel));
+                        new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, TEXT_MODEL));
         testPage.getFieldPanel().getField().setRequired(false);
         testPage.getFieldPanel().getField().add(StringValidator.minimumLength(2));
         TESTER.startPage(testPage);
@@ -78,7 +75,7 @@ public class AjaxTextFieldITCase extends AbstractConsoleITCase {
     public void requiredAttribute() {
         TestPage<String, AjaxTextFieldPanel> testPage =
                 new TestPage.Builder<String, AjaxTextFieldPanel>().build(
-                        new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, textModel));
+                        new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, TEXT_MODEL));
         testPage.getFieldPanel().setOutputMarkupId(true);
         testPage.getFieldPanel().getField().setRequired(true);
         TESTER.startPage(testPage);

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyObjectsITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyObjectsITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyObjectsITCase.java
index 6edb1e0..740ad9a 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyObjectsITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyObjectsITCase.java
@@ -24,20 +24,17 @@ import org.apache.wicket.Component;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.util.tester.FormTester;
-import org.junit.FixMethodOrder;
 import org.junit.Test;
-import org.junit.runners.MethodSorters;
 import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.wicket.markup.html.form.IndicatingOnConfirmAjaxLink;
 import org.apache.wicket.markup.html.form.TextField;
 import org.junit.Before;
 
-@FixMethodOrder(MethodSorters.JVM)
 public class AnyObjectsITCase extends AbstractConsoleITCase {
 
-    private final String tabPanel = "body:content:body:container:content:tabbedPanel:panel:searchResult:";
+    private static final String TAB_PANEL = "body:content:body:container:content:tabbedPanel:panel:searchResult:";
 
-    private final String searchResultContainer = tabPanel + "container:content:";
+    private static final String CONTAINER = TAB_PANEL + "container:content:";
 
     @Before
     public void login() {
@@ -67,14 +64,14 @@ public class AnyObjectsITCase extends AbstractConsoleITCase {
         TESTER.clickLink("body:realmsLI:realms");
         TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
 
-        Component component = findComponentByProp("key", searchResultContainer
+        Component component = findComponentByProp("key", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 "8559d14d-58c2-46eb-a2d4-a7d35161e8f8");
         assertNotNull(component);
 
         TESTER.clickLink(component.getPageRelativePath() + ":cells:4:cell:panelClone:cloneLink");
 
-        FormTester formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
 
         formTester.submit("buttons:cancel");
@@ -85,47 +82,47 @@ public class AnyObjectsITCase extends AbstractConsoleITCase {
         TESTER.clickLink("body:realmsLI:realms");
         TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
 
-        Component component = findComponentByProp("key", searchResultContainer
+        Component component = findComponentByProp("key", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 "8559d14d-58c2-46eb-a2d4-a7d35161e8f8");
         assertNotNull(component);
 
         TESTER.clickLink(component.getPageRelativePath() + ":cells:4:cell:panelEdit:editLink");
 
-        TESTER.assertComponent(tabPanel + "outerObjectsRepeater:0:outer:form:content:form:view:status:"
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:status:"
                 + "resources:firstLevelContainer:first:container:content:group:beans:0:fields:0", ListItem.class);
 
-        FormTester formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
         TESTER.cleanupFeedbackMessages();
 
-        formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:finish");
 
         TESTER.assertInfoMessages("Operation executed successfully");
 
-        TESTER.assertComponent(tabPanel
+        TESTER.assertComponent(TAB_PANEL
                 + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:"
                 + "firstLevelContainer:first:container:content:group:beans:0:fields:0:field", Label.class);
 
-        TESTER.clickLink(tabPanel + "outerObjectsRepeater:0:outer:form:content:action:panelClose:closeLink");
+        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:action:panelClose:closeLink");
 
-        component = findComponentByProp("key", searchResultContainer
+        component = findComponentByProp("key", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 "8559d14d-58c2-46eb-a2d4-a7d35161e8f8");
         assertNotNull(component);
@@ -136,7 +133,7 @@ public class AnyObjectsITCase extends AbstractConsoleITCase {
         TESTER.clickLink("body:realmsLI:realms");
         TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
 
-        Component component = findComponentByProp("key", searchResultContainer
+        Component component = findComponentByProp("key", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 "8559d14d-58c2-46eb-a2d4-a7d35161e8f8");
         assertNotNull(component);

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypeClassesITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypeClassesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypeClassesITCase.java
index 690531f..0a7f8e6 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypeClassesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypeClassesITCase.java
@@ -30,11 +30,8 @@ import org.apache.syncope.client.console.wicket.markup.html.form.IndicatingOnCon
 import org.apache.wicket.Component;
 import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
 import org.apache.wicket.util.tester.FormTester;
-import org.junit.FixMethodOrder;
 import org.junit.Test;
-import org.junit.runners.MethodSorters;
 
-@FixMethodOrder(MethodSorters.JVM)
 public class AnyTypeClassesITCase extends AbstractTypesITCase {
 
     @Test

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypesITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypesITCase.java
index 4e5ad5f..fd65f29 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypesITCase.java
@@ -30,11 +30,8 @@ import org.apache.wicket.Component;
 import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.util.tester.FormTester;
-import org.junit.FixMethodOrder;
 import org.junit.Test;
-import org.junit.runners.MethodSorters;
 
-@FixMethodOrder(MethodSorters.JVM)
 public class AnyTypesITCase extends AbstractTypesITCase {
 
     @Test
@@ -129,7 +126,7 @@ public class AnyTypesITCase extends AbstractTypesITCase {
 
         TESTER.getRequest().addParameter("confirm", "true");
         TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
-                        result.getPageRelativePath() + ":cells:4:cell:panelDelete:deleteLink"));
+                result.getPageRelativePath() + ":cells:4:cell:panelDelete:deleteLink"));
 
         TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
                 result.getPageRelativePath() + ":cells:4:cell:panelDelete:deleteLink"), "onclick");

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BaseITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BaseITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BaseITCase.java
deleted file mode 100644
index 9e57fc9..0000000
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BaseITCase.java
+++ /dev/null
@@ -1,94 +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.fit.console;
-
-import org.apache.syncope.client.console.pages.Dashboard;
-import org.apache.syncope.client.console.pages.Login;
-import org.apache.syncope.client.console.pages.Logs;
-import org.apache.syncope.client.console.pages.Notifications;
-import org.apache.syncope.client.console.pages.Policies;
-import org.apache.syncope.client.console.pages.Realms;
-import org.apache.syncope.client.console.pages.Reports;
-import org.apache.syncope.client.console.pages.Roles;
-import org.apache.syncope.client.console.pages.SecurityQuestions;
-import org.apache.syncope.client.console.pages.Types;
-import org.apache.syncope.client.console.pages.Workflow;
-import org.apache.syncope.client.console.topology.Topology;
-import org.junit.FixMethodOrder;
-import org.junit.Test;
-import org.junit.runners.MethodSorters;
-
-@FixMethodOrder(MethodSorters.JVM)
-public class BaseITCase extends AbstractConsoleITCase {
-
-    @Test
-    public void loginPage() {
-        TESTER.startPage(Login.class);
-        TESTER.assertRenderedPage(Login.class);
-    }
-
-    @Test
-    public void successfulLogin() {
-        doLogin(ADMIN_UNAME, ADMIN_PWD);
-        TESTER.assertRenderedPage(Dashboard.class);
-    }
-
-    @Test
-    public void unsuccessfulLogin() {
-        doLogin(ADMIN_UNAME, ADMIN_PWD + 1);
-        TESTER.assertRenderedPage(Login.class);
-    }
-
-    @Test
-    public void browsingBookmarkablePageLink() {
-        doLogin(ADMIN_UNAME, ADMIN_PWD);
-
-        TESTER.assertRenderedPage(Dashboard.class);
-
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.assertRenderedPage(Realms.class);
-
-        TESTER.clickLink("body:topologyLI:topology");
-        TESTER.assertRenderedPage(Topology.class);
-
-        TESTER.clickLink("body:reportsLI:reports");
-        TESTER.assertRenderedPage(Reports.class);
-
-        TESTER.clickLink("body:configurationLI:configurationUL:workflowLI:workflow");
-        TESTER.assertRenderedPage(Workflow.class);
-
-        TESTER.clickLink("body:configurationLI:configurationUL:logsLI:logs");
-        TESTER.assertRenderedPage(Logs.class);
-
-        TESTER.clickLink("body:configurationLI:configurationUL:securityquestionsLI:securityquestions");
-        TESTER.assertRenderedPage(SecurityQuestions.class);
-
-        TESTER.clickLink("body:configurationLI:configurationUL:typesLI:types");
-        TESTER.assertRenderedPage(Types.class);
-
-        TESTER.clickLink("body:configurationLI:configurationUL:rolesLI:roles");
-        TESTER.assertRenderedPage(Roles.class);
-
-        TESTER.clickLink("body:configurationLI:configurationUL:policiesLI:policies");
-        TESTER.assertRenderedPage(Policies.class);
-
-        TESTER.clickLink("body:configurationLI:configurationUL:notificationsLI:notifications");
-        TESTER.assertRenderedPage(Notifications.class);
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BrowseITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BrowseITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BrowseITCase.java
new file mode 100644
index 0000000..5a3c0d8
--- /dev/null
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BrowseITCase.java
@@ -0,0 +1,91 @@
+/*
+ * 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.fit.console;
+
+import org.apache.syncope.client.console.pages.Dashboard;
+import org.apache.syncope.client.console.pages.Login;
+import org.apache.syncope.client.console.pages.Logs;
+import org.apache.syncope.client.console.pages.Notifications;
+import org.apache.syncope.client.console.pages.Policies;
+import org.apache.syncope.client.console.pages.Realms;
+import org.apache.syncope.client.console.pages.Reports;
+import org.apache.syncope.client.console.pages.Roles;
+import org.apache.syncope.client.console.pages.SecurityQuestions;
+import org.apache.syncope.client.console.pages.Types;
+import org.apache.syncope.client.console.pages.Workflow;
+import org.apache.syncope.client.console.topology.Topology;
+import org.junit.Test;
+
+public class BrowseITCase extends AbstractConsoleITCase {
+
+    @Test
+    public void loginPage() {
+        TESTER.startPage(Login.class);
+        TESTER.assertRenderedPage(Login.class);
+    }
+
+    @Test
+    public void successfulLogin() {
+        doLogin(ADMIN_UNAME, ADMIN_PWD);
+        TESTER.assertRenderedPage(Dashboard.class);
+    }
+
+    @Test
+    public void unsuccessfulLogin() {
+        doLogin(ADMIN_UNAME, ADMIN_PWD + 1);
+        TESTER.assertRenderedPage(Login.class);
+    }
+
+    @Test
+    public void browsingBookmarkablePageLink() {
+        doLogin(ADMIN_UNAME, ADMIN_PWD);
+
+        TESTER.assertRenderedPage(Dashboard.class);
+
+        TESTER.clickLink("body:realmsLI:realms");
+        TESTER.assertRenderedPage(Realms.class);
+
+        TESTER.clickLink("body:topologyLI:topology");
+        TESTER.assertRenderedPage(Topology.class);
+
+        TESTER.clickLink("body:reportsLI:reports");
+        TESTER.assertRenderedPage(Reports.class);
+
+        TESTER.clickLink("body:configurationLI:configurationUL:workflowLI:workflow");
+        TESTER.assertRenderedPage(Workflow.class);
+
+        TESTER.clickLink("body:configurationLI:configurationUL:logsLI:logs");
+        TESTER.assertRenderedPage(Logs.class);
+
+        TESTER.clickLink("body:configurationLI:configurationUL:securityquestionsLI:securityquestions");
+        TESTER.assertRenderedPage(SecurityQuestions.class);
+
+        TESTER.clickLink("body:configurationLI:configurationUL:typesLI:types");
+        TESTER.assertRenderedPage(Types.class);
+
+        TESTER.clickLink("body:configurationLI:configurationUL:rolesLI:roles");
+        TESTER.assertRenderedPage(Roles.class);
+
+        TESTER.clickLink("body:configurationLI:configurationUL:policiesLI:policies");
+        TESTER.assertRenderedPage(Policies.class);
+
+        TESTER.clickLink("body:configurationLI:configurationUL:notificationsLI:notifications");
+        TESTER.assertRenderedPage(Notifications.class);
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BulkActionITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BulkActionITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BulkActionITCase.java
index 392443a..ef55a9b 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BulkActionITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BulkActionITCase.java
@@ -30,16 +30,13 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.util.tester.FormTester;
 import org.junit.Before;
-import org.junit.FixMethodOrder;
 import org.junit.Test;
-import org.junit.runners.MethodSorters;
 
-@FixMethodOrder(MethodSorters.JVM)
 public class BulkActionITCase extends AbstractConsoleITCase {
 
-    private final String tabPanel = "body:content:body:container:content:tabbedPanel:panel:searchResult:";
+    private static final String TAB_PANEL = "body:content:body:container:content:tabbedPanel:panel:searchResult:";
 
-    private final String searchResultContainer = tabPanel + "container:content:";
+    private static final String CONTAINER = TAB_PANEL + "container:content:";
 
     @Before
     public void login() {
@@ -51,23 +48,23 @@ public class BulkActionITCase extends AbstractConsoleITCase {
         TESTER.clickLink("body:realmsLI:realms");
         TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", searchResultContainer
+        Component component = findComponentByProp("username", CONTAINER
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
-        FormTester formTester = TESTER.newFormTester(searchResultContainer
+        FormTester formTester = TESTER.newFormTester(CONTAINER
                 + "searchContainer:resultTable:tablePanel:groupForm");
         assertNotNull(formTester);
 
         formTester.select("checkgroup", 2);
 
-        TESTER.executeAjaxEvent(searchResultContainer + "searchContainer:resultTable:tablePanel:bulkActionLink",
+        TESTER.executeAjaxEvent(CONTAINER + "searchContainer:resultTable:tablePanel:bulkActionLink",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent(searchResultContainer
+        TESTER.assertComponent(CONTAINER
                 + "searchContainer:resultTable:bulkModal:form:content:content:container", WebMarkupContainer.class);
 
-        assertNotNull(findComponentByProp("username", searchResultContainer
+        assertNotNull(findComponentByProp("username", CONTAINER
                 + "searchContainer:resultTable:bulkModal:form:content:content:container", "rossini"));
     }
 
@@ -76,38 +73,38 @@ public class BulkActionITCase extends AbstractConsoleITCase {
         TESTER.clickLink("body:realmsLI:realms");
         TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", searchResultContainer
+        Component component = findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
         TESTER.clickLink(component.getPageRelativePath()
                 + ":cells:6:cell:panelManageResources:manageResourcesLink");
 
-        TESTER.assertComponent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", WebMarkupContainer.class);
 
         component = findComponentByProp("resourceName",
-                tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+                TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", "resource-csv");
         assertNotNull(component);
 
         FormTester formTester = TESTER.newFormTester(
-                tabPanel + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:"
+                TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:"
                 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm");
         assertNotNull(formTester);
 
         formTester.select("checkgroup", 2);
 
-        TESTER.executeAjaxEvent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:bulkActionLink",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "secondLevelContainer:second:container", WebMarkupContainer.class);
 
-        assertNotNull(findComponentByProp("resourceName", tabPanel + "outerObjectsRepeater:1:outer:"
+        assertNotNull(findComponentByProp("resourceName", TAB_PANEL + "outerObjectsRepeater:1:outer:"
                 + "form:content:status:secondLevelContainer:second:container", "resource-csv"));
     }
 
@@ -126,18 +123,18 @@ public class BulkActionITCase extends AbstractConsoleITCase {
         TESTER.clickLink("body:realmsLI:realms");
         TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", searchResultContainer
+        Component component = findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
         TESTER.clickLink(component.getPageRelativePath() + ":cells:6:cell:panelEnable:enableLink");
 
-        TESTER.assertComponent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", WebMarkupContainer.class);
 
         component = findComponentByProp("resourceName",
-                tabPanel + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:first:container:"
+                TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:first:container:"
                 + "content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", resourceName);
 
         component = TESTER.getComponentFromLastRenderedPage(component.getPageRelativePath() + ":cells:1:cell:check");
@@ -145,34 +142,36 @@ public class BulkActionITCase extends AbstractConsoleITCase {
         assertEquals(resourceName, StatusBean.class.cast(component.getDefaultModelObject()).getResourceName());
 
         FormTester formTester = TESTER.newFormTester(
-                tabPanel + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:"
+                TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:"
                 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm");
         assertNotNull(formTester);
 
         formTester.select("checkgroup", index);
 
-        TESTER.executeAjaxEvent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:bulkActionLink",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "secondLevelContainer:second:container", WebMarkupContainer.class);
 
-        TESTER.executeAjaxEvent(tabPanel + "outerObjectsRepeater:1:outer:form:content:"
+        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:"
                 + "status:secondLevelContainer:second:container:actions:panelSuspend:suspendLink",
                 Constants.ON_CLICK);
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
 
-        TESTER.assertLabel(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.assertLabel(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "secondLevelContainer:second:container:selectedObjects:body:rows:1:cells:3:cell", "SUCCESS");
 
-        TESTER.executeAjaxEvent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:secondLevelContainer:back",
-                Constants.ON_CLICK);
+        TESTER.
+                executeAjaxEvent(TAB_PANEL
+                        + "outerObjectsRepeater:1:outer:form:content:status:secondLevelContainer:back",
+                        Constants.ON_CLICK);
 
         component = findComponentByProp("resourceName",
-                tabPanel + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:first:container:"
+                TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:first:container:"
                 + "content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", resourceName);
 
         component = TESTER.getComponentFromLastRenderedPage(component.getPageRelativePath() + ":cells:1:cell:check");
@@ -183,52 +182,54 @@ public class BulkActionITCase extends AbstractConsoleITCase {
         TESTER.clickLink("body:realmsLI:realms");
         TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        component = findComponentByProp("username", searchResultContainer
+        component = findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
         TESTER.clickLink(component.getPageRelativePath() + ":cells:6:cell:panelEnable:enableLink");
 
-        TESTER.assertComponent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", WebMarkupContainer.class);
 
         formTester = TESTER.newFormTester(
-                tabPanel + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:"
+                TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:"
                 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm");
         assertNotNull(formTester);
 
         formTester.select("checkgroup", index);
 
-        TESTER.executeAjaxEvent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:bulkActionLink",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "secondLevelContainer:second:container", WebMarkupContainer.class);
 
-        TESTER.executeAjaxEvent(tabPanel + "outerObjectsRepeater:1:outer:form:content:"
+        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:"
                 + "status:secondLevelContainer:second:container:actions:panelReactivate:reactivateLink",
                 Constants.ON_CLICK);
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
 
-        TESTER.assertLabel(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.assertLabel(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "secondLevelContainer:second:container:selectedObjects:body:rows:1:cells:3:cell", "SUCCESS");
 
-        TESTER.executeAjaxEvent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:secondLevelContainer:back",
-                Constants.ON_CLICK);
+        TESTER.
+                executeAjaxEvent(TAB_PANEL
+                        + "outerObjectsRepeater:1:outer:form:content:status:secondLevelContainer:back",
+                        Constants.ON_CLICK);
 
         component = findComponentByProp("resourceName",
-                tabPanel + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:first:container:"
+                TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:first:container:"
                 + "content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", resourceName);
 
         component = TESTER.getComponentFromLastRenderedPage(component.getPageRelativePath() + ":cells:1:cell:check");
         assertEquals(Status.ACTIVE, StatusBean.class.cast(component.getDefaultModelObject()).getStatus());
         assertEquals(resourceName, StatusBean.class.cast(component.getDefaultModelObject()).getResourceName());
 
-        TESTER.executeAjaxEvent(tabPanel + "outerObjectsRepeater:1:outer:dialog:footer:buttons:0:button",
+        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:1:outer:dialog:footer:buttons:0:button",
                 Constants.ON_CLICK);
     }
 
@@ -237,42 +238,42 @@ public class BulkActionITCase extends AbstractConsoleITCase {
         TESTER.clickLink("body:realmsLI:realms");
         TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:2:link");
 
-        Component component = findComponentByProp("name", searchResultContainer
+        Component component = findComponentByProp("name", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "director");
         assertNotNull(component);
 
         TESTER.clickLink(component.getPageRelativePath()
                 + ":cells:4:cell:panelManageResources:manageResourcesLink");
 
-        TESTER.assertComponent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", WebMarkupContainer.class);
 
-        TESTER.clickLink(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:first:"
+        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:first:"
                 + "container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:topToolbars:"
                 + "toolbars:1:headers:2:header:orderByLink", true);
 
         component = findComponentByProp("resourceName",
-                tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+                TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", "ws-target-resource-1");
         assertNotNull(component);
 
         FormTester formTester = TESTER.newFormTester(
-                tabPanel + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:"
+                TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:"
                 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm");
         assertNotNull(formTester);
 
         formTester.select("checkgroup", 7);
 
-        TESTER.executeAjaxEvent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:bulkActionLink",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "secondLevelContainer:second:container", WebMarkupContainer.class);
 
-        assertNotNull(findComponentByProp("resourceName", tabPanel + "outerObjectsRepeater:1:outer:"
+        assertNotNull(findComponentByProp("resourceName", TAB_PANEL + "outerObjectsRepeater:1:outer:"
                 + "form:content:status:secondLevelContainer:second:container:selectedObjects", "resource-testdb2"));
     }
 
@@ -281,7 +282,7 @@ public class BulkActionITCase extends AbstractConsoleITCase {
         TESTER.clickLink("body:realmsLI:realms");
         TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
 
-        Component component = findComponentByProp("key", searchResultContainer
+        Component component = findComponentByProp("key", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 "8559d14d-58c2-46eb-a2d4-a7d35161e8f8");
         assertNotNull(component);
@@ -289,35 +290,35 @@ public class BulkActionITCase extends AbstractConsoleITCase {
         TESTER.clickLink(component.getPageRelativePath()
                 + ":cells:4:cell:panelManageResources:manageResourcesLink");
 
-        TESTER.assertComponent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", WebMarkupContainer.class);
 
-        TESTER.clickLink(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:first:"
+        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:first:"
                 + "container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:topToolbars:"
                 + "toolbars:1:headers:2:header:orderByLink", true);
 
         component = findComponentByProp("resourceName",
-                tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+                TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", "ws-target-resource-1");
         assertNotNull(component);
 
         FormTester formTester = TESTER.newFormTester(
-                tabPanel + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:"
+                TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:firstLevelContainer:"
                 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm");
         assertNotNull(formTester);
 
         formTester.select("checkgroup", 7);
 
-        TESTER.executeAjaxEvent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:bulkActionLink",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent(tabPanel + "outerObjectsRepeater:1:outer:form:content:status:"
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:1:outer:form:content:status:"
                 + "secondLevelContainer:second:container", WebMarkupContainer.class);
 
-        assertNotNull(findComponentByProp("resourceName", tabPanel + "outerObjectsRepeater:1:outer:"
+        assertNotNull(findComponentByProp("resourceName", TAB_PANEL + "outerObjectsRepeater:1:outer:"
                 + "form:content:status:secondLevelContainer:second:container:selectedObjects", "resource-testdb2"));
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ConsoleSetup.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ConsoleSetup.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ConsoleSetup.java
new file mode 100644
index 0000000..21b51ff
--- /dev/null
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ConsoleSetup.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.fit.console;
+
+import javax.servlet.ServletContext;
+import org.apache.syncope.client.console.SyncopeConsoleApplication;
+import org.apache.syncope.client.console.init.ClassPathScanImplementationLookup;
+import org.apache.syncope.client.console.init.ConsoleInitializer;
+import org.apache.syncope.client.console.init.MIMETypesLoader;
+import org.apache.wicket.util.tester.WicketTester;
+
+public final class ConsoleSetup {
+
+    public static final WicketTester TESTER = new WicketTester(new SyncopeConsoleApplication() {
+
+        @Override
+        protected void init() {
+            ServletContext ctx = getServletContext();
+            ClassPathScanImplementationLookup lookup = new ClassPathScanImplementationLookup();
+            lookup.load();
+            ctx.setAttribute(ConsoleInitializer.CLASSPATH_LOOKUP, lookup);
+
+            MIMETypesLoader mimeTypes = new MIMETypesLoader();
+            mimeTypes.load();
+            ctx.setAttribute(ConsoleInitializer.MIMETYPES_LOADER, mimeTypes);
+
+            super.init();
+        }
+    });
+
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/DisplayAttributesITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/DisplayAttributesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/DisplayAttributesITCase.java
index 383714d..cb8e782 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/DisplayAttributesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/DisplayAttributesITCase.java
@@ -22,11 +22,8 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import org.apache.syncope.client.console.pages.Realms;
 import org.apache.wicket.util.tester.FormTester;
 import org.junit.Before;
-import org.junit.FixMethodOrder;
 import org.junit.Test;
-import org.junit.runners.MethodSorters;
 
-@FixMethodOrder(MethodSorters.JVM)
 public class DisplayAttributesITCase extends AbstractConsoleITCase {
 
     @Before

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java
index b04c9f0..f71fa63 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java
@@ -24,14 +24,11 @@ import org.apache.wicket.Component;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.util.tester.FormTester;
-import org.junit.FixMethodOrder;
 import org.junit.Test;
-import org.junit.runners.MethodSorters;
 import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.wicket.markup.html.form.IndicatingOnConfirmAjaxLink;
 import org.junit.Before;
 
-@FixMethodOrder(MethodSorters.JVM)
 public class GroupsITCase extends AbstractConsoleITCase {
 
     private final String tabPanel = "body:content:body:container:content:tabbedPanel:panel:searchResult:";

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java
index f50f22f..d192d57 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java
@@ -50,7 +50,7 @@ public class LogsITCase extends AbstractConsoleITCase {
         TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:0:link");
         TESTER.assertComponent(CONTAINER_PATH, WebMarkupContainer.class);
 
-        assertNotNull(searchLog(KEY, CONTAINER_PATH, "org.apache.camel"));
+        assertNotNull(searchLog(KEY, CONTAINER_PATH, "io.swagger"));
     }
 
     @Test
@@ -58,7 +58,7 @@ public class LogsITCase extends AbstractConsoleITCase {
         TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:0:link");
         TESTER.assertComponent(CONTAINER_PATH, WebMarkupContainer.class);
 
-        Component result = searchLog(KEY, CONTAINER_PATH, "org.apache.camel");
+        Component result = searchLog(KEY, CONTAINER_PATH, "io.swagger");
         assertNotNull(result);
 
         TESTER.getRequest().addParameter(

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/NotificationsITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/NotificationsITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/NotificationsITCase.java
index 0402bd5..adf4238 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/NotificationsITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/NotificationsITCase.java
@@ -28,11 +28,8 @@ import org.apache.wicket.Component;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.util.tester.FormTester;
 import org.junit.Before;
-import org.junit.FixMethodOrder;
 import org.junit.Test;
-import org.junit.runners.MethodSorters;
 
-@FixMethodOrder(MethodSorters.JVM)
 public class NotificationsITCase extends AbstractConsoleITCase {
 
     @Before

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ParametersITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ParametersITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ParametersITCase.java
index 82e52d7..ab88a4d 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ParametersITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ParametersITCase.java
@@ -26,11 +26,8 @@ import org.apache.wicket.Component;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.util.tester.FormTester;
 import org.junit.Before;
-import org.junit.FixMethodOrder;
 import org.junit.Test;
-import org.junit.runners.MethodSorters;
 
-@FixMethodOrder(MethodSorters.JVM)
 public class ParametersITCase extends AbstractConsoleITCase {
 
     @Before

http://git-wip-us.apache.org/repos/asf/syncope/blob/f19e261c/fit/core-reference/src/test/java/org/apache/syncope/fit/console/PoliciesITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/PoliciesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/PoliciesITCase.java
index f4f9bd9..5916ce0 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/PoliciesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/PoliciesITCase.java
@@ -27,11 +27,8 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.util.tester.FormTester;
 import org.junit.Assert;
 import org.junit.Before;
-import org.junit.FixMethodOrder;
 import org.junit.Test;
-import org.junit.runners.MethodSorters;
 
-@FixMethodOrder(MethodSorters.JVM)
 public class PoliciesITCase extends AbstractConsoleITCase {
 
     @Before


Mime
View raw message