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 <jochen.kemn...@eddyson.de> Authored: Thu Jun 5 17:18:26 2014 +0200 Committer: Jochen Kemnade <jochen.kemn...@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() {