This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/master by this push:
     new b0df00f  [SYNCOPE-1410] Empower SpringBoot's capabilities to configure 
actual implementations on IdRepo / IdM Console variants
b0df00f is described below

commit b0df00f3be5203fc2244d6fc8298f5cc1cafef51
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Mon Nov 4 17:18:38 2019 +0100

    [SYNCOPE-1410] Empower SpringBoot's capabilities to configure actual 
implementations on IdRepo / IdM Console variants
---
 .../client/console/SyncopeIdMConsoleContext.java   |  75 +++++++++++++
 .../commons/IdMImplementationInfoProvider.java     |   5 -
 .../panels/search/ConnObjectSearchPanel.java       |   5 +-
 .../client/console/SyncopeConsoleApplication.java  |  20 ----
 .../console/SyncopeIdRepoConsoleContext.java       | 101 +++++++++++++++++
 .../client/console/SyncopeWebApplication.java      |  15 ++-
 .../commons/IdRepoImplementationInfoProvider.java  |  10 +-
 .../init/ClassPathScanImplementationLookup.java    | 123 +--------------------
 .../apache/syncope/client/console/pages/Login.java |   5 +-
 .../implementations/MyPropagationActions.groovy    |   5 +-
 .../syncope/fit/console/AbstractConsoleITCase.java |  20 +---
 11 files changed, 199 insertions(+), 185 deletions(-)

diff --git 
a/client/idm/console/src/main/java/org/apache/syncope/client/console/SyncopeIdMConsoleContext.java
 
b/client/idm/console/src/main/java/org/apache/syncope/client/console/SyncopeIdMConsoleContext.java
new file mode 100644
index 0000000..5e3f387
--- /dev/null
+++ 
b/client/idm/console/src/main/java/org/apache/syncope/client/console/SyncopeIdMConsoleContext.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.client.console;
+
+import 
org.apache.syncope.client.console.commons.AnyDirectoryPanelAditionalActionLinksProvider;
+import 
org.apache.syncope.client.console.commons.AnyWizardBuilderAdditionalSteps;
+import org.apache.syncope.client.console.commons.ExternalResourceProvider;
+import 
org.apache.syncope.client.console.commons.IdMAnyDirectoryPanelAditionalActionLinksProvider;
+import 
org.apache.syncope.client.console.commons.IdMAnyWizardBuilderAdditionalSteps;
+import org.apache.syncope.client.console.commons.IdMExternalResourceProvider;
+import org.apache.syncope.client.console.commons.IdMImplementationInfoProvider;
+import org.apache.syncope.client.console.commons.IdMPolicyTabProvider;
+import org.apache.syncope.client.console.commons.IdMStatusProvider;
+import 
org.apache.syncope.client.console.commons.IdMVirSchemaDetailsPanelProvider;
+import org.apache.syncope.client.console.commons.ImplementationInfoProvider;
+import org.apache.syncope.client.console.commons.PolicyTabProvider;
+import org.apache.syncope.client.console.commons.StatusProvider;
+import org.apache.syncope.client.console.commons.VirSchemaDetailsPanelProvider;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class SyncopeIdMConsoleContext {
+
+    @Bean
+    public ExternalResourceProvider resourceProvider() {
+        return new IdMExternalResourceProvider();
+    }
+
+    @Bean
+    public AnyWizardBuilderAdditionalSteps anyWizardBuilderAdditionalSteps() {
+        return new IdMAnyWizardBuilderAdditionalSteps();
+    }
+
+    @Bean
+    public StatusProvider statusProvider() {
+        return new IdMStatusProvider();
+    }
+
+    @Bean
+    public VirSchemaDetailsPanelProvider virSchemaDetailsPanelProvider() {
+        return new IdMVirSchemaDetailsPanelProvider();
+    }
+
+    @Bean
+    public AnyDirectoryPanelAditionalActionLinksProvider 
anyDirectoryPanelAditionalActionLinksProvider() {
+        return new IdMAnyDirectoryPanelAditionalActionLinksProvider();
+    }
+
+    @Bean
+    public ImplementationInfoProvider implementationInfoProvider() {
+        return new IdMImplementationInfoProvider();
+    }
+
+    @Bean
+    public PolicyTabProvider policyTabProvider() {
+        return new IdMPolicyTabProvider();
+    }
+}
diff --git 
a/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMImplementationInfoProvider.java
 
