Modified: 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/exception/JetspeedExceptionMessages_zh.properties
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/exception/JetspeedExceptionMessages_zh.properties?rev=698741&r1=698740&r2=698741&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/exception/JetspeedExceptionMessages_zh.properties
 (original)
+++ 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/exception/JetspeedExceptionMessages_zh.properties
 Wed Sep 24 14:22:18 2008
@@ -18,9 +18,13 @@
 org.apache.jetspeed.security.SecurityException.PRINCIPAL_IS_READ_ONLY = The 
principal {0} is read-only.
 org.apache.jetspeed.security.SecurityException.PRINCIPAL_UPDATE_FAILURE = 
Failed to update principal {0}.
 org.apache.jetspeed.security.SecurityException.PRINCIPAL_NOT_REMOVABLE = The 
principal {0} cannot be removed.
-org.apache.jetspeed.security.SecurityException.DEPENDENT_PRINCIPAL_EXISTS = 
The principal {0} has one or more dependents.
+org.apache.jetspeed.security.SecurityException.DEPENDENT_PRINCIPAL_EXISTS = 
The principal {0} has one or more required {1} {2} associations.
 org.apache.jetspeed.security.SecurityException.PRINCIPAL_ASSOCIATION_REQUIRED 
= A {0} {1} association is required.
-org.apache.jetspeed.security.SecurityException.PRINCIPAL_ASSOCIATION_UNSUPPORTED
 = A {0} {1} association is not supported.
+org.apache.jetspeed.security.SecurityException.PRINCIPAL_ASSOCIATION_UNSUPPORTED
 = A {0} {1} association is not allowed.
+org.apache.jetspeed.security.SecurityException.PRINCIPAL_ASSOCIATION_SINGULAR 
= Only one {0} association is allowed from principal {1} to another {2}.
+org.apache.jetspeed.security.SecurityException.PRINCIPAL_ASSOCIATION_DOMINANT 
= Only one {0} association is allowed to principal {1} from another {2}.
+org.apache.jetspeed.security.SecurityException.PRINCIPAL_ASSOCIATION_SINGULAR_MIXED
 = Only one {0} association is allowed from principal {1} to a {2}.
+org.apache.jetspeed.security.SecurityException.PRINCIPAL_ASSOCIATION_DOMINANT_MIXED
 = Only one {0} association is allowed to principal {1} from a {2}.
 org.apache.jetspeed.security.SecurityException.ATTRIBUTE_IS_READ_ONLY = The 
principal attribute {0} is read only.
 org.apache.jetspeed.security.SecurityException.ATTRIBUTE_IS_REQUIRED = The 
principal attribute {0} is required.
 org.apache.jetspeed.security.SecurityException.ATTRIBUTES_ARE_READ_ONLY = The 
principal attributes are read only.
@@ -52,9 +56,13 @@
 org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_IS_READ_ONLY = 
The user {0} is read-only.
 org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_UPDATE_FAILURE = 
Failed to update user {0}.
 org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_NOT_REMOVABLE = 
The user {0} cannot be removed.
-org.apache.jetspeed.security.SecurityException.user.DEPENDENT_PRINCIPAL_EXISTS 
= The user {0} has one or more dependents.
+org.apache.jetspeed.security.SecurityException.user.DEPENDENT_PRINCIPAL_EXISTS 
= The user {0} has one or more required {1} {2} associations.
 
org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_ASSOCIATION_REQUIRED
 = A user {0} {1} association is required.
 
org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_ASSOCIATION_UNSUPPORTED
 = A user {0} {1} association is not supported.
+org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_ASSOCIATION_SINGULAR
 = Only one {0} association is allowed from user {1} to another user.
+org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_ASSOCIATION_DOMINANT
 = Only one {0} association is allowed to user {1} from another user.
+org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_ASSOCIATION_SINGULAR_MIXED
 = Only one {0} association is allowed from principal {1} to a {2}.
+org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_ASSOCIATION_DOMINANT_MIXED
 = Only one {0} association is allowed to principal {1} from a {2}.
 org.apache.jetspeed.security.SecurityException.user.ATTRIBUTE_IS_READ_ONLY = 
The user attribute {0} is read only.
 org.apache.jetspeed.security.SecurityException.user.ATTRIBUTE_IS_REQUIRED = 
