You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by th...@apache.org on 2009/05/05 14:26:54 UTC

svn commit: r771693 - in /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data: DataStore.java FileDataStore.java GarbageCollector.java db/DbDataStore.java db/Pool.java

Author: thomasm
Date: Tue May  5 12:26:35 2009
New Revision: 771693

URL: http://svn.apache.org/viewvc?rev=771693&view=rev
Log:
JCR-2087 Upgrade to Java 5 as the base platform

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/DataStore.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/GarbageCollector.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/DbDataStore.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/Pool.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/DataStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/DataStore.java?rev=771693&r1=771692&r2=771693&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/DataStore.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/DataStore.java Tue May  5 12:26:35 2009
@@ -106,7 +106,7 @@
      * @return an iterator over all DataIdentifier objects
      * @throws DataStoreException if the list could not be read
      */
-    Iterator getAllIdentifiers() throws DataStoreException;
+    Iterator<DataIdentifier> getAllIdentifiers() throws DataStoreException;
 
     /**
      * Initialized the data store

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java?rev=771693&r1=771692&r2=771693&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java Tue May  5 12:26:35 2009
@@ -104,7 +104,8 @@
     /**
      * All data identifiers that are currently in use are in this set until they are garbage collected.
      */
-    protected Map inUse = Collections.synchronizedMap(new WeakHashMap());
+    protected Map<DataIdentifier, WeakReference<DataIdentifier>> inUse = 
+        Collections.synchronizedMap(new WeakHashMap<DataIdentifier, WeakReference<DataIdentifier>>());
 
     /**
      * Creates a uninitialized data store.
@@ -165,7 +166,7 @@
     }
 
     private void usesIdentifier(DataIdentifier identifier) {
-        inUse.put(identifier, new WeakReference(identifier));
+        inUse.put(identifier, new WeakReference<DataIdentifier>(identifier));
     }
 
     /**
@@ -308,10 +309,10 @@
                 }
             }
         } else if (file.isDirectory()) {
-            File[] list = file.listFiles();
-            for (int i = 0; i < list.length; i++) {
-                count += deleteOlderRecursive(list[i], min);
+            for (File f: file.listFiles()) {
+                count += deleteOlderRecursive(f, min);
             }
+            
             // JCR-1396: FileDataStore Garbage Collector and empty directories
             // Automatic removal of empty directories (but not the root!)
             synchronized (this) {
@@ -323,14 +324,15 @@
         return count;
     }
 
-    private void listRecursive(List list, File file) {
-        File[] l = file.listFiles();
-        for (int i = 0; l != null && i < l.length; i++) {
-            File f = l[i];
-            if (f.isDirectory()) {
-                listRecursive(list, f);
-            } else {
-                list.add(f);
+    private void listRecursive(List<File> list, File file) {
+        File[] files = file.listFiles();
+        if (files != null) {
+            for (File f : files) {
+                if (f.isDirectory()) {
+                    listRecursive(list, f);
+                } else {
+                    list.add(f);
+                }
             }
         }
     }
@@ -338,12 +340,11 @@
     /**
      * {@inheritDoc}
      */
