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()
{