You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2015/10/06 17:51:00 UTC
[1/2] syncope git commit: [SYNCOPE-156] Removing (most of) Spring
from console
Repository: syncope
Updated Branches:
refs/heads/SYNCOPE-156 07b519bd8 -> 13f96e068
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
index 7ea5e96..74b9ed2 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceModal.java
@@ -28,6 +28,8 @@ import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.SerializationUtils;
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.rest.ResourceRestClient;
import org.apache.syncope.client.console.topology.TopologyNode;
import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
@@ -54,6 +56,10 @@ public class ResourceModal extends AbstractResourceModal {
private static final long serialVersionUID = 1734415311027284221L;
+ private final ResourceRestClient resourceRestClient = new ResourceRestClient();
+
+ private final ConnectorRestClient connectorRestClient = new ConnectorRestClient();
+
private final boolean createFlag;
public ResourceModal(
@@ -95,7 +101,7 @@ public class ResourceModal extends AbstractResourceModal {
@Override
public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
send(pageRef.getPage(), Broadcast.DEPTH,
- new AjaxWizard.NewItemActionEvent<ProvisionTO>(provisionTO, 2, target));
+ new AjaxWizard.NewItemActionEvent<>(provisionTO, 2, target));
}
}, ActionLink.ActionType.MAPPING, Entitlement.RESOURCE_UPDATE).addAction(new ActionLink<ProvisionTO>() {
@@ -104,7 +110,7 @@ public class ResourceModal extends AbstractResourceModal {
@Override
public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
send(pageRef.getPage(), Broadcast.DEPTH,
- new AjaxWizard.NewItemActionEvent<ProvisionTO>(provisionTO, 3, target));
+ new AjaxWizard.NewItemActionEvent<>(provisionTO, 3, target));
}
}, ActionLink.ActionType.ACCOUNT_LINK, Entitlement.RESOURCE_UPDATE).addAction(new ActionLink<ProvisionTO>() {
@@ -114,7 +120,7 @@ public class ResourceModal extends AbstractResourceModal {
public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
provisionTO.setSyncToken(null);
send(pageRef.getPage(), Broadcast.DEPTH,
- new AjaxWizard.NewItemFinishEvent<ProvisionTO>(provisionTO, target));
+ new AjaxWizard.NewItemFinishEvent<>(provisionTO, target));
}
}, ActionLink.ActionType.RESET_TIME, Entitlement.RESOURCE_UPDATE).addAction(new ActionLink<ProvisionTO>() {
@@ -123,7 +129,7 @@ public class ResourceModal extends AbstractResourceModal {
@Override
public void onClick(final AjaxRequestTarget target, final ProvisionTO provisionTO) {
send(pageRef.getPage(), Broadcast.DEPTH,
- new AjaxWizard.NewItemActionEvent<ProvisionTO>(SerializationUtils.clone(provisionTO), target));
+ new AjaxWizard.NewItemActionEvent<>(SerializationUtils.clone(provisionTO), target));
}
}, ActionLink.ActionType.CLONE, Entitlement.RESOURCE_CREATE).addAction(new ActionLink<ProvisionTO>() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceSecurityPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceSecurityPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceSecurityPanel.java
index 4aab37e..37cf8ac 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceSecurityPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/panels/ResourceSecurityPanel.java
@@ -34,14 +34,12 @@ 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;
public class ResourceSecurityPanel extends Panel {
private static final long serialVersionUID = -7982691107029848579L;
- @SpringBean
- private PolicyRestClient policyRestClient;
+ private final PolicyRestClient policyRestClient = new PolicyRestClient();
private IModel<Map<Long, String>> passwordPolicies = null;
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefGETResource.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefGETResource.java b/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefGETResource.java
index 62dfe30..91e2548 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefGETResource.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefGETResource.java
@@ -21,10 +21,8 @@ package org.apache.syncope.client.console.resources;
import java.io.IOException;
import javax.ws.rs.core.MediaType;
import org.apache.syncope.client.console.rest.WorkflowRestClient;
-import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.resource.AbstractResource;
import org.apache.wicket.util.io.IOUtils;
-import org.springframework.web.context.support.WebApplicationContextUtils;
/**
* Mirror REST resource for obtaining user workflow definition in JSON (used by Activiti Modeler).
@@ -45,9 +43,8 @@ public class WorkflowDefGETResource extends AbstractResource {
@Override
public void writeData(final Attributes attributes) throws IOException {
- IOUtils.copy(WebApplicationContextUtils.getWebApplicationContext(
- WebApplication.get().getServletContext()).getBean(WorkflowRestClient.class).
- getDefinition(MediaType.APPLICATION_JSON_TYPE),
+ IOUtils.copy(
+ new WorkflowRestClient().getDefinition(MediaType.APPLICATION_JSON_TYPE),
attributes.getResponse().getOutputStream());
}
});
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java b/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java
index b85dfd8..7800462 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/resources/WorkflowDefPUTResource.java
@@ -23,12 +23,10 @@ import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.MediaType;
import org.apache.cxf.common.util.UrlUtils;
import org.apache.syncope.client.console.rest.WorkflowRestClient;
-import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.resource.AbstractResource;
import org.apache.wicket.util.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.web.context.support.WebApplicationContextUtils;
/**
* Mirror REST resource for putting user workflow definition in JSON (used by Activiti Modeler).
@@ -61,9 +59,7 @@ public class WorkflowDefPUTResource extends AbstractResource {
LOG.error("Could not extract workflow definition from request", e);
}
- WebApplicationContextUtils.getWebApplicationContext(WebApplication.get().getServletContext()).
- getBean(WorkflowRestClient.class).
- updateDefinition(MediaType.APPLICATION_JSON_TYPE, definition);
+ new WorkflowRestClient().updateDefinition(MediaType.APPLICATION_JSON_TYPE, definition);
ResourceResponse response = new ResourceResponse();
response.setStatusCode(204);
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/rest/BaseRestClient.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/BaseRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/BaseRestClient.java
index 15f9c9b..1271e35 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/BaseRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/BaseRestClient.java
@@ -21,6 +21,7 @@ package org.apache.syncope.client.console.rest;
import java.io.Serializable;
import java.net.URI;
import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.syncope.client.console.SyncopeConsoleApplication;
import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.lib.SyncopeClient;
import org.apache.syncope.common.lib.search.OrderByClauseBuilder;
@@ -66,7 +67,7 @@ public abstract class BaseRestClient implements Serializable {
protected <E extends JAXRSService, T> T getObject(final E service, final URI location, final Class<T> resultClass) {
WebClient webClient = WebClient.fromClient(WebClient.client(service));
- webClient.accept(SyncopeConsoleSession.get().getMediaType()).to(location.toASCIIString(), false);
+ webClient.accept(SyncopeConsoleApplication.get().getMediaType()).to(location.toASCIIString(), false);
return webClient.get(resultClass);
}
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java b/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
index 7005143..faf91ea 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/topology/Topology.java
@@ -33,6 +33,8 @@ import org.apache.syncope.client.console.SyncopeConsoleSession;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.pages.BasePage;
import org.apache.syncope.client.console.panels.AbstractResourceModal.CreateEvent;
+import org.apache.syncope.client.console.rest.ConnectorRestClient;
+import org.apache.syncope.client.console.rest.ResourceRestClient;
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.console.wicket.markup.html.form.ActionLinksPanel;
@@ -63,6 +65,10 @@ public class Topology extends BasePage {
public static final String ROOT_NAME = "Syncope";
+ private final ResourceRestClient resourceRestClient = new ResourceRestClient();
+
+ private final ConnectorRestClient connectorRestClient = new ConnectorRestClient();
+
private final int origX = 3100;
private final int origY = 2800;
@@ -84,8 +90,8 @@ public class Topology extends BasePage {
}
};
- private final LoadableDetachableModel<Map<String, List<ConnInstanceTO>>> connModel
- = new LoadableDetachableModel<Map<String, List<ConnInstanceTO>>>() {
+ private final LoadableDetachableModel<Map<String, List<ConnInstanceTO>>> connModel =
+ new LoadableDetachableModel<Map<String, List<ConnInstanceTO>>>() {
private static final long serialVersionUID = 5275935387613157432L;
@@ -108,8 +114,8 @@ public class Topology extends BasePage {
}
};
- private final LoadableDetachableModel<Pair<List<URI>, List<URI>>> csModel
- = new LoadableDetachableModel<Pair<List<URI>, List<URI>>>() {
+ private final LoadableDetachableModel<Pair<List<URI>, List<URI>>> csModel =
+ new LoadableDetachableModel<Pair<List<URI>, List<URI>>>() {
private static final long serialVersionUID = 5275935387613157433L;
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyNodePanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyNodePanel.java b/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyNodePanel.java
index ff40a8f..0b75ec0 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyNodePanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/topology/TopologyNodePanel.java
@@ -49,7 +49,6 @@ import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
-import org.apache.wicket.spring.injection.annot.SpringBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -57,21 +56,20 @@ public class TopologyNodePanel extends Panel implements IAjaxIndicatorAware {
private static final long serialVersionUID = -8775095410207013913L;
- protected static final Logger LOG = LoggerFactory.getLogger(TopologyNodePanel.class);
+ private static final Logger LOG = LoggerFactory.getLogger(TopologyNodePanel.class);
- private final BaseModal<Serializable> modal;
+ private final ResourceRestClient resourceRestClient = new ResourceRestClient();
- @SpringBean
- private ResourceRestClient resourceRestClient;
+ private final ConnectorRestClient connectorRestClient = new ConnectorRestClient();
- @SpringBean
- private ConnectorRestClient connectorRestClient;
+ private final BaseModal<Serializable> modal;
public TopologyNodePanel(
final String id,
final TopologyNode node,
final BaseModal<Serializable> modal,
final PageReference pageRef) {
+
super(id);
final String resourceName = node.getDisplayName().length() > 20
@@ -141,7 +139,7 @@ public class TopologyNodePanel extends Panel implements IAjaxIndicatorAware {
target.add(modal.setContent(new ConnectorModal(modal, pageRef, model)));
- modal.header(new Model<String>(MessageFormat.format(getString("connector.new"), node.getKey())));
+ modal.header(new Model<>(MessageFormat.format(getString("connector.new"), node.getKey())));
MetaDataRoleAuthorizationStrategy.
authorize(modal.addSumbitButton(), ENABLE, Entitlement.CONNECTOR_CREATE);
@@ -196,7 +194,7 @@ public class TopologyNodePanel extends Panel implements IAjaxIndicatorAware {
target.add(modal.setContent(new ResourceModal(modal, pageRef, model, true)));
- modal.header(new Model<String>(MessageFormat.format(getString("resource.new"), node.getKey())));
+ modal.header(new Model<>(MessageFormat.format(getString("resource.new"), node.getKey())));
MetaDataRoleAuthorizationStrategy.
authorize(modal.addSumbitButton(), ENABLE, Entitlement.RESOURCE_CREATE);
@@ -221,7 +219,7 @@ public class TopologyNodePanel extends Panel implements IAjaxIndicatorAware {
target.add(modal.setContent(new ConnectorModal(modal, pageRef, model)));
- modal.header(new Model<String>(MessageFormat.format(getString("connector.edit"), node.getKey())));
+ modal.header(new Model<>(MessageFormat.format(getString("connector.edit"), node.getKey())));
MetaDataRoleAuthorizationStrategy.
authorize(modal.addSumbitButton(), ENABLE, Entitlement.CONNECTOR_UPDATE);
@@ -276,7 +274,7 @@ public class TopologyNodePanel extends Panel implements IAjaxIndicatorAware {
target.add(modal.setContent(new ResourceModal(modal, pageRef, model, false)));
- modal.header(new Model<String>(MessageFormat.format(getString("resource.edit"), node.getKey())));
+ modal.header(new Model<>(MessageFormat.format(getString("resource.edit"), node.getKey())));
MetaDataRoleAuthorizationStrategy.
authorize(modal.addSumbitButton(), ENABLE, Entitlement.RESOURCE_UPDATE);
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java
index f0c7093..b7a524a 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/BinaryFieldPanel.java
@@ -44,7 +44,6 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;
import org.apache.wicket.request.resource.ContentDisposition;
-import org.apache.wicket.spring.injection.annot.SpringBean;
import org.apache.wicket.util.crypt.Base64;
import org.apache.wicket.util.lang.Bytes;
@@ -62,14 +61,13 @@ public class BinaryFieldPanel extends FieldPanel<String> {
private final Fragment emptyFragment;
- @SpringBean
- private PreviewUtils previewUtil;
+ private final PreviewUtils previewUtils = PreviewUtils.getInstance();
public BinaryFieldPanel(final String id, final String name, final IModel<String> model, final String mimeType) {
super(id, model);
this.mimeType = mimeType;
- uploadForm = new StatelessForm<Void>("uploadForm");
+ uploadForm = new StatelessForm<>("uploadForm");
uploadForm.setMultiPart(true);
uploadForm.setMaxSize(Bytes.megabytes(4));
add(uploadForm);
@@ -82,8 +80,8 @@ public class BinaryFieldPanel extends FieldPanel<String> {
container.add(emptyFragment);
uploadForm.add(container);
- field = new TextField<String>("textField", model);
- add(field.setLabel(new Model<String>(name)).setOutputMarkupId(true));
+ field = new TextField<>("textField", model);
+ add(field.setLabel(new Model<>(name)).setOutputMarkupId(true));
uploadForm.add(new Label("preview", StringUtils.isBlank(mimeType) ? StringUtils.EMPTY : "(" + mimeType + ")"));
@@ -128,8 +126,7 @@ public class BinaryFieldPanel extends FieldPanel<String> {
field.setModelObject(uploaded);
target.add(field);
- final Component panelPreview = previewUtil.getPreviewer(mimeType, uploadedBytes);
-
+ Component panelPreview = previewUtils.getPreviewer(mimeType, uploadedBytes);
if (panelPreview != null) {
changePreviewer(panelPreview);
}
@@ -197,7 +194,7 @@ public class BinaryFieldPanel extends FieldPanel<String> {
public FieldPanel<String> setNewModel(final IModel<String> model) {
field.setModel(model);
try {
- final Component panelPreview = previewUtil.getPreviewer(mimeType, model.getObject());
+ Component panelPreview = previewUtils.getPreviewer(mimeType, model.getObject());
if (panelPreview != null) {
changePreviewer(panelPreview);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
index e71365f..85cc6e2 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/list/ConnConfPropertyListView.java
@@ -22,6 +22,7 @@ import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.checkbox.boot
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.checkbox.bootstraptoggle.BootstrapToggleConfig;
import java.io.Serializable;
import java.util.List;
+import org.apache.commons.lang3.ClassUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.client.console.commons.Constants;
import org.apache.syncope.client.console.wicket.markup.html.form.AbstractFieldPanel;
@@ -46,7 +47,6 @@ import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.util.ClassUtils;
public class ConnConfPropertyListView extends ListView<ConnConfProperty> {
@@ -90,8 +90,7 @@ public class ConnConfPropertyListView extends ListView<ConnConfProperty> {
} else {
Class<?> propertySchemaClass;
try {
- propertySchemaClass = ClassUtils.forName(property.getSchema().getType(), ClassUtils.
- getDefaultClassLoader());
+ propertySchemaClass = ClassUtils.getClass(property.getSchema().getType());
if (ClassUtils.isPrimitiveOrWrapper(propertySchemaClass)) {
propertySchemaClass = org.apache.commons.lang3.ClassUtils.primitiveToWrapper(propertySchemaClass);
}
@@ -102,8 +101,8 @@ public class ConnConfPropertyListView extends ListView<ConnConfProperty> {
if (ClassUtils.isAssignable(Number.class, propertySchemaClass)) {
@SuppressWarnings("unchecked")
- final Class<Number> numberClass = (Class<Number>) propertySchemaClass;
- field = new SpinnerFieldPanel<Number>(
+ Class<Number> numberClass = (Class<Number>) propertySchemaClass;
+ field = new SpinnerFieldPanel<>(
"panel", label.getDefaultModelObjectAsString(), numberClass, new Model<Number>());
required = property.getSchema().isRequired();
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/resources/META-INF/web-fragment.xml
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/META-INF/web-fragment.xml b/client/console/src/main/resources/META-INF/web-fragment.xml
index 04cd14e..7ad9566 100644
--- a/client/console/src/main/resources/META-INF/web-fragment.xml
+++ b/client/console/src/main/resources/META-INF/web-fragment.xml
@@ -29,18 +29,6 @@ under the License.
<param-name>configuration</param-name>
<param-value>deployment</param-value>
</context-param>
-
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:consoleContext.xml</param-value>
- </context-param>
-
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <listener>
- <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
- </listener>
<filter>
<filter-name>SyncopeConsole</filter-name>
@@ -50,8 +38,8 @@ under the License.
<param-value>/*</param-value>
</init-param>
<init-param>
- <param-name>applicationFactoryClassName</param-name>
- <param-value>org.apache.wicket.spring.SpringWebApplicationFactory</param-value>
+ <param-name>applicationClassName</param-name>
+ <param-value>org.apache.syncope.client.console.SyncopeConsoleApplication</param-value>
</init-param>
</filter>
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/resources/console.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/console.properties b/client/console/src/main/resources/console.properties
index 3f2667b..eb7ea39 100644
--- a/client/console/src/main/resources/console.properties
+++ b/client/console/src/main/resources/console.properties
@@ -15,8 +15,17 @@
# specific language governing permissions and limitations
# under the License.
console.directory=${conf.directory}
+
+version=${syncope.version}
+site=${project.parent.url}
+license=${licenseUrl}
+
+anonymousUser=${anonymousUser}
+anonymousKey=${anonymousKey}
+
scheme=http
host=localhost
port=8080
rootPath=/syncope/rest/
+
activitiModelerDirectory=${activiti-modeler.directory}
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/client/console/src/main/resources/consoleContext.xml
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/consoleContext.xml b/client/console/src/main/resources/consoleContext.xml
deleted file mode 100644
index 8b7fa16..0000000
--- a/client/console/src/main/resources/consoleContext.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd">
-
- <context:component-scan base-package="org.apache.syncope.client.console"/>
-
- <bean id="confDirectoryPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="order" value="1"/>
- <property name="location" value="file:${console.directory}/console.properties"/>
- <property name="ignoreResourceNotFound" value="true"/>
- <property name="ignoreUnresolvablePlaceholders" value="true"/>
- </bean>
- <bean id="classpathPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="location" value="classpath:console.properties"/>
- </bean>
-
- <bean id="version" class="java.lang.String">
- <constructor-arg value="${syncope.version}"/>
- </bean>
-
- <bean id="site" class="java.lang.String">
- <constructor-arg value="${project.parent.url}"/>
- </bean>
-
- <bean id="license" class="java.lang.String">
- <constructor-arg value="${licenseUrl}"/>
- </bean>
-
- <bean id="anonymousUser" class="java.lang.String">
- <constructor-arg value="${anonymousUser}"/>
- </bean>
- <bean id="anonymousKey" class="java.lang.String">
- <constructor-arg value="${anonymousKey}"/>
- </bean>
-
- <bean id="activitiModelerDirectory" class="java.lang.String">
- <constructor-arg value="${activitiModelerDirectory}"/>
- </bean>
-
- <bean class="org.apache.syncope.client.console.SyncopeConsoleApplication"/>
-
- <bean class="org.apache.syncope.client.console.PreferenceManager"/>
-
- <bean class="org.apache.syncope.client.lib.SyncopeClientFactoryBean">
- <property name="address" value="${scheme}://${host}:${port}/${rootPath}"/>
- </bean>
-
-</beans>
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
index 82dfbc0..6fd9ee5 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
@@ -340,7 +340,6 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
if (otherEnd == null) {
LOG.debug("Ignoring invalid any object {}", patch.getRelationshipTO().getRightKey());
} else {
-
relationship = entityFactory.newEntity(URelationship.class);
relationship.setType(relationshipType);
relationship.setRightEnd(otherEnd);
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/pages/CamelRouteModalPage.java
----------------------------------------------------------------------
diff --git a/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/pages/CamelRouteModalPage.java b/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/pages/CamelRouteModalPage.java
index b24e360..27b8f91 100644
--- a/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/pages/CamelRouteModalPage.java
+++ b/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/pages/CamelRouteModalPage.java
@@ -35,14 +35,12 @@ import org.apache.wicket.markup.html.form.TextArea;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
public class CamelRouteModalPage extends AbstractModalPanel {
private static final long serialVersionUID = -1438441210568592931L;
- @SpringBean
- private CamelRouteRestClient restClient;
+ private final CamelRouteRestClient restClient = new CamelRouteRestClient();
public CamelRouteModalPage(
final BaseModal<?> modal,
@@ -54,7 +52,7 @@ public class CamelRouteModalPage extends AbstractModalPanel {
Form<CamelRouteTO> routeForm = new Form<>("routeDefForm");
- final TextArea<String> routeDefArea = new TextArea<>("content", new PropertyModel<String>(routeTO, "content"));
+ TextArea<String> routeDefArea = new TextArea<>("content", new PropertyModel<String>(routeTO, "content"));
routeForm.add(routeDefArea);
routeForm.setModel(new CompoundPropertyModel<>(routeTO));
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutePanel.java
----------------------------------------------------------------------
diff --git a/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutePanel.java b/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutePanel.java
index 005e23f..bfcd912 100644
--- a/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutePanel.java
+++ b/ext/camel/client-console/src/main/java/org/apache/syncope/client/console/panels/CamelRoutePanel.java
@@ -43,7 +43,6 @@ import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
@ExtensionPanel("Camel routes")
public class CamelRoutePanel extends AbstractExtensionPanel {
@@ -54,8 +53,7 @@ public class CamelRoutePanel extends AbstractExtensionPanel {
private static final int CAMELROUTE_WIN_WIDTH = 800;
- @SpringBean
- private CamelRouteRestClient restClient;
+ private CamelRouteRestClient restClient = new CamelRouteRestClient();
private ModalWindow editCamelRouteWin;
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/fit/console-reference/pom.xml
----------------------------------------------------------------------
diff --git a/fit/console-reference/pom.xml b/fit/console-reference/pom.xml
index c2785ac..b05bc3d 100644
--- a/fit/console-reference/pom.xml
+++ b/fit/console-reference/pom.xml
@@ -496,7 +496,7 @@ ORYX.Editor.createByUrl = function(modelUrl){"/>
<configuration>
<properties>
<cargo.jvmargs>-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
- -noverify ${javaagent} -Drebel.spring_plugin=true
+ -noverify ${javaagent}
-XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:MaxPermSize=256m</cargo.jvmargs>
</properties>
</configuration>
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/fit/console-reference/src/main/resources/console.properties
----------------------------------------------------------------------
diff --git a/fit/console-reference/src/main/resources/console.properties b/fit/console-reference/src/main/resources/console.properties
index cf20f3c..be99423 100644
--- a/fit/console-reference/src/main/resources/console.properties
+++ b/fit/console-reference/src/main/resources/console.properties
@@ -15,8 +15,17 @@
# specific language governing permissions and limitations
# under the License.
console.directory=${conf.directory}
+
+version=${syncope.version}
+site=${project.parent.url}
+license=${licenseUrl}
+
+anonymousUser=${anonymousUser}
+anonymousKey=${anonymousKey}
+
scheme=http
host=localhost
port=9080
rootPath=/syncope/rest/
+
activitiModelerDirectory=${activiti-modeler.directory}
http://git-wip-us.apache.org/repos/asf/syncope/blob/13f96e06/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index cc202d8..ea9afa3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -411,7 +411,7 @@ under the License.
<cargo.log>${log.directory}/cargo.log</cargo.log>
<cargo.output>${log.directory}/cargo-output.log</cargo.output>
- <tomcat.version>8.0.26</tomcat.version>
+ <tomcat.version>8.0.27</tomcat.version>
<anonymousUser>anonymous</anonymousUser>
<!-- static keys, only used for build: generated overlays will override during archetype:generate -->
@@ -854,17 +854,6 @@ under the License.
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
- <artifactId>wicket-spring</artifactId>
- <version>${wicket.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.wicket</groupId>
<artifactId>wicket-auth-roles</artifactId>
<version>${wicket.version}</version>
</dependency>
[2/2] syncope git commit: [SYNCOPE-156] Removing (most of) Spring
from console
Posted by il...@apache.org.
[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/SYNCOPE-156
Commit: 13f96e06804f0574a72cf2d496cb2ac62f927847
Parents: 07b519b
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Tue Oct 6 17:50:44 2015 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
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;
-@org.springframework.stereotype.Component
-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.