Skip to content

Commit

Permalink
Merge pull request #522 from kylinsoong/master
Browse files Browse the repository at this point in the history
TEIID-3521: Use Swagger UI add a api-doc for VDB Rest Service
  • Loading branch information
rareddy committed Sep 8, 2015
2 parents 3b653e6 + a1bbf95 commit b7d8774
Show file tree
Hide file tree
Showing 19 changed files with 777 additions and 40 deletions.
57 changes: 56 additions & 1 deletion build/assembly/jboss-as7/dist.xml
Expand Up @@ -225,6 +225,13 @@
<exclude>org.wololo:jts2geojson</exclude>
<exclude>org.osgeo:proj4j</exclude>
<exclude>com.vividsolutions:jts</exclude>
<exclude>io.swagger:*</exclude>
<exclude>com.fasterxml.jackson.dataformat:*</exclude>
<exclude>com.fasterxml.jackson.module:jackson-module-jaxb-annotations</exclude>
<exclude>com.fasterxml.jackson.datatype:jackson-datatype-joda</exclude>
<exclude>com.fasterxml.jackson.jaxrs:*</exclude>
<exclude>org.reflections:reflections</exclude>
<exclude>com.google.code.findbugs:annotations</exclude>
</excludes>
<useProjectArtifact>true</useProjectArtifact>
<unpack>false</unpack>
Expand Down Expand Up @@ -274,7 +281,55 @@
<include>com.vividsolutions:jts</include>
</includes>
<outputDirectory>${jbossas-module-root}/com/vividsolutions/jts/main</outputDirectory>
</dependencySet>
</dependencySet>
<dependencySet>
<useTransitiveDependencies>true</useTransitiveDependencies>
<includes>
<include>io.swagger:swagger-jaxrs</include>
<include>io.swagger:swagger-core</include>
<include>io.swagger:swagger-models</include>
<include>io.swagger:swagger-annotations</include>
</includes>
<outputDirectory>${jbossas-module-root}/io/swagger/main</outputDirectory>
</dependencySet>
<dependencySet>
<includes>
<include>com.fasterxml.jackson.dataformat:jackson-dataformat-yaml</include>
</includes>
<outputDirectory>${jbossas-module-root}/com/fasterxml/jackson/dataformat/yaml/main</outputDirectory>
</dependencySet>
<dependencySet>
<includes>
<include>com.fasterxml.jackson.dataformat:jackson-dataformat-xml</include>
<include>com.fasterxml.jackson.module:jackson-module-jaxb-annotations</include>
</includes>
<outputDirectory>${jbossas-module-root}/com/fasterxml/jackson/dataformat/xml/main</outputDirectory>
</dependencySet>
<dependencySet>
<includes>
<include>com.fasterxml.jackson.datatype:jackson-datatype-joda</include>
</includes>
<outputDirectory>${jbossas-module-root}/com/fasterxml/jackson/datatype/main</outputDirectory>
</dependencySet>
<dependencySet>
<includes>
<include>com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider</include>
<include>com.fasterxml.jackson.jaxrs:jackson-jaxrs-base</include>
</includes>
<outputDirectory>${jbossas-module-root}/com/fasterxml/jackson/jaxrs/main</outputDirectory>
</dependencySet>
<dependencySet>
<includes>
<include>com.google.code.findbugs:annotations</include>
</includes>
<outputDirectory>${jbossas-module-root}/com/google/code/findbugs/main</outputDirectory>
</dependencySet>
<dependencySet>
<includes>
<include>org.reflections:reflections</include>
</includes>
<outputDirectory>${jbossas-module-root}/org/reflections/main</outputDirectory>
</dependencySet>
</dependencySets>
<outputDirectory>${jbossas-module-root}/org/jboss/teiid/main</outputDirectory>
</binaries>
Expand Down
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.fasterxml.jackson.dataformat.xml">
<properties>
<property name="jboss.api" value="private"/>
</properties>
<resources>
<resource-root path="jackson-dataformat-xml-${version.com.fasterxml.jackson.swagger}.jar" />
<resource-root path="jackson-module-jaxb-annotations-${version.com.fasterxml.jackson.swagger}.jar" />
</resources>

<dependencies>
<module name="com.fasterxml.jackson" />
<module name="org.codehaus.woodstox" />
</dependencies>
</module>
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.fasterxml.jackson.dataformat.yaml">
<properties>
<property name="jboss.api" value="private"/>
</properties>
<resources>
<resource-root path="jackson-dataformat-yaml-${version.com.fasterxml.jackson.swagger}.jar" />
</resources>

<dependencies>
<module name="org.yaml.snakeyaml" />
</dependencies>
</module>
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.fasterxml.jackson.datatype">
<properties>
<property name="jboss.api" value="private"/>
</properties>
<resources>
<resource-root path="jackson-datatype-joda-${version.com.fasterxml.jackson.swagger}.jar" />
</resources>

<dependencies>
<module name="org.joda.time" />
</dependencies>

