[jboss-svn-commits] JBL Code SVN: r18466 - in labs/jbosslabs/labs-3.0-build: core/core-model/src/main/java/org/jboss/labs/core/model/auth and 10 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Feb 12 14:20:27 EST 2008


Author: szimano
Date: 2008-02-12 14:20:27 -0500 (Tue, 12 Feb 2008)
New Revision: 18466

Added:
   labs/jbosslabs/labs-3.0-build/services/credential/src/test/java/org/jboss/labs/test/
   labs/jbosslabs/labs-3.0-build/services/credential/src/test/java/org/jboss/labs/test/auth/
   labs/jbosslabs/labs-3.0-build/services/credential/src/test/java/org/jboss/labs/test/auth/UserTest.java
   labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/
   labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/default.persistence.properties
   labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/ejb3-interceptors-aop.xml
   labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/ejb3unit.properties
   labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/embedded-jboss-beans.xml
   labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/jboss-jms-beans.xml
   labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/jndi.properties
   labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/log4j.xml
   labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/login-config.xml
   labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/security-beans.xml
Removed:
   labs/jbosslabs/labs-3.0-build/services/credential/src/test/java/org/jboss/labs/AppTest.java
Modified:
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/AuthID.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/Binding.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/CustomID.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/ProjectID.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/Service.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/ServiceRole.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/SuperUsers.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/User.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/UserRole.java
   labs/jbosslabs/labs-3.0-build/pom.xml
   labs/jbosslabs/labs-3.0-build/services/credential/pom.xml
   labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/AuthHelper.java
   labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/CustomIDService.java
   labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/AuthenticationServiceImpl.java
   labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/CustomIDServiceImpl.java
   labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/RoleBinderServiceImpl.java
   labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java
   labs/jbosslabs/labs-3.0-build/services/credential/src/main/resources/META-INF/persistence.xml
   labs/jbosslabs/labs-3.0-build/views/foo-view/src/main/java/org/jboss/labs/MyServlet.java
Log:
ejb tests

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/AuthID.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/AuthID.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/AuthID.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -22,18 +22,31 @@
  */
 package org.jboss.labs.core.model.auth;
 
+import javax.persistence.DiscriminatorColumn;
+import javax.persistence.DiscriminatorType;
 import javax.persistence.Entity;
 import javax.persistence.Id;
-/**
- * 
- * 
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+
+/**
+ * 
+ * 
  */
 @Entity
+ at Inheritance(strategy = InheritanceType.SINGLE_TABLE)
+ at DiscriminatorColumn(name = "AUTH_TYPE", discriminatorType = DiscriminatorType.STRING, length = 1)
 public abstract class AuthID {
 	@Id
-	protected String id;
+	protected String authId;
 	
-	public String getId() {
-		return id;
+	public AuthID() { }
+
+	public String getAuthId() {
+		return authId;
 	}
- }
+
+	public void setAuthId(String authId) {
+		this.authId = authId;
+	}
+}

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/Binding.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/Binding.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/Binding.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -49,6 +49,12 @@
 	@ManyToOne
 	public Service service;
 
+	public Binding() { }
+	
+	public void setBinderId(long binderId) {
+		this.binderId = binderId;
+	}
+
 	public AuthID getAuthId() {
 		return authId;
 	}

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/CustomID.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/CustomID.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/CustomID.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -22,6 +22,7 @@
  */
 package org.jboss.labs.core.model.auth;
 
+import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
 /**
@@ -33,14 +34,17 @@
  */
 
 @Entity
+ at DiscriminatorValue(value="C") 
 public class CustomID extends AuthID implements Comparable<CustomID> {
 
 	private String description;
 	
 	private Class<? extends Enum<?>> enumClass;
+	
+	public CustomID() { }
 
 	public <E extends Enum<E>> CustomID(String customID, String description, E serviceRole) {
-		this.id = customID;
+		this.authId = customID;
 		this.description = description;
 		enumClass = serviceRole.getDeclaringClass();
 	}
@@ -52,4 +56,16 @@
 	public int compareTo(CustomID o) {
 		return this.description.compareTo(o.getDescription());
 	}
+
+	public Class<? extends Enum<?>> getEnumClass() {
+		return enumClass;
+	}
+
+	public void setEnumClass(Class<? extends Enum<?>> enumClass) {
+		this.enumClass = enumClass;
+	}
+
+	public void setDescription(String description) {
+		this.description = description;
+	}
 }

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/ProjectID.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/ProjectID.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/ProjectID.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -22,6 +22,7 @@
  */
 package org.jboss.labs.core.model.auth;
 
+import javax.persistence.DiscriminatorValue;
 import javax.persistence.Entity;
 
 /**
@@ -29,9 +30,12 @@
  * 
  */
 @Entity
+ at DiscriminatorValue(value="P") 
 public class ProjectID extends AuthID {
 	
+	public ProjectID() { }
+	
 	public ProjectID(String projectID) {
-		this.id = projectID;
+		this.authId = projectID;
 	}
  }

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/Service.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/Service.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/Service.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -85,11 +85,17 @@
 			rolesMap = new HashMap<String, ServiceRole>();
 		}
 	}
+	
+	public Service() { }
 
 	public Service(String id) {
 		this.id = id;
 	}
 
+	public void setId(String id) {
+		this.id = id;
+	}
+
 	public Set<ServiceRole> getServiceRoles() {
 		return serviceRoles;
 	}
@@ -122,4 +128,8 @@
 	public void addServiceRole(ServiceRole sr) {
 		serviceRoles.add(sr);
 	}
+
+	public void setGlobalRoles(Set<UserRole> globalRoles) {
+		this.globalRoles = globalRoles;
+	}
 }

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/ServiceRole.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/ServiceRole.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/ServiceRole.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -44,7 +44,17 @@
 	public String getId() {
 		return id;
 	}
+	
+	public void setId(String id) {
+		this.id = id;
+	}
 
