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 2016/08/04 10:06:24 UTC
[1/3] syncope git commit: Upgrading Swagger UI
Repository: syncope
Updated Branches:
refs/heads/master 4a6bd031d -> 69df3afa3
Upgrading Swagger UI
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/a40d1aa3
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/a40d1aa3
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/a40d1aa3
Branch: refs/heads/master
Commit: a40d1aa313e12c91641caf8d09b60e269319292d
Parents: 4a6bd03
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Thu Aug 4 11:42:24 2016 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Thu Aug 4 11:42:24 2016 +0200
----------------------------------------------------------------------
.../syncope/core/rest/cxf/Swagger2Feature.java | 271 +++++++++++++++++++
.../META-INF/resources/swagger/index.html | 81 +++---
pom.xml | 2 +-
3 files changed, 306 insertions(+), 48 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/a40d1aa3/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/Swagger2Feature.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/Swagger2Feature.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/Swagger2Feature.java
index fa7ce9a..1578032 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/Swagger2Feature.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/Swagger2Feature.java
@@ -18,9 +18,54 @@
*/
package org.apache.syncope.core.rest.cxf;
+import io.swagger.jaxrs.config.BeanConfig;
+import io.swagger.jaxrs.config.DefaultReaderConfig;
+import io.swagger.jaxrs.config.ReaderConfig;
+import io.swagger.jaxrs.listing.ApiListingResource;
+import io.swagger.jaxrs.listing.SwaggerSerializers;
+import io.swagger.models.Operation;
+import io.swagger.models.Path;
+import io.swagger.models.Swagger;
+import io.swagger.models.Tag;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.net.URI;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.regex.Pattern;
+import javax.servlet.ServletContext;
+import javax.ws.rs.HttpMethod;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerRequestFilter;
+import javax.ws.rs.container.PreMatching;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.UriInfo;
+import org.apache.commons.collections4.ComparatorUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.apache.commons.lang3.tuple.Pair;
import org.apache.cxf.Bus;
import org.apache.cxf.endpoint.Server;
+import org.apache.cxf.jaxrs.JAXRSServiceFactoryBean;
+import org.apache.cxf.jaxrs.ext.MessageContext;
+import org.apache.cxf.jaxrs.model.ClassResourceInfo;
+import org.apache.cxf.jaxrs.model.OperationResourceInfo;
+import org.apache.cxf.jaxrs.model.doc.DocumentationProvider;
+import org.apache.cxf.jaxrs.provider.ServerProviderFactory;
+import org.apache.cxf.jaxrs.utils.InjectionUtils;
+import org.apache.cxf.jaxrs.utils.JAXRSUtils;
/**
* Automatically loads available javadocs from class loader (when {@link java.net.URLClassLoader}).
@@ -37,4 +82,230 @@ public class Swagger2Feature extends org.apache.cxf.jaxrs.swagger.Swagger2Featur
super.initialize(server, bus);
}
+ // ------- Remove the code below this point when CXF-6990 is part of next CXF release (3.1.8?) -----
+ @Override
+ protected void addSwaggerResource(final Server server, final Bus bus) {
+ List<Object> swaggerResources = new LinkedList<>();
+ ApiListingResource apiListingResource = new ApiListingResource();
+ swaggerResources.add(apiListingResource);
+ if (SWAGGER_UI_RESOURCE_ROOT != null) {
+ swaggerResources.add(new SwaggerUIService());
+ bus.setProperty("swagger.service.ui.available", "true");
+ }
+ JAXRSServiceFactoryBean sfb =
+ (JAXRSServiceFactoryBean) server.getEndpoint().get(JAXRSServiceFactoryBean.class.getName());
+ sfb.setResourceClassesFromBeans(swaggerResources);
+
+ List<ClassResourceInfo> cris = sfb.getClassResourceInfo();
+
+ List<Object> providers = new ArrayList<>();
+ for (ClassResourceInfo cri : cris) {
+ if (ApiListingResource.class == cri.getResourceClass()) {
+ InjectionUtils.injectContextProxies(cri, apiListingResource);
+ }
+ }
+ if (SWAGGER_UI_RESOURCE_ROOT != null) {
+ providers.add(new SwaggerUIFilter());
+ }
+ providers.add(new Swagger2Serializers(dynamicBasePath, replaceTags, javadocProvider, cris));
+ providers.add(new ReaderConfigFilter());
+ ((ServerProviderFactory) server.getEndpoint().get(
+ ServerProviderFactory.class.getName())).setUserProviders(providers);
+
+ BeanConfig beanConfig = new BeanConfig();
+ beanConfig.setResourcePackage(getResourcePackage());
+ beanConfig.setVersion(getVersion());
+ String basePath = getBasePath();
+ beanConfig.setBasePath(basePath);
+ beanConfig.setHost(getHost());
+ beanConfig.setSchemes(getSchemes());
+ beanConfig.setTitle(getTitle());
+ beanConfig.setDescription(getDescription());
+ beanConfig.setContact(getContact());
+ beanConfig.setLicense(getLicense());
+ beanConfig.setLicenseUrl(getLicenseUrl());
+ beanConfig.setTermsOfServiceUrl(getTermsOfServiceUrl());
+ beanConfig.setScan(isScan());
+ beanConfig.setPrettyPrint(isPrettyPrint());
+ beanConfig.setFilterClass(getFilterClass());
+ }
+
+ protected class ReaderConfigFilter implements ContainerRequestFilter {
+
+ @Context
+ protected MessageContext mc;
+
+ @Override
+ public void filter(final ContainerRequestContext requestContext) throws IOException {
+ ServletContext servletContext = mc.getServletContext();
+ if (servletContext != null && servletContext.getAttribute(ReaderConfig.class.getName()) == null) {
+ if (mc.getServletConfig() != null
+ && Boolean.valueOf(mc.getServletConfig().getInitParameter("scan.all.resources"))) {
+ addReaderConfig(mc.getServletConfig().getInitParameter("ignore.routes"));
+ } else if (isScanAllResources()) {
+ addReaderConfig(getIgnoreRoutes());
+ }
+ }
+ }
+
+ protected void addReaderConfig(final String ignoreRoutesParam) {
+ DefaultReaderConfig rc = new DefaultReaderConfig();
+ rc.setScanAllResources(true);
+ if (ignoreRoutesParam != null) {
+ Set<String> routes = new LinkedHashSet<>();
+ for (String route : StringUtils.split(ignoreRoutesParam, ",")) {
+ routes.add(route.trim());
+ }
+ rc.setIgnoredRoutes(routes);
+ }
+ mc.getServletContext().setAttribute(ReaderConfig.class.getName(), rc);
+ }
+ }
+
+ @PreMatching
+ protected static class SwaggerUIFilter implements ContainerRequestFilter {
+
+ private static final Pattern PATTERN =
+ Pattern.compile(".*[.]js|/css/.*|/images/.*|/lib/.*|.*ico|/fonts/.*");
+
+ @Override
+ public void filter(final ContainerRequestContext rc) throws IOException {
+ if (HttpMethod.GET.equals(rc.getRequest().getMethod())) {
+ UriInfo ui = rc.getUriInfo();
+ String path = "/" + ui.getPath();
+ if (PATTERN.matcher(path).matches()) {
+ rc.setRequestUri(URI.create("api-docs" + path));
+ }
+ }
+ }
+ }
+
+ protected static class Swagger2Serializers extends SwaggerSerializers {
+
+ protected final boolean dynamicBasePath;
+
+ protected final boolean replaceTags;
+
+ protected final DocumentationProvider javadocProvider;
+
+ protected final List<ClassResourceInfo> cris;
+
+ public Swagger2Serializers(
+ final boolean dynamicBasePath,
+ final boolean replaceTags,
+ final DocumentationProvider javadocProvider,
+ final List<ClassResourceInfo> cris) {
+
+ super();
+
+ this.dynamicBasePath = dynamicBasePath;
+ this.replaceTags = replaceTags;
+ this.javadocProvider = javadocProvider;
+ this.cris = cris;
+ }
+
+ @Override
+ public void writeTo(
+ final Swagger data,
+ final Class<?> type,
+ final Type genericType,
+ final Annotation[] annotations,
+ final MediaType mediaType,
+ final MultivaluedMap<String, Object> headers,
+ final OutputStream out) throws IOException {
+
+ if (dynamicBasePath) {
+ MessageContext ctx = JAXRSUtils.createContextValue(
+ JAXRSUtils.getCurrentMessage(), null, MessageContext.class);
+ data.setBasePath(StringUtils.substringBeforeLast(ctx.getHttpServletRequest().
+ getRequestURI(), "/"));
+ }
+
+ if (replaceTags || javadocProvider != null) {
+ Map<String, ClassResourceInfo> operations = new HashMap<>();
+ Map<Pair<String, String>, OperationResourceInfo> methods = new HashMap<>();
+ for (ClassResourceInfo cri : cris) {
+ for (OperationResourceInfo ori : cri.getMethodDispatcher().getOperationResourceInfos()) {
+ String normalizedPath = getNormalizedPath(
+ cri.getURITemplate().getValue(), ori.getURITemplate().getValue());
+
+ operations.put(normalizedPath, cri);
+ methods.put(ImmutablePair.of(ori.getHttpMethod(), normalizedPath), ori);
+ }
+ }
+
+ if (replaceTags && data.getTags() != null) {
+ data.getTags().clear();
+ }
+ for (final Map.Entry<String, Path> entry : data.getPaths().entrySet()) {
+ Tag tag = null;
+ if (replaceTags && operations.containsKey(entry.getKey())) {
+ ClassResourceInfo cri = operations.get(entry.getKey());
+
+ tag = new Tag();
+ tag.setName(cri.getURITemplate().getValue());
+ if (javadocProvider != null) {
+ tag.setDescription(javadocProvider.getClassDoc(cri));
+ }
+
+ data.addTag(tag);
+ }
+
+ for (Map.Entry<io.swagger.models.HttpMethod, Operation> subentry : entry.getValue().
+ getOperationMap().entrySet()) {
+ if (replaceTags && tag != null) {
+ subentry.getValue().setTags(Collections.singletonList(tag.getName()));
+ }
+
+ Pair<String, String> key = ImmutablePair.of(subentry.getKey().name(), entry.getKey());
+ if (methods.containsKey(key) && javadocProvider != null) {
+ OperationResourceInfo ori = methods.get(key);
+
+ subentry.getValue().setSummary(javadocProvider.getMethodDoc(ori));
+ for (int i = 0; i < subentry.getValue().getParameters().size(); i++) {
+ subentry.getValue().getParameters().get(i).
+ setDescription(javadocProvider.getMethodParameterDoc(ori, i));
+ }
+
+ if (subentry.getValue().getResponses() != null
+ && !subentry.getValue().getResponses().isEmpty()) {
+
+ subentry.getValue().getResponses().entrySet().iterator().next().getValue().
+ setDescription(javadocProvider.getMethodResponseDoc(ori));
+ }
+ }
+ }
+ }
+ }
+ if (replaceTags && data.getTags() != null) {
+ Collections.sort(data.getTags(), new Comparator<Tag>() {
+
+ @Override
+ public int compare(final Tag tag1, final Tag tag2) {
+ return ComparatorUtils.<String>naturalComparator().compare(tag1.getName(), tag2.getName());
+ }
+ });
+ }
+
+ super.writeTo(data, type, genericType, annotations, mediaType, headers, out);
+ }
+
+ protected String getNormalizedPath(final String classResourcePath, final String operationResourcePath) {
+ StringBuilder normalizedPath = new StringBuilder();
+
+ String[] segments = org.apache.commons.lang3.StringUtils.split(classResourcePath + operationResourcePath,
+ "/");
+ for (String segment : segments) {
+ if (!org.apache.commons.lang3.StringUtils.isEmpty(segment)) {
+ normalizedPath.append("/").append(segment);
+ }
+ }
+ // Adapt to Swagger's path expression
+ if (normalizedPath.toString().endsWith(":.*}")) {
+ normalizedPath.setLength(normalizedPath.length() - 4);
+ normalizedPath.append('}');
+ }
+ return StringUtils.EMPTY.equals(normalizedPath.toString()) ? "/" : normalizedPath.toString();
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/a40d1aa3/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html
----------------------------------------------------------------------
diff --git a/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html b/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html
index fabe736..889cd92 100644
--- a/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html
+++ b/ext/swagger-ui/src/main/resources/META-INF/resources/swagger/index.html
@@ -31,15 +31,18 @@ under the License.
<link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
<link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/>
<link href='css/print.css' media='print' rel='stylesheet' type='text/css'/>
+
+ <script src='lib/object-assign-pollyfill.js' type='text/javascript'></script>
<script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script>
<script src='lib/jquery.slideto.min.js' type='text/javascript'></script>
<script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>
<script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
<script src='lib/handlebars-2.0.0.js' type='text/javascript'></script>
- <script src='lib/underscore-min.js' type='text/javascript'></script>
+ <script src='lib/lodash.min.js' type='text/javascript'></script>
<script src='lib/backbone-min.js' type='text/javascript'></script>
<script src='swagger-ui.js' type='text/javascript'></script>
- <script src='lib/highlight.7.3.pack.js' type='text/javascript'></script>
+ <script src='lib/highlight.9.1.0.pack.js' type='text/javascript'></script>
+ <script src='lib/highlight.9.1.0.pack_extended.js' type='text/javascript'></script>
<script src='lib/jsoneditor.min.js' type='text/javascript'></script>
<script src='lib/marked.js' type='text/javascript'></script>
<script src='lib/swagger-oauth.js' type='text/javascript'></script>
@@ -51,15 +54,19 @@ under the License.
<script type="text/javascript">
$(function () {
- // <ApacheSyncope>
- /*var url = window.location.search.match(/url=([^&]+)/);
+ // <ApacheSyncope>
+ /*var url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "http://petstore.swagger.io/v2/swagger.json";
- }*/
- var url = window.location.href.substring(0, window.location.href.lastIndexOf('/')) + "/../rest/swagger.json";
- // </ApacheSyncope>
+ }*/
+ var url = window.location.href.substring(0, window.location.href.lastIndexOf('/')) + "/../rest/swagger.json";
+ // </ApacheSyncope>
+
+ hljs.configure({
+ highlightSizeThreshold: 5000
+ });
// Pre load translate...
if(window.SwaggerTranslator) {
@@ -75,7 +82,7 @@ under the License.
clientId: "your-client-id",
clientSecret: "your-client-secret-if-required",
realm: "your-realms",
- appName: "your-app-name",
+ appName: "your-app-name",
scopeSeparator: ",",
additionalQueryStringParams: {}
});
@@ -84,11 +91,7 @@ under the License.
if(window.SwaggerTranslator) {
window.SwaggerTranslator.translate();
}
-
- $('pre code').each(function(i, e) {
- hljs.highlightBlock(e)
- });
-
+
addApiKeyAuthorization();
},
onFailure: function(data) {
@@ -96,43 +99,27 @@ under the License.
},
docExpansion: "none",
jsonEditor: false,
- apisSorter: "alpha",
defaultModelRendering: 'schema',
showRequestHeaders: false
});
- function addApiKeyAuthorization() {
- // <ApacheSyncope>
- /*var key = encodeURIComponent($('#input_apiKey')[0].value);
- if (key && key.trim() != "") {
- var apiKeyAuth = new SwaggerClient.ApiKeyAuthorization("api_key", key, "query");
- window.swaggerUi.api.clientAuthorizations.add("api_key", apiKeyAuth);
- log("added key " + key);
- }*/
- var username = $('#input_username').val().trim();
- var password = $('#input_password').val().trim();
- if (username !== "" && password !== "") {
- window.swaggerUi.api.clientAuthorizations.add(
+ // <ApacheSyncope>
+ function addApiKeyAuthorization() {
+ var username = $('#input_username').val().trim();
+ var password = $('#input_password').val().trim();
+ if (username !== "" && password !== "") {
+ window.swaggerUi.api.clientAuthorizations.add(
"basicAuth", new SwaggerClient.PasswordAuthorization(username, password));
}
- // </ApacheSyncope>
}
- // <ApacheSyncope>
- //$('#input_apiKey').change(addApiKeyAuthorization);
- $("#input_username").blur(function () {
+ $("#input_username").blur(function () {
addApiKeyAuthorization();
- });
- $("#input_password").blur(function () {
+ });
+ $("#input_password").blur(function () {
addApiKeyAuthorization();
- });
- // </ApacheSyncope>
-
- // if you have an apiKey you would like to pre-populate on the page for demonstration purposes...
- /*
- var apiKey = "myApiKeyXXXX123456789";
- $('#input_apiKey').val(apiKey);
- */
+ });
+ // </ApacheSyncope>
window.swaggerUi.load();
@@ -148,15 +135,15 @@ under the License.
<body class="swagger-section">
<div id='header'>
<div class="swagger-ui-wrap">
- <a id="logo" href="http://swagger.io">swagger</a>
+ <a id="logo" href="http://swagger.io"><img class="logo__img" alt="swagger" height="30" width="30" src="images/logo_small.png" /><span class="logo__title">swagger</span></a>
<form id='api_selector'>
- <!-- <ApacheSyncope -->
+ <!-- <ApacheSyncope -->
<!--<div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/></div>-->
- <!--<div class='input'><input placeholder="api_key" id="input_apiKey" name="apiKey" type="text"/></div>-->
- <!--<div class='input'><a id="explore" href="#" data-sw-translate>Explore</a></div>-->
- <div class='input'><input placeholder="username" id="input_username" name="username" type="text"/></div>
- <div class='input'><input placeholder="password" id="input_password" name="password" type="password"/></div>
- <!-- </ApacheSyncope -->
+ <div class='input'><input placeholder="username" id="input_username" name="username" type="text"/></div>
+ <div id='auth_container'></div>
+ <!--<div class='input'><a id="explore" class="header__btn" href="#" data-sw-translate>Explore</a></div>-->
+ <div class='input'><input placeholder="password" id="input_password" name="password" type="password"/></div>
+ <!-- </ApacheSyncope -->
</form>
</div>
</div>
http://git-wip-us.apache.org/repos/asf/syncope/blob/a40d1aa3/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index be678a4..874ea82 100644
--- a/pom.xml
+++ b/pom.xml
@@ -393,7 +393,7 @@ under the License.
<activiti-modeler.directory>${project.build.directory}/activiti-modeler</activiti-modeler.directory>
<swagger-core.version>1.5.9</swagger-core.version>
- <swagger-ui.version>2.1.4</swagger-ui.version>
+ <swagger-ui.version>2.1.5</swagger-ui.version>
<jquery.version>2.2.4</jquery.version>
<jquery-ui.version>1.11.4</jquery-ui.version>
[3/3] syncope git commit: Updating site content with doc build
instruction + buildbot
Posted by il...@apache.org.
Updating site content with doc build instruction + buildbot
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/69df3afa
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/69df3afa
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/69df3afa
Branch: refs/heads/master
Commit: 69df3afa3b57567af93e76d7b2c50e7a66c630a0
Parents: 7bd4656
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Thu Aug 4 12:06:16 2016 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Thu Aug 4 12:06:16 2016 +0200
----------------------------------------------------------------------
src/site/xdoc/building.xml | 16 ++++++++++++----
src/site/xdoc/integration.xml | 6 ++++++
2 files changed, 18 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/69df3afa/src/site/xdoc/building.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/building.xml b/src/site/xdoc/building.xml
index 75126da..88ad666 100644
--- a/src/site/xdoc/building.xml
+++ b/src/site/xdoc/building.xml
@@ -94,10 +94,10 @@ under the License.
<h4>JRebel</h4>
As with Debug, but with <a href="http://zeroturnaround.com/software/jrebel/">JRebel</a> features enabled.
<source>$ export REBEL_HOME=/opt/jrebel
- $ mvn -Pjrebel,all</source>
+$ mvn -Pjrebel,all</source>
or, without Activiti and Camel support
<source>$ export REBEL_HOME=/opt/jrebel
- $ mvn -Pjrebel</source>
+$ mvn -Pjrebel</source>
<h4>DBMSes</h4>
@@ -158,7 +158,7 @@ under the License.
<h4>JRebel</h4>
As with Debug, but with <a href="http://zeroturnaround.com/software/jrebel/">JRebel</a> features enabled.
<source>$ export REBEL_HOME=/opt/jrebel
- $ mvn -Pjrebel</source>
+$ mvn -Pjrebel</source>
</subsection>
<subsection name="fit/enduser-reference">
@@ -171,8 +171,16 @@ under the License.
<h4>JRebel</h4>
As with Debug, but with <a href="http://zeroturnaround.com/software/jrebel/">JRebel</a> features enabled.
<source>$ export REBEL_HOME=/opt/jrebel
- $ mvn -Pjrebel</source>
+$ mvn -Pjrebel</source>
</subsection>
</section>
+
+ <section name="Building documentation">
+ <p>
+ To build Syncope documentation execute (from within the check-out directory):
+ <source>$ mvn -N -P site clean generate-resources</source>
+ The documentation artifacts are now be available under <tt>target/generated-docs/</tt>.
+ </p>
+ </section>
</body>
</document>
http://git-wip-us.apache.org/repos/asf/syncope/blob/69df3afa/src/site/xdoc/integration.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/integration.xml b/src/site/xdoc/integration.xml
index 94b5ded..186a8c5 100644
--- a/src/site/xdoc/integration.xml
+++ b/src/site/xdoc/integration.xml
@@ -39,5 +39,11 @@ under the License.
</a>
</p>
</section>
+
+ <section name="Buildbot">
+ <p>
+ <source><a href="https://ci.apache.org/builders/syncope-master-docs">https://ci.apache.org/builders/syncope-master-docs</a></source>
+ </p>
+ </section>
</body>
</document>
[2/3] syncope git commit: [SYNCOPE-809] Fixing javadoc errors
Posted by il...@apache.org.
[SYNCOPE-809] Fixing javadoc errors
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/7bd46563
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/7bd46563
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/7bd46563
Branch: refs/heads/master
Commit: 7bd465636f0985d1e376479d0664d0dc3ddec4f3
Parents: a40d1aa
Author: Francesco Chicchiricc� <il...@apache.org>
Authored: Thu Aug 4 12:05:53 2016 +0200
Committer: Francesco Chicchiricc� <il...@apache.org>
Committed: Thu Aug 4 12:05:53 2016 +0200
----------------------------------------------------------------------
.../eclipse/plugin/editors/htmlhelpers/HTMLAutoEditStrategy.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/7bd46563/ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/src/main/java/org/apache/syncope/ide/eclipse/plugin/editors/htmlhelpers/HTMLAutoEditStrategy.java
----------------------------------------------------------------------
diff --git a/ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/src/main/java/org/apache/syncope/ide/eclipse/plugin/editors/htmlhelpers/HTMLAutoEditStrategy.java b/ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/src/main/java/org/apache/syncope/ide/eclipse/plugin/editors/htmlhelpers/HTMLAutoEditStrategy.java
index 8761e88..0609a24 100644
--- a/ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/src/main/java/org/apache/syncope/ide/eclipse/plugin/editors/htmlhelpers/HTMLAutoEditStrategy.java
+++ b/ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/src/main/java/org/apache/syncope/ide/eclipse/plugin/editors/htmlhelpers/HTMLAutoEditStrategy.java
@@ -90,8 +90,8 @@ public class HTMLAutoEditStrategy extends DefaultIndentLineAutoEditStrategy {
* Returns the line number of the next bracket after end.
*
* @param document - the document being parsed
- * @param line - the line to start searching back from
- * @param end - the end position to search back from
+ * @param linearg - the line to start searching back from
+ * @param endarg - the end position to search back from
* @param closingBracketIncrease - the number of brackets to skip
* @return the line number of the next matching bracket after end
* @throws BadLocationException in case the line numbers are invalid in the document