The user attribute {0} is required.
 org.apache.jetspeed.security.SecurityException.user.ATTRIBUTES_ARE_READ_ONLY = 
The user attributes are read only.
@@ -65,9 +73,13 @@
 org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_IS_READ_ONLY = 
The role {0} is read-only.
 org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_UPDATE_FAILURE = 
Failed to update role {0}.
 org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_NOT_REMOVABLE = 
The role {0} cannot be removed.
-org.apache.jetspeed.security.SecurityException.role.DEPENDENT_PRINCIPAL_EXISTS 
= The role {0} has one or more dependents.
+org.apache.jetspeed.security.SecurityException.role.DEPENDENT_PRINCIPAL_EXISTS 
= The role {0} has one or more required {1} {2} associations.
 
org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_ASSOCIATION_REQUIRED
 = A role {0} {1} association is required.
 
org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_ASSOCIATION_UNSUPPORTED
 = A role {0} {1} association is not supported.
+org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_ASSOCIATION_SINGULAR
 = Only one {0} association is allowed from role {1} to another role.
+org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_ASSOCIATION_DOMINANT
 = Only one {0} association is allowed to role {1} from another role.
+org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_ASSOCIATION_SINGULAR_MIXED
 = Only one {0} association is allowed from principal {1} to a {2}.
+org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_ASSOCIATION_DOMINANT_MIXED
 = Only one {0} association is allowed to principal {1} from a {2}.
 org.apache.jetspeed.security.SecurityException.role.ATTRIBUTE_IS_READ_ONLY = 
The role attribute {0} is read only.
 org.apache.jetspeed.security.SecurityException.role.ATTRIBUTE_IS_REQUIRED = 
The role attribute {0} is required.
 org.apache.jetspeed.security.SecurityException.role.ATTRIBUTES_ARE_READ_ONLY = 
The role attributes are read only.
@@ -78,9 +90,13 @@
 org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_IS_READ_ONLY = 
The group {0} is read-only.
 org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_UPDATE_FAILURE 
= Failed to update group {0}.
 org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_NOT_REMOVABLE = 
The group {0} cannot be removed.
-org.apache.jetspeed.security.SecurityException.group.DEPENDENT_PRINCIPAL_EXISTS
 = The group {0} has one or more dependents.
+org.apache.jetspeed.security.SecurityException.group.DEPENDENT_PRINCIPAL_EXISTS
 = The group {0} has one or more required {1} {2} associations.
 
org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_ASSOCIATION_REQUIRED
 = A group {0} {1} association is required.
 
org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_ASSOCIATION_UNSUPPORTED
 = A group {0} {1} association is not supported.
+org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_ASSOCIATION_SINGULAR
 = Only one {0} association is allowed from principal {1} to another group.
+org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_ASSOCIATION_DOMINANT
 = Only one {0} association is allowed to principal {1} from another group.
+org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_ASSOCIATION_SINGULAR_MIXED
 = Only one {0} association is allowed from principal {1} to a {2}.
+org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_ASSOCIATION_DOMINANT_MIXED
 = Only one {0} association is allowed to principal {1} from a {2}.
 org.apache.jetspeed.security.SecurityException.group.ATTRIBUTE_IS_READ_ONLY = 
The group attribute {0} is read only.
 org.apache.jetspeed.security.SecurityException.group.ATTRIBUTE_IS_REQUIRED = 
The group attribute {0} is required.
 org.apache.jetspeed.security.SecurityException.group.ATTRIBUTES_ARE_READ_ONLY 
= The group attributes are read only.

Modified: 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/exception/JetspeedExceptionMessages_zh_TW.properties
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/exception/JetspeedExceptionMessages_zh_TW.properties?rev=698741&r1=698740&r2=698741&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/exception/JetspeedExceptionMessages_zh_TW.properties
 (original)
+++ 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/exception/JetspeedExceptionMessages_zh_TW.properties
 Wed Sep 24 14:22:18 2008
@@ -18,9 +18,13 @@
 org.apache.jetspeed.security.SecurityException.PRINCIPAL_IS_READ_ONLY = The 
principal {0} is read-only.
 org.apache.jetspeed.security.SecurityException.PRINCIPAL_UPDATE_FAILURE = 