+	public void setService(Service service) {
+		this.service = service;
+	}
+
+	public ServiceRole() { }
+
 	public ServiceRole(String id, Service service) {
 		this.id = id;
 		available = true;

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/SuperUsers.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/SuperUsers.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/SuperUsers.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -31,6 +31,7 @@
 import javax.persistence.Entity;
 import javax.persistence.Id;
 import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
 
 /**
  * @author tomaszszymanski
@@ -41,13 +42,15 @@
 public class SuperUsers {
 	
 	@Id
-	private AuthID id;
+	private String id;
 
 	@OneToMany
 	private Set<User> superUsers;
 	
+	public SuperUsers() { }
+	
 	public SuperUsers(AuthID id) {
-		this.id = id;
+		this.id = id.getAuthId();
 	}
 	
 	public Set<User> getSuperUsers() {
@@ -61,4 +64,16 @@
 		
 		superUsers.add(user);
 	}
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	public void setSuperUsers(Set<User> superUsers) {
+		this.superUsers = superUsers;
+	}
 }

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/User.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/User.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/User.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -50,6 +50,8 @@
 	@OneToMany
 	private Set<UserRole> userRoles;
 
+	public User () { }
+	
 	public User(String username) {
 		this.name = username;
 	}

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/UserRole.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/UserRole.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/auth/UserRole.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -31,6 +31,8 @@
 	private String id;
 	
 	private String description;
+
+	public UserRole() { }
 	
 	public UserRole(String id, String description) {
 		this.id = id;
@@ -57,4 +59,8 @@
 		return id.equals(o.getId());
 	}
 
+	public void setId(String id) {
+		this.id = id;
+	}
+
 }

Modified: labs/jbosslabs/labs-3.0-build/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/pom.xml	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/pom.xml	2008-02-12 19:20:27 UTC (rev 18466)
@@ -76,6 +76,14 @@
         			<enabled>true</enabled>
       			</snapshots>
     		</repository>
+		<repository>
+                        <snapshots>
+                                <enabled>false</enabled>
+                        </snapshots>
+                        <id>ejb3unit</id>
+                        <name>ejb3unit repository</name>
+                        <url>http://ejb3unit.sourceforge.net/maven2</url>
+                </repository>
 	</repositories>
 	<dependencies>
 		<dependency>

Modified: labs/jbosslabs/labs-3.0-build/services/credential/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/pom.xml	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/services/credential/pom.xml	2008-02-12 19:20:27 UTC (rev 18466)
@@ -12,6 +12,12 @@
 	<version>1.0-SNAPSHOT</version>
 	<url>http://maven.apache.org</url>
 	<dependencies>
+		<!--<dependency>
+			<groupId>com.bm</groupId>
+			<artifactId>ejb3unit</artifactId>
+			<version>1.1.1</version>
+			<scope>test</scope>
+		</dependency>-->
 		<dependency>
 			<groupId>junit</groupId>
 			<artifactId>junit</artifactId>
@@ -60,6 +66,24 @@
 			<version>1.4</version>
 			<scope>provided</scope>
 		</dependency>
+		<dependency>
+			<groupId>jboss.jboss-embeddable-ejb3</groupId>
+			<artifactId>jboss-ejb3-all</artifactId>
+			<version>1.0.0.Alpha9</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>jboss.jboss-embeddable-ejb3</groupId>
+			<artifactId>hibernate-all</artifactId>
+			<version>1.0.0.Alpha9</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>jboss.jboss-embeddable-ejb3</groupId>
+			<artifactId>thirdparty-all</artifactId>
+			<version>1.0.0.Alpha9</version>
+			<scope>test</scope>
+		</dependency>
 	</dependencies>
 	<build>
 		<plugins>

Modified: labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/AuthHelper.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/AuthHelper.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/AuthHelper.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -25,7 +25,10 @@
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 
+import javax.persistence.EntityManager;
+
 import org.apache.log4j.Logger;
+import org.jboss.labs.core.model.auth.ProjectID;
 
 public class AuthHelper {
 	

Modified: labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/CustomIDService.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/CustomIDService.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/CustomIDService.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -2,9 +2,12 @@
 
 import java.util.Set;
 
+import javax.ejb.Local;
+
 import org.jboss.labs.auth.custom.CustomIDProvider;
 import org.jboss.labs.core.model.auth.CustomID;
 
+ at Local
 public interface CustomIDService{
 	public void registerCustomIDProvider(CustomIDProvider provider, String serviceID);
 	

Modified: labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/AuthenticationServiceImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/AuthenticationServiceImpl.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/AuthenticationServiceImpl.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -86,7 +86,7 @@
 		// check project superusers if this is a project
 
 		if (id instanceof ProjectID
-				&& userService.getSuperusersForProject(id.getId()).contains(
+				&& userService.getSuperusersForProject(id.getAuthId()).contains(
 						user)) {
 			return true;
 		}

Modified: labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/CustomIDServiceImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/CustomIDServiceImpl.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/CustomIDServiceImpl.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -5,7 +5,8 @@
 import java.util.Map;
 import java.util.Set;
 
-import javax.ejb.Local;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
 
 import org.apache.log4j.Logger;
 import org.jboss.annotation.ejb.Service;
@@ -15,9 +16,11 @@
 import org.jboss.labs.core.model.auth.CustomID;
 
 @Service
- at Local
 public class CustomIDServiceImpl implements CustomIDService, CustomIDHandler {
 
+	@PersistenceContext(name = "auth_model")
+	private EntityManager manager;
+	
 	private static final Logger log = Logger
 			.getLogger(CustomIDServiceImpl.class);
 
@@ -32,8 +35,18 @@
 		if (provider.isBuffered()) {
 			customIDs.put(provider, new HashSet<CustomID>(provider
 					.getCustomIDs()));
+			
+			for (CustomID id : customIDs.get(provider)) {
+				checkAndPersist(id);
+			}
 		}
 	}
+	
+	private void checkAndPersist(CustomID id) {
+		if (manager.find(CustomID.class, id.getAuthId()) == null) {
+			manager.persist(id);
+		}
+	}
 
 	/*
 	 * (non-Javadoc)
@@ -47,6 +60,10 @@
 							+ provider);
 		} else {
 			customIDs.get(provider).addAll(newIds);
+			
+			for (CustomID id : newIds) {
+				manager.persist(id);
+			}
 		}
 	}
 
@@ -62,6 +79,10 @@
 							+ provider);
 		} else {
 			customIDs.get(provider).removeAll(ids);
+			
+			for (CustomID id : ids) {
+				manager.remove(id);
+			}
 		}
 	}
 
@@ -76,7 +97,7 @@
 		if (provider.isBuffered()) {
 			return new HashSet<CustomID>(customIDs.get(provider));
 		} else {
-			return provider.getCustomIDs();
+			return new HashSet<CustomID>(provider.getCustomIDs());
 		}
 	}
 

Modified: labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/RoleBinderServiceImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/RoleBinderServiceImpl.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/RoleBinderServiceImpl.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -220,6 +220,5 @@
 	public ProjectID getGlobalProjectID() {
 		return getProjectID(AuthHelper.GLOBAL_PROJECT);
 	}
-	
 
 }

Modified: labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -24,13 +24,14 @@
 package org.jboss.labs.auth.impl;
 
 import java.security.Principal;
+import java.util.HashSet;
 import java.util.Set;
 import java.util.TreeSet;
 
 import javax.annotation.PostConstruct;
-import javax.ejb.EJB;
 import javax.ejb.Local;
 import javax.ejb.Stateless;
+import javax.interceptor.Interceptors;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
 
@@ -38,6 +39,7 @@
 import org.jboss.labs.auth.AuthHelper;
 import org.jboss.labs.auth.RoleBinderService;
 import org.jboss.labs.auth.UserService;
+import org.jboss.labs.core.model.auth.ProjectID;
 import org.jboss.labs.core.model.auth.User;
 import org.jboss.labs.core.model.auth.UserRole;
 import org.jboss.labs.exception.LabsException;
@@ -46,15 +48,19 @@
 import org.jboss.labs.exception.auth.NoSuchUserException;
 import org.jboss.labs.exception.auth.RoleExistsException;
 import org.jboss.labs.exception.auth.UserExistsException;
+import org.jboss.labs.injection.ejb3.LabsInjectionInterceptor;
 
+import com.google.inject.Inject;
+
 @Stateless
 @Local
+ at Interceptors({LabsInjectionInterceptor.class})
 public class UserServiceImpl implements UserService {
 
 	@PersistenceContext(name = "auth_model")
 	private EntityManager manager;
 
-	@EJB
+	@Inject
 	private RoleBinderService binderService;
 
 	private final static Logger log = Logger.getLogger(UserServiceImpl.class);
@@ -124,7 +130,7 @@
 
 	public void bindRoleToUser(Principal user, UserRole role)
 			throws NoSuchUserException {
-		User userEn = manager.find(User.class, user.getName());
+		User userEn = getUser(user);
 
 		if (userEn == null) {
 			throw new NoSuchUserException("User " + user.getName()
@@ -152,7 +158,7 @@
 			throws NoSuchUserException {
 		User u = getUser(login);
 
-		return u.getUserRoles();
+		return new HashSet<UserRole>(u.getUserRoles());
 	}
 
 	public User getUserByLogin(String login) throws NoSuchUserException {
@@ -187,10 +193,18 @@
 	}
 
 	private User getUser(Principal user) throws NoSuchUserException {
+		if (user == null) {
+			throw new NoSuchUserException("User cannot be null");
+		}
+		
 		return getUser(user.getName());
 	}
 
 	private User getUser(String login) throws NoSuchUserException {
+		if (login == null) {
+			throw new NoSuchUserException("User login cannot be null");
+		}
+		
 		User userEn = manager.find(User.class, login);
 
 		if (userEn == null) {
@@ -315,4 +329,5 @@
 
 		manager.persist(userEn);
 	}
+	
 }

Modified: labs/jbosslabs/labs-3.0-build/services/credential/src/main/resources/META-INF/persistence.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/main/resources/META-INF/persistence.xml	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/main/resources/META-INF/persistence.xml	2008-02-12 19:20:27 UTC (rev 18466)
@@ -4,6 +4,7 @@
                 <jta-data-source>java:/LabsDS</jta-data-source>
                 <properties>
                         <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
+                        <!-- property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" /-->
                         <property name="hibernate.hbm2ddl.auto" value="create-drop" />
                 </properties>
                 <class>org.jboss.labs.core.model.auth.AuthID</class>

Deleted: labs/jbosslabs/labs-3.0-build/services/credential/src/test/java/org/jboss/labs/AppTest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/test/java/org/jboss/labs/AppTest.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/test/java/org/jboss/labs/AppTest.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -1,38 +0,0 @@
-package org.jboss.labs;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest 
-    extends TestCase
-{
-    /**
-     * Create the test case
-     *
-     * @param testName name of the test case
-     */
-    public AppTest( String testName )
-    {
-        super( testName );
-    }
-
-    /**
-     * @return the suite of tests being tested
-     */
-    public static Test suite()
-    {
-        return new TestSuite( AppTest.class );
-    }
-
-    /**
-     * Rigourous Test :-)
-     */
-    public void testApp()
-    {
-        assertTrue( true );
-    }
-}

