[forge-dev] automatic dependency detection too restrictive?
Marius Bogoevici
mariusb at redhat.com
Tue Feb 14 10:27:23 EST 2012
This is a modularization issue. Adding the MVEL JAR to the plugin will
cause the LinkageError, as the forge-core classes will depend on the
MVEL classes loaded from the forge-core module(s), and the plugin module
will use the MVEL JAR classes packaged with it (so if there's a
hierarchy that crosses the plugin/core boundary, this will crash). The
only good solution I can see is to add a module dependency on the MVEL
module (or the module in which MVEL lives in forge-core).
AFAICT, depending on seam-render and adjusting seam-render module
definition to export the MVEL classes should take care of this (if it's
ever acceptable from a visibility perspective to depend on MVEL directly).
On 12-02-14 10:09 AM, Ryan Bradley wrote:
> Lincoln, frankly, I'm stumped by this one. I never received a
> LoaderConstraintViolation or anything similar. My issue was with the
> seam-render not being added as a module to the plugin, since it was
> already included with the Forge core. However, that issue has since
> been resolved.
>
> Thomas, I'm not sure of the cause of your exception, as including
> seam-render and MVEL as dependencies solved the problem for me. If I
> understand your most recent e-mail correctly, your problem is solved
> if MVEL is manually added to module.xml? MVEL is not required for my
> ScaffoldProvider implementation, so maybe you are experiencing a
> similar problem?
>
> Sorry,
> Ryan
>
> On 02/13/2012 07:15 PM, Lincoln Baxter, III wrote:
>> Ryan, how did you get around this?
>>
>> Thomas, perhaps you could try including seam-render instead of MVEL?
>> Make sure you use the same version that Forge Shell uses as a
>> temporary workaround.
>>
>> ~Lincoln
>>
>> On Mon, Feb 13, 2012 at 5:33 PM, Thomas Frühbeck <fruehbeck at aon.at
>> <mailto:fruehbeck at aon.at>> wrote:
>>
>> Hi Ryan, Lincoln
>>
>> > I ran into similar problems with my own plugin development.
>> Including
>> > MVEL as a Maven dependency in your pom.xml should resolve this
>> issue.
>>
>> this is exactly what I have tried to do. This will really look
>> ugly :/
>> I will write it as clear as possible:
>>
>> in pom.xml I added:
>> <dependency>
>> <groupId>org.mvel</groupId>
>> <artifactId>mvel2</artifactId>
>> <scope>compile</scope>
>> </dependency>
>>
>> On forge install-plugin ~/blabla/ I get:
>> ***SUCCESS*** Installed from [plugin-faces-idaware] successfully.
>> Wrote /home/thomas/.forge/plugins/at/tfr/forge/plugin-faces-id-aware
>> Wrote
>> /home/thomas/.forge/plugins/at/tfr/forge/plugin-faces-id-aware/1.0.0-SNAPSHOT-6c38c8fd-45f4-4736-ad0a-467dc9154a11
>> Wrote
>> /home/thomas/.forge/plugins/at/tfr/forge/plugin-faces-id-aware/1.0.0-SNAPSHOT-6c38c8fd-45f4-4736-ad0a-467dc9154a11/plugin-faces-id-aware.jar
>> Wrote
>> /home/thomas/.forge/plugins/at/tfr/forge/plugin-faces-id-aware/1.0.0-SNAPSHOT-6c38c8fd-45f4-4736-ad0a-467dc9154a11/module.xml
>> Wrote
>> /home/thomas/.forge/plugins/at/tfr/forge/plugin-faces-id-aware/dependencies
>> Wrote
>> /home/thomas/.forge/plugins/at/tfr/forge/plugin-faces-id-aware/dependencies/1.0.0-SNAPSHOT-6c38c8fd-45f4-4736-ad0a-467dc9154a11
>> Wrote
>> /home/thomas/.forge/plugins/at/tfr/forge/plugin-faces-id-aware/dependencies/1.0.0-SNAPSHOT-6c38c8fd-45f4-4736-ad0a-467dc9154a11/metawidget-all-2.0.jar
>> Wrote
>> /home/thomas/.forge/plugins/at/tfr/forge/plugin-faces-id-aware/dependencies/1.0.0-SNAPSHOT-6c38c8fd-45f4-4736-ad0a-467dc9154a11/mvel2-2.1.Beta7.jar
>> Wrote
>> /home/thomas/.forge/plugins/at/tfr/forge/plugin-faces-id-aware/dependencies/1.0.0-SNAPSHOT-6c38c8fd-45f4-4736-ad0a-467dc9154a11/module.xml
>>
>> So to me it is clear, that I was successful, integration of Mvel
>> libraries is done.
>> But when I invoke my plugin, I get _a LoaderConstraintViolation_!!
>>
>> [myidaware] myidaware $ set VERBOSE true
>> [myidaware] myidaware $ scaffold from-entity at.tfr.test.model.*
>> --scaffoldType idaware
>> Use which scaffold provider?
>>
>> 1 - [idaware]
>> 2 - [faces]*
>>
>> ? Choose an option by typing the number of the selection
>> [*-default] [0] 1
>> ***ERROR*** [scaffold from-entity] loader constraint violation:
>> loader (instance of org/jboss/modules/ModuleClassLoader)
>> previously initiated loading for a different type with name
>> "org/mvel2/templates/CompiledTemplate"
>> org.jboss.forge.shell.exceptions.CommandExecutionException:
>> loader constraint violation: loader (instance of
>> org/jboss/modules/ModuleClassLoader) previously initiated loading
>> for a different type with name "org/mvel2/templates/CompiledTemplate"
>>
>> Caused by: java.lang.LinkageError: loader constraint violation:
>> loader (instance of org/jboss/modules/ModuleClassLoader)
>> previously initiated loading for a different type with name
>> "org/mvel2/templates/CompiledTemplate"
>>
>>
>> So for me it is evident, that I brought my own Mvel jar, but the
>> module loader will not let me use it!
>>
>> Regards,
>> Thomas
>> _______________________________________________
>> forge-dev mailing list
>> forge-dev at lists.jboss.org <mailto:forge-dev at lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>
>>
>>
>>
>> --
>> Lincoln Baxter, III
>> http://ocpsoft.com
>> http://scrumshark.com
>> "Keep it Simple"
>>
>>
>> _______________________________________________
>> forge-dev mailing list
>> forge-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/forge-dev
>
>
>
> _______________________________________________
> forge-dev mailing list
> forge-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/forge-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20120214/95460af1/attachment-0001.html
More information about the forge-dev
mailing list