Failed to update principal {0}.
 org.apache.jetspeed.security.SecurityException.PRINCIPAL_NOT_REMOVABLE = The 
principal {0} cannot be removed.
-org.apache.jetspeed.security.SecurityException.DEPENDENT_PRINCIPAL_EXISTS = 
The principal {0} has one or more dependents.
+org.apache.jetspeed.security.SecurityException.DEPENDENT_PRINCIPAL_EXISTS = 
The principal {0} has one or more required {1} {2} associations.
 org.apache.jetspeed.security.SecurityException.PRINCIPAL_ASSOCIATION_REQUIRED 
= A {0} {1} association is required.
-org.apache.jetspeed.security.SecurityException.PRINCIPAL_ASSOCIATION_UNSUPPORTED
 = A {0} {1} association is not supported.
+org.apache.jetspeed.security.SecurityException.PRINCIPAL_ASSOCIATION_UNSUPPORTED
 = A {0} {1} association is not allowed.
+org.apache.jetspeed.security.SecurityException.PRINCIPAL_ASSOCIATION_SINGULAR 
= Only one {0} association is allowed from principal {1} to another {2}.
+org.apache.jetspeed.security.SecurityException.PRINCIPAL_ASSOCIATION_DOMINANT 
= Only one {0} association is allowed to principal {1} from another {2}.
+org.apache.jetspeed.security.SecurityException.PRINCIPAL_ASSOCIATION_SINGULAR_MIXED
 = Only one {0} association is allowed from principal {1} to a {2}.
+org.apache.jetspeed.security.SecurityException.PRINCIPAL_ASSOCIATION_DOMINANT_MIXED
 = Only one {0} association is allowed to principal {1} from a {2}.
 org.apache.jetspeed.security.SecurityException.ATTRIBUTE_IS_READ_ONLY = The 
principal attribute {0} is read only.
 org.apache.jetspeed.security.SecurityException.ATTRIBUTE_IS_REQUIRED = The 
principal attribute {0} is required.
 org.apache.jetspeed.security.SecurityException.ATTRIBUTES_ARE_READ_ONLY = The 
principal attributes are read only.
@@ -52,9 +56,13 @@
 org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_IS_READ_ONLY = 
The user {0} is read-only.
 org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_UPDATE_FAILURE = 
Failed to update user {0}.
 org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_NOT_REMOVABLE = 
The user {0} cannot be removed.
-org.apache.jetspeed.security.SecurityException.user.DEPENDENT_PRINCIPAL_EXISTS 
= The user {0} has one or more dependents.
+org.apache.jetspeed.security.SecurityException.user.DEPENDENT_PRINCIPAL_EXISTS 
= The user {0} has one or more required {1} {2} associations.
 
org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_ASSOCIATION_REQUIRED
 = A user {0} {1} association is required.
 
org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_ASSOCIATION_UNSUPPORTED
 = A user {0} {1} association is not supported.
+org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_ASSOCIATION_SINGULAR
 = Only one {0} association is allowed from user {1} to another user.
+org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_ASSOCIATION_DOMINANT
 = Only one {0} association is allowed to user {1} from another user.
+org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_ASSOCIATION_SINGULAR_MIXED
 = Only one {0} association is allowed from principal {1} to a {2}.
+org.apache.jetspeed.security.SecurityException.user.PRINCIPAL_ASSOCIATION_DOMINANT_MIXED
 = Only one {0} association is allowed to principal {1} from a {2}.
 org.apache.jetspeed.security.SecurityException.user.ATTRIBUTE_IS_READ_ONLY = 
The user attribute {0} is read only.
 org.apache.jetspeed.security.SecurityException.user.ATTRIBUTE_IS_REQUIRED = 
The user attribute {0} is required.
 org.apache.jetspeed.security.SecurityException.user.ATTRIBUTES_ARE_READ_ONLY = 
The user attributes are read only.
@@ -65,9 +73,13 @@
 org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_IS_READ_ONLY = 
The role {0} is read-only.
 org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_UPDATE_FAILURE = 
Failed to update role {0}.
 org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_NOT_REMOVABLE = 
The role {0} cannot be removed.
-org.apache.jetspeed.security.SecurityException.role.DEPENDENT_PRINCIPAL_EXISTS 
= The role {0} has one or more dependents.
+org.apache.jetspeed.security.SecurityException.role.DEPENDENT_PRINCIPAL_EXISTS 
= The role {0} has one or more required {1} {2} associations.
 
