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 2020/07/05 11:41:42 UTC

svn commit: r1879521 [19/37] - in /river/jtsk/modules/modularize/apache-river: ./ browser/ browser/src/main/java/org/apache/river/example/browser/ extra/ groovy-config/ river-activation/ river-collections/ river-collections/src/main/java/org/apache/riv...

Modified: river/jtsk/modules/modularize/apache-river/river-services/mercury/mercury-service/src/main/java/org/apache/river/mercury/StreamPool.java
URL: http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/mercury/mercury-service/src/main/java/org/apache/river/mercury/StreamPool.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- river/jtsk/modules/modularize/apache-river/river-services/mercury/mercury-service/src/main/java/org/apache/river/mercury/StreamPool.java (original)
+++ river/jtsk/modules/modularize/apache-river/river-services/mercury/mercury-service/src/main/java/org/apache/river/mercury/StreamPool.java Sun Jul  5 11:41:39 2020
@@ -1,294 +1,296 @@
-/*
- * 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.mercury;
-
-import org.apache.river.logging.Levels;
-
-import java.io.EOFException;
-import java.io.File;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.RandomAccessFile;
-import java.io.SyncFailedException;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/** 
- * This class provides a pool of <tt>LogStream</tt> objects.  Each
- * <tt>LogStream</tt> has an associated <tt>FileDescriptor</tt>, which
- * is the system resource we are trying to manage. This pool limits the
- * (user configurable) number of concurrent, open <tt>FileDescriptor</tt>s.
- *
- * @author Sun Microsystems, Inc.
- *
- * @since 1.1
- */
-class StreamPool {
-    // Class fields
-    /** Logger for lease related messages */
-    private static final Logger persistenceLogger = 
-        MailboxImpl.PERSISTENCE_LOGGER;
-    
-    /** 
-     * Maximum limit for the number of concurrent <tt>LogStream</tt>s
-     * in the stream pool.
-     */
-    private final int maxPoolSize;
-
-    /** Holds stream references by associated key */
-    private final HashMap pool;
-
-    /**
-     * Holds stream references in least recently used (released) order.
-     * It's used in order determine which stream to discard upon
-     * reaching the maximum pool limit.
-     */
-    private final LinkedList freeList;
-
-    /**
-     * Simple constructor that creates a pool of given <code>size</code>.
-     *
-     * @exception IllegalArgumentException Thrown if the value of 
-     *                <tt>maxPoolSize</tt> is less than 1.
-     */
-    StreamPool(int size) {
-        if (size < 1) 
-            throw new IllegalArgumentException(
-		"Pool size must be greater than 0."); 
-        maxPoolSize = size;
-        pool = new HashMap(maxPoolSize);
-        freeList = new LinkedList();
-
-        if (persistenceLogger.isLoggable(Level.FINEST)) {
-            persistenceLogger.log(Level.FINEST,
-	        "Created StreamPool of size {0}", 
-		Integer.valueOf(maxPoolSize));
-	}
-    }
-
-    /**
-     * Returns a <tt>ControlLog</tt> object for the specified <tt>file</tt>
-     * from the pool if it already exists.
-     * Otherwise, it creates a new instance and adds it to the pool.
-     *
-     * @exception IOException if an I/O error occurs
-     */
-    synchronized ControlLog getControlLog(File file) 
-	throws IOException 
-    {
-	StreamKey key = new StreamKey(file, StreamType.CONTROL);
-	ControlLog log = (ControlLog)pool.get(key);
-	if (log != null) { // found it!
-	    if (freeList.remove(key) == false)
-	        throw new InternalMailboxException("Did not find re-used control log "
-	            + "stream in freeList.");
-	} else { // Log was not found, so attempt to add it
-
-	    ensurePoolSpace();
-
-            //
-	    // Create new ControlLog and add it the pool.
-            //
-            log = new ControlLog(file, key);
-            pool.put(key, log);
-
-            if(freeList.remove(key))
-                throw new InternalMailboxException("Found newly created ControlLog "
-                    + "in freeList");
-	}
-
-        return log;
-    }
-
-    /**
-     * Returns a <tt>LogInputStream</tt> object from the pool if it 
-     * already exists. Otherwise, it creates a new instance and adds 
-     * it to the pool.
-     *
-     * @exception IOException if an I/O error occurs
-     */
-    synchronized LogInputStream getLogInputStream(File file, long offset) 
-	throws IOException
-    {
-	StreamKey key = new StreamKey(file, StreamType.INPUT);
-	LogInputStream in = (LogInputStream)pool.get(key);
-	if (in != null) { //found it!
-	    if (freeList.remove(key) == false)
-	        throw new InternalMailboxException("Did not find re-used input log "
-	            + "stream in freelist.");
-	} 
-
-	if (in == null ||            // if log not found OR 
-	    in.getOffset() > offset) // current read offset is past desired 
-	{                            // then create a new log and add it
-	    ensurePoolSpace();
-
-	    in = new LogInputStream(file, key);
-	    pool.put(key, in);
-
-            if(freeList.remove(key))
-                throw new InternalMailboxException("Found newly created ControlLog "
-                    + "on freeList");
-	}
-
-	// Sanity check for offset value
-	if (offset > file.length()) 
-	    throw new EOFException("Attempting to read past end of file.");
-
-	// Check if log offset needs adjusting. 
-	// By this point in.offset <= offset.
-	while (in.getOffset() < offset) {
-	    in.skip(offset - in.getOffset());
-	}
-
-	return in;
-    }
-
-    /**
-     * Returns a <tt>LogOutputStream</tt> object for the specified <tt>file</tt>
-     * from the pool if it already exists. 
-     * Otherwise, it creates a new instance and adds it to the pool.
-     *
-     * @exception IOException if an I/O error occurs
-     */
-    synchronized LogOutputStream getLogOutputStream(File file, long offset) 
-	throws IOException 
-    {
-	StreamKey key = new StreamKey(file, StreamType.OUTPUT);
-	LogOutputStream out = (LogOutputStream)pool.get(key);
-
-	if (out != null) { // found it!
-	    if (freeList.remove(key) == false)
-	        throw new InternalMailboxException("Did not find re-used output log "
-	            + "stream in freelist");
-
-	     // Sanity check to see if we are still in sync. If not,
-	     // then we need to close this stream and create another
-	     // one (done in the next code block).
-	    if (out.getOffset() != offset) {
-	        removeLogStream(out);
-	        out = null;
-	    }
-	}
-
-        // Check to see if we need to create another log.
-	if (out == null) { 
-
-	    ensurePoolSpace();
-
-	    if (offset == 0L) { // Create new log, without appending
-	        out = new LogOutputStream(file, key, false);
-	    } else { // Create new log, appending to existing file
-	        long len = file.length();
-
-	        if (offset > len) 
-	            throw new EOFException("Attempting to write past end "
-	                + "of file");
-
-		if (offset < len) {
-		    RandomAccessFile raf = new RandomAccessFile(file, "rw");
-		    raf.setLength(offset);
-		    raf.close();
-		}
-
-		out = new LogOutputStream(file, key, true);
-	    }
-
-            pool.put(key, out);
-
-            if (freeList.remove(key))
-                throw new InternalMailboxException("Found newly created output log "
-                    + "in freeList");
-
-	}
-
-        return out;
-    }
-
-    /**
-     * Ensures that room is available in the pool. If the pool is currently
-     * full, then the least recently used <tt>LogStream</tt> will be removed 
-     * and closed to make room. This method will block if the pool is full and
-     * no <tt>LogStream</tt> objects can be closed. 
-     *
-     * @exception IOException if an I/O error occurs
-     */
-    private synchronized void ensurePoolSpace() throws IOException {
-        if (pool.size() >= maxPoolSize) {
-            while(freeList.size() < 1) {
-                try {
-		    wait();
-		} catch (InterruptedException ie) { ; }
-	    }
-	    StreamKey key = (StreamKey)freeList.removeFirst();
-	    LogStream els = (LogStream)pool.remove(key);
-	    els.close();
-	}
-    }
-
-    /**
-     * Marks a stream as available for closing.
-     * A log will only be closed if a new log is requested and the
-     * pool has reached its maximum size.
-     */
-    synchronized void releaseLogStream(LogStream stream) {
-        StreamKey key = (StreamKey)stream.getKey();
-        if (pool.get(key) == null)
-            throw new InternalMailboxException("Not managing stream: " 
-                + stream + ":" + key + " -- release failed");
-	freeList.add(key);
-	notifyAll();
-    }
-
-    /**
-     * Removes the given <tt>LogStream</tt> from the pool and closes it,
-     * if possible. The intent is for this method to be called for 
-     * unusable logs so that they will no longer be returned by a 
-     * subsequent call to one of the "get" methods.
-     */
-    synchronized void removeLogStream(LogStream stream) {
-        StreamKey key = (StreamKey)stream.getKey();
-        if (pool.remove(key) == null)
-            throw new InternalMailboxException("Not managing stream: " 
-                + stream + ":" + key + " -- remove failed");
-
-        // Remove it from freeList, if present
-        freeList.remove(key);
-        try {
-            stream.close();
-	} catch (IOException ioe) {
-	    // Note the exception, but otherwise ignore
-	    if (persistenceLogger.isLoggable(Levels.HANDLED)) {
-                persistenceLogger.log(Levels.HANDLED,
-		    "Exception closing Log", ioe);
-	    }
-	}
-    }
-
-    //
-    // Debug use only!
-    //
-    synchronized int getPoolSize() { return pool.size(); }
-    synchronized int getFreeSize() { return freeList.size(); }
-    synchronized void dump() { 
-	System.out.println("Pool:\n" + pool); 
-	System.out.println("Free:\n" + freeList); 
-    }
-}
+/*
+ * 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.mercury;
+
+import org.apache.river.logging.Levels;
+
+import java.io.EOFException;
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.RandomAccessFile;
+import java.io.SyncFailedException;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.apache.river.mercury.proxy.InternalMailboxException;
+
+/** 
+ * This class provides a pool of <tt>LogStream</tt> objects.  Each
+ * <tt>LogStream</tt> has an associated <tt>FileDescriptor</tt>, which
+ * is the system resource we are trying to manage. This pool limits the
+ * (user configurable) number of concurrent, open <tt>FileDescriptor</tt>s.
+ *
+ * @author Sun Microsystems, Inc.
+ *
+ * @since 1.1
+ */
+class StreamPool {
+    // Class fields
+    /** Logger for lease related messages */
+    private static final Logger persistenceLogger = 
+        MailboxImpl.PERSISTENCE_LOGGER;
+    
+    /** 
+     * Maximum limit for the number of concurrent <tt>LogStream</tt>s
+     * in the stream pool.
+     */
+    private final int maxPoolSize;
+
+    /** Holds stream references by associated key */
+    private final HashMap pool;
+
+    /**
+     * Holds stream references in least recently used (released) order.
+     * It's used in order determine which stream to discard upon
+     * reaching the maximum pool limit.
+     */
+    private final LinkedList freeList;
+
+    /**
+     * Simple constructor that creates a pool of given <code>size</code>.
+     *
+     * @exception IllegalArgumentException Thrown if the value of 
+     *                <tt>maxPoolSize</tt> is less than 1.
+     */
+    StreamPool(int size) {
+        if (size < 1) 
+            throw new IllegalArgumentException(
+		"Pool size must be greater than 0."); 
+        maxPoolSize = size;
+        pool = new HashMap(maxPoolSize);
+        freeList = new LinkedList();
+
+        if (persistenceLogger.isLoggable(Level.FINEST)) {
+            persistenceLogger.log(Level.FINEST,
+	        "Created StreamPool of size {0}", 
+		Integer.valueOf(maxPoolSize));
+	}
+    }
+
+    /**
+     * Returns a <tt>ControlLog</tt> object for the specified <tt>file</tt>
+     * from the pool if it already exists.
+     * Otherwise, it creates a new instance and adds it to the pool.
+     *
+     * @exception IOException if an I/O error occurs
+     */
+    synchronized ControlLog getControlLog(File file) 
+	throws IOException 
+    {
+	StreamKey key = new StreamKey(file, StreamType.CONTROL);
+	ControlLog log = (ControlLog)pool.get(key);
+	if (log != null) { // found it!
+	    if (freeList.remove(key) == false)
+	        throw new InternalMailboxException("Did not find re-used control log "
+	            + "stream in freeList.");
+	} else { // Log was not found, so attempt to add it
+
+	    ensurePoolSpace();
+
+            //
+	    // Create new ControlLog and add it the pool.
+            //
+            log = new ControlLog(file, key);
+            pool.put(key, log);
+
+            if(freeList.remove(key))
+                throw new InternalMailboxException("Found newly created ControlLog "
+                    + "in freeList");
+	}
+
+        return log;
+    }
+
+    /**
+     * Returns a <tt>LogInputStream</tt> object from the pool if it 
+     * already exists. Otherwise, it creates a new instance and adds 
+     * it to the pool.
+     *
+     * @exception IOException if an I/O error occurs
+     */
+    synchronized LogInputStream getLogInputStream(File file, long offset) 
+	throws IOException
+    {
+	StreamKey key = new StreamKey(file, StreamType.INPUT);
+	LogInputStream in = (LogInputStream)pool.get(key);
+	if (in != null) { //found it!
+	    if (freeList.remove(key) == false)
+	        throw new InternalMailboxException("Did not find re-used input log "
+	            + "stream in freelist.");
+	} 
+
+	if (in == null ||            // if log not found OR 
+	    in.getOffset() > offset) // current read offset is past desired 
+	{                            // then create a new log and add it
+	    ensurePoolSpace();
+
+	    in = new LogInputStream(file, key);
+	    pool.put(key, in);
+
+            if(freeList.remove(key))
+                throw new InternalMailboxException("Found newly created ControlLog "
+                    + "on freeList");
+	}
+
+	// Sanity check for offset value
+	if (offset > file.length()) 
+	    throw new EOFException("Attempting to read past end of file.");
+
+	// Check if log offset needs adjusting. 
+	// By this point in.offset <= offset.
+	while (in.getOffset() < offset) {
+	    in.skip(offset - in.getOffset());
+	}
+
+	return in;
+    }
+
+    /**
+     * Returns a <tt>LogOutputStream</tt> object for the specified <tt>file</tt>
+     * from the pool if it already exists. 
+     * Otherwise, it creates a new instance and adds it to the pool.
+     *
+     * @exception IOException if an I/O error occurs
+     */
+    synchronized LogOutputStream getLogOutputStream(File file, long offset) 
+	throws IOException 
+    {
+	StreamKey key = new StreamKey(file, StreamType.OUTPUT);
+	LogOutputStream out = (LogOutputStream)pool.get(key);
+
+	if (out != null) { // found it!
+	    if (freeList.remove(key) == false)
+	        throw new InternalMailboxException("Did not find re-used output log "
+	            + "stream in freelist");
+
+	     // Sanity check to see if we are still in sync. If not,
+	     // then we need to close this stream and create another
+	     // one (done in the next code block).
+	    if (out.getOffset() != offset) {
+	        removeLogStream(out);
+	        out = null;
+	    }
+	}
+
+        // Check to see if we need to create another log.
+	if (out == null) { 
+
+	    ensurePoolSpace();
+
+	    if (offset == 0L) { // Create new log, without appending
+	        out = new LogOutputStream(file, key, false);
+	    } else { // Create new log, appending to existing file
+	        long len = file.length();
+
+	        if (offset > len) 
+	            throw new EOFException("Attempting to write past end "
+	                + "of file");
+
+		if (offset < len) {
+		    RandomAccessFile raf = new RandomAccessFile(file, "rw");
+		    raf.setLength(offset);
+		    raf.close();
+		}
+
+		out = new LogOutputStream(file, key, true);
+	    }
+
+            pool.put(key, out);
+
+            if (freeList.remove(key))
+                throw new InternalMailboxException("Found newly created output log "
+                    + "in freeList");
+
+	}
+
+        return out;
+    }
+
+    /**
+     * Ensures that room is available in the pool. If the pool is currently
+     * full, then the least recently used <tt>LogStream</tt> will be removed 
+     * and closed to make room. This method will block if the pool is full and
+     * no <tt>LogStream</tt> objects can be closed. 
+     *
+     * @exception IOException if an I/O error occurs
+     */
+    private synchronized void ensurePoolSpace() throws IOException {
+        if (pool.size() >= maxPoolSize) {
+            while(freeList.size() < 1) {
+                try {
+		    wait();
+		} catch (InterruptedException ie) { ; }
+	    }
+	    StreamKey key = (StreamKey)freeList.removeFirst();
+	    LogStream els = (LogStream)pool.remove(key);
+	    els.close();
+	}
+    }
+
+    /**
+     * Marks a stream as available for closing.
+     * A log will only be closed if a new log is requested and the
+     * pool has reached its maximum size.
+     */
+    synchronized void releaseLogStream(LogStream stream) {
+        StreamKey key = (StreamKey)stream.getKey();
+        if (pool.get(key) == null)
+            throw new InternalMailboxException("Not managing stream: " 
+                + stream + ":" + key + " -- release failed");
+	freeList.add(key);
+	notifyAll();
+    }
+
+    /**
+     * Removes the given <tt>LogStream</tt> from the pool and closes it,
+     * if possible. The intent is for this method to be called for 
+     * unusable logs so that they will no longer be returned by a 
+     * subsequent call to one of the "get" methods.
+     */
+    synchronized void removeLogStream(LogStream stream) {
+        StreamKey key = (StreamKey)stream.getKey();
+        if (pool.remove(key) == null)
+            throw new InternalMailboxException("Not managing stream: " 
+                + stream + ":" + key + " -- remove failed");
+
+        // Remove it from freeList, if present
+        freeList.remove(key);
+        try {
+            stream.close();
+	} catch (IOException ioe) {
+	    // Note the exception, but otherwise ignore
+	    if (persistenceLogger.isLoggable(Levels.HANDLED)) {
+                persistenceLogger.log(Levels.HANDLED,
+		    "Exception closing Log", ioe);
+	    }
+	}
+    }
+
+    //
+    // Debug use only!
+    //
+    synchronized int getPoolSize() { return pool.size(); }
+    synchronized int getFreeSize() { return freeList.size(); }
+    synchronized void dump() { 
+	System.out.println("Pool:\n" + pool); 
+	System.out.println("Free:\n" + freeList); 
+    }
+}