Added: labs/jbosslabs/labs-3.0-build/services/credential/src/test/java/org/jboss/labs/test/auth/UserTest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/test/java/org/jboss/labs/test/auth/UserTest.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/test/java/org/jboss/labs/test/auth/UserTest.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -0,0 +1,130 @@
+/**
+ * 
+ */
+package org.jboss.labs.test.auth;
+
+import java.util.Hashtable;
+
+import javax.naming.InitialContext;
+import javax.persistence.EntityManager;
+import javax.transaction.TransactionManager;
+
+import junit.extensions.TestSetup;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.jboss.ejb3.embedded.EJB3StandaloneBootstrap;
+import org.jboss.labs.auth.UserService;
+import org.jboss.labs.core.model.auth.User;
+import org.jboss.labs.exception.auth.NoSuchUserException;
+import org.jboss.labs.exception.auth.UserExistsException;
+
+import com.google.inject.Inject;
+
+/*
+ * JBoss Labs. http://labs.jboss.com/jbosslabs
+ * 
+ * Copyright © 2008  Red Hat Middleware, LLC. All rights reserved.
+ * 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ * 
+ * Red Hat Author(s): Bob McWhirter, Przemyslaw Dej, Ryszard Kozmik, 
+ * 	Tomasz Szymanski, Adam Warski, Pawel Wrzeszcz
+ */
+
+/**
+ * @author tomaszszymanski
+ *
+ */
+public class UserTest extends TestCase {
+	public UserTest()
+	   {
+	      super("UserTest");
+	   }
+	
+		
+
+
+	   public static Test suite() throws Exception
+	   {
+	      TestSuite suite = new TestSuite();
+	      suite.addTestSuite(UserTest.class);
+
+
+	      // setup test so that embedded JBoss is started/stopped once for all tests here.
+	      TestSetup wrapper = new TestSetup(suite)
+	      {
+	         protected void setUp()
+	         {
+	            startupEmbeddedJboss();
+	         }
+
+	         protected void tearDown()
+	         {
+	            shutdownEmbeddedJboss();
+	         }
+	      };
+
+	      return wrapper;
+	   }
+
+	   public static void startupEmbeddedJboss()
+	   {
+	         EJB3StandaloneBootstrap.boot(null);
+	         EJB3StandaloneBootstrap.scanClasspath("target/classes");
+	   }
+
+	   public static void shutdownEmbeddedJboss()
+	   {
+	      EJB3StandaloneBootstrap.shutdown();
+	   }
+
+	   public void testEJBs() throws Exception
+	   {
+
+	      InitialContext ctx = getInitialContext();
+
+	   }
+
+	   public void testEntityManager() throws Exception
+	   {
+	      // This is a transactionally aware EntityManager and must be accessed within a JTA transaction
+	      // Why aren't we using javax.persistence.Persistence?  Well, our persistence.xml file uses
+	      // jta-datasource which means that it is created by the EJB container/embedded JBoss.
+	      // using javax.persistence.Persistence will just cause us an error
+	      //EntityManager em = (EntityManager) getInitialContext().lookup("java:/EntityManagers/auth_model");
+
+		  //UserService us = (UserService)getInitialContext().lookup("UserServiceImpl/local");
+		  
+	      // Obtain JBoss transaction
+	      TransactionManager tm = (TransactionManager) getInitialContext().lookup("java:/TransactionManager");
+
+	   }
+
+	   public static InitialContext getInitialContext() throws Exception
+	   {
+	      Hashtable props = getInitialContextProperties();
+	      return new InitialContext(props);
+	   }
+
+	   private static Hashtable getInitialContextProperties()
+	   {
+	      Hashtable props = new Hashtable();
+	      props.put("java.naming.factory.initial", "org.jnp.interfaces.LocalOnlyContextFactory");
+	      props.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
+	      return props;
+	   }
+}

Added: labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/default.persistence.properties
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/default.persistence.properties	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/default.persistence.properties	2008-02-12 19:20:27 UTC (rev 18466)
@@ -0,0 +1,17 @@
+hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup
+#hibernate.connection.release_mode=after_statement
+#hibernate.transaction.flush_before_completion=false
+#hibernate.transaction.auto_close_session=false
+#hibernate.query.factory_class=org.hibernate.hql.ast.ASTQueryTranslatorFactory
+#hibernate.hbm2ddl.auto=create-drop
+#hibernate.hbm2ddl.auto=create
+hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
+# Clustered cache with TreeCache
+#hibernate.cache.provider_class=org.jboss.ejb3.entity.TreeCacheProviderHook
+#hibernate.treecache.mbean.object_name=jboss.cache:service=EJB3EntityTreeCache
+hibernate.dialect=org.hibernate.dialect.HSQLDialect
+hibernate.jndi.java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+hibernate.jndi.java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
+hibernate.bytecode.use_reflection_optimizer=false
+# I don't think this is honored, but EJB3Deployer uses it
+hibernate.bytecode.provider=javassist

