Hey,

I just download the tarball from the JIRA onto my office machine. Then
I extracted it and ran mvn install, this is what I got:

quin...@quintin-desktop openejb-junit $ mvn install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building openejb-junit
[INFO]    task-segment: [install]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered
resources, i.e. build is platform dependent!
[INFO] Copying 2 resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Compiling 12 source files to
/home/quintin/dev/openejb/openejb-junit/target/classes
[INFO] [resources:testResources {execution: default-testResources}]
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered
resources, i.e. build is platform dependent!
[INFO] Copying 3 resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] Compiling 15 source files to
/home/quintin/dev/openejb/openejb-junit/target/test-classes
[INFO] [surefire:test {execution: default-test}]
[INFO] Surefire report directory:
/home/quintin/dev/openejb/openejb-junit/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.apache.openejb.junit.TestEjbSecurity
Apache OpenEJB 3.1.2-SNAPSHOT    build: 20090827-09:05
http://openejb.apache.org/
INFO - openejb.home = /home/quintin/dev/openejb/openejb-junit
INFO - openejb.base = /home/quintin/dev/openejb/openejb-junit
INFO - Configuring Service(id=Default Security Service,
type=SecurityService, provider-id=Default Security Service)
INFO - Configuring Service(id=Default Transaction Manager,
type=TransactionManager, provider-id=Default Transaction Manager)
INFO - Found EjbModule in classpath:
/home/quintin/dev/openejb/openejb-junit/target/test-classes
INFO - Beginning load:
/home/quintin/dev/openejb/openejb-junit/target/test-classes
INFO - Configuring enterprise application: classpath.ear
INFO - Configuring Service(id=Default Stateless Container,
type=Container, provider-id=Default Stateless Container)
INFO - Auto-creating a container for bean SecuredEjb:
Container(type=STATELESS, id=Default Stateless Container)
INFO - Enterprise application "classpath.ear" loaded.
INFO - Assembling app: classpath.ear
INFO - Jndi(name=SecuredEjbLocal) --> Ejb(deployment-id=SecuredEjb)
INFO - Jndi(name=BasicEjbLocal) --> Ejb(deployment-id=BasicEjb)
INFO - Created Ejb(deployment-id=SecuredEjb, ejb-name=SecuredEjb,
container=Default Stateless Container)
INFO - Created Ejb(deployment-id=BasicEjb, ejb-name=BasicEjb,
container=Default Stateless Container)
INFO - Deployed Application(path=classpath.ear)
INFO - Logging in
INFO - Logging in
INFO - Logging in
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.791 sec
Running org.apache.openejb.junit.context.ContextWrapperStatementTest
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.027 sec
Running org.apache.openejb.junit.TestEjbBasic
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 sec
Running org.apache.openejb.junit.TestMethodConfigProperties
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 sec
Running org.apache.openejb.junit.TestClassConfigFileAndProperties
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec
Running org.apache.openejb.junit.TestClassConfigFile
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec
Running org.apache.openejb.junit.TestDualConfigOverride
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 sec
Running org.apache.openejb.junit.TestRunner
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec
Running org.apache.openejb.junit.TestMethodConfigFile
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec
Running org.apache.openejb.junit.context.UtilTest
Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 sec
Running org.apache.openejb.junit.TestClassConfigProperties
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec

Results :

Tests run: 33, Failures: 0, Errors: 0, Skipped: 0

[INFO] [jar:jar {execution: default-jar}]
[INFO] Building jar:
/home/quintin/dev/openejb/openejb-junit/target/openejb-junit-0.1-SNAPSHOT.jar
[INFO] [install:install {execution: default-install}]
[INFO] Installing
/home/quintin/dev/openejb/openejb-junit/target/openejb-junit-0.1-SNAPSHOT.jar
to 
/home/quintin/.m2/repository/org/apache/openejb/openejb-junit/0.1-SNAPSHOT/openejb-junit-0.1-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 9 seconds
[INFO] Finished at: Mon Sep 28 11:22:52 SAST 2009

Can you perhaps send me your full output.

And, are you perhaps running in JDK5? I haven't tested it in JDK5. I
just did so an found I get the same error. I will be updating it for
JDK5 today, which should probably fix the error. Thanks for the input.

Quintin Beukes



