Hi, Jason,

thanks for your reply. That will at least help me to get a working
solution. However, I am not quite sure whether I expressed myself
right. Sorry, if not.

My ideal solution would be to have something like

    <plugins>
        <plugin>
             <artifactId>myPlugin</artifactId>
             <configuration>
                 <myComponent hint="foo">
                     ..          <- XML snippet
                 </myComponent>
             </configuration>
        </plugin>
    </plugins>

Not quite sure, but I think that's a bit more than you wrote, because
I've got to catch Maven's automatisms at some point.

Any idea for this variant?


Thanks,

Jochen



On Tue, Aug 11, 2009 at 5:15 AM, Jason van Zyl<jvan...@sonatype.com> wrote:
>
> On 10-Aug-09, at 1:32 PM, Jochen Wiedmann wrote:
>
>> Hi,
>>
>> in a plugin, I'd like to select a component dynamically. Basically,
>> I'd like to have something along these lines:
>>
>>   <configuration>
>>     <myComponent hint="foo">
>>        ...
>>     </myComponent>
>>   </configuration>
>>
>> The idea is to use the hint for looking up the "myComponent" bean and
>> use the XML fragment between <myComponent> and <myComponent> to
>> configure the bean.
>>
>> Is that possible? Any other ideas how to achieve my goal?
>>
>
> // Lookup you unconfigured component
> //
> Foo component = container.lookup( Foo.class, "myComponent"  );
>
> // Create a PlexusConfiguration to use against your component and populate
> as necessary
> // by adding elements and attributes. Use autocomplete in your IDE to find
> out what's available.
> PlexusConfiguration configuration = new XmlPlexusConfiguration(
> "configuration" );
>
> // Look up the default component configurator which is used internally to
> configure component.
> //
> ComponentConfigurator configurator = container.lookup( Configurator.class );
>
> // I assume you're in a plugin so you'll need the classrealm of the plugin
> itself
> // which you can access through the mojoExecution using the ${mojoExecution}
> expression
> ClassRealm pluginRealm =
> mojoExecution.getMojoDescriptor().getPluginDescriptor().getClassRealm();
>
> // Use the configurator to configure the component
> configurator.configureComponent( component, configuration, pluginRealm );
>
> You might want to make your own implementation of the PlexusConfiguration if
> you're going to use another source other then XML. Internally in Plexus the
> configuration can come from any source but in Maven it's primarily XML but
> you're not restricted to XML.
>
>> Thanks,
>>
>> Jochen
>>
>> --
>> Base64 decoding, 300% faster than sun.misc.BASE64Decoder:
>> http://archive.netbsd.se/?ml=commons-dev&a=2008-05&t=7522166
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>> For additional commands, e-mail: dev-h...@maven.apache.org
>>
>
> Thanks,
>
> Jason
>
> ----------------------------------------------------------
> Jason van Zyl
> Founder,  Apache Maven
> http://twitter.com/jvanzyl
> http://twitter.com/SonatypeNexus
> http://twitter.com/SonatypeM2E
> ----------------------------------------------------------
>
> People develop abstractions by generalizing from concrete examples.
> Every attempt to determine the correct abstraction on paper without
> actually developing a running system is doomed to failure. No one
> is that smart. A framework is a resuable design, so you develop it by
> looking at the things it is supposed to be a design of. The more examples
> you look at, the more general your framework will be.
>
>  -- Ralph Johnson & Don Roberts, Patterns for Evolving Frameworks
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
>



-- 
Base64 decoding, 300% faster than sun.misc.BASE64Decoder:
http://archive.netbsd.se/?ml=commons-dev&a=2008-05&t=7522166

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to