b/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMImplementationInfoProvider.java
index 19c783b..1ceacaf 100644
--- 
a/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMImplementationInfoProvider.java
+++ 
b/client/idm/console/src/main/java/org/apache/syncope/client/console/commons/IdMImplementationInfoProvider.java
@@ -22,7 +22,6 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
-import 
org.apache.syncope.client.console.init.ClassPathScanImplementationLookup;
 import org.apache.syncope.client.console.rest.ImplementationRestClient;
 import org.apache.syncope.common.lib.to.EntityTO;
 import org.apache.syncope.common.lib.to.ImplementationTO;
@@ -34,10 +33,6 @@ public class IdMImplementationInfoProvider extends 
IdRepoImplementationInfoProvi
 
     private static final long serialVersionUID = -5385695412826366167L;
 
-    public IdMImplementationInfoProvider(final 
ClassPathScanImplementationLookup lookup) {
-        super(lookup);
-    }
-
     @Override
     public ViewMode getViewMode(final ImplementationTO implementation) {
         return 
IdMImplementationType.PULL_CORRELATION_RULE.equals(implementation.getType())
diff --git 
a/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/search/ConnObjectSearchPanel.java
 
b/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/search/ConnObjectSearchPanel.java
index 54142ab..918eced 100644
--- 
a/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/search/ConnObjectSearchPanel.java
+++ 
b/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/search/ConnObjectSearchPanel.java
@@ -18,7 +18,6 @@
  */
 package org.apache.syncope.client.console.panels.search;
 
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
@@ -81,7 +80,7 @@ public class ConnObjectSearchPanel extends 
AbstractSearchPanel {
 
             @Override
             protected List<SearchClause.Type> load() {
-                return Collections.singletonList(SearchClause.Type.ATTRIBUTE);
+                return List.of(SearchClause.Type.ATTRIBUTE);
             }
         };
 
@@ -91,7 +90,7 @@ public class ConnObjectSearchPanel extends 
AbstractSearchPanel {
 
             @Override
             protected List<String> load() {
-                return Collections.emptyList();
+                return List.of();
             }
         };
 
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
index 9e24a56..0fda265 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java
@@ -19,16 +19,12 @@
 package org.apache.syncope.client.console;
 
 import 
com.giffing.wicket.spring.boot.starter.web.config.WicketWebInitializerAutoConfig.WebSocketWicketWebInitializerAutoConfiguration;
-import 
org.apache.syncope.client.console.init.ClassPathScanImplementationLookup;
-import org.apache.syncope.client.console.init.MIMETypesLoader;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import 
org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration;
 import 
org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration;
 import org.springframework.boot.builder.SpringApplicationBuilder;
 import 
org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
-import org.springframework.context.annotation.Bean;
 
 @SpringBootApplication(exclude = {
     ErrorMvcAutoConfiguration.class,
@@ -44,20 +40,4 @@ public class SyncopeConsoleApplication extends 
SpringBootServletInitializer {
         
builder.properties(WebSocketWicketWebInitializerAutoConfiguration.REGISTER_SERVER_ENDPOINT_ENABLED
 + "=false");
         return super.configure(builder);
     }
-
-    @ConditionalOnMissingBean(name = "classPathScanImplementationLookup")
-    @Bean
-    public ClassPathScanImplementationLookup 
classPathScanImplementationLookup() {
-        ClassPathScanImplementationLookup lookup = new 
ClassPathScanImplementationLookup();
-        lookup.load();
-        return lookup;
-    }
-
-    @ConditionalOnMissingBean(name = "mimeTypesLoader")
-    @Bean
-    public MIMETypesLoader mimeTypesLoader() {
-        MIMETypesLoader mimeTypesLoader = new MIMETypesLoader();
-        mimeTypesLoader.load();
-        return mimeTypesLoader;
-    }
 }
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeIdRepoConsoleContext.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeIdRepoConsoleContext.java
new file mode 100644
index 0000000..b38185a
--- /dev/null
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeIdRepoConsoleContext.java
@@ -0,0 +1,101 @@
+/*
+ * 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.client.console;
+
+import 
org.apache.syncope.client.console.commons.AnyDirectoryPanelAditionalActionLinksProvider;
+import 
org.apache.syncope.client.console.commons.AnyWizardBuilderAdditionalSteps;
+import org.apache.syncope.client.console.commons.ExternalResourceProvider;
+import 
org.apache.syncope.client.console.commons.IdRepoAnyDirectoryPanelAditionalActionLinksProvider;
+import 
org.apache.syncope.client.console.commons.IdRepoAnyWizardBuilderAdditionalSteps;
+import 
org.apache.syncope.client.console.commons.IdRepoExternalResourceProvider;
+import 
org.apache.syncope.client.console.commons.IdRepoImplementationInfoProvider;
+import org.apache.syncope.client.console.commons.IdRepoPolicyTabProvider;
+import org.apache.syncope.client.console.commons.IdRepoStatusProvider;
+import 
org.apache.syncope.client.console.commons.IdRepoVirSchemaDetailsPanelProvider;
+import org.apache.syncope.client.console.commons.ImplementationInfoProvider;
+import org.apache.syncope.client.console.commons.PolicyTabProvider;
+import org.apache.syncope.client.console.commons.StatusProvider;
+import org.apache.syncope.client.console.commons.VirSchemaDetailsPanelProvider;
+import 
org.apache.syncope.client.console.init.ClassPathScanImplementationLookup;
+import org.apache.syncope.client.console.init.MIMETypesLoader;
+import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class SyncopeIdRepoConsoleContext {
+
+    @ConditionalOnMissingBean(name = "classPathScanImplementationLookup")
+    @Bean
+    public ClassPathScanImplementationLookup 
classPathScanImplementationLookup() {
+        ClassPathScanImplementationLookup lookup = new 
ClassPathScanImplementationLookup();
+        lookup.load();
+        return lookup;
+    }
+
+    @ConditionalOnMissingBean(name = "mimeTypesLoader")
+    @Bean
+    public MIMETypesLoader mimeTypesLoader() {
+        MIMETypesLoader mimeTypesLoader = new MIMETypesLoader();
+        mimeTypesLoader.load();
+        return mimeTypesLoader;
+    }
+
+    @ConditionalOnMissingBean(name = "resourceProvider")
+    @Bean
+    public ExternalResourceProvider resourceProvider() {
+        return new IdRepoExternalResourceProvider();
+    }
+
+    @ConditionalOnMissingBean(name = "anyWizardBuilderAdditionalSteps")
+    @Bean
+    public AnyWizardBuilderAdditionalSteps anyWizardBuilderAdditionalSteps() {
+        return new IdRepoAnyWizardBuilderAdditionalSteps();
+    }
+
+    @ConditionalOnMissingBean(name = "statusProvider")
+    @Bean
+    public StatusProvider statusProvider() {
+        return new IdRepoStatusProvider();
+    }
+
+    @ConditionalOnMissingBean(name = "virSchemaDetailsPanelProvider")
+    @Bean
+    public VirSchemaDetailsPanelProvider virSchemaDetailsPanelProvider() {
+        return new IdRepoVirSchemaDetailsPanelProvider();
+    }
+
+    @ConditionalOnMissingBean(name = 
"anyDirectoryPanelAditionalActionLinksProvider")
+    @Bean
+    public AnyDirectoryPanelAditionalActionLinksProvider 
anyDirectoryPanelAditionalActionLinksProvider() {
+        return new IdRepoAnyDirectoryPanelAditionalActionLinksProvider();
+    }
+
+    @ConditionalOnMissingBean(name = "implementationInfoProvider")
+    @Bean
+    public ImplementationInfoProvider implementationInfoProvider() {
+        return new IdRepoImplementationInfoProvider();
+    }
+
+    @ConditionalOnMissingBean(name = "policyTabProvider")
+    @Bean
+    public PolicyTabProvider policyTabProvider() {
+        return new IdRepoPolicyTabProvider();
+    }
+}
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeWebApplication.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeWebApplication.java
index d291d1c..0b451fa 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeWebApplication.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/SyncopeWebApplication.java
@@ -118,18 +118,25 @@ public class SyncopeWebApplication extends 
WicketBootSecuredWebApplication {
 
     private Integer queueCapacity;
 
+    @Autowired
     private ExternalResourceProvider resourceProvider;
 
+    @Autowired
     private AnyWizardBuilderAdditionalSteps anyWizardBuilderAdditionalSteps;
 
+    @Autowired
     private StatusProvider statusProvider;
 
+    @Autowired
     private VirSchemaDetailsPanelProvider virSchemaDetailsPanelProvider;
 
+    @Autowired
     private AnyDirectoryPanelAditionalActionLinksProvider 
anyDirectoryPanelAditionalActionLinksProvider;
 
+    @Autowired
     private ImplementationInfoProvider implementationInfoProvider;
 
+    @Autowired
     private PolicyTabProvider policyTabProvider;
 
     private Map<String, Class<? extends BasePage>> pageClasses;
@@ -209,14 +216,6 @@ public class SyncopeWebApplication extends 
WicketBootSecuredWebApplication {
 
         getSecuritySettings().setAuthorizationStrategy(new 
MetaDataRoleAuthorizationStrategy(this));
 
-        resourceProvider = lookup.getResourceProvider();
-        anyWizardBuilderAdditionalSteps = 
lookup.getAnyWizardBuilderAdditionalSteps();
-        statusProvider = lookup.getStatusProvider();
-        virSchemaDetailsPanelProvider = 
lookup.getVirSchemaDetailsPanelProvider();
-        anyDirectoryPanelAditionalActionLinksProvider = 
lookup.getAnyDirectoryPanelAditionalActionLinksProvider();
-        implementationInfoProvider = lookup.getImplementationInfoProvider();
-        policyTabProvider = lookup.getPolicyTabProvider();
-
         lookup.getPageClasses().
                 forEach(cls -> 
MetaDataRoleAuthorizationStrategy.authorize(cls, Constants.ROLE_AUTHENTICATED));
 
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoImplementationInfoProvider.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoImplementationInfoProvider.java
index 2ed938d..e61e195 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoImplementationInfoProvider.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/commons/IdRepoImplementationInfoProvider.java
@@ -33,16 +33,14 @@ import 
org.apache.syncope.common.lib.types.IdRepoImplementationType;
 import org.apache.syncope.common.lib.types.ImplementationEngine;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.LoadableDetachableModel;
+import org.springframework.beans.factory.annotation.Autowired;
 
 public class IdRepoImplementationInfoProvider implements 
ImplementationInfoProvider {
 
     private static final long serialVersionUID = -6620368595630782392L;
 
-    protected final ClassPathScanImplementationLookup lookup;
-
-    public IdRepoImplementationInfoProvider(final 
ClassPathScanImplementationLookup lookup) {
-        this.lookup = lookup;
-    }
+    @Autowired
+    protected ClassPathScanImplementationLookup lookup;
 
     @Override
     public ViewMode getViewMode(final ImplementationTO implementation) {
@@ -62,7 +60,7 @@ public class IdRepoImplementationInfoProvider implements 
ImplementationInfoProvi
             Optional<JavaImplInfo> javaClasses = 
SyncopeConsoleSession.get().getPlatformInfo().
                     getJavaImplInfo(implementation.getType());
             classes = javaClasses.map(javaImplInfo -> new 
ArrayList<>(javaImplInfo.getClasses()))
-                .orElseGet(ArrayList::new);
+                    .orElseGet(ArrayList::new);
         } else if (viewMode == ViewMode.JSON_BODY) {
             switch (implementation.getType()) {
                 case IdRepoImplementationType.REPORTLET:
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java
index f243261..332948c 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java
@@ -40,11 +40,6 @@ import org.apache.syncope.client.console.annotations.IdMPage;
 import org.apache.syncope.client.console.annotations.Resource;
 import 
org.apache.syncope.client.console.commons.AnyDirectoryPanelAditionalActionLinksProvider;
 import 
org.apache.syncope.client.console.commons.AnyWizardBuilderAdditionalSteps;
-import 
org.apache.syncope.client.console.commons.IdRepoAnyDirectoryPanelAditionalActionLinksProvider;
-import 
org.apache.syncope.client.console.commons.IdRepoAnyWizardBuilderAdditionalSteps;
-import 
org.apache.syncope.client.console.commons.IdRepoExternalResourceProvider;
-import org.apache.syncope.client.console.commons.IdRepoStatusProvider;
-import 
org.apache.syncope.client.console.commons.IdRepoVirSchemaDetailsPanelProvider;
 import org.apache.syncope.client.console.pages.BasePage;
 import org.apache.syncope.client.ui.commons.panels.BaseSSOLoginFormPanel;
 import 
org.apache.syncope.client.ui.commons.markup.html.form.preview.AbstractBinaryPreviewer;
@@ -65,8 +60,6 @@ import 
org.springframework.context.annotation.ClassPathScanningCandidateComponen
 import org.springframework.core.type.filter.AssignableTypeFilter;
 import org.springframework.util.ClassUtils;
 import org.apache.syncope.client.console.commons.ExternalResourceProvider;
-import 
org.apache.syncope.client.console.commons.IdRepoImplementationInfoProvider;
-import org.apache.syncope.client.console.commons.IdRepoPolicyTabProvider;
 import org.apache.syncope.client.console.commons.ImplementationInfoProvider;
 import org.apache.syncope.client.console.commons.PolicyTabProvider;
 import org.apache.syncope.client.console.commons.StatusProvider;
@@ -105,22 +98,6 @@ public class ClassPathScanImplementationLookup {
         });
     }
 
-    private ExternalResourceProvider resourceProvider = new 
IdRepoExternalResourceProvider();
-
-    private AnyWizardBuilderAdditionalSteps anyWizardBuilderAdditionalSteps =
-            new IdRepoAnyWizardBuilderAdditionalSteps();
-
-    private StatusProvider statusProvider = new IdRepoStatusProvider();
-
-    private VirSchemaDetailsPanelProvider virSchemaDetailsPanelProvider = new 
IdRepoVirSchemaDetailsPanelProvider();
-
-    private AnyDirectoryPanelAditionalActionLinksProvider 
anyDirectoryPanelAditionalActionLinksProvider =
-            new IdRepoAnyDirectoryPanelAditionalActionLinksProvider();
-
-    private ImplementationInfoProvider implementationInfoProvider = new 
IdRepoImplementationInfoProvider(this);
-
-    private PolicyTabProvider policyTabProvider = new 
IdRepoPolicyTabProvider();
-
     private List<Class<? extends BasePage>> pages;
 
     private List<Class<? extends AbstractBinaryPreviewer>> previewers;
@@ -199,7 +176,7 @@ public class ClassPathScanImplementationLookup {
         scanner.findCandidateComponents(getBasePackage()).forEach(bd -> {
             try {
                 Class<?> clazz = ClassUtils.resolveClassName(
-                    Objects.requireNonNull(bd.getBeanClassName()), 
ClassUtils.getDefaultClassLoader());
+                        Objects.requireNonNull(bd.getBeanClassName()), 
ClassUtils.getDefaultClassLoader());
                 boolean isAbstractClazz = 
Modifier.isAbstract(clazz.getModifiers());
                 if (!isAbstractClazz) {
                     if (BaseExtPage.class.isAssignableFrom(clazz)) {
@@ -252,61 +229,6 @@ public class ClassPathScanImplementationLookup {
                             LOG.error("Could not find annotation {} in {}, 
ignoring",
                                     Resource.class.getName(), clazz.getName());
                         }
-                    } else if 
(ExternalResourceProvider.class.isAssignableFrom(clazz)) {
-                        if (!clazz.equals(IdRepoExternalResourceProvider.class)
-                                && !clazz.isInstance(resourceProvider)) {
-
-                            resourceProvider = (ExternalResourceProvider) 
clazz.
-                                    getConstructor().newInstance();
-                        }
-                    } else if 
(AnyWizardBuilderAdditionalSteps.class.isAssignableFrom(clazz)) {
-                        if 
(!clazz.equals(IdRepoAnyWizardBuilderAdditionalSteps.class)
-                                && 
!clazz.isInstance(anyWizardBuilderAdditionalSteps)) {
-
-                            anyWizardBuilderAdditionalSteps = 
(AnyWizardBuilderAdditionalSteps) clazz.
-                                    getConstructor().newInstance();
-                        }
-                    } else if (StatusProvider.class.isAssignableFrom(clazz)) {
-                        if (!clazz.equals(IdRepoStatusProvider.class)
-                                && !clazz.isInstance(statusProvider)) {
-
-                            statusProvider = (StatusProvider) clazz.
-                                    getConstructor().newInstance();
-                        }
-                    } else if 
(VirSchemaDetailsPanelProvider.class.isAssignableFrom(clazz)) {
-                        if 
(!clazz.equals(IdRepoVirSchemaDetailsPanelProvider.class)
-                                && 
!clazz.isInstance(virSchemaDetailsPanelProvider)) {
-
-                            virSchemaDetailsPanelProvider = 
(VirSchemaDetailsPanelProvider) clazz.
-                                    getConstructor().newInstance();
-                        }
-                    } else if 
(AnyDirectoryPanelAditionalActionLinksProvider.class.isAssignableFrom(clazz)) {
-                        if 
(!clazz.equals(IdRepoAnyDirectoryPanelAditionalActionLinksProvider.class)
-                                && 
!clazz.isInstance(anyDirectoryPanelAditionalActionLinksProvider)) {
-
-                            anyDirectoryPanelAditionalActionLinksProvider =
-                                    
(AnyDirectoryPanelAditionalActionLinksProvider) clazz.
-                                            getConstructor().newInstance();
-
-                        }
-                    } else if 
(ImplementationInfoProvider.class.isAssignableFrom(clazz)) {
-                        if 
(!clazz.equals(IdRepoImplementationInfoProvider.class)
-                                && 
!clazz.isInstance(implementationInfoProvider)) {
-
-                            implementationInfoProvider =
-                                    (ImplementationInfoProvider) clazz.
-                                            
getConstructor(ClassPathScanImplementationLookup.class).newInstance(this);
-
-                        }
-                    } else if 
(PolicyTabProvider.class.isAssignableFrom(clazz)) {
-                        if (!clazz.equals(IdRepoPolicyTabProvider.class)
-                                && !clazz.isInstance(policyTabProvider)) {
-
-                            policyTabProvider =
-                                    (PolicyTabProvider) clazz.
-                                            getConstructor().newInstance();
-
-                        }
                     }
                 }
             } catch (Throwable t) {
@@ -362,21 +284,6 @@ public class ClassPathScanImplementationLookup {
         LOG.debug("Pull Correlation Rule configurations found: {}", 
pullCorrelationRuleConfs);
         LOG.debug("Push Correlation Rule configurations found: {}", 
pushCorrelationRuleConfs);
         LOG.debug("Wicket Resources found: {}", resources);
-
-        LOG.debug("{}: {}", ExternalResourceProvider.class.getSimpleName(),
-                resourceProvider.getClass().getSimpleName());
-        LOG.debug("{}: {}", 
AnyWizardBuilderAdditionalSteps.class.getSimpleName(),
-                anyWizardBuilderAdditionalSteps.getClass().getSimpleName());
-        LOG.debug("{}: {}", StatusProvider.class.getSimpleName(),
-                statusProvider.getClass().getSimpleName());
-        LOG.debug("{}: {}", 
VirSchemaDetailsPanelProvider.class.getSimpleName(),
-                virSchemaDetailsPanelProvider.getClass().getSimpleName());
-        LOG.debug("{}: {}", 
AnyDirectoryPanelAditionalActionLinksProvider.class.getSimpleName(),
-                
anyDirectoryPanelAditionalActionLinksProvider.getClass().getSimpleName());
-        LOG.debug("{}: {}", ImplementationInfoProvider.class.getSimpleName(),
-                implementationInfoProvider.getClass().getSimpleName());
-        LOG.debug("{}: {}", PolicyTabProvider.class.getSimpleName(),
-                policyTabProvider.getClass().getSimpleName());
     }
 
     public Class<? extends AbstractBinaryPreviewer> getPreviewerClass(final 
String mimeType) {
@@ -444,32 +351,4 @@ public class ClassPathScanImplementationLookup {
     public List<Class<? extends AbstractResource>> getResources() {
         return resources;
     }
-
-    public ExternalResourceProvider getResourceProvider() {
-        return resourceProvider;
-    }
-
-    public AnyWizardBuilderAdditionalSteps 
getAnyWizardBuilderAdditionalSteps() {
-        return anyWizardBuilderAdditionalSteps;
-    }
-
-    public StatusProvider getStatusProvider() {
-        return statusProvider;
-    }
-
-    public VirSchemaDetailsPanelProvider getVirSchemaDetailsPanelProvider() {
-        return virSchemaDetailsPanelProvider;
-    }
-
-    public AnyDirectoryPanelAditionalActionLinksProvider 
getAnyDirectoryPanelAditionalActionLinksProvider() {
-        return anyDirectoryPanelAditionalActionLinksProvider;
-    }
-
-    public ImplementationInfoProvider getImplementationInfoProvider() {
-        return implementationInfoProvider;
-    }
-
-    public PolicyTabProvider getPolicyTabProvider() {
-        return policyTabProvider;
-    }
 }
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
index 3facd54..9009d37 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/pages/Login.java
@@ -80,8 +80,9 @@ public class Login extends BaseLogin {
     }
 
     @Override
-    protected void authenticate(final String username, final String password, 
final AjaxRequestTarget target) throws
-            AccessControlException {
+    protected void authenticate(final String username, final String password, 
final AjaxRequestTarget target)
+            throws AccessControlException {
+
         if (SyncopeWebApplication.get().getAnonymousUser().equals(username)) {
             throw new AccessControlException("Illegal username");
         }
diff --git 
a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyPropagationActions.groovy
 
b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyPropagationActions.groovy
index 6f58ce0..f0156eb 100644
--- 
a/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyPropagationActions.groovy
+++ 
b/client/idrepo/console/src/main/resources/org/apache/syncope/client/console/implementations/MyPropagationActions.groovy
@@ -18,7 +18,6 @@
  * under the License.
  */
 import groovy.transform.CompileStatic
-import java.util.Collections
 import java.util.Set
 import org.apache.syncope.core.persistence.api.entity.resource.OrgUnit
 import org.apache.syncope.core.persistence.api.entity.resource.Provision
@@ -32,12 +31,12 @@ class MyPropagationActions implements PropagationActions {
   
   @Override
   Set<String> moreAttrsToGet(PropagationTask task, OrgUnit orgUnit) {
-    return Collections.emptySet();
+    return Set.of();
   }
 
   @Override
   Set<String> moreAttrsToGet(PropagationTask task, Provision provision) {
-    return Collections.emptySet();
+    return Set.of();
   }
 
   @Override
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 3d9fdb6..973c3c0 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
@@ -25,10 +25,10 @@ import 
com.giffing.wicket.spring.boot.starter.configuration.extensions.core.sett
 import 
com.giffing.wicket.spring.boot.starter.configuration.extensions.external.spring.boot.actuator.WicketEndpointRepositoryDefault;
 
 import java.util.List;
+import org.apache.syncope.client.console.SyncopeIdMConsoleContext;
+import org.apache.syncope.client.console.SyncopeIdRepoConsoleContext;
 import org.apache.syncope.client.console.SyncopeWebApplication;
 import org.apache.syncope.client.console.commons.PreviewUtils;
-import 
org.apache.syncope.client.console.init.ClassPathScanImplementationLookup;
-import org.apache.syncope.client.console.init.MIMETypesLoader;
 import org.apache.syncope.client.console.pages.Login;
 import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
 import 
org.apache.syncope.common.keymaster.client.self.SelfKeymasterClientContext;
@@ -72,20 +72,6 @@ public abstract class AbstractConsoleITCase extends 
AbstractUITCase {
         }
 
         @Bean
-        public ClassPathScanImplementationLookup 
classPathScanImplementationLookup() {
-            ClassPathScanImplementationLookup lookup = new 
ClassPathScanImplementationLookup();
-            lookup.load();
-            return lookup;
-        }
-
-        @Bean
-        public MIMETypesLoader mimeTypesLoader() {
-            MIMETypesLoader mimeTypesLoader = new MIMETypesLoader();
-            mimeTypesLoader.load();
-            return mimeTypesLoader;
-        }
-
-        @Bean
         public PreviewUtils previewUtils() {
             return new PreviewUtils();
         }
@@ -98,6 +84,8 @@ public abstract class AbstractConsoleITCase extends 
AbstractUITCase {
                 AnnotationConfigApplicationContext ctx = new 
AnnotationConfigApplicationContext();
                 ctx.register(SyncopeConsoleWebApplicationTestConfig.class);
                 ctx.register(SyncopeWebApplication.class);
+                ctx.register(SyncopeIdRepoConsoleContext.class);
+                ctx.register(SyncopeIdMConsoleContext.class);
                 ctx.refresh();
 
                 UTILITY_UI = new UtilityUIT(new 
WicketTester(ctx.getBean(SyncopeWebApplication.class)));

Reply via email to