Added: labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/ejb3-interceptors-aop.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/ejb3-interceptors-aop.xml	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/ejb3-interceptors-aop.xml	2008-02-12 19:20:27 UTC (rev 18466)
@@ -0,0 +1,360 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE aop PUBLIC
+   "-//JBoss//DTD JBOSS AOP 1.0//EN"
+   "http://www.jboss.org/aop/dtd/jboss-aop_1_0.dtd">
+
+<aop>
+   <interceptor class="org.jboss.aspects.remoting.InvokeRemoteInterceptor" scope="PER_VM"/>
+   <interceptor class="org.jboss.aspects.security.SecurityClientInterceptor" scope="PER_VM"/>
+   <interceptor class="org.jboss.aspects.tx.ClientTxPropagationInterceptor" scope="PER_VM"/>
+   <interceptor class="org.jboss.ejb3.remoting.IsLocalInterceptor" scope="PER_VM"/>
+   <interceptor class="org.jboss.aspects.remoting.ClusterChooserInterceptor" scope="PER_VM"/>
+
+   <interceptor class="org.jboss.aspects.tx.TxPropagationInterceptor" scope="PER_VM"/>
+
+   <stack name="ServiceClientInterceptors">
+      <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
+   </stack>
+
+   <stack name="AsynchronousStatelessSessionClientInterceptors">
+      <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
+   </stack>
+
+   <stack name="AsynchronousStatefulSessionClientInterceptors">
+      <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
+   </stack>
+
+   <stack name="StatelessSessionClientInterceptors">
+      <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
+   </stack>
+
+   <stack name="StatefulSessionClientInterceptors">
+      <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
+   </stack>
+
+   <stack name="ClusteredStatelessSessionClientInterceptors">
+      <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.remoting.ClusterChooserInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
+   </stack>
+
+   <stack name="ClusteredStatefulSessionClientInterceptors">
+      <interceptor-ref name="org.jboss.ejb3.remoting.IsLocalInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.security.SecurityClientInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.tx.ClientTxPropagationInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.remoting.ClusterChooserInterceptor"/>
+      <interceptor-ref name="org.jboss.aspects.remoting.InvokeRemoteInterceptor"/>
+   </stack>
+
+   <interceptor class="org.jboss.ejb3.asynchronous.AsynchronousInterceptor" scope="PER_CLASS"/>
+   <interceptor class="org.jboss.ejb3.ENCPropagationInterceptor" scope="PER_VM"/>
+   <interceptor name="Basic Authorization" factory="org.jboss.ejb3.security.RoleBasedAuthorizationInterceptorFactory" scope="PER_CLASS"/>
+   <interceptor name="JACC Authorization" factory="org.jboss.ejb3.security.JaccAuthorizationInterceptorFactory" scope="PER_CLASS"/>
+   <interceptor factory="org.jboss.ejb3.security.AuthenticationInterceptorFactory" scope="PER_CLASS"/>
+   <interceptor factory="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory" scope="PER_CLASS"/>
+   <interceptor class="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor" scope="PER_VM"/>
+   <interceptor class="org.jboss.ejb3.stateless.StatelessInstanceInterceptor" scope="PER_VM"/>
+   <interceptor class="org.jboss.ejb3.stateful.StatefulInstanceInterceptor" scope="PER_VM"/>
+   <interceptor class="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor" scope="PER_VM"/>
+   <interceptor class="org.jboss.ejb3.service.ServiceSingletonInterceptor" scope="PER_VM"/>
+   <interceptor class="org.jboss.ejb3.cache.StatefulReplicationInterceptor" scope="PER_VM"/>
+   <interceptor factory="org.jboss.ejb3.stateful.StatefulRemoveFactory" scope="PER_CLASS_JOINPOINT"/>
+   <interceptor factory="org.jboss.ejb3.tx.TxInterceptorFactory" scope="PER_CLASS_JOINPOINT"/>
+   <interceptor factory="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory" scope="PER_CLASS_JOINPOINT"/>
+   <interceptor factory="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory" scope="PER_CLASS"/>
+   <interceptor class="org.jboss.ejb3.AllowedOperationsInterceptor" scope="PER_VM"/>
+   <interceptor factory="org.jboss.ejb3.mdb.CurrentMessageInjectorInterceptorFactory" scope="PER_CLASS"/>
+   <interceptor class="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor" scope="PER_VM"/>
+
+   <domain name="Stateless Bean">
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
+         <interceptor-ref name="Basic Authorization"/>
+      </bind>
+      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
+         <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+      </bind>
+      <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
+         @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
+      </annotation>
+   </domain>
+
+   <domain name="JACC Stateless Bean">
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
+         <interceptor-ref name="JACC Authorization"/>
+      </bind>
+      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
+         <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+      </bind>
+      <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
+         @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
+      </annotation>
+   </domain>
+
+   <domain name="Base Stateful Bean">
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
+         <interceptor-ref name="Basic Authorization"/>
+      </bind>
+      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * *->@javax.ejb.Remove(..))">
+         <interceptor-ref name="org.jboss.ejb3.stateful.StatefulRemoveFactory"/>
+      </bind>
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.stateful.StatefulInstanceInterceptor"/>
+         <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+      </bind>
+      <bind pointcut="execution(public * $instanceof{javax.ejb.SessionSynchronization}->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor"/>
+      </bind>
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+      </bind>
+
+      <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..)) AND !execution(public * *->@javax.ejb.Remove(..))">
+         <interceptor-ref name="org.jboss.ejb3.cache.StatefulReplicationInterceptor"/>
+      </bind>
+      <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
+         @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
+      </annotation>
+   </domain>
+
+   <domain name="Stateful Bean" extends="Base Stateful Bean" inheritBindings="true">
+      <!-- NON Clustered cache configuration -->
+      <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND !class(@org.jboss.annotation.ejb.Clustered)">
+         @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.simple.SimpleStatefulCache.class)
+      </annotation>
+      <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.PersistenceManager) AND !class(@org.jboss.annotation.ejb.Clustered)">
+         @org.jboss.annotation.ejb.cache.simple.PersistenceManager (org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.class)
+      </annotation>
+      <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.CacheConfig) AND !class(@org.jboss.annotation.ejb.Clustered)">
+         @org.jboss.annotation.ejb.cache.simple.CacheConfig (maxSize=100000, idleTimeoutSeconds=300)
+      </annotation>
+
+      <!-- Clustered cache configuration -->
+      <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND class(@org.jboss.annotation.ejb.Clustered)">
+         @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.tree.StatefulTreeCache.class)
+      </annotation>
+      <annotation expr="!class(@org.jboss.annotation.ejb.cache.tree.CacheConfig) AND class(@org.jboss.annotation.ejb.Clustered)">
+         @org.jboss.annotation.ejb.cache.tree.CacheConfig (name="jboss.cache:service=EJB3SFSBClusteredCache", maxSize=100000, idleTimeoutSeconds=300)
+      </annotation>
+   </domain>
+
+   <domain name="JACC Stateful Bean">
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
+         <interceptor-ref name="JACC Authorization"/>
+      </bind>
+      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.remoting.ReplicantsManagerInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * *->@javax.ejb.Remove(..))">
+         <interceptor-ref name="org.jboss.ejb3.stateful.StatefulRemoveFactory"/>
+      </bind>
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.stateful.StatefulInstanceInterceptor"/>
+         <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+      </bind>
+      <bind pointcut="execution(public * $instanceof{javax.ejb.SessionSynchronization}->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.stateful.SessionSynchronizationInterceptor"/>
+      </bind>
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+      </bind>
+
+      <bind pointcut="execution(public * @org.jboss.annotation.ejb.Clustered->*(..)) AND !execution(public * *->@javax.ejb.Remove(..))">
+         <interceptor-ref name="org.jboss.ejb3.cache.StatefulReplicationInterceptor"/>
+      </bind>
+      <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
+         @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.ThreadlocalPool.class, maxSize=30, timeout=10000)
+      </annotation>
+
+      <!-- NON Clustered cache configuration -->
+      <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND !class(@org.jboss.annotation.ejb.Clustered)">
+         @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.simple.SimpleStatefulCache.class)
+      </annotation>
+      <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.PersistenceManager) AND !class(@org.jboss.annotation.ejb.Clustered)">
+         @org.jboss.annotation.ejb.cache.simple.PersistenceManager (org.jboss.ejb3.cache.simple.StatefulSessionFilePersistenceManager.class)
+      </annotation>
+      <annotation expr="!class(@org.jboss.annotation.ejb.cache.simple.CacheConfig) AND !class(@org.jboss.annotation.ejb.Clustered)">
+         @org.jboss.annotation.ejb.cache.simple.CacheConfig (maxSize=100000, idleTimeoutSeconds=300)
+      </annotation>
+
+      <!-- Clustered cache configuration -->
+      <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache) AND class(@org.jboss.annotation.ejb.Clustered)">
+         @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.tree.StatefulTreeCache.class)
+      </annotation>
+      <annotation expr="!class(@org.jboss.annotation.ejb.cache.tree.CacheConfig) AND class(@org.jboss.annotation.ejb.Clustered)">
+         @org.jboss.annotation.ejb.cache.tree.CacheConfig (name="jboss.cache:service=EJB3SFSBClusteredCache", maxSize=100000, idleTimeoutSeconds=300)
+      </annotation>
+   </domain>
+
+   <domain name="Embedded Stateful Bean" extends="Base Stateful Bean" inheritBindings="true">
+      <!-- NON Clustered cache configuration -->
+      <annotation expr="!class(@org.jboss.annotation.ejb.cache.Cache)">
+         @org.jboss.annotation.ejb.cache.Cache (org.jboss.ejb3.cache.NoPassivationCache.class)
+      </annotation>
+
+   </domain>
+
+   <domain name="Message Driven Bean">
+      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+      </bind>
+      <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
+         @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=30, timeout=10000)
+      </annotation>
+   </domain>
+   
+   <domain name="Consumer Bean">
+      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.stateless.StatelessInstanceInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+      </bind>
+      <bind pointcut="execution(public * *->*(..)) AND (has(* *->@org.jboss.annotation.ejb.CurrentMessage(..)) OR hasfield(* *->@org.jboss.annotation.ejb.CurrentMessage))">
+         <interceptor-ref name="org.jboss.ejb3.mdb.CurrentMessageInjectorInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+      </bind>
+      <annotation expr="!class(@org.jboss.annotation.ejb.PoolClass)">
+         @org.jboss.annotation.ejb.PoolClass (value=org.jboss.ejb3.StrictMaxPool.class, maxSize=30, timeout=10000)
+      </annotation>
+   </domain>
+
+   <domain name="Service Bean">
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
+      </bind>
+      <bind pointcut="!execution(* *->create()) AND !execution(* *->start()) AND !execution(*->new(..))">
+         <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
+      </bind>      
+      <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
+         <interceptor-ref name="Basic Authorization"/>
+      </bind>
+      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+      </bind>
+      <bind pointcut="execution(public * *->*(..)) AND !execution(* *->create()) AND !execution(* *->start())">
+         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+      </bind>
+   </domain>
+
+   <domain name="JACC Service Bean">
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.asynchronous.AsynchronousInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.ENCPropagationInterceptor"/>
+      </bind>
+      <bind pointcut="!execution(* *->create()) AND !execution(* *->start()) AND !execution(*->new(..))">
+         <interceptor-ref name="org.jboss.ejb3.security.AuthenticationInterceptorFactory"/>
+      </bind>      
+      <bind pointcut="execution(public * @org.jboss.annotation.security.SecurityDomain->*(..))">
+         <interceptor-ref name="Basic Authorization"/>
+      </bind>
+      <bind pointcut="execution(public * @javax.annotation.security.RunAs->*(..))">
+         <interceptor-ref name="org.jboss.ejb3.security.RunAsSecurityInterceptorFactory"/>
+      </bind>
+      <bind pointcut="execution(public * *->*(..))">
+         <interceptor-ref name="org.jboss.aspects.tx.TxPropagationInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.tx.TxInterceptorFactory"/>
+         <interceptor-ref name="org.jboss.ejb3.AllowedOperationsInterceptor"/>
+         <interceptor-ref name="org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor"/>
+      </bind>
+      <bind pointcut="execution(public * *->*(..)) AND !execution(* *->create()) AND !execution(* *->start())">
+         <interceptor-ref name="org.jboss.ejb3.interceptor.EJB3InterceptorsFactory"/>
+      </bind>
+   </domain>
+
+
+</aop>
\ No newline at end of file

