Dan,

This is what I used:

    public void setUp() throws Exception {
        EJB3StandaloneBootstrap.boot(null);
        deployer = new EJB3StandaloneDeployer();
        deployer.getDeployDirs().add(makeURLForDir("target/test-classes"));
        deployer.getDeployDirs().add(makeURLForDir("target/classes"));
        deployer.create();
        deployer.start();
        initialContext = new InitialContext();
    }

    private URL makeURLForDir(String dir) throws MalformedURLException,
            IOException {
        return new URL("file:///" + new File(dir).getCanonicalPath());
    }

Unfortunately, I can't remember why I coded it this way  - just that it
worked on what ever version of the microcontainer was available in December.
:-)

Chris


--
Enterprise POJO consulting - http://www.chrisrichardson.net
Author, POJOs in Action - http://www.manning.com/crichardson
Enterprise POJOs blog - http://chris-richardson.blog-city.com


On 3/28/06, Dan Greening <[EMAIL PROTECTED]> wrote:
>
> For what it's worth, I changed the configuration a bit, just in case
> Surefire's alteration of the java.class.path was relevant.  This code
> provides explicit paths to the EJB3 deployer, for the configuration
> files and for the location of the EJBs.
>
> Change EmbeddedEjb3TestCase.startupEmbeddedJboss to be this:
>
>     public static void startupEmbeddedJboss()
>     {
>           EJB3StandaloneBootstrap.boot("target/test-classes");
>           EJB3StandaloneBootstrap.scanClasspath("target/classes");
>     }
>
> It actually CRASHES surefire, I think because of a null pointer
> exception in EJB3StandaloneBootstrap.boot.   But still runs fine in
> eclipse.  Don't know what the problem is, but it seems like a bug in
> Surefire.
>
> I updated SUREFIRE-38 to document this.
>
> By the way, thank you to Chris Richardson and Carlos Sanchez for
> their interest in this problem.  I think it is well worthwhile to
> make sure Surefire works properly with EJB3 embeddable testing.  Once
> EJB3 is finalized, people are going to be using embeddable containers
> for unit testing, because it is awesome.
>
> If I am unable to get this to work, is there an alternate tester I
> could use that works like the old Maven 1 junit tester?  It is, I
> believe, the only hurdle remaining for me to migrate to Maven 2.
>
> Dan R. Greening, Ph.D.,  CEO BigTribe Corporation,  http://
> dan.greening.name/contact.htm
>
>
> On Mar 28, 2006, at 8:08 AM, Dan Greening wrote:
>
> > I appreciate that many people tried to help out with suggestions,
> > but none of them seemed to work.
> >
> > I have created a test case that shows how the JUnit test fails
> > under Surefire (with Maven 2.0.3), and succeeds in Eclipse using
> > Maven 2.0.3's eclipse:eclipse, both using the same pom.xml.  The
> > test case and detailed instructions are attached to JIRA ticket
> > SUREFIRE-38.  The problem may be related to the fact that Surefire
> > resets the java.class.path so EJB3 embeddable container cannot find
> > the annotations.  I may test this hypothesis today.
> >
> > I have spent many days on this problem, mainly because I want to
> > convert our EJB3 application from Maven 1.0.2 to Maven 2.  I also
> > contributed a fix to the Maven 2 ejb plugin, which is required to
> > build EJB3 components.  Sure could use some help on this.
> >
> > Dan R. Greening, Ph.D.,  CEO BigTribe Corporation,  http://
> > dan.greening.name/contact.htm
> >
> >
> > On Mar 19, 2006, at 11:16 AM, Dan Greening wrote:
> >
> >> I am pulling my hair out.
> >>
> >> If you have gotten maven2 surefire plugin (or anything else) to
> >> initiate a JBoss EJB3 embeddable container, I am desperate for
> >> your POM.
> >>
> >> I am trying very hard to get the JBoss EJB3 embeddable container
> >> to operate under the surefire-plugin, under the test phase.  I
> >> cannot, for the life of me, get it to find the InitialContext.
> >> I've set the system properties properly, and I even have a
> >> duplicated it in jndi.properties.  My configuration works under
> >> maven1, but not maven2.
> >>
> >> I think it could be caused by one of two things.  Either
> >>
> >> a. The surefire plugin isolated classloader is making it
> >> impossible for the embeddable container to find the annotated
> >> classes.
> >>
> >> b. I have screwed up my POM somehow.
> >>
> >> If all you tell me is "yes, I have gotten the JBoss EJB3
> >> embeddable container to run and see my classes under surefire",
> >> you will have done me a favor, because that would indicate it is
> >> possible.  However, it would be really nice if you would also send
> >> your POM so I could understand your configuration.
> >>
> >> Seriously, this has been driving me nuts for days, so I could
> >> really use the help.
> >>
> >> Dan R. Greening, Ph.D.,  CEO BigTribe Corporation,  http://
> >> dan.greening.name/contact.htm
> >>
> >>
> >
>
>
>

Reply via email to