You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2014/06/05 17:19:26 UTC

git commit: Refuse to start the Registry on Java 1.5, deprecate some code that was used for Java 1.5 compatibility only

Repository: tapestry-5
Updated Branches:
  refs/heads/master 940722a74 -> 0c1790d43


Refuse to start the Registry on Java 1.5, deprecate some code that was used for Java 1.5 compatibility only


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/0c1790d4
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/0c1790d4
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/0c1790d4

Branch: refs/heads/master
Commit: 0c1790d43fc316c60df496bca4b34b6337bbce38
Parents: 940722a
Author: Jochen Kemnade <jo...@eddyson.de>
Authored: Thu Jun 5 17:18:26 2014 +0200
Committer: Jochen Kemnade <jo...@eddyson.de>
Committed: Thu Jun 5 17:18:26 2014 +0200

----------------------------------------------------------------------
 .../ioc/internal/PerThreadOperationTracker.java | 23 ++-------------
 .../tapestry5/ioc/internal/RegistryImpl.java    |  5 ++++
 .../internal/services/PerthreadManagerImpl.java | 31 ++++----------------
 .../tapestry5/ioc/internal/util/DummyLock.java  |  1 +
 .../tapestry5/ioc/internal/util/JDKUtils.java   |  1 +
 5 files changed, 15 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0c1790d4/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/PerThreadOperationTracker.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/PerThreadOperationTracker.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/PerThreadOperationTracker.java
index 4e0e57f..db2d310 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/PerThreadOperationTracker.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/PerThreadOperationTracker.java
@@ -17,11 +17,9 @@ package org.apache.tapestry5.ioc.internal;
 import org.apache.tapestry5.ioc.IOOperation;
 import org.apache.tapestry5.ioc.Invokable;
 import org.apache.tapestry5.ioc.OperationTracker;
-import org.apache.tapestry5.ioc.internal.util.JDKUtils;
 import org.slf4j.Logger;
 
 import java.io.IOException;
-import java.util.concurrent.locks.Lock;
 
 /**
  * Manages a per-thread OperationTracker using a ThreadLocal.
@@ -30,8 +28,6 @@ public class PerThreadOperationTracker implements OperationTracker
 {
     private final Logger logger;
 
-    private final Lock lock = JDKUtils.createLockForThreadLocalCreation();
-
     private final ThreadLocal<OperationTrackerImpl> perThread = new ThreadLocal<OperationTrackerImpl>()
     {
         @Override
@@ -48,27 +44,12 @@ public class PerThreadOperationTracker implements OperationTracker
 
     OperationTracker get()
     {
-        lock.lock();
-
-        try
-        {
-            return perThread.get();
-        } finally
-        {
-            lock.unlock();
-        }
+        return perThread.get();
     }
 
     void cleanup()
     {
-        try
-        {
-            lock.lock();
-            if (perThread.get().isEmpty()) perThread.remove();
-        } finally
-        {
-            lock.unlock();
-        }
+        if (perThread.get().isEmpty()) perThread.remove();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0c1790d4/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryImpl.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryImpl.java
index 7de7428..0407c5d 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryImpl.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryImpl.java
@@ -329,6 +329,11 @@ public class RegistryImpl implements Registry, InternalRegistry, ServiceProxyPro
     @Override
     public void performRegistryStartup()
     {
+        if (JDKUtils.JDK_1_5)
+        {
+            throw new RuntimeException("Your JDK version is too old."
+                    + " Tapestry requires Java 1.6 or newer since version 5.4.");
+        }
         eagerLoadLock.lock();
 
         List<EagerLoadServiceProxy> proxies = CollectionFactory.newList();

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0c1790d4/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PerthreadManagerImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PerthreadManagerImpl.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PerthreadManagerImpl.java
index 1cad0dc..1c60370 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PerthreadManagerImpl.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PerthreadManagerImpl.java
@@ -16,7 +16,6 @@ package org.apache.tapestry5.ioc.internal.services;
 
 import org.apache.tapestry5.ioc.Invokable;
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
-import org.apache.tapestry5.ioc.internal.util.JDKUtils;
 import org.apache.tapestry5.ioc.services.PerThreadValue;
 import org.apache.tapestry5.ioc.services.PerthreadManager;
 import org.apache.tapestry5.ioc.services.RegistryShutdownHub;
@@ -32,8 +31,6 @@ import java.util.concurrent.locks.Lock;
 @SuppressWarnings("all")
 public class PerthreadManagerImpl implements PerthreadManager
 {
-    private final Lock lock = JDKUtils.createLockForThreadLocalCreation();
-
     private final PerThreadValue<List<Runnable>> callbacksValue;
 
     private static class MapHolder extends ThreadLocal<Map>
@@ -83,15 +80,7 @@ public class PerthreadManagerImpl implements PerthreadManager
             return CollectionFactory.newMap();
         }
 
-        lock.lock();
-
-        try
-        {
-            return holder.get();
-        } finally
-        {
-            lock.unlock();
-        }
+        return holder.get();
     }
 
     private List<Runnable> getCallbacks()
@@ -156,20 +145,12 @@ public class PerthreadManagerImpl implements PerthreadManager
         // Listeners should not re-add themselves or store any per-thread state
         // here, it will be lost.
 
-        try
-        {
-            lock.lock();
-
-            // Discard the per-thread map of values, including the key that stores
-            // the listeners. This means that if a listener attempts to register
-            // new listeners, the new listeners will not be triggered and will be
-            // released to the GC.
+        // Discard the per-thread map of values, including the key that stores
+        // the listeners. This means that if a listener attempts to register
+        // new listeners, the new listeners will not be triggered and will be
+        // released to the GC.
 
-            holder.remove();
-        } finally
-        {
-            lock.unlock();
-        }
+        holder.remove();
     }
 
     private static Object NULL_VALUE = new Object();

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0c1790d4/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/DummyLock.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/DummyLock.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/DummyLock.java
index fd20a43..67d5b74 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/DummyLock.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/DummyLock.java
@@ -20,6 +20,7 @@ import java.util.concurrent.locks.Lock;
 
 /**
  * Acts like a Lock but all operations are no-ops.
+ * @deprecated Deprecated in 5.4 with no replacement.
  */
 public class DummyLock implements Lock
 {

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0c1790d4/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/JDKUtils.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/JDKUtils.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/JDKUtils.java
index 59eaf5e..4eb233f 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/JDKUtils.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/util/JDKUtils.java
@@ -39,6 +39,7 @@ public class JDKUtils
      *
      * @return lock to use when creating
      * @since 5.3
+     * @deprecated Deprecated in 5.4 with no replacement.
      */
     public static Lock createLockForThreadLocalCreation()
     {