Modified: river/jtsk/modules/modularize/apache-river/river-services/mercury/mercury-service/src/main/java/org/apache/river/mercury/TransientEventLog.java
URL: http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/mercury/mercury-service/src/main/java/org/apache/river/mercury/TransientEventLog.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- river/jtsk/modules/modularize/apache-river/river-services/mercury/mercury-service/src/main/java/org/apache/river/mercury/TransientEventLog.java (original)
+++ river/jtsk/modules/modularize/apache-river/river-services/mercury/mercury-service/src/main/java/org/apache/river/mercury/TransientEventLog.java Sun Jul  5 11:41:39 2020
@@ -1,282 +1,284 @@
-/*
- * 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.mercury;
-
-import net.jini.id.Uuid;
-import net.jini.core.event.RemoteEvent;
-
-import java.io.IOException;
-
-import org.apache.river.logging.Levels;
-
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import java.util.NoSuchElementException;
-import java.util.concurrent.atomic.AtomicLong;
-
-/**
- * Class that implements the interface for an <tt>EventLog</tt>. 
- * This class encapsulates the details of reading/writing events from/to
- * some non-persistent mechanism.
- *
- * This class makes certain assumptions. First, the <tt>next</tt> and
- * <tt>remove</tt> methods are intended to be called in pairs. If 
- * <tt>remove</tt> is not called, then subsequent calls to <tt>next</tt> 
- * will attempt to return the same object. Calling <tt>remove</tt> 
- * essentially advances the read pointer to the next object, if any. 
- *
- * There is also an implicit assumption of external synchronization by the
- * caller. That is, only one calling thread will be accessing the log at a time.
- *
- * @author Sun Microsystems, Inc.
- *
- * @since 2.0
- */
-
-class TransientEventLog implements EventLog {
-
-    //
-    // Class fields
-    //
-
-    /** <tt>Logger</tt> used for persistence-related debugging messages */
-    private static final Logger persistenceLogger = 
-	MailboxImpl.PERSISTENCE_LOGGER;
-
-    //
-    // Object fields
-    //
-
-    /** The associated <tt>Uuid</tt> for this <tt>EventLog</tt>. */
-    private final Uuid uuid;
-
-    /** The associated, non-persistent storage for events */
-    private final List entries;
-
-    /** 
-     * Flag that is used to determine whether or not this object 
-     * has been closed. 
-     */
-    private volatile boolean closed = false;
-
-    /**
-     * Flag that is used to determine whether or not this object
-     * has been initialized.
-     */
-    private volatile boolean initialized = false;
-    
-    /**
-     * Helper class used to hold a remote event and a sequence id.
-     */
-    private static class RemoteEventHolder {
-        private final long id;
-        private final RemoteEvent remoteEvent;
-        RemoteEventHolder(long stamp, RemoteEvent re) {
-            id = stamp;
-            remoteEvent = re;
-        }
-        long getID() { return id; }
-        RemoteEvent getRemoteEvent() { return remoteEvent; }
-    }
-    
-    /**
-     * Counter used to produce event ids.
-     */
-    private AtomicLong eventCounter = new AtomicLong(1);
-    
-    /**
-     * Simple constructor that takes a <tt>Uuid</tt> argument.
-     *
-     * @exception IllegalArgumentException if the argument is null
-     */
-    TransientEventLog(Uuid uuid) {
-        if (uuid == null) 
-            throw new IllegalArgumentException("Uuid cannot be null");
-        this.uuid = uuid;
-	entries = Collections.synchronizedList(new LinkedList());
-
-        if (persistenceLogger.isLoggable(Level.FINEST)) {
-            persistenceLogger.log(Level.FINEST, 
-	        "TransientEventLog for: {0}", uuid);
-        }
-    }
-
-    // Inherit documentation from supertype
-    public void init() throws IOException {
-        if (initialized)
-            throw new InternalMailboxException(
-		"Trying to re-initialize event log "
-		+ "for: " + uuid);
-        initialized = true;
-    }
-    
-    /**
-     * Asserts that the log is in a valid state.
-     *
-     * @exception IOException if the log is in an invalid state
-     */
-    private void stateCheck() throws IOException {
-	if (!initialized)
-            throw new IOException("Trying to use an uninitialized "
-		+ "event log for: " + uuid);
-	if (closed)
-            throw new IOException("Attempt to access closed log file for : "
-		+ uuid);
-    }
-
-    // Inherit documentation from supertype
-    public void add(RemoteEvent event) throws IOException {
-	stateCheck();
-        long id = eventCounter.getAndIncrement(); 
-        RemoteEventHolder data = new RemoteEventHolder(id, event);
-	entries.add(data);
-        printControlData(persistenceLogger, "TransientEventLog::add");
-    }
-
-    // Inherit documentation from supertype
-    public RemoteEvent next() throws IOException {
-	stateCheck();
-        // Check if empty
-	if (isEmpty()) 
-	    throw new NoSuchElementException();
-
-        printControlData(persistenceLogger, "TransientEventLog::next");
-        RemoteEventHolder data = (RemoteEventHolder)entries.get(0);
-        return (RemoteEvent)data.getRemoteEvent();
-    }
-    
-    // Inherit documentation from supertype
-    public RemoteEventData[] readAhead(int maxEvents) throws IOException {
-	stateCheck();
-        
-        if (maxEvents < 0)
-            throw new IllegalArgumentException();
-        
-        if (maxEvents == 0)
-            return new RemoteEventData[0];
-        
-        // Check if empty
-	if (isEmpty()) 
-	    throw new NoSuchElementException();
-
-        printControlData(persistenceLogger, "TransientEventLog::readAhead");
-        int limit = (maxEvents < entries.size())?maxEvents:entries.size();
-        RemoteEventHolder[] evts = (RemoteEventHolder[])
-            entries.subList(0, limit).toArray(new RemoteEventHolder[0]);
-        RemoteEventData[] set = new RemoteEventData[evts.length];
-        for (int i=0; i<set.length; i++) {
-            set[i] = new RemoteEventData(
-                evts[i].getRemoteEvent(), Long.valueOf(evts[i].getID()));
-        }
-        return set;
-    }
-    
-    // Inherit documentation from supertype
-    public boolean isEmpty() throws IOException {
-	stateCheck();
-        return entries.isEmpty();
-    }
-
-    // Inherit documentation from supertype
-    public void remove() throws IOException {
-	stateCheck();
-	try {
-	    entries.remove(0);
-	} catch (IndexOutOfBoundsException iob) {
-	    throw new NoSuchElementException();
-	}
-        printControlData(persistenceLogger, "TransientEventLog::remove");
-    }
-
-    // Inherit documentation from supertype
-    public void moveAhead(Object cookie) throws IOException {
-	stateCheck();
-
-	if (cookie == null) return;
-        
-	if (persistenceLogger.isLoggable(Level.FINEST)) {
-            persistenceLogger.log(Level.FINEST, 
-	        "moveAhead past {0}", 
-                cookie);
-	}
-        // TODO - trap ClassCastException and throw?
-        long lastID = ((Long)cookie).longValue();
-
-	if (lastID >= eventCounter.get()) {
-	    throw new NoSuchElementException();
-	}
-        
-        RemoteEventHolder rh = null;
-        ListIterator iter = entries.listIterator();
-        while (iter.hasNext()) {
-            rh = (RemoteEventHolder)iter.next();
-            if (rh.getID() <= lastID) {
-                iter.remove();
-                if (persistenceLogger.isLoggable(Level.FINEST)) {
-                    persistenceLogger.log(Level.FINEST, 
-                        "Removing event with ID {0}", 
-                        Long.valueOf(rh.getID()));
-                }
-            } else {
-                break;
-            }
-                
-        }
-        printControlData(persistenceLogger, "TransientEventLog::moveAhead");
-    }
-    
-    // Inherit documentation from supertype
-    public void close() throws IOException {
-	stateCheck();
-        closed = true;
-	if (persistenceLogger.isLoggable(Level.FINEST)) {
-            persistenceLogger.log(Level.FINEST, 
-	        "TransientEventLog::close for {0}", uuid);
-	}
-	// Do nothing
-    }
-
-    // Inherit documentation from supertype
-    public void delete() throws IOException {
-        if (!closed)
-            throw new IOException("Cannot delete log until it is closed");
-	entries.clear();
-	if (persistenceLogger.isLoggable(Level.FINEST)) {
-            persistenceLogger.log(Level.FINEST, 
-	        "TransientEventLog::destroy for {0}", uuid);
-	}
-    }
-
-    
-    /**
-     * Output state information to the given <tt>Logger</tt>.
-     * This is intended for debugging purposes only.
-     */
-    private void printControlData(Logger logger, String msg) {
-	if (logger.isLoggable(Level.FINEST)) {
-	    logger.log(Level.FINEST, "{0}", msg);
-            logger.log(Level.FINEST, "ID: {0}", uuid);
-            logger.log(Level.FINEST, "NumEvents: {0}", 
-	        Long.valueOf(entries.size()));
-	}
-    }
-}
+/*
+ * 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.mercury;
+
+import net.jini.id.Uuid;
+import net.jini.core.event.RemoteEvent;
+import org.apache.river.mercury.proxy.RemoteEventData;
+
+import java.io.IOException;
+
+import org.apache.river.logging.Levels;
+import org.apache.river.mercury.proxy.InternalMailboxException;
+
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import java.util.NoSuchElementException;
+import java.util.concurrent.atomic.AtomicLong;
+
+/**
+ * Class that implements the interface for an <tt>EventLog</tt>. 
+ * This class encapsulates the details of reading/writing events from/to
+ * some non-persistent mechanism.
+ *
+ * This class makes certain assumptions. First, the <tt>next</tt> and
+ * <tt>remove</tt> methods are intended to be called in pairs. If 
+ * <tt>remove</tt> is not called, then subsequent calls to <tt>next</tt> 
+ * will attempt to return the same object. Calling <tt>remove</tt> 
+ * essentially advances the read pointer to the next object, if any. 
+ *
+ * There is also an implicit assumption of external synchronization by the
+ * caller. That is, only one calling thread will be accessing the log at a time.
+ *
+ * @author Sun Microsystems, Inc.
+ *
+ * @since 2.0
+ */
+
+class TransientEventLog implements EventLog {
+
+    //
+    // Class fields
+    //
+
+    /** <tt>Logger</tt> used for persistence-related debugging messages */
+    private static final Logger persistenceLogger = 
+	MailboxImpl.PERSISTENCE_LOGGER;
+
+    //
+    // Object fields
+    //
+
+    /** The associated <tt>Uuid</tt> for this <tt>EventLog</tt>. */
+    private final Uuid uuid;
+
+    /** The associated, non-persistent storage for events */
+    private final List entries;
+
+    /** 
+     * Flag that is used to determine whether or not this object 
+     * has been closed. 
+     */
+    private volatile boolean closed = false;
+
+    /**
+     * Flag that is used to determine whether or not this object
+     * has been initialized.
+     */
+    private volatile boolean initialized = false;
+    
+    /**
+     * Helper class used to hold a remote event and a sequence id.
+     */
+    private static class RemoteEventHolder {
+        private final long id;
+        private final RemoteEvent remoteEvent;
+        RemoteEventHolder(long stamp, RemoteEvent re) {
+            id = stamp;
+            remoteEvent = re;
+        }
+        long getID() { return id; }
+        RemoteEvent getRemoteEvent() { return remoteEvent; }
+    }
+    
+    /**
+     * Counter used to produce event ids.
+     */
+    private AtomicLong eventCounter = new AtomicLong(1);
+    
+    /**
+     * Simple constructor that takes a <tt>Uuid</tt> argument.
+     *
+     * @exception IllegalArgumentException if the argument is null
+     */
+    TransientEventLog(Uuid uuid) {
+        if (uuid == null) 
+            throw new IllegalArgumentException("Uuid cannot be null");
+        this.uuid = uuid;
+	entries = Collections.synchronizedList(new LinkedList());
+
+        if (persistenceLogger.isLoggable(Level.FINEST)) {
+            persistenceLogger.log(Level.FINEST, 
+	        "TransientEventLog for: {0}", uuid);
+        }
+    }
+
+    // Inherit documentation from supertype
+    public void init() throws IOException {
+        if (initialized)
+            throw new InternalMailboxException(
+		"Trying to re-initialize event log "
+		+ "for: " + uuid);
+        initialized = true;
+    }
+    
+    /**
+     * Asserts that the log is in a valid state.
+     *
+     * @exception IOException if the log is in an invalid state
+     */
+    private void stateCheck() throws IOException {
+	if (!initialized)
+            throw new IOException("Trying to use an uninitialized "
+		+ "event log for: " + uuid);
+	if (closed)
+            throw new IOException("Attempt to access closed log file for : "
+		+ uuid);
+    }
+
+    // Inherit documentation from supertype
+    public void add(RemoteEvent event) throws IOException {
+	stateCheck();
+        long id = eventCounter.getAndIncrement(); 
+        RemoteEventHolder data = new RemoteEventHolder(id, event);
+	entries.add(data);
+        printControlData(persistenceLogger, "TransientEventLog::add");
+    }
+
+    // Inherit documentation from supertype
+    public RemoteEvent next() throws IOException {
+	stateCheck();
+        // Check if empty
+	if (isEmpty()) 
+	    throw new NoSuchElementException();
+
+        printControlData(persistenceLogger, "TransientEventLog::next");
+        RemoteEventHolder data = (RemoteEventHolder)entries.get(0);
+        return (RemoteEvent)data.getRemoteEvent();
+    }
+    
+    // Inherit documentation from supertype
+    public RemoteEventData[] readAhead(int maxEvents) throws IOException {
+	stateCheck();
+        
+        if (maxEvents < 0)
+            throw new IllegalArgumentException();
+        
+        if (maxEvents == 0)
+            return new RemoteEventData[0];
+        
+        // Check if empty
+	if (isEmpty()) 
+	    throw new NoSuchElementException();
+
+        printControlData(persistenceLogger, "TransientEventLog::readAhead");
+        int limit = (maxEvents < entries.size())?maxEvents:entries.size();
+        RemoteEventHolder[] evts = (RemoteEventHolder[])
+            entries.subList(0, limit).toArray(new RemoteEventHolder[0]);
+        RemoteEventData[] set = new RemoteEventData[evts.length];
+        for (int i=0; i<set.length; i++) {
+            set[i] = new RemoteEventData(
+                evts[i].getRemoteEvent(), Long.valueOf(evts[i].getID()));
+        }
+        return set;
+    }
+    
+    // Inherit documentation from supertype
+    public boolean isEmpty() throws IOException {
+	stateCheck();
+        return entries.isEmpty();
+    }
+
+    // Inherit documentation from supertype
+    public void remove() throws IOException {
+	stateCheck();
+	try {
+	    entries.remove(0);
+	} catch (IndexOutOfBoundsException iob) {
+	    throw new NoSuchElementException();
+	}
+        printControlData(persistenceLogger, "TransientEventLog::remove");
+    }
+
+    // Inherit documentation from supertype
+    public void moveAhead(Object cookie) throws IOException {
+	stateCheck();
+
+	if (cookie == null) return;
+        
+	if (persistenceLogger.isLoggable(Level.FINEST)) {
+            persistenceLogger.log(Level.FINEST, 
+	        "moveAhead past {0}", 
+                cookie);
+	}
+        // TODO - trap ClassCastException and throw?
+        long lastID = ((Long)cookie).longValue();
+
+	if (lastID >= eventCounter.get()) {
+	    throw new NoSuchElementException();
+	}
+        
+        RemoteEventHolder rh = null;
+        ListIterator iter = entries.listIterator();
+        while (iter.hasNext()) {
+            rh = (RemoteEventHolder)iter.next();
+            if (rh.getID() <= lastID) {
+                iter.remove();
+                if (persistenceLogger.isLoggable(Level.FINEST)) {
+                    persistenceLogger.log(Level.FINEST, 
+                        "Removing event with ID {0}", 
+                        Long.valueOf(rh.getID()));
+                }
+            } else {
+                break;
+            }
+                
+        }
+        printControlData(persistenceLogger, "TransientEventLog::moveAhead");
+    }
+    
+    // Inherit documentation from supertype
+    public void close() throws IOException {
+	stateCheck();
+        closed = true;
+	if (persistenceLogger.isLoggable(Level.FINEST)) {
+            persistenceLogger.log(Level.FINEST, 
+	        "TransientEventLog::close for {0}", uuid);
+	}
+	// Do nothing
+    }
+
+    // Inherit documentation from supertype
+    public void delete() throws IOException {
+        if (!closed)
+            throw new IOException("Cannot delete log until it is closed");
+	entries.clear();
+	if (persistenceLogger.isLoggable(Level.FINEST)) {
+            persistenceLogger.log(Level.FINEST, 
+	        "TransientEventLog::destroy for {0}", uuid);
+	}
+    }
+
+    
+    /**
+     * Output state information to the given <tt>Logger</tt>.
+     * This is intended for debugging purposes only.
+     */
+    private void printControlData(Logger logger, String msg) {
+	if (logger.isLoggable(Level.FINEST)) {
+	    logger.log(Level.FINEST, "{0}", msg);
+            logger.log(Level.FINEST, "ID: {0}", uuid);
+            logger.log(Level.FINEST, "NumEvents: {0}", 
+	        Long.valueOf(entries.size()));
+	}
+    }
+}

Modified: river/jtsk/modules/modularize/apache-river/river-services/mercury/mercury-service/src/main/java/org/apache/river/mercury/TransientMercuryImpl.java
URL: http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/mercury/mercury-service/src/main/java/org/apache/river/mercury/TransientMercuryImpl.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- river/jtsk/modules/modularize/apache-river/river-services/mercury/mercury-service/src/main/java/org/apache/river/mercury/TransientMercuryImpl.java (original)
+++ river/jtsk/modules/modularize/apache-river/river-services/mercury/mercury-service/src/main/java/org/apache/river/mercury/TransientMercuryImpl.java Sun Jul  5 11:41:39 2020
@@ -1,56 +1,56 @@
-/*
- * 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.mercury;
-
-import org.apache.river.start.LifeCycle;
-
-/**
- * Convenience class intended for use with the
- * {@link org.apache.river.start.ServiceStarter} framework to start
- * a <i>transient</i> (non-activatable, non-persistent) implementation
- * of Mercury.
- *
- * @author Sun Microsystems, Inc.
- * @since 2.0
- */
-class TransientMercuryImpl extends MailboxImpl {
-
-    /**
-     * Constructs a new instance of <code>MercuryImpl</code> that is not
-     * activatable, and which will not persist its state.
-     *
-     * @param configArgs <code>String</code> array whose elements are
-     *                   the arguments to use when creating the server.
-     * @param lifeCycle  instance of <code>LifeCycle</code> that, if 
-     *                   non-<code>null</code>, will cause this object's
-     *                   <code>unregister</code> method to be invoked during
-     *                   shutdown to notify the service starter framework that
-     *                   the reference to this service's implementation can be
-     *                   'released' for garbage collection. A value of 
-     *                   <code>null</code> for this argument is allowed.
-     *
-     * @throws Exception If there was a problem initializing the service.
-     */
-    TransientMercuryImpl(String[] configArgs, LifeCycle lifeCycle)
-        throws Exception
-    {
-        super(configArgs, lifeCycle, false);//false ==> not persistent
-    }//end constructor
-
-}//end class TransientMercuryImpl
-
+/*
+ * 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.mercury;
+
+import org.apache.river.start.lifecycle.LifeCycle;
+
+/**
+ * Convenience class intended for use with the
+ * {@link org.apache.river.start.ServiceStarter} framework to start
+ * a <i>transient</i> (non-activatable, non-persistent) implementation
+ * of Mercury.
+ *
+ * @author Sun Microsystems, Inc.
+ * @since 2.0
+ */
+class TransientMercuryImpl extends MailboxImpl {
+
+    /**
+     * Constructs a new instance of <code>MercuryImpl</code> that is not
+     * activatable, and which will not persist its state.
+     *
+     * @param configArgs <code>String</code> array whose elements are
+     *                   the arguments to use when creating the server.
+     * @param lifeCycle  instance of <code>LifeCycle</code> that, if 
+     *                   non-<code>null</code>, will cause this object's
+     *                   <code>unregister</code> method to be invoked during
+     *                   shutdown to notify the service starter framework that
+     *                   the reference to this service's implementation can be
+     *                   'released' for garbage collection. A value of 
+     *                   <code>null</code> for this argument is allowed.
+     *
+     * @throws Exception If there was a problem initializing the service.
+     */
+    TransientMercuryImpl(String[] configArgs, LifeCycle lifeCycle)
+        throws Exception
+    {
+        super(configArgs, lifeCycle, false);//false ==> not persistent
+    }//end constructor
+
+}//end class TransientMercuryImpl
+

Modified: river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/AbstractProxy.java
URL: http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/AbstractProxy.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/AbstractProxy.java (original)
+++ river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/AbstractProxy.java Sun Jul  5 11:41:39 2020
@@ -1,97 +1,97 @@
-/*
- * 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.norm;
-
-import java.io.IOException;
-import java.io.InvalidObjectException;
-import java.io.ObjectInputStream;
-import java.io.Serializable;
-import net.jini.id.ReferentUuid;
-import net.jini.id.ReferentUuids;
-import net.jini.id.Uuid;
-
-/**
- * Defines an abstract class that supplies basic referent UUID and
- * serialization behavior for Norm proxies.
- *
- * @author Sun Microsystems, Inc.
- * @since 2.0
- */
-abstract class AbstractProxy implements ReferentUuid, Serializable {
-    private static final long serialVersionUID = 1;
-
-    /**
-     * The server.
-     *
-     * @serial
-     */
-    final NormServer server;
-
-    /**
-     * The unique identifier for this proxy.
-     *
-     * @serial
-     */
-    final Uuid uuid;
-
-    /** Creates an instance of this class. */
-    AbstractProxy(NormServer server, Uuid uuid) {
-	if (server == null) {
-	    throw new NullPointerException("server cannot be null");
-	} else if (uuid == null) {
-	    throw new NullPointerException("uuid cannot be null");
-	}
-	this.server = server;
-	this.uuid = uuid;
-    }
-
-    /** Require fields to be non-null. */
-    private void readObjectNoData() throws InvalidObjectException {
-	throw new InvalidObjectException(
-	    "server and uuid must be non-null");
-    }
-
-    /** Require fields to be non-null. */
-    private void readObject(ObjectInputStream in)
-	throws IOException, ClassNotFoundException
-    {
-	in.defaultReadObject();
-	if (server == null || uuid == null) {
-	    throw new InvalidObjectException(
-		"server and uuid must be non-null");
-	}
-    }
-
-    /** Returns true if the object has the same UUID as this instance. */
-    public boolean equals(Object object) {
-	return ReferentUuids.compare(this, object);
-    }
-
-    /** Returns a hash code for this object. */
-    public int hashCode() {
-	return uuid.hashCode();
-    }
-
-    /* -- Implement ReferentUuid -- */
-
-    /* inherit javadoc */
-    public Uuid getReferentUuid() {
-	return uuid;
-    }
-}
+/*
+ * 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.norm.proxy;
+
+import java.io.IOException;
+import java.io.InvalidObjectException;
+import java.io.ObjectInputStream;
+import java.io.Serializable;
+import net.jini.id.ReferentUuid;
+import net.jini.id.ReferentUuids;
+import net.jini.id.Uuid;
+
+/**
+ * Defines an abstract class that supplies basic referent UUID and
+ * serialization behavior for Norm proxies.
+ *
+ * @author Sun Microsystems, Inc.
+ * @since 2.0
+ */
+abstract class AbstractProxy implements ReferentUuid, Serializable {
+    private static final long serialVersionUID = 1;
+
+    /**
+     * The server.
+     *
+     * @serial
+     */
+    final NormServer server;
+
+    /**
+     * The unique identifier for this proxy.
+     *
+     * @serial
+     */
+    final Uuid uuid;
+
+    /** Creates an instance of this class. */
+    AbstractProxy(NormServer server, Uuid uuid) {
+	if (server == null) {
+	    throw new NullPointerException("server cannot be null");
+	} else if (uuid == null) {
+	    throw new NullPointerException("uuid cannot be null");
+	}
+	this.server = server;
+	this.uuid = uuid;
+    }
+
+    /** Require fields to be non-null. */
+    private void readObjectNoData() throws InvalidObjectException {
+	throw new InvalidObjectException(
+	    "server and uuid must be non-null");
+    }
+
+    /** Require fields to be non-null. */
+    private void readObject(ObjectInputStream in)
+	throws IOException, ClassNotFoundException
+    {
+	in.defaultReadObject();
+	if (server == null || uuid == null) {
+	    throw new InvalidObjectException(
+		"server and uuid must be non-null");
+	}
+    }
+
+    /** Returns true if the object has the same UUID as this instance. */
+    public boolean equals(Object object) {
+	return ReferentUuids.compare(this, object);
+    }
+
+    /** Returns a hash code for this object. */
+    public int hashCode() {
+	return uuid.hashCode();
+    }
+
+    /* -- Implement ReferentUuid -- */
+
+    /* inherit javadoc */
+    public Uuid getReferentUuid() {
+	return uuid;
+    }
+}