-    public Iterator getAllIdentifiers() {
-        ArrayList files = new ArrayList();
+    public Iterator<DataIdentifier> getAllIdentifiers() {
+        ArrayList<File> files = new ArrayList<File>();
         listRecursive(files, directory);
-        ArrayList identifiers = new ArrayList();
-        for (int i = 0; i < files.size(); i++) {
-            File f = (File) files.get(i);
+        ArrayList<DataIdentifier> identifiers = new ArrayList<DataIdentifier>();
+        for (File f: files) {
             String name = f.getName();
             if (!name.startsWith(TMP)) {
                 DataIdentifier id = new DataIdentifier(name);

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/GarbageCollector.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/GarbageCollector.java?rev=771693&r1=771692&r2=771693&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/GarbageCollector.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/GarbageCollector.java Tue May  5 12:26:35 2009
@@ -17,6 +17,7 @@
 package org.apache.jackrabbit.core.data;
 
 import org.apache.jackrabbit.core.NodeId;
+import org.apache.jackrabbit.core.NodeIdIterator;
 import org.apache.jackrabbit.core.PropertyId;
 import org.apache.jackrabbit.core.RepositoryImpl;
 import org.apache.jackrabbit.core.SessionImpl;
@@ -78,7 +79,7 @@
 
     private long startScanTimestamp;
 
-    private final ArrayList listeners = new ArrayList();
+    private final ArrayList<Listener> listeners = new ArrayList<Listener>();
 
     private final IterablePersistenceManager[] pmList;
 
@@ -157,8 +158,8 @@
         }
 
         if (pmList == null || !persistenceManagerScan) {
-            for (int i = 0; i < sessionList.length; i++) {
-                scanNodes(sessionList[i]);
+            for (Session s : sessionList) {
+                scanNodes(s);
             }
         } else {
             scanPersistenceManagers();
@@ -199,11 +200,10 @@
     }
 
     private void scanPersistenceManagers() throws ItemStateException, RepositoryException {
-        for (int i = 0; i < pmList.length; i++) {
-            IterablePersistenceManager pm = pmList[i];
-            Iterator it = pm.getAllNodeIds(null, 0);
+        for (IterablePersistenceManager pm : pmList) {
+            NodeIdIterator it = pm.getAllNodeIds(null, 0);
             while (it.hasNext()) {
-                NodeId id = (NodeId) it.next();
+                NodeId id = it.nextNodeId();
                 if (callback != null) {
                     callback.beforeScanning(null);
                 }
@@ -216,9 +216,8 @@
                         PropertyId pid = new PropertyId(id, name);
                         PropertyState ps = pm.load(pid);
                         if (ps.getType() == PropertyType.BINARY) {
-                            InternalValue[] values = ps.getValues();
-                            for (int j = 0; j < values.length; j++) {
-                                values[j].getBLOBFileValue().getLength();
+                            for (InternalValue v : ps.getValues()) {
+                                v.getBLOBFileValue().getLength();
                             }
                         }
                     }
@@ -235,8 +234,7 @@
 
     public void stopScan() throws RepositoryException {
         checkScanStarted();
-        for (int i = 0; i < listeners.size(); i++) {
-            Listener listener = (Listener) listeners.get(i);
+        for (Listener listener : listeners) {
             try {
                 listener.stop();
             } catch (Exception e) {

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/DbDataStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/DbDataStore.java?rev=771693&r1=771692&r2=771693&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/DbDataStore.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/DbDataStore.java Tue May  5 12:26:35 2009
@@ -282,12 +282,13 @@
     /**
      * All data identifiers that are currently in use are in this set until they are garbage collected.
      */
-    protected Map inUse = Collections.synchronizedMap(new WeakHashMap());
+    protected Map<DataIdentifier, WeakReference<DataIdentifier>> inUse = 
+        Collections.synchronizedMap(new WeakHashMap<DataIdentifier, WeakReference<DataIdentifier>>());
     
     /**
      * The temporary identifiers that are currently in use.
      */
-    protected List temporaryInUse = Collections.synchronizedList(new ArrayList());
+    protected List<String> temporaryInUse = Collections.synchronizedList(new ArrayList<String>());
 
     /**
      * {@inheritDoc}
@@ -418,17 +419,15 @@
     public synchronized int deleteAllOlderThan(long min) throws DataStoreException {
         ConnectionRecoveryManager conn = getConnection();
         try {
-            ArrayList touch = new ArrayList();
-            for (Iterator it = new ArrayList(inUse.keySet()).iterator(); it.hasNext();) {
-                DataIdentifier identifier = (DataIdentifier) it.next();
+            ArrayList<String> touch = new ArrayList<String>();
+            ArrayList<DataIdentifier> ids = new ArrayList<DataIdentifier>(inUse.keySet());
+            for (DataIdentifier identifier: ids) {
                 if (identifier != null) {
                     touch.add(identifier.toString());
                 }
             }
             touch.addAll(temporaryInUse);
-            Iterator it = touch.iterator();
-            while (it.hasNext()) {
-                String key = (String) it.next();
+            for (String key : touch) {
                 updateLastModifiedDate(key, 0);
             }
             // DELETE FROM DATASTORE WHERE LAST_MODIFIED<?
@@ -444,9 +443,9 @@
     /**
      * {@inheritDoc}
      */
-    public Iterator getAllIdentifiers() throws DataStoreException {
+    public Iterator<DataIdentifier> getAllIdentifiers() throws DataStoreException {
         ConnectionRecoveryManager conn = getConnection();
-        ArrayList list = new ArrayList();
+        ArrayList<DataIdentifier> list = new ArrayList<DataIdentifier>();
         ResultSet rs = null;
         try {
             // SELECT ID FROM DATASTORE
@@ -830,16 +829,15 @@
      * {@inheritDoc}
      */
     public synchronized void close() {
-        ArrayList list = connectionPool.getAll();
-        for (int i = 0; i < list.size(); i++) {
-            ConnectionRecoveryManager conn = (ConnectionRecoveryManager) list.get(i);
+        ArrayList<ConnectionRecoveryManager> list = connectionPool.getAll();
+        for (ConnectionRecoveryManager conn : list) {
             conn.close();
         }
         list.clear();
     }
 
     protected void usesIdentifier(DataIdentifier identifier) {
-        inUse.put(identifier, new WeakReference(identifier));
+        inUse.put(identifier, new WeakReference<DataIdentifier>(identifier));
     }
 
     /**

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/Pool.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/Pool.java?rev=771693&r1=771692&r2=771693&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/Pool.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/data/db/Pool.java Tue May  5 12:26:35 2009
@@ -17,10 +17,11 @@
 package org.apache.jackrabbit.core.data.db;
 
 import java.util.ArrayList;
+import java.util.concurrent.LinkedBlockingQueue;
 
 import javax.jcr.RepositoryException;
 
-import EDU.oswego.cs.dl.util.concurrent.LinkedQueue;
+import org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager;
 
 /**
  * Implementation of a simple ConnectionRecoveryManager pool.
@@ -29,9 +30,9 @@
  */
 public class Pool {
     protected final int maxSize;
-    protected final ArrayList all = new ArrayList();
+    protected final ArrayList<ConnectionRecoveryManager> all = new ArrayList<ConnectionRecoveryManager>();
     protected final DbDataStore factory;
-    protected final LinkedQueue pool = new LinkedQueue();
+    protected final LinkedBlockingQueue<ConnectionRecoveryManager> pool = new LinkedBlockingQueue<ConnectionRecoveryManager>();
 
     /**
      * Create a new pool using the given factory and maximum pool size.
@@ -51,8 +52,8 @@
      *
      * @return the connection
      */
-    protected Object get() throws InterruptedException, RepositoryException {
-        Object o = pool.poll(0);
+    protected ConnectionRecoveryManager get() throws InterruptedException, RepositoryException {
+        ConnectionRecoveryManager o = pool.poll();
         if (o == null) {
             synchronized (all) {
                 if (all.size() < maxSize) {
@@ -72,7 +73,7 @@
      *
      * @param o the connection
      */
-    protected void add(Object o) throws InterruptedException {
+    protected void add(ConnectionRecoveryManager o) throws InterruptedException {
         pool.put(o);
     }
 
@@ -81,7 +82,7 @@
      *
      * @return all connections
      */
-    protected ArrayList getAll() {
+    protected ArrayList<ConnectionRecoveryManager> getAll() {
         return all;
     }
 }