If you use plexus-archiver you have to add some exclusions in your pom.

    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-archiver</artifactId>
      <version>1.0-alpha-9</version>
      <exclusions>
        <exclusion>
          <groupId>org.codehaus.plexus</groupId>
          <artifactId>plexus-container-default</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.codehaus.plexus</groupId>
          <artifactId>plexus-component-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

--
Olivier



2008/7/28 Andreas Gies <[EMAIL PROTECTED]>:
> Thank you for the hint,
>
> I have changed my code so that it directly references the Archiver now. Now
> I get the output below output from the plugin.
> I think there might be an incompatibbility of the plugins. Perhaps someone
> could give me a hint how I could debug this?
> In general, if I want to use a component that has the Contextualize
> interface implemented...do I need to pass the
> Plexus context explicitly to that component or does the framework do this
> magically. Moreover, the documentation
> says that I *should* implement the Contextualize interface if I plan to use
> plexus components. Even if I do this, the
> contextualize method is never called ...
>
> A pointer at a good example would really be great. For the acute problem I
> have atteched My plugin code and the pom.xml.
>
>
> Thanks
> Andreas
>
>
> [INFO] [ESBPlugin:package]
> [INFO] Packaging ESB application:
> [INFO] Project : iocc-esb-flow-pubopflightp
> [INFO] Group   : com.lhsystems.iocc
> [INFO] Version : 1.0-SNAPSHOT
> [INFO] Source  :
> E:\LHSys\maven\snapshots\com.lhsystems.iocc\iocc-esb-flow-pubopflightp\1.0-SNAPSHOT\src\main\ESB
> [INFO] Build   :
> E:\LHSys\maven\snapshots\com.lhsystems.iocc\iocc-esb-flow-pubopflightp\1.0-SNAPSHOT\target
> [INFO] XAR     : xar
> [INFO] Creating archive :
> E:\LHSys\maven\snapshots\com.lhsystems.iocc\iocc-esb-flow-pubopflightp\1.0-SNAPSHOT\target\iocc-esb-flow-pubopflightp-1.0-SNAPSHOT.xar
> [FATAL ERROR] com.sonicsw.maven.plugins.MavenEsbPackage#execute() caused a
> linkage error (java.lang.IncompatibleClassChangeError) and may be
> out-of-date. Check the realms:
> [FATAL ERROR] Plugin realm =
> app0.child-container[com.sonicsw.maven.plugins:ESBPlugin]
> urls[0] = file:/C:/Documents and
> Settings/agies/.m2/repository/com/sonicsw/maven/plugins/ESBPlugin/1.0-SNAPSHOT/ESBPlugin-1.0-SNAPSHOT.jar
> urls[1] = file:/C:/Documents and
> Settings/agies/.m2/repository/org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.jar
> urls[2] = file:/C:/Documents and
> Settings/agies/.m2/repository/org/codehaus/plexus/plexus-archiver/1.0-alpha-10/plexus-archiver-1.0-alpha-10.jar
> urls[3] = file:/C:/Documents and
> Settings/agies/.m2/repository/org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.jar
> urls[4] = file:/C:/Documents and
> Settings/agies/.m2/repository/org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.jar
> urls[5] = file:/C:/Documents and
> Settings/agies/.m2/repository/org/codehaus/plexus/plexus-io/1.0-alpha-2/plexus-io-1.0-alpha-2.jar
> urls[6] = file:/C:/Documents and
> Settings/agies/.m2/repository/com/sonicsw/pso/utilities/MFUtils/1.0-SNAPSHOT/MFUtils-1.0-SNAPSHOT.jar
> urls[7] = file:/C:/Documents and
> Settings/agies/.m2/repository/sonic-mq/mgmt_client/7.6.0/mgmt_client-7.6.0.jar
> urls[8] = file:/C:/Documents and
> Settings/agies/.m2/repository/sonic-mq/sonic_mgmt_client/7.6.0/sonic_mgmt_client-7.6.0.jar
> urls[9] = file:/C:/Documents and
> Settings/agies/.m2/repository/sonic-mq/mgmt_config/7.6.0/mgmt_config-7.6.0.jar
> urls[10] = file:/C:/Documents and
> Settings/agies/.m2/repository/sonic-mq/sonic_Client/7.6.0/sonic_Client-7.6.0.jar
> urls[11] = file:/C:/Documents and
> Settings/agies/.m2/repository/sonic-mq/sonic_Crypto/7.6.0/sonic_Crypto-7.6.0.jar
> urls[12] = file:/C:/Documents and
> Settings/agies/.m2/repository/sonic-esb/xq_config/7.6.0/xq_config-7.6.0.jar
> urls[13] = file:/C:/Documents and
> Settings/agies/.m2/repository/sonic-esb/commons-logging/7.6.0/commons-logging-7.6.0.jar
> urls[14] = file:/C:/Documents and
> Settings/agies/.m2/repository/sonic-esb/xq_core/7.6.0/xq_core-7.6.0.jar
> urls[15] = file:/C:/Documents and
> Settings/agies/.m2/repository/sonic-esb/xbean/7.6.0/xbean-7.6.0.jar
> urls[16] = file:/C:/Documents and
> Settings/agies/.m2/repository/sonic-esb/jsr173_api/7.6.0/jsr173_api-7.6.0.jar
> urls[17] = file:/C:/Documents and
> Settings/agies/.m2/repository/sonic-mq/xercesImpl/7.6.0/xercesImpl-7.6.0.jar
> urls[18] = file:/C:/Documents and
> Settings/agies/.m2/repository/sonic-mq/MFdirectory/7.6.0/MFdirectory-7.6.0.jar
> urls[19] = file:/C:/Documents and
> Settings/agies/.m2/repository/log4j/log4j/1.2.14/log4j-1.2.14.jar
> urls[20] = file:/C:/Documents and
> Settings/agies/.m2/repository/sonic-mq/mfcontext/7.6.0/mfcontext-7.6.0.jar
> [FATAL ERROR] Container realm = plexus.core
> urls[0] = file:/c:/tools/maven2/lib/maven-2.0.9-uber.jar
> [INFO]
> ------------------------------------------------------------------------
> [ERROR] FATAL ERROR
> [INFO]
> ------------------------------------------------------------------------
> [INFO] null
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Trace
> java.lang.IncompatibleClassChangeError
>       at
> org.codehaus.plexus.archiver.zip.AbstractZipArchiver.createArchiveMain(AbstractZipArchiver.java:324)
>       at
> org.codehaus.plexus.archiver.zip.AbstractZipArchiver.execute(AbstractZipArchiver.java:249)
>       at
> org.codehaus.plexus.archiver.AbstractArchiver.createArchive(AbstractArchiver.java:762)
>       at
> com.sonicsw.maven.plugins.MavenEsbPackage.execute(MavenEsbPackage.java:46)
>       at
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
>       at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
>       at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
>       at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
>       at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
>       at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
>       at
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
>       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
>       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
>       at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
>       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:585)
>       at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>       at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>       at
> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>       at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 6 seconds
> [INFO] Finished at: Mon Jul 28 18:52:22 CEST 2008
>
>
> Olivier Lamy schrieb:
>>
>> Hi,
>> It looks you want a zipArchiver.
>>
>> You can use :
>>
>>    /**
>>     * The Jar archiver.
>>     *
>>     * @parameter
>> expression="${component.org.codehaus.plexus.archiver.Archiver#zip}"
>>     * @required
>>     */
>>    private ZipArchiver zipArchiver;
>>
>> Or with the new annotation
>>
>>    /**
>>     * The Jar archiver.
>>     *
>>     * @component role="org.codehaus.plexus.archiver.Archiver"
>> roleHint="zip"
>>     * @required
>>     */
>>    private ZipArchiver zipArchiver;
>>
>> HTH,
>> --
>> Olivier
>>
>> 2008/7/27 Andreas Gies <[EMAIL PROTECTED]>:
>>
>>>
>>> Hello,
>>>
>>> I am inteh process of writing a series of plugins. The last plugin is
>>> supposed to package some generated sourcefiles into an archive.
>>> I was thinking to reuse the Archiver Component from the plexus libraries
>>> for
>>> this. So my code looks like this:
>>>
>>> package com.sonicsw.maven.plugins;
>>>
>>> import java.io.File;
>>>
>>> import org.apache.maven.plugin.MojoExecutionException;
>>> import org.apache.maven.plugin.MojoFailureException;
>>> import org.codehaus.plexus.archiver.Archiver;
>>> import org.codehaus.plexus.archiver.manager.ArchiverManager;
>>>
>>> /**
>>> * Packaging an ESB application.
>>> *
>>> * @goal package
>>> */
>>>
>>> public class MavenEsbPackage extends AbstractESBMojo {
>>>
>>>  /**
>>>  * To look up Archiver/UnArchiver implementations
>>>  *
>>>  * @parameter
>>>
>>> expression="${component.org.codehaus.plexus.archiver.manager.ArchiverManager}"
>>>  */
>>>  protected ArchiverManager archiverManager;
>>>
>>>  public void execute() throws MojoExecutionException,
>>> MojoFailureException {
>>>
>>>  getLog().info("Packaging ESB application: ");
>>>    getLog().info("Project : " + artifactId);   getLog().info("Group   : "
>>> +
>>> groupId);   getLog().info("Version : " + version);
>>>  getLog().info("Source  : " + sourceDirectory);
>>>  getLog().info("Build   : " + buildDirectory);
>>>  getLog().info("XAR     : " + xarDirectory);
>>>
>>>  File archiveFile = new File(buildDirectory, finalName + ".xar");
>>>
>>>  try {
>>>    getLog().info("Creating archive : " + archiveFile.getAbsolutePath());
>>>        Archiver archiver = archiverManager.getArchiver("zip");
>>>
>>>    archiver.setDestFile(archiveFile);
>>>    //archiver.addDirectory(new File(buildDirectory, xarDirectory));
>>>    archiver.addDirectory(new File("generated-src/" + xarDirectory));
>>>        archiver.createArchive();
>>>  } catch(Exception e) {
>>>    throw new MojoExecutionException("Failed to create ESB archive " +
>>> archiveFile.getAbsolutePath(), e);
>>>  }
>>>  }
>>> }
>>>
>>> However, when I try to retrieve the Archiver, I get a NPE:
>>>
>>> [INFO] Trace
>>> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to create
>>> ESB
>>> archive
>>>
>>> E:\LHSys\maven\snapshots\com.lhsystems.iocc\iocc-esb-flow-pubopflightp\1.0-SNAPSHOT\target\iocc-esb-flow-pubopflightp-1.0-SNAPSHOT.xar
>>>      at
>>>
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:583)
>>>      at
>>>
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
>>>      at
>>>
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
>>>      at
>>>
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
>>>      at
>>>
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
>>>      at
>>>
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
>>>      at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
>>>      at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
>>>      at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
>>>      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:585)
>>>      at
>>> org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>>>      at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>>>      at
>>> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>>>      at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
>>> Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to
>>> create
>>> ESB archive
>>>
>>> E:\LHSys\maven\snapshots\com.lhsystems.iocc\iocc-esb-flow-pubopflightp\1.0-SNAPSHOT\target\iocc-esb-flow-pubopflightp-1.0-SNAPSHOT.xar
>>>      at
>>>
>>> com.sonicsw.maven.plugins.MavenEsbPackage.execute(MavenEsbPackage.java:49)
>>>      at
>>>
>>> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
>>>      at
>>>
>>> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
>>>      ... 16 more
>>> Caused by: java.lang.NullPointerException
>>>      at
>>>
>>> org.codehaus.plexus.archiver.manager.DefaultArchiverManager.getArchiver(DefaultArchiverManager.java:60)
>>>      at
>>>
>>> com.sonicsw.maven.plugins.MavenEsbPackage.execute(MavenEsbPackage.java:41)
>>>      ... 18 more
>>>
>>> It seems that the ArchiverManager doesn't know about the Plexus Context
>>> (looking at (DefaultArchiverManager.java:60) ). I am guessing that I miss
>>> a
>>> basic initialization step in order to reuse a component.
>>> Am I missing something?--Could you perhaps point me to more documentation
>>> on
>>> reusing components in a plugin (I have read the
>>> http://docs.codehaus.org/display/MAVENUSER/Mojo+Developer+Cookbook and
>>> the
>>> Mojo tutorial ...).
>>>
>>>
>>> Thanks in advance
>>> Andreas
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to