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 2017/04/18 08:43:11 UTC
[1/7] syncope git commit: Fixing after BATIK-1185
Repository: syncope
Updated Branches:
refs/heads/2_0_X 51d0bb463 -> 3da6a0455
refs/heads/master f71932502 -> aa36e2ab5
Fixing after BATIK-1185
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/904be1a0
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/904be1a0
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/904be1a0
Branch: refs/heads/2_0_X
Commit: 904be1a0e62759ac64638fd468fd484d6d2065d2
Parents: 51d0bb4
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Tue Apr 18 10:29:09 2017 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Tue Apr 18 10:29:09 2017 +0200
----------------------------------------------------------------------
core/logic/pom.xml | 8 ++++++++
pom.xml | 12 +++++++++++-
2 files changed, 19 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/904be1a0/core/logic/pom.xml
----------------------------------------------------------------------
diff --git a/core/logic/pom.xml b/core/logic/pom.xml
index 967e9d7..cac3540 100644
--- a/core/logic/pom.xml
+++ b/core/logic/pom.xml
@@ -79,6 +79,14 @@ under the License.
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>fop</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.xmlgraphics</groupId>
+ <artifactId>batik-i18n</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.xmlgraphics</groupId>
+ <artifactId>batik-constants</artifactId>
+ </dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
http://git-wip-us.apache.org/repos/asf/syncope/blob/904be1a0/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index b6bdb56..cfa0ba0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -995,7 +995,17 @@ under the License.
</exclusion>
</exclusions>
</dependency>
-
+ <dependency>
+ <groupId>org.apache.xmlgraphics</groupId>
+ <artifactId>batik-i18n</artifactId>
+ <version>1.9</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.xmlgraphics</groupId>
+ <artifactId>batik-constants</artifactId>
+ <version>1.9</version>
+ </dependency>
+
<!-- Activiti -->
<dependency>
<groupId>org.activiti</groupId>
[3/7] syncope git commit: [SYNCOPE-1066] Avoid invoking REST via HTTP
to fetch the generated WADL; rather getting it via Spring bean
Posted by il...@apache.org.
[SYNCOPE-1066] Avoid invoking REST via HTTP to fetch the generated WADL; rather getting it via Spring bean
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/3da6a045
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/3da6a045
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/3da6a045
Branch: refs/heads/2_0_X
Commit: 3da6a0455d99e8c97e184072f54362d6801297fc
Parents: 89530be
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Tue Apr 18 10:41:41 2017 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Tue Apr 18 10:41:41 2017 +0200
----------------------------------------------------------------------
.../syncope/core/rest/cxf/WADLServlet.java | 13 ++--
.../syncope/core/rest/cxf/WadlGenerator.java | 74 +++++++++++++++++++-
.../src/main/resources/log4j2.xml | 4 ++
3 files changed, 83 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/3da6a045/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WADLServlet.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WADLServlet.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WADLServlet.java
index 534ae9f..e421909 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WADLServlet.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WADLServlet.java
@@ -18,10 +18,10 @@
*/
package org.apache.syncope.core.rest.cxf;
+import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.net.URL;
import java.rmi.ServerException;
import java.util.HashMap;
import java.util.Map;
@@ -39,7 +39,7 @@ import org.apache.cocoon.sax.component.XMLGenerator;
import org.apache.cocoon.sax.component.XMLSerializer;
import org.apache.cocoon.sax.component.XSLTTransformer;
import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.syncope.core.spring.ApplicationContextProvider;
public class WADLServlet extends HttpServlet {
@@ -73,10 +73,11 @@ public class WADLServlet extends HttpServlet {
Matcher schemaMatcher = SCHEMA_PATTERN.matcher(request.getServletPath());
+ WadlGenerator wadlGenerator = ApplicationContextProvider.getApplicationContext().getBean(WadlGenerator.class);
+ String wadl = wadlGenerator.getWadl();
+
Pipeline<SAXPipelineComponent> pipeline = new CachingPipeline<>();
- String wadlURL = StringUtils.substringBeforeLast(request.getRequestURL().toString(), "/")
- + "/rest/?_wadl";
- pipeline.addComponent(new XMLGenerator(new URL(wadlURL)));
+ pipeline.addComponent(new XMLGenerator(wadl));
if ("/index.html".equals(request.getServletPath())) {
XSLTTransformer xslt = new XSLTTransformer(getClass().getResource("/wadl2html/index.xsl"));
@@ -102,7 +103,7 @@ public class WADLServlet extends HttpServlet {
} else if ("/syncope.wadl".equals(request.getServletPath())) {
response.setContentType(MediaType.APPLICATION_XML);
- InputStream in = new URL(wadlURL).openStream();
+ InputStream in = new ByteArrayInputStream(wadl.getBytes());
OutputStream out = response.getOutputStream();
try {
IOUtils.copy(in, out);
http://git-wip-us.apache.org/repos/asf/syncope/blob/3da6a045/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
index 444e58e..8595293 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
@@ -18,8 +18,21 @@
*/
package org.apache.syncope.core.rest.cxf;
+import java.lang.annotation.Annotation;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import javax.ws.rs.Path;
import javax.ws.rs.container.ContainerRequestContext;
+import org.apache.commons.collections4.IterableUtils;
+import org.apache.commons.collections4.Predicate;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.common.util.ClasspathScanner;
+import org.apache.cxf.jaxrs.model.ClassResourceInfo;
+import org.apache.cxf.jaxrs.utils.InjectionUtils;
+import org.apache.cxf.jaxrs.utils.ResourceUtils;
/**
* Automatically loads available javadocs from class loader (when {@link java.net.URLClassLoader}).
@@ -28,8 +41,9 @@ public class WadlGenerator extends org.apache.cxf.jaxrs.model.wadl.WadlGenerator
private boolean inited = false;
- @Override
- public void filter(final ContainerRequestContext context) {
+ private String wadl = null;
+
+ private void init() {
synchronized (this) {
if (!inited) {
URL[] javaDocURLs = JavaDocUtils.getJavaDocURLs();
@@ -40,8 +54,64 @@ public class WadlGenerator extends org.apache.cxf.jaxrs.model.wadl.WadlGenerator
inited = true;
}
}
+ }
+ @Override
+ public void filter(final ContainerRequestContext context) {
+ init();
super.filter(context);
}
+ public String getWadl() {
+ synchronized (this) {
+ if (wadl == null) {
+ init();
+
+ List<Class<?>> resourceClasses = new ArrayList<>();
+ try {
+ List<Class<? extends Annotation>> anns = new ArrayList<>();
+ anns.add(Path.class);
+ Map<Class<? extends Annotation>, Collection<Class<?>>> discoveredClasses =
+ ClasspathScanner.findClasses(ClasspathScanner.parsePackages(
+ "org.apache.syncope.common.rest.api.service"),
+ anns);
+ if (discoveredClasses.containsKey(Path.class)) {
+ resourceClasses.addAll(discoveredClasses.get(Path.class));
+ }
+ } catch (Exception e) {
+ // ignore
+ }
+
+ List<ClassResourceInfo> classResourceInfos = new ArrayList<>();
+ for (final Class<?> beanClass : resourceClasses) {
+ ClassResourceInfo cri = IterableUtils.find(classResourceInfos, new Predicate<ClassResourceInfo>() {
+
+ @Override
+ public boolean evaluate(final ClassResourceInfo cri) {
+ return cri.isCreatedFromModel() && cri.isRoot()
+ && cri.getServiceClass().isAssignableFrom(beanClass);
+ }
+ });
+ if (cri != null) {
+ if (!InjectionUtils.isConcreteClass(cri.getServiceClass())) {
+ cri = new ClassResourceInfo(cri);
+ classResourceInfos.add(cri);
+ }
+ cri.setResourceClass(beanClass);
+ continue;
+ }
+
+ cri = ResourceUtils.createClassResourceInfo(
+ beanClass, beanClass, true, true, BusFactory.getDefaultBus());
+ if (cri != null) {
+ classResourceInfos.add(cri);
+ }
+ }
+
+ wadl = generateWADL("/", classResourceInfos, false, null, null).toString();
+ }
+ }
+
+ return wadl;
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/3da6a045/fit/core-reference/src/main/resources/log4j2.xml
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/resources/log4j2.xml b/fit/core-reference/src/main/resources/log4j2.xml
index bc4771c..19f5cc4 100644
--- a/fit/core-reference/src/main/resources/log4j2.xml
+++ b/fit/core-reference/src/main/resources/log4j2.xml
@@ -144,6 +144,10 @@ under the License.
<appender-ref ref="mainFile"/>
<appender-ref ref="main"/>
</asyncLogger>
+ <asyncLogger name="org.apache.cocoon" additivity="false" level="ERROR">
+ <appender-ref ref="mainFile"/>
+ <appender-ref ref="main"/>
+ </asyncLogger>
<asyncLogger name="org.apache.camel" additivity="false" level="ERROR">
<appender-ref ref="mainFile"/>
<appender-ref ref="main"/>
[2/7] syncope git commit: Fixing AOP class name extraction for Camel
components
Posted by il...@apache.org.
Fixing AOP class name extraction for Camel components
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/89530be8
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/89530be8
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/89530be8
Branch: refs/heads/2_0_X
Commit: 89530be82b38b5fba4292e034bfc233d14c3a45c
Parents: 904be1a
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Tue Apr 18 10:32:35 2017 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Tue Apr 18 10:32:35 2017 +0200
----------------------------------------------------------------------
.../main/java/org/apache/syncope/core/logic/SyncopeLogic.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/89530be8/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
index 2d0d920..36cc50c 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
@@ -173,9 +173,9 @@ public class SyncopeLogic extends AbstractLogic<AbstractBaseBean> {
PLATFORM_INFO.setGroupWorkflowAdapter(AopUtils.getTargetClass(gwfAdapter).getName());
PLATFORM_INFO.setGroupWorkflowAdapterSupportEdit(gwfAdapter.supportsDefinitionEdit());
- PLATFORM_INFO.setAnyObjectProvisioningManager(aProvisioningManager.getClass().getName());
- PLATFORM_INFO.setUserProvisioningManager(uProvisioningManager.getClass().getName());
- PLATFORM_INFO.setGroupProvisioningManager(gProvisioningManager.getClass().getName());
+ PLATFORM_INFO.setAnyObjectProvisioningManager(AopUtils.getTargetClass(aProvisioningManager).getName());
+ PLATFORM_INFO.setUserProvisioningManager(AopUtils.getTargetClass(uProvisioningManager).getName());
+ PLATFORM_INFO.setGroupProvisioningManager(AopUtils.getTargetClass(gProvisioningManager).getName());
PLATFORM_INFO.setVirAttrCache(virAttrCache.getClass().getName());
PLATFORM_INFO.setPasswordGenerator(passwordGenerator.getClass().getName());
[4/7] syncope git commit: Fix doc link
Posted by il...@apache.org.
Fix doc link
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/6b6f36c8
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/6b6f36c8
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/6b6f36c8
Branch: refs/heads/master
Commit: 6b6f36c8b39260fb2aaed1ccb5a86ec5863e7185
Parents: f719325
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Tue Apr 18 10:15:07 2017 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Tue Apr 18 10:42:45 2017 +0200
----------------------------------------------------------------------
.../systemadministration/configurationparameters.adoc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/6b6f36c8/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/configurationparameters.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/configurationparameters.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/configurationparameters.adoc
index fa70c8d..d8246f1 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/configurationparameters.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/systemadministration/configurationparameters.adoc
@@ -43,7 +43,7 @@ processes, including <<password-reset,password reset>>;
application) is allowed;
* `passwordReset.securityQuestion` - whether the <<password-reset,password reset>> feature involves security questions;
* `authentication.attributes` - the list of attributes whose values can be passed as login name for authentication,
-defaults to `username`; please note that the related <<plain,plain schemas> must impose the unique constraint, for this
+defaults to `username`; please note that the related <<plain,plain schemas>> must impose the unique constraint, for this
mechanism to work properly;
* `authentication.statuses` - the list of <<workflow,workflow>> statuses for which users are allowed to authenticate;
[WARNING]
[5/7] syncope git commit: Fixing after BATIK-1185
Posted by il...@apache.org.
Fixing after BATIK-1185
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/86446e9f
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/86446e9f
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/86446e9f
Branch: refs/heads/master
Commit: 86446e9fd03f788b4c4beea2f6cec6dcf4146870
Parents: 6b6f36c
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Tue Apr 18 10:29:09 2017 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Tue Apr 18 10:42:51 2017 +0200
----------------------------------------------------------------------
core/logic/pom.xml | 8 ++++++++
pom.xml | 12 +++++++++++-
2 files changed, 19 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/86446e9f/core/logic/pom.xml
----------------------------------------------------------------------
diff --git a/core/logic/pom.xml b/core/logic/pom.xml
index 35518bd..70245cf 100644
--- a/core/logic/pom.xml
+++ b/core/logic/pom.xml
@@ -79,6 +79,14 @@ under the License.
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>fop</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.xmlgraphics</groupId>
+ <artifactId>batik-i18n</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.xmlgraphics</groupId>
+ <artifactId>batik-constants</artifactId>
+ </dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
http://git-wip-us.apache.org/repos/asf/syncope/blob/86446e9f/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 2f8c8a8..532c0d4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -988,7 +988,17 @@ under the License.
</exclusion>
</exclusions>
</dependency>
-
+ <dependency>
+ <groupId>org.apache.xmlgraphics</groupId>
+ <artifactId>batik-i18n</artifactId>
+ <version>1.9</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.xmlgraphics</groupId>
+ <artifactId>batik-constants</artifactId>
+ <version>1.9</version>
+ </dependency>
+
<!-- Activiti -->
<dependency>
<groupId>org.activiti</groupId>
[6/7] syncope git commit: Fixing AOP class name extraction for Camel
components
Posted by il...@apache.org.
Fixing AOP class name extraction for Camel components
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/8b8b5d13
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/8b8b5d13
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/8b8b5d13
Branch: refs/heads/master
Commit: 8b8b5d13b67864c0c0a56e8c9f582a1a4571b918
Parents: 86446e9
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Tue Apr 18 10:32:35 2017 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Tue Apr 18 10:42:57 2017 +0200
----------------------------------------------------------------------
.../main/java/org/apache/syncope/core/logic/SyncopeLogic.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/8b8b5d13/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
index 0caa8ab..0f0dcb4 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
@@ -170,9 +170,9 @@ public class SyncopeLogic extends AbstractLogic<AbstractBaseBean> {
PLATFORM_INFO.setUserWorkflowAdapter(AopUtils.getTargetClass(uwfAdapter).getName());
PLATFORM_INFO.setGroupWorkflowAdapter(AopUtils.getTargetClass(gwfAdapter).getName());
- PLATFORM_INFO.setAnyObjectProvisioningManager(aProvisioningManager.getClass().getName());
- PLATFORM_INFO.setUserProvisioningManager(uProvisioningManager.getClass().getName());
- PLATFORM_INFO.setGroupProvisioningManager(gProvisioningManager.getClass().getName());
+ PLATFORM_INFO.setAnyObjectProvisioningManager(AopUtils.getTargetClass(aProvisioningManager).getName());
+ PLATFORM_INFO.setUserProvisioningManager(AopUtils.getTargetClass(uProvisioningManager).getName());
+ PLATFORM_INFO.setGroupProvisioningManager(AopUtils.getTargetClass(gProvisioningManager).getName());
PLATFORM_INFO.setVirAttrCache(virAttrCache.getClass().getName());
PLATFORM_INFO.setPasswordGenerator(passwordGenerator.getClass().getName());
[7/7] syncope git commit: [SYNCOPE-1066] Avoid invoking REST via HTTP
to fetch the generated WADL; rather getting it via Spring bean
Posted by il...@apache.org.
[SYNCOPE-1066] Avoid invoking REST via HTTP to fetch the generated WADL; rather getting it via Spring bean
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/aa36e2ab
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/aa36e2ab
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/aa36e2ab
Branch: refs/heads/master
Commit: aa36e2ab5f5e9a14cca5f851588de01c190ce2ff
Parents: 8b8b5d1
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Tue Apr 18 10:41:41 2017 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Tue Apr 18 10:43:01 2017 +0200
----------------------------------------------------------------------
.../syncope/core/rest/cxf/WADLServlet.java | 13 ++--
.../syncope/core/rest/cxf/WadlGenerator.java | 74 +++++++++++++++++++-
.../src/main/resources/log4j2.xml | 4 ++
3 files changed, 83 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/aa36e2ab/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WADLServlet.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WADLServlet.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WADLServlet.java
index 534ae9f..e421909 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WADLServlet.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WADLServlet.java
@@ -18,10 +18,10 @@
*/
package org.apache.syncope.core.rest.cxf;
+import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.net.URL;
import java.rmi.ServerException;
import java.util.HashMap;
import java.util.Map;
@@ -39,7 +39,7 @@ import org.apache.cocoon.sax.component.XMLGenerator;
import org.apache.cocoon.sax.component.XMLSerializer;
import org.apache.cocoon.sax.component.XSLTTransformer;
import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.syncope.core.spring.ApplicationContextProvider;
public class WADLServlet extends HttpServlet {
@@ -73,10 +73,11 @@ public class WADLServlet extends HttpServlet {
Matcher schemaMatcher = SCHEMA_PATTERN.matcher(request.getServletPath());
+ WadlGenerator wadlGenerator = ApplicationContextProvider.getApplicationContext().getBean(WadlGenerator.class);
+ String wadl = wadlGenerator.getWadl();
+
Pipeline<SAXPipelineComponent> pipeline = new CachingPipeline<>();
- String wadlURL = StringUtils.substringBeforeLast(request.getRequestURL().toString(), "/")
- + "/rest/?_wadl";
- pipeline.addComponent(new XMLGenerator(new URL(wadlURL)));
+ pipeline.addComponent(new XMLGenerator(wadl));
if ("/index.html".equals(request.getServletPath())) {
XSLTTransformer xslt = new XSLTTransformer(getClass().getResource("/wadl2html/index.xsl"));
@@ -102,7 +103,7 @@ public class WADLServlet extends HttpServlet {
} else if ("/syncope.wadl".equals(request.getServletPath())) {
response.setContentType(MediaType.APPLICATION_XML);
- InputStream in = new URL(wadlURL).openStream();
+ InputStream in = new ByteArrayInputStream(wadl.getBytes());
OutputStream out = response.getOutputStream();
try {
IOUtils.copy(in, out);
http://git-wip-us.apache.org/repos/asf/syncope/blob/aa36e2ab/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
index 444e58e..8595293 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/WadlGenerator.java
@@ -18,8 +18,21 @@
*/
package org.apache.syncope.core.rest.cxf;
+import java.lang.annotation.Annotation;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import javax.ws.rs.Path;
import javax.ws.rs.container.ContainerRequestContext;
+import org.apache.commons.collections4.IterableUtils;
+import org.apache.commons.collections4.Predicate;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.common.util.ClasspathScanner;
+import org.apache.cxf.jaxrs.model.ClassResourceInfo;
+import org.apache.cxf.jaxrs.utils.InjectionUtils;
+import org.apache.cxf.jaxrs.utils.ResourceUtils;
/**
* Automatically loads available javadocs from class loader (when {@link java.net.URLClassLoader}).
@@ -28,8 +41,9 @@ public class WadlGenerator extends org.apache.cxf.jaxrs.model.wadl.WadlGenerator
private boolean inited = false;
- @Override
- public void filter(final ContainerRequestContext context) {
+ private String wadl = null;
+
+ private void init() {
synchronized (this) {
if (!inited) {
URL[] javaDocURLs = JavaDocUtils.getJavaDocURLs();
@@ -40,8 +54,64 @@ public class WadlGenerator extends org.apache.cxf.jaxrs.model.wadl.WadlGenerator
inited = true;
}
}
+ }
+ @Override
+ public void filter(final ContainerRequestContext context) {
+ init();
super.filter(context);
}
+ public String getWadl() {
+ synchronized (this) {
+ if (wadl == null) {
+ init();
+
+ List<Class<?>> resourceClasses = new ArrayList<>();
+ try {
+ List<Class<? extends Annotation>> anns = new ArrayList<>();
+ anns.add(Path.class);
+ Map<Class<? extends Annotation>, Collection<Class<?>>> discoveredClasses =
+ ClasspathScanner.findClasses(ClasspathScanner.parsePackages(
+ "org.apache.syncope.common.rest.api.service"),
+ anns);
+ if (discoveredClasses.containsKey(Path.class)) {
+ resourceClasses.addAll(discoveredClasses.get(Path.class));
+ }
+ } catch (Exception e) {
+ // ignore
+ }
+
+ List<ClassResourceInfo> classResourceInfos = new ArrayList<>();
+ for (final Class<?> beanClass : resourceClasses) {
+ ClassResourceInfo cri = IterableUtils.find(classResourceInfos, new Predicate<ClassResourceInfo>() {
+
+ @Override
+ public boolean evaluate(final ClassResourceInfo cri) {
+ return cri.isCreatedFromModel() && cri.isRoot()
+ && cri.getServiceClass().isAssignableFrom(beanClass);
+ }
+ });
+ if (cri != null) {
+ if (!InjectionUtils.isConcreteClass(cri.getServiceClass())) {
+ cri = new ClassResourceInfo(cri);
+ classResourceInfos.add(cri);
+ }
+ cri.setResourceClass(beanClass);
+ continue;
+ }
+
+ cri = ResourceUtils.createClassResourceInfo(
+ beanClass, beanClass, true, true, BusFactory.getDefaultBus());
+ if (cri != null) {
+ classResourceInfos.add(cri);
+ }
+ }
+
+ wadl = generateWADL("/", classResourceInfos, false, null, null).toString();
+ }
+ }
+
+ return wadl;
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/aa36e2ab/fit/core-reference/src/main/resources/log4j2.xml
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/main/resources/log4j2.xml b/fit/core-reference/src/main/resources/log4j2.xml
index bc4771c..19f5cc4 100644
--- a/fit/core-reference/src/main/resources/log4j2.xml
+++ b/fit/core-reference/src/main/resources/log4j2.xml
@@ -144,6 +144,10 @@ under the License.
<appender-ref ref="mainFile"/>
<appender-ref ref="main"/>
</asyncLogger>
+ <asyncLogger name="org.apache.cocoon" additivity="false" level="ERROR">
+ <appender-ref ref="mainFile"/>
+ <appender-ref ref="main"/>
+ </asyncLogger>
<asyncLogger name="org.apache.camel" additivity="false" level="ERROR">
<appender-ref ref="mainFile"/>
<appender-ref ref="main"/>