Andre Schlegel created CXF-6740:
-----------------------------------
Summary: 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
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)