On 21/04/2008, at 6:38 AM, Edwin Punzalan wrote:

Any suggestion on how to do this? I can only think of the straightforward conversion to spring, which is to translate all components.xml into the
spring context.  But even that may have its own problems.

That's exactly it, but you only need to do it for the single bean. The plexus-spring integration automatically converts components.xml into spring context's, it just doesn't know how to handle this particular one :)

- Brett



But since you're all suggesting this route. Maybe you guys know a shortcut
that you'd want to share?  ^_^

On Fri, Apr 18, 2008 at 7:13 PM, Brett Porter <[EMAIL PROTECTED]> wrote:

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/



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

Reply via email to