</module>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.fasterxml.jackson.jaxrs">
<properties>
<property name="jboss.api" value="private"/>
</properties>
<resources>
<resource-root path="jackson-jaxrs-json-provider-${version.com.fasterxml.jackson.swagger}.jar" />
<resource-root path="jackson-jaxrs-base-${version.com.fasterxml.jackson.swagger}.jar" />
</resources>
</module>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.google.code.findbugs">
<properties>
<property name="jboss.api" value="private"/>
</properties>
<resources>
<resource-root path="annotations-${version.com.google.code.findbugs}.jar" />
</resources>

</module>
30 changes: 30 additions & 0 deletions build/kits/jboss-as7/modules/io/swagger/main/module.xml
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="io.swagger">

<properties>
<property name="jboss.api" value="private"/>
</properties>

<resources>
<resource-root path="swagger-annotations-${version.swagger-jaxrs}.jar" />
<resource-root path="swagger-core-${version.swagger-jaxrs}.jar" />
<resource-root path="swagger-jaxrs-${version.swagger-jaxrs}.jar" />
<resource-root path="swagger-models-${version.swagger-jaxrs}.jar" />
</resources>

<dependencies>
<module name="com.fasterxml.jackson" />
<module name="com.fasterxml.jackson.dataformat.yaml" />
<module name="com.fasterxml.jackson.dataformat.xml" />
<module name="com.fasterxml.jackson.datatype" />
<module name="com.fasterxml.jackson.jaxrs" />
<module name="com.google.guava" />
<module name="org.apache.commons.lang" slot="3.3.2"/>
<module name="org.reflections" />
<module name="org.slf4j"/>
<module name="javax.ws.rs.api"/>
<module name="javax.servlet.api"/>
<module name="javax.xml.bind.api"/>
</dependencies>

</module>
3 changes: 3 additions & 0 deletions build/kits/jboss-as7/modules/org/jboss/teiid/main/module.xml
Expand Up @@ -65,6 +65,9 @@
<module name="org.jboss.as.cli"/> <!-- Admin -->
<module name="org.jboss.as.controller-client"/> <!-- Admin -->
<module name="org.jboss.as.controller"/> <!-- Admin -->
<module name="io.swagger"/>
<module name="javax.servlet.api"/>
<module name="org.apache.commons.io"/>

</dependencies>

Expand Down
16 changes: 16 additions & 0 deletions build/kits/jboss-as7/modules/org/reflections/main/module.xml
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="org.reflections">
<properties>
<property name="jboss.api" value="private"/>
</properties>
<resources>
<resource-root path="reflections-${version.org.reflections}.jar" />
</resources>

<dependencies>
<module name="org.javassist" />
<module name="com.google.guava" />
<module name="com.google.code.findbugs" />
</dependencies>

</module>
47 changes: 47 additions & 0 deletions jboss-integration/pom.xml
Expand Up @@ -107,6 +107,53 @@
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-jaxrs</artifactId>
<exclusions>
<exclusion>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
<exclusion>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</exclusion>
<exclusion>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId>
</exclusion>
<exclusion>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</exclusion>
</exclusions>
</dependency>

<!-- This dependency is to read the ra.xml file details -->
Expand Down
@@ -0,0 +1,54 @@
/*
* JBoss, Home of Professional Open Source.
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership. Some portions may be licensed
* to Red Hat, Inc. under one or more contributor license agreements.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*/
package org.teiid.jboss.rest;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

public class ApiOriginFilter implements Filter {

@Override
public void init(FilterConfig filterConfig) throws ServletException {
}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

HttpServletResponse localHttpServletResponse = (HttpServletResponse)response;
localHttpServletResponse.addHeader("Access-Control-Allow-Origin", "*");
localHttpServletResponse.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
localHttpServletResponse.addHeader("Access-Control-Allow-Headers", "Origin, X-Atmosphere-tracking-id, X-Atmosphere-Framework, X-Cache-Date, Content-Type, X-Atmosphere-Transport, *");
chain.doFilter(request, response);
}

@Override
public void destroy() {
}

}
@@ -0,0 +1,65 @@
/*
* JBoss, Home of Professional Open Source.
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership. Some portions may be licensed
* to Red Hat, Inc. under one or more contributor license agreements.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*/
package org.teiid.jboss.rest;

import io.swagger.jaxrs.config.BeanConfig;

import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class BootstrapServlet extends HttpServlet {

private static final long serialVersionUID = 5704762873796188429L;

@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);

BeanConfig beanConfig = new BeanConfig();
init(beanConfig);
}

protected void init(BeanConfig beanConfig) {
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
doPost(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
String str1 = req.getContextPath();
String str2 = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + str1 + "/";
String str3 = str1 + "/api.html";
String str4 = "swagger.json";
String str5 = "/url=" + str2 + str4;
String str6 = str3 + "?" + str5;
resp.sendRedirect(str6);
}

}

0 comments on commit b7d8774

Please sign in to comment.