You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2013/11/21 17:06:44 UTC
svn commit: r1544234 - in /tomee/tomee/trunk/container/openejb-core/src:
main/java/org/apache/openejb/core/ivm/
main/java/org/apache/openejb/core/ivm/naming/
main/java/org/apache/openejb/core/transaction/
test/java/org/apache/openejb/core/asynch/ test/...
Author: andygumbrecht
Date: Thu Nov 21 16:06:44 2013
New Revision: 1544234
URL: http://svn.apache.org/r1544234
Log:
Log as error.
Some more finals and cleanups.
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/ClientSecurity.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/ContextWrapper.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/transaction/TransactionRolledbackException.java
tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/asynch/AsynchInRoleTest.java
tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/security/SecurityTest.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java?rev=1544234&r1=1544233&r2=1544234&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java Thu Nov 21 16:06:44 2013
@@ -296,6 +296,7 @@ public abstract class BaseEjbProxyHandle
IntraVmCopyMonitor.post();
}
}
+
final IntraVmCopyMonitor.State oldStrategy = strategy;
if (getBeanContext().isAsynchronous(method) || getBeanContext().getComponentType().equals(BeanType.MANAGED)) {
strategy = IntraVmCopyMonitor.State.NONE;
@@ -348,9 +349,9 @@ public abstract class BaseEjbProxyHandle
}
}
if (!(Object.class.equals(method.getDeclaringClass())
- && method.getName().equals("finalize")
- && method.getExceptionTypes().length == 1
- && Throwable.class.equals(method.getExceptionTypes()[0]))) {
+ && method.getName().equals("finalize")
+ && method.getExceptionTypes().length == 1
+ && Throwable.class.equals(method.getExceptionTypes()[0]))) {
getBeanContext(); // will throw an exception if app has been undeployed.
}
}
@@ -493,8 +494,8 @@ public abstract class BaseEjbProxyHandle
protected boolean equalHandler(final BaseEjbProxyHandler other) {
return (primaryKey == null ? other.primaryKey == null : primaryKey.equals(other.primaryKey))
- && deploymentID.equals(other.deploymentID)
- && getMainInterface().equals(other.getMainInterface());
+ && deploymentID.equals(other.deploymentID)
+ && getMainInterface().equals(other.getMainInterface());
}
protected abstract Object _invoke(Object proxy, Class interfce, Method method, Object[] args) throws Throwable;
@@ -526,21 +527,21 @@ public abstract class BaseEjbProxyHandle
}
final Class ooc = object.getClass();
if (ooc == int.class ||
- ooc == String.class ||
- ooc == long.class ||
- ooc == boolean.class ||
- ooc == byte.class ||
- ooc == float.class ||
- ooc == double.class ||
- ooc == short.class ||
- ooc == Long.class ||
- ooc == Boolean.class ||
- ooc == Byte.class ||
- ooc == Character.class ||
- ooc == Float.class ||
- ooc == Double.class ||
- ooc == Short.class ||
- ooc == BigDecimal.class) {
+ ooc == String.class ||
+ ooc == long.class ||
+ ooc == boolean.class ||
+ ooc == byte.class ||
+ ooc == float.class ||
+ ooc == double.class ||
+ ooc == short.class ||
+ ooc == Long.class ||
+ ooc == Boolean.class ||
+ ooc == Byte.class ||
+ ooc == Character.class ||
+ ooc == Float.class ||
+ ooc == Double.class ||
+ ooc == Short.class ||
+ ooc == BigDecimal.class) {
return object;
}
@@ -551,9 +552,9 @@ public abstract class BaseEjbProxyHandle
out.close();
} catch (NotSerializableException e) {
throw (IOException) new NotSerializableException(e.getMessage() +
- " : The EJB specification restricts remote interfaces to only serializable data types. This can be disabled for in-vm use with the " +
- OPENEJB_LOCALCOPY +
- "=false system property.").initCause(e);
+ " : The EJB specification restricts remote interfaces to only serializable data types. This can be disabled for in-vm use with the " +
+ OPENEJB_LOCALCOPY +
+ "=false system property.").initCause(e);
}
final ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/ClientSecurity.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/ClientSecurity.java?rev=1544234&r1=1544233&r2=1544234&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/ClientSecurity.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/ClientSecurity.java Thu Nov 21 16:06:44 2013
@@ -27,7 +27,7 @@ public class ClientSecurity {
return clientIdentity;
}
- public static void setIdentity(Object clientIdentity) {
+ public static void setIdentity(final Object clientIdentity) {
ClientSecurity.clientIdentity = clientIdentity;
}
}
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java?rev=1544234&r1=1544233&r2=1544234&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java Thu Nov 21 16:06:44 2013
@@ -336,6 +336,7 @@ public abstract class EjbHomeProxyHandle
public Object call() throws Exception {
final Object threadState;
if (associate) {
+ //noinspection unchecked
securityService.associate(securityState);
threadState = null;
} else {
@@ -353,7 +354,7 @@ public abstract class EjbHomeProxyHandle
return homeMethodInvoke(interfce, method, args);
} catch (ApplicationException ae) {
- logger.warning("EjbHomeProxyHandler: Asynchronous call to '" + interfce.getSimpleName() + "' on '" + method.getName() + "' failed", ae);
+ logger.error("EjbHomeProxyHandler: Asynchronous call to '" + interfce.getSimpleName() + "' on '" + method.getName() + "' failed", ae);
throw ae;
} finally {
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java?rev=1544234&r1=1544233&r2=1544234&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java Thu Nov 21 16:06:44 2013
@@ -260,6 +260,7 @@ public abstract class EjbObjectProxyHand
public Object call() throws Exception {
final Object threadState;
if (associate) {
+ //noinspection unchecked
securityService.associate(securityState);
threadState = null;
} else {
@@ -278,7 +279,7 @@ public abstract class EjbObjectProxyHand
return synchronizedBusinessMethod(interfce, method, args);
} catch (ApplicationException ae) {
- logger.warning("EjbObjectProxyHandler: Asynchronous call to '" + interfce.getSimpleName() + "' on '" + method.getName() + "' failed", ae);
+ logger.error("EjbObjectProxyHandler: Asynchronous call to '" + interfce.getSimpleName() + "' on '" + method.getName() + "' failed", ae);
throw ae;
} finally {
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/ContextWrapper.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/ContextWrapper.java?rev=1544234&r1=1544233&r2=1544234&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/ContextWrapper.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/ContextWrapper.java Thu Nov 21 16:06:44 2013
@@ -29,125 +29,155 @@ import java.util.Hashtable;
* @version $Rev$ $Date$
*/
public class ContextWrapper implements Context {
+
protected final Context context;
- public ContextWrapper(Context context) {
+ public ContextWrapper(final Context context) {
this.context = context;
}
- public Object addToEnvironment(String propName, Object propVal) throws NamingException {
+ @Override
+ public Object addToEnvironment(final String propName, final Object propVal) throws NamingException {
return context.addToEnvironment(propName, propVal);
}
- public void bind(Name name, Object obj) throws NamingException {
+ @Override
+ public void bind(final Name name, final Object obj) throws NamingException {
context.bind(name, obj);
}
- public void bind(String name, Object obj) throws NamingException {
+ @Override
+ public void bind(final String name, final Object obj) throws NamingException {
context.bind(name, obj);
}
+ @Override
public void close() throws NamingException {
context.close();
}
- public Name composeName(Name name, Name prefix) throws NamingException {
+ @Override
+ public Name composeName(final Name name, final Name prefix) throws NamingException {
return context.composeName(name, prefix);
}
- public String composeName(String name, String prefix) throws NamingException {
+ @Override
+ public String composeName(final String name, final String prefix) throws NamingException {
return context.composeName(name, prefix);
}
- public Context createSubcontext(Name name) throws NamingException {
+ @Override
+ public Context createSubcontext(final Name name) throws NamingException {
return context.createSubcontext(name);
}
- public Context createSubcontext(String name) throws NamingException {
+ @Override
+ public Context createSubcontext(final String name) throws NamingException {
return context.createSubcontext(name);
}
- public void destroySubcontext(Name name) throws NamingException {
+ @Override
+ public void destroySubcontext(final Name name) throws NamingException {
context.destroySubcontext(name);
}
- public void destroySubcontext(String name) throws NamingException {
+ @Override
+ public void destroySubcontext(final String name) throws NamingException {
context.destroySubcontext(name);
}
+ @Override
public Hashtable<?, ?> getEnvironment() throws NamingException {
return context.getEnvironment();
}
+ @Override
public String getNameInNamespace() throws NamingException {
return context.getNameInNamespace();
}
- public NameParser getNameParser(Name name) throws NamingException {
+ @Override
+ public NameParser getNameParser(final Name name) throws NamingException {
return context.getNameParser(name);
}
- public NameParser getNameParser(String name) throws NamingException {
+ @Override
+ public NameParser getNameParser(final String name) throws NamingException {
return context.getNameParser(name);
}
- public NamingEnumeration<NameClassPair> list(Name name) throws NamingException {
+ @Override
+ public NamingEnumeration<NameClassPair> list(final Name name) throws NamingException {
return context.list(name);
}
- public NamingEnumeration<NameClassPair> list(String name) throws NamingException {
+ @Override
+ public NamingEnumeration<NameClassPair> list(final String name) throws NamingException {
return context.list(name);
}
- public NamingEnumeration<Binding> listBindings(Name name) throws NamingException {
+ @Override
+ public NamingEnumeration<Binding> listBindings(final Name name) throws NamingException {
return context.listBindings(name);
}
- public NamingEnumeration<Binding> listBindings(String name) throws NamingException {
+ @Override
+ public NamingEnumeration<Binding> listBindings(final String name) throws NamingException {
return context.listBindings(name);
}
- public Object lookup(Name name) throws NamingException {
+ @Override
+ public Object lookup(final Name name) throws NamingException {
return context.lookup(name);
}
- public Object lookup(String name) throws NamingException {
+ @Override
+ public Object lookup(final String name) throws NamingException {
return context.lookup(name);
}
- public Object lookupLink(Name name) throws NamingException {
+ @Override
+ public Object lookupLink(final Name name) throws NamingException {
return context.lookupLink(name);
}
- public Object lookupLink(String name) throws NamingException {
+ @Override
+ public Object lookupLink(final String name) throws NamingException {
return context.lookupLink(name);
}
- public void rebind(Name name, Object obj) throws NamingException {
+ @Override
+ public void rebind(final Name name, final Object obj) throws NamingException {
context.rebind(name, obj);
}
- public void rebind(String name, Object obj) throws NamingException {
+ @Override
+ public void rebind(final String name, final Object obj) throws NamingException {
context.rebind(name, obj);
}
- public Object removeFromEnvironment(String propName) throws NamingException {
+ @Override
+ public Object removeFromEnvironment(final String propName) throws NamingException {
return context.removeFromEnvironment(propName);
}
- public void rename(Name oldName, Name newName) throws NamingException {
+ @Override
+ public void rename(final Name oldName, final Name newName) throws NamingException {
context.rename(oldName, newName);
}
- public void rename(String oldName, String newName) throws NamingException {
+ @Override
+ public void rename(final String oldName, final String newName) throws NamingException {
context.rename(oldName, newName);
}
- public void unbind(Name name) throws NamingException {
+ @Override
+ public void unbind(final Name name) throws NamingException {
context.unbind(name);
}
- public void unbind(String name) throws NamingException {
+ @Override
+ public void unbind(final String name) throws NamingException {
context.unbind(name);
}
}
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/transaction/TransactionRolledbackException.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/transaction/TransactionRolledbackException.java?rev=1544234&r1=1544233&r2=1544234&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/transaction/TransactionRolledbackException.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/transaction/TransactionRolledbackException.java Thu Nov 21 16:06:44 2013
@@ -25,6 +25,7 @@ import java.io.PrintWriter;
* Subclass of javax.transaction.TransactionRolledbackException which adds init cause to the exception.
*/
public class TransactionRolledbackException extends javax.transaction.TransactionRolledbackException {
+
private Throwable cause = this;
public TransactionRolledbackException() {
@@ -32,7 +33,7 @@ public class TransactionRolledbackExcept
fillInStackTrace();
}
- public TransactionRolledbackException(String detailMessage) {
+ public TransactionRolledbackException(final String detailMessage) {
super(detailMessage);
}
@@ -41,14 +42,14 @@ public class TransactionRolledbackExcept
* cause filled in.
*
* @param detailMessage String The detail message for the exception.
- * @param throwable The cause of this Throwable
+ * @param throwable The cause of this Throwable
*/
- public TransactionRolledbackException(String detailMessage, Throwable throwable) {
+ public TransactionRolledbackException(final String detailMessage, final Throwable throwable) {
super(detailMessage);
cause = throwable;
}
- public TransactionRolledbackException(Throwable throwable) {
+ public TransactionRolledbackException(final Throwable throwable) {
super(throwable == null ? null : throwable.toString());
cause = throwable;
}
@@ -61,6 +62,7 @@ public class TransactionRolledbackExcept
*
* @return String The receiver's message.
*/
+ @Override
public String getLocalizedMessage() {
return getMessage();
}
@@ -69,6 +71,7 @@ public class TransactionRolledbackExcept
* Outputs a printable representation of the receiver's walkback on the
* System.err stream.
*/
+ @Override
public void printStackTrace() {
printStackTrace(System.err);
}
@@ -78,15 +81,15 @@ public class TransactionRolledbackExcept
* the end of the stack.
*
* @param currentStack a stack to compare
- * @param parentStack a stack to compare
+ * @param parentStack a stack to compare
* @return the number of duplicate stack frames.
*/
- private static int countDuplicates(StackTraceElement[] currentStack,
- StackTraceElement[] parentStack) {
+ private static int countDuplicates(final StackTraceElement[] currentStack,
+ final StackTraceElement[] parentStack) {
int duplicates = 0;
int parentIndex = parentStack.length;
- for (int i = currentStack.length; --i >= 0 && --parentIndex >= 0;) {
- StackTraceElement parentFrame = parentStack[parentIndex];
+ for (int i = currentStack.length; --i >= 0 && --parentIndex >= 0; ) {
+ final StackTraceElement parentFrame = parentStack[parentIndex];
if (parentFrame.equals(currentStack[i])) {
duplicates++;
} else {
@@ -102,11 +105,12 @@ public class TransactionRolledbackExcept
*
* @param err PrintStream The stream to write the walkback on.
*/
- public void printStackTrace(PrintStream err) {
+ @Override
+ public void printStackTrace(final PrintStream err) {
err.println(toString());
// Don't use getStackTrace() as it calls clone()
// Get stackTrace, in case stackTrace is reassigned
- StackTraceElement[] stack = getStackTrace();
+ final StackTraceElement[] stack = getStackTrace();
for (int i = 0; i < stack.length; i++) {
err.println("\tat " + stack[i]);
}
@@ -116,8 +120,8 @@ public class TransactionRolledbackExcept
while (throwable != null) {
err.print("Caused by: ");
err.println(throwable);
- StackTraceElement[] currentStack = throwable.getStackTrace();
- int duplicates = countDuplicates(currentStack, parentStack);
+ final StackTraceElement[] currentStack = throwable.getStackTrace();
+ final int duplicates = countDuplicates(currentStack, parentStack);
for (int i = 0; i < currentStack.length - duplicates; i++) {
err.println("\tat " + currentStack[i]);
}
@@ -135,11 +139,12 @@ public class TransactionRolledbackExcept
*
* @param err PrintWriter The writer to write the walkback on.
*/
- public void printStackTrace(PrintWriter err) {
+ @Override
+ public void printStackTrace(final PrintWriter err) {
err.println(toString());
// Don't use getStackTrace() as it calls clone()
// Get stackTrace, in case stackTrace is reassigned
- StackTraceElement[] stack = getStackTrace();
+ final StackTraceElement[] stack = getStackTrace();
for (int i = 0; i < stack.length; i++) {
err.println("\tat " + stack[i]);
}
@@ -149,8 +154,8 @@ public class TransactionRolledbackExcept
while (throwable != null) {
err.print("Caused by: ");
err.println(throwable);
- StackTraceElement[] currentStack = throwable.getStackTrace();
- int duplicates = countDuplicates(currentStack, parentStack);
+ final StackTraceElement[] currentStack = throwable.getStackTrace();
+ final int duplicates = countDuplicates(currentStack, parentStack);
for (int i = 0; i < currentStack.length - duplicates; i++) {
err.println("\tat " + currentStack[i]);
}
@@ -169,12 +174,12 @@ public class TransactionRolledbackExcept
* @return String a printable representation for the receiver.
*/
public String toString() {
- String msg = getLocalizedMessage();
- String name = getClass().getName();
+ final String msg = getLocalizedMessage();
+ final String name = getClass().getName();
if (msg == null) {
return name;
}
- return new StringBuilder(name.length() + 2 + msg.length()).append(name).append(": ").append(msg).toString();
+ return name + ": " + msg;
}
/**
@@ -183,9 +188,10 @@ public class TransactionRolledbackExcept
* @param throwable The cause of this Throwable
* @return the receiver.
* @throws IllegalArgumentException when the cause is the receiver
- * @throws IllegalStateException when the cause has already been initialized
+ * @throws IllegalStateException when the cause has already been initialized
*/
- public synchronized TransactionRolledbackException initCause(Throwable throwable) {
+ @Override
+ public synchronized TransactionRolledbackException initCause(final Throwable throwable) {
cause = throwable;
return this;
}
@@ -195,6 +201,7 @@ public class TransactionRolledbackExcept
*
* @return Throwable The receiver's cause.
*/
+ @Override
public Throwable getCause() {
if (cause == this) {
return null;
Modified: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/asynch/AsynchInRoleTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/asynch/AsynchInRoleTest.java?rev=1544234&r1=1544233&r2=1544234&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/asynch/AsynchInRoleTest.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/asynch/AsynchInRoleTest.java Thu Nov 21 16:06:44 2013
@@ -45,7 +45,7 @@ import java.util.Properties;
import java.util.concurrent.Future;
/**
- * Testing of the @Asynchronous annotation on beans.
+ * Testing of the @Asynchronous annotation on beans that are restricted by role.
*/
public class AsynchInRoleTest {
Modified: tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/security/SecurityTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/security/SecurityTest.java?rev=1544234&r1=1544233&r2=1544234&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/security/SecurityTest.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/test/java/org/apache/openejb/core/security/SecurityTest.java Thu Nov 21 16:06:44 2013
@@ -45,17 +45,16 @@ import java.util.Properties;
*/
public class SecurityTest extends TestCase {
- private Assembler configureAssembler(String defaultUser) throws Exception {
+ private Assembler configureAssembler(final String defaultUser) throws Exception {
System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, LocalInitialContextFactory.class.getName());
-
- ConfigurationFactory config = new ConfigurationFactory();
- Assembler assembler = new Assembler();
+ final ConfigurationFactory config = new ConfigurationFactory();
+ final Assembler assembler = new Assembler();
assembler.createProxyFactory(config.configureService(ProxyFactoryInfo.class));
assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
- SecurityServiceInfo serviceInfo = new SecurityServiceInfo();
+ final SecurityServiceInfo serviceInfo = new SecurityServiceInfo();
serviceInfo.service = "SecurityService";
serviceInfo.className = SecurityServiceImpl.class.getName();
serviceInfo.id = "New Security Service";
@@ -63,7 +62,7 @@ public class SecurityTest extends TestCa
if (defaultUser != null) {
// override the default user
serviceInfo.properties.setProperty("DefaultUser", defaultUser);
-
+
}
assembler.createSecurityService(serviceInfo);
@@ -71,12 +70,12 @@ public class SecurityTest extends TestCa
// containers
assembler.createContainer(config.configureService(StatelessSessionContainerInfo.class));
- EjbJar ejbJar = new EjbJar("SecurityTest");
+ final EjbJar ejbJar = new EjbJar("SecurityTest");
ejbJar.addEnterpriseBean(new StatelessBean(FooBean.class));
ejbJar.addEnterpriseBean(new StatelessBean(BarBean.class));
- EjbJarInfo ejbJarInfo = config.configureApplication(ejbJar);
+ final EjbJarInfo ejbJarInfo = config.configureApplication(ejbJar);
assembler.createApplication(ejbJarInfo);
@@ -84,15 +83,15 @@ public class SecurityTest extends TestCa
}
public void test() throws Exception {
- Assembler assembler = configureAssembler(null);
+ final Assembler assembler = configureAssembler(null);
- Properties props = new Properties();
+ final Properties props = new Properties();
props.setProperty(Context.SECURITY_PRINCIPAL, "jonathan");
props.setProperty(Context.SECURITY_CREDENTIALS, "secret");
- InitialContext ctx = new InitialContext(props);
+ final InitialContext ctx = new InitialContext(props);
- Project foo = (Project) ctx.lookup("FooBeanLocal");
+ final Project foo = (Project) ctx.lookup("FooBeanLocal");
foo.svnCheckout("");
foo.svnCommit("");
@@ -107,43 +106,43 @@ public class SecurityTest extends TestCa
assertTrue("not in role committer", foo.isCallerInRole("committer"));
assertTrue("not in role community", foo.isCallerInRole("community"));
assertFalse("in role contributor", foo.isCallerInRole("contributor"));
-
+
ctx.close();
assembler.destroy();
-
-// Project bar = (Project) ctx.lookup("BarBeanLocal");
-//
-// bar.svnCheckout("");
-//
-// try {
-// bar.svnCommit("");
-// fail("Should not be allowed");
-// } catch (Exception e) {
-// // good
-// }
-//
-// try {
-// bar.deleteProject("");
-// fail("Should not be allowed");
-// } catch (Exception e) {
-// // good.
-// }
-//
-// assertFalse("in role committer", bar.isCallerInRole("committer"));
-// assertFalse("in role community", bar.isCallerInRole("community"));
-// assertTrue("not in role contributor", bar.isCallerInRole("contributor"));
+
+ // Project bar = (Project) ctx.lookup("BarBeanLocal");
+ //
+ // bar.svnCheckout("");
+ //
+ // try {
+ // bar.svnCommit("");
+ // fail("Should not be allowed");
+ // } catch (Exception e) {
+ // // good
+ // }
+ //
+ // try {
+ // bar.deleteProject("");
+ // fail("Should not be allowed");
+ // } catch (Exception e) {
+ // // good.
+ // }
+ //
+ // assertFalse("in role committer", bar.isCallerInRole("committer"));
+ // assertFalse("in role community", bar.isCallerInRole("community"));
+ // assertTrue("not in role contributor", bar.isCallerInRole("contributor"));
}
-
+
// When no credentials are provided, the default user/role should be "guest"
public void testUnauthenticatedUser() throws Exception {
- Assembler assembler = configureAssembler(null);
+ final Assembler assembler = configureAssembler(null);
// no credentials provided, the default user should be "guest"
- Properties props = new Properties();
+ final Properties props = new Properties();
- InitialContext ctx = new InitialContext(props);
+ final InitialContext ctx = new InitialContext(props);
- Project foo = (Project) ctx.lookup("FooBeanLocal");
+ final Project foo = (Project) ctx.lookup("FooBeanLocal");
foo.svnCheckout("");
try {
@@ -157,21 +156,21 @@ public class SecurityTest extends TestCa
assertFalse("in role community", foo.isCallerInRole("community"));
assertFalse("in role contributor", foo.isCallerInRole("contributor"));
assertTrue("not in role guest", foo.isCallerInRole("guest"));
-
+
ctx.close();
assembler.destroy();
}
-
+
// Just to be sure we can override the default user (ie. guest)
public void testDefaultUser() throws Exception {
- Assembler assembler = configureAssembler("public");
+ final Assembler assembler = configureAssembler("public");
// no credentials provided, the default user should be "guest"
- Properties props = new Properties();
+ final Properties props = new Properties();
- InitialContext ctx = new InitialContext(props);
+ final InitialContext ctx = new InitialContext(props);
- Project foo = (Project) ctx.lookup("FooBeanLocal");
+ final Project foo = (Project) ctx.lookup("FooBeanLocal");
foo.svnCheckout("");
try {
@@ -186,73 +185,83 @@ public class SecurityTest extends TestCa
assertFalse("in role contributor", foo.isCallerInRole("contributor"));
assertFalse("in role guest", foo.isCallerInRole("guest"));
assertTrue("not in role public", foo.isCallerInRole("public"));
-
+
ctx.close();
assembler.destroy();
}
@Stateless
- @DeclareRoles({"committer", "contributor","community","guest","public"})
+ @DeclareRoles({"committer", "contributor", "community", "guest", "public"})
public static class FooBean implements Project {
@Resource
private SessionContext context;
+ @Override
@RolesAllowed({"committer"})
- public String svnCommit(String s) {
+ public String svnCommit(final String s) {
return s;
}
+ @Override
@RolesAllowed({"committer", "contributor"})
- public String submitPatch(String s) {
+ public String submitPatch(final String s) {
return s;
}
+ @Override
@PermitAll
- public String svnCheckout(String s) {
+ public String svnCheckout(final String s) {
return s;
}
+ @Override
@DenyAll
- public String deleteProject(String s) {
+ public String deleteProject(final String s) {
return s;
}
- public boolean isCallerInRole(String role){
+ @Override
+ public boolean isCallerInRole(final String role) {
return context.isCallerInRole(role);
}
}
@Stateless
@RunAs("contributor")
- @DeclareRoles({"committer", "contributor","community"})
+ @DeclareRoles({"committer", "contributor", "community"})
public static class BarBean implements Project {
@Resource
private SessionContext context;
+ @Override
@RolesAllowed({"committer"})
- public String svnCommit(String s) {
+ public String svnCommit(final String s) {
return s;
}
+ @Override
@RolesAllowed({"committer", "contributor"})
- public String submitPatch(String s) {
+ public String submitPatch(final String s) {
return s;
}
+ @Override
@PermitAll
- public String svnCheckout(String s) {
+ public String svnCheckout(final String s) {
return s;
}
+ @Override
@DenyAll
- public String deleteProject(String s) {
+ public String deleteProject(final String s) {
return s;
}
+ @Override
@PermitAll
- public boolean isCallerInRole(String role){
+ public boolean isCallerInRole(final String role) {
return context.isCallerInRole(role);
}
}