Hi
I'm trying to build my own feature that will combine ActiveMQ + some of my
bundles but I'm stuck on generating a plugin that have pure ActiveMQ only
Here is my POM:
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>features</artifactId>
<groupId>com.my.esb</groupId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<!--
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.
-->
<modelVersion>4.0.0</modelVersion>
<groupId>com.my.esb.features</groupId>
<artifactId>my-esb-amq</artifactId>
<packaging>feature</packaging>
<name>My ESB :: Feature :: AMQ</name>
<description>Prepackaged AMQ Karaf feature, with no additional dependencies
required.</description>
<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-karaf</artifactId>
<type>xml</type>
<classifier>features</classifier>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>karaf-maven-plugin</artifactId>
<version>4.0.8</version>
<extensions>true</extensions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>karaf-maven-plugin</artifactId>
<version>${karaf.version}</version>
<configuration>
<startLevel>50</startLevel>
<resolver>(orb)</resolver>
<aggregateFeatures>true</aggregateFeatures>
<checkDependencyChange>true</checkDependencyChange>
<failOnDependencyChange>false</failOnDependencyChange>
<logDependencyChanges>true</logDependencyChanges>
<overwriteChangedDependencies>true</overwriteChangedDependencies>
</configuration>
<executions>
<execution>
<id>features-add-to-repo</id>
<phase>generate-resources</phase>
<goals>
<goal>features-add-to-repository</goal>
</goals>
<configuration>
<descriptors>
<descriptor>mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features</descriptor>
<descriptor>mvn:org.apache.activemq/activemq-karaf/${activemq.version}/xml/features</descriptor>
<descriptor>mvn:org.apache.activemq/activemq-karaf/${activemq.version}/xml/features-core</descriptor>
<descriptor>mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features</descriptor>
</descriptors>
<features>
<feature>activemq</feature>
<feature>activemq-cf</feature>
<feature>activemq-client</feature>
<feature>activemq-broker-noweb</feature>
<feature>ctivemq-camel</feature>
<feature>activemq-web-consol</feature>
<feature>activemq-blueprint</feature>
<feature>activemq-amqp-client</feature>
<feature>${project.artifactId}</feature>
<feature>${project.artifactId}-webconsole</feature>
<feature>${project.artifactId}-amqp</feature>
</features>
<repository>target</repository>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
And here is a feature.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.3.0"
name="${project.artifactId}">
<repository>mvn:org.apache.activemq/activemq-karaf/${activemq.version}/xml/features-core</repository>
<repository>mvn:org.apache.activemq/activemq-karaf/${activemq.version}/xml/features</repository>
<!-- Apache ActiveMQ Features -->
<feature name="activemq-broker-noweb" description="Full ActiveMQ broker
with default configuration" start-level="50" hidden="true"
version="${activemq.version}">
<configfile
finalname="/etc/activemq.xml">mvn:org.apache.activemq/activemq-karaf/${activemq.version}/xml/activemq</configfile>
<configfile
finalname="/etc/org.apache.activemq.server-default.cfg">mvn:org.apache.activemq/activemq-karaf/${activemq.version}/cfg/activemq</configfile>
<feature version="${activemq.version}" prerequisite="false"
dependency="true">activemq</feature>
</feature>
<feature name="activemq-camel" start-level="50"
version="${activemq.version}" hidden="true">
<feature version="${activemq.version}" prerequisite="false"
dependency="true">activemq-client</feature>
<feature version="[2.16,3)" prerequisite="false"
dependency="true">camel-jms</feature>
<feature version="[2.16,3)" prerequisite="false"
dependency="true">camel</feature>
<bundle>mvn:org.apache.activemq/activemq-camel/${activemq.version}</bundle>
</feature>
<feature name="activemq-web-console" start-level="50" hidden="true"
version="${activemq.version}">
<configfile
finalname="/etc/org.apache.activemq.webconsole.cfg">mvn:org.apache.activemq/activemq-karaf/${activemq.version}/cfg/activemq-webconsole</configfile>
<feature prerequisite="false" dependency="true">war</feature>
<feature prerequisite="false" dependency="true">eventadmin</feature>
<bundle>mvn:org.apache.activemq/activemq-web-console/${activemq.version}/war</bundle>
</feature>
<feature name="activemq-blueprint" start-level="50" hidden="true"
version="${activemq.version}">
<feature version="${activemq.version}" prerequisite="false"
dependency="true">activemq</feature>
<bundle
dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.scripting-api-1.0/2.4.0</bundle>
<bundle
dependency="true">mvn:org.apache.commons/commons-jexl/2.0.1</bundle>
<bundle
dependency="true">mvn:org.apache.xbean/xbean-blueprint/4.2</bundle>
<bundle>mvn:org.apache.activemq/activemq-blueprint/${activemq.version}</bundle>
</feature>
<feature name="activemq-amqp-client" description="ActiveMQ AMQP protocol
client libraries" hidden="true" version="${activemq.version}">
<bundle>mvn:io.netty/netty-common/4.0.41.Final</bundle>
<bundle>mvn:io.netty/netty-transport/4.0.41.Final</bundle>
<bundle>mvn:io.netty/netty-buffer/4.0.41.Final</bundle>
<bundle>mvn:io.netty/netty-codec/4.0.41.Final</bundle>
<bundle>mvn:io.netty/netty-codec-http/4.0.41.Final</bundle>
<bundle>mvn:io.netty/netty-handler/4.0.41.Final</bundle>
<bundle>mvn:org.apache.qpid/proton-j/0.14.0</bundle>
<bundle>mvn:org.apache.qpid/qpid-jms-client/0.11.1</bundle>
</feature>
<!-- My ESB Features -->
<feature name="${project.artifactId}" description=" AMQ with MQTT"
version="${project.version}">
<details>Hexagon Mining prepackaged AMQ Karaf feature, with no
additional dependencies required.</details>
<feature version="${activemq.version}" prerequisite="false"
dependency="true">activemq-broker-noweb</feature>
<feature version="${activemq.version}" prerequisite="false"
dependency="true">activemq-camel</feature>
<feature version="${activemq.version}" prerequisite="false"
dependency="true">activemq-blueprint</feature>
</feature>
<feature name="${project.artifactId}-amqp" description=" AMQ AMQP Client"
version="${project.version}">
<details>Hexagon Mining prepackaged AMQ Karaf feature, with no
additional dependencies required.</details>
<feature version="${project.version}" prerequisite="false"
dependency="true">${project.artifactId}</feature>
<feature version="${activemq.version}" prerequisite="false"
dependency="true">activemq-amqp-client</feature>
</feature>
<feature name="${project.artifactId}-webconsole" description=" AMQ
Standalone WebConsole" version="${project.version}">
<details>Hexagon Mining prepackaged AMQ Karaf feature, with no
additional dependencies required.</details>
<feature version="${project.version}" prerequisite="false"
dependency="true">${project.artifactId}</feature>
<feature version="${activemq.version}" prerequisite="false"
dependency="true">activemq-web-console</feature>
</feature>
</features>
When I'm trying to run Karaf: features-add-to-repository
I'm getting fallowing error:
[ERROR] Failed to execute goal
org.apache.karaf.tooling:karaf-maven-plugin:4.0.8:features-add-to-repository
(default-cli) on project my-esb-amq -amq: Error populating repository:
NullPointerException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal
org.apache.karaf.tooling:karaf-maven-plugin:4.0.8:features-add-to-repository
(default-cli) on project my-esb-amq -amq: Error populating repository
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error populating
repository
at
org.apache.karaf.tooling.features.AbstractFeatureMojo.resolveFeatures(AbstractFeatureMojo.java:267)
at
org.apache.karaf.tooling.features.AddToRepositoryMojo.execute(AddToRepositoryMojo.java:58)
at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 21 more
Caused by: java.lang.NullPointerException
at
org.apache.karaf.tooling.features.AbstractFeatureMojo.resolveFeatures(AbstractFeatureMojo.java:235)
... 24 more
[ERROR]
[ERROR]
When I'm trying to run mvn install I get fallowing error:
ERROR] Failed to execute goal
org.apache.karaf.tooling:karaf-maven-plugin:4.0.8:features-add-to-repository
(features-add-to-repo) on project my-esb-amq: Error populating repository:
Unable to validate
file:///C:/Users/mkoprows/.m2/repository/org/apache/activemq/activemq-karaf/5.14.3/activemq-karaf-5.14.3-features.xml:
cvc-complex-type.3.2.2: Attribute 'start-level' is not allowed to appear in
element 'feature'. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal
org.apache.karaf.tooling:karaf-maven-plugin:4.0.8:features-add-to-repository
(features-add-to-repo) on project my-esb-amq: Error populating repository
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error populating
repository
at
org.apache.karaf.tooling.features.AbstractFeatureMojo.resolveFeatures(AbstractFeatureMojo.java:267)
at
org.apache.karaf.tooling.features.AddToRepositoryMojo.execute(AddToRepositoryMojo.java:58)
at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 21 more
Caused by: java.lang.IllegalArgumentException: Unable to validate
file:///C:/Users/mkoprows/.m2/repository/org/apache/activemq/activemq-karaf/5.14.3/activemq-karaf-5.14.3-features.xml
at
org.apache.karaf.features.internal.model.JaxbUtil.unmarshalValidate(JaxbUtil.java:127)
at
org.apache.karaf.features.internal.model.JaxbUtil.unmarshal(JaxbUtil.java:101)
at
org.apache.karaf.features.internal.model.JaxbUtil.unmarshal(JaxbUtil.java:95)
at
org.apache.karaf.tooling.features.AbstractFeatureMojo.retrieveDescriptorsRecursively(AbstractFeatureMojo.java:125)
at
org.apache.karaf.tooling.features.AbstractFeatureMojo.resolveFeatures(AbstractFeatureMojo.java:236)
... 24 more
Caused by: org.xml.sax.SAXParseException; cvc-complex-type.3.2.2: Attribute
'start-level' is not allowed to appear in element 'feature'.
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:452)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3230)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processAttributes(XMLSchemaValidator.java:2707)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2050)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:740)
at
com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.beginNode(DOMValidatorHelper.java:277)
at
com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.validate(DOMValidatorHelper.java:244)
at
com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.validate(DOMValidatorHelper.java:190)
at
com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(ValidatorImpl.java:109)
at javax.xml.validation.Validator.validate(Validator.java:124)
at
org.apache.karaf.features.internal.model.JaxbUtil.unmarshalValidate(JaxbUtil.java:125)
... 28 more
[ERROR]
[ERROR]
I'm using Java 1.8.0 and tested the results on Maven 3.0.0 and 3.5.0
Best regards
--
Mariusz Koprowski