Do not initialize if no swagger-jaxrs classes are found
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/dcaaabff Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/dcaaabff Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/dcaaabff Branch: refs/heads/master Commit: dcaaabff35c696eeb188acaf19af20c0b88e97a6 Parents: afe7a56 Author: Francesco Chicchiriccò <[email protected]> Authored: Wed Dec 2 15:37:20 2015 +0100 Committer: Francesco Chicchiriccò <[email protected]> Committed: Wed Dec 2 15:42:58 2015 +0100 ---------------------------------------------------------------------- .../jaxrs/swagger/AbstractSwaggerFeature.java | 28 ++++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/dcaaabff/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java ---------------------------------------------------------------------- diff --git a/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java b/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java index 87dfdfe..08d2e16 100644 --- a/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java +++ b/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java @@ -25,6 +25,13 @@ import org.apache.cxf.jaxrs.JAXRSServiceFactoryBean; import org.apache.cxf.jaxrs.model.AbstractResourceInfo; public abstract class AbstractSwaggerFeature extends AbstractFeature { + + private static final boolean SWAGGER_JAXRS_AVAILABLE; + + static { + SWAGGER_JAXRS_AVAILABLE = isSwaggerJaxRsAvailable(); + } + protected boolean scan = true; protected boolean runAsFilter; private String resourcePackage; @@ -39,13 +46,24 @@ public abstract class AbstractSwaggerFeature extends AbstractFeature { private String termsOfServiceUrl; private String filterClass; + private static boolean isSwaggerJaxRsAvailable() { + try { + Class.forName("io.swagger.jaxrs.DefaultParameterExtension"); + return true; + } catch (Throwable ex) { + return false; + } + } + @Override public void initialize(Server server, Bus bus) { - calculateDefaultResourcePackage(server); - calculateDefaultBasePath(server); - addSwaggerResource(server); - - initializeProvider(server.getEndpoint(), bus); + if (SWAGGER_JAXRS_AVAILABLE) { + calculateDefaultResourcePackage(server); + calculateDefaultBasePath(server); + addSwaggerResource(server); + + initializeProvider(server.getEndpoint(), bus); + } } protected abstract void addSwaggerResource(Server server);
