Can we make the default constructor chain to the classloader one with a
suitably inoffensive classloader? This would keep Maven happy and mean
people didn't have to inject unnecessary classloaders. Oh man, I love Java
and its funny classloader ways :)

Cheers,
Dan

2008/10/25 Mauro Talevi <[EMAIL PROTECTED]>

> Hi Binil,
>
> Binil Thomas wrote:
>
>> Hi all,
>>
>> On http://jbehave.org/software/plugins/maven/ page, there is this
>> snippet:
>>
>>    The configuration of the plugin would look something like:
>>
>>    where the include/exclude patterns are intended relative to the
>>    classpath.
>>    Note that jBehave does not mandate any particular structure. The
>>    only requirement is that only classes that extend the jBehave
>>    org.jbehave.scenario.Scenario class are included.
>>
>> I am trying to create a Maven project to follow Ryan Greenhall's tutorial
>> (BTW, why is this tutorial not linked on the project page?).
>>
>
> It is: look in http://jbehave.org/documentation/resources
>
>
>  Right now, I have a scenario with all steps pending. I got this to run
>> from within my IDE (Eclipse), but I would like to run it from Maven too.
>>
>> JBehave's maven plugin seems to have elaborate configuration options.
>> Also, the example projects at
>> https://svn.codehaus.org/jbehave/trunk/examples/ are not easy to follow
>> because it, with a scenario subproject to run JBehave etc, looks different
>> from typical maven projects.
>>
>> I tried to configure the plugin with a blind stab, hoping for some
>> intelligents defaults to help me out:
>>
>>            <plugin>
>>                <groupId>org.jbehave</groupId>
>>                <artifactId>jbehave-maven-plugin</artifactId>
>>                <version>2.0.1</version>
>>                <executions>
>>                    <execution>
>>                        <id>run-scenarios-found</id>
>>                        <phase>integration-test</phase>
>>                        <goals>
>>                            <goal>run-scenarios</goal>
>>                        </goals>
>>                    </execution>
>>                </executions>
>>            </plugin>
>>
>> When my scenario class is in src/main/java, jbehave complains :
>>
>>    [INFO] [compiler:compile]
>>    [INFO] Compiling 1 source file to
>>    /Users/binil/temp/jbehave-try/target/classes
>>
>> ...
>>
>>    [INFO] Failed to instantiate scenarios [binil.HeyHeyMyMy]
>>    Embedded error: The Scenario 'binil.HeyHeyMyMy' could not be
>>    instantiated with classpath elements:
>>    [/Users/binil/temp/jbehave-try/target/classes/,
>>    jbehave-core-2.0.1.jar, junit-4.4.jar]
>>    binil.HeyHeyMyMy.<init>(java.lang.ClassLoader)
>>
>> When I move my scenario class to src/test/java, I get a:
>>
>>    [INFO] [jbehave:run-scenarios {execution: run-scenarios-found}]
>>    [INFO] No scenarios to run.
>>
>> message.
>>
>> (In both cases the hey_hey_my_my text file is at src/main/resources).
>>
>> Please let me know how I should go about configuring the plugin.
>>
>>
> You seem to have found the solution yourself - but to re-iterate:
>
> Maven 2 is very fussy about classloaders (most probably a reaction to Maven
> 1 slack in this respect :-).  So each scenario needs a Classloader to be
> injected.  This is in general no bad practice - one can always provide as
> default the thread context classloades.
>
> I'll make sure this is documented better. Created issue to track this
> http://jira.codehaus.org/browse/JBEHAVE-143
>
> Thanks for your feedback and don't hesitate to give us a shout if you run
> into problems.
>
> Remember that, if you do, the JBehave examples are your friends:
> https://svn.codehaus.org/jbehave/trunk/examples/
>
> Cheers
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>   http://xircles.codehaus.org/manage_email
>
>
>

Reply via email to