[SYNCOPE-156] Removing (most of) Spring from console
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/13f96e06 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/13f96e06 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/13f96e06 Branch: refs/heads/master Commit: 13f96e06804f0574a72cf2d496cb2ac62f927847 Parents: 07b519b Author: Francesco Chicchiriccò <[email protected]> Authored: Tue Oct 6 17:50:44 2015 +0200 Committer: Francesco Chicchiriccò <[email protected]> Committed: Tue Oct 6 17:50:44 2015 +0200 ---------------------------------------------------------------------- client/console/pom.xml | 8 +- .../client/console/PreferenceManager.java | 10 +- .../console/SyncopeConsoleApplication.java | 127 +++++++++++++++---- .../client/console/SyncopeConsoleSession.java | 47 ++----- .../client/console/commons/PreviewUtils.java | 44 +++++-- .../init/ClassPathScanImplementationLookup.java | 109 ++++++++++++++++ .../client/console/init/ConsoleInitializer.java | 52 +++----- .../init/ImplementationClassNamesLoader.java | 105 --------------- .../client/console/init/MIMETypesLoader.java | 15 +-- .../console/init/SyncopeConsoleLoader.java | 35 ----- .../client/console/pages/AbstractBasePage.java | 41 ------ .../syncope/client/console/pages/BasePage.java | 7 +- .../pages/DisplayAttributesModalPage.java | 4 +- .../syncope/client/console/pages/Login.java | 6 +- .../console/pages/MustChangePassword.java | 4 +- .../console/pages/ProvisioningModalPage.java | 9 ++ .../syncope/client/console/pages/Realms.java | 4 +- .../client/console/pages/ResultStatusModal.java | 6 +- .../client/console/pages/StatusModalPage.java | 19 ++- .../syncope/client/console/pages/Workflow.java | 11 +- .../console/pages/XMLEditorPopupPage.java | 4 +- .../console/panels/AbstractModalPanel.java | 41 ------ .../panels/AbstractSearchResultPanel.java | 7 +- .../console/panels/AnySearchResultPanel.java | 9 +- .../client/console/panels/ConnectorModal.java | 3 + .../client/console/panels/GroupModalPanel.java | 4 + .../syncope/client/console/panels/Realm.java | 15 +-- .../client/console/panels/RealmModalPanel.java | 9 +- .../console/panels/RealmSidebarPanel.java | 4 +- .../console/panels/ResourceConnConfPanel.java | 4 +- .../console/panels/ResourceMappingPanel.java | 7 +- .../client/console/panels/ResourceModal.java | 14 +- .../console/panels/ResourceSecurityPanel.java | 4 +- .../resources/WorkflowDefGETResource.java | 7 +- .../resources/WorkflowDefPUTResource.java | 6 +- .../client/console/rest/BaseRestClient.java | 3 +- .../client/console/topology/Topology.java | 14 +- .../console/topology/TopologyNodePanel.java | 20 ++- .../markup/html/form/BinaryFieldPanel.java | 15 +-- .../html/list/ConnConfPropertyListView.java | 9 +- .../main/resources/META-INF/web-fragment.xml | 16 +-- .../src/main/resources/console.properties | 9 ++ .../src/main/resources/consoleContext.xml | 71 ----------- .../java/data/UserDataBinderImpl.java | 1 - .../console/pages/CamelRouteModalPage.java | 6 +- .../client/console/panels/CamelRoutePanel.java | 4 +- fit/console-reference/pom.xml | 2 +- .../src/main/resources/console.properties | 9 ++ pom.xml | 13 +- 49 files changed, 420 insertions(+), 573 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/pom.xml ---------------------------------------------------------------------- diff --git a/client/console/pom.xml b/client/console/pom.xml index fb78280..24f6288 100644 --- a/client/console/pom.xml +++ b/client/console/pom.xml @@ -46,9 +46,9 @@ under the License. <dependency> <groupId>org.springframework</groupId> - <artifactId>spring-web</artifactId> + <artifactId>spring-context</artifactId> </dependency> - + <dependency> <groupId>org.apache.wicket</groupId> <artifactId>wicket</artifactId> @@ -64,10 +64,6 @@ under the License. </dependency> <dependency> <groupId>org.apache.wicket</groupId> - <artifactId>wicket-spring</artifactId> - </dependency> - <dependency> - <groupId>org.apache.wicket</groupId> <artifactId>wicket-auth-roles</artifactId> </dependency> <dependency> http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/PreferenceManager.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/PreferenceManager.java b/client/console/src/main/java/org/apache/syncope/client/console/PreferenceManager.java index 381fc65..c7baef2 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/PreferenceManager.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/PreferenceManager.java @@ -27,6 +27,7 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.apache.wicket.request.Request; import org.apache.wicket.request.Response; @@ -35,7 +36,6 @@ import org.apache.wicket.util.cookies.CookieUtils; import org.apache.wicket.util.crypt.Base64; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.util.StringUtils; public class PreferenceManager { @@ -69,7 +69,7 @@ public class PreferenceManager { private Map<String, String> getPrefs(final String value) { Map<String, String> prefs; try { - if (StringUtils.hasText(value)) { + if (StringUtils.isNotBlank(value)) { prefs = mapper.readValue(value, MAP_TYPE_REF); } else { throw new Exception("Invalid cookie value '" + value + "'"); @@ -117,7 +117,7 @@ public class PreferenceManager { final String compound = get(request, key); - if (StringUtils.hasText(compound)) { + if (StringUtils.isNotBlank(compound)) { String[] items = compound.split(";"); result.addAll(Arrays.asList(items)); } @@ -135,7 +135,7 @@ public class PreferenceManager { // after retrieved previous setting in order to overwrite the key ... for (Map.Entry<String, List<String>> entry : prefs.entrySet()) { - current.put(entry.getKey(), StringUtils.collectionToDelimitedString(entry.getValue(), ";")); + current.put(entry.getKey(), StringUtils.join(entry.getValue(), ";")); } try { @@ -164,7 +164,7 @@ public class PreferenceManager { } public void setList(final Request request, final Response response, final String key, final List<String> values) { - set(request, response, key, StringUtils.collectionToDelimitedString(values, ";")); + set(request, response, key, StringUtils.join(values, ";")); } public void setList(final Request request, final Response response, final Map<String, List<String>> prefs) { http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java index e9f35ec..ec65024 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleApplication.java @@ -22,11 +22,16 @@ import de.agilecoders.wicket.core.Bootstrap; import de.agilecoders.wicket.core.settings.BootstrapSettings; import de.agilecoders.wicket.core.settings.IBootstrapSettings; import de.agilecoders.wicket.core.settings.SingleThemeProvider; +import java.io.File; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Locale; -import org.apache.commons.lang3.StringUtils; +import java.util.Properties; +import javax.ws.rs.core.MediaType; +import org.apache.commons.io.FileUtils; +import org.apache.syncope.client.console.init.ClassPathScanImplementationLookup; +import org.apache.syncope.client.console.init.ConsoleInitializer; import org.apache.syncope.client.console.pages.BasePage; import org.apache.syncope.client.console.pages.MustChangePassword; import org.apache.syncope.client.console.pages.Dashboard; @@ -35,8 +40,10 @@ import org.apache.syncope.client.console.resources.FilesystemResource; import org.apache.syncope.client.console.resources.WorkflowDefGETResource; import org.apache.syncope.client.console.resources.WorkflowDefPUTResource; import org.apache.syncope.client.console.themes.AdminLTE; +import org.apache.syncope.client.lib.SyncopeClientFactoryBean; import org.apache.syncope.common.lib.types.Entitlement; import org.apache.wicket.Page; +import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession; import org.apache.wicket.authroles.authentication.AuthenticatedWebApplication; import org.apache.wicket.authroles.authentication.AuthenticatedWebSession; @@ -46,19 +53,16 @@ import org.apache.wicket.protocol.http.WebApplication; import org.apache.wicket.request.resource.IResource; import org.apache.wicket.request.resource.ResourceReference; import org.apache.wicket.resource.DynamicJQueryResourceReference; -import org.apache.wicket.spring.injection.annot.SpringComponentInjector; import org.slf4j.Logger; 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.util.ClassUtils; -import org.springframework.web.context.support.WebApplicationContextUtils; +import org.springframework.util.Assert; public class SyncopeConsoleApplication extends AuthenticatedWebApplication { private static final Logger LOG = LoggerFactory.getLogger(SyncopeConsoleApplication.class); + private static final String CONSOLE_PROPERTIES = "console.properties"; + public static final List<Locale> SUPPORTED_LOCALES = Collections.unmodifiableList(Arrays.asList( new Locale[] { Locale.ENGLISH, Locale.ITALIAN, new Locale("pt", "BR") @@ -66,10 +70,65 @@ public class SyncopeConsoleApplication extends AuthenticatedWebApplication { private static final String ACTIVITI_MODELER_CONTEXT = "activiti-modeler"; + public static SyncopeConsoleApplication get() { + return (SyncopeConsoleApplication) WebApplication.get(); + } + + private String version; + + private String site; + + private String license; + + private String anonymousUser; + + private String anonymousKey; + + private String activitiModelerDirectory; + + private SyncopeClientFactoryBean clientFactory; + @Override protected void init() { super.init(); + // read console.properties + Properties props = new Properties(); + try { + props.load(getClass().getResourceAsStream("/" + CONSOLE_PROPERTIES)); + File consoleDir = new File(props.getProperty("console.directory")); + if (consoleDir.exists() && consoleDir.canRead() && consoleDir.isDirectory()) { + File consoleDirProps = FileUtils.getFile(consoleDir, CONSOLE_PROPERTIES); + if (consoleDirProps.exists() && consoleDirProps.canRead() && consoleDirProps.isFile()) { + props.clear(); + props.load(FileUtils.openInputStream(consoleDir)); + } + } + } catch (Exception e) { + throw new WicketRuntimeException("Could not read " + CONSOLE_PROPERTIES, e); + } + version = props.getProperty("version"); + Assert.notNull(version, "<version> not set"); + site = props.getProperty("site"); + Assert.notNull(site, "<site> not set"); + license = props.getProperty("license"); + Assert.notNull(license, "<license> not set"); + anonymousUser = props.getProperty("anonymousUser"); + Assert.notNull(anonymousUser, "<anonymousUser> not set"); + anonymousKey = props.getProperty("anonymousKey"); + Assert.notNull(anonymousKey, "<anonymousKey> not set"); + + String scheme = props.getProperty("scheme"); + Assert.notNull(scheme, "<scheme> not set"); + String host = props.getProperty("host"); + Assert.notNull(host, "<host> not set"); + String port = props.getProperty("port"); + Assert.notNull(port, "<port> not set"); + String rootPath = props.getProperty("rootPath"); + Assert.notNull(rootPath, "<rootPath> not set"); + + clientFactory = new SyncopeClientFactoryBean().setAddress(scheme + "://" + host + ":" + port + "/" + rootPath); + // Application settings IBootstrapSettings settings = new BootstrapSettings(); @@ -81,24 +140,16 @@ public class SyncopeConsoleApplication extends AuthenticatedWebApplication { getResourceSettings().setUseMinifiedResources(true); - getComponentInstantiationListeners().add(new SpringComponentInjector(this)); getResourceSettings().setThrowExceptionOnMissingResource(true); getJavaScriptLibrarySettings().setJQueryReference(new DynamicJQueryResourceReference()); getSecuritySettings().setAuthorizationStrategy(new MetaDataRoleAuthorizationStrategy(this)); - ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false); - scanner.addIncludeFilter(new AssignableTypeFilter(BasePage.class)); - - for (BeanDefinition bd : scanner.findCandidateComponents(StringUtils.EMPTY)) { - try { - @SuppressWarnings("unchecked") - Class<? extends BasePage> clazz = (Class<? extends BasePage>) ClassUtils.resolveClassName( - bd.getBeanClassName(), ClassUtils.getDefaultClassLoader()); - MetaDataRoleAuthorizationStrategy.authorize(clazz, SyncopeConsoleSession.AUTHENTICATED); - } catch (Throwable t) { - LOG.warn("Could not inspect class {}", bd.getBeanClassName(), t); - } + + ClassPathScanImplementationLookup lookup = (ClassPathScanImplementationLookup) getServletContext(). + getAttribute(ConsoleInitializer.CLASSPATH_LOOKUP); + for (Class<? extends BasePage> clazz : lookup.getPageClasses()) { + MetaDataRoleAuthorizationStrategy.authorize(clazz, SyncopeConsoleSession.AUTHENTICATED); } getMarkupSettings().setStripWicketTags(true); @@ -108,8 +159,8 @@ public class SyncopeConsoleApplication extends AuthenticatedWebApplication { mountPage("/login", getSignInPageClass()); - final String activitiModelerDirectory = WebApplicationContextUtils.getWebApplicationContext( - WebApplication.get().getServletContext()).getBean("activitiModelerDirectory", String.class); + activitiModelerDirectory = props.getProperty("activitiModelerDirectory"); + Assert.notNull(activitiModelerDirectory, "<activitiModelerDirectory> not set"); mountResource("/" + ACTIVITI_MODELER_CONTEXT, new ResourceReference(ACTIVITI_MODELER_CONTEXT) { private static final long serialVersionUID = -128426276529456602L; @@ -157,4 +208,36 @@ public class SyncopeConsoleApplication extends AuthenticatedWebApplication { ? MustChangePassword.class : Dashboard.class; } + + public String getVersion() { + return version; + } + + public String getSite() { + return site; + } + + public String getLicense() { + return license; + } + + public String getAnonymousUser() { + return anonymousUser; + } + + public String getAnonymousKey() { + return anonymousKey; + } + + public String getActivitiModelerDirectory() { + return activitiModelerDirectory; + } + + public SyncopeClientFactoryBean getClientFactory() { + return clientFactory; + } + + public MediaType getMediaType() { + return clientFactory.getContentType().getMediaType(); + } } http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java index f48611f..667b525 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/SyncopeConsoleSession.java @@ -44,12 +44,9 @@ import org.apache.syncope.common.rest.api.service.SyncopeService; import org.apache.wicket.Session; import org.apache.wicket.authroles.authentication.AuthenticatedWebSession; import org.apache.wicket.authroles.authorization.strategies.role.Roles; -import org.apache.wicket.protocol.http.WebApplication; import org.apache.wicket.request.Request; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.context.ApplicationContext; -import org.springframework.web.context.support.WebApplicationContextUtils; public class SyncopeConsoleSession extends AuthenticatedWebSession { @@ -59,16 +56,12 @@ public class SyncopeConsoleSession extends AuthenticatedWebSession { private static final Logger LOG = LoggerFactory.getLogger(SyncopeConsoleSession.class); - private final String version; - private final SyncopeTO syncopeTO; private final List<String> domains; private String domain; - private final SyncopeClientFactoryBean clientFactory; - private final Map<Class<?>, Object> services = Collections.synchronizedMap(new HashMap<Class<?>, Object>()); private SyncopeClient client; @@ -90,17 +83,10 @@ public class SyncopeConsoleSession extends AuthenticatedWebSession { public SyncopeConsoleSession(final Request request) { super(request); - ApplicationContext ctx = WebApplicationContextUtils. - getWebApplicationContext(WebApplication.get().getServletContext()); - - clientFactory = ctx.getBean(SyncopeClientFactoryBean.class). - setContentType(SyncopeClientFactoryBean.ContentType.JSON); - String anonymousUser = ctx.getBean("anonymousUser", String.class); - String anonymousKey = ctx.getBean("anonymousKey", String.class); + SyncopeClient anonymousClient = SyncopeConsoleApplication.get().getClientFactory().create( + SyncopeConsoleApplication.get().getAnonymousUser(), + SyncopeConsoleApplication.get().getAnonymousKey()); - version = ctx.getBean("version", String.class); - - SyncopeClient anonymousClient = clientFactory.create(anonymousUser, anonymousKey); syncopeTO = anonymousClient.getService(SyncopeService.class).info(); domains = new ArrayList<>(); domains.add(SyncopeConstants.MASTER_DOMAIN); @@ -114,10 +100,6 @@ public class SyncopeConsoleSession extends AuthenticatedWebSession { }, domains); } - public String getVersion() { - return version; - } - public SyncopeTO getSyncopeTO() { return syncopeTO; } @@ -139,7 +121,8 @@ public class SyncopeConsoleSession extends AuthenticatedWebSession { boolean authenticated = false; try { - client = clientFactory.setDomain(getDomain()).create(username, password); + client = SyncopeConsoleApplication.get().getClientFactory(). + setDomain(getDomain()).create(username, password); Pair<Map<String, Set<String>>, UserTO> self = client.self(); auth = self.getKey(); @@ -201,12 +184,15 @@ public class SyncopeConsoleSession extends AuthenticatedWebSession { public <T> T getService(final MediaType mediaType, final Class<T> serviceClass) { T service; - synchronized (clientFactory) { - SyncopeClientFactoryBean.ContentType preType = clientFactory.getContentType(); + synchronized (SyncopeConsoleApplication.get().getClientFactory()) { + SyncopeClientFactoryBean.ContentType preType = + SyncopeConsoleApplication.get().getClientFactory().getContentType(); - clientFactory.setContentType(SyncopeClientFactoryBean.ContentType.fromString(mediaType.toString())); - service = clientFactory.create(username, password).getService(serviceClass); - clientFactory.setContentType(preType); + SyncopeConsoleApplication.get().getClientFactory(). + setContentType(SyncopeClientFactoryBean.ContentType.fromString(mediaType.toString())); + service = SyncopeConsoleApplication.get().getClientFactory(). + create(username, password).getService(serviceClass); + SyncopeConsoleApplication.get().getClientFactory().setContentType(preType); } return service; @@ -218,12 +204,7 @@ public class SyncopeConsoleSession extends AuthenticatedWebSession { } public DateFormat getDateFormat() { - final Locale locale = getLocale() == null ? Locale.ENGLISH : getLocale(); - + Locale locale = getLocale() == null ? Locale.ENGLISH : getLocale(); return DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale); } - - public MediaType getMediaType() { - return clientFactory.getContentType().getMediaType(); - } } http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/commons/PreviewUtils.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/commons/PreviewUtils.java b/client/console/src/main/java/org/apache/syncope/client/console/commons/PreviewUtils.java index 12c93d4..e88fcb3 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/commons/PreviewUtils.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/commons/PreviewUtils.java @@ -18,31 +18,49 @@ */ package org.apache.syncope.client.console.commons; +import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import org.apache.commons.lang3.StringUtils; -import org.apache.syncope.client.console.init.ImplementationClassNamesLoader; +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.wicket.markup.html.form.preview.AbstractBinaryPreviewer; import org.apache.wicket.Component; import org.apache.wicket.util.crypt.Base64; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.ClassUtils; +import org.springframework.util.Assert; [email protected] -public class PreviewUtils { +public final class PreviewUtils { - @Autowired - private ImplementationClassNamesLoader implementationClassNamesLoader; + public static PreviewUtils getInstance() { + return new PreviewUtils(); + } + + private static <T> Constructor<T> getConstructorIfAvailable(final Class<T> clazz, final Class<?>... paramTypes) { + Assert.notNull(clazz, "Class must not be null"); + try { + return clazz.getConstructor(paramTypes); + } catch (NoSuchMethodException ex) { + return null; + } + } + + private final ClassPathScanImplementationLookup classPathScanImplementationLookup; + + private PreviewUtils() { + classPathScanImplementationLookup = (ClassPathScanImplementationLookup) SyncopeConsoleApplication.get(). + getServletContext().getAttribute(ConsoleInitializer.CLASSPATH_LOOKUP); + } public Component getPreviewer(final String mimeType, final String file) throws InstantiationException, IllegalAccessException, InvocationTargetException { - final Class<? extends AbstractBinaryPreviewer> previewer = StringUtils.isBlank(file) + Class<? extends AbstractBinaryPreviewer> previewer = StringUtils.isBlank(file) ? null - : implementationClassNamesLoader.getPreviewerClass(mimeType); + : classPathScanImplementationLookup.getPreviewerClass(mimeType); return previewer == null ? null - : ClassUtils.getConstructorIfAvailable(previewer, String.class, String.class, byte[].class). + : getConstructorIfAvailable(previewer, String.class, String.class, byte[].class). newInstance(new Object[] { "previewer", mimeType, Base64.decodeBase64(file) }). preview(); } @@ -50,12 +68,12 @@ public class PreviewUtils { public Component getPreviewer(final String mimeType, final byte[] file) throws InstantiationException, IllegalAccessException, InvocationTargetException { - final Class<? extends AbstractBinaryPreviewer> previewer = - implementationClassNamesLoader.getPreviewerClass(mimeType); + Class<? extends AbstractBinaryPreviewer> previewer = classPathScanImplementationLookup.getPreviewerClass( + mimeType); return previewer == null ? null - : ClassUtils.getConstructorIfAvailable(previewer, String.class, String.class, byte[].class). + : getConstructorIfAvailable(previewer, String.class, String.class, byte[].class). newInstance(new Object[] { "previewer", mimeType, file }). preview(); } http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java b/client/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java new file mode 100644 index 0000000..3c28c04 --- /dev/null +++ b/client/console/src/main/java/org/apache/syncope/client/console/init/ClassPathScanImplementationLookup.java @@ -0,0 +1,109 @@ +/* + * 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.init; + +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.syncope.client.console.panels.AbstractExtensionPanel; +import org.apache.syncope.client.console.annotations.BinaryPreview; +import org.apache.syncope.client.console.pages.BasePage; +import org.apache.syncope.client.console.wicket.markup.html.form.preview.AbstractBinaryPreviewer; +import org.slf4j.Logger; +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.util.ClassUtils; + +public class ClassPathScanImplementationLookup { + + private static final Logger LOG = LoggerFactory.getLogger(ClassPathScanImplementationLookup.class); + + private List<Class<? extends BasePage>> pages; + + private List<Class<? extends AbstractBinaryPreviewer>> previewers; + + private List<Class<? extends AbstractExtensionPanel>> extPanels; + + @SuppressWarnings("unchecked") + public void load() { + pages = new ArrayList<>(); + previewers = new ArrayList<>(); + extPanels = new ArrayList<>(); + + ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false); + scanner.addIncludeFilter(new AssignableTypeFilter(BasePage.class)); + scanner.addIncludeFilter(new AssignableTypeFilter(AbstractBinaryPreviewer.class)); + scanner.addIncludeFilter(new AssignableTypeFilter(AbstractExtensionPanel.class)); + + for (BeanDefinition bd : scanner.findCandidateComponents(StringUtils.EMPTY)) { + try { + Class<?> clazz = ClassUtils.resolveClassName( + bd.getBeanClassName(), ClassUtils.getDefaultClassLoader()); + boolean isAbsractClazz = Modifier.isAbstract(clazz.getModifiers()); + + if (BasePage.class.isAssignableFrom(clazz) && !isAbsractClazz) { + pages.add((Class<? extends BasePage>) clazz); + } else if (AbstractBinaryPreviewer.class.isAssignableFrom(clazz) && !isAbsractClazz) { + previewers.add((Class<? extends AbstractBinaryPreviewer>) clazz); + } else if (AbstractExtensionPanel.class.isAssignableFrom(clazz) && !isAbsractClazz) { + extPanels.add((Class<? extends AbstractExtensionPanel>) clazz); + } + } catch (Throwable t) { + LOG.warn("Could not inspect class {}", bd.getBeanClassName(), t); + } + } + pages = Collections.unmodifiableList(pages); + previewers = Collections.unmodifiableList(previewers); + extPanels = Collections.unmodifiableList(extPanels); + + LOG.debug("Binary previewers found: {}", previewers); + LOG.debug("Extension panels found: {}", extPanels); + } + + public Class<? extends AbstractBinaryPreviewer> getPreviewerClass(final String mimeType) { + LOG.debug("Searching for previewer class for MIME type: {}", mimeType); + Class<? extends AbstractBinaryPreviewer> previewer = null; + for (Class<? extends AbstractBinaryPreviewer> candidate : previewers) { + LOG.debug("Evaluating previewer class {} for MIME type {}", candidate.getName(), mimeType); + if (ArrayUtils.contains(candidate.getAnnotation(BinaryPreview.class).mimeTypes(), mimeType)) { + LOG.debug("Found existing previewer for MIME type {}: {}", mimeType, candidate.getName()); + previewer = candidate; + } + } + return previewer; + } + + public List<Class<? extends BasePage>> getPageClasses() { + return pages; + } + + public List<Class<? extends AbstractBinaryPreviewer>> getPreviewerClasses() { + return previewers; + } + + public List<Class<? extends AbstractExtensionPanel>> getExtPanelClasses() { + return extPanels; + } + +} http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/init/ConsoleInitializer.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/init/ConsoleInitializer.java b/client/console/src/main/java/org/apache/syncope/client/console/init/ConsoleInitializer.java index 87fa6ad..6f42002 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/init/ConsoleInitializer.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/init/ConsoleInitializer.java @@ -18,54 +18,40 @@ */ package org.apache.syncope.client.console.init; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Map; +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; +import javax.servlet.annotation.WebListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.aop.support.AopUtils; -import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.BeanFactoryAware; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.support.DefaultListableBeanFactory; -import org.springframework.stereotype.Component; /** * Take care of all initializations needed by Syncope Console to run up and safe. */ -@Component -public class ConsoleInitializer implements InitializingBean, BeanFactoryAware { +@WebListener +public class ConsoleInitializer implements ServletContextListener { private static final Logger LOG = LoggerFactory.getLogger(ConsoleInitializer.class); - private DefaultListableBeanFactory beanFactory; + public static final String CLASSPATH_LOOKUP = "CLASSPATH_LOOKUP"; - @Override - public void setBeanFactory(final BeanFactory beanFactory) { - this.beanFactory = (DefaultListableBeanFactory) beanFactory; - } + public static final String MIMETYPES_LOADER = "MIMETYPES_LOADER"; @Override - public void afterPropertiesSet() { - Map<String, SyncopeConsoleLoader> loaderMap = beanFactory.getBeansOfType(SyncopeConsoleLoader.class); - - List<SyncopeConsoleLoader> loaders = new ArrayList<>(loaderMap.values()); - Collections.sort(loaders, new Comparator<SyncopeConsoleLoader>() { + public void contextInitialized(final ServletContextEvent sce) { + ClassPathScanImplementationLookup lookup = new ClassPathScanImplementationLookup(); + lookup.load(); + sce.getServletContext().setAttribute(CLASSPATH_LOOKUP, lookup); - @Override - public int compare(final SyncopeConsoleLoader o1, final SyncopeConsoleLoader o2) { - return o1.getPriority().compareTo(o2.getPriority()); - } - }); + MIMETypesLoader mimeTypes = new MIMETypesLoader(); + mimeTypes.load(); + sce.getServletContext().setAttribute(MIMETYPES_LOADER, mimeTypes); - LOG.debug("Starting initialization..."); - for (SyncopeConsoleLoader loader : loaders) { - LOG.debug("Invoking {} with priority {}", AopUtils.getTargetClass(loader).getName(), loader.getPriority()); - loader.load(); - } LOG.debug("Initialization completed"); } + @Override + public void contextDestroyed(final ServletContextEvent sce) { + // nothing to do + } + } http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/init/ImplementationClassNamesLoader.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/init/ImplementationClassNamesLoader.java b/client/console/src/main/java/org/apache/syncope/client/console/init/ImplementationClassNamesLoader.java deleted file mode 100644 index 00a9027..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/init/ImplementationClassNamesLoader.java +++ /dev/null @@ -1,105 +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.client.console.init; - -import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import org.apache.commons.lang3.ArrayUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.syncope.client.console.panels.AbstractExtensionPanel; -import org.apache.syncope.client.console.annotations.BinaryPreview; -import org.apache.syncope.client.console.wicket.markup.html.form.preview.AbstractBinaryPreviewer; -import org.slf4j.Logger; -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; - -@Component -public class ImplementationClassNamesLoader implements SyncopeConsoleLoader { - - private static final Logger LOG = LoggerFactory.getLogger(ImplementationClassNamesLoader.class); - - private List<Class<? extends AbstractBinaryPreviewer>> previewers; - - private List<Class<? extends AbstractExtensionPanel>> extPanels; - - @Override - public Integer getPriority() { - return 0; - } - - @Override - @SuppressWarnings("unchecked") - public void load() { - previewers = new ArrayList<>(); - extPanels = new ArrayList<>(); - - ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false); - scanner.addIncludeFilter(new AssignableTypeFilter(AbstractBinaryPreviewer.class)); - scanner.addIncludeFilter(new AssignableTypeFilter(AbstractExtensionPanel.class)); - - for (BeanDefinition bd : scanner.findCandidateComponents(StringUtils.EMPTY)) { - try { - Class<?> clazz = ClassUtils.resolveClassName( - bd.getBeanClassName(), ClassUtils.getDefaultClassLoader()); - boolean isAbsractClazz = Modifier.isAbstract(clazz.getModifiers()); - - if (AbstractBinaryPreviewer.class.isAssignableFrom(clazz) && !isAbsractClazz) { - previewers.add((Class<? extends AbstractBinaryPreviewer>) clazz); - } else if (AbstractExtensionPanel.class.isAssignableFrom(clazz) && !isAbsractClazz) { - extPanels.add((Class<? extends AbstractExtensionPanel>) clazz); - } - } catch (Throwable t) { - LOG.warn("Could not inspect class {}", bd.getBeanClassName(), t); - } - } - previewers = Collections.unmodifiableList(previewers); - extPanels = Collections.unmodifiableList(extPanels); - - LOG.debug("Binary previewers found: {}", previewers); - LOG.debug("Extension panels found: {}", extPanels); - } - - public Class<? extends AbstractBinaryPreviewer> getPreviewerClass(final String mimeType) { - LOG.debug("Searching for previewer class for MIME type: {}", mimeType); - Class<? extends AbstractBinaryPreviewer> previewer = null; - for (Class<? extends AbstractBinaryPreviewer> candidate : previewers) { - LOG.debug("Evaluating previewer class {} for MIME type {}", candidate.getName(), mimeType); - if (ArrayUtils.contains(candidate.getAnnotation(BinaryPreview.class).mimeTypes(), mimeType)) { - LOG.debug("Found existing previewer for MIME type {}: {}", mimeType, candidate.getName()); - previewer = candidate; - } - } - return previewer; - } - - public List<Class<? extends AbstractBinaryPreviewer>> getPreviewerClasses() { - return previewers; - } - - public List<Class<? extends AbstractExtensionPanel>> getExtPanelClasses() { - return extPanels; - } - -} http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/init/MIMETypesLoader.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/init/MIMETypesLoader.java b/client/console/src/main/java/org/apache/syncope/client/console/init/MIMETypesLoader.java index 7a2f878..62dcff3 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/init/MIMETypesLoader.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/init/MIMETypesLoader.java @@ -27,26 +27,15 @@ import org.apache.commons.lang3.StringUtils; import org.apache.wicket.util.io.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; -@Component -public class MIMETypesLoader implements SyncopeConsoleLoader { +public class MIMETypesLoader { - /** - * Logger. - */ private static final Logger LOG = LoggerFactory.getLogger(MIMETypesLoader.class); private List<String> mimeTypes; - @Override - public Integer getPriority() { - return 10; - } - - @Override public void load() { - final Set<String> mediaTypes = new HashSet<>(); + Set<String> mediaTypes = new HashSet<>(); this.mimeTypes = new ArrayList<>(); try { final String mimeTypesFile = IOUtils.toString(getClass().getResourceAsStream("/MIMETypes")); http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/init/SyncopeConsoleLoader.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/init/SyncopeConsoleLoader.java b/client/console/src/main/java/org/apache/syncope/client/console/init/SyncopeConsoleLoader.java deleted file mode 100644 index 7c4d3d4..0000000 --- a/client/console/src/main/java/org/apache/syncope/client/console/init/SyncopeConsoleLoader.java +++ /dev/null @@ -1,35 +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.client.console.init; - -/** - * Marker interface for Syncope console initialization. - */ -public interface SyncopeConsoleLoader { - - /** - * @return the priority that the implementing class has in the initialization process. - */ - Integer getPriority(); - - /** - * Perform initialization operations. - */ - void load(); -} http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractBasePage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractBasePage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractBasePage.java index bd88711..c4096af 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractBasePage.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/AbstractBasePage.java @@ -19,24 +19,13 @@ package org.apache.syncope.client.console.pages; import org.apache.syncope.client.console.commons.Constants; -import org.apache.syncope.client.console.init.MIMETypesLoader; import org.apache.syncope.client.console.panels.NotificationPanel; -import org.apache.syncope.client.console.rest.ConfigurationRestClient; -import org.apache.syncope.client.console.rest.ConnectorRestClient; -import org.apache.syncope.client.console.rest.ReportRestClient; -import org.apache.syncope.client.console.rest.ResourceRestClient; -import org.apache.syncope.client.console.rest.GroupRestClient; -import org.apache.syncope.client.console.rest.SchemaRestClient; -import org.apache.syncope.client.console.rest.TaskRestClient; -import org.apache.syncope.client.console.rest.UserRestClient; -import org.apache.syncope.client.console.rest.UserSelfRestClient; import org.apache.syncope.client.console.wicket.markup.head.MetaHeaderItem; import org.apache.wicket.markup.head.HeaderItem; import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.PriorityHeaderItem; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.request.mapper.parameter.PageParameters; -import org.apache.wicket.spring.injection.annot.SpringBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -56,36 +45,6 @@ public class AbstractBasePage extends WebPage { protected final HeaderItem meta = new MetaHeaderItem("X-UA-Compatible", "IE=edge"); - @SpringBean - protected UserRestClient userRestClient; - - @SpringBean - protected UserSelfRestClient userSelfRestClient; - - @SpringBean - protected GroupRestClient groupRestClient; - - @SpringBean - protected TaskRestClient taskRestClient; - - @SpringBean - protected SchemaRestClient schemaRestClient; - - @SpringBean - protected ResourceRestClient resourceRestClient; - - @SpringBean - protected ConnectorRestClient connectorRestClient; - - @SpringBean - protected ReportRestClient reportRestClient; - - @SpringBean - protected ConfigurationRestClient confRestClient; - - @SpringBean - protected MIMETypesLoader mimeTypesInitializer; - protected NotificationPanel feedbackPanel; /** http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java index bcbd3bf..1ea44d5 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/BasePage.java @@ -18,6 +18,7 @@ */ package org.apache.syncope.client.console.pages; +import org.apache.syncope.client.console.SyncopeConsoleApplication; import org.apache.syncope.client.console.SyncopeConsoleSession; import org.apache.syncope.client.console.commons.Constants; import org.apache.syncope.client.console.rest.UserWorkflowRestClient; @@ -37,14 +38,12 @@ import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.BookmarkablePageLink; import org.apache.wicket.request.mapper.parameter.PageParameters; -import org.apache.wicket.spring.injection.annot.SpringBean; public class BasePage extends AbstractBasePage implements IAjaxIndicatorAware { private static final long serialVersionUID = 1571997737305598502L; - @SpringBean - private UserWorkflowRestClient userWorkflowRestClient; + private final UserWorkflowRestClient userWorkflowRestClient = new UserWorkflowRestClient(); public BasePage() { this(null); @@ -62,7 +61,7 @@ public class BasePage extends AbstractBasePage implements IAjaxIndicatorAware { super(parameters); // header, footer - add(new Label("version", SyncopeConsoleSession.get().getVersion())); + add(new Label("version", SyncopeConsoleApplication.get().getVersion())); add(new Label("username", SyncopeConsoleSession.get().getSelfTO().getUsername())); final WebMarkupContainer todosContainer = new WebMarkupContainer("todosContainer"); http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java index 432c510..7be2525 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/DisplayAttributesModalPage.java @@ -42,7 +42,6 @@ import org.apache.wicket.model.IModel; import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.model.PropertyModel; import org.apache.wicket.model.ResourceModel; -import org.apache.wicket.spring.injection.annot.SpringBean; /** * Modal window with Display attributes form. @@ -59,8 +58,7 @@ public abstract class DisplayAttributesModalPage<T extends AnyTO> extends Abstra */ private static final int MAX_SELECTIONS = 9; - @SpringBean - private PreferenceManager prefMan; + private final PreferenceManager prefMan = new PreferenceManager(); private final List<String> selectedDetails; http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java index 7e56e92..754dacd 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Login.java @@ -40,15 +40,11 @@ import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import org.apache.wicket.request.mapper.parameter.PageParameters; -import org.apache.wicket.spring.injection.annot.SpringBean; public class Login extends WebPage { private static final long serialVersionUID = 5889157642852559004L; - @SpringBean(name = "anonymousUser") - private String anonymousUser; - private final NotificationPanel feedbackPanel; private final StatelessForm<Void> form; @@ -93,7 +89,7 @@ public class Login extends WebPage { @Override protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) { - if (anonymousUser.equals(usernameField.getRawInput())) { + if (SyncopeConsoleApplication.get().getAnonymousUser().equals(usernameField.getRawInput())) { throw new AccessControlException("Illegal username"); } http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java index 5396561..51a3f6e 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/MustChangePassword.java @@ -33,7 +33,6 @@ import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.form.validation.EqualPasswordInputValidator; import org.apache.wicket.model.Model; import org.apache.wicket.request.mapper.parameter.PageParameters; -import org.apache.wicket.spring.injection.annot.SpringBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,8 +42,7 @@ public class MustChangePassword extends WebPage { private static final Logger LOG = LoggerFactory.getLogger(MustChangePassword.class); - @SpringBean - private UserSelfRestClient userSelfRestClient; + private final UserSelfRestClient userSelfRestClient = new UserSelfRestClient(); private final NotificationPanel feedbackPanel; http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/pages/ProvisioningModalPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/ProvisioningModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/ProvisioningModalPage.java index 95ec54f..847bd61 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/ProvisioningModalPage.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/ProvisioningModalPage.java @@ -30,6 +30,9 @@ import org.apache.syncope.client.console.commons.status.ConnObjectWrapper; import org.apache.syncope.client.console.commons.status.StatusBean; import org.apache.syncope.client.console.commons.status.StatusUtils; import org.apache.syncope.client.console.panels.ActionDataTablePanel; +import org.apache.syncope.client.console.rest.GroupRestClient; +import org.apache.syncope.client.console.rest.ResourceRestClient; +import org.apache.syncope.client.console.rest.UserRestClient; import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal; import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink; import org.apache.syncope.client.lib.SyncopeClient; @@ -59,6 +62,12 @@ public class ProvisioningModalPage<T extends AnyTO> extends AbstractStatusModalP private static final int ROWS_PER_PAGE = 10; + private final UserRestClient userRestClient = new UserRestClient(); + + private final GroupRestClient groupRestClient = new GroupRestClient(); + + private final ResourceRestClient resourceRestClient = new ResourceRestClient(); + private final ResourceTO resourceTO; private final AnyTypeKind anyTypeKind; http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java index 300db13..0767b33 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java @@ -42,14 +42,12 @@ import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.model.Model; import org.apache.wicket.model.ResourceModel; import org.apache.wicket.request.mapper.parameter.PageParameters; -import org.apache.wicket.spring.injection.annot.SpringBean; public class Realms extends BasePage { private static final long serialVersionUID = -1100228004207271270L; - @SpringBean - private RealmRestClient realmRestClient; + private final RealmRestClient realmRestClient = new RealmRestClient(); private final RealmSidebarPanel realmSidebarPanel; http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java index 855a61f..998ac60 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/ResultStatusModal.java @@ -36,6 +36,7 @@ import org.apache.syncope.client.console.commons.status.Status; import org.apache.syncope.client.console.commons.status.StatusUtils; import org.apache.syncope.client.console.panels.AbstractModalPanel; import org.apache.syncope.client.console.panels.FailureMessageModal; +import org.apache.syncope.client.console.rest.UserRestClient; import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal; import org.apache.syncope.common.lib.to.AnyTO; import org.apache.syncope.common.lib.to.AttrTO; @@ -107,7 +108,7 @@ public final class ResultStatusModal<T extends AnyTO> extends AbstractModalPanel } public ResultStatusModal<T> build() { - return new ResultStatusModal<T>(modal, pageRef, this); + return new ResultStatusModal<>(modal, pageRef, this); } } @@ -115,10 +116,11 @@ public final class ResultStatusModal<T extends AnyTO> extends AbstractModalPanel final BaseModal<T> modal, final PageReference pageRef, final Builder<T> builder) { + super(modal, pageRef); this.subject = builder.subject; - statusUtils = new StatusUtils(this.userRestClient); + statusUtils = new StatusUtils(new UserRestClient()); if (builder.mode == null) { this.mode = Mode.ADMIN; } else { http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModalPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModalPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModalPage.java index f70c1c5..7dbe73e 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModalPage.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/StatusModalPage.java @@ -31,6 +31,9 @@ import org.apache.syncope.client.console.commons.status.Status; import org.apache.syncope.client.console.commons.status.StatusBean; import org.apache.syncope.client.console.commons.status.StatusUtils; import org.apache.syncope.client.console.panels.ActionDataTablePanel; +import org.apache.syncope.client.console.rest.GroupRestClient; +import org.apache.syncope.client.console.rest.ResourceRestClient; +import org.apache.syncope.client.console.rest.UserRestClient; import org.apache.syncope.client.console.wicket.ajax.markup.html.ClearIndicatingAjaxButton; import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal; import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink; @@ -65,6 +68,12 @@ public class StatusModalPage<T extends AnyTO> extends AbstractStatusModalPage { private static final long serialVersionUID = -9148734710505211261L; + private final UserRestClient userRestClient = new UserRestClient(); + + private final GroupRestClient groupRestClient = new GroupRestClient(); + + private final ResourceRestClient resourceRestClient = new ResourceRestClient(); + private final AnyTO anyTO; private int rowsPerPage = 10; @@ -207,7 +216,7 @@ public class StatusModalPage<T extends AnyTO> extends AbstractStatusModalPage { confirm = new PasswordTextField("confirm", new Model<String>()); pwdMgtForm.add(confirm.setRequired(false).setEnabled(false)); - changepwd = new AjaxCheckBoxPanel("changepwd", "changepwd", new Model<Boolean>(false)); + changepwd = new AjaxCheckBoxPanel("changepwd", "changepwd", new Model<>(false)); pwdMgtForm.add(changepwd.setModelObject(false)); pwdMgtForm.add(new Label("changePwdLabel", new ResourceModel("changePwdLabel", "Password propagation"))); @@ -494,7 +503,7 @@ public class StatusModalPage<T extends AnyTO> extends AbstractStatusModalPage { final List<ConnObjectWrapper> connObjects = statusUtils.getConnectorObjects(anyTO); - final List<StatusBean> statusBeans = new ArrayList<StatusBean>(connObjects.size() + 1); + final List<StatusBean> statusBeans = new ArrayList<>(connObjects.size() + 1); for (ConnObjectWrapper entry : connObjects) { final StatusBean statusBean = statusUtils.getStatusBean(anyTO, @@ -609,7 +618,7 @@ public class StatusModalPage<T extends AnyTO> extends AbstractStatusModalPage { final AjaxRequestTarget target, final Collection<StatusBean> selection, final BulkActionResult bulkActionResult) { - final List<String> resources = new ArrayList<String>(selection.size()); + final List<String> resources = new ArrayList<>(selection.size()); for (StatusBean statusBean : selection) { resources.add(statusBean.getResourceName()); } @@ -617,7 +626,7 @@ public class StatusModalPage<T extends AnyTO> extends AbstractStatusModalPage { final List<ConnObjectWrapper> connObjects = statusUtils.getConnectorObjects(Collections.singletonList(anyTO), resources); - final List<StatusBean> statusBeans = new ArrayList<StatusBean>(connObjects.size()); + final List<StatusBean> statusBeans = new ArrayList<>(connObjects.size()); for (ConnObjectWrapper entry : connObjects) { final StatusBean statusBean = statusUtils.getStatusBean(anyTO, @@ -628,7 +637,7 @@ public class StatusModalPage<T extends AnyTO> extends AbstractStatusModalPage { statusBeans.add(statusBean); } - target.add(modal.setContent(new BulkActionResultModalPage<StatusBean, String>( + target.add(modal.setContent(new BulkActionResultModalPage<>( modal, pageRef, statusBeans, http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java index b16bd2a..3a0ef0b 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Workflow.java @@ -19,6 +19,7 @@ package org.apache.syncope.client.console.pages; import java.io.File; +import org.apache.syncope.client.console.SyncopeConsoleApplication; import org.apache.syncope.client.console.rest.WorkflowRestClient; import org.apache.syncope.client.console.wicket.markup.html.link.VeilPopupSettings; import org.apache.syncope.common.lib.types.Entitlement; @@ -27,19 +28,15 @@ import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.image.Image; import org.apache.wicket.markup.html.link.BookmarkablePageLink; import org.apache.wicket.model.Model; -import org.apache.wicket.protocol.http.WebApplication; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.request.resource.DynamicImageResource; import org.apache.wicket.request.resource.IResource; -import org.apache.wicket.spring.injection.annot.SpringBean; -import org.springframework.web.context.support.WebApplicationContextUtils; public class Workflow extends BasePage { private static final long serialVersionUID = -8781434495150074529L; - @SpringBean - private WorkflowRestClient wfRestClient; + private final WorkflowRestClient wfRestClient = new WorkflowRestClient(); public Workflow(final PageParameters parameters) { super(parameters); @@ -65,9 +62,7 @@ public class Workflow extends BasePage { // Check if Activiti Modeler directory is found boolean activitiModelerEnabled = false; try { - String activitiModelerDirectory = WebApplicationContextUtils.getWebApplicationContext( - WebApplication.get().getServletContext()).getBean("activitiModelerDirectory", String.class); - File baseDir = new File(activitiModelerDirectory); + File baseDir = new File(SyncopeConsoleApplication.get().getActivitiModelerDirectory()); activitiModelerEnabled = baseDir.exists() && baseDir.canRead() && baseDir.isDirectory(); } catch (Exception e) { LOG.error("Could not check for Activiti Modeler directory", e); http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/pages/XMLEditorPopupPage.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/XMLEditorPopupPage.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/XMLEditorPopupPage.java index c02d9ac..00d2c7f 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/pages/XMLEditorPopupPage.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/XMLEditorPopupPage.java @@ -33,15 +33,13 @@ import org.apache.wicket.markup.html.form.Button; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.TextArea; import org.apache.wicket.model.Model; -import org.apache.wicket.spring.injection.annot.SpringBean; import org.apache.wicket.util.io.IOUtils; public class XMLEditorPopupPage extends BasePopupPage { private static final long serialVersionUID = 5816041644635271734L; - @SpringBean - private WorkflowRestClient wfRestClient; + private final WorkflowRestClient wfRestClient = new WorkflowRestClient(); public XMLEditorPopupPage() { Form<?> wfForm = new Form<>("workflowDefForm"); http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java index 96d538b..2c244b2 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractModalPanel.java @@ -18,16 +18,6 @@ */ package org.apache.syncope.client.console.panels; -import org.apache.syncope.client.console.init.MIMETypesLoader; -import org.apache.syncope.client.console.rest.ConfigurationRestClient; -import org.apache.syncope.client.console.rest.ConnectorRestClient; -import org.apache.syncope.client.console.rest.ReportRestClient; -import org.apache.syncope.client.console.rest.ResourceRestClient; -import org.apache.syncope.client.console.rest.GroupRestClient; -import org.apache.syncope.client.console.rest.SchemaRestClient; -import org.apache.syncope.client.console.rest.TaskRestClient; -import org.apache.syncope.client.console.rest.UserRestClient; -import org.apache.syncope.client.console.rest.UserSelfRestClient; import org.apache.syncope.client.console.wicket.markup.head.MetaHeaderItem; import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal; import org.apache.wicket.PageReference; @@ -37,7 +27,6 @@ import org.apache.wicket.markup.head.IHeaderResponse; import org.apache.wicket.markup.head.PriorityHeaderItem; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.spring.injection.annot.SpringBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -61,36 +50,6 @@ public class AbstractModalPanel extends Panel { protected final HeaderItem meta = new MetaHeaderItem("X-UA-Compatible", "IE=edge"); - @SpringBean - protected UserRestClient userRestClient; - - @SpringBean - protected UserSelfRestClient userSelfRestClient; - - @SpringBean - protected GroupRestClient groupRestClient; - - @SpringBean - protected TaskRestClient taskRestClient; - - @SpringBean - protected SchemaRestClient schemaRestClient; - - @SpringBean - protected ResourceRestClient resourceRestClient; - - @SpringBean - protected ConnectorRestClient connectorRestClient; - - @SpringBean - protected ReportRestClient reportRestClient; - - @SpringBean - protected ConfigurationRestClient confRestClient; - - @SpringBean - protected MIMETypesLoader mimeTypesInitializer; - public AbstractModalPanel(final BaseModal<?> modal, final PageReference pageRef) { super(BaseModal.getContentId()); this.pageRef = pageRef; http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractSearchResultPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractSearchResultPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractSearchResultPanel.java index c55d6bd..68bafbe 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractSearchResultPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractSearchResultPanel.java @@ -41,7 +41,6 @@ import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.PropertyModel; -import org.apache.wicket.spring.injection.annot.SpringBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,16 +48,12 @@ public abstract class AbstractSearchResultPanel<T extends AnyTO> extends Panel i private static final long serialVersionUID = -9170191461250434024L; - /** - * Logger. - */ protected static final Logger LOG = LoggerFactory.getLogger(AbstractSearchResultPanel.class); /** * Application preferences. */ - @SpringBean - protected PreferenceManager prefMan; + protected PreferenceManager prefMan = new PreferenceManager(); protected final AbstractAnyRestClient restClient; http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/panels/AnySearchResultPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnySearchResultPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnySearchResultPanel.java index 0940698..eacdb4f 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnySearchResultPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnySearchResultPanel.java @@ -49,15 +49,13 @@ import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import org.apache.wicket.model.ResourceModel; -import org.apache.wicket.spring.injection.annot.SpringBean; import org.springframework.util.ReflectionUtils; public class AnySearchResultPanel<T extends AnyTO> extends AbstractSearchResultPanel<T> { private static final long serialVersionUID = -1100228004207271270L; - @SpringBean - protected SchemaRestClient schemaRestClient; + protected final SchemaRestClient schemaRestClient = new SchemaRestClient(); protected final List<String> schemaNames; @@ -70,15 +68,16 @@ public class AnySearchResultPanel<T extends AnyTO> extends AbstractSearchResultP public AnySearchResultPanel(final String type, final String parentId, final boolean filtered, final String fiql, final PageReference callerRef, final AbstractAnyRestClient restClient, final List<AnyTypeClassTO> anyTypeClassTOs, final String realm) { + super(parentId, filtered, fiql, callerRef, restClient, realm, type); //setCustomMarkupId(markupId); add(new Label("name", type)); - this.schemaNames = new ArrayList<String>(); + this.schemaNames = new ArrayList<>(); for (AnyTypeClassTO anyTypeClassTO : anyTypeClassTOs) { this.schemaNames.addAll(anyTypeClassTO.getPlainSchemas()); } - this.dSchemaNames = new ArrayList<String>(); + this.dSchemaNames = new ArrayList<>(); for (AnyTypeClassTO anyTypeClassTO : anyTypeClassTOs) { this.dSchemaNames.addAll(anyTypeClassTO.getDerSchemas()); } http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnectorModal.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnectorModal.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnectorModal.java index 349560c..2d981f6 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnectorModal.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ConnectorModal.java @@ -28,6 +28,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.Predicate; import org.apache.syncope.client.console.commons.Constants; import org.apache.syncope.client.console.pages.AbstractBasePage; +import org.apache.syncope.client.console.rest.ConnectorRestClient; import org.apache.syncope.client.console.topology.TopologyNode; import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal; import org.apache.syncope.common.lib.to.ConnBundleTO; @@ -48,6 +49,8 @@ public class ConnectorModal extends AbstractResourceModal { private static final long serialVersionUID = -2025535531121434050L; + private final ConnectorRestClient connectorRestClient = new ConnectorRestClient(); + private final List<ConnBundleTO> bundles; public ConnectorModal( http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupModalPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupModalPanel.java index 2e4caf5..9778881 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupModalPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/GroupModalPanel.java @@ -21,6 +21,7 @@ package org.apache.syncope.client.console.panels; import org.apache.commons.lang3.SerializationUtils; import org.apache.syncope.client.console.commons.Constants; import org.apache.syncope.client.console.commons.Mode; +import org.apache.syncope.client.console.rest.GroupRestClient; import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal; import org.apache.syncope.common.lib.to.GroupTO; import org.apache.wicket.PageReference; @@ -39,6 +40,8 @@ public class GroupModalPanel extends AbstractModalPanel { private static final long serialVersionUID = -1732493223434085205L; + private final GroupRestClient groupRestClient = new GroupRestClient(); + protected final Mode mode; protected final boolean createFlag; @@ -49,6 +52,7 @@ public class GroupModalPanel extends AbstractModalPanel { public GroupModalPanel( final BaseModal<?> modal, final PageReference pageRef, final GroupTO groupTO) { + this(modal, pageRef, groupTO, Mode.ADMIN); } http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java index 68a0b79..bea0610 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/Realm.java @@ -35,7 +35,6 @@ import org.apache.wicket.extensions.markup.html.tabs.AbstractTab; import org.apache.wicket.extensions.markup.html.tabs.ITab; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.Model; -import org.apache.wicket.spring.injection.annot.SpringBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,17 +48,13 @@ public class Realm extends Panel { private final List<AnyTypeTO> anyTypeTOs; - @SpringBean - private AnyTypeRestClient anyTypeRestClient; + private final AnyTypeRestClient anyTypeRestClient = new AnyTypeRestClient(); - @SpringBean - private UserRestClient userRestClient; + private final UserRestClient userRestClient = new UserRestClient(); - @SpringBean - private GroupRestClient groupRestClient; + private final GroupRestClient groupRestClient = new GroupRestClient(); - @SpringBean - private AnyObjectRestClient anyObjectRestClient; + private final AnyObjectRestClient anyObjectRestClient = new AnyObjectRestClient(); @SuppressWarnings({ "unchecked", "unchecked" }) public Realm(final String id, final RealmTO realmTO, final PageReference pageReference) { @@ -120,7 +115,7 @@ public class Realm extends Panel { anyTypeTO.getClasses()), realmTO.getFullPath()); break; case ANY_OBJECT: - panel = new AnySearchResultPanel(anyTypeTO.getKey(), id, + panel = new AnySearchResultPanel<>(anyTypeTO.getKey(), id, false, null, pageReference, anyObjectRestClient, anyTypeRestClient.getAnyTypeClass( anyTypeTO.getClasses()), realmTO.getFullPath()); break; http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmModalPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmModalPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmModalPanel.java index 9ea299f..51c66e1 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmModalPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmModalPanel.java @@ -31,18 +31,16 @@ import org.apache.wicket.PageReference; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.authroles.authorization.strategies.role.metadata.MetaDataRoleAuthorizationStrategy; import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.spring.injection.annot.SpringBean; public class RealmModalPanel extends AbstractModalPanel { private static final long serialVersionUID = -4285220460543213901L; - protected RealmTO realmTO; + private final RealmRestClient realmRestClient = new RealmRestClient(); - private boolean newRealm = false; + private RealmTO realmTO; - @SpringBean - private RealmRestClient realmRestClient; + private boolean newRealm = false; private final String parentPath; @@ -52,6 +50,7 @@ public class RealmModalPanel extends AbstractModalPanel { final RealmTO realmTO, final String parentPath, final String entitlement) { + this(modal, pageRef, realmTO, parentPath, entitlement, false); } http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmSidebarPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmSidebarPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmSidebarPanel.java index 221a05b..eb899c9 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmSidebarPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/RealmSidebarPanel.java @@ -44,14 +44,12 @@ import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.markup.repeater.RepeatingView; import org.apache.wicket.model.PropertyModel; -import org.apache.wicket.spring.injection.annot.SpringBean; public class RealmSidebarPanel extends Panel { private static final long serialVersionUID = -1100228004207271270L; - @SpringBean - private RealmRestClient realmRestClient; + private final RealmRestClient realmRestClient = new RealmRestClient(); private final WebMarkupContainer menu; http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceConnConfPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceConnConfPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceConnConfPanel.java index cdce531..dbb3f37 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceConnConfPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceConnConfPanel.java @@ -26,14 +26,12 @@ import org.apache.syncope.client.console.rest.ConnectorRestClient; import org.apache.syncope.common.lib.to.ResourceTO; import org.apache.syncope.common.lib.types.ConnConfProperty; import org.apache.wicket.model.IModel; -import org.apache.wicket.spring.injection.annot.SpringBean; public abstract class ResourceConnConfPanel extends AbstractConnectorConfPanel<ResourceTO> { private static final long serialVersionUID = -7982691107029848579L; - @SpringBean - private ConnectorRestClient restClient; + private ConnectorRestClient restClient = new ConnectorRestClient(); private final boolean createFlag; http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceMappingPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceMappingPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceMappingPanel.java index cdc3fc0..330a4c2 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceMappingPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceMappingPanel.java @@ -60,7 +60,6 @@ import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.Model; import org.apache.wicket.model.PropertyModel; import org.apache.wicket.model.ResourceModel; -import org.apache.wicket.spring.injection.annot.SpringBean; /** * Resource mapping panel. @@ -87,14 +86,12 @@ public class ResourceMappingPanel extends Panel { /** * Schema rest client. */ - @SpringBean - private SchemaRestClient schemaRestClient; + private final SchemaRestClient schemaRestClient = new SchemaRestClient(); /** * ConnInstance rest client. */ - @SpringBean - private ConnectorRestClient connRestClient; + private final ConnectorRestClient connRestClient = new ConnectorRestClient(); /** * Resource schema name.
