| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| ~ Licensed to the Apache Software Foundation (ASF) under one or more |
| ~ contributor license agreements. See the NOTICE file distributed with |
| ~ this work for additional information regarding copyright ownership. |
| ~ The ASF licenses this file to You under the Apache License, Version 2.0 |
| ~ (the "License"); you may not use this file except in compliance with |
| ~ the License. You may obtain a copy of the License at |
| ~ |
| ~ http://www.apache.org/licenses/LICENSE-2.0 |
| ~ |
| ~ Unless required by applicable law or agreed to in writing, software |
| ~ distributed under the License is distributed on an "AS IS" BASIS, |
| ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| ~ See the License for the specific language governing permissions and |
| ~ limitations under the License. |
| --> |
| |
| <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> |
| <parent> |
| <groupId>org.apache.unomi</groupId> |
| <artifactId>unomi-root</artifactId> |
| <version>3.1.0-SNAPSHOT</version> |
| </parent> |
| <artifactId>unomi-rest</artifactId> |
| <name>Apache Unomi :: REST API</name> |
| <description>Apache Unomi Context Server REST API</description> |
| <packaging>bundle</packaging> |
| |
| <dependencyManagement> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.unomi</groupId> |
| <artifactId>unomi-bom</artifactId> |
| <version>${project.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| |
| <dependencies> |
| <!-- Unomi dependencies --> |
| <dependency> |
| <groupId>org.apache.unomi</groupId> |
| <artifactId>unomi-api</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.unomi</groupId> |
| <artifactId>unomi-tracing-api</artifactId> |
| <version>${project.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.unomi</groupId> |
| <artifactId>unomi-json-schema-services</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.unomi</groupId> |
| <artifactId>unomi-persistence-spi</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.unomi</groupId> |
| <artifactId>unomi-services-common</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| |
| <!-- Libraries --> |
| <dependency> |
| <groupId>org.osgi</groupId> |
| <artifactId>osgi.core</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.osgi</groupId> |
| <artifactId>org.osgi.service.cm</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.osgi</groupId> |
| <artifactId>org.osgi.service.component</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.osgi</groupId> |
| <artifactId>org.osgi.service.component.annotations</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.osgi</groupId> |
| <artifactId>org.osgi.service.metatype.annotations</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>javax.servlet</groupId> |
| <artifactId>javax.servlet-api</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>javax.ws.rs</groupId> |
| <artifactId>javax.ws.rs-api</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-lang3</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>commons-beanutils</groupId> |
| <artifactId>commons-beanutils</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>javax.validation</groupId> |
| <artifactId>validation-api</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.opencsv</groupId> |
| <artifactId>opencsv</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.karaf.jaas</groupId> |
| <artifactId>org.apache.karaf.jaas.boot</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.dataformat</groupId> |
| <artifactId>jackson-dataformat-yaml</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.jaxrs</groupId> |
| <artifactId>jackson-jaxrs-json-provider</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-databind</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-annotations</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.cxf</groupId> |
| <artifactId>cxf-rt-frontend-jaxrs</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.cxf</groupId> |
| <artifactId>cxf-rt-transports-http</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.cxf</groupId> |
| <artifactId>cxf-rt-rs-service-description-openapi-v3</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.cxf</groupId> |
| <artifactId>cxf-rt-features-metrics</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.cxf</groupId> |
| <artifactId>cxf-rt-features-logging</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.cxf</groupId> |
| <artifactId>cxf-rt-rs-security-cors</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.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-junit-jupiter</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| <scope>test</scope> |
| </dependency> |
| |
| <!-- UNOMI-963: OpenAPI Javadoc enrichment (embedded into this OSGi bundle) --> |
| <dependency> |
| <groupId>dev.inoyu.openapi</groupId> |
| <artifactId>cxf-openapi-enricher</artifactId> |
| <version>${openapi.enrich.version}</version> |
| </dependency> |
| <!-- Direct dep so parent Embed-Dependency=* embeds the model JAR too (not only transitive). --> |
| <dependency> |
| <groupId>dev.inoyu.openapi</groupId> |
| <artifactId>openapi-enrich-model</artifactId> |
| <version>${openapi.enrich.version}</version> |
| </dependency> |
| </dependencies> |
| |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>dev.inoyu.openapi</groupId> |
| <artifactId>openapi-enrich-maven-plugin</artifactId> |
| <configuration> |
| <extraSourceRoots> |
| <extraSourceRoot>${project.basedir}/../api/src/main/java</extraSourceRoot> |
| <!-- TraceNode on ContextResponse / EventCollectorResponse --> |
| <extraSourceRoot>${project.basedir}/../tracing/tracing-api/src/main/java</extraSourceRoot> |
| </extraSourceRoots> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>attach-artifacts</id> |
| <phase>package</phase> |
| <goals> |
| <goal>attach-artifact</goal> |
| </goals> |
| <configuration> |
| <artifacts> |
| <artifact> |
| <file> |
| src/main/resources/org.apache.unomi.rest.authentication.cfg |
| </file> |
| <type>cfg</type> |
| <classifier>restauth</classifier> |
| </artifact> |
| </artifacts> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.felix</groupId> |
| <artifactId>maven-bundle-plugin</artifactId> |
| <extensions>true</extensions> |
| <configuration> |
| <instructions> |
| <!-- |
| Classloader design (UNOMI-963): |
| |
| Embed ONLY private deps that must not be shared OSGi APIs: |
| - opencsv (pre-existing Unomi pattern) |
| - cxf-openapi-enricher + openapi-enrich-model (Inoyu-owned) |
| |
| Do NOT embed Jackson / CXF / Swagger / SLF4J / OSGi — those stay |
| Import-Package so EnrichingOpenApiCustomizer and CXF OpenApiFeature |
| share the same OpenAPI/Jackson classes (avoids LinkageError). |
| |
| Exclude dev.inoyu.openapi.enrich.* from Import-Package: those packages |
| are on Bundle-ClassPath via the embedded JARs, not exported bundles. |
| |
| Do not set Private-Package: it replaces BND defaults and can drop |
| org.apache.unomi.rest.service.impl from this bundle. |
| --> |
| <Import-Package> |
| !dev.inoyu.openapi.enrich.*, |
| * |
| </Import-Package> |
| <Embed-Dependency> |
| opencsv, |
| cxf-openapi-enricher, |
| openapi-enrich-model |
| </Embed-Dependency> |
| <Embed-Transitive>false</Embed-Transitive> |
| </instructions> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </project> |