[
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)