Uploaded image for project: 'Felix'
  1. Felix
  2. FELIX-4021

maven-ipojo-plugin fails on WAR packaging

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: ipojo-manipulator-1.8.2, ipojo-manipulator-1.8.4, ipojo-manipulator-1.8.6
    • Fix Version/s: ipojo-manipulator-1.11.0
    • Component/s: iPOJO
    • Labels:
      None

      Description

      This is the pom.xml:

      <?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">
      <modelVersion>4.0.0</modelVersion>

      <groupId>it.codin.test.osgi</groupId>
      <artifactId>service-gui</artifactId>
      <packaging>war</packaging>

      <name>service-gui WAB OSGi Bundle</name>

      <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>

      <dependencies>
      ...
      <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.ipojo.annotations</artifactId>
      <version>1.8.4</version>
      </dependency>
      ...
      </dependencies>

      <build>
      <plugins>
      <plugin>
      <groupId>org.apache.felix</groupId>
      <artifactId>maven-bundle-plugin</artifactId>
      <version>2.3.7</version>
      <extensions>true</extensions>
      <executions>
      <execution>
      <id>bundle-manifest</id>
      <phase>process-classes</phase>
      <goals>
      <goal>manifest</goal>
      </goals>
      </execution>
      <execution>
      <id>bundle-install</id>
      <phase>install</phase>
      <goals>
      <goal>install</goal>
      </goals>
      </execution>
      </executions>
      <configuration>
      <supportedProjectTypes>
      <supportedProjectType>jar</supportedProjectType>
      <supportedProjectType>bundle</supportedProjectType>
      <supportedProjectType>ejb</supportedProjectType>
      <supportedProjectType>war</supportedProjectType>
      </supportedProjectTypes>
      <manifestLocation>${project.build.directory}/bundle</manifestLocation>
      <instructions>
      <Bundle-ClassPath>.,WEB-INF/classes,

      {maven-dependencies}

      </Bundle-ClassPath>
      <!-Embed-Directory>WEB-INF/lib</Embed-Directory->
      <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
      <Embed-Transitive>true</Embed-Transitive>
      <Export-Package/>
      <Web-ContextPath>/wab</Web-ContextPath>
      </instructions>
      </configuration>
      </plugin>
      <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.3</version>
      <configuration>
      <archive>
      <manifestFile>${project.build.directory}/bundle/MANIFEST.MF</manifestFile>
      </archive>
      <webResources>
      <resource>
      <directory>src/main/webapp</directory>
      </resource>
      </webResources>
      </configuration>
      </plugin>
      <plugin>
      <groupId>org.apache.felix</groupId>
      <artifactId>maven-ipojo-plugin</artifactId>
      <version>1.8.4</version>
      <executions>
      <execution>
      <goals>
      <goal>ipojo-bundle</goal>
      </goals>
      </execution>
      </executions>
      </plugin>
      </plugins>
      </build>

      </project>

      and this is the error produced:

      Failed to execute goal org.apache.felix:maven-ipojo-plugin:1.8.4:ipojo-bundle (default) on project service-gui: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.8.4:ipojo-bundle failed: Path 'META-INF/MANIFEST.MF' do not start with 'WEB-INF/classes/' -> [Help 1]
      org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.felix:maven-ipojo-plugin:1.8.4:ipojo-bundle (default) on project service-gui: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.8.4:ipojo-bundle failed: Path 'META-INF/MANIFEST.MF' do not start with 'WEB-INF/classes/'
      at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)
      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:84)
      at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
      at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
      at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
      at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
      at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
      at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
      at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
      at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
      at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
      at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
      at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
      Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default of goal org.apache.felix:maven-ipojo-plugin:1.8.4:ipojo-bundle failed: Path 'META-INF/MANIFEST.MF' do not start with 'WEB-INF/classes/'
      at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110)
      at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
      ... 19 more
      Caused by: java.lang.IllegalArgumentException: Path 'META-INF/MANIFEST.MF' do not start with 'WEB-INF/classes/'
      at org.apache.felix.ipojo.manipulator.store.mapper.WABResourceMapper.externalize(WABResourceMapper.java:42)
      at org.apache.felix.ipojo.manipulator.store.JarFileResourceStore.getExternalName(JarFileResourceStore.java:137)
      at org.apache.felix.ipojo.manipulator.store.JarFileResourceStore.accept(JarFileResourceStore.java:131)
      at org.apache.felix.ipojo.manipulator.metadata.AnnotationMetadataProvider.getMetadatas(AnnotationMetadataProvider.java:55)
      at org.apache.felix.ipojo.manipulator.metadata.CompositeMetadataProvider.getMetadatas(CompositeMetadataProvider.java:52)
      at org.apache.felix.ipojo.manipulator.Pojoization.pojoization(Pojoization.java:291)
      at org.apache.felix.ipojo.manipulator.Pojoization.pojoization(Pojoization.java:198)
      at org.apache.felix.ipojo.plugin.ManipulatorMojo.execute(ManipulatorMojo.java:236)
      at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
      ... 20 more

      the plugin fails too on version 1.8.2 and 1.8.6 but works fine on version 1.8.0 with the same configuration.

        Attachments

          Activity

            People

            • Assignee:
              sauthieg Guillaume Sauthier
              Reporter:
              dellekappa Giulio Ruggeri
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: