All Downloads are FREE. Search and download functionalities are using the official Maven repository.

archetype-resources.pom.xml Maven / Gradle / Ivy

There is a newer version: 2.2.197
Show newest version
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>${groupId}</groupId>
  <artifactId>${artifactId}</artifactId>
  <version>${version}</version>
  <packaging>bundle</packaging>
  <name>Fabric8 :: Quickstarts :: Karaf :: Camel and ActiveMQ</name>
  <description>Camel route using ActiveMQ in Karaf container</description>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <version.maven-bundle-plugin>2.3.7</version.maven-bundle-plugin>

    <!-- fabric8 version -->
    <fabric8.version>2.2.88</fabric8.version>
    <docker.maven.plugin.version>0.13.8</docker.maven.plugin.version>



    <!-- configure the versions you want to use here -->
    <activemq.version>${activemq-version}</activemq.version>
    <camel.version>${camel-version}</camel.version>
    <karaf.version>${karaf-version}</karaf.version>
    <karaf.plugin.version>4.0.3</karaf.plugin.version>

    <docker.from>fabric8/s2i-karaf:1.2</docker.from>
    <fabric8.dockerUser>fabric8/</fabric8.dockerUser>
    <docker.image>${fabric8.dockerUser}${project.artifactId}:${project.version}</docker.image>
    <docker.assemblyDescriptor>${basedir}/src/main/fabric8/assembly.xml</docker.assemblyDescriptor>
    <docker.port.container.jolokia>8778</docker.port.container.jolokia>
    <docker.port.container.http>8181</docker.port.container.http>
    <fabric8.env.FABRIC8MQ_SERVICE_NAME>FABRIC8MQ</fabric8.env.FABRIC8MQ_SERVICE_NAME>

    <fabric8.label.component>${project.artifactId}</fabric8.label.component>
    <fabric8.label.container>karaf</fabric8.label.container>
    <fabric8.label.group>quickstarts</fabric8.label.group>
    <fabric8.iconRef>camel</fabric8.iconRef>
  </properties>

  <dependencyManagement>
    <dependencies>
      <!-- import fabric8 platfrom bom first -->
      <dependency>
        <groupId>io.fabric8</groupId>
        <artifactId>fabric8-project-bom-with-platform-deps</artifactId>
        <version>${fabric8.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-parent</artifactId>
        <version>${camel.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>

    <!-- camel -->
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-blueprint</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- Karaf microcontainer dependencies -->
    <dependency>
      <!-- scope is compile so all features (there is only one) are installed into startup.properties,
      and the feature repo itself is not added in etc/org.apache.karaf.features.cfg file -->
      <groupId>org.apache.karaf.features</groupId>
      <artifactId>static</artifactId>
      <version>${karaf.plugin.version}</version>
      <type>kar</type>
      <!-- no need to download kar dependencies -->
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf.assemblies.features</groupId>
      <artifactId>standard</artifactId>
      <version>${karaf.version}</version>
      <classifier>features</classifier>
      <type>xml</type>
    </dependency>
    <dependency>
      <groupId>org.apache.karaf.assemblies.features</groupId>
      <artifactId>spring</artifactId>
      <version>${karaf.version}</version>
      <classifier>features</classifier>
      <type>xml</type>
    </dependency>
    <dependency>
      <groupId>org.apache.camel.karaf</groupId>
      <artifactId>apache-camel</artifactId>
      <version>${camel.version}</version>
      <classifier>features</classifier>
      <type>xml</type>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-karaf</artifactId>
      <version>${activemq.version}</version>
      <classifier>features</classifier>
      <type>xml</type>
    </dependency>
  </dependencies>

  <build>
    <finalName>${project.artifactId}</finalName>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
    <plugins>
      <!-- Compiler plugin enforces Java 1.7 compatibility and activates annotation processors -->
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>${version.maven-bundle-plugin}</version>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <Import-Package>
              io.fabric8.mq.core,
              io.fabric8.mq.camel,
              org.apache.activemq.pool,
              *
            </Import-Package>
          </instructions>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.7</version>
        <executions>
          <execution>
            <id>filter-extra-resources</id>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <phase>process-resources</phase>
            <configuration>
              <outputDirectory>${project.build.directory}/fabric8</outputDirectory>
              <resources>
                <resource>
                  <directory>src/main/fabric8</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>io.fabric8</groupId>
        <artifactId>fabric8-maven-plugin</artifactId>
        <version>${fabric8.version}</version>
        <executions>
          <execution>
            <id>json</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>json</goal>
            </goals>
          </execution>
          <execution>
            <id>attach</id>
            <phase>package</phase>
            <goals>
              <goal>attach</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <!-- plugin goals have to be executed in order -->
      <!-- 1. install the bundle -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-install-plugin</artifactId>
        <version>2.5.2</version>
        <executions>
          <execution>
            <id>install-bundle</id>
            <goals>
              <goal>install</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <!-- 2. create karaf assembly -->
      <!-- karaf-maven-plugin creates custom microservice distribution -->
      <plugin>
        <groupId>org.apache.karaf.tooling</groupId>
        <artifactId>karaf-maven-plugin</artifactId>
        <version>${karaf.plugin.version}</version>
        <extensions>true</extensions>
        <executions>
          <execution>
            <id>karaf-assembly</id>
            <goals>
              <goal>assembly</goal>
            </goals>
            <phase>install</phase>
          </execution>
          <execution>
            <id>karaf-archive</id>
            <goals>
              <goal>archive</goal>
            </goals>
            <phase>install</phase>
          </execution>
        </executions>
        <configuration>
         <karafVersion>v4x</karafVersion>
         <useReferenceUrls>true</useReferenceUrls>
          <!-- do not include build output directory -->
          <includeBuildOutputDirectory>false</includeBuildOutputDirectory>
          <!-- no startupFeatures -->
          <startupFeatures>
            <feature>karaf-framework</feature>
            <feature>shell</feature>
            <feature>scr</feature>
            <feature>jaas</feature>
            <feature>aries-blueprint</feature>
            <feature>camel-blueprint</feature>
            <feature>camel-jms</feature>
            <feature>activemq-client</feature>
          </startupFeatures>
          <startupBundles>
            <bundle>mvn:io.fabric8.mq/camel-amq/${fabric8.version}</bundle>
            <bundle>mvn:io.fabric8.mq/mq-client/${fabric8.version}</bundle>
            <bundle>mvn:io.fabric8/fabric8-utils/${fabric8.version}</bundle>
            <bundle>mvn:org.apache.activemq/activemq-camel/${activemq.version}</bundle>
            <bundle>mvn:org.apache.activemq/activemq-osgi/${activemq.version}</bundle>
            <bundle>mvn:${project.groupId}/${project.artifactId}/${project.version}</bundle>
          </startupBundles>
          <blacklistedBundles>
            <bundle>mvn:org.ops4j.pax.logging/pax-logging-api/1.8.4</bundle>
            <bundle>mvn:org.ops4j.pax.logging/pax-logging-service/1.8.4</bundle>
          </blacklistedBundles>
          <libraries>
            <library>
              mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.boot/${karaf.version};type:=boot;export:=true;delegate:=true
            </library>
          </libraries>
        </configuration>
      </plugin>

      <!-- 3. create docker image -->
      <plugin>
        <groupId>org.jolokia</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>${docker.maven.plugin.version}</version>
        <configuration>
          <images>
            <image>
              <name>${docker.image}</name>
              <build>
                <from>${docker.from}</from>
                <assembly>
                  <basedir>/deployments</basedir>
                  <user>jboss:jboss:jboss</user>
                  <inline xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
                    <id>${project.artifactId}</id>
                    <files>
                      <!-- copy karaf archive -->
                      <file>
                        <source>${project.build.directory}/${project.artifactId}-${project.version}.tar.gz</source>
                        <outputDirectory>/</outputDirectory>
                      </file>
                    </files>
                  </inline>
                </assembly>
                <cmd>
                  <shell>/deployments/deploy-and-run.sh</shell>
                </cmd>
              </build>
            </image>
          </images>
        </configuration>
      </plugin>
    </plugins>
  </build>

    <!--
  Default sample commands:

  mvn -Pf8-build         ... build Docker images and create OpenShift deployment configs
  mvn -Pf8-deploy        ... f8-build + push to Docker registry + applying deployment config to OpenShift
  mvn -Pf8-local-deploy ... deployment for a single node setup without pushing to a registry

  For individual goal usage please consult the fabric8 documentation
  -->
  <profiles>
    <profile>
      <id>f8-build</id>
      <build>
        <defaultGoal>clean install docker:build fabric8:json</defaultGoal>
      </build>
    </profile>
    <profile>
      <id>f8-deploy</id>
      <properties>
        <fabric8.imagePullPolicySnapshot>Always</fabric8.imagePullPolicySnapshot>
        <fabric8.recreate>true</fabric8.recreate>
      </properties>
      <build>
        <defaultGoal>clean install docker:build docker:push fabric8:json fabric8:apply</defaultGoal>
      </build>
    </profile>
    <profile>
      <id>f8-local-deploy</id>
      <properties>
        <fabric8.recreate>true</fabric8.recreate>
      </properties>
      <build>
        <defaultGoal>clean install docker:build fabric8:json fabric8:apply</defaultGoal>
      </build>
    </profile>
  </profiles>
</project>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy