Modified: 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EntryClass.java
URL: 
http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EntryClass.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EntryClass.java
 (original)
+++ 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EntryClass.java
 Sun Jul  5 11:41:39 2020
@@ -1,286 +1,286 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.river.reggie;
-
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.InvalidObjectException;
-import java.io.ObjectInputStream;
-import java.io.Serializable;
-import java.rmi.MarshalException;
-import java.rmi.UnmarshalException;
-import java.security.DigestOutputStream;
-import java.security.MessageDigest;
-import org.apache.river.proxy.CodebaseProvider;
-import org.apache.river.proxy.MarshalledWrapper;
-
-/**
- * An EntryClass is a descriptor for an entry class, packaged up for
- * transmission between client-side proxies and the registrar server.
- * Instances are never visible to clients, they are private to the
- * communication between the proxies and the server.  Note that we don't
- * transmit information about interfaces implemented by the class, because it
- * isn't necessary given the specific use of type information for entries.
- * <p>
- * This class only has a bare minimum of methods, to minimize
- * the amount of code downloaded into clients.
- * <p>
- *
- * @author Sun Microsystems, Inc.
- *
- * @see ClassMapper
- */
-class EntryClass implements Serializable {
-
-    private static final long serialVersionUID = 2L;
-
-    /**
-     * Class name
-     *
-     * @serial
-     */
-    protected String name;
-    /**
-     * Hash for the type
-     *
-     * @serial
-     */
-    protected long hash;
-    /**
-     * Descriptor for the superclass
-     *
-     * @serial
-     */
-    protected EntryClass superclass;
-    /**
-     * Number of public fields
-     *
-     * @serial
-     */
-    protected int numFields;
-    /** Number of instances of this class in service registrations */
-    protected transient int numInstances;
-    /** Number of templates of this class in event registrations */
-    protected transient int numTemplates;
-    /**
-     * An instance containing only name and hash, no superclass info.
-     * This is only used on the registrar side, to minimize the amount
-     * of info transmitted back to clients.
-     */
-    protected transient EntryClass replacement;
-    /** 
-     * Flag set to true if this instance was unmarshalled from an
-     * integrity-protected stream, or false otherwise
-     */
-    private transient boolean integrity = false;
-
-    /** Should only be called by ClassMapper */
-    public EntryClass(Class clazz, EntryClass superclass)
-       throws MarshalException
-    {
-       name = clazz.getName();
-       this.superclass = superclass;
-       ClassMapper.EntryField[] fields = ClassMapper.getFields(clazz);
-       numFields = fields.length;
-       computeHash(fields);
-    }
-
-    /**
-     * Constructor used for creating replacement instances,
-     * containing only name and hash.
-     */
-    private EntryClass(EntryClass orig) {
-       name = orig.name;
-       hash = orig.hash;
-    }
-
-    /** Return the superclass descriptor */
-    public EntryClass getSuperclass() {
-       return superclass;
-    }
-
-    /** Return the number of public fields (including superclasses) */
-    public int getNumFields() {
-       return numFields;
-    }
-
-    /** Set the number of instances of this class */
-    public void setNumInstances(int numInstances) {
-       this.numInstances = numInstances;
-    }
-
-    /** Set the number of templates of this class */
-    public void setNumTemplates(int numTemplates) {
-       this.numTemplates = numTemplates;
-    }
-
-    /** Return the replacement, if any, containing only name and rep. */
-    public synchronized EntryClass getReplacement() {
-       if (replacement == null)
-           replacement = new EntryClass(this);
-       return replacement;
-    }
-
-    /**
-     * This is really only needed in the registrar, but it's very
-     * convenient to have here.
-     * @see Class#isAssignableFrom
-     */
-    public boolean isAssignableFrom(EntryClass cls) {
-       for (EntryClass sup = cls; sup != null; sup = sup.superclass) {
-           if (hash == sup.hash)
-               return true;
-       }
-       return false;
-    }
-
-    /**
-     * Returns the number of times this type is used in service
-     * registrations
-     * @return number of instances of this type in use in service
-     * registrations
-     */
-    public int getNumInstances() {
-       return numInstances;
-    }
-
-    /**
-     * Returns the number of times this type is used in event
-     * registrations
-     * @return number of times this type is used in event registrations
-     */
-    public int getNumTemplates() {
-       return numTemplates;
-    }
-
-    // Converts this type descriptor to a Class object
-    public Class toClass(String codebase)
-       throws IOException, ClassNotFoundException
-    {
-       Class cls = 
-           CodebaseProvider.loadClass(codebase, name, null, integrity, null);
-       EntryClass local;
-       try {
-           local = ClassMapper.toEntryClassBase(cls).eclass;
-       } catch (MarshalException e) {
-           throw new UnmarshalException("problem obtaining local version of "
-                                        + toString(), e);
-       }
-       if (hash != local.hash)
-           throw new UnmarshalException("incoming entry type: " + toString()
-                                        + " is not assignable to the local"
-                                        + " version of the type: " + local);
-       return cls;
-    }
-
-    /**
-     * Returns the name of this type
-     * @return the name of this type
-     */
-    public String getName() {
-       return name;
-    }
-
-    /**
-     * Returns true if the object passed in is an instance of EntryClass
-     * with the same type hash as this object.  Returns false otherwise.
-     * @param o object to compare this object against
-     * @return true if this object equals the object passed in; false
-     * otherwise.
-     */
-    public boolean equals(Object o) {
-       if (this == o) return true;
-       if (!(o instanceof EntryClass))
-           return false;
-       EntryClass t = (EntryClass) o;
-       return hash == t.hash;
-    }
-
-    /**
-     * Return a hashcode for this type.
-     * @return int the hashcode for this type
-     */
-    public int hashCode() {
-       return (int) (hash ^ (hash >>> 32));
-    }
-
-    /* Inherit javadoc */
-    public String toString() {
-       return getClass() + "[name=" + getName() + ", hash=" + hash + "]";
-    }
-    
-    /**
-     * Computes a SHA-1 digest from the hash of the superclass, if there
-     * is a superclass, followed by the name of this class, followed by
-     * the name and type for each field, if any, declared by this class and
-     * ordered alphabetically by field name.  The first 8 bytes of the digest
-     * are used to form the 64-bit hash value for this type.
-     */
-    private void computeHash(ClassMapper.EntryField[] fields) 
-       throws MarshalException 
-    {
-       hash = 0;
-       try {
-           MessageDigest md = MessageDigest.getInstance("SHA");
-           DataOutputStream out = new DataOutputStream(
-               new DigestOutputStream(new ByteArrayOutputStream(127),md));
-           if (superclass != null)
-               out.writeLong(superclass.hash);
-           out.writeUTF(name);
-           int startDeclaredFields = superclass != null ? 
-               superclass.numFields : 0;
-           for (int i = startDeclaredFields; i < fields.length; i++) {
-               out.writeUTF(fields[i].field.getName());
-               out.writeUTF(fields[i].field.getType().getName());
-           }
-           out.flush();
-           byte[] digest = md.digest();
-           for (int i = Math.min(8, digest.length); --i >= 0; ) {
-               hash += ((long) (digest[i] & 0xFF)) << (i * 8);
-           }
-       } catch (Exception e) {
-           throw new MarshalException("Unable to calculate type hash for "
-                                      + name, e);
-       }
-    }
-
-    /**
-     * Samples integrity protection setting (if any) of the stream from which
-     * this instance is being deserialized and checks that valid values
-     * for this object have been read from the stream.
-     */
-    private void readObject(ObjectInputStream in)
-       throws IOException, ClassNotFoundException
-    {
-       in.defaultReadObject();
-       if (name == null)
-           throw new InvalidObjectException("name cannot be null");
-       if (hash == 0)
-           throw new InvalidObjectException("hash cannot be zero");
-       integrity = MarshalledWrapper.integrityEnforced(in);
-    }
-
-    /**
-     * Throws InvalidObjectException, since data for this class is required.
-     */
-    private void readObjectNoData() throws InvalidObjectException {
-       throw new InvalidObjectException("no data");
-    }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.river.reggie.proxy;
+
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InvalidObjectException;
+import java.io.ObjectInputStream;
+import java.io.Serializable;
+import java.rmi.MarshalException;
+import java.rmi.UnmarshalException;
+import java.security.DigestOutputStream;
+import java.security.MessageDigest;
+import org.apache.river.proxy.CodebaseProvider;
+import org.apache.river.proxy.MarshalledWrapper;
+
+/**
+ * An EntryClass is a descriptor for an entry class, packaged up for
+ * transmission between client-side proxies and the registrar server.
+ * Instances are never visible to clients, they are private to the
+ * communication between the proxies and the server.  Note that we don't
+ * transmit information about interfaces implemented by the class, because it
+ * isn't necessary given the specific use of type information for entries.
+ * <p>
+ * This class only has a bare minimum of methods, to minimize
+ * the amount of code downloaded into clients.
+ * <p>
+ *
+ * @author Sun Microsystems, Inc.
+ *
+ * @see ClassMapper
+ */
+public class EntryClass implements Serializable {
+
+    private static final long serialVersionUID = 2L;
+
+    /**
+     * Class name
+     *
+     * @serial
+     */
+    protected String name;
+    /**
+     * Hash for the type
+     *
+     * @serial
+     */
+    protected long hash;
+    /**
+     * Descriptor for the superclass
+     *
+     * @serial
+     */
+    protected EntryClass superclass;
+    /**
+     * Number of public fields
+     *
+     * @serial
+     */
+    protected int numFields;
+    /** Number of instances of this class in service registrations */
+    protected transient int numInstances;
+    /** Number of templates of this class in event registrations */
+    protected transient int numTemplates;
+    /**
+     * An instance containing only name and hash, no superclass info.
+     * This is only used on the registrar side, to minimize the amount
+     * of info transmitted back to clients.
+     */
+    protected transient EntryClass replacement;
+    /** 
+     * Flag set to true if this instance was unmarshalled from an
+     * integrity-protected stream, or false otherwise
+     */
+    private transient boolean integrity = false;
+
+    /** Should only be called by ClassMapper */
+    public EntryClass(Class clazz, EntryClass superclass)
+       throws MarshalException
+    {
+       name = clazz.getName();
+       this.superclass = superclass;
+       ClassMapper.EntryField[] fields = ClassMapper.getFields(clazz);
+       numFields = fields.length;
+       computeHash(fields);
+    }
+
+    /**
+     * Constructor used for creating replacement instances,
+     * containing only name and hash.
+     */
+    private EntryClass(EntryClass orig) {
+       name = orig.name;
+       hash = orig.hash;
+    }
+
+    /** Return the superclass descriptor */
+    public EntryClass getSuperclass() {
+       return superclass;
+    }
+
+    /** Return the number of public fields (including superclasses) */
+    public int getNumFields() {
+       return numFields;
+    }
+
+    /** Set the number of instances of this class */
+    public void setNumInstances(int numInstances) {
+       this.numInstances = numInstances;
+    }
+
+    /** Set the number of templates of this class */
+    public void setNumTemplates(int numTemplates) {
+       this.numTemplates = numTemplates;
+    }
+
+    /** Return the replacement, if any, containing only name and rep. */
+    public synchronized EntryClass getReplacement() {
+       if (replacement == null)
+           replacement = new EntryClass(this);
+       return replacement;
+    }
+
+    /**
+     * This is really only needed in the registrar, but it's very
+     * convenient to have here.
+     * @see Class#isAssignableFrom
+     */
+    public boolean isAssignableFrom(EntryClass cls) {
+       for (EntryClass sup = cls; sup != null; sup = sup.superclass) {
+           if (hash == sup.hash)
+               return true;
+       }
+       return false;
+    }
+
+    /**
+     * Returns the number of times this type is used in service
+     * registrations
+     * @return number of instances of this type in use in service
+     * registrations
+     */
+    public int getNumInstances() {
+       return numInstances;
+    }
+
+    /**
+     * Returns the number of times this type is used in event
+     * registrations
+     * @return number of times this type is used in event registrations
+     */
+    public int getNumTemplates() {
+       return numTemplates;
+    }
+
+    // Converts this type descriptor to a Class object
+    public Class toClass(String codebase)
+       throws IOException, ClassNotFoundException
+    {
+       Class cls = 
+           CodebaseProvider.loadClass(codebase, name, null, integrity, null);
+       EntryClass local;
+       try {
+           local = ClassMapper.toEntryClassBase(cls).eclass;
+       } catch (MarshalException e) {
+           throw new UnmarshalException("problem obtaining local version of "
+                                        + toString(), e);
+       }
+       if (hash != local.hash)
+           throw new UnmarshalException("incoming entry type: " + toString()
+                                        + " is not assignable to the local"
+                                        + " version of the type: " + local);
+       return cls;
+    }
+
+    /**
+     * Returns the name of this type
+     * @return the name of this type
+     */
+    public String getName() {
+       return name;
+    }
+
+    /**
+     * Returns true if the object passed in is an instance of EntryClass
+     * with the same type hash as this object.  Returns false otherwise.
+     * @param o object to compare this object against
+     * @return true if this object equals the object passed in; false
+     * otherwise.
+     */
+    public boolean equals(Object o) {
+       if (this == o) return true;
+       if (!(o instanceof EntryClass))
+           return false;
+       EntryClass t = (EntryClass) o;
+       return hash == t.hash;
+    }
+
+    /**
+     * Return a hashcode for this type.
+     * @return int the hashcode for this type
+     */
+    public int hashCode() {
+       return (int) (hash ^ (hash >>> 32));
+    }
+
+    /* Inherit javadoc */
+    public String toString() {
+       return getClass() + "[name=" + getName() + ", hash=" + hash + "]";
+    }
+    
+    /**
+     * Computes a SHA-1 digest from the hash of the superclass, if there
+     * is a superclass, followed by the name of this class, followed by
+     * the name and type for each field, if any, declared by this class and
+     * ordered alphabetically by field name.  The first 8 bytes of the digest
+     * are used to form the 64-bit hash value for this type.
+     */
+    private void computeHash(ClassMapper.EntryField[] fields) 
+       throws MarshalException 
+    {
+       hash = 0;
+       try {
+           MessageDigest md = MessageDigest.getInstance("SHA");
+           DataOutputStream out = new DataOutputStream(
+               new DigestOutputStream(new ByteArrayOutputStream(127),md));
+           if (superclass != null)
+               out.writeLong(superclass.hash);
+           out.writeUTF(name);
+           int startDeclaredFields = superclass != null ? 
+               superclass.numFields : 0;
+           for (int i = startDeclaredFields; i < fields.length; i++) {
+               out.writeUTF(fields[i].field.getName());
+               out.writeUTF(fields[i].field.getType().getName());
+           }
+           out.flush();
+           byte[] digest = md.digest();
+           for (int i = Math.min(8, digest.length); --i >= 0; ) {
+               hash += ((long) (digest[i] & 0xFF)) << (i * 8);
+           }
+       } catch (Exception e) {
+           throw new MarshalException("Unable to calculate type hash for "
+                                      + name, e);
+       }
+    }
+
+    /**
+     * Samples integrity protection setting (if any) of the stream from which
+     * this instance is being deserialized and checks that valid values
+     * for this object have been read from the stream.
+     */
+    private void readObject(ObjectInputStream in)
+       throws IOException, ClassNotFoundException
+    {
+       in.defaultReadObject();
+       if (name == null)
+           throw new InvalidObjectException("name cannot be null");
+       if (hash == 0)
+           throw new InvalidObjectException("hash cannot be zero");
+       integrity = MarshalledWrapper.integrityEnforced(in);
+    }
+
+    /**
+     * Throws InvalidObjectException, since data for this class is required.
+     */
+    private void readObjectNoData() throws InvalidObjectException {
+       throw new InvalidObjectException("no data");
+    }
+
+}

Modified: 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EntryClassBase.java
URL: 
http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EntryClassBase.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EntryClassBase.java
 (original)
+++ 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EntryClassBase.java
 Sun Jul  5 11:41:39 2020
@@ -1,77 +1,77 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.river.reggie;
-
-import java.io.Serializable;
-import org.apache.river.proxy.CodebaseProvider;
-
-/**
- * An EntryClass annotated with a codebase.
- *
- * @author Sun Microsystems, Inc.
- *
- */
-class EntryClassBase implements Serializable {
-
-    private static final long serialVersionUID = 2L;
-
-    /**
-     * The EntryClass.
-     *
-     * @serial
-     */
-    public final EntryClass eclass;
-    /**
-     * The codebase.
-     *
-     * @serial
-     */
-    public String codebase;
-
-    /** Simple constructor */
-    public EntryClassBase(EntryClass eclass, String codebase) {
-       this.eclass = eclass;
-       this.codebase = codebase;
-    }
-
-    /** Sets the codebase to the codebase of the given class. */
-    public void setCodebase(Class cls) {
-       codebase = CodebaseProvider.getClassAnnotation(cls);
-    }
-
-    /**
-     * Converts an array of EntryClassBase to an array of Class.  If a
-     * class cannot be loaded, it is left as null.
-     */
-    public static Class[] toClass(EntryClassBase[] eclasses)
-    {
-       Class[] classes = null;
-       if (eclasses != null) {
-           classes = new Class[eclasses.length];
-           for (int i = eclasses.length; --i >= 0; ) {
-               try {
-                   EntryClassBase eclass = eclasses[i];
-                   classes[i] = eclass.eclass.toClass(eclass.codebase);
-               } catch (Throwable e) {
-                   RegistrarProxy.handleException(e);
-               }
-           }
-       }
-       return classes;
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.river.reggie.proxy;
+
+import java.io.Serializable;
+import org.apache.river.proxy.CodebaseProvider;
+
+/**
+ * An EntryClass annotated with a codebase.
+ *
+ * @author Sun Microsystems, Inc.
+ *
+ */
+public class EntryClassBase implements Serializable {
+
+    private static final long serialVersionUID = 2L;
+
+    /**
+     * The EntryClass.
+     *
+     * @serial
+     */
+    public final EntryClass eclass;
+    /**
+     * The codebase.
+     *
+     * @serial
+     */
+    public String codebase;
+
+    /** Simple constructor */
+    public EntryClassBase(EntryClass eclass, String codebase) {
+       this.eclass = eclass;
+       this.codebase = codebase;
+    }
+
+    /** Sets the codebase to the codebase of the given class. */
+    public void setCodebase(Class cls) {
+       codebase = CodebaseProvider.getClassAnnotation(cls);
+    }
+
+    /**
+     * Converts an array of EntryClassBase to an array of Class.  If a
+     * class cannot be loaded, it is left as null.
+     */
+    public static Class[] toClass(EntryClassBase[] eclasses)
+    {
+       Class[] classes = null;
+       if (eclasses != null) {
+           classes = new Class[eclasses.length];
+           for (int i = eclasses.length; --i >= 0; ) {
+               try {
+                   EntryClassBase eclass = eclasses[i];
+                   classes[i] = eclass.eclass.toClass(eclass.codebase);
+               } catch (Throwable e) {
+                   RegistrarProxy.handleException(e);
+               }
+           }
+       }
+       return classes;
+    }
+}

Modified: 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EntryRep.java
URL: 
http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EntryRep.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EntryRep.java
 (original)
+++ 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EntryRep.java
 Sun Jul  5 11:41:39 2020
@@ -1,207 +1,207 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.river.reggie;
-
-import org.apache.river.proxy.MarshalledWrapper;
-import org.apache.river.reggie.ClassMapper.EntryField;
-import java.io.IOException;
-import java.io.Serializable;
-import java.lang.reflect.Field;
-import java.rmi.MarshalException;
-import java.rmi.RemoteException;
-import net.jini.core.entry.Entry;
-
-/**
- * An EntryRep contains the fields of an Entry packaged up for
- * transmission between client-side proxies and the registrar server.
- * Instances are never visible to clients, they are private to the
- * communication between the proxies and the server.
- * <p>
- * This class only has a bare minimum of methods, to minimize
- * the amount of code downloaded into clients.
- *
- * @author Sun Microsystems, Inc.
- *
- */
-class EntryRep implements Serializable, Cloneable {
-
-    private static final long serialVersionUID = 2L;
-
-    /**
-     * The Class of the Entry converted to EntryClass.
-     *
-     * @serial
-     */
-    public EntryClass eclass;
-    /**
-     * The codebase of the entry class.
-     * 
-     * @serial
-     */
-    public String codebase;
-    /**
-     * The public fields of the Entry, each converted as necessary to
-     * a MarshalledWrapper (or left as is if of known java.lang immutable
-     * type).  The fields are in super- to subclass order.
-     *
-     * @serial
-     */
-    public Object[] fields;
-
-    /**
-     * Converts an Entry to an EntryRep.  Any exception that results
-     * is bundled up into a MarshalException.
-     */
-    public EntryRep(Entry entry) throws RemoteException {
-       EntryClassBase ecb = ClassMapper.toEntryClassBase(entry.getClass());
-       eclass = ecb.eclass;
-       codebase = ecb.codebase;
-       try {
-           EntryField[] efields = ClassMapper.getFields(entry.getClass());
-           fields = new Object[efields.length];
-           for (int i = efields.length; --i >= 0; ) {
-               EntryField f = efields[i];
-               Object val = f.field.get(entry);
-               if (f.marshal && val != null)
-                   val = new MarshalledWrapper(val);
-               fields[i] = val;
-           }
-       } catch (IOException e) {
-           throw new MarshalException("error marshalling arguments", e);
-       } catch (IllegalAccessException e) {
-           throw new MarshalException("error marshalling arguments", e);
-       }
-    }
-
-    /**
-     * Convert back to an Entry.  If the Entry cannot be constructed,
-     * null is returned.  If a field cannot be unmarshalled, it is set
-     * to null.
-     */
-    public Entry get() {
-       try {
-           Class clazz = eclass.toClass(codebase);
-           EntryField[] efields = ClassMapper.getFields(clazz);
-           Entry entry = (Entry)clazz.newInstance();
-           for (int i = efields.length; --i >= 0; ) {
-               Object val = fields[i];
-               EntryField f = efields[i];
-               Field rf = f.field;
-               try {
-                   if (f.marshal && val != null)
-                       val = ((MarshalledWrapper) val).get();
-                   rf.set(entry, val);
-               } catch (Throwable e) {
-                   if (e instanceof IllegalArgumentException) {
-                       // fix 4872566: work around empty exception message
-                       String msg = "unable to assign " +
-                           ((val != null) ?
-                               "value of type " + val.getClass().getName() :
-                               "null") +
-                           " to field " + rf.getDeclaringClass().getName() +
-                           "." + rf.getName() + " of type " +
-                           rf.getType().getName();
-                       e = new ClassCastException(msg).initCause(e);
-                   }
-                   RegistrarProxy.handleException(e);
-               }
-           }
-           return entry;
-       } catch (Throwable e) {
-           RegistrarProxy.handleException(e);
-       }
-       return null;
-    }
-
-    /**
-     * We don't need this in the client or the server, but since we
-     * redefine equals we provide a minimal hashCode that works.
-     */
-    public int hashCode() {
-       return eclass.hashCode();
-    }
-
-    /**
-     * EntryReps are equal if they have the same class and the fields
-     * are pairwise equal.  This is really only needed in the server,
-     * but it's very convenient to have here.
-     */
-    public boolean equals(Object obj) {
-       if (obj instanceof EntryRep) {
-           EntryRep entry = (EntryRep)obj;
-           if (!eclass.equals(entry.eclass) ||
-               fields.length != entry.fields.length)
-               return false;
-           for (int i = fields.length; --i >= 0; ) {
-               if ((fields[i] == null && entry.fields[i] != null) ||
-                   (fields[i] != null && !fields[i].equals(entry.fields[i])))
-                   return false;
-           }       
-           return true;
-       }
-       return false;
-    }
-
-    /**
-     * Deep clone (which just means cloning the fields array too).
-     * This is really only needed in the server, but it's very
-     * convenient to have here.
-     */
-    public Object clone() {
-       try { 
-           EntryRep entry = (EntryRep)super.clone();
-           entry.fields = (Object[])entry.fields.clone();
-           return entry;
-       } catch (CloneNotSupportedException e) { 
-           throw new InternalError();
-       }
-    }
-
-    /**
-     * Converts an array of Entry to an array of EntryRep.  If needCodebase
-     * is false, then the codebase of every EntryRep will be null.
-     */
-    public static EntryRep[] toEntryRep(Entry[] entries, boolean needCodebase)
-       throws RemoteException
-    {
-       EntryRep[] reps = null;
-       if (entries != null) {
-           reps = new EntryRep[entries.length];
-           for (int i = entries.length; --i >= 0; ) {
-               if (entries[i] != null) {
-                   reps[i] = new EntryRep(entries[i]);
-                   if (!needCodebase)
-                       reps[i].codebase = null;
-               }
-           }
-       }
-       return reps;
-    }
-
-    /** Converts an array of EntryRep to an array of Entry. */
-    public static Entry[] toEntry(EntryRep[] reps) {
-       Entry[] entries = null;
-       if (reps != null) {
-           entries = new Entry[reps.length];
-           for (int i = reps.length; --i >= 0; ) {
-               entries[i] = reps[i].get();
-           }
-       }
-       return entries;
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.river.reggie.proxy;
+
+import org.apache.river.proxy.MarshalledWrapper;
+import org.apache.river.reggie.proxy.ClassMapper.EntryField;
+import java.io.IOException;
+import java.io.Serializable;
+import java.lang.reflect.Field;
+import java.rmi.MarshalException;
+import java.rmi.RemoteException;
+import net.jini.core.entry.Entry;
+
+/**
+ * An EntryRep contains the fields of an Entry packaged up for
+ * transmission between client-side proxies and the registrar server.
+ * Instances are never visible to clients, they are private to the
+ * communication between the proxies and the server.
+ * <p>
+ * This class only has a bare minimum of methods, to minimize
+ * the amount of code downloaded into clients.
+ *
+ * @author Sun Microsystems, Inc.
+ *
+ */
+public class EntryRep implements Serializable, Cloneable {
+
+    private static final long serialVersionUID = 2L;
+
+    /**
+     * The Class of the Entry converted to EntryClass.
+     *
+     * @serial
+     */
+    public EntryClass eclass;
+    /**
+     * The codebase of the entry class.
+     * 
+     * @serial
+     */
+    public String codebase;
+    /**
+     * The public fields of the Entry, each converted as necessary to
+     * a MarshalledWrapper (or left as is if of known java.lang immutable
+     * type).  The fields are in super- to subclass order.
+     *
+     * @serial
+     */
+    public Object[] fields;
+
+    /**
+     * Converts an Entry to an EntryRep.  Any exception that results
+     * is bundled up into a MarshalException.
+     */
+    public EntryRep(Entry entry) throws RemoteException {
+       EntryClassBase ecb = ClassMapper.toEntryClassBase(entry.getClass());
+       eclass = ecb.eclass;
+       codebase = ecb.codebase;
+       try {
+           EntryField[] efields = ClassMapper.getFields(entry.getClass());
+           fields = new Object[efields.length];
+           for (int i = efields.length; --i >= 0; ) {
+               EntryField f = efields[i];
+               Object val = f.field.get(entry);
+               if (f.marshal && val != null)
+                   val = new MarshalledWrapper(val);
+               fields[i] = val;
+           }
+       } catch (IOException e) {
+           throw new MarshalException("error marshalling arguments", e);
+       } catch (IllegalAccessException e) {
+           throw new MarshalException("error marshalling arguments", e);
+       }
+    }
+
+    /**
+     * Convert back to an Entry.  If the Entry cannot be constructed,
+     * null is returned.  If a field cannot be unmarshalled, it is set
+     * to null.
+     */
+    public Entry get() {
+       try {
+           Class clazz = eclass.toClass(codebase);
+           EntryField[] efields = ClassMapper.getFields(clazz);
+           Entry entry = (Entry)clazz.newInstance();
+           for (int i = efields.length; --i >= 0; ) {
+               Object val = fields[i];
+               EntryField f = efields[i];
+               Field rf = f.field;
+               try {
+                   if (f.marshal && val != null)
+                       val = ((MarshalledWrapper) val).get();
+                   rf.set(entry, val);
+               } catch (Throwable e) {
+                   if (e instanceof IllegalArgumentException) {
+                       // fix 4872566: work around empty exception message
+                       String msg = "unable to assign " +
+                           ((val != null) ?
+                               "value of type " + val.getClass().getName() :
+                               "null") +
+                           " to field " + rf.getDeclaringClass().getName() +
+                           "." + rf.getName() + " of type " +
+                           rf.getType().getName();
+                       e = new ClassCastException(msg).initCause(e);
+                   }
+                   RegistrarProxy.handleException(e);
+               }
+           }
+           return entry;
+       } catch (Throwable e) {
+           RegistrarProxy.handleException(e);
+       }
+       return null;
+    }
+
+    /**
+     * We don't need this in the client or the server, but since we
+     * redefine equals we provide a minimal hashCode that works.
+     */
+    public int hashCode() {
+       return eclass.hashCode();
+    }
+
+    /**
+     * EntryReps are equal if they have the same class and the fields
+     * are pairwise equal.  This is really only needed in the server,
+     * but it's very convenient to have here.
+     */
+    public boolean equals(Object obj) {
+       if (obj instanceof EntryRep) {
+           EntryRep entry = (EntryRep)obj;
+           if (!eclass.equals(entry.eclass) ||
+               fields.length != entry.fields.length)
+               return false;
+           for (int i = fields.length; --i >= 0; ) {
+               if ((fields[i] == null && entry.fields[i] != null) ||
+                   (fields[i] != null && !fields[i].equals(entry.fields[i])))
+                   return false;
+           }       
+           return true;
+       }
+       return false;
+    }
+
+    /**
+     * Deep clone (which just means cloning the fields array too).
+     * This is really only needed in the server, but it's very
+     * convenient to have here.
+     */
+    public Object clone() {
+       try { 
+           EntryRep entry = (EntryRep)super.clone();
+           entry.fields = (Object[])entry.fields.clone();
+           return entry;
+       } catch (CloneNotSupportedException e) { 
+           throw new InternalError();
+       }
+    }
+
+    /**
+     * Converts an array of Entry to an array of EntryRep.  If needCodebase
+     * is false, then the codebase of every EntryRep will be null.
+     */
+    public static EntryRep[] toEntryRep(Entry[] entries, boolean needCodebase)
+       throws RemoteException
+    {
+       EntryRep[] reps = null;
+       if (entries != null) {
+           reps = new EntryRep[entries.length];
+           for (int i = entries.length; --i >= 0; ) {
+               if (entries[i] != null) {
+                   reps[i] = new EntryRep(entries[i]);
+                   if (!needCodebase)
+                       reps[i].codebase = null;
+               }
+           }
+       }
+       return reps;
+    }
+
+    /** Converts an array of EntryRep to an array of Entry. */
+    public static Entry[] toEntry(EntryRep[] reps) {
+       Entry[] entries = null;
+       if (reps != null) {
+           entries = new Entry[reps.length];
+           for (int i = reps.length; --i >= 0; ) {
+               entries[i] = reps[i].get();
+           }
+       }
+       return entries;
+    }
+}

Modified: 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EventLease.java
URL: 
http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EventLease.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EventLease.java
 (original)
+++ 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/EventLease.java
 Sun Jul  5 11:41:39 2020
@@ -1,117 +1,117 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.river.reggie;
-
-import java.io.InvalidObjectException;
-import java.io.ObjectStreamException;
-import java.rmi.RemoteException;
-import net.jini.core.constraint.RemoteMethodControl;
-import net.jini.core.lease.UnknownLeaseException;
-import net.jini.core.lookup.ServiceID;
-import net.jini.id.Uuid;
-
-/**
- * When a registrar (lookup service) grants a lease on an event registration
- * on behalf of some object (client), a proxy is employed to allow the client
- * to interact with the lease; this class is the implementation of that proxy.
- * Clients only see instances of this class via the Lease interface.
- *
- * @author Sun Microsystems, Inc.
- *
- */
-class EventLease extends RegistrarLease {
-
-    private static final long serialVersionUID = 2L;
-    /** The type of the lease used in toString() calls. */
-    private static final String LEASE_TYPE = "event";
-
-    /**
-     * The eventID returned in the EventRegistration.
-     *
-     * @serial
-     */
-    final long eventID;
-
-    /**
-     * Returns EventLease or ConstrainableEventLease instance, depending on
-     * whether given server implements RemoteMethodControl.
-     */
-    static EventLease getInstance(Registrar server,
-                                 ServiceID registrarID,
-                                 long eventID,
-                                 Uuid leaseID,
-                                 long expiration)
-    {
-       return (server instanceof RemoteMethodControl) ?
-           new ConstrainableEventLease(
-               server, registrarID, eventID, leaseID, expiration, null) :
-           new EventLease(server, registrarID, eventID, leaseID, expiration);
-    }
-
-    /** Constructor for use by getInstance(), ConstrainableEventLease. */
-    EventLease(Registrar server,
-              ServiceID registrarID,
-              long eventID,
-              Uuid leaseID,
-              long expiration)
-    {
-       super(server, registrarID, leaseID, expiration);
-       this.eventID = eventID;
-    }
-
-    // This method's javadoc is inherited from an interface of this class
-    public void cancel() throws UnknownLeaseException, RemoteException {
-       server.cancelEventLease(eventID, leaseID);
-    }
-
-    /** 
-     * Renews the event lease associated with an instance of this class.
-     * Each instance of this class corresponds to a lease on an event
-     * registration for a particular client. This method renews that 
-     * lease on behalf of the client.
-     *
-     * @param duration the requested duration for the lease being renewed
-     * @return long value representing the new duration that was granted
-     *         for the renewed lease. Note that the duration returned may
-     *         be less than the duration requested.
-     * @exception UnknownLeaseException indicates the lease does not exist;
-     *            typically because the lease has expired.
-     */
-    protected long doRenew(long duration)
-       throws UnknownLeaseException, RemoteException
-    {
-       return server.renewEventLease(eventID, leaseID, duration);
-    }
-
-    // This method's javadoc is inherited from a super class of this class
-    Object getRegID() {
-       return Long.valueOf(eventID);
-    }
-    
-    // inherit javadoc
-    String getLeaseType() {
-       return LEASE_TYPE;
-    }
-
-    /**
-     * Throws InvalidObjectException, since data for this class is required.
-     */
-    private void readObjectNoData() throws ObjectStreamException {
-       throw new InvalidObjectException("no data");
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.river.reggie.proxy;
+
+import java.io.InvalidObjectException;
+import java.io.ObjectStreamException;
+import java.rmi.RemoteException;
+import net.jini.core.constraint.RemoteMethodControl;
+import net.jini.core.lease.UnknownLeaseException;
+import net.jini.core.lookup.ServiceID;
+import net.jini.id.Uuid;
+
+/**
+ * When a registrar (lookup service) grants a lease on an event registration
+ * on behalf of some object (client), a proxy is employed to allow the client
+ * to interact with the lease; this class is the implementation of that proxy.
+ * Clients only see instances of this class via the Lease interface.
+ *
+ * @author Sun Microsystems, Inc.
+ *
+ */
+public class EventLease extends RegistrarLease {
+
+    private static final long serialVersionUID = 2L;
+    /** The type of the lease used in toString() calls. */
+    private static final String LEASE_TYPE = "event";
+
+    /**
+     * The eventID returned in the EventRegistration.
+     *
+     * @serial
+     */
+    final long eventID;
+
+    /**
+     * Returns EventLease or ConstrainableEventLease instance, depending on
+     * whether given server implements RemoteMethodControl.
+     */
+    public static EventLease getInstance(Registrar server,
+                                 ServiceID registrarID,
+                                 long eventID,
+                                 Uuid leaseID,
+                                 long expiration)
+    {
+       return (server instanceof RemoteMethodControl) ?
+           new ConstrainableEventLease(
+               server, registrarID, eventID, leaseID, expiration, null) :
+           new EventLease(server, registrarID, eventID, leaseID, expiration);
+    }
+
+    /** Constructor for use by getInstance(), ConstrainableEventLease. */
+    EventLease(Registrar server,
+              ServiceID registrarID,
+              long eventID,
+              Uuid leaseID,
+              long expiration)
+    {
+       super(server, registrarID, leaseID, expiration);
+       this.eventID = eventID;
+    }
+
+    // This method's javadoc is inherited from an interface of this class
+    public void cancel() throws UnknownLeaseException, RemoteException {
+       server.cancelEventLease(eventID, leaseID);
+    }
+
+    /** 
+     * Renews the event lease associated with an instance of this class.
+     * Each instance of this class corresponds to a lease on an event
+     * registration for a particular client. This method renews that 
+     * lease on behalf of the client.
+     *
+     * @param duration the requested duration for the lease being renewed
+     * @return long value representing the new duration that was granted
+     *         for the renewed lease. Note that the duration returned may
+     *         be less than the duration requested.
+     * @exception UnknownLeaseException indicates the lease does not exist;
+     *            typically because the lease has expired.
+     */
+    protected long doRenew(long duration)
+       throws UnknownLeaseException, RemoteException
+    {
+       return server.renewEventLease(eventID, leaseID, duration);
+    }
+
+    // This method's javadoc is inherited from a super class of this class
+    Object getRegID() {
+       return Long.valueOf(eventID);
+    }
+    
+    // inherit javadoc
+    String getLeaseType() {
+       return LEASE_TYPE;
+    }
+
+    /**
+     * Throws InvalidObjectException, since data for this class is required.
+     */
+    private void readObjectNoData() throws ObjectStreamException {
+       throw new InvalidObjectException("no data");
+    }
+}

Modified: 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/Item.java
URL: 
http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/Item.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/Item.java
 (original)
+++ 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/Item.java
 Sun Jul  5 11:41:39 2020
@@ -15,7 +15,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.river.reggie;
+package org.apache.river.reggie.proxy;
 
 import org.apache.river.action.GetBooleanAction;
 import org.apache.river.logging.Levels;
@@ -46,7 +46,7 @@ import net.jini.security.Security;
  * @author Sun Microsystems, Inc.
  *
  */
-class Item implements Serializable, Cloneable {
+public class Item implements Serializable, Cloneable {
 
     private static final long serialVersionUID = 2L;
 
@@ -129,7 +129,7 @@ class Item implements Serializable, Clon
        attributeSets = EntryRep.toEntryRep(item.attributeSets, true);
     }
     
-    Item(ServiceID serviceID,
+    public Item(ServiceID serviceID,
             ServiceType serviceType,
             String codebase,
             MarshalledWrapper service,

Modified: 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/Matches.java
URL: 
http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/Matches.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/Matches.java
 (original)
+++ 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/Matches.java
 Sun Jul  5 11:41:39 2020
@@ -1,65 +1,65 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.river.reggie;
-
-import java.io.Serializable;
-import java.rmi.RemoteException;
-import java.util.ArrayList;
-import java.util.List;
-import net.jini.core.lookup.ServiceMatches;
-
-/**
- * A Matches contains the fields of a ServiceMatches packaged up for
- * transmission between client-side proxies and the registrar server.
- * Instances are never visible to clients, they are private to the
- * communication between the proxies and the server.
- * <p>
- * This class only has a bare minimum of methods, to minimize
- * the amount of code downloaded into clients.
- *
- * @author Sun Microsystems, Inc.
- *
- */
-class Matches implements Serializable {
-
-    private static final long serialVersionUID = 2L;
-
-    /**
-     * ServiceMatches.items as an ArrayList of Item
-     *
-     * @serial
-     */
-    private final List items;
-    /**
-     * ServiceMatches.totalMatches
-     *
-     * @serial
-     */
-    private final int totalMatches;
-
-    /** Simple constructor. */
-    public Matches(List items, int totalMatches) {
-       this.items = items;
-       this.totalMatches = totalMatches;
-    }
-
-    /** Converts a Matches to a ServiceMatches. */
-    ServiceMatches get() throws RemoteException {
-       return new ServiceMatches(Item.toServiceItem(items), totalMatches);
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.river.reggie.proxy;
+
+import java.io.Serializable;
+import java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.List;
+import net.jini.core.lookup.ServiceMatches;
+
+/**
+ * A Matches contains the fields of a ServiceMatches packaged up for
+ * transmission between client-side proxies and the registrar server.
+ * Instances are never visible to clients, they are private to the
+ * communication between the proxies and the server.
+ * <p>
+ * This class only has a bare minimum of methods, to minimize
+ * the amount of code downloaded into clients.
+ *
+ * @author Sun Microsystems, Inc.
+ *
+ */
+public class Matches implements Serializable {
+
+    private static final long serialVersionUID = 2L;
+
+    /**
+     * ServiceMatches.items as an ArrayList of Item
+     *
+     * @serial
+     */
+    private final List items;
+    /**
+     * ServiceMatches.totalMatches
+     *
+     * @serial
+     */
+    private final int totalMatches;
+
+    /** Simple constructor. */
+    public Matches(List items, int totalMatches) {
+       this.items = items;
+       this.totalMatches = totalMatches;
+    }
+
+    /** Converts a Matches to a ServiceMatches. */
+    ServiceMatches get() throws RemoteException {
+       return new ServiceMatches(Item.toServiceItem(items), totalMatches);
+    }
+}

Modified: 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/ProxyVerifier.java
URL: 
http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/ProxyVerifier.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/ProxyVerifier.java
 (original)
+++ 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/ProxyVerifier.java
 Sun Jul  5 11:41:39 2020
@@ -1,154 +1,154 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.river.reggie;
-
-import java.io.IOException;
-import java.io.InvalidObjectException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import java.rmi.RemoteException;
-import net.jini.core.constraint.RemoteMethodControl;
-import net.jini.core.lookup.ServiceID;
-import net.jini.security.TrustVerifier;
-import net.jini.security.proxytrust.TrustEquivalence;
-
-/**
- * Trust verifier for smart proxies used by Reggie.
- *
- * @author Sun Microsystems, Inc.
- *
- */
-final class ProxyVerifier implements TrustVerifier, Serializable {
-
-    private static final long serialVersionUID = 2L;
-
-    /**
-     * Canonical service reference, used for comparison with inner server
-     * references extracted from smart proxies to verify.
-     *
-     * @serial
-     */
-    private final RemoteMethodControl server;
-    /**
-     * The registrar's service ID, used for comparison with registrar service
-     * IDs extracted from smart proxies to verify.
-     */
-    private transient ServiceID registrarID;
-
-    /**
-     * Constructs proxy verifier which compares server references extracted
-     * from smart proxies with the given canonical server reference, which must
-     * implement both RemoteMethodControl and TrustEquivalence.  For proxies
-     * which contain a copy of the registrar's service ID, that copy is
-     * compared against the given service ID to ensure consistency.
-     */
-    ProxyVerifier(Registrar server, ServiceID registrarID) {
-       if (!(server instanceof RemoteMethodControl)) {
-           throw new UnsupportedOperationException(
-               "server does not implement RemoteMethodControl");
-       } else if (!(server instanceof TrustEquivalence)) {
-           throw new UnsupportedOperationException(
-               "server does not implement TrustEquivalence");
-       }
-       this.server = (RemoteMethodControl) server;
-       this.registrarID = registrarID;
-    }
-
-    /**
-     * Returns true if the given object is a trusted proxy, or false otherwise.
-     * The given object is trusted if it is trust equivalent to the canonical
-     * server reference carried by this trust verifier, or if it is an instance
-     * of one of Reggie's constrainable smart proxy classes, and all component
-     * proxies it contains are trusted, and its inner server reference is trust
-     * equivalent to the canonical server reference, and its inner copy of the
-     * registrar's service ID (if it has one) is equal to the service ID
-     * carried by this verifier.
-     */
-    public boolean isTrustedObject(Object obj, TrustVerifier.Context ctx)
-       throws RemoteException
-    {
-       if (obj == null || ctx == null) {
-           throw new NullPointerException();
-       }
-       RemoteMethodControl inputServer;
-       ServiceID inputRegistrarID;
-       if (obj instanceof ConstrainableRegistrarProxy) {
-           RegistrarProxy proxy = (RegistrarProxy) obj;
-           inputServer = (RemoteMethodControl) proxy.server;
-           inputRegistrarID = proxy.registrarID;
-       } else if (obj instanceof ConstrainableAdminProxy) {
-           AdminProxy proxy = (AdminProxy) obj;
-           inputServer = (RemoteMethodControl) proxy.server;
-           inputRegistrarID = proxy.registrarID;
-       } else if (obj instanceof ConstrainableRegistration) {
-           Registration reg = (Registration) obj;
-           if (!isTrustedObject(reg.lease, ctx)) {
-               return false;
-           }
-           inputServer = (RemoteMethodControl) reg.server;
-           inputRegistrarID = registrarID;
-       } else if (obj instanceof ConstrainableEventLease ||
-                  obj instanceof ConstrainableServiceLease)
-       {
-           RegistrarLease lease = (RegistrarLease) obj;
-           inputServer = (RemoteMethodControl) lease.server;
-           inputRegistrarID = lease.registrarID;
-       } else if (obj instanceof RemoteMethodControl) {
-           inputServer = (RemoteMethodControl) obj;
-           inputRegistrarID = registrarID;
-       } else {
-           return false;
-       }
-
-       TrustEquivalence trustEquiv = (TrustEquivalence)
-           server.setConstraints(inputServer.getConstraints());
-       return trustEquiv.checkTrustEquivalence(inputServer) &&
-              registrarID.equals(inputRegistrarID);
-    }
-
-    /**
-     * Writes the default serializable field value for this instance, followed
-     * by the registrar's service ID encoded as specified by the
-     * ServiceID.writeBytes method.
-     */
-    private void writeObject(ObjectOutputStream out) throws IOException {
-       out.defaultWriteObject();
-       registrarID.writeBytes(out);
-    }
-
-    /**
-     * Reads the default serializable field value for this instance, followed
-     * by the registrar's service ID encoded as specified by the
-     * ServiceID.writeBytes method.  Verifies that the deserialized registrar
-     * reference implements both RemoteMethodControl and TrustEquivalence.
-     */
-    private void readObject(ObjectInputStream in)
-       throws IOException, ClassNotFoundException
-    {
-       in.defaultReadObject();
-       registrarID = new ServiceID(in);
-       if (!(server instanceof RemoteMethodControl)) {
-           throw new InvalidObjectException(
-               "server does not implement RemoteMethodControl");
-       } else if (!(server instanceof TrustEquivalence)) {
-           throw new InvalidObjectException(
-               "server does not implement TrustEquivalence");
-       }
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.river.reggie.proxy;
+
+import java.io.IOException;
+import java.io.InvalidObjectException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.rmi.RemoteException;
+import net.jini.core.constraint.RemoteMethodControl;
+import net.jini.core.lookup.ServiceID;
+import net.jini.security.TrustVerifier;
+import net.jini.security.proxytrust.TrustEquivalence;
+
+/**
+ * Trust verifier for smart proxies used by Reggie.
+ *
+ * @author Sun Microsystems, Inc.
+ *
+ */
+public final class ProxyVerifier implements TrustVerifier, Serializable {
+
+    private static final long serialVersionUID = 2L;
+
+    /**
+     * Canonical service reference, used for comparison with inner server
+     * references extracted from smart proxies to verify.
+     *
+     * @serial
+     */
+    private final RemoteMethodControl server;
+    /**
+     * The registrar's service ID, used for comparison with registrar service
+     * IDs extracted from smart proxies to verify.
+     */
+    private transient ServiceID registrarID;
+
+    /**
+     * Constructs proxy verifier which compares server references extracted
+     * from smart proxies with the given canonical server reference, which must
+     * implement both RemoteMethodControl and TrustEquivalence.  For proxies
+     * which contain a copy of the registrar's service ID, that copy is
+     * compared against the given service ID to ensure consistency.
+     */
+    public ProxyVerifier(Registrar server, ServiceID registrarID) {
+       if (!(server instanceof RemoteMethodControl)) {
+           throw new UnsupportedOperationException(
+               "server does not implement RemoteMethodControl");
+       } else if (!(server instanceof TrustEquivalence)) {
+           throw new UnsupportedOperationException(
+               "server does not implement TrustEquivalence");
+       }
+       this.server = (RemoteMethodControl) server;
+       this.registrarID = registrarID;
+    }
+
+    /**
+     * Returns true if the given object is a trusted proxy, or false otherwise.
+     * The given object is trusted if it is trust equivalent to the canonical
+     * server reference carried by this trust verifier, or if it is an instance
+     * of one of Reggie's constrainable smart proxy classes, and all component
+     * proxies it contains are trusted, and its inner server reference is trust
+     * equivalent to the canonical server reference, and its inner copy of the
+     * registrar's service ID (if it has one) is equal to the service ID
+     * carried by this verifier.
+     */
+    public boolean isTrustedObject(Object obj, TrustVerifier.Context ctx)
+       throws RemoteException
+    {
+       if (obj == null || ctx == null) {
+           throw new NullPointerException();
+       }
+       RemoteMethodControl inputServer;
+       ServiceID inputRegistrarID;
+       if (obj instanceof ConstrainableRegistrarProxy) {
+           RegistrarProxy proxy = (RegistrarProxy) obj;
+           inputServer = (RemoteMethodControl) proxy.server;
+           inputRegistrarID = proxy.registrarID;
+       } else if (obj instanceof ConstrainableAdminProxy) {
+           AdminProxy proxy = (AdminProxy) obj;
+           inputServer = (RemoteMethodControl) proxy.server;
+           inputRegistrarID = proxy.registrarID;
+       } else if (obj instanceof ConstrainableRegistration) {
+           Registration reg = (Registration) obj;
+           if (!isTrustedObject(reg.lease, ctx)) {
+               return false;
+           }
+           inputServer = (RemoteMethodControl) reg.server;
+           inputRegistrarID = registrarID;
+       } else if (obj instanceof ConstrainableEventLease ||
+                  obj instanceof ConstrainableServiceLease)
+       {
+           RegistrarLease lease = (RegistrarLease) obj;
+           inputServer = (RemoteMethodControl) lease.server;
+           inputRegistrarID = lease.registrarID;
+       } else if (obj instanceof RemoteMethodControl) {
+           inputServer = (RemoteMethodControl) obj;
+           inputRegistrarID = registrarID;
+       } else {
+           return false;
+       }
+
+       TrustEquivalence trustEquiv = (TrustEquivalence)
+           server.setConstraints(inputServer.getConstraints());
+       return trustEquiv.checkTrustEquivalence(inputServer) &&
+              registrarID.equals(inputRegistrarID);
+    }
+
+    /**
+     * Writes the default serializable field value for this instance, followed
+     * by the registrar's service ID encoded as specified by the
+     * ServiceID.writeBytes method.
+     */
+    private void writeObject(ObjectOutputStream out) throws IOException {
+       out.defaultWriteObject();
+       registrarID.writeBytes(out);
+    }
+
+    /**
+     * Reads the default serializable field value for this instance, followed
+     * by the registrar's service ID encoded as specified by the
+     * ServiceID.writeBytes method.  Verifies that the deserialized registrar
+     * reference implements both RemoteMethodControl and TrustEquivalence.
+     */
+    private void readObject(ObjectInputStream in)
+       throws IOException, ClassNotFoundException
+    {
+       in.defaultReadObject();
+       registrarID = new ServiceID(in);
+       if (!(server instanceof RemoteMethodControl)) {
+           throw new InvalidObjectException(
+               "server does not implement RemoteMethodControl");
+       } else if (!(server instanceof TrustEquivalence)) {
+           throw new InvalidObjectException(
+               "server does not implement TrustEquivalence");
+       }
+    }
+}

Modified: 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/Registrar.java
URL: 
http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/Registrar.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/Registrar.java
 (original)
+++ 
river/jtsk/modules/modularize/apache-river/river-services/reggie/reggie-dl/src/main/java/org/apache/river/reggie/proxy/Registrar.java
 Sun Jul  5 11:41:39 2020
@@ -1,198 +1,198 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.river.reggie;
-
-import org.apache.river.admin.DestroyAdmin;
-import org.apache.river.proxy.MarshalledWrapper;
-import org.apache.river.start.ServiceProxyAccessor;
-import java.rmi.MarshalledObject;
-import java.rmi.Remote;
-import java.rmi.RemoteException;
-import net.jini.admin.Administrable;
-import net.jini.admin.JoinAdmin;
-import net.jini.core.discovery.LookupLocator;
-import net.jini.core.event.EventRegistration;
-import net.jini.core.event.RemoteEventListener;
-import net.jini.core.lease.UnknownLeaseException;
-import net.jini.core.lookup.ServiceID;
-import net.jini.core.lookup.ServiceRegistration;
-import net.jini.id.Uuid;
-import net.jini.lookup.DiscoveryAdmin;
-
-/**
- * Registrar defines the private protocol between the various client-side
- * proxies and the registrar server.
- * <p>
- * The declared methods are pretty straightforward transformations of the
- * ServiceRegistrar and ServiceRegistration interfaces, with external classes
- * (ServiceItem, ServiceTemplate, ServiceMatches, Entry) converted to internal
- * classes (Item, Template, Matches, EntryRep).  In addition, there are
- * methods for transformed Lease and LeaseMap interfaces, for service and
- * event leases.
- *
- * @author Sun Microsystems, Inc.
- *
- */
-interface Registrar 
-    extends Remote, ServiceProxyAccessor, Administrable,
-           DiscoveryAdmin, JoinAdmin, DestroyAdmin
-{
-    /**
-     * Register a new service or re-register an existing service.
-     * @see net.jini.core.lookup.ServiceRegistrar#register
-     */
-    ServiceRegistration register(Item item, long leaseDuration)
-       throws RemoteException;
-
-    /**
-     * Returns the service object (i.e., just ServiceItem.service) from an
-     * item matching the template, or null if there is no match.
-     * @see net.jini.core.lookup.ServiceRegistrar#lookup
-     */
-    MarshalledWrapper lookup(Template tmpl) throws RemoteException;
-
-    /**
-     * Returns at most maxMatches items matching the template, plus the total
-     * number of items that match the template.
-     * @see net.jini.core.lookup.ServiceRegistrar#lookup
-     */
-    Matches lookup(Template tmpl, int maxMatches) throws RemoteException;
-
-    /**
-     * Registers for event notification.
-     * @see net.jini.core.lookup.ServiceRegistrar#notify
-     */
-    EventRegistration notify(Template tmpl,
-                            int transitions,
-                            RemoteEventListener listener,
-                            MarshalledObject handback,
-                            long leaseDuration)
-       throws RemoteException;
-
-    /**
-     * Looks at all service items that match the specified template, finds
-     * every entry (among those service items) that either doesn't match any
-     * entry templates or is a subclass of at least one matching entry
-     * template, and returns the set of the (most specific) classes of those
-     * entries.
-     * @see net.jini.core.lookup.ServiceRegistrar#getEntryClasses
-     */
-    EntryClassBase[] getEntryClasses(Template tmpl) throws RemoteException;
-
-    /**
-     * Looks at all service items that match the specified template, finds
-     * every entry (among those service items) that matches
-     * tmpl.attributeSetTemplates[setIndex], and returns the set of values
-     * of the specified field of those entries.
-     * The field name has been converted to an index (fields numbered
-     * from super to subclass).
-     *
-     * @see net.jini.core.lookup.ServiceRegistrar#getFieldValues
-     */
-    Object[] getFieldValues(Template tmpl, int setIndex, int field)
-       throws RemoteException;
-
-    /**
-     * Looks at all service items that match the specified template, and for
-     * every service item finds the most specific type (class or interface)
-     * or types the service item is an instance of that are neither equal to,
-     * nor a superclass of, any of the service types in the template and that
-     * have names that start with the specified prefix, and returns the set
-     * of all such types.
-     * @see net.jini.core.lookup.ServiceRegistrar#getServiceTypes
-     */
-    ServiceTypeBase[] getServiceTypes(Template tmpl, String prefix)
-       throws RemoteException;
-
-    /**
-     * Returns a LookupLocator that can be used if necessary for unicast
-     * discovery of the lookup service.
-     * @see net.jini.core.lookup.ServiceRegistrar#getLocator
-     */
-    LookupLocator getLocator() throws RemoteException;
-
-    /**
-     * Adds the specified attribute sets (those that aren't duplicates of
-     * existing attribute sets) to the registered service item.
-     * @see net.jini.core.lookup.ServiceRegistration#addAttributes
-     */
-    void addAttributes(ServiceID serviceID, Uuid leaseID, EntryRep[] attrSets)
-       throws UnknownLeaseException, RemoteException;
-
-    /**
-     * Modifies existing attribute sets of a registered service item.
-     * @see net.jini.core.lookup.ServiceRegistration#modifyAttributes
-     */
-    void modifyAttributes(ServiceID serviceID,
-                         Uuid leaseID,
-                         EntryRep[] attrSetTmpls,
-                         EntryRep[] attrSets)
-       throws UnknownLeaseException, RemoteException;
-
-    /**
-     * Deletes all of the service item's existing attributes, and replaces
-     * them with the specified attribute sets.
-     * @see net.jini.core.lookup.ServiceRegistration#setAttributes
-     */
-    void setAttributes(ServiceID serviceID, Uuid leaseID, EntryRep[] attrSets)
-       throws UnknownLeaseException, RemoteException;
-
-    /**
-     * Cancels a service lease.
-     * @see net.jini.core.lease.Lease#cancel
-     */
-    void cancelServiceLease(ServiceID serviceID, Uuid leaseID)
-       throws UnknownLeaseException, RemoteException;
-
-    /**
-     * Renews a service lease.
-     * @see net.jini.core.lease.Lease#renew
-     */
-    long renewServiceLease(ServiceID serviceID, Uuid leaseID, long duration)
-       throws UnknownLeaseException, RemoteException;
-
-    /**
-     * Cancels an event lease.
-     * @see net.jini.core.lease.Lease#cancel
-     */
-    void cancelEventLease(long eventID, Uuid leaseID)
-       throws UnknownLeaseException, RemoteException;
-
-    /**
-     * Renews an event lease.
-     * @see net.jini.core.lease.Lease#renew
-     */
-    long renewEventLease(long eventID, Uuid leaseID, long duration)
-       throws UnknownLeaseException, RemoteException;
-
-    /**
-     * Renews service and event leases from a LeaseMap.
-     * @see net.jini.core.lease.LeaseMap#renewAll
-     */
-    RenewResults renewLeases(Object[] regIDs,
-                            Uuid[] leaseIDs,
-                            long[] durations)
-       throws RemoteException;
-
-    /**
-     * Cancels service and event leases from a LeaseMap.
-     * @see net.jini.core.lease.LeaseMap#cancelAll
-     */
-    Exception[] cancelLeases(Object[] regIDs, Uuid[] leaseIDs)
-       throws RemoteException;
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.river.reggie.proxy;
+
+import org.apache.river.admin.DestroyAdmin;
+import org.apache.river.proxy.MarshalledWrapper;
+import org.apache.river.start.moveMe.ServiceProxyAccessor;
+import java.rmi.MarshalledObject;
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+import net.jini.admin.Administrable;
+import net.jini.admin.JoinAdmin;
+import net.jini.core.discovery.LookupLocator;
+import net.jini.core.event.EventRegistration;
+import net.jini.core.event.RemoteEventListener;
+import net.jini.core.lease.UnknownLeaseException;
+import net.jini.core.lookup.ServiceID;
+import net.jini.core.lookup.ServiceRegistration;
+import net.jini.id.Uuid;
+import net.jini.lookup.DiscoveryAdmin;
+
+/**
+ * Registrar defines the private protocol between the various client-side
+ * proxies and the registrar server.
+ * <p>
+ * The declared methods are pretty straightforward transformations of the
+ * ServiceRegistrar and ServiceRegistration interfaces, with external classes
+ * (ServiceItem, ServiceTemplate, ServiceMatches, Entry) converted to internal
+ * classes (Item, Template, Matches, EntryRep).  In addition, there are
+ * methods for transformed Lease and LeaseMap interfaces, for service and
+ * event leases.
+ *
+ * @author Sun Microsystems, Inc.
+ *
+ */
+public interface Registrar 
+    extends Remote, ServiceProxyAccessor, Administrable,
+           DiscoveryAdmin, JoinAdmin, DestroyAdmin
+{
+    /**
+     * Register a new service or re-register an existing service.
+     * @see net.jini.core.lookup.ServiceRegistrar#register
+     */
+    ServiceRegistration register(Item item, long leaseDuration)
+       throws RemoteException;
+
+    /**
+     * Returns the service object (i.e., just ServiceItem.service) from an
+     * item matching the template, or null if there is no match.
+     * @see net.jini.core.lookup.ServiceRegistrar#lookup
+     */
+    MarshalledWrapper lookup(Template tmpl) throws RemoteException;
+
+    /**
+     * Returns at most maxMatches items matching the template, plus the total
+     * number of items that match the template.
+     * @see net.jini.core.lookup.ServiceRegistrar#lookup
+     */
+    Matches lookup(Template tmpl, int maxMatches) throws RemoteException;
+
+    /**
+     * Registers for event notification.
+     * @see net.jini.core.lookup.ServiceRegistrar#notify
+     */
+    EventRegistration notify(Template tmpl,
+                            int transitions,
+                            RemoteEventListener listener,
+                            MarshalledObject handback,
+                            long leaseDuration)
+       throws RemoteException;
+
+    /**
+     * Looks at all service items that match the specified template, finds
+     * every entry (among those service items) that either doesn't match any
+     * entry templates or is a subclass of at least one matching entry
+     * template, and returns the set of the (most specific) classes of those
+     * entries.
+     * @see net.jini.core.lookup.ServiceRegistrar#getEntryClasses
+     */
+    EntryClassBase[] getEntryClasses(Template tmpl) throws RemoteException;
+
+    /**
+     * Looks at all service items that match the specified template, finds
+     * every entry (among those service items) that matches
+     * tmpl.attributeSetTemplates[setIndex], and returns the set of values
+     * of the specified field of those entries.
+     * The field name has been converted to an index (fields numbered
+     * from super to subclass).
+     *
+     * @see net.jini.core.lookup.ServiceRegistrar#getFieldValues
+     */
+    Object[] getFieldValues(Template tmpl, int setIndex, int field)
+       throws RemoteException;
+
+    /**
+     * Looks at all service items that match the specified template, and for
+     * every service item finds the most specific type (class or interface)
+     * or types the service item is an instance of that are neither equal to,
+     * nor a superclass of, any of the service types in the template and that
+     * have names that start with the specified prefix, and returns the set
+     * of all such types.
+     * @see net.jini.core.lookup.ServiceRegistrar#getServiceTypes
+     */
+    ServiceTypeBase[] getServiceTypes(Template tmpl, String prefix)
+       throws RemoteException;
+
+    /**
+     * Returns a LookupLocator that can be used if necessary for unicast
+     * discovery of the lookup service.
+     * @see net.jini.core.lookup.ServiceRegistrar#getLocator
+     */
+    LookupLocator getLocator() throws RemoteException;
+
+    /**
+     * Adds the specified attribute sets (those that aren't duplicates of
+     * existing attribute sets) to the registered service item.
+     * @see net.jini.core.lookup.ServiceRegistration#addAttributes
+     */
+    void addAttributes(ServiceID serviceID, Uuid leaseID, EntryRep[] attrSets)
+       throws UnknownLeaseException, RemoteException;
+
+    /**
+     * Modifies existing attribute sets of a registered service item.
+     * @see net.jini.core.lookup.ServiceRegistration#modifyAttributes
+     */
+    void modifyAttributes(ServiceID serviceID,
+                         Uuid leaseID,
+                         EntryRep[] attrSetTmpls,
+                         EntryRep[] attrSets)
+       throws UnknownLeaseException, RemoteException;
+
+    /**
+     * Deletes all of the service item's existing attributes, and replaces
+     * them with the specified attribute sets.
+     * @see net.jini.core.lookup.ServiceRegistration#setAttributes
+     */
+    void setAttributes(ServiceID serviceID, Uuid leaseID, EntryRep[] attrSets)
+       throws UnknownLeaseException, RemoteException;
+
+    /**
+     * Cancels a service lease.
+     * @see net.jini.core.lease.Lease#cancel
+     */
+    void cancelServiceLease(ServiceID serviceID, Uuid leaseID)
+       throws UnknownLeaseException, RemoteException;
+
+    /**
+     * Renews a service lease.
+     * @see net.jini.core.lease.Lease#renew
+     */
+    long renewServiceLease(ServiceID serviceID, Uuid leaseID, long duration)
+       throws UnknownLeaseException, RemoteException;
+
+    /**
+     * Cancels an event lease.
+     * @see net.jini.core.lease.Lease#cancel
+     */
+    void cancelEventLease(long eventID, Uuid leaseID)
+       throws UnknownLeaseException, RemoteException;
+
+    /**
+     * Renews an event lease.
+     * @see net.jini.core.lease.Lease#renew
+     */
+    long renewEventLease(long eventID, Uuid leaseID, long duration)
+       throws UnknownLeaseException, RemoteException;
+
+    /**
+     * Renews service and event leases from a LeaseMap.
+     * @see net.jini.core.lease.LeaseMap#renewAll
+     */
+    RenewResults renewLeases(Object[] regIDs,
+                            Uuid[] leaseIDs,
+                            long[] durations)
+       throws RemoteException;
+
+    /**
+     * Cancels service and event leases from a LeaseMap.
+     * @see net.jini.core.lease.LeaseMap#cancelAll
+     */
+    Exception[] cancelLeases(Object[] regIDs, Uuid[] leaseIDs)
+       throws RemoteException;
+}


Reply via email to