org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_ASSOCIATION_REQUIRED
 = A role {0} {1} association is required.
 
org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_ASSOCIATION_UNSUPPORTED
 = A role {0} {1} association is not supported.
+org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_ASSOCIATION_SINGULAR
 = Only one {0} association is allowed from role {1} to another role.
+org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_ASSOCIATION_DOMINANT
 = Only one {0} association is allowed to role {1} from another role.
+org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_ASSOCIATION_SINGULAR_MIXED
 = Only one {0} association is allowed from principal {1} to a {2}.
+org.apache.jetspeed.security.SecurityException.role.PRINCIPAL_ASSOCIATION_DOMINANT_MIXED
 = Only one {0} association is allowed to principal {1} from a {2}.
 org.apache.jetspeed.security.SecurityException.role.ATTRIBUTE_IS_READ_ONLY = 
The role attribute {0} is read only.
 org.apache.jetspeed.security.SecurityException.role.ATTRIBUTE_IS_REQUIRED = 
The role attribute {0} is required.
 org.apache.jetspeed.security.SecurityException.role.ATTRIBUTES_ARE_READ_ONLY = 
The role attributes are read only.
@@ -78,9 +90,13 @@
 org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_IS_READ_ONLY = 
The group {0} is read-only.
 org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_UPDATE_FAILURE 
= Failed to update group {0}.
 org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_NOT_REMOVABLE = 
The group {0} cannot be removed.
-org.apache.jetspeed.security.SecurityException.group.DEPENDENT_PRINCIPAL_EXISTS
 = The group {0} has one or more dependents.
+org.apache.jetspeed.security.SecurityException.group.DEPENDENT_PRINCIPAL_EXISTS
 = The group {0} has one or more required {1} {2} associations.
 
org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_ASSOCIATION_REQUIRED
 = A group {0} {1} association is required.
 
org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_ASSOCIATION_UNSUPPORTED
 = A group {0} {1} association is not supported.
+org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_ASSOCIATION_SINGULAR
 = Only one {0} association is allowed from principal {1} to another group.
+org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_ASSOCIATION_DOMINANT
 = Only one {0} association is allowed to principal {1} from another group.
+org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_ASSOCIATION_SINGULAR_MIXED
 = Only one {0} association is allowed from principal {1} to a {2}.
+org.apache.jetspeed.security.SecurityException.group.PRINCIPAL_ASSOCIATION_DOMINANT_MIXED
 = Only one {0} association is allowed to principal {1} from a {2}.
 org.apache.jetspeed.security.SecurityException.group.ATTRIBUTE_IS_READ_ONLY = 
The group attribute {0} is read only.
 org.apache.jetspeed.security.SecurityException.group.ATTRIBUTE_IS_REQUIRED = 
The group attribute {0} is required.
 org.apache.jetspeed.security.SecurityException.group.ATTRIBUTES_ARE_READ_ONLY 
= The group attributes are read only.

Modified: 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/security/JetspeedPrincipalAssociationType.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/security/JetspeedPrincipalAssociationType.java?rev=698741&r1=698740&r2=698741&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/security/JetspeedPrincipalAssociationType.java
 (original)
+++ 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/security/JetspeedPrincipalAssociationType.java
 Wed Sep 24 14:22:18 2008
