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)

Reply via email to