Modified: river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/AdminProxy.java
URL: http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/AdminProxy.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/AdminProxy.java (original)
+++ river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/AdminProxy.java Sun Jul  5 11:41:39 2020
@@ -1,186 +1,186 @@
-/*
- * 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.norm;
-
-import org.apache.river.admin.DestroyAdmin;
-import java.io.IOException;
-import java.io.InvalidObjectException;
-import java.io.ObjectInputStream;
-import java.rmi.RemoteException;
-import net.jini.admin.JoinAdmin;
-import net.jini.core.constraint.MethodConstraints;
-import net.jini.core.constraint.RemoteMethodControl;
-import net.jini.core.discovery.LookupLocator;
-import net.jini.core.entry.Entry;
-import net.jini.id.Uuid;
-import net.jini.security.proxytrust.ProxyTrustIterator;
-import net.jini.security.proxytrust.SingletonProxyTrustIterator;
-
-/**
- * Defines a proxy for a Norm server's admin object.
- *
- * @author Sun Microsystems, Inc.
- * @since 2.0
- */
-class AdminProxy extends AbstractProxy implements JoinAdmin, DestroyAdmin {
-    private static final long serialVersionUID = 1;
-
-    /**
-     * Creates an admin proxy, returning an instance that implements
-     * RemoteMethodControl if the server does.
-     */
-    static AdminProxy create(NormServer server, Uuid serverUuid) {
-	if (server instanceof RemoteMethodControl) {
-	    return new ConstrainableAdminProxy(server, serverUuid);
-	} else {
-	    return new AdminProxy(server, serverUuid);
-	}
-    }
-
-    /** Creates an instance of this class. */
-    AdminProxy(NormServer server, Uuid serverUuid) {
-	super(server, serverUuid);
-    }
-
-    /** Require fields to be non-null. */
-    private void readObjectNoData() throws InvalidObjectException {
-	throw new InvalidObjectException(
-	    "server and uuid must be non-null");
-    }
-
-    /* -- Implement JoinAdmin -- */
-
-    /* inherit javadoc */
-    public Entry[] getLookupAttributes() throws RemoteException {
-	return server.getLookupAttributes();
-    }
-
-    /* inherit javadoc */
-    public void addLookupAttributes(Entry[] attrSets) throws RemoteException {
-	server.addLookupAttributes(attrSets);
-    }
-
-    /* inherit javadoc */
-    public void modifyLookupAttributes(Entry[] attrSetTemplates, 
-				       Entry[] attrSets) 
-	throws RemoteException
-    {
-	server.modifyLookupAttributes(attrSetTemplates, attrSets);
-    }
-  
-    /* inherit javadoc */
-    public String[] getLookupGroups() throws RemoteException {
-	return server.getLookupGroups();
-    }
-
-    /* inherit javadoc */
-    public void addLookupGroups(String[] groups) throws RemoteException {
-	server.addLookupGroups(groups);
-    }
-
-    /* inherit javadoc */
-    public void removeLookupGroups(String[] groups) throws RemoteException {
-	server.removeLookupGroups(groups);
-    }
-
-    /* inherit javadoc */
-    public void setLookupGroups(String[] groups) throws RemoteException {
-	server.setLookupGroups(groups);
-    }
-
-    /* inherit javadoc */
-    public LookupLocator[] getLookupLocators() throws RemoteException {
-	return server.getLookupLocators();
-    }
-
-    /* inherit javadoc */
-    public void addLookupLocators(LookupLocator[] locators)
-	throws RemoteException
-    {
-	server.addLookupLocators(locators);
-    }
-
-    /* inherit javadoc */
-    public void removeLookupLocators(LookupLocator[] locators)
-	throws RemoteException
-    {
-	server.removeLookupLocators(locators);
-    }
-
-    /* inherit javadoc */
-    public void setLookupLocators(LookupLocator[] locators)
-	throws RemoteException
-    {
-	server.setLookupLocators(locators);
-    }
-
-    /* -- Implement DestroyAdmin -- */
-
-    /* inherit javadoc */
-    public void destroy() throws RemoteException {
-	server.destroy();
-    }
-
-    /** Defines a subclass that implements RemoteMethodControl. */
-    static final class ConstrainableAdminProxy extends AdminProxy
-	implements RemoteMethodControl
-    {
-	private static final long serialVersionUID = 1;
-
-	/** Creates an instance of this class. */
-	ConstrainableAdminProxy(NormServer server, Uuid serverUuid) {
-	    super(server, serverUuid);
-	    if (!(server instanceof RemoteMethodControl)) {
-		throw new IllegalArgumentException(
-		    "server must implement RemoteMethodControl");
-	    }
-	}
-
-	/** Require server to implement RemoteMethodControl. */
-	private void readObject(ObjectInputStream in)
-	    throws IOException, ClassNotFoundException
-	{
-	    in.defaultReadObject();
-	    if (!(server instanceof RemoteMethodControl)) {
-		throw new InvalidObjectException(
-		    "server must implement RemoteMethodControl");
-	    }
-	}
-
-	/* inherit javadoc */
-	public RemoteMethodControl setConstraints(
-	    MethodConstraints constraints)
-	{
-	    NormServer constrainedServer = (NormServer)
-		((RemoteMethodControl) server).setConstraints(constraints);
-	    return new ConstrainableAdminProxy(constrainedServer, uuid);
-	}
-
-	/* inherit javadoc */
-	public MethodConstraints getConstraints() {
-	    return ((RemoteMethodControl) server).getConstraints();
-	}
-
-	/**
-	 * Returns a proxy trust iterator that yields this object's server.
-	 */
-	private ProxyTrustIterator getProxyTrustIterator() {
-	    return new SingletonProxyTrustIterator(server);
-	}
-    }
-}
+/*
+ * 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.norm.proxy;
+
+import org.apache.river.admin.DestroyAdmin;
+import java.io.IOException;
+import java.io.InvalidObjectException;
+import java.io.ObjectInputStream;
+import java.rmi.RemoteException;
+import net.jini.admin.JoinAdmin;
+import net.jini.core.constraint.MethodConstraints;
+import net.jini.core.constraint.RemoteMethodControl;
+import net.jini.core.discovery.LookupLocator;
+import net.jini.core.entry.Entry;
+import net.jini.id.Uuid;
+import net.jini.security.proxytrust.ProxyTrustIterator;
+import net.jini.security.proxytrust.SingletonProxyTrustIterator;
+
+/**
+ * Defines a proxy for a Norm server's admin object.
+ *
+ * @author Sun Microsystems, Inc.
+ * @since 2.0
+ */
+public class AdminProxy extends AbstractProxy implements JoinAdmin, DestroyAdmin {
+    private static final long serialVersionUID = 1;
+
+    /**
+     * Creates an admin proxy, returning an instance that implements
+     * RemoteMethodControl if the server does.
+     */
+    public static AdminProxy create(NormServer server, Uuid serverUuid) {
+	if (server instanceof RemoteMethodControl) {
+	    return new ConstrainableAdminProxy(server, serverUuid);
+	} else {
+	    return new AdminProxy(server, serverUuid);
+	}
+    }
+
+    /** Creates an instance of this class. */
+    AdminProxy(NormServer server, Uuid serverUuid) {
+	super(server, serverUuid);
+    }
+
+    /** Require fields to be non-null. */
+    private void readObjectNoData() throws InvalidObjectException {
+	throw new InvalidObjectException(
+	    "server and uuid must be non-null");
+    }
+
+    /* -- Implement JoinAdmin -- */
+
+    /* inherit javadoc */
+    public Entry[] getLookupAttributes() throws RemoteException {
+	return server.getLookupAttributes();
+    }
+
+    /* inherit javadoc */
+    public void addLookupAttributes(Entry[] attrSets) throws RemoteException {
+	server.addLookupAttributes(attrSets);
+    }
+
+    /* inherit javadoc */
+    public void modifyLookupAttributes(Entry[] attrSetTemplates, 
+				       Entry[] attrSets) 
+	throws RemoteException
+    {
+	server.modifyLookupAttributes(attrSetTemplates, attrSets);
+    }
+  
+    /* inherit javadoc */
+    public String[] getLookupGroups() throws RemoteException {
+	return server.getLookupGroups();
+    }
+
+    /* inherit javadoc */
+    public void addLookupGroups(String[] groups) throws RemoteException {
+	server.addLookupGroups(groups);
+    }
+
+    /* inherit javadoc */
+    public void removeLookupGroups(String[] groups) throws RemoteException {
+	server.removeLookupGroups(groups);
+    }
+
+    /* inherit javadoc */
+    public void setLookupGroups(String[] groups) throws RemoteException {
+	server.setLookupGroups(groups);
+    }
+
+    /* inherit javadoc */
+    public LookupLocator[] getLookupLocators() throws RemoteException {
+	return server.getLookupLocators();
+    }
+
+    /* inherit javadoc */
+    public void addLookupLocators(LookupLocator[] locators)
+	throws RemoteException
+    {
+	server.addLookupLocators(locators);
+    }
+
+    /* inherit javadoc */
+    public void removeLookupLocators(LookupLocator[] locators)
+	throws RemoteException
+    {
+	server.removeLookupLocators(locators);
+    }
+
+    /* inherit javadoc */
+    public void setLookupLocators(LookupLocator[] locators)
+	throws RemoteException
+    {
+	server.setLookupLocators(locators);
+    }
+
+    /* -- Implement DestroyAdmin -- */
+
+    /* inherit javadoc */
+    public void destroy() throws RemoteException {
+	server.destroy();
+    }
+
+    /** Defines a subclass that implements RemoteMethodControl. */
+    static final class ConstrainableAdminProxy extends AdminProxy
+	implements RemoteMethodControl
+    {
+	private static final long serialVersionUID = 1;
+
+	/** Creates an instance of this class. */
+	ConstrainableAdminProxy(NormServer server, Uuid serverUuid) {
+	    super(server, serverUuid);
+	    if (!(server instanceof RemoteMethodControl)) {
+		throw new IllegalArgumentException(
+		    "server must implement RemoteMethodControl");
+	    }
+	}
+
+	/** Require server to implement RemoteMethodControl. */
+	private void readObject(ObjectInputStream in)
+	    throws IOException, ClassNotFoundException
+	{
+	    in.defaultReadObject();
+	    if (!(server instanceof RemoteMethodControl)) {
+		throw new InvalidObjectException(
+		    "server must implement RemoteMethodControl");
+	    }
+	}
+
+	/* inherit javadoc */
+	public RemoteMethodControl setConstraints(
+	    MethodConstraints constraints)
+	{
+	    NormServer constrainedServer = (NormServer)
+		((RemoteMethodControl) server).setConstraints(constraints);
+	    return new ConstrainableAdminProxy(constrainedServer, uuid);
+	}
+
+	/* inherit javadoc */
+	public MethodConstraints getConstraints() {
+	    return ((RemoteMethodControl) server).getConstraints();
+	}
+
+	/**
+	 * Returns a proxy trust iterator that yields this object's server.
+	 */
+	private ProxyTrustIterator getProxyTrustIterator() {
+	    return new SingletonProxyTrustIterator(server);
+	}
+    }
+}