@@ -22,35 +22,92 @@
 public interface JetspeedPrincipalAssociationType
 {
     /**
-     * build-in supported @{link [EMAIL PROTECTED] #getAssociationName() 
associationName} "isMemberOf" 
+     * build-in supported @{link [EMAIL PROTECTED] #getAssociationName() 
associationName} "isMemberOf"
+     * <p>
+     * This association type between two different [EMAIL PROTECTED] 
JetspeedPrincipalType}s represents
+     * an N to M relationship
+     * </p>
+     * <p>
+     * Configuration needed for this association type:
+     * </p>
+     * <ul>
+     *   <li>required : false</li>
+     *   <li>dependent: false</li>
+     *   <li>singular : false</li>
+     *   <li>dominant : false</li>
+     * </ul>
      */
     String IS_MEMBER_OF = "isMemberOf"; // FROM node is member of TO node 
 
     /**
      * build-in supported @{link [EMAIL PROTECTED] #getAssociationName() 
associationName} "isChildOf"
+     * <p>
+     * This association type between two equal [EMAIL PROTECTED] 
JetspeedPrincipalType}s represents
+     * a required from child to parent hierarchical relationship.
+     * </p>
+     * <p>
+     * Configuration needed for this association type:
+     * </p>
+     * <ul>
+     *   <li>required : true</li>
+     *   <li>dependent: true</li>
+     *   <li>singular : true</li>
+     *   <li>dominant : false</li>
+     * </ul>
      */
     String IS_CHILD_OF = "isChildOf"; // FROM node is member of TO node
 
     /**
      * build-in supported @{link [EMAIL PROTECTED] #getAssociationName() 
associationName} "isA"
-     * 
-     * This association type (between two equal [EMAIL PROTECTED] 
JetspeedPrincipalType}s) represents
+     * <p>
+     * This association type between two equal [EMAIL PROTECTED] 
JetspeedPrincipalType}s represents
      * a Generalizing Hierarchical relationship where from <em>implies</em> to.
+     * </p>
+     * <p>
+     * Configuration needed for this association type:
+     * </p>
+     * <ul>
+     *   <li>required : false</li>
+     *   <li>dependent: true</li>
+     *   <li>singular : true</li>
+     *   <li>dominant : false</li>
+     * </ul>
      */
     String IS_A = "isA"; // FROM node is a TO node: FROM node implies TO node
 
     /**
      * build-in supported @{link [EMAIL PROTECTED] #getAssociationName() 
associationName} "isPartOf"
-     * 
-     * This association type (between two equal [EMAIL PROTECTED] 
JetspeedPrincipalType}s) represents
+     * <p>
+     * This association type between two equal [EMAIL PROTECTED] 
JetspeedPrincipalType}s represents
      * a Aggregating Hierarchical relationship where to <em>implies</em> from.
+     * </p>
+     * <p>
+     * Configuration needed for this association type (same as [EMAIL 
PROTECTED] #IS_MEMBER_OF}):
+     * </p>
+     * <ul>
+     *   <li>required : false</li>
+     *   <li>dependent: false</li>
+     *   <li>singular : false</li>
+     *   <li>dominant : false</li>
+     * </ul>
      */
     String IS_PART_OF = "isPartOf"; // FROM node is part of TO node: TO node 
implies FROM node
 
     /**
      * build-in supported @{link [EMAIL PROTECTED] #getAssociationName() 
associationName} "belongsTo"
-     * 
-     * This association type represents a (possibly required) constraint where 
from may only belong to one to
+     * <p>
+     * This association type betweem two different [EMAIL PROTECTED] 
JetspeedPrincipalType}s represents
+     * a required relationship where from may only belong to one to
+     * </p>
+     * <p>
+     * Configuration needed for this association type:
+     * </p>
+     * <ul>
+     *   <li>required : true</li>
+     *   <li>dependent: true</li>
+     *   <li>singular : true</li>
+     *   <li>dominant : false</li>
+     * </ul>
      */
     String BELONGS_TO = "belongsTo"; // FROM node is member of TO node: FROM 
node may only belong to one TO node
     
@@ -94,4 +151,10 @@
      * True if the to principal can be associated to at most once. 
      */
     boolean isDominant();
+    
+    /**
+     * True if this is an association between two different [EMAIL PROTECTED] 
JetspeedPrincipalType}s
+     * @return
+     */
+    boolean isMixedTypes();
 }

Modified: 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/security/SecurityException.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/security/SecurityException.java?rev=698741&r1=698740&r2=698741&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/security/SecurityException.java
 (original)
+++ 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-api/src/main/java/org/apache/jetspeed/security/SecurityException.java
 Wed Sep 24 14:22:18 2008
@@ -45,11 +45,23 @@
     public static final KeyedMessage PRINCIPAL_NOT_REMOVABLE = new 
KeyedMessage("The principal {0} cannot be removed.");
     
     /** <p>Principal has one or more dependents. */
