You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by pe...@apache.org on 2012/01/13 09:17:16 UTC

svn commit: r1230913 [2/2] - in /river/jtsk/skunk/peterConcurrentPolicy: ./ qa/harness/trust/ qa/src/com/sun/jini/qa/harness/ qa/src/com/sun/jini/test/impl/start/ qa/src/com/sun/jini/test/impl/start/loadersplitpolicyprovider/ src/com/sun/jini/start/ sr...

Copied: river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/PolicyUtils.java (from r1229137, river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/policy/util/PolicyUtils.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/PolicyUtils.java?p2=river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/PolicyUtils.java&p1=river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/policy/util/PolicyUtils.java&r1=1229137&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/policy/util/PolicyUtils.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/PolicyUtils.java Fri Jan 13 08:17:14 2012
@@ -21,7 +21,7 @@
 * @version $Revision$
 */
 
-package org.apache.river.impl.security.policy.util;
+package org.apache.river.api.security;
 
 import java.io.File;
 import java.io.IOException;
@@ -46,14 +46,13 @@ import java.util.List;
 import java.util.Properties;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-import net.jini.security.ConcurrentPermissions;
 
 /**
  * This class consist of a number of static methods, which provide a common functionality 
  * for various policy and configuration providers. 
  * 
  */
-public class PolicyUtils {
+ class PolicyUtils {
 
     // No reason to instantiate
     private PolicyUtils() {}
@@ -61,7 +60,7 @@ public class PolicyUtils {
     /**
      * Auxiliary action for opening InputStream from specified location.
      */
-    public static class URLLoader implements PrivilegedExceptionAction<InputStream> {
+    static class URLLoader implements PrivilegedExceptionAction<InputStream> {
 
         /** 
          * URL of target location. 
@@ -71,7 +70,7 @@ public class PolicyUtils {
         /**
          *  Constructor with target URL parameter. 
          */
-        public URLLoader(URL location) {
+        URLLoader(URL location) {
             this.location = location;
         }
 
@@ -86,19 +85,19 @@ public class PolicyUtils {
     /** 
      * Auxiliary action for accessing specific security property. 
      */
-    public static class SecurityPropertyAccessor implements PrivilegedAction<String> {
+    static class SecurityPropertyAccessor implements PrivilegedAction<String> {
 
         private String key;
         
         /** 
          * Constructor with a property key parameter. 
          */
-        public SecurityPropertyAccessor(String key) {
+        SecurityPropertyAccessor(String key) {
             super();
             this.key = key;
         }
 
-        public PrivilegedAction<String> key(String key) {
+        PrivilegedAction<String> key(String key) {
             this.key = key;
             return this;
         }
@@ -115,7 +114,7 @@ public class PolicyUtils {
      * Specific exception to signal that property expansion failed 
      * due to unknown key. 
      */
-    public static class ExpansionFailedException extends Exception {
+    static class ExpansionFailedException extends Exception {
 
         /**
          * @serial
@@ -125,14 +124,14 @@ public class PolicyUtils {
         /** 
          * Constructor with user-friendly message parameter. 
          */
-        public ExpansionFailedException(String message) {
+        ExpansionFailedException(String message) {
             super(message);
         }
 
         /** 
          * Constructor with user-friendly message and causing error. 
          */
-        public ExpansionFailedException(String message, Throwable cause) {
+        ExpansionFailedException(String message, Throwable cause) {
             super(message, cause);
         }
     }
@@ -172,6 +171,8 @@ public class PolicyUtils {
         return result.toString();
     }
     
+//  Segment has a bug where if the closing bracket is missing it gets caught 
+//  endlessly creating new Segments and calling them.
 //    public static String expand(String str, Properties properties) throws ExpansionFailedException{
 //        Segment s = new Segment(str, null);
 //        for (int i = 0; i < 3; i++){ //nested properies 3 deep.
@@ -186,7 +187,7 @@ public class PolicyUtils {
      * <code>expand(str, properties).replace(File.separatorChar, '/')</code>.
      * @see #expand(String, Properties)
      */
-    public static String expandURL(String str, Properties properties)
+    static String expandURL(String str, Properties properties)
             throws ExpansionFailedException {
         return expand(str, properties).replace(File.separatorChar, '/');
     }
@@ -199,7 +200,7 @@ public class PolicyUtils {
      * @return - the normalized URL.
      * @throws URISyntaxException  
      */
-    public static URI normalizeURL(URL codebase) throws URISyntaxException {
+    static URI normalizeURL(URL codebase) throws URISyntaxException {
         if (codebase == null) return null;
         if ("file".equals(codebase.getProtocol())) { //$NON-NLS-1$
             try {
@@ -233,7 +234,7 @@ public class PolicyUtils {
      * @return - the resulting URI.
      * @throw URISyntaxException
      */
-    public static URI filePathToURI(String path) throws URISyntaxException {
+    static URI filePathToURI(String path) throws URISyntaxException {
         path = path.replace(File.separatorChar, '/');
 
         if (!path.startsWith("/")) { //$NON-NLS-1$
@@ -250,7 +251,7 @@ public class PolicyUtils {
      * Such functionality is applicable to security policy files, for example.
      * @see org.apache.harmony.security.PolicyUtils#expandGeneral(String, GeneralExpansionHandler)
      */
-    public static interface GeneralExpansionHandler {
+    static interface GeneralExpansionHandler {
 
         /**
          * Resolves general expansion expressions of the form ${{protocol:data}}.
@@ -274,7 +275,7 @@ public class PolicyUtils {
      * @return expanded string
      * @throws ExpansionFailedException
      */
-    public static String expandGeneral(String str,
+    static String expandGeneral(String str,
             GeneralExpansionHandler handler) throws ExpansionFailedException {
         final String START_MARK = "${{"; //$NON-NLS-1$
         final String END_MARK = "}}"; //$NON-NLS-1$
@@ -306,7 +307,7 @@ public class PolicyUtils {
      * dynamic policy location via system properties is allowed. 
      * @see #getPolicyURLs(Properties, String, String)
      */
-    public static final String POLICY_ALLOW_DYNAMIC = "policy.allowSystemProperty"; //$NON-NLS-1$
+    static final String POLICY_ALLOW_DYNAMIC = "policy.allowSystemProperty"; //$NON-NLS-1$
 
     /** 
      * A key to security properties, deciding whether expansion of 
@@ -314,24 +315,24 @@ public class PolicyUtils {
      * (in security properties values, policy files, etc).
      * @see #expand(String, Properties) 
      */
-    public static final String POLICY_EXPAND = "policy.expandProperties"; //$NON-NLS-1$
+    static final String POLICY_EXPAND = "policy.expandProperties"; //$NON-NLS-1$
 
     /** 
      * Positive value of switching properties.
      */
-    public static final String TRUE = "true"; //$NON-NLS-1$
+    static final String TRUE = "true"; //$NON-NLS-1$
 
     /** 
      * Negative value of switching properties.
      */
-    public static final String FALSE = "false"; //$NON-NLS-1$
+    static final String FALSE = "false"; //$NON-NLS-1$
 
     /** 
      * Returns false if current security settings disable to perform 
      * properties expansion, true otherwise.
      * @see #expand(String, Properties)  
      */
-    public static boolean canExpandProperties() {
+    static boolean canExpandProperties() {
         return !Util.equalsIgnoreCase(FALSE,AccessController
                 .doPrivileged(new SecurityPropertyAccessor(POLICY_EXPAND)));
     }
@@ -368,7 +369,7 @@ public class PolicyUtils {
      * @param securityUrlPrefix prefix to numbered locations in security properties
      * @return array of URLs to provider's configuration files, may be empty.
      */
-    public static URL[] getPolicyURLs(final Properties system,
+    static URL[] getPolicyURLs(final Properties system,
             final String systemUrlKey, final String securityUrlPrefix) {
 
         final List<URL> urls = new ArrayList<URL>();
@@ -437,7 +438,7 @@ public class PolicyUtils {
      * @return mutable heterogeneous PermissionCollection containing all Permissions 
      * from the specified collection
      */
-    public static PermissionCollection 
+    static PermissionCollection 
             toPermissionCollection(Collection<Permission> perms) {
         PermissionCollection pc = new Permissions();
         if (perms != null) {
@@ -448,56 +449,6 @@ public class PolicyUtils {
         }
         return pc;
     }
-    
-    /** 
-     * Merges common-purpose homegeneous or heterogeneous PermissionCollection's 
-     * into a hetergeneous PermissionCollection based on ConcurrentPermissions.
-     *
-     * @param perms a PermissionCollection containing arbitrary permissions. Null
-     * is permitted.
-     * @return mutable heterogeneous PermissionCollection containing all Permissions 
-     * from the specified PermissionCollection. An empty PermissionCollection
-     * is returned if parameter is null.
-     */
-//    public static PermissionCollection 
-//            mergePermissions(PermissionCollection[] perms) {
-//        PermissionCollection pc = new ConcurrentPermissions();
-//	int l = perms.length;
-//	for (int i = 0; i < l; i++ ){
-//	    if (perms[i] != null) {
-//		Enumeration<Permission> iter = perms[i].elements();
-//		while ( iter.hasMoreElements() ) {
-//		    Permission element = iter.nextElement();
-//		    pc.add(element);
-//		}
-//	    }
-//	}
-//        return pc;
-//    }
-    
-    /** 
-     * Converts common-purpose homegeneous or heterogeneous PermissionCollection's 
-     * into a hetergeneous PermissionCollection based on ConcurrentPermissions.
-     *
-     * @param perms a PermissionCollection containing arbitrary permissions. Null
-     * is permitted.
-     * @return mutable heterogeneous PermissionCollection containing all Permissions 
-     * from the specified PermissionCollection. An empty PermissionCollection
-     * is returned if parameter is null.
-     */
-    public static PermissionCollection 
-            asConcurrent(PermissionCollection perms) {
-        if (perms instanceof ConcurrentPermissions ) return perms;
-        PermissionCollection pc = new ConcurrentPermissions();
-	if ( perms != null){
-	    Enumeration<Permission> iter = perms.elements();
-	    while ( iter.hasMoreElements() ) {
-		Permission element = iter.nextElement();
-		pc.add(element);
-	    }	
-	}
-        return pc;
-    } 
 
     // Empty set of arguments to default constructor of a Permission.
     private static final Class[] NO_ARGS = {};
@@ -519,7 +470,7 @@ public class PolicyUtils {
      * @throws IllegalArgumentException if no suitable constructor found
      * @throws Exception any exception thrown by Constructor.newInstance()
      */
-    public static Permission instantiatePermission(Class<?> targetType,
+    static Permission instantiatePermission(Class<?> targetType,
             String targetName, String targetActions)
             throws InstantiationException, IllegalAccessException, 
             IllegalArgumentException, InvocationTargetException 

Modified: river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/PrincipalGrant.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/PrincipalGrant.java?rev=1230913&r1=1230912&r2=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/PrincipalGrant.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/PrincipalGrant.java Fri Jan 13 08:17:14 2012
@@ -40,8 +40,6 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
-import net.jini.security.PermissionComparator;
-import org.apache.river.impl.security.policy.util.PolicyUtils;
 
 /**
  *
@@ -54,10 +52,9 @@ class PrincipalGrant implements Permissi
     protected final Set<Principal> pals;
     private final int hashCode;
     private final Set<Permission> perms;
-    private final boolean inverse;
     private final boolean privileged;
     @SuppressWarnings("unchecked")
-    PrincipalGrant(Principal[] pals, Permission[] perm, boolean inverse){
+    PrincipalGrant(Principal[] pals, Permission[] perm){
         if ( pals != null ){
 	    Set<Principal> palCol = new HashSet<Principal>(pals.length);
             palCol.addAll(Arrays.asList(pals));
@@ -97,7 +94,6 @@ class PrincipalGrant implements Permissi
             }
         }
         hashCode = hash;
-        this.inverse = inverse;
     }
     
     @Override
@@ -275,10 +271,6 @@ class PrincipalGrant implements Permissi
         throw new InvalidObjectException("PermissionGrantBuilder required");
     }
 
-    public boolean inverse() {
-        return inverse;
-    }
-
     @Override
     public boolean isPrivileged() {
         return privileged;

Modified: river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/ProtectionDomainGrant.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/ProtectionDomainGrant.java?rev=1230913&r1=1230912&r2=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/ProtectionDomainGrant.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/ProtectionDomainGrant.java Fri Jan 13 08:17:14 2012
@@ -47,7 +47,7 @@ class ProtectionDomainGrant extends Prin
     @SuppressWarnings("unchecked")
     ProtectionDomainGrant(WeakReference<ProtectionDomain> domain, Principal[] groups, 
             Permission[] perm){
-        super(groups, perm, false);
+        super(groups, perm);
         this.domain = domain;
         int hash = 7;
         hash = 13 * hash + (this.domain != null ? this.domain.hashCode() : 0);

Copied: river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/RemotePolicy.java (from r1222835, river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/policy/RemotePolicy.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/RemotePolicy.java?p2=river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/RemotePolicy.java&p1=river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/policy/RemotePolicy.java&r1=1222835&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/policy/RemotePolicy.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/RemotePolicy.java Fri Jan 13 08:17:14 2012
@@ -16,15 +16,12 @@
  * limitations under the License.
  */
 
-package org.apache.river.api.security.policy;
+package org.apache.river.api.security;
 
 import java.io.IOException;
 import net.jini.security.GrantPermission;
 import net.jini.security.policy.UmbrellaGrantPermission;
 import org.apache.river.api.security.PermissionGrant;
-import org.apache.river.impl.security.policy.util.PolicyParser;
-import org.apache.river.impl.security.policy.util.DefaultPolicyParser;
-import org.apache.river.impl.security.policy.util.DefaultPolicyScanner;
 
 /**
  * RemotePolicy is a service implemented by a Policy Provider, that allows

Copied: river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/RevocablePolicy.java (from r1222835, river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/policy/RevokeableDynamicPolicy.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/RevocablePolicy.java?p2=river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/RevocablePolicy.java&p1=river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/policy/RevokeableDynamicPolicy.java&r1=1222835&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/policy/RevokeableDynamicPolicy.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/RevocablePolicy.java Fri Jan 13 08:17:14 2012
@@ -16,21 +16,20 @@
  * limitations under the License.
  */
 
-package org.apache.river.api.security.policy;
+package org.apache.river.api.security;
 
 import java.security.Permission;
 import java.security.Principal;
-import java.util.List;
 import net.jini.security.policy.DynamicPolicy;
 
 /**
  * <p>
- * RevokeableDynamicPolicy, is a Java Security Policy Provider that supports
+ * RevocablePolicy, is a Java Security Policy Provider that supports
  * Runtime Dynamic addition and removal of PermissionGrant's
  * </p><p>
- * Warning: Not all Permission's are truely revokeable, while any Permission can 
- * be dynamically added and later removed from this policy, the majority of JVM Permission's
- * don't prevent references from escaping.
+ * Warning: Not all Permission's are truly revocable, while any Permission can 
+ * be dynamically added and later removed from this policy, many JVM Permission
+ * implementations are used in ways that allow references to escape
  * </p><p>
  * To quote Tim Blackman, from river-dev:
  * </p><p><CITE>
@@ -52,17 +51,12 @@ import net.jini.security.policy.DynamicP
  * has been created for the purpose of encapsulating an existing Permission.
  * </p><p>
  * The ability to revoke a Permission fully is intended for smart proxy's to
- * be given some trust temporarily, so that objects recieved from the smart proxy 
+ * be given some trust temporarily, so that objects received from the smart proxy 
  * by a client cannot be used to continue gathering and sending information to
  * a remote server after the proxy has been discarded.
  * </p><p>
- * A list of Permission's that are revokeable will be provided here.
- * </p><p>
- * TODO: Write some Permission's that are revokeable and delegates
- * for the network and test.
- * </p><p>
- * Note: This feature is currently experimental, it should not be relied upon for any
- * application and may never make release.
+ * A list of standard Java Permission's that are confirmed safely 
+ * revocable will be provided here.
  * </p>
  * @author Peter Firmstone
  * @see java.security.Policy
@@ -74,7 +68,7 @@ import net.jini.security.policy.DynamicP
  * @see PermissionGrant
  * @see DelegatePermission
  */
-public interface RevokeableDynamicPolicy extends DynamicPolicy {
+public interface RevocablePolicy extends DynamicPolicy {
     /**
      * Revoke, removes all DynamicPolicy grants specific to the classLoader of
      * the class passed in.  This is for removing dynamic grant's from proxy's.

Copied: river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/Segment.java (from r1222835, river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/policy/util/Segment.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/Segment.java?p2=river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/Segment.java&p1=river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/policy/util/Segment.java&r1=1222835&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/policy/util/Segment.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/Segment.java Fri Jan 13 08:17:14 2012
@@ -16,14 +16,14 @@
  * limitations under the License.
  */
 
-package org.apache.river.impl.security.policy.util;
+package org.apache.river.api.security;
 
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
-import org.apache.river.impl.security.policy.util.PolicyUtils.ExpansionFailedException;
+import org.apache.river.api.security.PolicyUtils.ExpansionFailedException;
 
 /**
  * Segments form a chain of String parts which represent a framework for
@@ -45,7 +45,7 @@ import org.apache.river.impl.security.po
  * 
  * @author Peter Firmstone.
  */
-public class Segment implements Comparable {
+class Segment implements Comparable {
     private Segment previous;
     private Segment [] divisions;
     private String original;

Modified: river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/URIGrant.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/URIGrant.java?rev=1230913&r1=1230912&r2=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/URIGrant.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/URIGrant.java Fri Jan 13 08:17:14 2012
@@ -33,7 +33,6 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
-import org.apache.river.impl.security.policy.util.PolicyUtils;
 
 /**
  *
@@ -45,8 +44,8 @@ class URIGrant extends CertificateGrant 
     private final int hashCode;
     
     @SuppressWarnings("unchecked")
-    URIGrant(URI[] uri, Certificate[] certs, Principal[] pals, Permission[] perm, boolean inverse ){
-        super( certs, pals, perm, inverse);
+    URIGrant(URI[] uri, Certificate[] certs, Principal[] pals, Permission[] perm){
+        super( certs, pals, perm);
         int l = uri.length;
         Collection<URI> uris = new ArrayList<URI>(l);
         for ( int i = 0; i < l ; i++ ){

Copied: river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/UnresolvedPrincipal.java (from r1222835, river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/policy/util/UnresolvedPrincipal.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/UnresolvedPrincipal.java?p2=river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/UnresolvedPrincipal.java&p1=river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/policy/util/UnresolvedPrincipal.java&r1=1222835&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/policy/util/UnresolvedPrincipal.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/UnresolvedPrincipal.java Fri Jan 13 08:17:14 2012
@@ -20,7 +20,7 @@
 * @version $Revision$
 */
 
-package org.apache.river.impl.security.policy.util;
+package org.apache.river.api.security;
 
 import java.security.Principal;
 
@@ -38,12 +38,12 @@ import java.security.Principal;
  * @see PermissionGrant
  * @see org.apache.river.imp.security.policy.se.ConcurrentPolicyFile
  */
-public final class UnresolvedPrincipal implements Principal {
+final class UnresolvedPrincipal implements Principal {
 
     /** 
      * Wildcard value denotes any class and/or any name. 
      */
-    public static final String WILDCARD = DefaultPolicyScanner.PrincipalEntry.WILDCARD;
+    static final String WILDCARD = DefaultPolicyScanner.PrincipalEntry.WILDCARD;
 
     // Class name
     private final String klass;
@@ -59,7 +59,7 @@ public final class UnresolvedPrincipal i
      * @throws IllegalArgumentException if <code>klass</code> value 
      * is <code>null </code> or is empty string 
      */
-    public UnresolvedPrincipal(String klass, String name) {
+    UnresolvedPrincipal(String klass, String name) {
         if (klass == null || klass.length() == 0) {
             throw new IllegalArgumentException(Messages.getString("security.91")); //$NON-NLS-1$
         }

Copied: river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/Util.java (from r1222835, river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/policy/util/Util.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/Util.java?p2=river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/Util.java&p1=river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/policy/util/Util.java&r1=1222835&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/policy/util/Util.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/security/Util.java Fri Jan 13 08:17:14 2012
@@ -15,20 +15,20 @@
  *  limitations under the License.
  */
 
-package org.apache.river.impl.security.policy.util;
+package org.apache.river.api.security;
 
-public class Util {
+class Util {
 
-    public static String toUpperCase(String s) {
+    static String toUpperCase(String s) {
         return toASCIIUpperCase(s);
     }
 
-    public static boolean equalsIgnoreCase(String s1, String s2) {
+    static boolean equalsIgnoreCase(String s1, String s2) {
         s1 = toASCIIUpperCase(s1);
         s2 = toASCIIUpperCase(s2);
         return s1.equals(s2);
     }
-    public static String toASCIIUpperCase(String s) {
+    static String toASCIIUpperCase(String s) {
         int len = s.length();
         StringBuilder buffer = new StringBuilder(len);
         for (int i = 0; i < len; i++) {

Copied: river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/dos/RemoteExecutor.java (from r1222835, river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/isolate/RemoteExecutor.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/dos/RemoteExecutor.java?p2=river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/dos/RemoteExecutor.java&p1=river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/isolate/RemoteExecutor.java&r1=1222835&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/api/isolate/RemoteExecutor.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/src/org/apache/river/impl/security/dos/RemoteExecutor.java Fri Jan 13 08:17:14 2012
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package org.apache.river.api.isolate;
+package org.apache.river.impl.security.dos;
 
 import java.io.IOException;
 import java.rmi.Remote;

Modified: river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/CodeSourceGrantTest.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/CodeSourceGrantTest.java?rev=1230913&r1=1230912&r2=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/CodeSourceGrantTest.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/CodeSourceGrantTest.java Fri Jan 13 08:17:14 2012
@@ -55,7 +55,7 @@ public class CodeSourceGrantTest {
         gpP = new GrantPermission(rpD);
         rpA = new RuntimePermission("A");
         Permission[] perms = { rpA, gpS };
-        instance = new CodeSourceGrant(null, null, perms, false);
+        instance = new CodeSourceGrant(null, null, perms);
         CodeSource cs = new CodeSource(new URL("file://foo.bar"), (Certificate[]) null);
         pd1 = new ProtectionDomain(cs, null);
        // CodeSource cs = 

Copied: river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/ConcurrentPermissionsTest.java (from r1222835, river/jtsk/skunk/peterConcurrentPolicy/test/src/net/jini/security/ConcurrentPermissionsTest.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/ConcurrentPermissionsTest.java?p2=river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/ConcurrentPermissionsTest.java&p1=river/jtsk/skunk/peterConcurrentPolicy/test/src/net/jini/security/ConcurrentPermissionsTest.java&r1=1222835&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/test/src/net/jini/security/ConcurrentPermissionsTest.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/ConcurrentPermissionsTest.java Fri Jan 13 08:17:14 2012
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package net.jini.security;
+package org.apache.river.api.security;
 
 import java.lang.reflect.ReflectPermission;
 import java.net.NetPermission;
@@ -30,6 +30,8 @@ import java.util.List;
 import java.util.PropertyPermission;
 import java.util.logging.LoggingPermission;
 import net.jini.security.AccessPermission;
+import net.jini.security.AccessPermission;
+import net.jini.security.AuthenticationPermission;
 import net.jini.security.AuthenticationPermission;
 import org.junit.After;
 import org.junit.AfterClass;

Copied: river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/ConcurrentPolicyFileTest.java (from r1222835, river/jtsk/skunk/peterConcurrentPolicy/test/src/net/jini/security/policy/ConcurrentPolicyFileTest.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/ConcurrentPolicyFileTest.java?p2=river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/ConcurrentPolicyFileTest.java&p1=river/jtsk/skunk/peterConcurrentPolicy/test/src/net/jini/security/policy/ConcurrentPolicyFileTest.java&r1=1222835&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/test/src/net/jini/security/policy/ConcurrentPolicyFileTest.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/ConcurrentPolicyFileTest.java Fri Jan 13 08:17:14 2012
@@ -20,7 +20,7 @@
 * @version $Revision$
 */
 
-package net.jini.security.policy;
+package org.apache.river.api.security;
 
 import tests.support.FakePrincipal;
 import java.net.URL;
@@ -34,11 +34,8 @@ import java.security.SecurityPermission;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Properties;
-import org.apache.river.impl.security.policy.util.UnresolvedPrincipal;
-import org.apache.river.impl.security.policy.util.DefaultPolicyParser;
 import junit.framework.TestCase;
-import org.apache.river.api.security.PermissionGrant;
-import org.apache.river.api.security.PermissionGrantBuilder;
+import net.jini.security.policy.PolicyInitializationException;
 
 
 /**
@@ -81,7 +78,7 @@ public class ConcurrentPolicyFileTest ex
                .build()
         };
         TestParser tp = new TestParser(pe);
-        ConcurrentPolicyFile policy = new ConcurrentPolicyFile(tp);
+        ConcurrentPolicyFile policy = new ConcurrentPolicyFile(tp, new PermissionComparator());
         CodeSource cs = new CodeSource(null, (Certificate[])null);
         assertTrue(policy.getPermissions(cs).implies(sp));
 
@@ -99,7 +96,7 @@ public class ConcurrentPolicyFileTest ex
      */
     public void testRefresh_Failure() throws PolicyInitializationException {
         CodeSource cs = new CodeSource(null, (Certificate[])null);
-        ConcurrentPolicyFile policy = new ConcurrentPolicyFile(new TestParser(null));
+        ConcurrentPolicyFile policy = new ConcurrentPolicyFile(new TestParser(null), new PermissionComparator());
         policy.refresh();
         assertFalse(policy.getPermissions(cs).elements().hasMoreElements());
     }
@@ -129,7 +126,7 @@ public class ConcurrentPolicyFileTest ex
                 .permissions(new Permission[] { sp3 })
                         .build();
         PermissionGrant[] peArray = new PermissionGrant[] { pe1, pe2, pe3};
-        ConcurrentPolicyFile policy = new ConcurrentPolicyFile(new TestParser(peArray));
+        ConcurrentPolicyFile policy = new ConcurrentPolicyFile(new TestParser(peArray), new PermissionComparator());
 
         assertTrue(policy.getPermissions(cs).implies(sp1));
         assertFalse(policy.getPermissions(cs).implies(sp2));
@@ -181,7 +178,7 @@ public class ConcurrentPolicyFileTest ex
                 .build();
         PermissionGrant[] peArray = new PermissionGrant[]{
             pe1, pe2, pe3, pe4 };
-        ConcurrentPolicyFile policy = new ConcurrentPolicyFile(new TestParser(peArray));
+        ConcurrentPolicyFile policy = new ConcurrentPolicyFile(new TestParser(peArray), new PermissionComparator());
 
         assertTrue(policy.getPermissions(pd1).implies(sp1));
         assertFalse(policy.getPermissions(pd1).implies(sp2));

Copied: river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/DefaultPolicyParserTest.java (from r1229137, river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/impl/security/policy/util/DefaultPolicyParserTest.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/DefaultPolicyParserTest.java?p2=river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/DefaultPolicyParserTest.java&p1=river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/impl/security/policy/util/DefaultPolicyParserTest.java&r1=1229137&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/impl/security/policy/util/DefaultPolicyParserTest.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/DefaultPolicyParserTest.java Fri Jan 13 08:17:14 2012
@@ -20,7 +20,7 @@
 * @version $Revision$
 */
 
-package org.apache.river.impl.security.policy.util;
+package org.apache.river.api.security;
 
 import com.sun.jini.start.SharedActivationPolicyPermission;
 import java.net.URISyntaxException;
@@ -45,11 +45,10 @@ import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import junit.framework.TestCase;
+import org.apache.river.api.security.DefaultPolicyScanner.GrantEntry;
+import org.apache.river.api.security.DefaultPolicyScanner.PermissionEntry;
 import org.apache.river.api.security.PermissionGrant;
 import org.apache.river.api.security.PermissionGrantBuilder;
-import org.apache.river.impl.security.policy.util.DefaultPolicyScanner.GrantEntry;
-import org.apache.river.impl.security.policy.util.DefaultPolicyScanner.KeystoreEntry;
-import org.apache.river.impl.security.policy.util.DefaultPolicyScanner.PermissionEntry;
 import org.junit.Before;
 import org.junit.Test;
 

Copied: river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PermissionCollectionTest.java (from r1222835, river/jtsk/skunk/peterConcurrentPolicy/test/src/net/jini/security/policy/PermissionCollectionTest.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PermissionCollectionTest.java?p2=river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PermissionCollectionTest.java&p1=river/jtsk/skunk/peterConcurrentPolicy/test/src/net/jini/security/policy/PermissionCollectionTest.java&r1=1222835&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/test/src/net/jini/security/policy/PermissionCollectionTest.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PermissionCollectionTest.java Fri Jan 13 08:17:14 2012
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package net.jini.security.policy;
+package org.apache.river.api.security;
 
 import java.io.File;
 import java.io.FileOutputStream;

Modified: river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PermissionGrantTest.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PermissionGrantTest.java?rev=1230913&r1=1230912&r2=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PermissionGrantTest.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PermissionGrantTest.java Fri Jan 13 08:17:14 2012
@@ -19,6 +19,7 @@
 package org.apache.river.api.security;
 
 import java.net.MalformedURLException;
+import java.net.URISyntaxException;
 import org.junit.Test;
 import org.junit.After;
 import org.junit.Before;
@@ -54,7 +55,7 @@ public class PermissionGrantTest {
     }
     
     @Before
-    public void setUp() throws MalformedURLException {
+    public void setUp() throws MalformedURLException, URISyntaxException {
 	try {
 	    cf = CertificateFactory.getInstance("X.509");
 	} catch ( CertificateException e) {

Copied: river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/Permissions_ImplTest.java (from r1222835, river/jtsk/skunk/peterConcurrentPolicy/test/src/net/jini/security/Permissions_ImplTest.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/Permissions_ImplTest.java?p2=river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/Permissions_ImplTest.java&p1=river/jtsk/skunk/peterConcurrentPolicy/test/src/net/jini/security/Permissions_ImplTest.java&r1=1222835&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/test/src/net/jini/security/Permissions_ImplTest.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/Permissions_ImplTest.java Fri Jan 13 08:17:14 2012
@@ -20,7 +20,7 @@
 * @version $Revision$
 */
 
-package net.jini.security;
+package org.apache.river.api.security;
 import java.security.AllPermission;
 import java.security.BasicPermission;
 import java.security.Permission;

Copied: river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PolicyEntryTest.java (from r1222835, river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/impl/security/policy/util/PolicyEntryTest.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PolicyEntryTest.java?p2=river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PolicyEntryTest.java&p1=river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/impl/security/policy/util/PolicyEntryTest.java&r1=1222835&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/impl/security/policy/util/PolicyEntryTest.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PolicyEntryTest.java Fri Jan 13 08:17:14 2012
@@ -20,24 +20,17 @@
 * @version $Revision$
 */
 
-package org.apache.river.impl.security.policy.util;
+package org.apache.river.api.security;
 
-import org.apache.river.impl.security.policy.util.UnresolvedPrincipal;
-import java.net.URL;
 import java.security.cert.Certificate;
 import java.security.AllPermission;
 import java.security.CodeSource;
 import java.security.Permission;
 import java.security.Principal;
 import java.security.SecurityPermission;
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
 
 import junit.framework.TestCase;
-import org.apache.river.api.security.PermissionGrant;
-import org.apache.river.api.security.PermissionGrantBuilder;
 
 
 /**
@@ -87,7 +80,7 @@ public class PolicyEntryTest extends Tes
      */
     public void testImpliesPrincipals() {
         PermissionGrantBuilder pgb = PermissionGrantBuilder.newBuilder();
-        PermissionGrant pe = pgb.context(PermissionGrantBuilder.CODESOURCE).build(); // Everything set to null;
+        PermissionGrant pe = pgb.context(PermissionGrantBuilder.URI).build(); // Everything set to null;
         
 //        PolicyEntry pe =
 //            new PolicyEntry((CodeSource) null, (Collection<Principal>) null,

Copied: river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PolicyUtilsTest.java (from r1222835, river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/impl/security/policy/util/PolicyUtilsTest.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PolicyUtilsTest.java?p2=river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PolicyUtilsTest.java&p1=river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/impl/security/policy/util/PolicyUtilsTest.java&r1=1222835&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/impl/security/policy/util/PolicyUtilsTest.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PolicyUtilsTest.java Fri Jan 13 08:17:14 2012
@@ -20,9 +20,8 @@
 * @version $Revision$
 */
 
-package org.apache.river.impl.security.policy.util;
+package org.apache.river.api.security;
 
-import org.apache.river.impl.security.policy.util.PolicyUtils;
 import java.io.File;
 import java.net.URL;
 import java.security.AllPermission;

Modified: river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PrincipalGrantTest.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PrincipalGrantTest.java?rev=1230913&r1=1230912&r2=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PrincipalGrantTest.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/PrincipalGrantTest.java Fri Jan 13 08:17:14 2012
@@ -69,7 +69,7 @@ public class PrincipalGrantTest {
         perms = new Permission[2];
         perms[0] = perm1;
         perms[1] = perm2;
-        instance = new PrincipalGrant(pals,perms, false);
+        instance = new PrincipalGrant(pals,perms);
     }
 
     /**

Copied: river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/SegmentTest.java (from r1222835, river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/impl/security/policy/util/SegmentTest.java)
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/SegmentTest.java?p2=river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/SegmentTest.java&p1=river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/impl/security/policy/util/SegmentTest.java&r1=1222835&r2=1230913&rev=1230913&view=diff
==============================================================================
--- river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/impl/security/policy/util/SegmentTest.java (original)
+++ river/jtsk/skunk/peterConcurrentPolicy/test/src/org/apache/river/api/security/SegmentTest.java Fri Jan 13 08:17:14 2012
@@ -16,12 +16,12 @@
  * limitations under the License.
  */
 
-package org.apache.river.impl.security.policy.util;
+package org.apache.river.api.security;
 
+import org.apache.river.api.security.PolicyUtils.ExpansionFailedException;
 import java.util.List;
 import java.util.Collection;
 import java.util.Properties;
-import org.apache.river.impl.security.policy.util.PolicyUtils.ExpansionFailedException;
 import org.junit.Before;
 import org.junit.Test;
 import static org.junit.Assert.*;