On Mon, Sep 28, 2009 at 12:55 AM, Jonathan Gallimore
<[email protected]> wrote:
> Just had a quick play with this, it  looks really nice. Thanks for a great
> contribution. I think it would be good to get this added to subversion and
> some info up on the website. I'm happy to get this in, anyone got any
> thoughts about where it goes (under openejb3 or somewhere else)?
>
> One problem I did run into was this error running the TestEjbSecurity test
> case:
>
> java.lang.RuntimeException: Failed to configure object.
>    at
> org.apache.openejb.junit.context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:109)
>    at
> org.apache.openejb.junit.context.ContextWrapperStatement.evaluate(ContextWrapperStatement.java:44)
>    at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>    at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>    at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>    at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>    at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>    at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>    at org.apache.openejb.junit.OpenEjbRunner.run(OpenEjbRunner.java:133)
>    at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
>    at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>    at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>    at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>    at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>    at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: javax.naming.AuthenticationException: User could not be
> authenticated: RoleA [Root exception is
> javax.security.auth.login.LoginException: No LoginModules configured for
> OpenEjbJunitSecurityRealm]
>    at
> org.apache.openejb.client.LocalInitialContext.login(LocalInitialContext.java:127)
>    at
> org.apache.openejb.client.LocalInitialContext.<init>(LocalInitialContext.java:77)
>    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
>    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
> Source)
>    at java.lang.reflect.Constructor.newInstance(Unknown Source)
>    at
> org.apache.openejb.client.LocalInitialContextFactory.getLocalInitialContext(LocalInitialContextFactory.java:86)
>    at
> org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:43)
>    at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
>    at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
>    at javax.naming.InitialContext.init(Unknown Source)
>    at javax.naming.InitialContext.<init>(Unknown Source)
>    at
> org.apache.openejb.junit.context.OpenEjbTestContext.getInitialContext(OpenEjbTestContext.java:130)
>    at
> org.apache.openejb.junit.context.OpenEjbTestContext.configureTest(OpenEjbTestContext.java:97)
>    ... 16 more
> Caused by: javax.security.auth.login.LoginException: No LoginModules
> configured for OpenEjbJunitSecurityRealm
>    at javax.security.auth.login.LoginContext.init(Unknown Source)
>    at javax.security.auth.login.LoginContext.<init>(Unknown Source)
>    at
> org.apache.openejb.core.security.SecurityServiceImpl.login(SecurityServiceImpl.java:74)
>    at
> org.apache.openejb.core.security.SecurityServiceImpl.login(SecurityServiceImpl.java:35)
>    at
> org.apache.openejb.client.LocalInitialContext.login(LocalInitialContext.java:123)
>    ... 29 more
>
>
> I guess there's something extra I need in my setup, any thoughts? (I admit I
> haven't tried particularly hard to troubleshoot it yet - its getting late,
> but I'll have another go tomorrow!),
>
> Cheers
>
> Jon
>
> On Sun, Sep 27, 2009 at 8:16 PM, Quintin Beukes <[email protected]> wrote:
>
>> Hey,
>>
>> The previous runner I started modifying extensively to customize for
>> our company's tests. I already had a small testing framework for the
>> tests, which used Spring to initial OpenEJB and do the lookups. I
>> changed this to use the runner technique.
>>
>> Then over the weekend I decided to extract the runner code into an
>> openejb-junit project, and make it extensible so I could use the
>> library's code and only extend to give our tests the same
>> functionality.
>>
>> This is what I came up with:
>> https://issues.apache.org/jira/browse/OPENEJB-1078
>>
>> The JUnit tests demonstrate it's behaviour. These 3 tests are the best
>> examples:
>> org.apache.openejb.junit.TestEjbBasic
>> org.apache.openejb.junit.TestEjbSecurity
>> org.apache.openejb.junit.TestDualConfigOverride
>>
>> It supports class level configuration of the InitialContext, and then
>> method specific configurations. You can configure the InitialContext
>> from a file, or by directly specifying properties. You can have
>> OpenEJB do any of it's supported injections, or you can have the
>> runner inject the InitialContext (or it's initialization Properties
>> object) and do your own lookups. You can specify as which role to load
>> the InitialContext (basically a RunAs).
>>
>> I'm planning on doing resource configurations, such as datasources.
>> Any other suggestions, please throw them my way. And please send me
>> feedback. So far it's working very well for my tests. I have yet to
>> complete the spring modification, but for those tests which don't
>> require it, it works very well. Especially the role tests.
>>
>> Not that it still doesn't support JUnit 3. If you require JUnit 3, let
>> me know and I'll prioritize implementing JUnit 3 support.
>>
>> An basic example would be the following:
>> @RunWith(OpenEjbRunner.class)
>> @ContextConfig(
>>  properties={
>>
>> �...@property("java.naming.factory.initial=org.apache.openejb.client.LocalInitialContextFactory")
>>  }
>> )
>> @LocalClient
>> public class TestEjbSecurity
>> {
>> �...@ejb
>>  private MyBusinessBean myBean;
>>
>> �...@testresource
>>  private InitialContext currentInitialContext;
>>
>> �...@test
>> �...@contextconfig(
>>    securityRole="Admin"
>>  )
>>  public void testAsAdmin()
>>  {
>>    myBean.someMethod();
>>    currentInitialContext.lookup("some/custom/lookup");
>>  }
>>
>> �...@test
>> �...@contextconfig(
>>    propertiesFile="/META-INF/employee-context.properties",
>>    securityRole="Employe"
>>  )
>>  public void testAsEmployee()
>>  {
>>    myBean.someMethod();
>>  }
>> }
>>
>> Quintin Beukes
>>
>

Reply via email to