-    public static final KeyedMessage DEPENDENT_PRINCIPAL_EXISTS = new 
KeyedMessage("The principal {0} has one or more dependents.");
+    public static final KeyedMessage DEPENDENT_PRINCIPAL_EXISTS = new 
KeyedMessage("The principal {0} has one or more required {1} {2} 
associations.");
     
     /** <p>Principal association required exception message.</p> */
     public static final KeyedMessage PRINCIPAL_ASSOCIATION_REQUIRED = new 
KeyedMessage("A {0} {1} association is required.");
     
+    /** <p>Principal association singular for same types exception 
message.</p> */
+    public static final KeyedMessage PRINCIPAL_ASSOCIATION_SINGULAR = new 
KeyedMessage("Only one {0} association is allowed from principal {1} to another 
{2}.");
+    
+    /** <p>Principal association dominant for same types exception 
message.</p> */
+    public static final KeyedMessage PRINCIPAL_ASSOCIATION_DOMINANT = new 
KeyedMessage("Only one {0} association is allowed to principal {1} from another 
{2}.");
+    
+    /** <p>Principal association singular for mixed types exception 
message.</p> */
+    public static final KeyedMessage PRINCIPAL_ASSOCIATION_SINGULAR_MIXED = 
new KeyedMessage("Only one {0} association is allowed from principal {1} to a 
{2}.");
+    
+    /** <p>Principal association dominant for mixed types exception 
message.</p> */
+    public static final KeyedMessage PRINCIPAL_ASSOCIATION_DOMINANT_MIXED = 
new KeyedMessage("Only one {0} association is allowed to principal {1} from a 
{2}.");
+    
     /** <p>Principal association is not supported exception message.</p> */
     public static final KeyedMessage PRINCIPAL_ASSOCIATION_UNSUPPORTED = new 
KeyedMessage("A {0} {1} association is not supported.");
     

Modified: 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-portal-resources/src/main/resources/assembly/security-managers.xml
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-portal-resources/src/main/resources/assembly/security-managers.xml?rev=698741&r1=698740&r2=698741&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-portal-resources/src/main/resources/assembly/security-managers.xml
 (original)
+++ 
portals/jetspeed-2/portal/branches/security-refactoring/jetspeed-portal-resources/src/main/resources/assembly/security-managers.xml
 Wed Sep 24 14:22:18 2008
@@ -258,32 +258,57 @@
   </bean>
 
   <bean id="userIsMemberOfRoleAssociationHandler"
-    
class="org.apache.jetspeed.security.spi.impl.SimpleMemberOfPrincipalAssociationHandler">
+    
class="org.apache.jetspeed.security.spi.impl.IsMemberOfPrincipalAssociationHandler">
     <meta key="j2:cat" value="default,security" />
-    <constructor-arg index="0" value="isMemberOf" />
-    <constructor-arg index="1" ref="org.apache.jetspeed.security.UserManager" 
/>
-    <constructor-arg index="2" ref="org.apache.jetspeed.security.RoleManager" 
/>
-    <constructor-arg index="3" 
ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager" />
+    <constructor-arg index="0" ref="org.apache.jetspeed.security.UserManager" 
/>
+    <constructor-arg index="1" ref="org.apache.jetspeed.security.RoleManager" 
/>
+    <constructor-arg index="2" 
ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager" />
   </bean>
 
   <bean id="userIsMemberOfGroupAssociationHandler"
-    
class="org.apache.jetspeed.security.spi.impl.SimpleMemberOfPrincipalAssociationHandler">
+    
class="org.apache.jetspeed.security.spi.impl.IsMemberOfPrincipalAssociationHandler">
     <meta key="j2:cat" value="default,security" />
-    <constructor-arg index="0" value="isMemberOf" />
-    <constructor-arg index="1" ref="org.apache.jetspeed.security.UserManager" 
/>
-    <constructor-arg index="2" ref="org.apache.jetspeed.security.GroupManager" 
/>
-    <constructor-arg index="3" 
ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager" />
+    <constructor-arg index="0" ref="org.apache.jetspeed.security.UserManager" 
/>
+    <constructor-arg index="1" ref="org.apache.jetspeed.security.GroupManager" 
/>
+    <constructor-arg index="2" 
ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager" />
   </bean>
 
   <bean id="groupIsMemberOfRoleAssociationHandler"
-    
class="org.apache.jetspeed.security.spi.impl.SimpleMemberOfPrincipalAssociationHandler">
+    
class="org.apache.jetspeed.security.spi.impl.IsMemberOfPrincipalAssociationHandler">
     <meta key="j2:cat" value="default,security" />
-    <constructor-arg index="0" value="isMemberOf" />
-    <constructor-arg index="1" ref="org.apache.jetspeed.security.GroupManager" 
/>
-    <constructor-arg index="2" ref="org.apache.jetspeed.security.RoleManager" 
/>
-    <constructor-arg index="3" 
ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager" />
+    <constructor-arg index="0" ref="org.apache.jetspeed.security.GroupManager" 
/>
+    <constructor-arg index="1" ref="org.apache.jetspeed.security.RoleManager" 
/>
+    <constructor-arg index="2" 
ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager" />
   </bean>
 
+  <bean id="roleIsARoleAssociationHandler"
+    
class="org.apache.jetspeed.security.spi.impl.IsAPrincipalAssociationHandler">
+    <meta key="j2:cat" value="default,security" />
+    <constructor-arg index="0" ref="org.apache.jetspeed.security.RoleManager" 
/>
+    <constructor-arg index="1" 
ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager" />
+  </bean>
+  
+  <bean id="roleIsPartOfRoleAssociationHandler"
+    
class="org.apache.jetspeed.security.spi.impl.IsPartOfPrincipalAssociationHandler">
+    <meta key="j2:cat" value="default,security" />
+    <constructor-arg index="0" ref="org.apache.jetspeed.security.RoleManager" 
/>
+    <constructor-arg index="1" 
ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager" />
+  </bean>
+  
+  <bean id="groupIsAGroupAssociationHandler"
+    
class="org.apache.jetspeed.security.spi.impl.IsAPrincipalAssociationHandler">
+    <meta key="j2:cat" value="default,security" />
+    <constructor-arg index="0" ref="org.apache.jetspeed.security.GroupManager" 
/>
+    <constructor-arg index="1" 
ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager" />
+  </bean>
+  
+  <bean id="groupIsPartOfGroupAssociationHandler"
+    
class="org.apache.jetspeed.security.spi.impl.IsPartOfPrincipalAssociationHandler">
+    <meta key="j2:cat" value="default,security" />
+    <constructor-arg index="0" ref="org.apache.jetspeed.security.GroupManager" 
/>
+    <constructor-arg index="1" 
ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager" />
+  </bean>
+  
   <bean id="userSubjectRolesResolver" 
class="org.apache.jetspeed.security.spi.impl.UserSubjectPrincipalsResolverImpl">
     <meta key="j2:cat" value="default,security" />
     <constructor-arg index="0" ref="org.apache.jetspeed.security.UserManager" 
/>
@@ -298,6 +323,26 @@
         </property>
       </bean>
     </constructor-arg>
+    <constructor-arg index="3">
+      <list>
+        <bean 
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+          <property name="targetObject">
+            <ref bean="roleIsARoleAssociationHandler" />
+          </property>
+          <property name="targetMethod">
+            <value>getAssociationType</value>
+          </property>
+        </bean>
+        <bean 
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+          <property name="targetObject">
+            <ref bean="roleIsPartOfRoleAssociationHandler" />
+          </property>
+          <property name="targetMethod">
+            <value>getAssociationType</value>
+          </property>
+        </bean>
+      </list>
+    </constructor-arg>
   </bean>
 
   <bean id="userSubjectGroupsResolver"
@@ -315,6 +360,34 @@
         </property>
       </bean>
     </constructor-arg>
+    <constructor-arg index="3">
+      <list>
+        <bean 
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+          <property name="targetObject">
+            <ref bean="groupIsMemberOfRoleAssociationHandler" />
+          </property>
+          <property name="targetMethod">
+            <value>getAssociationType</value>
+          </property>
+        </bean>
+        <bean 
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+          <property name="targetObject">
+            <ref bean="groupIsAGroupAssociationHandler" />
+          </property>
+          <property name="targetMethod">
+            <value>getAssociationType</value>
+          </property>
+        </bean>
+        <bean 
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+          <property name="targetObject">
+            <ref bean="groupIsPartOfGroupAssociationHandler" />
+          </property>
+          <property name="targetMethod">
+            <value>getAssociationType</value>
+          </property>
+        </bean>
+      </list>
+    </constructor-arg>
   </bean>
 
 </beans>
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to