Added: labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/ejb3unit.properties
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/ejb3unit.properties	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/ejb3unit.properties	2008-02-12 19:20:27 UTC (rev 18466)
@@ -0,0 +1,3 @@
+### The ejb3unit configuration file ###
+ejb3unit.inMemoryTest=true
+ejb3unit.show_sql=false

Added: labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/embedded-jboss-beans.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/embedded-jboss-beans.xml	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/embedded-jboss-beans.xml	2008-02-12 19:20:27 UTC (rev 18466)
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+            xmlns="urn:jboss:bean-deployer">
+   <bean name="Naming" class="org.jnp.server.SingletonNamingServer"/>
+
+   <bean name="InitialContextProperties" class="java.util.Hashtable">
+      <constructor>
+      <parameter class="java.util.Map">
+            <map keyClass="java.lang.String" valueClass="java.lang.String">
+               <entry>
+                  <key>java.naming.factory.initial</key>
+                  <value>org.jnp.interfaces.LocalOnlyContextFactory</value>
+               </entry>
+               <entry>
+                   <key>java.naming.factory.url.pkgs</key>
+                   <value>org.jboss.naming:org.jnp.interfaces</value>
+               </entry>
+            </map>
+      </parameter>
+      </constructor>
+   </bean>
+
+   <bean name="java:comp/Initializer" class="org.jboss.ejb3.embedded.JavaCompInitializer">
+      <property name="jndiProperties"><inject bean="InitialContextProperties"/></property>
+   </bean>
+
+   <bean name="XidFactory" class="org.jboss.tm.XidFactoryImpl"/>
+
+   <bean name="XidFactoryMBean" class="org.jboss.ejb3.embedded.XidFactoryMBean">
+      <constructor>
+         <parameter class="org.jboss.tm.XidFactoryBase">
+            <inject bean="XidFactory"/>
+         </parameter>
+      </constructor>
+   </bean>
+
+   <bean name="TransactionManagerInitializer" class="org.jboss.tm.TransactionManagerInitializer">
+      <property name="xidFactory"><inject bean="XidFactory"/></property>
+      <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
+   </bean>
+
+   <bean name="UserTransaction" class="org.jboss.ejb3.embedded.UserTransactionImpl">
+      <demand>TransactionManagerInitializer</demand>
+   </bean>
+
+   <bean name="UserTransactionBinding" class="org.jboss.ejb3.embedded.JndiBinder">
+      <property name="jndiProperties"><inject bean="InitialContextProperties"/></property>
+      <property name="target"><inject bean="UserTransaction"/></property>
+      <property name="bindTo">UserTransaction</property>
+      <property name="serializable">false</property>
+   </bean>
+
+
+   <bean name="TransactionManager" class="java.lang.Object">
+      <constructor factoryMethod="getTransactionManager">
+         <factory bean="TransactionManagerInitializer"/>
+      </constructor>
+   </bean>
+   <bean name="CachedConnectionManager" class="org.jboss.resource.connectionmanager.CachedConnectionManagerReference">
+      <property name="transactionManager"><inject bean="TransactionManager"/></property>
+   </bean>
+
+   <!--
+      <bean class="org.jboss.jdbc.HypersonicDatabase"
+        name="jboss:service=Hypersonic,database=localDB">
+        <property name="database">localDB</property>
+        <property name="inProcessMode">true</property>
+        <property name="dbDataDir">.</property>
+      </bean>
+   -->
+
+   <bean name="DefaultDSBootstrap" class="org.jboss.resource.adapter.jdbc.local.LocalTxDataSource">
+      <property name="driverClass">org.hsqldb.jdbcDriver</property>
+      <property name="connectionURL">jdbc:hsqldb:.</property>
+      <!--      <property name="connectionURL">jdbc:hsqldb:./hypersonic/localDB</property> -->
+      <property name="userName">sa</property>
+      <property name="jndiName">java:/DefaultDS</property>
+      <property name="minSize">0</property>
+      <property name="maxSize">10</property>
+      <property name="blockingTimeout">1000</property>
+      <property name="idleTimeout">100000</property>
+      <property name="transactionManager"><inject bean="TransactionManager"/></property>
+      <property name="cachedConnectionManager"><inject bean="CachedConnectionManager"/></property>
+      <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
+   </bean>
+
+   <bean name="DefaultDS" class="java.lang.Object">
+      <constructor factoryMethod="getDatasource">
+         <factory bean="DefaultDSBootstrap"/>
+      </constructor>
+   </bean>
+
+   <!--
+   <bean name="TimerServiceFactory" class="org.jboss.ejb3.timerservice.quartz.QuartzTimerServiceFactory">
+      <property name="properties">
+        	org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreCMT
+            org.quartz.jobStore.nonManagedTXDataSource=myDS
+            org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.HSQLDBDelegate
+            org.quartz.jobStore.tablePrefix=QRTZ_
+            org.quartz.jobStore.dataSource=myDS
+         
+	        # To get it to work with hypersonic
+	        # FIXME: this doesn't lock the row
+            org.quartz.jobStore.selectWithLockSQL=SELECT * FROM qrtz_locks WHERE lock_name = ?
+         
+        	# from quartz.properties
+            org.quartz.scheduler.instanceName=JBossEJB3QuartzScheduler
+            org.quartz.scheduler.rmi.export=false
+            org.quartz.scheduler.rmi.proxy=false
+            org.quartz.scheduler.wrapJobExecutionInUserTransaction=false
+   
+            org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
+            org.quartz.threadPool.threadCount=10
+            org.quartz.threadPool.threadPriority=5
+            org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true
+   
+        	org.quartz.jobStore.misfireThreshold=60000
+      </property>
+      <property name="dataSource">java:/DefaultDS</property>
+      <property name="sqlProperties">
+         CREATE_DB_ON_STARTUP = TRUE
+         
+         CREATE_TABLE_JOB_DETAILS = CREATE TABLE qrtz_job_details(JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, \
+            DESCRIPTION VARCHAR(120) NULL, JOB_CLASS_NAME VARCHAR(128) NOT NULL, IS_DURABLE VARCHAR(1) NOT NULL, \
+            IS_VOLATILE VARCHAR(1) NOT NULL, IS_STATEFUL VARCHAR(1) NOT NULL, REQUESTS_RECOVERY VARCHAR(1) NOT NULL, \
+            JOB_DATA BINARY NULL, PRIMARY KEY (JOB_NAME,JOB_GROUP))
+         CREATE_TABLE_JOB_LISTENERS = CREATE TABLE qrtz_job_listeners(JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, \
+            JOB_LISTENER VARCHAR(80) NOT NULL, PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER), FOREIGN KEY (JOB_NAME,JOB_GROUP) \
+            REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP))
+         CREATE_TABLE_TRIGGERS = CREATE TABLE qrtz_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, TRIGGER_GROUP VARCHAR(80) NOT NULL, \
+            JOB_NAME VARCHAR(80) NOT NULL, JOB_GROUP VARCHAR(80) NOT NULL, IS_VOLATILE VARCHAR(1) NOT NULL, DESCRIPTION VARCHAR(120) NULL, \
+            NEXT_FIRE_TIME NUMERIC(13) NULL, PREV_FIRE_TIME NUMERIC(13) NULL, TRIGGER_STATE VARCHAR(16) NOT NULL, \
+            TRIGGER_TYPE VARCHAR(8) NOT NULL, START_TIME NUMERIC(13) NOT NULL, END_TIME NUMERIC(13) NULL, CALENDAR_NAME VARCHAR(80) NULL, \
+            MISFIRE_INSTR NUMERIC(2) NULL, JOB_DATA BINARY NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (JOB_NAME,JOB_GROUP) \
+            REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP))
+         CREATE_TABLE_SIMPLE_TRIGGERS = CREATE TABLE qrtz_simple_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \
+            TRIGGER_GROUP VARCHAR(80) NOT NULL, REPEAT_COUNT NUMERIC(7) NOT NULL, REPEAT_INTERVAL NUMERIC(12) NOT NULL, \
+            TIMES_TRIGGERED NUMERIC(7) NOT NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
+            REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
+         CREATE_TABLE_CRON_TRIGGERS = CREATE TABLE qrtz_cron_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \
+            TRIGGER_GROUP VARCHAR(80) NOT NULL, CRON_EXPRESSION VARCHAR(80) NOT NULL, TIME_ZONE_ID VARCHAR(80), \
+            PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
+            REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
+         CREATE_TABLE_BLOB_TRIGGERS = CREATE TABLE qrtz_blob_triggers(TRIGGER_NAME VARCHAR(80) NOT NULL, \
+            TRIGGER_GROUP VARCHAR(80) NOT NULL, BLOB_DATA BINARY NULL, PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP), \
+            FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
+         CREATE_TABLE_TRIGGER_LISTENERS = CREATE TABLE qrtz_trigger_listeners(TRIGGER_NAME VARCHAR(80) NOT NULL, \
+            TRIGGER_GROUP VARCHAR(80) NOT NULL, TRIGGER_LISTENER VARCHAR(80) NOT NULL, \
+            PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER), FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP) \
+            REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP))
+         CREATE_TABLE_CALENDARS = CREATE TABLE qrtz_calendars(CALENDAR_NAME VARCHAR(80) NOT NULL, CALENDAR BINARY NOT NULL, \
+            PRIMARY KEY (CALENDAR_NAME))
+         CREATE_TABLE_PAUSED_TRIGGER_GRPS = CREATE TABLE qrtz_paused_trigger_grps(TRIGGER_GROUP VARCHAR(80) NOT NULL, \
+            PRIMARY KEY (TRIGGER_GROUP))
+         CREATE_TABLE_FIRED_TRIGGERS = CREATE TABLE qrtz_fired_triggers(ENTRY_ID VARCHAR(95) NOT NULL, TRIGGER_NAME VARCHAR(80) NOT NULL, \
+            TRIGGER_GROUP VARCHAR(80) NOT NULL, IS_VOLATILE VARCHAR(1) NOT NULL, INSTANCE_NAME VARCHAR(80) NOT NULL, \
+            FIRED_TIME NUMERIC(13) NOT NULL, STATE VARCHAR(16) NOT NULL, JOB_NAME VARCHAR(80) NULL, JOB_GROUP VARCHAR(80) NULL, \
+            IS_STATEFUL VARCHAR(1) NULL, REQUESTS_RECOVERY VARCHAR(1) NULL, PRIMARY KEY (ENTRY_ID))
+         CREATE_TABLE_SCHEDULER_STATE = CREATE TABLE qrtz_scheduler_state(INSTANCE_NAME VARCHAR(80) NOT NULL, \
+            LAST_CHECKIN_TIME NUMERIC(13) NOT NULL, CHECKIN_INTERVAL NUMERIC(13) NOT NULL, RECOVERER VARCHAR(80) NULL, \
+            PRIMARY KEY (INSTANCE_NAME))
+         CREATE_TABLE_LOCKS = CREATE TABLE qrtz_locks(LOCK_NAME VARCHAR(40) NOT NULL, PRIMARY KEY (LOCK_NAME))
+         INSERT_TRIGGER_ACCESS = INSERT INTO qrtz_locks values('TRIGGER_ACCESS')
+         INSERT_JOB_ACCESS = INSERT INTO qrtz_locks values('JOB_ACCESS')
+         INSERT_CALENDAR_ACCESS = INSERT INTO qrtz_locks values('CALENDAR_ACCESS')
+         INSERT_STATE_ACCESS = INSERT INTO qrtz_locks values('STATE_ACCESS')
+         INSERT_MISFIRE_ACCESS = INSERT INTO qrtz_locks values('MISFIRE_ACCESS')
+      </property>
+   </bean>
+
+   -->
+   
+</deployment>
\ No newline at end of file

