[ https://issues.apache.org/jira/browse/CXF-6740?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15108354#comment-15108354 ]
Sergey Beryozkin commented on CXF-6740: --------------------------------------- Hi Andriy Thanks, can we consider doing the following hack: - Swagger deps are copied into a custom folder by Maven, say they would be in /WEB-INF/swagger as opposed to /WEB-INF/libs, this is not something we'd recommend doing by default, but only for a case when multiple endpoints are available. - CXF SwaggerFeature gets a new optional property, swaggerClasspath, if set (ex, "/swagger" or "/WEB-INF/swagger")), then the feature will reflectively load Swagger with a custom URLClassLoader instance thus every CXF feature instance will have its own static Swagger storage Do you reckon it can work ? Thanks, Sergey > Collision by Swagger2Feature in two OSGI bundles > ------------------------------------------------- > > Key: CXF-6740 > URL: https://issues.apache.org/jira/browse/CXF-6740 > Project: CXF > Issue Type: Bug > Components: OSGi > Affects Versions: 3.1.4 > Environment: Apache Karaf 4.0.2 > Reporter: Andre Schlegel > Assignee: Andriy Redko > > I have two separate bundles in my karaf, which are using cxf with the > swagger2feature. The endpoints (/cxf/bpc-core and /cxf/bpc-monitor/ ) in both > bundles working fine. But I got on both swagger-URL the same swagger-File > (both for the monitor endpoints). > I'm using the blueprint for swagger2feature configuration and annotation for > the endpoints. > core bundle > {code} > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:cxf="http://cxf.apache.org/blueprint/core" > xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs" > xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 > http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd > http://cxf.apache.org/blueprint/core > http://cxf.apache.org/schemas/blueprint/core.xsd > http://cxf.apache.org/jaxrs > http://cxf.apache.org/schemas/blueprint/jaxrs.xsd"> > <!-- JAXRS providers --> > <bean id="jsonProvider" > class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider" /> > <!-- Application resources --> > <bean id="authenticationResource" > class="de.virtimo.bpc.core.resource.AuthenticationResource" /> > <bean id="configurationResource" > class="de.virtimo.bpc.core.resource.Configuration" /> > <bean id="statusResource" class="de.virtimo.bpc.core.resource.Status" /> > <!-- CXF Swagger2Feature --> > <bean id="swagger2Feature_core" > class="org.apache.cxf.jaxrs.swagger.Swagger2Feature"> > <property name="basePath" value="/bpc-core"/> > <property name="title" value="BPC Core"/> > </bean> > <cxf:bus> > <cxf:features> > <cxf:logging /> > </cxf:features> > </cxf:bus> > <jaxrs:server id="bpcServer" address="/bpc-core"> > <jaxrs:serviceBeans> > <ref component-id="authenticationResource" /> > <ref component-id="configurationResource" /> > <ref component-id="statusResource" /> > </jaxrs:serviceBeans> > <jaxrs:providers> > <ref component-id="jsonProvider" /> > </jaxrs:providers> > <jaxrs:features> > <ref component-id="swagger2Feature_core" /> > </jaxrs:features> > </jaxrs:server> > </blueprint> > {code} > Monitor Bundle > {code} > <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:cxf="http://cxf.apache.org/blueprint/core" > xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs" > xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 > http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd > http://cxf.apache.org/blueprint/core > http://cxf.apache.org/schemas/blueprint/core.xsd > http://cxf.apache.org/jaxrs > http://cxf.apache.org/schemas/blueprint/jaxrs.xsd"> > <!-- JAXRS providers --> > <bean id="jsonProvider" > class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider" /> > <!-- Application resources --> > <bean id="monitorResource" > class="de.virtimo.bpc.module.monitor.resource.Monitor" /> > <!-- CXF Swagger2Feature --> > <bean id="swagger2Feature_monitor" > class="org.apache.cxf.jaxrs.swagger.Swagger2Feature"> > <property name="basePath" value="/bpc-monitor"/>Center"/> > <property name="title" value="BPC Monitor"/> > </bean> > <cxf:bus> > <cxf:features> > <cxf:logging /> > </cxf:features> > </cxf:bus> > <jaxrs:server id="bpcMonitor" address="/bpc-monitor"> > <jaxrs:serviceBeans> > <ref component-id="monitorResource" /> > </jaxrs:serviceBeans> > <jaxrs:providers> > <ref component-id="jsonProvider" /> > </jaxrs:providers> > <jaxrs:features> > <ref component-id="swagger2Feature_monitor" /> > </jaxrs:features> > </jaxrs:server> > </blueprint> > {code} > I got the swagger-file for the monitor bundle on /cxf/bpc-core/swagger.json > and /cxf/bpc-monitor/swagger.json > Anyone suggestion how to handle this scenario? -- This message was sent by Atlassian JIRA (v6.3.4#6332)