Modified: river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/CorruptedStoreException.java
URL: http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/CorruptedStoreException.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/CorruptedStoreException.java (original)
+++ river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/CorruptedStoreException.java Sun Jul  5 11:41:39 2020
@@ -1,48 +1,48 @@
-/*
- * 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.norm;
-
-/**
- * Exception thrown by <code>PersistentStore</code> when it discovers
- * the store has become corrupted.
- *
- * @author Sun Microsystems, Inc.
- *
- */
-class CorruptedStoreException extends StoreException {
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * Constructs an <code>CorruptedStoreException</code> with a detail
-     * message.
-     * @param s the detailed message
-     */
-    CorruptedStoreException(String s) {
-	super(s);
-    }
-
-    /**
-     * Constructs an <code>CorruptedStoreException</code> with a detail
-     * message and a nested exception.    
-     * @param s the detailed message
-     * @param t root cause for exception, may be <code>null</code>
-     */
-    CorruptedStoreException(String s, Throwable t) {
-	super(s, t);
-    }
-}
+/*
+ * 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.norm.proxy;
+
+/**
+ * Exception thrown by <code>PersistentStore</code> when it discovers
+ * the store has become corrupted.
+ *
+ * @author Sun Microsystems, Inc.
+ *
+ */
+public class CorruptedStoreException extends StoreException {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * Constructs an <code>CorruptedStoreException</code> with a detail
+     * message.
+     * @param s the detailed message
+     */
+    public CorruptedStoreException(String s) {
+    	super(s);
+    }
+
+    /**
+     * Constructs an <code>CorruptedStoreException</code> with a detail
+     * message and a nested exception.    
+     * @param s the detailed message
+     * @param t root cause for exception, may be <code>null</code>
+     */
+    public CorruptedStoreException(String s, Throwable t) {
+	super(s, t);
+    }
+}

