osgi / osgi.enroute

The OSGi enRoute project provides a programming model of OSGi applications. This project contains bundles providing the API for the OSGi enRoute base profile and bundles for the OSGi enRoute project. The base profile establishes a runtime that contains a minimal set of services that can be used as a base for applications.

Home Page:https://enroute.osgi.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Need to specify `<failOnChanges>false</failOnChanges>` for `biz.aQute.bnd:bnd-export-maven-plugin`

katcaola opened this issue · comments

When running mvn -pl rest-app package per the Microservices tutorial, I get an error from the biz.aQute.bnd:bnd-export-maven-plugin maven plugin.

usr@host:~/sandbox/OSGi/microservice$ mvn -pl rest-app package
<...>
[ERROR] Error   : The runbundles have changed. Failing the build!
Was: null
Is: \
	ch.qos.logback.classic;version='[1.2.3,1.2.4)',\
	ch.qos.logback.core;version='[1.2.3,1.2.4)',\
	org.apache.aries.javax.jax.rs-api;version='[1.0.0,1.0.1)',\
	org.apache.aries.jax.rs.whiteboard;version='[1.0.1,1.0.2)',\
	org.apache.felix.configadmin;version='[1.9.8,1.9.9)',\
	org.apache.felix.http.jetty;version='[4.0.6,4.0.7)',\
	org.apache.felix.http.servlet-api;version='[1.1.2,1.1.3)',\
	org.apache.felix.scr;version='[2.1.10,2.1.11)',\
	org.apache.servicemix.specs.annotation-api-1.3;version='[1.3.0,1.3.1)',\
	org.apache.servicemix.specs.json-api-1.1;version='[2.9.0,2.9.1)',\
	org.osgi.enroute.examples.microservice.dao-api;version='[0.0.1,0.0.2)',\
	org.osgi.enroute.examples.microservice.dao-impl;version='[0.0.1,0.0.2)',\
	org.osgi.enroute.examples.microservice.rest-service;version='[0.0.1,0.0.2)',\
	org.osgi.service.jaxrs;version='[1.0.0,1.0.1)',\
	org.osgi.util.converter;version='[1.0.0,1.0.1)',\
	org.osgi.util.function;version='[1.1.0,1.1.1)',\
	org.osgi.util.promise;version='[1.1.0,1.1.1)',\
	slf4j.api;version='[1.7.25,1.7.26)',\
	tx-control-provider-jdbc-xa;version='[1.0.0,1.0.1)',\
	tx-control-service-xa;version='[1.0.0,1.0.1)'
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.970 s
[INFO] Finished at: 2019-01-18T13:44:07-05:00
[INFO] Final Memory: 25M/439M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal biz.aQute.bnd:bnd-export-maven-plugin:4.1.0:export 
        (default) on project rest-app: 1 errors found -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, 
        please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

The biz.aQute.bnd:bnd-export-maven-plugin has a feature where any change in the resolved -runbundles discovered will fail the maven command. If failOnChanges is unspecified, it defaults to true and causes the error seen above.

I'm not sure where in the osgi.enroute project itself this would need to be fixed.


In the meantime, users can add the line

<failOnChanges>false</failOnChanges>

to their rest-app/pom.xml(and also rest-app-jpa/pom.xml) plugin section for biz.aQute.bnd:bnd-export-maven-plugin so it goes from

            <plugin>
                <groupId>biz.aQute.bnd</groupId>
                <artifactId>bnd-export-maven-plugin</artifactId>
                <configuration>
                    <bndruns>
                        <bndrun>rest-app.bndrun</bndrun>
                    </bndruns>
                </configuration>
            </plugin>

to include the new line

            <plugin>
                <groupId>biz.aQute.bnd</groupId>
                <artifactId>bnd-export-maven-plugin</artifactId>
                <configuration>
                    <failOnChanges>false</failOnChanges>
                    <bndruns>
                        <bndrun>rest-app.bndrun</bndrun>
                    </bndruns>
                </configuration>
            </plugin>