[jboss-svn-commits] JBL Code SVN: r7393 - in labs/shotoku/trunk: shotoku-base/src/java/org/jboss/shotoku shotoku-base/src/java/org/jboss/shotoku/cache shotoku-base/src/java/org/jboss/shotoku/tools shotoku-feeds/src/java/org/jboss/shotoku/feeds/portlet shotoku-feeds/src/java/org/jboss/shotoku/feeds/tools shotoku-feeds/src/java/org/jboss/shotoku/feeds/variables shotoku-file-access/src/java/org/jboss/shotoku/fileaccess shotoku-jcr/src/java/org/jboss/shotoku/jcr shotoku-svn/src/java/org/jboss/shotoku/svn shotoku-tags/src/java/org/jboss/shotoku/tags/tools shotoku-test/src/java/org/jboss/shotoku/test/embedded shotoku-user/src/java/org/jboss/shotoku/user/tools
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Nov 3 19:39:34 EST 2006
Author: adamw
Date: 2006-11-03 19:39:19 -0500 (Fri, 03 Nov 2006)
New Revision: 7393
Modified:
labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/ContentManager.java
labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/cache/ShotokuCacheItem.java
labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/tools/Tools.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/portlet/FeedsViewPortlet.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tools/FeedsTools.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/variables/VariableResolverManager.java
labs/shotoku/trunk/shotoku-file-access/src/java/org/jboss/shotoku/fileaccess/FileAccessConfiguration.java
labs/shotoku/trunk/shotoku-jcr/src/java/org/jboss/shotoku/jcr/JcrContentManager.java
labs/shotoku/trunk/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnTools.java
labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/tools/TagTools.java
labs/shotoku/trunk/shotoku-test/src/java/org/jboss/shotoku/test/embedded/SATest.java
labs/shotoku/trunk/shotoku-user/src/java/org/jboss/shotoku/user/tools/UserTools.java
Log:
http://jira.jboss.com/jira/browse/JBSHOTOKU-102 & http://jira.jboss.com/jira/browse/JBSHOTOKU-103
Modified: labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/ContentManager.java
===================================================================
--- labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/ContentManager.java 2006-11-04 00:39:03 UTC (rev 7392)
+++ labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/ContentManager.java 2006-11-04 00:39:19 UTC (rev 7393)
@@ -626,7 +626,7 @@
public synchronized static void initializeContentManager(String implementation) {
if (!initializedContentManagers.contains(implementation)) {
try {
- Class implClass = Class.forName(implementation);
+ Class implClass = Thread.currentThread().getContextClassLoader().loadClass(implementation);
// Executing the setup function.
try {
Modified: labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/cache/ShotokuCacheItem.java
===================================================================
--- labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/cache/ShotokuCacheItem.java 2006-11-04 00:39:03 UTC (rev 7392)
+++ labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/cache/ShotokuCacheItem.java 2006-11-04 00:39:19 UTC (rev 7393)
@@ -46,7 +46,6 @@
private String keyBase;
private ConcurrentSet<K> keys;
private ConcurrentSet<K> keysDuringUpdate;
- private final Object synchronizer = new Object();
private final Map<K, ContentManager> cmForKeys = new HashMap<K, ContentManager>();
private long lastUpdate;
private long interval;
@@ -102,22 +101,15 @@
* @return Value of the object.
*/
public final T get(K key) {
- if (!keys.contains(key)) {
- synchronized(synchronizer) {
- /*
- * Checking again, in case multiple threads try to create
- * the object. We want to let only the first one to do it,
- * but block as little as possible.
- */
- if (!keys.contains(key)) {
- T ret = init(key);
- ShotokuCache.put(createKey(key), ret);
+ synchronized(this) {
+ if (!keys.contains(key)) {
+ T ret = init(key);
+ ShotokuCache.put(createKey(key), ret);
- // We have to initialize a new object.
- keys.add(key);
+ // We have to initialize a new object.
+ keys.add(key);
- return ret;
- }
+ return ret;
}
}
Modified: labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/tools/Tools.java
===================================================================
--- labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/tools/Tools.java 2006-11-04 00:39:03 UTC (rev 7392)
+++ labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/tools/Tools.java 2006-11-04 00:39:19 UTC (rev 7393)
@@ -46,7 +46,7 @@
/**
* Utility, helper functions used internally.
- *
+ *
* @author Adam Warski (adamw at aster.pl)
*/
public class Tools {
@@ -54,8 +54,8 @@
public static ShotokuService getService() {
try {
- if (instance == null) {
- synchronized (Tools.class) {
+ synchronized (Tools.class) {
+ if (instance == null) {
if (ContentManager.isEmbedded()) {
// Embedded mode - simply creating a new service instance.
instance = new ShotokuServiceImpl();
@@ -340,7 +340,7 @@
if (link == null) {
return false;
}
-
+
link = link.trim();
return link.startsWith("http:") || link.startsWith("ftp:")
|| link.startsWith("https:") || link.startsWith("mailto:")
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/portlet/FeedsViewPortlet.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/portlet/FeedsViewPortlet.java 2006-11-04 00:39:03 UTC (rev 7392)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/portlet/FeedsViewPortlet.java 2006-11-04 00:39:19 UTC (rev 7393)
@@ -92,7 +92,8 @@
super.init(portletConfig);
try {
- vfg = (ViewFeedGetter) Class.forName(FeedsTools.getService().
+ vfg = (ViewFeedGetter) Thread.currentThread().getContextClassLoader().loadClass(
+ FeedsTools.getService().
getProperty(getId(), FeedsConstants.VIEW_FEED_GETTER)).
newInstance();
} catch (Exception e) {
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tools/FeedsTools.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tools/FeedsTools.java 2006-11-04 00:39:03 UTC (rev 7392)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tools/FeedsTools.java 2006-11-04 00:39:19 UTC (rev 7393)
@@ -42,7 +42,8 @@
try {
initial.put(
key.substring(FeedDefAttributes.CLASS_ATTR_PREFIX.length()),
- Class.forName(attributes.get(key)).newInstance());
+ Thread.currentThread().getContextClassLoader().loadClass(
+ attributes.get(key)).newInstance());
} catch (Exception e) {
log.error("Exception while loading a class to the " +
"velocity context: " + key, e);
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/variables/VariableResolverManager.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/variables/VariableResolverManager.java 2006-11-04 00:39:03 UTC (rev 7392)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/variables/VariableResolverManager.java 2006-11-04 00:39:19 UTC (rev 7393)
@@ -28,7 +28,8 @@
Class varResolverClass;
try {
- varResolverClass = Class.forName(props.getProperty(id + FeedsConstants.ONE_VAR + variable));
+ varResolverClass = Thread.currentThread().getContextClassLoader().loadClass(
+ props.getProperty(id + FeedsConstants.ONE_VAR + variable));
} catch (ClassNotFoundException e) {
log.error("Variable resolver class " + props.getProperty(id +
FeedsConstants.ONE_VAR + variable) + " for variable " + variable +
Modified: labs/shotoku/trunk/shotoku-file-access/src/java/org/jboss/shotoku/fileaccess/FileAccessConfiguration.java
===================================================================
--- labs/shotoku/trunk/shotoku-file-access/src/java/org/jboss/shotoku/fileaccess/FileAccessConfiguration.java 2006-11-04 00:39:03 UTC (rev 7392)
+++ labs/shotoku/trunk/shotoku-file-access/src/java/org/jboss/shotoku/fileaccess/FileAccessConfiguration.java 2006-11-04 00:39:19 UTC (rev 7393)
@@ -32,7 +32,8 @@
String[] monitorsTokens = getTokensFromProperty(props, "monitor.stack");
for (String monitorToken : monitorsTokens) {
try {
- monitors.add((FileAccessMonitor) Class.forName(monitorToken).newInstance());
+ monitors.add((FileAccessMonitor) Thread.currentThread().getContextClassLoader().loadClass(
+ monitorToken).newInstance());
} catch (Exception e) {
log.error("Error loading a file access monitor.", e);
}
Modified: labs/shotoku/trunk/shotoku-jcr/src/java/org/jboss/shotoku/jcr/JcrContentManager.java
===================================================================
--- labs/shotoku/trunk/shotoku-jcr/src/java/org/jboss/shotoku/jcr/JcrContentManager.java 2006-11-04 00:39:03 UTC (rev 7392)
+++ labs/shotoku/trunk/shotoku-jcr/src/java/org/jboss/shotoku/jcr/JcrContentManager.java 2006-11-04 00:39:19 UTC (rev 7393)
@@ -55,7 +55,8 @@
*/
String connectorImpl = conf.getString(JcrTools.PROPERTY_CONNECTOR);
if (connectorImpl != null) {
- connector = (JcrConnector) Class.forName(connectorImpl).newInstance();
+ connector = (JcrConnector) Thread.currentThread().getContextClassLoader().loadClass(
+ connectorImpl).newInstance();
} else {
connector = new JackrabbitJcrConnector();
}
Modified: labs/shotoku/trunk/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnTools.java
===================================================================
--- labs/shotoku/trunk/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnTools.java 2006-11-04 00:39:03 UTC (rev 7392)
+++ labs/shotoku/trunk/shotoku-svn/src/java/org/jboss/shotoku/svn/SvnTools.java 2006-11-04 00:39:19 UTC (rev 7393)
@@ -94,7 +94,7 @@
* the object, so the dirty sets work properly.
* @return An instance of org.jboss.shotoku.svn.SvnService
*/
- public static SvnService getService() {
+ public synchronized static SvnService getService() {
try {
if (instance == null) {
if (ContentManager.isEmbedded()) {
Modified: labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/tools/TagTools.java
===================================================================
--- labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/tools/TagTools.java 2006-11-04 00:39:03 UTC (rev 7392)
+++ labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/tools/TagTools.java 2006-11-04 00:39:19 UTC (rev 7393)
@@ -17,7 +17,7 @@
* the object, so the dirty sets work properly.
* @return An instance of org.jboss.shotoku.svn.SvnService
*/
- public static TagService getService() {
+ public synchronized static TagService getService() {
try {
if (instance == null) {
if (ContentManager.isEmbedded()) {
Modified: labs/shotoku/trunk/shotoku-test/src/java/org/jboss/shotoku/test/embedded/SATest.java
===================================================================
--- labs/shotoku/trunk/shotoku-test/src/java/org/jboss/shotoku/test/embedded/SATest.java 2006-11-04 00:39:03 UTC (rev 7392)
+++ labs/shotoku/trunk/shotoku-test/src/java/org/jboss/shotoku/test/embedded/SATest.java 2006-11-04 00:39:19 UTC (rev 7393)
@@ -28,7 +28,8 @@
*/
public class SATest {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException {
- Class c = Class.forName("org.jboss.shotoku.test.servlet.ShotokuServlet$TestCacheItem");
+ Class c = Thread.currentThread().getContextClassLoader().loadClass(
+ "org.jboss.shotoku.test.servlet.ShotokuServlet$TestCacheItem");
for (Constructor ctor : c.getConstructors()) {
System.out.println(ctor.toGenericString());
Modified: labs/shotoku/trunk/shotoku-user/src/java/org/jboss/shotoku/user/tools/UserTools.java
===================================================================
--- labs/shotoku/trunk/shotoku-user/src/java/org/jboss/shotoku/user/tools/UserTools.java 2006-11-04 00:39:03 UTC (rev 7392)
+++ labs/shotoku/trunk/shotoku-user/src/java/org/jboss/shotoku/user/tools/UserTools.java 2006-11-04 00:39:19 UTC (rev 7393)
@@ -13,7 +13,7 @@
public class UserTools {
private static UserService instance;
- public static UserService getService() {
+ public synchronized static UserService getService() {
try {
if (instance == null) {
if (ContentManager.isEmbedded()) {
More information about the jboss-svn-commits
mailing list