Modified: river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/GetLeasesResult.java
URL: http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/GetLeasesResult.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/GetLeasesResult.java (original)
+++ river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/GetLeasesResult.java Sun Jul  5 11:41:39 2020
@@ -1,74 +1,74 @@
-/*
- * 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.norm;
-
-import org.apache.river.proxy.MarshalledWrapper;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectStreamField;
-import java.io.Serializable;
-import net.jini.io.MarshalledInstance;
-
-/**
- * Holds the results of a call to {@link NormServer#getLeases
- * NormServer.getLeases}.
- */
-final class GetLeasesResult implements Serializable {
-    private static final long serialVersionUID = 1;
-
-    /**
-     * @serialField marshalledLeases MarshalledInstance[] The marshalled
-     *		    leases.
-     */
-    private static final ObjectStreamField[] serialPersistentFields = {
-	/* Make sure the marshalled leases array is not shared */
-	new ObjectStreamField(
-	    "marshalledLeases", MarshalledInstance[].class, true)
-    };
-
-    /** Whether to verify codebase integrity. */
-    private transient boolean verifyCodebaseIntegrity;
-
-    /** The marshalled leases. */
-    final MarshalledInstance[] marshalledLeases;
-
-    /**
-     * Creates an object that holds the results of a call to {@link NormServerBaseImpl#getLeases
-     * getLeases}.
-     *
-     * @param marshalledLeases the leases being returned by the call
-     */
-    GetLeasesResult(MarshalledInstance[] marshalledLeases) {
-	this.marshalledLeases = marshalledLeases;
-    }
-
-    /**
-     * Returns whether to verify codebase integrity when unmarshalling leases.
-     */
-    boolean verifyCodebaseIntegrity() {
-	return verifyCodebaseIntegrity;
-    }
-
-    /* Set transient fields. */
-    private void readObject(ObjectInputStream in)
-	throws IOException, ClassNotFoundException
-    {
-	in.defaultReadObject();
-	verifyCodebaseIntegrity = MarshalledWrapper.integrityEnforced(in);
-    }
-}
+/*
+ * 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.norm.proxy;
+
+import org.apache.river.proxy.MarshalledWrapper;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectStreamField;
+import java.io.Serializable;
+import net.jini.io.MarshalledInstance;
+
+/**
+ * Holds the results of a call to {@link NormServer#getLeases
+ * NormServer.getLeases}.
+ */
+public final class GetLeasesResult implements Serializable {
+    private static final long serialVersionUID = 1;
+
+    /**
+     * @serialField marshalledLeases MarshalledInstance[] The marshalled
+     *		    leases.
+     */
+    private static final ObjectStreamField[] serialPersistentFields = {
+	/* Make sure the marshalled leases array is not shared */
+	new ObjectStreamField(
+	    "marshalledLeases", MarshalledInstance[].class, true)
+    };
+
+    /** Whether to verify codebase integrity. */
+    private transient boolean verifyCodebaseIntegrity;
+
+    /** The marshalled leases. */
+    final MarshalledInstance[] marshalledLeases;
+
+    /**
+     * Creates an object that holds the results of a call to {@link NormServerBaseImpl#getLeases
+     * getLeases}.
+     *
+     * @param marshalledLeases the leases being returned by the call
+     */
+    public GetLeasesResult(MarshalledInstance[] marshalledLeases) {
+	this.marshalledLeases = marshalledLeases;
+    }
+
+    /**
+     * Returns whether to verify codebase integrity when unmarshalling leases.
+     */
+    boolean verifyCodebaseIntegrity() {
+	return verifyCodebaseIntegrity;
+    }
+
+    /* Set transient fields. */
+    private void readObject(ObjectInputStream in)
+	throws IOException, ClassNotFoundException
+    {
+	in.defaultReadObject();
+	verifyCodebaseIntegrity = MarshalledWrapper.integrityEnforced(in);
+    }
+}