Added: labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/jboss-jms-beans.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/jboss-jms-beans.xml	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/jboss-jms-beans.xml	2008-02-12 19:20:27 UTC (rev 18466)
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+            xmlns="urn:jboss:bean-deployer">
+   <bean name="jboss.mq:service=JMSProviderLoader,name=JMSProvider" class="org.jboss.jms.jndi.JNDIProviderAdapter">
+      <property name="factoryRef">java:/XAConnectionFactory</property>
+      <property name="queueFactoryRef">java:/XAConnectionFactory</property>
+      <property name="topicFactoryRef">java:/XAConnectionFactory</property>
+      <property name="properties" class="java.util.Properties">
+               <map keyClass="java.lang.String" valueClass="java.lang.String">
+                  <entry>
+                     <key>java.naming.factory.initial</key>
+                     <value>org.jnp.interfaces.LocalOnlyContextFactory</value>
+                  </entry>
+                  <entry>
+                      <key>java.naming.factory.url.pkgs</key>
+                      <value>org.jboss.naming:org.jnp.interfaces</value>
+                  </entry>
+               </map>
+      </property>
+   </bean>
+
+   <bean name="b1" class="org.jboss.ejb3.embedded.JndiBinder">
+      <property name="jndiProperties"><inject bean="InitialContextProperties"/></property>
+      <property name="target"><inject bean="jboss.mq:service=JMSProviderLoader,name=JMSProvider"/></property>
+      <property name="bindTo">java:/DefaultJMSProvider</property>
+      <property name="serializable">true</property>
+   </bean>
+
+   <bean name="jboss.mq:service=ServerSessionPoolMBean,name=StdJMSPool" class="org.jboss.jms.asf.StdServerSessionPoolFactory">
+      <property name="name">StdJMSPool</property>
+      <property name="xidFactory"><inject bean="XidFactoryMBean"/></property>
+      <property name="transactionManager"><inject bean="TransactionManager"/></property>
+   </bean>
+
+   <bean name="b2" class="org.jboss.ejb3.embedded.JndiBinder">
+      <property name="jndiProperties"><inject bean="InitialContextProperties"/></property>
+      <property name="target"><inject bean="jboss.mq:service=ServerSessionPoolMBean,name=StdJMSPool"/></property>
+      <property name="bindTo">java:/StdJMSPool</property>
+      <property name="serializable">false</property>
+   </bean>
+
+
+   <bean name="jboss.mq:service=PersistenceManager" class="org.jboss.mq.kernel.JDBC2PersistenceManager">
+      <property name="transactionManager">
+         <inject bean="TransactionManager"/>
+      </property>
+      <property name="datasource">
+         <inject bean="DefaultDS"/>
+      </property>
+      <property name="sqlProperties">
+
+            BLOB_TYPE=OBJECT_BLOB
+            INSERT_TX = INSERT INTO JMS_TRANSACTIONS (TXID) values(?)
+            INSERT_MESSAGE = INSERT INTO JMS_MESSAGES (MESSAGEID, DESTINATION, MESSAGEBLOB, TXID, TXOP) VALUES(?,?,?,?,?)
+            SELECT_ALL_UNCOMMITED_TXS = SELECT TXID FROM JMS_TRANSACTIONS
+            SELECT_MAX_TX = SELECT MAX(TXID) FROM JMS_MESSAGES
+            SELECT_MESSAGES_IN_DEST = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE DESTINATION=?
+            SELECT_MESSAGE = SELECT MESSAGEID, MESSAGEBLOB FROM JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=?
+            MARK_MESSAGE = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE MESSAGEID=? AND DESTINATION=?
+            UPDATE_MESSAGE = UPDATE JMS_MESSAGES SET MESSAGEBLOB=? WHERE MESSAGEID=? AND DESTINATION=?
+            UPDATE_MARKED_MESSAGES = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=?
+            UPDATE_MARKED_MESSAGES_WITH_TX = UPDATE JMS_MESSAGES SET TXID=?, TXOP=? WHERE TXOP=? AND TXID=?
+            DELETE_MARKED_MESSAGES_WITH_TX = DELETE FROM JMS_MESSAGES WHERE TXOP=? AND JMS_MESSAGES.TXID IN (SELECT TXID FROM JMS_TRANSACTIONS)
+            DELETE_TX = DELETE FROM JMS_TRANSACTIONS WHERE TXID = ?
+            DELETE_MARKED_MESSAGES = DELETE FROM JMS_MESSAGES WHERE TXID=? AND TXOP=?
+            DELETE_MESSAGE = DELETE FROM JMS_MESSAGES WHERE MESSAGEID=? AND DESTINATION=?
+            CREATE_MESSAGE_TABLE = CREATE CACHED TABLE JMS_MESSAGES ( MESSAGEID INTEGER NOT NULL, \
+               DESTINATION VARCHAR(255) NOT NULL, TXID INTEGER, TXOP CHAR(1), \
+               MESSAGEBLOB OBJECT, PRIMARY KEY (MESSAGEID, DESTINATION) )
+            CREATE_IDX_MESSAGE_TXOP_TXID = CREATE INDEX JMS_MESSAGES_TXOP_TXID ON JMS_MESSAGES (TXOP, TXID)
+            CREATE_IDX_MESSAGE_DESTINATION = CREATE INDEX JMS_MESSAGES_DESTINATION ON JMS_MESSAGES (DESTINATION)
+            CREATE_TX_TABLE = CREATE CACHED TABLE JMS_TRANSACTIONS ( TXID INTEGER, PRIMARY KEY (TXID) )
+            CREATE_TABLES_ON_STARTUP = TRUE
+            DELETE_TEMPORARY_MESSAGES = DELETE FROM JMS_MESSAGES WHERE TXOP='T'
+
+      </property>
+   </bean>
+
+   <bean name="jboss.mq:service=MessageCache" class="org.jboss.mq.kernel.MessageCache">
+      <property name="persistenceManager"><inject bean="jboss.mq:service=PersistenceManager"/></property>
+      <property name="highMemoryMark">50</property>
+      <property name="maxMemoryMark">60</property>
+   </bean>
+
+   <bean name="jms-rar-WorkManager" class="org.jboss.ejb3.embedded.resource.JBossWorkManager">
+   </bean>
+
+   <bean name="jms-rar-DeploymentInfo" class="org.jboss.ejb3.embedded.resource.Ejb3DeploymentInfo">
+      <constructor>
+         <parameter class="java.lang.String">jms-ra.rar</parameter>
+         <parameter class="java.lang.String">javax.jms.MessageListener</parameter>
+         <parameter class="java.lang.String">org.jboss.resource.adapter.jms.inflow.JmsActivationSpec</parameter>
+      </constructor>
+   </bean>
+
+   <bean name="jboss.jca:name='jms-ra.rar',service=RARDeployment" class="org.jboss.ejb3.embedded.resource.RARDeployment">
+   	<constructor>
+         <parameter class="org.jboss.deployment.DeploymentInfo">
+            <inject bean="jms-rar-DeploymentInfo"/>
+         </parameter>
+      </constructor>
+      <property name="workManager"><inject bean="jms-rar-WorkManager"/></property>
+   </bean>
+
+   <bean name="jboss.mq:service=StateManager" class="org.jboss.mq.kernel.JDBCStateManager">
+      <property name="transactionManager">
+         <inject bean="TransactionManager"/>
+      </property>
+      <property name="datasource">
+         <inject bean="DefaultDS"/>
+      </property>
+      <property name="sqlProperties">
+
+            CREATE_TABLES_ON_STARTUP = TRUE
+            CREATE_USER_TABLE = CREATE TABLE JMS_USERS (USERID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, \
+                                                       CLIENTID VARCHAR(128), PRIMARY KEY(USERID))
+            CREATE_ROLE_TABLE = CREATE TABLE JMS_ROLES (ROLEID VARCHAR(32) NOT NULL, USERID VARCHAR(32) NOT NULL, \
+                                                       PRIMARY KEY(USERID, ROLEID))
+            CREATE_SUBSCRIPTION_TABLE = CREATE TABLE JMS_SUBSCRIPTIONS (CLIENTID VARCHAR(128) NOT NULL, \
+                                                       SUBNAME VARCHAR(128) NOT NULL, TOPIC VARCHAR(255) NOT NULL, \
+                                                       SELECTOR VARCHAR(255), PRIMARY KEY(CLIENTID, SUBNAME))
+            GET_SUBSCRIPTION = SELECT TOPIC, SELECTOR FROM JMS_SUBSCRIPTIONS WHERE CLIENTID=? AND SUBNAME=?
+            LOCK_SUBSCRIPTION = SELECT TOPIC, SELECTOR FROM JMS_SUBSCRIPTIONS WHERE CLIENTID=? AND SUBNAME=?
+            GET_SUBSCRIPTIONS_FOR_TOPIC = SELECT CLIENTID, SUBNAME, SELECTOR FROM JMS_SUBSCRIPTIONS WHERE TOPIC=?
+            INSERT_SUBSCRIPTION = INSERT INTO JMS_SUBSCRIPTIONS (CLIENTID, SUBNAME, TOPIC, SELECTOR) VALUES(?,?,?,?)
+            UPDATE_SUBSCRIPTION = UPDATE JMS_SUBSCRIPTIONS SET TOPIC=?, SELECTOR=? WHERE CLIENTID=? AND SUBNAME=?
+            REMOVE_SUBSCRIPTION = DELETE FROM JMS_SUBSCRIPTIONS WHERE CLIENTID=? AND SUBNAME=?
+            GET_USER_BY_CLIENTID = SELECT USERID, PASSWD, CLIENTID FROM JMS_USERS WHERE CLIENTID=?
+            GET_USER = SELECT PASSWD, CLIENTID FROM JMS_USERS WHERE USERID=?
+            POPULATE.TABLES.01 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES ('guest', 'guest')
+            POPULATE.TABLES.02 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES ('j2ee', 'j2ee')
+            POPULATE.TABLES.03 = INSERT INTO JMS_USERS (USERID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample')
+            POPULATE.TABLES.04 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES ('nobody', 'nobody')
+            POPULATE.TABLES.05 = INSERT INTO JMS_USERS (USERID, PASSWD) VALUES ('dynsub', 'dynsub')
+            POPULATE.TABLES.06 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('guest','guest')
+            POPULATE.TABLES.07 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('j2ee','guest')
+            POPULATE.TABLES.08 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('john','guest')
+            POPULATE.TABLES.09 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('subscriber','john')
+            POPULATE.TABLES.10 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('publisher','john')
+            POPULATE.TABLES.11 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('publisher','dynsub')
+            POPULATE.TABLES.12 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('durpublisher','john')
+            POPULATE.TABLES.13 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('durpublisher','dynsub')
+            POPULATE.TABLES.14 = INSERT INTO JMS_ROLES (ROLEID, USERID) VALUES ('noacc','nobody')
+
+      </property>
+   </bean>
+
+
+   <bean name="BasicQueueParameters" class="org.jboss.mq.server.BasicQueueParameters"/>
+
+   <bean name="jboss.mq:service=ThreadPool" class="org.jboss.util.threadpool.BasicThreadPool">
+      <property name="name">JMSThread</property>
+      <property name="threadGroupName">JBossMQ Server Threads</property>
+      <!-- The max number of threads in the pool -->
+      <property name="maximumPoolSize">10</property>
+      <!-- The max number of tasks before the queue is full -->
+      <property name="maximumQueueSize">1000</property>
+      <!-- The behavior of the pool when a task is added and the queue is full.
+      abort - a RuntimeException is thrown
+      run - the calling thread executes the task
+      wait - the calling thread blocks until the queue has room
+      discard - the task is silently discarded without being run
+      discardOldest - check to see if a task is about to complete and enque
+         the new task if possible, else run the task in the calling thread
+      -->
+      <property name="blockingModeString">run</property>
+   </bean>
+
+   <bean name="jboss.mq:service=DestinationManager" class="org.jboss.mq.server.JMSDestinationManager">
+      <constructor>
+         <parameter class="org.jboss.mq.server.BasicQueueParameters">
+            <inject bean="BasicQueueParameters"/>
+         </parameter>
+      </constructor>
+      <property name="persistenceManager"><inject bean="jboss.mq:service=PersistenceManager"/></property>
+      <property name="messageCache"><inject bean="jboss.mq:service=MessageCache"/></property>
+      <property name="stateManager"><inject bean="jboss.mq:service=StateManager"/></property>
+      <property name="threadPool"><inject bean="jboss.mq:service=ThreadPool"/></property>
+      <property name="threadGroup"><inject bean="jboss.mq:service=ThreadPool" property="threadGroup"/></property>
+      <start method="startServer"/>
+      <stop method="stopServer"/>
+   </bean>
+
+   <bean name="jboss.mq.destination:service=Queue,name=DLQ" class="org.jboss.mq.kernel.Queue">
+     <property name="destinationManagerPojo"><inject bean="jboss.mq:service=DestinationManager"/></property>
+     <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
+      <property name="destinationName">DLQ</property>
+   </bean>
+
+   <bean name="jboss.mq:service=Invoker" class="org.jboss.mq.server.JMSServerInvoker">
+      <property name="next"><inject bean="jboss.mq:service=DestinationManager"/></property>
+   </bean>
+
+   <bean name="jboss.mq:service=invocationlayer,type=JVM" class="org.jboss.mq.kernel.JVMIL">
+      <property name="jmsInvoker"><inject bean="jboss.mq:service=Invoker"/></property>
+     <property name="connectionFactoryJNDIRef">java:/ConnectionFactory</property>
+     <property name="XAConnectionFactoryJNDIRef">java:/XAConnectionFactory</property>
+     <property name="pingPeriod">0</property>
+      <property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
+   </bean>
+
+</deployment>
\ No newline at end of file

Added: labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/jndi.properties
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/jndi.properties	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/jndi.properties	2008-02-12 19:20:27 UTC (rev 18466)
@@ -0,0 +1,2 @@
+java.naming.factory.initial=org.jnp.interfaces.LocalOnlyContextFactory
+java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
\ No newline at end of file

Added: labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/log4j.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/log4j.xml	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/log4j.xml	2008-02-12 19:20:27 UTC (rev 18466)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!--  Log4j Configuration                                                  -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml 39945 2006-01-12 02:44:07Z bill $ -->
+
+<!--
+   | For more configuration infromation and examples see the Jakarta Log4j
+   | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+   
+<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      <param name="Target" value="System.out"/>
+      <param name="Threshold" value="WARN"/>
+
+      <layout class="org.apache.log4j.PatternLayout">
+         <!-- The default pattern: Date Priority [Category] Messagen -->
+         <!--
+         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+         -->
+         <param name="ConversionPattern" value="%-5p %d{dd-MM HH:mm:ss,SSS} (%F:%M:%L)  -%m%n"/>
+      </layout>
+</appender>
+
+   <root>
+      <appender-ref ref="CONSOLE"/>
+   </root>
+
+</log4j:configuration>

Added: labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/login-config.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/login-config.xml	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/login-config.xml	2008-02-12 19:20:27 UTC (rev 18466)
@@ -0,0 +1,63 @@
+<?xml version='1.0'?>
+
+<!DOCTYPE policy PUBLIC
+      "-//JBoss//DTD JBOSS Security Config 3.0//EN"
+      "http://www.jboss.org/j2ee/dtd/security_config.dtd">
+
+<!-- The XML based JAAS login configuration read by the
+org.jboss.security.auth.login.XMLLoginConfig mbean. Add
+an application-policy element for each security domain.
+
+The outline of the application-policy is:
+<application-policy name="security-domain-name">
+  <authentication>
+    <login-module code="login.module1.class.name" flag="control_flag">
+      <module-option name = "option1-name">option1-value</module-option>
+      <module-option name = "option2-name">option2-value</module-option>
+      ...
+    </login-module>
+
+    <login-module code="login.module2.class.name" flag="control_flag">
+      ...
+    </login-module>
+    ...
+  </authentication>
+</application-policy>
+
+$Revision: 42748 $
+-->
+
+<policy>
+  <!-- Used by clients within the application server VM such as
+  mbeans and servlets that access EJBs.
+  -->
+  <application-policy name="client-login">
+    <authentication>
+      <login-module code="org.jboss.security.ClientLoginModule"
+        flag="required">
+         <!-- Any existing security context will be restored on logout -->
+         <module-option name="restore-login-identity">true</module-option>
+      </login-module>
+    </authentication>
+  </application-policy>
+
+  <application-policy name="other">
+    <!-- A simple server login module, which can be used when the number
+    of users is relatively small. It uses two properties files:
+    users.properties, which holds users (key) and their password (value).
+    roles.properties, which holds users (key) and a comma-separated list of
+    their roles (value).
+    The unauthenticatedIdentity property defines the name of the principal
+    that will be used when a null username and password are presented as is
+    the case for an unuathenticated web client or MDB. If you want to
+    allow such users to be authenticated add the property, e.g.,
+    unauthenticatedIdentity="nobody"
+    -->
+    <authentication>
+      <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
+        flag="required"/>
+    </authentication>
+  </application-policy>
+
+</policy>
+

Added: labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/security-beans.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/security-beans.xml	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/test/resources/security-beans.xml	2008-02-12 19:20:27 UTC (rev 18466)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd"
+            xmlns="urn:jboss:bean-deployer">
+
+   <bean class="org.jboss.ejb3.embedded.JaasSecurityManagerService"
+         name="jboss.security:service=JaasSecurityManager">
+      <property name="initialContextProperties">
+         <inject bean="InitialContextProperties"/>
+      </property>
+   </bean>
+</deployment>

Modified: labs/jbosslabs/labs-3.0-build/views/foo-view/src/main/java/org/jboss/labs/MyServlet.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/foo-view/src/main/java/org/jboss/labs/MyServlet.java	2008-02-12 16:37:53 UTC (rev 18465)
+++ labs/jbosslabs/labs-3.0-build/views/foo-view/src/main/java/org/jboss/labs/MyServlet.java	2008-02-12 19:20:27 UTC (rev 18466)
@@ -62,12 +62,12 @@
 							+ "<br/>");
 		}
 
-		try {
+		/*try {
 			userService.bindRoleToUser(null, null);
 		} catch (NoSuchUserException e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
-		}
+		}*/
 		
 		resp.getWriter().println(
 				"Foo says: " + "Foo[" + fooService.sayFoo().id




More information about the jboss-svn-commits mailing list