I agree - the plexus-spring module is just meant to be a migration tool - it would be better to convert this rather than to implement it there.

- Brett

On 18/04/2008, at 11:01 PM, Olivier Lamy wrote:

I think we have to move this to a Spring bean (if possible).
Because currently plexus-spring component doesn't support ("yet")
complex object object in a plexus component configuration.

It's documented here
http://plexus.codehaus.org/plexus-components/plexus-spring/ .
"Injection of configuration, limited to String and simple types ".

--
Olivier


2008/4/18, Edwin Punzalan <[EMAIL PROTECTED]>:
Or it could be that the dependencyValue should already be a List object.

Maybe others can shed more light into this?


On Fri, Apr 18, 2008 at 5:21 AM, Edwin Punzalan <[EMAIL PROTECTED]>
wrote:


Hi, Marica.


I've started looking into this...

I think its a problem with the plexus-spring. Below is what I've found in
PlexusNamespaceHandler:

                   StringWriter xml = new StringWriter();
                   xml.write( '<' + name + '>' );
flatten( child.getChildNodes(), new PrintWriter( xml )
);
                   xml.write( "</" + name + '>' );
                   String dependencyValue = StringUtils.replace(
xml.toString(), "${basedir}", PlexusToSpringUtils.getBasedir() );
                   dependencies.put( name, dependencyValue );
                   value.append( xml.toString());

"name" is the plexus <configuration> name. And "value" is supposed to be
its value, Nothing wrong there.

But notice the parameters being passed to the "dependencies" Map. The dependencyValue would also contain the configuration name... as shown in the stacktrace you gave us. And I think this is what's causing the problem.

I have no time to try it out, but if you could replace it instead with:

                   StringWriter xml = new StringWriter();
flatten( child.getChildNodes(), new PrintWriter( xml )
);
                   String dependencyValue = xml.toString();
                   value.append( '<' + name + '>' );
                   value.append( dependencyValue );
                   value.append( "</" + name + '>' );
dependencyValue = StringUtils.replace( xml.toString(),
"${basedir}", PlexusToSpringUtils.getBasedir() );
                   dependencies.put( name, dependencyValue );

and build, test, and create a patch... it would really be helpful.
Thanks!

^_^




On Wed, Apr 16, 2008 at 6:37 PM, Marica Tan <[EMAIL PROTECTED]> wrote:

Hi,

I'm getting the following error in the release prepare of continuum
(trunk).

[ERROR] org.apache.maven.shared.release.ReleaseExecutionException:
Unable to find phase '<preparePhases>
        <phase>update-working-copy</phase>
        <phase>generate-reactor-projects</phase>
        <phase>check-poms</phase>
        <phase>scm-check-modifications</phase>
        <phase>check-dependency-snapshots</phase>
        <phase>create-backup-poms</phase>
        <phase>map-release-versions</phase>
        <phase>input-variables</phase>
        <phase>map-development-versions</phase>
        <phase>rewrite-poms-for-release</phase>
        <phase>generate-release-poms</phase>
        <phase>run-preparation-goals</phase>
        <phase>scm-commit-release</phase>
        <phase>scm-tag</phase>
        <phase>rewrite-poms-for-development</phase>
        <phase>remove-release-poms</phase>
        <phase>scm-commit-development</phase>
        <phase>end-release</phase>
      </preparePhases>' to execute
      at
org .apache .maven .shared .release.DefaultReleaseManager.prepare(DefaultReleaseManager.java: 180)
      at
org .apache .maven .shared .release .DefaultReleaseManager .prepareWithResult(DefaultReleaseManager.java:107)
      at
org .apache .maven .continuum .release .executors .PrepareReleaseTaskExecutor .execute(PrepareReleaseTaskExecutor.java:43)
      at
org .apache .maven .continuum .release .executors .AbstractReleaseTaskExecutor .executeTask(AbstractReleaseTaskExecutor.java:67)
      at
org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor $ExecutorRunnable$1.run(ThreadedTaskQueueExecutor.java:116)
      at
edu.emory.mathcs.backport.java.util.concurrent.Executors $RunnableAdapter.call(Executors.java:442)
      at
edu .emory .mathcs .backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
      at
edu .emory .mathcs .backport .java .util .concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 987)
      at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:528)
      at java.lang.Thread.run(Thread.java:595)


I tried to check the plexus spring configurations and I don't see
anything
wrong :( I see that there's a ContinuumStartup class which replaces the
following in application.xml

<load-on-start>
  <component>
    <role>org.apache.maven.continuum.Continuum</role>
  </component>
  <component>

<role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</ role>
    <role-hint>build-project</role-hint>
  </component>
  <component>

<role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</ role>
    <role-hint>check-out-project</role-hint>
  </component>
  <component>

<role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</ role>
    <role-hint>prepare-release</role-hint>
  </component>
  <component>

<role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</ role>
    <role-hint>perform-release</role-hint>
  </component>
  <component>

<role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</ role>
    <role-hint>rollback-release</role-hint>
  </component>
</load-on-start>

I'm not yet familiar with plexus so I may be missing something here...

Can anyone guide me on this and be my shining light? :D

Thanks,
Marica





--
Brett Porter
[EMAIL PROTECTED]
http://blogs.exist.com/bporter/

Reply via email to