Modified: river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/InternalNormException.java
URL: http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/InternalNormException.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/InternalNormException.java (original)
+++ river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/InternalNormException.java Sun Jul  5 11:41:39 2020
@@ -1,95 +1,95 @@
-/*
- * 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.norm;
-
-import java.io.PrintStream;
-import java.io.PrintWriter;
-
-/**
- * This exception denotes a problem with the local implementation of a
- * Norm server.	 The <code>detail</code> field will give a description
- * that can be reported to Norm's developer (and may be documented
- * in that Norm's documentation).
- *
- * @author Sun Microsystems, Inc.
- */
-public class InternalNormException extends RuntimeException {
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * The exception (if any) that triggered the internal exception.  This
-     * may be <code>null</code>.
-     *
-     * @serial
-     */
-    public final Throwable nestedException;
-
-    /**
-     * Create an exception, forwarding a string to the superclass constructor.
-     *
-     * @param str the detail message
-     */
-    public InternalNormException(String str) {
-	super(str);
-	nestedException = null;
-    }
-
-    /**
-     * Create an exception, forwarding a string and exception to the
-     * superclass constructor.
-     *
-     * @param str the detail message
-     * @param ex the cause
-     */
-    public InternalNormException(String str, Throwable ex) {
-	super(str);
-	nestedException = ex;
-    }
-
-    /**
-     * Print the stack trace of this exception, plus that of the nested
-     * exception, if any.
-     */
-    public void printStackTrace() {
-	printStackTrace(System.err);
-    }
-
-    /**
-     * Print the stack trace of this exception, plus that of the nested
-     * exception, if any.
-     */
-    public void printStackTrace(PrintStream out) {
-	super.printStackTrace(out);
-	if (nestedException != null) {
-	    out.println("nested exception:");
-	    nestedException.printStackTrace(out);
-	}
-    }
-
-    /**
-     * Print the stack trace of this exception, plus that of the nested
-     * exception, if any.
-     */
-    public void printStackTrace(PrintWriter out) {
-	super.printStackTrace(out);
-	if (nestedException != null) {
-	    out.println("nested exception:");
-	    nestedException.printStackTrace(out);
-	}
-    }
-}
+/*
+ * 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.norm.proxy;
+
+import java.io.PrintStream;
+import java.io.PrintWriter;
+
+/**
+ * This exception denotes a problem with the local implementation of a
+ * Norm server.	 The <code>detail</code> field will give a description
+ * that can be reported to Norm's developer (and may be documented
+ * in that Norm's documentation).
+ *
+ * @author Sun Microsystems, Inc.
+ */
+public class InternalNormException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * The exception (if any) that triggered the internal exception.  This
+     * may be <code>null</code>.
+     *
+     * @serial
+     */
+    public final Throwable nestedException;
+
+    /**
+     * Create an exception, forwarding a string to the superclass constructor.
+     *
+     * @param str the detail message
+     */
+    public InternalNormException(String str) {
+	super(str);
+	nestedException = null;
+    }
+
+    /**
+     * Create an exception, forwarding a string and exception to the
+     * superclass constructor.
+     *
+     * @param str the detail message
+     * @param ex the cause
+     */
+    public InternalNormException(String str, Throwable ex) {
+	super(str);
+	nestedException = ex;
+    }
+
+    /**
+     * Print the stack trace of this exception, plus that of the nested
+     * exception, if any.
+     */
+    public void printStackTrace() {
+	printStackTrace(System.err);
+    }
+
+    /**
+     * Print the stack trace of this exception, plus that of the nested
+     * exception, if any.
+     */
+    public void printStackTrace(PrintStream out) {
+	super.printStackTrace(out);
+	if (nestedException != null) {
+	    out.println("nested exception:");
+	    nestedException.printStackTrace(out);
+	}
+    }
+
+    /**
+     * Print the stack trace of this exception, plus that of the nested
+     * exception, if any.
+     */
+    public void printStackTrace(PrintWriter out) {
+	super.printStackTrace(out);
+	if (nestedException != null) {
+	    out.println("nested exception:");
+	    nestedException.printStackTrace(out);
+	}
+    }
+}

Modified: river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/NormPermission.java
URL: http://svn.apache.org/viewvc/river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/NormPermission.java?rev=1879521&r1=1879520&r2=1879521&view=diff
==============================================================================
--- river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/NormPermission.java (original)
+++ river/jtsk/modules/modularize/apache-river/river-services/norm/norm-dl/src/main/java/org/apache/river/norm/proxy/NormPermission.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.norm;
-
-import org.apache.river.admin.DestroyAdmin;
-import net.jini.admin.Administrable;
-import net.jini.admin.JoinAdmin;
-import net.jini.core.lease.Lease;
-import net.jini.core.lease.LeaseMap;
-import net.jini.jeri.BasicInvocationDispatcher;
-import net.jini.jeri.BasicJeriExporter;
-import net.jini.lease.LeaseRenewalService;
-import net.jini.lease.LeaseRenewalSet;
-import net.jini.security.AccessPermission;
-
-/**
- * Represents permissions that can be used to express the access control policy
- * for the a Norm server exported with a {@link BasicJeriExporter}. This class
- * can be passed to {@link BasicInvocationDispatcher}, and then used in
- * security policy permission grants. <p>
- *
- * An instance contains a name (also referred to as a "target name") but no
- * actions list; you either have the named permission or you don't. The
- * convention is that the target name is the non-qualified name of the remote
- * method being invoked. Wildcard matches are supported using the syntax
- * specified by {@link AccessPermission}. <p>
- *
- * The possible target names for use with a Norm server are specified in the
- * package documentation for {@link org.apache.river.norm}.
- *
- * @author Sun Microsystems, Inc.
- * @since 2.0
- */
-public class NormPermission extends AccessPermission {
-    private static final long serialVersionUID = 1;
-
-    /**
-     * Creates an instance with the specified target name.
-     *
-     * @param name the target name
-     * @throws NullPointerException if the target name is <code>null</code>
-     * @throws IllegalArgumentException if the target name does not match
-     * the syntax specified in the comments at the beginning of the {@link
-     * AccessPermission} class
-     */
-    public NormPermission(String name) {
-	super(name);
-    }
-}
+/*
+ * 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.norm.proxy;
+
+import org.apache.river.admin.DestroyAdmin;
+import net.jini.admin.Administrable;
+import net.jini.admin.JoinAdmin;
+import net.jini.core.lease.Lease;
+import net.jini.core.lease.LeaseMap;
+import net.jini.jeri.BasicInvocationDispatcher;
+import net.jini.jeri.BasicJeriExporter;
+import net.jini.lease.LeaseRenewalService;
+import net.jini.lease.LeaseRenewalSet;
+import net.jini.security.AccessPermission;
+
+/**
+ * Represents permissions that can be used to express the access control policy
+ * for the a Norm server exported with a {@link BasicJeriExporter}. This class
+ * can be passed to {@link BasicInvocationDispatcher}, and then used in
+ * security policy permission grants. <p>
+ *
+ * An instance contains a name (also referred to as a "target name") but no
+ * actions list; you either have the named permission or you don't. The
+ * convention is that the target name is the non-qualified name of the remote
+ * method being invoked. Wildcard matches are supported using the syntax
+ * specified by {@link AccessPermission}. <p>
+ *
+ * The possible target names for use with a Norm server are specified in the
+ * package documentation for {@link org.apache.river.norm}.
+ *
+ * @author Sun Microsystems, Inc.
+ * @since 2.0
+ */
+public class NormPermission extends AccessPermission {
+    private static final long serialVersionUID = 1;
+
+    /**
+     * Creates an instance with the specified target name.
+     *
+     * @param name the target name
+     * @throws NullPointerException if the target name is <code>null</code>
+     * @throws IllegalArgumentException if the target name does not match
+     * the syntax specified in the comments at the beginning of the {@link
+     * AccessPermission} class
+     */
+    public NormPermission(String name) {
+	super(name);
+    }
+}