[ 
https://issues.apache.org/jira/browse/CXF-6221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14295674#comment-14295674
 ] 

Krystian Panek commented on CXF-6221:
-------------------------------------

Maybe it will be hard or even impossible to get that extension working on both 
OSGi and non-OSGi environments so I suggest to release just 2 versions of that 
integration.

I copied source code from your extension, and put in under a project with 
pom.xml like above and everything now works properly:

{code}
<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
    <modelVersion>4.0.0</modelVersion>
    <packaging>bundle</packaging>

    <parent>
        <groupId>com.neva.osgi</groupId>
        <artifactId>parent</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>

    <artifactId>cdicxfbridge</artifactId>
    <version>3.0.2-SNAPSHOT</version>

    <name>Neva OSGi | CDI CXF Bridge (JAX-RS support)</name>
    <description>CDI portable extension for JaxRS (CXF). Sources copied from:
        https://github.com/apache/cxf/tree/master/integration/cdi
    </description>

    <properties>
        <maven-bundle-plugin.version>2.4.0</maven-bundle-plugin.version>
        <osgi.version>5.0.0</osgi.version>
        <pax.cdi.version>0.8.0</pax.cdi.version>
        <cxf.version>3.0.2</cxf.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>${maven-bundle-plugin.version}</version>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                        <Import-Package>
                            org.apache.cxf.interceptor,
                            *
                        </Import-Package>
                        <Export-Package>
                            
com.neva.osgi.cdicxfbridge*;version=${project.version},
                            org.apache.cxf.cdi*
                        </Export-Package>
                        <Require-Capability>
                            osgi.extender;filter:="(osgi.extender=pax.cdi)"
                        </Require-Capability>
                        <Provide-Capability>
                            org.ops4j.pax.cdi.extension; extension="jaxrs-cdi"
                        </Provide-Capability>
                    </instructions>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <!-- OSGi -->
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.core</artifactId>
            <version>${osgi.version}</version>
            <scope>provided</scope>
        </dependency>

        <!-- CDI -->
        <dependency>
            <groupId>javax.enterprise</groupId>
            <artifactId>cdi-api</artifactId>
            <version>1.1-20130918</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.ops4j.pax.cdi</groupId>
            <artifactId>pax-cdi-api</artifactId>
            <version>${pax.cdi.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.ops4j.pax.cdi</groupId>
            <artifactId>pax-cdi-web-weld</artifactId>
            <version>${pax.cdi.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-atinject_1.0_spec</artifactId>
            <version>1.0</version>
            <scope>provided</scope>
        </dependency>

        <!-- CXF -->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-rs-extension-providers</artifactId>
            <version>${cxf.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
            <version>${cxf.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-core</artifactId>
            <version>${cxf.version}</version>
            <scope>provided</scope>
        </dependency>

        <!-- Other -->
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-servlet_3.0_spec</artifactId>
            <version>1.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.ops4j.pax.logging</groupId>
            <artifactId>pax-logging-api</artifactId>
            <version>1.7.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>13.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.interceptor</groupId>
            <artifactId>javax.interceptor-api</artifactId>
            <version>1.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>

    </dependencies>
</project>
{code}

> CDI integration extension does not detect annotations on Karaf
> --------------------------------------------------------------
>
>                 Key: CXF-6221
>                 URL: https://issues.apache.org/jira/browse/CXF-6221
>             Project: CXF
>          Issue Type: Bug
>          Components: Integration, JAX-RS
>            Reporter: Krystian Panek
>            Assignee: Sergey Beryozkin
>              Labels: cdi, extension, integration
>             Fix For: 3.0.4, 3.1.0
>
>         Attachments: screenshot-1.png
>
>
> I am trying to use portable extension to get working CDI 1.2 and CXF 3.0.2 on 
> Apache Karaf. I wrapped it into OSGi bundle. I installed to my container also:
> * weld 2.1.1
> * pax-cdi-1.2
> * pax-cdi-1.2-web
> * pax-cdi-web-weld
> My JAXRS resources are not found by extension because some line from class 
> **JAXRSCdiResourceExtension** returns false even annotated element contains 
> proper annotation but as a proxy (see attachment image / screenshot from 
> debugger).
> {code}
>         if (event.getAnnotated().isAnnotationPresent(ApplicationPath.class)) {
> {code}
> It would be nice,  to tell me how to get it working. I also tested CDI-1.1. 
> Same situation.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to