exo-jcr SVN: r4445 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query and 12 other directories.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2011-05-27 14:05:10 -0400 (Fri, 27 May 2011)
New Revision: 4445
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManager.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/LocalIndexChangesFilter.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/infinispan/ISPNCacheFactory.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/ExoJBossCacheFactory.java
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-config.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-indexer.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-lock.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-config.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-lock.xml
kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/main/java/org/exoplatform/services/cache/impl/infinispan/ExoCacheFactoryImpl.java
kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/main/resources/conf/portal/cache-configuration-template.xml
kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/test/resources/conf/portal/cache-configuration-template.xml
kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/test/resources/conf/portal/distributed-cache-configuration-template.xml
kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManageableContainer.java
kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestPortalContainer.java
Log:
EXOJCR-1356: Find a way to have a name for MBeans of JBossCaches used by the JCR
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java 2011-05-27 12:48:48 UTC (rev 4444)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java 2011-05-27 18:05:10 UTC (rev 4445)
@@ -16,6 +16,8 @@
*/
package org.exoplatform.services.jcr.impl.core.lock.jbosscache;
+import org.exoplatform.commons.utils.SecurityHelper;
+import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.management.annotations.Managed;
import org.exoplatform.management.jmx.annotations.NameTemplate;
@@ -31,8 +33,8 @@
import org.exoplatform.services.jcr.impl.storage.jdbc.DBConstants;
import org.exoplatform.services.jcr.impl.storage.jdbc.DialectDetecter;
import org.exoplatform.services.jcr.jbosscache.ExoJBossCacheFactory;
+import org.exoplatform.services.jcr.jbosscache.ExoJBossCacheFactory.CacheType;
import org.exoplatform.services.jcr.jbosscache.PrivilegedJBossCacheHelper;
-import org.exoplatform.services.jcr.jbosscache.ExoJBossCacheFactory.CacheType;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.exoplatform.services.naming.InitialContextInitializer;
@@ -44,6 +46,7 @@
import org.jboss.cache.Node;
import org.jboss.cache.config.CacheLoaderConfig;
import org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig;
+import org.jboss.cache.jmx.JmxRegistrationManager;
import org.jboss.cache.loader.CacheLoader;
import org.jboss.cache.loader.CacheLoaderManager;
import org.jboss.cache.lock.TimeoutException;
@@ -116,9 +119,12 @@
private final boolean shareable;
+ private final JmxRegistrationManager jmxManager;
+
/**
* Constructor.
*
+ * @param ctx The container context
* @param dataManager - workspace persistent data manager
* @param config - workspace entry
* @param context InitialContextInitializer, needed to reload context after JBoss cache creation
@@ -126,31 +132,33 @@
* the transaction service
* @throws RepositoryConfigurationException
*/
- public CacheableLockManagerImpl(WorkspacePersistentDataManager dataManager, WorkspaceEntry config,
+ public CacheableLockManagerImpl(ExoContainerContext ctx, WorkspacePersistentDataManager dataManager, WorkspaceEntry config,
InitialContextInitializer context, TransactionService transactionService, ConfigurationManager cfm,
LockRemoverHolder lockRemoverHolder) throws RepositoryConfigurationException, RepositoryException
{
- this(dataManager, config, context, transactionService.getTransactionManager(), cfm, lockRemoverHolder);
+ this(ctx, dataManager, config, context, transactionService.getTransactionManager(), cfm, lockRemoverHolder);
}
/**
* Constructor.
*
+ * @param ctx The container context
* @param dataManager - workspace persistent data manager
* @param config - workspace entry
* @param context InitialContextInitializer, needed to reload context after JBoss cache creation
* @throws RepositoryConfigurationException
*/
- public CacheableLockManagerImpl(WorkspacePersistentDataManager dataManager, WorkspaceEntry config,
+ public CacheableLockManagerImpl(ExoContainerContext ctx, WorkspacePersistentDataManager dataManager, WorkspaceEntry config,
InitialContextInitializer context, ConfigurationManager cfm, LockRemoverHolder lockRemoverHolder)
throws RepositoryConfigurationException, RepositoryException
{
- this(dataManager, config, context, (TransactionManager)null, cfm, lockRemoverHolder);
+ this(ctx, dataManager, config, context, (TransactionManager)null, cfm, lockRemoverHolder);
}
/**
* Constructor.
*
+ * @param ctx The container context
* @param dataManager - workspace persistent data manager
* @param config - workspace entry
* @param context InitialContextInitializer, needed to reload context after JBoss cache creation
@@ -158,7 +166,7 @@
* the transaction manager
* @throws RepositoryConfigurationException
*/
- public CacheableLockManagerImpl(WorkspacePersistentDataManager dataManager, WorkspaceEntry config,
+ public CacheableLockManagerImpl(ExoContainerContext ctx, WorkspacePersistentDataManager dataManager, WorkspaceEntry config,
InitialContextInitializer context, TransactionManager transactionManager, ConfigurationManager cfm,
LockRemoverHolder lockRemoverHolder) throws RepositoryConfigurationException, RepositoryException
{
@@ -184,6 +192,18 @@
config.getLockManager().getParameterBoolean(JBOSSCACHE_SHAREABLE, JBOSSCACHE_SHAREABLE_DEFAULT)
.booleanValue();
cache = ExoJBossCacheFactory.getUniqueInstance(CacheType.LOCK_CACHE, rootFqn, cache, shareable);
+ this.jmxManager = ExoJBossCacheFactory.getJmxRegistrationManager(ctx, cache, CacheType.LOCK_CACHE);
+ if (jmxManager != null)
+ {
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
+ {
+ public Void run()
+ {
+ jmxManager.registerAllMBeans();
+ return null;
+ }
+ });
+ }
PrivilegedJBossCacheHelper.create(cache);
if (cache.getCacheStatus().startAllowed())
{
@@ -490,6 +510,17 @@
{
PrivilegedJBossCacheHelper.stop(cache);
}
+ if (jmxManager != null)
+ {
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
+ {
+ public Void run()
+ {
+ jmxManager.unregisterAllMBeans();
+ return null;
+ }
+ });
+ }
}
/**
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManager.java 2011-05-27 12:48:48 UTC (rev 4444)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManager.java 2011-05-27 18:05:10 UTC (rev 4445)
@@ -18,9 +18,9 @@
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.Term;
+import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.WildcardQuery;
-import org.apache.lucene.search.BooleanClause.Occur;
import org.exoplatform.commons.utils.PrivilegedFileHelper;
import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.container.configuration.ConfigurationManager;
@@ -237,6 +237,8 @@
* Switches index between online and offline modes
*/
private RemoteCommand changeIndexState;
+
+ private final ExoContainerContext ctx;
private String hotReindexingState = "not stated";
@@ -288,6 +290,7 @@
final RepositoryIndexSearcherHolder indexSearcherHolder, RPCService rpcService) throws RepositoryException,
RepositoryConfigurationException
{
+ this.ctx = ctx;
this.wsContainerId = ctx.getName();
this.rpcService = rpcService;
this.repositoryName = rEntry.getName();
@@ -808,6 +811,14 @@
}
/**
+ * @return the ctx
+ */
+ public ExoContainerContext getExoContainerContext()
+ {
+ return ctx;
+ }
+
+ /**
* Initialize changes filter.
* @throws RepositoryException
* @throws RepositoryConfigurationException
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java 2011-05-27 12:48:48 UTC (rev 4444)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java 2011-05-27 18:05:10 UTC (rev 4445)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.impl.core.query.jbosscache;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.services.jcr.config.QueryHandlerEntry;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
@@ -40,9 +41,11 @@
import org.jboss.cache.config.CacheLoaderConfig;
import org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig;
import org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig.SingletonStoreConfig;
+import org.jboss.cache.jmx.JmxRegistrationManager;
import java.io.IOException;
import java.io.Serializable;
+import java.security.PrivilegedAction;
import java.util.Properties;
import javax.jcr.RepositoryException;
@@ -75,6 +78,8 @@
private final Cache<Serializable, Object> cache;
private final Fqn<String> rootFqn;
+
+ private final JmxRegistrationManager jmxManager;
public static final String LISTWRAPPER = "$lists".intern();
@@ -135,6 +140,19 @@
PrivilegedJBossCacheHelper.create(cache);
PrivilegedJBossCacheHelper.start(cache);
+
+ this.jmxManager = ExoJBossCacheFactory.getJmxRegistrationManager(searchManager.getExoContainerContext(), cache, CacheType.INDEX_CACHE);
+ if (jmxManager != null)
+ {
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
+ {
+ public Void run()
+ {
+ jmxManager.registerAllMBeans();
+ return null;
+ }
+ });
+ }
// start will invoke cache listener which will notify handler that mode is changed
IndexerIoMode ioMode =
@@ -183,4 +201,30 @@
{
return true;
}
+
+ /**
+ * @see java.lang.Object#finalize()
+ */
+ @Override
+ protected void finalize() throws Throwable
+ {
+ try
+ {
+ if (jmxManager != null)
+ {
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
+ {
+ public Void run()
+ {
+ jmxManager.unregisterAllMBeans();
+ return null;
+ }
+ });
+ }
+ }
+ finally
+ {
+ super.finalize();
+ }
+ }
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/LocalIndexChangesFilter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/LocalIndexChangesFilter.java 2011-05-27 12:48:48 UTC (rev 4444)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/LocalIndexChangesFilter.java 2011-05-27 18:05:10 UTC (rev 4445)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.impl.core.query.jbosscache;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.services.jcr.config.QueryHandlerEntry;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
@@ -38,9 +39,11 @@
import org.jboss.cache.Fqn;
import org.jboss.cache.config.CacheLoaderConfig;
import org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig;
+import org.jboss.cache.jmx.JmxRegistrationManager;
import java.io.IOException;
import java.io.Serializable;
+import java.security.PrivilegedAction;
import javax.jcr.RepositoryException;
@@ -82,6 +85,8 @@
private final Fqn<String> rootFqn;
+ private final JmxRegistrationManager jmxManager;
+
public static final String LISTWRAPPER = "$lists".intern();
/**
@@ -126,6 +131,18 @@
PrivilegedJBossCacheHelper.create(cache);
PrivilegedJBossCacheHelper.start(cache);
+ this.jmxManager = ExoJBossCacheFactory.getJmxRegistrationManager(searchManager.getExoContainerContext(), cache, CacheType.INDEX_CACHE);
+ if (jmxManager != null)
+ {
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
+ {
+ public Void run()
+ {
+ jmxManager.registerAllMBeans();
+ return null;
+ }
+ });
+ }
indexerCacheLoader = (IndexerCacheLoader)((CacheSPI)cache).getCacheLoaderManager().getCacheLoader();
@@ -155,4 +172,30 @@
String id = IdGenerator.generate();
PrivilegedJBossCacheHelper.put(cache, Fqn.fromRelativeElements(rootFqn, id), LISTWRAPPER, changes);
}
+
+ /**
+ * @see java.lang.Object#finalize()
+ */
+ @Override
+ protected void finalize() throws Throwable
+ {
+ try
+ {
+ if (jmxManager != null)
+ {
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
+ {
+ public Void run()
+ {
+ jmxManager.unregisterAllMBeans();
+ return null;
+ }
+ });
+ }
+ }
+ finally
+ {
+ super.finalize();
+ }
+ }
}
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java 2011-05-27 12:48:48 UTC (rev 4444)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java 2011-05-27 18:05:10 UTC (rev 4445)
@@ -18,6 +18,8 @@
*/
package org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache;
+import org.exoplatform.commons.utils.SecurityHelper;
+import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.management.annotations.Managed;
import org.exoplatform.management.annotations.ManagedDescription;
@@ -59,11 +61,13 @@
import org.jboss.cache.config.Configuration.CacheMode;
import org.jboss.cache.config.EvictionRegionConfig;
import org.jboss.cache.eviction.ExpirationAlgorithmConfig;
+import org.jboss.cache.jmx.JmxRegistrationManager;
import org.picocontainer.Startable;
import java.io.File;
import java.io.IOException;
import java.io.Serializable;
+import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -409,6 +413,8 @@
*/
protected volatile boolean initialized;
+ private JmxRegistrationManager jmxManager;
+
/**
* Node order comparator for getChildNodes().
*/
@@ -532,12 +538,13 @@
/**
* Cache constructor with eXo TransactionService support.
*
+ * @param ctx The container context
* @param wsConfig WorkspaceEntry workspace config
* @param transactionService TransactionService external transaction service
* @throws RepositoryException if error of initialization
* @throws RepositoryConfigurationException if error of configuration
*/
- public JBossCacheWorkspaceStorageCache(WorkspaceEntry wsConfig, TransactionService transactionService,
+ public JBossCacheWorkspaceStorageCache(ExoContainerContext ctx, WorkspaceEntry wsConfig, TransactionService transactionService,
ConfigurationManager cfm) throws RepositoryException, RepositoryConfigurationException
{
if (wsConfig.getCache() == null)
@@ -589,6 +596,10 @@
parentCache =
ExoJBossCacheFactory.getUniqueInstance(CacheType.JCR_CACHE, rootFqn, parentCache, wsConfig.getCache()
.getParameterBoolean(JBOSSCACHE_SHAREABLE, JBOSSCACHE_SHAREABLE_DEFAULT).booleanValue());
+ if (ctx != null)
+ {
+ this.jmxManager = ExoJBossCacheFactory.getJmxRegistrationManager(ctx, parentCache, CacheType.JCR_CACHE);
+ }
// if expiration is used, set appropriate factory with with timeout set via configuration (or default one 15minutes)
this.cache =
@@ -613,16 +624,31 @@
}
/**
+ * Cache constructor with eXo TransactionService support.
+ *
+ * @param wsConfig WorkspaceEntry workspace config
+ * @param transactionService TransactionService external transaction service
+ * @throws RepositoryException if error of initialization
+ * @throws RepositoryConfigurationException if error of configuration
+ */
+ public JBossCacheWorkspaceStorageCache(WorkspaceEntry wsConfig, TransactionService transactionService,
+ ConfigurationManager cfm) throws RepositoryException, RepositoryConfigurationException
+ {
+ this(null, wsConfig, transactionService, cfm);
+ }
+
+ /**
* Cache constructor with JBossCache JTA transaction support.
*
+ * @param ctx The container context
* @param wsConfig WorkspaceEntry workspace config
* @throws RepositoryException if error of initialization
* @throws RepositoryConfigurationException if error of configuration
*/
- public JBossCacheWorkspaceStorageCache(WorkspaceEntry wsConfig, ConfigurationManager cfm)
+ public JBossCacheWorkspaceStorageCache(ExoContainerContext ctx, WorkspaceEntry wsConfig, ConfigurationManager cfm)
throws RepositoryException, RepositoryConfigurationException
{
- this(wsConfig, null, cfm);
+ this(ctx, wsConfig, null, cfm);
}
/**
@@ -647,6 +673,17 @@
createResidentNode(childNodesByPatternList);
createResidentNode(itemsRoot);
+ if (jmxManager != null)
+ {
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
+ {
+ public Void run()
+ {
+ jmxManager.registerAllMBeans();
+ return null;
+ }
+ });
+ }
this.initialized = true;
}
@@ -665,6 +702,17 @@
*/
public void stop()
{
+ if (jmxManager != null)
+ {
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
+ {
+ public Void run()
+ {
+ jmxManager.unregisterAllMBeans();
+ return null;
+ }
+ });
+ }
}
/**
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/infinispan/ISPNCacheFactory.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/infinispan/ISPNCacheFactory.java 2011-05-27 12:48:48 UTC (rev 4444)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/infinispan/ISPNCacheFactory.java 2011-05-27 18:05:10 UTC (rev 4445)
@@ -31,6 +31,7 @@
import org.infinispan.Cache;
import org.infinispan.config.Configuration;
import org.infinispan.config.GlobalConfiguration;
+import org.infinispan.jmx.MBeanServerLookup;
import org.infinispan.manager.DefaultCacheManager;
import org.infinispan.manager.EmbeddedCacheManager;
@@ -44,6 +45,8 @@
import java.util.Map;
import java.util.Properties;
+import javax.management.MBeanServer;
+
/**
* Factory that creates and starts pre-configured instances of Infinispan.
* Path to Infinispan configuration or template and cache name should be
@@ -71,6 +74,14 @@
private static Map<GlobalConfiguration, EmbeddedCacheManager> CACHE_MANAGERS =
new HashMap<GlobalConfiguration, EmbeddedCacheManager>();
+ private static final MBeanServerLookup MBEAN_SERVER_LOOKUP = new MBeanServerLookup()
+ {
+ public MBeanServer getMBeanServer(Properties properties)
+ {
+ return ExoContainerContext.getTopContainer().getMBeanServer();
+ }
+ };
+
/**
* Creates InfinispanCacheFactory with provided configuration transaction managers.
* Transaction manager will later be injected to cache instance.
@@ -206,6 +217,9 @@
ExoContainer container = ExoContainerContext.getCurrentContainer();
// Ensure that the cluster name won't be used between 2 ExoContainers
gc.setClusterName(gc.getClusterName() + "_" + container.getContext().getName());
+ gc.setCacheManagerName(gc.getCacheManagerName() + "_" + container.getContext().getName());
+ // Configure the MBeanServerLookup
+ gc.setMBeanServerLookupInstance(MBEAN_SERVER_LOOKUP);
Configuration conf = manager.getDefaultConfiguration();
if (CACHE_MANAGERS.containsKey(gc))
{
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/ExoJBossCacheFactory.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/ExoJBossCacheFactory.java 2011-05-27 12:48:48 UTC (rev 4444)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/jbosscache/ExoJBossCacheFactory.java 2011-05-27 18:05:10 UTC (rev 4445)
@@ -35,6 +35,7 @@
import org.jboss.cache.config.Configuration;
import org.jboss.cache.config.EvictionConfig;
import org.jboss.cache.config.EvictionRegionConfig;
+import org.jboss.cache.jmx.JmxRegistrationManager;
import org.jgroups.JChannelFactory;
import java.io.IOException;
@@ -44,6 +45,7 @@
import java.util.HashMap;
import java.util.Map;
+import javax.management.ObjectName;
import javax.transaction.TransactionManager;
/**
@@ -316,6 +318,31 @@
}
/**
+ * Gives the {@link JmxRegistrationManager} instance corresponding to the given context
+ */
+ public static JmxRegistrationManager getJmxRegistrationManager(ExoContainerContext ctx, Cache<?, ?> parentCache,
+ CacheType cacheType)
+ {
+ try
+ {
+ ObjectName containerObjectName = ctx.getContainer().getScopingObjectName();
+ final String objectNameBase = containerObjectName.toString() + ",cache-type=" + cacheType;
+ return new JmxRegistrationManager(ctx.getContainer().getMBeanServer(), parentCache, objectNameBase)
+ {
+ public String getObjectName(String resourceName)
+ {
+ return objectNameBase + JMX_RESOURCE_KEY + resourceName;
+ }
+ };
+ }
+ catch (Exception e)
+ {
+ log.error("Could not create the JMX Manager", e);
+ }
+ return null;
+ }
+
+ /**
* All the known cache types
*/
public enum CacheType {
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-config.xml 2011-05-27 12:48:48 UTC (rev 4444)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-config.xml 2011-05-27 18:05:10 UTC (rev 4445)
@@ -31,7 +31,7 @@
</properties>
</evictionScheduledExecutor>
- <globalJmxStatistics jmxDomain="infinispan" enabled="true" allowDuplicateDomains="true"/>
+ <globalJmxStatistics jmxDomain="exo" enabled="true" allowDuplicateDomains="true"/>
<transport transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport" clusterName="${infinispan-cluster-name}" distributedSyncTimeout="20000">
<properties>
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-indexer.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-indexer.xml 2011-05-27 12:48:48 UTC (rev 4444)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-indexer.xml 2011-05-27 18:05:10 UTC (rev 4445)
@@ -31,7 +31,7 @@
</properties>
</evictionScheduledExecutor>
- <globalJmxStatistics jmxDomain="infinispan" enabled="true" allowDuplicateDomains="true"/>
+ <globalJmxStatistics jmxDomain="exo" enabled="true" allowDuplicateDomains="true"/>
<transport transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport" clusterName="${infinispan-cluster-name}" distributedSyncTimeout="20000">
<properties>
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-lock.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-lock.xml 2011-05-27 12:48:48 UTC (rev 4444)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-infinispan-lock.xml 2011-05-27 18:05:10 UTC (rev 4445)
@@ -31,7 +31,7 @@
</properties>
</evictionScheduledExecutor>
- <globalJmxStatistics jmxDomain="infinispan" enabled="true" allowDuplicateDomains="true"/>
+ <globalJmxStatistics jmxDomain="exo" enabled="true" allowDuplicateDomains="true"/>
<transport transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport" clusterName="${infinispan-cluster-name}" distributedSyncTimeout="20000">
<properties>
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-config.xml 2011-05-27 12:48:48 UTC (rev 4444)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-config.xml 2011-05-27 18:05:10 UTC (rev 4445)
@@ -31,7 +31,7 @@
</properties>
</evictionScheduledExecutor>
- <globalJmxStatistics jmxDomain="infinispan" enabled="true" allowDuplicateDomains="true"/>
+ <globalJmxStatistics jmxDomain="exo" enabled="true" allowDuplicateDomains="true"/>
</global>
<default>
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-lock.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-lock.xml 2011-05-27 12:48:48 UTC (rev 4444)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-infinispan-lock.xml 2011-05-27 18:05:10 UTC (rev 4445)
@@ -31,7 +31,7 @@
</properties>
</evictionScheduledExecutor>
- <globalJmxStatistics jmxDomain="infinispan" enabled="true" allowDuplicateDomains="true"/>
+ <globalJmxStatistics jmxDomain="exo" enabled="true" allowDuplicateDomains="true"/>
</global>
<default>
Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/main/java/org/exoplatform/services/cache/impl/infinispan/ExoCacheFactoryImpl.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/main/java/org/exoplatform/services/cache/impl/infinispan/ExoCacheFactoryImpl.java 2011-05-27 12:48:48 UTC (rev 4444)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/main/java/org/exoplatform/services/cache/impl/infinispan/ExoCacheFactoryImpl.java 2011-05-27 18:05:10 UTC (rev 4445)
@@ -31,9 +31,10 @@
import org.exoplatform.services.log.Log;
import org.infinispan.Cache;
import org.infinispan.config.Configuration;
+import org.infinispan.config.Configuration.CacheMode;
import org.infinispan.config.GlobalConfiguration;
-import org.infinispan.config.Configuration.CacheMode;
import org.infinispan.eviction.EvictionStrategy;
+import org.infinispan.jmx.MBeanServerLookup;
import org.infinispan.manager.DefaultCacheManager;
import org.infinispan.remoting.transport.jgroups.JGroupsTransport;
@@ -48,6 +49,8 @@
import java.util.Set;
import java.util.concurrent.Callable;
+import javax.management.MBeanServer;
+
/**
* This class is the Infinispan implementation of the {@link org.exoplatform.services.cache.ExoCacheFactory}
*
@@ -111,6 +114,14 @@
* The default creator
*/
private final ExoCacheCreator defaultCreator = new GenericExoCacheCreator();
+
+ private static final MBeanServerLookup MBEAN_SERVER_LOOKUP = new MBeanServerLookup()
+ {
+ public MBeanServer getMBeanServer(Properties properties)
+ {
+ return ExoContainerContext.getTopContainer().getMBeanServer();
+ }
+ };
public ExoCacheFactoryImpl(ExoContainerContext ctx, InitParams params, ConfigurationManager configManager)
throws ExoCacheInitException
@@ -170,11 +181,28 @@
GlobalConfiguration config = cacheManager.getGlobalConfiguration();
- configureJGroups(config);
+ configureCacheManager(config);
+ cacheManager.start();
return cacheManager;
}
/**
+ * Configure the cache manager
+ *
+ * @param config
+ * @throws ExoCacheInitException
+ */
+ private void configureCacheManager(GlobalConfiguration config) throws ExoCacheInitException
+ {
+ // Configure JGroups
+ configureJGroups(config);
+ // Configure the name of the cache manager
+ config.setCacheManagerName(config.getCacheManagerName() + "_" + ctx.getName());
+ // Configure the MBeanServerLookup
+ config.setMBeanServerLookupInstance(MBEAN_SERVER_LOOKUP);
+ }
+
+ /**
* If some JGoups properties has been set, it will load the configuration and set
* the cluster name by adding as suffix the name of the {@link ExoContainerContext}
*
@@ -292,14 +320,17 @@
// Create the CacheManager by loading the configuration
DefaultCacheManager customCacheManager = new DefaultCacheManager(configManager.getInputStream(customConfig), false);
GlobalConfiguration gc = customCacheManager.getGlobalConfiguration();
- // Configure JGroups since it could affect the state of the Global Config
- configureJGroups(gc);
+ // Configure JGroups and JMX since it could affect the state of the Global Config
+ configureCacheManager(gc);
// Check if a CacheManager with the same GlobalConfiguration exists
DefaultCacheManager currentCacheManager = mappingGlobalConfigCacheManager.get(gc);
if (currentCacheManager == null)
{
// No cache manager has been defined so far for this Cache Configuration
currentCacheManager = customCacheManager;
+ // Use a different cache manager name to prevent naming conflict
+ gc.setCacheManagerName(gc.getCacheManagerName() + "_" + region + "_" + ctx.getName());
+ currentCacheManager.start();
// We register this new cache manager
mappingGlobalConfigCacheManager.put(gc, customCacheManager);
}
Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/main/resources/conf/portal/cache-configuration-template.xml
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/main/resources/conf/portal/cache-configuration-template.xml 2011-05-27 12:48:48 UTC (rev 4444)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/main/resources/conf/portal/cache-configuration-template.xml 2011-05-27 18:05:10 UTC (rev 4445)
@@ -44,8 +44,8 @@
<property name="threadNamePrefix" value="ReplicationQueueThread"/>
</properties>
</replicationQueueScheduledExecutor>
- <globalJmxStatistics jmxDomain="infinispan" enabled="true"/>
- <transport transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport" clusterName="Infinispan-cluster" distributedSyncTimeout="20000">
+ <globalJmxStatistics jmxDomain="exo" enabled="true" allowDuplicateDomains="true"/>
+ <transport transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport" clusterName="eXoCache-cluster" distributedSyncTimeout="20000">
<properties>
<property name="configurationFile" value="flush-udp.xml"/>
</properties>
Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/test/resources/conf/portal/cache-configuration-template.xml
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/test/resources/conf/portal/cache-configuration-template.xml 2011-05-27 12:48:48 UTC (rev 4444)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/test/resources/conf/portal/cache-configuration-template.xml 2011-05-27 18:05:10 UTC (rev 4445)
@@ -44,7 +44,7 @@
<property name="threadNamePrefix" value="ReplicationQueueThread"/>
</properties>
</replicationQueueScheduledExecutor>
- <globalJmxStatistics jmxDomain="infinispan" enabled="false"/>
+ <globalJmxStatistics jmxDomain="exo" enabled="true" allowDuplicateDomains="true" />
<transport transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport" clusterName="Infinispan-cluster" distributedSyncTimeout="20000">
<properties>
<property name="configurationFile" value="flush-udp.xml"/>
@@ -55,7 +55,7 @@
<default>
<locking isolationLevel="READ_COMMITTED" lockAcquisitionTimeout="10000" writeSkewCheck="false" concurrencyLevel="500"/>
<transaction transactionManagerLookupClass="org.infinispan.transaction.lookup.GenericTransactionManagerLookup" syncRollbackPhase="false" syncCommitPhase="false"/>
- <jmxStatistics enabled="false"/>
+ <jmxStatistics enabled="true"/>
<clustering mode="replication">
<stateRetrieval timeout="20000" fetchInMemoryState="false"/>
<sync replTimeout="20000"/>
Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/test/resources/conf/portal/distributed-cache-configuration-template.xml
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/test/resources/conf/portal/distributed-cache-configuration-template.xml 2011-05-27 12:48:48 UTC (rev 4444)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v4/src/test/resources/conf/portal/distributed-cache-configuration-template.xml 2011-05-27 18:05:10 UTC (rev 4445)
@@ -44,7 +44,7 @@
<property name="threadNamePrefix" value="ReplicationQueueThread"/>
</properties>
</replicationQueueScheduledExecutor>
- <globalJmxStatistics jmxDomain="infinispan" enabled="false"/>
+ <globalJmxStatistics jmxDomain="exo" enabled="true" allowDuplicateDomains="true"/>
<transport transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport" clusterName="Infinispan-cluster" distributedSyncTimeout="20000">
<properties>
<property name="configurationFile" value="flush-udp.xml"/>
Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java 2011-05-27 12:48:48 UTC (rev 4444)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/ExoCacheFactoryImpl.java 2011-05-27 18:05:10 UTC (rev 4445)
@@ -18,6 +18,9 @@
*/
package org.exoplatform.services.cache.impl.jboss;
+import org.exoplatform.commons.utils.SecurityHelper;
+import org.exoplatform.container.ExoContainer;
+import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.container.xml.ValueParam;
@@ -35,13 +38,19 @@
import org.jboss.cache.config.Configuration.CacheMode;
import org.jboss.cache.config.EvictionConfig;
import org.jboss.cache.config.EvictionRegionConfig;
+import org.jboss.cache.jmx.JmxRegistrationManager;
+import org.picocontainer.Startable;
import java.io.Serializable;
+import java.security.PrivilegedAction;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.CopyOnWriteArrayList;
+import javax.management.ObjectName;
+
/**
* This class is the JBoss Cache implementation of the {@link org.exoplatform.services.cache.ExoCacheFactory}
* Created by The eXo Platform SAS
@@ -49,7 +58,7 @@
* exo(a)exoplatform.com
* 17 juil. 2009
*/
-public class ExoCacheFactoryImpl implements ExoCacheFactory
+public class ExoCacheFactoryImpl implements ExoCacheFactory, Startable
{
/**
@@ -108,6 +117,11 @@
new HashMap<ConfigurationKey, Cache<Serializable, Object>>();
/**
+ * The list of all the JMX Managers registered
+ */
+ private final List<JmxRegistrationManager> jmxManagers = new CopyOnWriteArrayList<JmxRegistrationManager>();
+
+ /**
* The default creator
*/
private final ExoCacheCreator defaultCreator = new FIFOExoCacheCreator();
@@ -172,13 +186,27 @@
}
final ExoCacheCreator creator = getExoCacheCreator(config);
// Ensure that new created cache doesn't exist
- cache = getUniqueInstance(cache, config);
+ final Cache<Serializable, Object> effectiveCacheInstance = getUniqueInstance(cache, config);
// Create the cache
- eXoCache = creator.create(config, cache);
- // Create the cache
- PrivilegedCacheHelper.create(cache);
- // Start the cache
- PrivilegedCacheHelper.start(cache);
+ eXoCache = creator.create(config, effectiveCacheInstance);
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
+ {
+ public Void run()
+ {
+ // Create the cache
+ effectiveCacheInstance.create();
+ // Start the cache
+ effectiveCacheInstance.start();
+ // Create JMX Manager for this cache instance
+ JmxRegistrationManager jmxManager = getJmxRegistrationManager(effectiveCacheInstance, region);
+ if (jmxManager != null)
+ {
+ jmxManager.registerAllMBeans();
+ jmxManagers.add(jmxManager);
+ }
+ return null;
+ }
+ });
}
catch (Exception e)
{
@@ -186,8 +214,34 @@
}
return eXoCache;
}
-
+
/**
+ * Gives the {@link JmxRegistrationManager} instance corresponding to the given context
+ */
+ private static JmxRegistrationManager getJmxRegistrationManager(Cache<?, ?> parentCache,
+ String cacheName)
+ {
+ try
+ {
+ ExoContainer container = ExoContainerContext.getCurrentContainer();
+ ObjectName containerObjectName = container.getScopingObjectName();
+ final String objectNameBase = (containerObjectName != null ? containerObjectName.toString() + "," : "exo:")+ "cache-name=" + cacheName;
+ return new JmxRegistrationManager(container.getMBeanServer(), parentCache, objectNameBase)
+ {
+ public String getObjectName(String resourceName)
+ {
+ return objectNameBase + JMX_RESOURCE_KEY + resourceName;
+ }
+ };
+ }
+ catch (Exception e)
+ {
+ LOG.error("Could not create the JMX Manager", e);
+ }
+ return null;
+ }
+
+ /**
* Add a list of creators to register
* @param plugin the plugin that contains the creators
*/
@@ -398,5 +452,30 @@
return false;
return true;
}
+ }
+
+ /**
+ * @see org.picocontainer.Startable#start()
+ */
+ public void start()
+ {
+ }
+
+ /**
+ * @see org.picocontainer.Startable#stop()
+ */
+ public void stop()
+ {
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
+ {
+ public Void run()
+ {
+ for (JmxRegistrationManager jmxManager : jmxManagers)
+ {
+ jmxManager.unregisterAllMBeans();
+ }
+ return null;
+ }
+ });
}
}
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManageableContainer.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManageableContainer.java 2011-05-27 12:48:48 UTC (rev 4444)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/management/ManageableContainer.java 2011-05-27 18:05:10 UTC (rev 4445)
@@ -25,8 +25,12 @@
import org.exoplatform.management.annotations.Managed;
import org.exoplatform.management.annotations.ManagedDescription;
import org.exoplatform.management.annotations.ManagedName;
+import org.exoplatform.management.jmx.impl.JMX;
import org.exoplatform.management.jmx.impl.JMXManagementProvider;
+import org.exoplatform.management.jmx.impl.MBeanScopingData;
import org.exoplatform.management.spi.ManagementProvider;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
import org.picocontainer.ComponentAdapter;
import org.picocontainer.PicoContainer;
import org.picocontainer.PicoException;
@@ -36,9 +40,13 @@
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
import java.util.Set;
import javax.management.MBeanServer;
+import javax.management.ObjectName;
/**
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
@@ -48,6 +56,11 @@
extends CachingContainer
{
+ /**
+ * The logger
+ */
+ private static final Log LOG = ExoLogger.getLogger("org.exoplatform.container.management.ManageableContainer");
+
private static MBeanServer findMBeanServer()
{
J2EEServerInfo serverenv_ = new J2EEServerInfo();
@@ -64,6 +77,9 @@
/** . */
private MBeanServer server;
+ private volatile boolean objectNameSet;
+ private ObjectName objectName;
+
/** . */
private final Set<ManagementProvider> providers;
@@ -157,6 +173,46 @@
return server;
}
+ /**
+ * Gives the ObjectName of the container build from the scoping data
+ * @return
+ */
+ public ObjectName getScopingObjectName()
+ {
+ if (!objectNameSet)
+ {
+ synchronized (this)
+ {
+ if (!objectNameSet)
+ {
+ Map<String, String> props = new LinkedHashMap<String, String>();
+
+ // Merge scoping properties
+ List<MBeanScopingData> list = managementContext.getScopingData(MBeanScopingData.class);
+ if (list != null && !list.isEmpty())
+ {
+ // Read in revert order because wee received list of parents in upward order
+ for (int i = list.size(); i > 0; i--)
+ {
+ MBeanScopingData scopingData = list.get(i - 1);
+ props.putAll(scopingData);
+ }
+ try
+ {
+ this.objectName = JMX.createObjectName("exo", props);
+ }
+ catch (Exception e)
+ {
+ LOG.error("Could not create the object name", e);
+ }
+ }
+ this.objectNameSet = true;
+ }
+ }
+ }
+ return objectName;
+ }
+
public ComponentAdapter registerComponentInstance(Object componentKey, Object componentInstance)
throws PicoRegistrationException
{
Modified: kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestPortalContainer.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestPortalContainer.java 2011-05-27 12:48:48 UTC (rev 4444)
+++ kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestPortalContainer.java 2011-05-27 18:05:10 UTC (rev 4445)
@@ -31,6 +31,19 @@
*/
public class TestPortalContainer extends AbstractTestContainer
{
+
+ public void testHasScopingObjectName()
+ {
+ URL rootURL = getClass().getResource("empty-config.xml");
+ URL portalURL = getClass().getResource("empty-config.xml");
+ assertNotNull(rootURL);
+ assertNotNull(portalURL);
+ //
+ new ContainerBuilder().withRoot(rootURL).withPortal(portalURL).build();
+ assertNull(RootContainer.getInstance().getScopingObjectName());
+ assertNotNull(PortalContainer.getInstance().getScopingObjectName());
+ }
+
public void testInitValues()
{
createRootContainer("portal-container-config-with-settings.xml");
12 years, 11 months
exo-jcr SVN: r4444 - ws/branches/2.1.x/patch/2.1.9-GA/WS-266.
by do-not-reply@jboss.org
Author: dkuleshov
Date: 2011-05-27 08:48:48 -0400 (Fri, 27 May 2011)
New Revision: 4444
Added:
ws/branches/2.1.x/patch/2.1.9-GA/WS-266/WS-266.patch
Log:
WS-266: adding the patch
Added: ws/branches/2.1.x/patch/2.1.9-GA/WS-266/WS-266.patch
===================================================================
--- ws/branches/2.1.x/patch/2.1.9-GA/WS-266/WS-266.patch (rev 0)
+++ ws/branches/2.1.x/patch/2.1.9-GA/WS-266/WS-266.patch 2011-05-27 12:48:48 UTC (rev 4444)
@@ -0,0 +1,60 @@
+Index: exo.ws.rest.core/pom.xml
+===================================================================
+--- exo.ws.rest.core/pom.xml (revision 4443)
++++ exo.ws.rest.core/pom.xml (working copy)
+@@ -105,6 +105,25 @@
+ <build>
+ <plugins>
+ <plugin>
++ <groupId>org.codehaus.mojo</groupId>
++ <artifactId>build-helper-maven-plugin</artifactId>
++ <version>1.5</version>
++ <executions>
++ <execution>
++ <id>add-test-sources</id>
++ <phase>generate-test-sources</phase>
++ <goals>
++ <goal>add-test-source</goal>
++ </goals>
++ <configuration>
++ <sources>
++ <source>target/generated-test-sources</source>
++ </sources>
++ </configuration>
++ </execution>
++ </executions>
++ </plugin>
++ <plugin>
+ <groupId>org.jvnet.jaxb2.maven2</groupId>
+ <artifactId>maven-jaxb2-plugin</artifactId>
+ <executions>
+@@ -148,29 +167,6 @@
+ </execution>
+ </executions>
+ </plugin>
+- <plugin>
+- <groupId>org.apache.maven.plugins</groupId>
+- <artifactId>maven-antrun-plugin</artifactId>
+- <executions>
+- <execution>
+- <id>0</id>
+- <goals>
+- <goal>run</goal>
+- </goals>
+- <phase>generate-test-sources</phase>
+- <configuration>
+- <tasks>
+- <echo>copy files gnerated by JAXB to test source directory</echo>
+- <copy todir="src/test/java">
+- <fileset dir="target/generated-test-sources">
+- <include name="org/**" />
+- </fileset>
+- </copy>
+- </tasks>
+- </configuration>
+- </execution>
+- </executions>
+- </plugin>
+ </plugins>
+ </build>
+ </project>
12 years, 11 months
exo-jcr SVN: r4442 - in ws/trunk: exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/impl and 4 other directories.
by do-not-reply@jboss.org
Author: dkuleshov
Date: 2011-05-27 07:45:11 -0400 (Fri, 27 May 2011)
New Revision: 4442
Modified:
ws/trunk/exo.ws.frameworks.json/pom.xml
ws/trunk/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/impl/JsonGeneratorImpl.java
ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/BaseObjectModel.java
ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/DependencySupplier.java
ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/FieldInjectorImpl.java
ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/resource/AbstractResourceDescriptorImpl.java
ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/DefaultGroovyResourceLoader.java
ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/ExtendedGroovyClassLoader.java
ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/GroovyClassLoaderProvider.java
ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/GroovyJaxrsPublisher.java
Log:
EXOJCR-1186: source code has been reworked to increase performance
Modified: ws/trunk/exo.ws.frameworks.json/pom.xml
===================================================================
--- ws/trunk/exo.ws.frameworks.json/pom.xml 2011-05-27 11:36:04 UTC (rev 4441)
+++ ws/trunk/exo.ws.frameworks.json/pom.xml 2011-05-27 11:45:11 UTC (rev 4442)
@@ -48,6 +48,10 @@
<groupId>org.exoplatform.kernel</groupId>
<artifactId>exo.kernel.commons.test</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.exoplatform.kernel</groupId>
+ <artifactId>exo.kernel.commons</artifactId>
+ </dependency>
</dependencies>
<build>
Modified: ws/trunk/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/impl/JsonGeneratorImpl.java
===================================================================
--- ws/trunk/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/impl/JsonGeneratorImpl.java 2011-05-27 11:36:04 UTC (rev 4441)
+++ ws/trunk/exo.ws.frameworks.json/src/main/java/org/exoplatform/ws/frameworks/json/impl/JsonGeneratorImpl.java 2011-05-27 11:45:11 UTC (rev 4442)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.ws.frameworks.json.impl;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.ws.frameworks.json.JsonGenerator;
import org.exoplatform.ws.frameworks.json.impl.JsonUtils.Types;
import org.exoplatform.ws.frameworks.json.value.JsonValue;
@@ -35,7 +36,6 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Collection;
@@ -386,7 +386,7 @@
{
Set<String> set = new HashSet<String>();
- Field[] fields = AccessController.doPrivileged(new PrivilegedAction<Field[]>()
+ Field[] fields = SecurityHelper.doPrivilegedAction(new PrivilegedAction<Field[]>()
{
public Field[] run()
{
Modified: ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/BaseObjectModel.java
===================================================================
--- ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/BaseObjectModel.java 2011-05-27 11:36:04 UTC (rev 4441)
+++ ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/BaseObjectModel.java 2011-05-27 11:45:11 UTC (rev 4442)
@@ -18,13 +18,13 @@
*/
package org.exoplatform.services.rest;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.services.rest.impl.ConstructorDescriptorImpl;
import org.exoplatform.services.rest.impl.FieldInjectorImpl;
import org.exoplatform.services.rest.impl.MultivaluedMapImpl;
import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Collections;
@@ -54,7 +54,7 @@
if (scope == ComponentLifecycleScope.PER_REQUEST)
{
Constructor<?>[] jConstructors =
- AccessController.doPrivileged(new PrivilegedAction<Constructor<?>[]>() {
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<Constructor<?>[]>() {
public Constructor<?>[] run()
{
return BaseObjectModel.this.clazz.getConstructors();
@@ -76,7 +76,7 @@
}
// process field
java.lang.reflect.Field[] jfields =
- AccessController.doPrivileged(new PrivilegedAction<java.lang.reflect.Field[]>() {
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<java.lang.reflect.Field[]>() {
public java.lang.reflect.Field[] run()
{
return BaseObjectModel.this.clazz.getDeclaredFields();
Modified: ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/DependencySupplier.java
===================================================================
--- ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/DependencySupplier.java 2011-05-27 11:36:04 UTC (rev 4441)
+++ ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/DependencySupplier.java 2011-05-27 11:45:11 UTC (rev 4442)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.rest.impl;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.container.ExoContainer;
import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.container.xml.InitParams;
@@ -29,7 +30,6 @@
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
-import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.util.Iterator;
@@ -72,7 +72,7 @@
final ValueParam injectAnnotationParameter = params.getValueParam("inject.annotation.class");
try
{
- injectAnnotationClass = AccessController.doPrivileged(new PrivilegedExceptionAction<Class>()
+ injectAnnotationClass = SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Class>()
{
public Class run() throws ClassNotFoundException
{
@@ -179,7 +179,7 @@
Type injectedType = null;
try
{
- get = AccessController.doPrivileged(new PrivilegedExceptionAction<Method>()
+ get = SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Method>()
{
public Method run() throws NoSuchMethodException
{
Modified: ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/FieldInjectorImpl.java
===================================================================
--- ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/FieldInjectorImpl.java 2011-05-27 11:36:04 UTC (rev 4441)
+++ ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/FieldInjectorImpl.java 2011-05-27 11:45:11 UTC (rev 4442)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.rest.impl;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.services.rest.ApplicationContext;
import org.exoplatform.services.rest.FieldInjector;
import org.exoplatform.services.rest.impl.method.ParameterHelper;
@@ -29,7 +30,6 @@
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.Type;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
@@ -141,7 +141,7 @@
Method setter = null;
try
{
- setter = AccessController.doPrivileged(new PrivilegedExceptionAction<Method>() {
+ setter = SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Method>() {
public Method run() throws NoSuchMethodException
{
String name = jfield.getName();
@@ -231,7 +231,7 @@
{
if (!Modifier.isPublic(jfield.getModifiers()))
{
- AccessController.doPrivileged(new PrivilegedAction<Void>() {
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>() {
public Void run()
{
jfield.setAccessible(true);
@@ -265,7 +265,7 @@
{
if (!Modifier.isPublic(jfield.getModifiers()))
{
- AccessController.doPrivileged(new PrivilegedAction<Void>() {
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>() {
public Void run()
{
jfield.setAccessible(true);
Modified: ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/resource/AbstractResourceDescriptorImpl.java
===================================================================
--- ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/resource/AbstractResourceDescriptorImpl.java 2011-05-27 11:36:04 UTC (rev 4441)
+++ ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/resource/AbstractResourceDescriptorImpl.java 2011-05-27 11:45:11 UTC (rev 4442)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.rest.impl.resource;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.exoplatform.services.rest.BaseObjectModel;
@@ -44,7 +45,6 @@
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.Type;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Collections;
@@ -244,7 +244,7 @@
{
final Class<?> resourceClass = getObjectClass();
- Method[] methods = AccessController.doPrivileged(new PrivilegedAction<Method[]>() {
+ Method[] methods = SecurityHelper.doPrivilegedAction(new PrivilegedAction<Method[]>() {
public Method[] run()
{
return resourceClass.getDeclaredMethods();
Modified: ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/DefaultGroovyResourceLoader.java
===================================================================
--- ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/DefaultGroovyResourceLoader.java 2011-05-27 11:36:04 UTC (rev 4441)
+++ ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/DefaultGroovyResourceLoader.java 2011-05-27 11:45:11 UTC (rev 4442)
@@ -21,10 +21,11 @@
import groovy.lang.GroovyResourceLoader;
+import org.exoplatform.commons.utils.SecurityHelper;
+
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
-import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.util.Collections;
@@ -92,7 +93,7 @@
final String ffilename = filename.replace('.', '/') + getSourceFileExtension();
try
{
- resource = AccessController.doPrivileged(new PrivilegedExceptionAction<URL>()
+ resource = SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<URL>()
{
public URL run() throws MalformedURLException
{
Modified: ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/ExtendedGroovyClassLoader.java
===================================================================
--- ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/ExtendedGroovyClassLoader.java 2011-05-27 11:36:04 UTC (rev 4441)
+++ ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/ExtendedGroovyClassLoader.java 2011-05-27 11:45:11 UTC (rev 4442)
@@ -27,11 +27,11 @@
import org.codehaus.groovy.control.CompilerConfiguration;
import org.codehaus.groovy.control.Phases;
import org.codehaus.groovy.control.SourceUnit;
+import org.exoplatform.commons.utils.SecurityHelper;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
-import java.security.AccessController;
import java.security.CodeSource;
import java.security.PrivilegedAction;
import java.util.ArrayList;
@@ -270,7 +270,7 @@
protected SingleClassCollector createSingleCollector(CompilationUnit unit, SourceUnit sunit)
{
- ExtendedInnerLoader loader = AccessController.doPrivileged(new PrivilegedAction<ExtendedInnerLoader>() {
+ ExtendedInnerLoader loader = SecurityHelper.doPrivilegedAction(new PrivilegedAction<ExtendedInnerLoader>() {
public ExtendedInnerLoader run()
{
return new ExtendedInnerLoader(ExtendedGroovyClassLoader.this);
@@ -281,7 +281,7 @@
protected MultipleClassCollector createMultipleCollector(CompilationUnit unit, Set<SourceUnit> setSunit)
{
- ExtendedInnerLoader loader = AccessController.doPrivileged(new PrivilegedAction<ExtendedInnerLoader>() {
+ ExtendedInnerLoader loader = SecurityHelper.doPrivilegedAction(new PrivilegedAction<ExtendedInnerLoader>() {
public ExtendedInnerLoader run()
{
return new ExtendedInnerLoader(ExtendedGroovyClassLoader.this);
Modified: ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/GroovyClassLoaderProvider.java
===================================================================
--- ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/GroovyClassLoaderProvider.java 2011-05-27 11:36:04 UTC (rev 4441)
+++ ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/GroovyClassLoaderProvider.java 2011-05-27 11:45:11 UTC (rev 4442)
@@ -20,9 +20,10 @@
import groovy.lang.GroovyClassLoader;
+import org.exoplatform.commons.utils.SecurityHelper;
+
import java.net.MalformedURLException;
import java.net.URL;
-import java.security.AccessController;
import java.security.PrivilegedAction;
/**
@@ -41,7 +42,7 @@
public GroovyClassLoaderProvider()
{
- this(AccessController.doPrivileged(new PrivilegedAction<ExtendedGroovyClassLoader>()
+ this(SecurityHelper.doPrivilegedAction(new PrivilegedAction<ExtendedGroovyClassLoader>()
{
public ExtendedGroovyClassLoader run()
{
@@ -85,7 +86,7 @@
final GroovyClassLoader parent = getGroovyClassLoader();
ExtendedGroovyClassLoader classLoader =
- AccessController.doPrivileged(new PrivilegedAction<ExtendedGroovyClassLoader>()
+ SecurityHelper.doPrivilegedAction(new PrivilegedAction<ExtendedGroovyClassLoader>()
{
public ExtendedGroovyClassLoader run()
{
Modified: ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/GroovyJaxrsPublisher.java
===================================================================
--- ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/GroovyJaxrsPublisher.java 2011-05-27 11:36:04 UTC (rev 4441)
+++ ws/trunk/exo.ws.rest.ext/src/main/java/org/exoplatform/services/rest/ext/groovy/GroovyJaxrsPublisher.java 2011-05-27 11:45:11 UTC (rev 4442)
@@ -23,6 +23,7 @@
import groovy.lang.GroovyCodeSource;
import org.codehaus.groovy.control.CompilationFailedException;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.container.ExoContainer;
import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.services.log.ExoLogger;
@@ -42,7 +43,6 @@
import java.net.MalformedURLException;
import java.nio.charset.Charset;
import java.nio.charset.UnsupportedCharsetException;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
@@ -210,7 +210,7 @@
public void publishPerRequest(final InputStream in, final ResourceId resourceId,
final MultivaluedMap<String, String> properties, final SourceFolder[] src, final SourceFile[] files)
{
- Class<?> rc = AccessController.doPrivileged(new PrivilegedAction<Class<?>>() {
+ Class<?> rc = SecurityHelper.doPrivilegedAction(new PrivilegedAction<Class<?>>() {
public Class<?> run()
{
try
@@ -513,7 +513,7 @@
try
{
//rc =
- AccessController.doPrivileged(new PrivilegedExceptionAction<Class<?>>() {
+ SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Class<?>>() {
public Class<?> run() throws MalformedURLException
{
ExtendedGroovyClassLoader cl =
@@ -684,7 +684,7 @@
*/
protected GroovyCodeSource createCodeSource(final InputStream in, final String name)
{
- GroovyCodeSource gcs = AccessController.doPrivileged(new PrivilegedAction<GroovyCodeSource>() {
+ GroovyCodeSource gcs = SecurityHelper.doPrivilegedAction(new PrivilegedAction<GroovyCodeSource>() {
public GroovyCodeSource run()
{
return new GroovyCodeSource(in, name, ExtendedGroovyClassLoader.CODE_BASE);
12 years, 11 months
exo-jcr SVN: r4441 - in core/trunk/exo.core.component.document/src/main/java/org/exoplatform/services/document/impl: tika and 1 other directory.
by do-not-reply@jboss.org
Author: dkuleshov
Date: 2011-05-27 07:36:04 -0400 (Fri, 27 May 2011)
New Revision: 4441
Modified:
core/trunk/exo.core.component.document/src/main/java/org/exoplatform/services/document/impl/PDFDocumentReader.java
core/trunk/exo.core.component.document/src/main/java/org/exoplatform/services/document/impl/tika/TikaDocumentReader.java
Log:
EXOJCR-1186: source code has been reworked to increase performance
Modified: core/trunk/exo.core.component.document/src/main/java/org/exoplatform/services/document/impl/PDFDocumentReader.java
===================================================================
--- core/trunk/exo.core.component.document/src/main/java/org/exoplatform/services/document/impl/PDFDocumentReader.java 2011-05-27 11:31:27 UTC (rev 4440)
+++ core/trunk/exo.core.component.document/src/main/java/org/exoplatform/services/document/impl/PDFDocumentReader.java 2011-05-27 11:36:04 UTC (rev 4441)
@@ -28,6 +28,7 @@
import org.apache.pdfbox.pdmodel.PDDocumentInformation;
import org.apache.pdfbox.pdmodel.common.PDMetadata;
import org.apache.pdfbox.util.PDFTextStripper;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.services.document.DCMetaData;
import org.exoplatform.services.document.DocumentReadException;
import org.exoplatform.services.log.ExoLogger;
@@ -36,7 +37,6 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;
-import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.util.Calendar;
@@ -75,9 +75,9 @@
try
{
- return (String)AccessController.doPrivileged(new PrivilegedExceptionAction<Object>()
+ return SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<String>()
{
- public Object run() throws Exception
+ public String run() throws Exception
{
if (is == null)
{
@@ -163,9 +163,9 @@
{
try
{
- return (Properties)AccessController.doPrivileged(new PrivilegedExceptionAction<Object>()
+ return SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Properties>()
{
- public Object run() throws Exception
+ public Properties run() throws Exception
{
if (is == null)
{
Modified: core/trunk/exo.core.component.document/src/main/java/org/exoplatform/services/document/impl/tika/TikaDocumentReader.java
===================================================================
--- core/trunk/exo.core.component.document/src/main/java/org/exoplatform/services/document/impl/tika/TikaDocumentReader.java 2011-05-27 11:31:27 UTC (rev 4440)
+++ core/trunk/exo.core.component.document/src/main/java/org/exoplatform/services/document/impl/tika/TikaDocumentReader.java 2011-05-27 11:36:04 UTC (rev 4441)
@@ -26,6 +26,7 @@
import org.apache.tika.sax.BodyContentHandler;
import org.apache.tika.sax.WriteOutContentHandler;
import org.exoplatform.commons.utils.QName;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.services.document.AdvancedDocumentReader;
import org.exoplatform.services.document.DCMetaData;
import org.exoplatform.services.document.DocumentReadException;
@@ -36,7 +37,6 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
-import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.util.Properties;
@@ -71,10 +71,10 @@
{
try
{
- return (Reader)AccessController.doPrivileged(new PrivilegedExceptionAction<Object>()
+ return SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Reader>()
{
- public Object run() throws Exception
+ public Reader run() throws Exception
{
Metadata metadata = new Metadata();
metadata.set(Metadata.CONTENT_TYPE, mimeType);
@@ -107,10 +107,10 @@
{
try
{
- return (Reader)AccessController.doPrivileged(new PrivilegedExceptionAction<Object>()
+ return SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Reader>()
{
- public Object run() throws Exception
+ public Reader run() throws Exception
{
Metadata metadata = new Metadata();
metadata.set(Metadata.CONTENT_TYPE, mimeType);
@@ -143,10 +143,10 @@
{
try
{
- return (String)AccessController.doPrivileged(new PrivilegedExceptionAction<Object>()
+ return SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<String>()
{
- public Object run() throws Exception
+ public String run() throws Exception
{
try
{
@@ -206,9 +206,9 @@
{
try
{
- return (String)AccessController.doPrivileged(new PrivilegedExceptionAction<Object>()
+ return SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<String>()
{
- public Object run() throws Exception
+ public String run() throws Exception
{
try
{
@@ -273,10 +273,10 @@
{
try
{
- return (Properties)AccessController.doPrivileged(new PrivilegedExceptionAction<Object>()
+ return SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Properties>()
{
- public Object run() throws Exception
+ public Properties run() throws Exception
{
try
{
12 years, 11 months
exo-jcr SVN: r4440 - in kernel/trunk: exo.kernel.commons.test/src/main/java/org/exoplatform/commons/test and 8 other directories.
by do-not-reply@jboss.org
Author: dkuleshov
Date: 2011-05-27 07:31:27 -0400 (Fri, 27 May 2011)
New Revision: 4440
Modified:
kernel/trunk/exo.kernel.commons.test/src/main/java/org/exoplatform/commons/test/TestSecurityManager.java
kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/PrivilegedFileHelper.java
kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/PrivilegedSystemHelper.java
kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/SecurityHelper.java
kernel/trunk/exo.kernel.component.command/src/main/java/org/exoplatform/services/command/impl/CommandService.java
kernel/trunk/exo.kernel.component.command/src/main/java/org/exoplatform/services/command/impl/CommonsXMLConfigurationPlugin.java
kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/rpc/impl/RPCServiceImpl.java
kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/QuartzSheduler.java
kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/transaction/impl/AbstractTransactionService.java
kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/util/PrivilegedCacheHelper.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ConfigurationUnmarshaller.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMXManagementProvider.java
kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/xml/object/XMLObject.java
Log:
EXOJCR-1186: source code has been reworked to increase performance
Modified: kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/PrivilegedFileHelper.java
===================================================================
--- kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/PrivilegedFileHelper.java 2011-05-27 11:15:05 UTC (rev 4439)
+++ kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/PrivilegedFileHelper.java 2011-05-27 11:31:27 UTC (rev 4440)
@@ -26,7 +26,6 @@
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.RandomAccessFile;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
@@ -60,7 +59,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -98,7 +97,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -136,7 +135,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -175,7 +174,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -213,7 +212,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -251,7 +250,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -289,7 +288,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -327,7 +326,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -370,7 +369,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -416,7 +415,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -461,7 +460,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -500,7 +499,7 @@
return new Long(file.length());
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -519,7 +518,7 @@
return null;
}
};
- AccessController.doPrivileged(action);
+ SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -537,7 +536,7 @@
return file.getAbsolutePath();
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -558,7 +557,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -593,7 +592,7 @@
return file.delete();
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -612,7 +611,7 @@
return file.isDirectory();
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -631,7 +630,7 @@
return file.exists();
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -649,7 +648,7 @@
return file.mkdirs();
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -668,7 +667,7 @@
return new Boolean(srcFile.renameTo(dstfile));
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -686,7 +685,7 @@
return file.list();
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -704,7 +703,7 @@
return file.list(filter);
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -722,7 +721,7 @@
return file.listFiles();
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -740,7 +739,7 @@
return file.listFiles(filter);
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -758,6 +757,6 @@
return file.listFiles(filter);
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
}
Modified: kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/PrivilegedSystemHelper.java
===================================================================
--- kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/PrivilegedSystemHelper.java 2011-05-27 11:15:05 UTC (rev 4439)
+++ kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/PrivilegedSystemHelper.java 2011-05-27 11:31:27 UTC (rev 4440)
@@ -20,7 +20,6 @@
import java.io.InputStream;
import java.net.URL;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Properties;
@@ -47,7 +46,7 @@
return System.getProperty(key);
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -65,7 +64,7 @@
return System.getProperties();
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -84,7 +83,7 @@
return null;
}
};
- AccessController.doPrivileged(action);
+ SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -103,7 +102,7 @@
return System.getProperty(key, def);
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -122,7 +121,7 @@
return Thread.currentThread().getContextClassLoader().getResource(name);
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -141,7 +140,7 @@
return Thread.currentThread().getContextClassLoader().getResourceAsStream(name);
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
}
Modified: kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/SecurityHelper.java
===================================================================
--- kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/SecurityHelper.java 2011-05-27 11:15:05 UTC (rev 4439)
+++ kernel/trunk/exo.kernel.commons/src/main/java/org/exoplatform/commons/utils/SecurityHelper.java 2011-05-27 11:31:27 UTC (rev 4440)
@@ -53,7 +53,7 @@
{
try
{
- return AccessController.doPrivileged(action);
+ return doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -85,7 +85,7 @@
{
try
{
- return AccessController.doPrivileged(action);
+ return doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -117,7 +117,7 @@
{
try
{
- return AccessController.doPrivileged(action);
+ return doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -150,7 +150,7 @@
{
try
{
- return AccessController.doPrivileged(action);
+ return doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -187,7 +187,7 @@
{
try
{
- return AccessController.doPrivileged(action);
+ return doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -219,7 +219,7 @@
{
try
{
- return AccessController.doPrivileged(action);
+ return doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -252,7 +252,7 @@
{
try
{
- return AccessController.doPrivileged(action);
+ return doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -281,9 +281,14 @@
*/
public static <E> E doPrivilegedAction(PrivilegedAction<E> action)
{
- return AccessController.doPrivileged(action);
+// if (System.getSecurityManager() != null)
+ {
+ // A security manager has been established
+ return AccessController.doPrivileged(action);
+ }
+// return action.run();
}
-
+
/**
* Launches action in privileged mode.
*
@@ -294,7 +299,18 @@
public static <E> E doPrivilegedExceptionAction(PrivilegedExceptionAction<E> action)
throws PrivilegedActionException
{
- return AccessController.doPrivileged(action);
+// if (System.getSecurityManager() != null)
+ {
+ // A security manager has been established
+ return AccessController.doPrivileged(action);
+ }
+/* try
+ {
+ return action.run();
+ }
+ catch (Exception e)
+ {
+ throw new PrivilegedActionException(e);
+ }*/
}
-
}
Modified: kernel/trunk/exo.kernel.commons.test/src/main/java/org/exoplatform/commons/test/TestSecurityManager.java
===================================================================
--- kernel/trunk/exo.kernel.commons.test/src/main/java/org/exoplatform/commons/test/TestSecurityManager.java 2011-05-27 11:15:05 UTC (rev 4439)
+++ kernel/trunk/exo.kernel.commons.test/src/main/java/org/exoplatform/commons/test/TestSecurityManager.java 2011-05-27 11:31:27 UTC (rev 4440)
@@ -18,15 +18,32 @@
*/
package org.exoplatform.commons.test;
+import java.io.IOException;
+import java.io.InputStream;
import java.security.Permission;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
/**
+ * You can exclude methods by adding the file <code>tsm-excludes.properties</code> into the classpath. The expected format is:
+ * <code>
+ * ${fqn-of-the-class}.${method-name}=${called-method-name}(,${called-method-name})*
+ * </code>
+ *
* @author <a href="anatoliy.bazko(a)exoplatform.org">Anatoliy Bazko</a>
* @version $Id: TestSecurityManager.java 2636 2010-06-16 14:18:23Z tolusha $
*
*/
public class TestSecurityManager extends SecurityManager
{
+ /**
+ * Map of methods to exclude and for each method we define a list of method called to ignore
+ */
+ private final Map<String, Set<String>> excludes = getExcludes();
/**
* {@inheritDoc}
@@ -52,7 +69,14 @@
{
String className = traceElements[i].getClassName();
String fileName = traceElements[i].getFileName();
-
+ String methodName = traceElements[i].getMethodName();
+ if (excludes != null && i - 1 >= 0
+ && excludes.containsKey(className + "." + methodName)
+ && excludes.get(className + "." + methodName).contains(traceElements[i - 1].getMethodName()))
+ {
+ // the called method is excluded thus we ignore the exception
+ return;
+ }
if (className.startsWith("org.exoplatform"))
{
// known tests classes
@@ -101,4 +125,52 @@
throw se;
}
}
+
+ /**
+ * @return
+ */
+ private Map<String, Set<String>> getExcludes()
+ {
+ InputStream is = null;
+ try
+ {
+ is = Thread.currentThread().getContextClassLoader().getResourceAsStream("tsm-excludes.properties");
+ }
+ catch (Exception e)
+ {
+ // ignore me
+ }
+ if (is != null)
+ {
+ try
+ {
+ System.out.println("A file 'tsm-excludes.properties' has been found"); //NOSONAR
+ Properties p = new Properties();
+ p.load(is);
+ Map<String, Set<String>> excludes = new HashMap<String, Set<String>>();
+ for (Object key : p.keySet())
+ {
+ String[] values = p.getProperty((String)key).split(",");
+ excludes.put((String)key, new HashSet<String>(Arrays.asList(values)));
+ }
+ return excludes;
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace(); //NOSONAR
+ }
+ finally
+ {
+ try
+ {
+ is.close();
+ }
+ catch (IOException e)
+ {
+ // ignore me
+ }
+ }
+ }
+ return null;
+ }
}
Modified: kernel/trunk/exo.kernel.component.command/src/main/java/org/exoplatform/services/command/impl/CommandService.java
===================================================================
--- kernel/trunk/exo.kernel.component.command/src/main/java/org/exoplatform/services/command/impl/CommandService.java 2011-05-27 11:15:05 UTC (rev 4439)
+++ kernel/trunk/exo.kernel.component.command/src/main/java/org/exoplatform/services/command/impl/CommandService.java 2011-05-27 11:31:27 UTC (rev 4440)
@@ -23,12 +23,12 @@
import org.apache.commons.chain.config.ConfigParser;
import org.apache.commons.chain.impl.CatalogFactoryBase;
import org.apache.commons.digester.Digester;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.container.component.ComponentPlugin;
import org.xml.sax.SAXException;
import java.io.IOException;
import java.io.InputStream;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
@@ -56,7 +56,7 @@
this.catalogFactory = CatalogFactoryBase.getInstance();
final ConfigParser parser = new ConfigParser();
- this.digester = AccessController.doPrivileged(new PrivilegedAction<Digester>()
+ this.digester = SecurityHelper.doPrivilegedAction(new PrivilegedAction<Digester>()
{
public Digester run()
{
@@ -98,7 +98,7 @@
try
{
- AccessController.doPrivileged(new PrivilegedExceptionAction<Void>()
+ SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Void>()
{
public Void run() throws Exception
{
Modified: kernel/trunk/exo.kernel.component.command/src/main/java/org/exoplatform/services/command/impl/CommonsXMLConfigurationPlugin.java
===================================================================
--- kernel/trunk/exo.kernel.component.command/src/main/java/org/exoplatform/services/command/impl/CommonsXMLConfigurationPlugin.java 2011-05-27 11:15:05 UTC (rev 4439)
+++ kernel/trunk/exo.kernel.component.command/src/main/java/org/exoplatform/services/command/impl/CommonsXMLConfigurationPlugin.java 2011-05-27 11:31:27 UTC (rev 4440)
@@ -19,6 +19,7 @@
package org.exoplatform.services.command.impl;
import org.apache.commons.chain.config.ConfigParser;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.container.component.BaseComponentPlugin;
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.container.xml.InitParams;
@@ -27,7 +28,6 @@
import org.exoplatform.services.log.Log;
import java.net.URL;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.PrivilegedExceptionAction;
@@ -57,7 +57,7 @@
final ConfigParser parser = new ConfigParser();
// may work for StandaloneContainer
- URL res = AccessController.doPrivileged(new PrivilegedAction<URL>()
+ URL res = SecurityHelper.doPrivilegedAction(new PrivilegedAction<URL>()
{
public URL run()
{
@@ -73,7 +73,7 @@
log.info("Catalog configuration found at " + res);
final URL fRes = res;
- AccessController.doPrivileged(new PrivilegedExceptionAction<Void>()
+ SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Void>()
{
public Void run() throws Exception
{
Modified: kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/rpc/impl/RPCServiceImpl.java
===================================================================
--- kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/rpc/impl/RPCServiceImpl.java 2011-05-27 11:15:05 UTC (rev 4439)
+++ kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/rpc/impl/RPCServiceImpl.java 2011-05-27 11:31:27 UTC (rev 4440)
@@ -54,7 +54,6 @@
import java.io.ObjectOutput;
import java.io.Serializable;
import java.net.URL;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
@@ -224,7 +223,7 @@
try
{
- this.configurator = AccessController.doPrivileged(new PrivilegedExceptionAction<ProtocolStackConfigurator>()
+ this.configurator = SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<ProtocolStackConfigurator>()
{
public ProtocolStackConfigurator run() throws Exception
{
@@ -428,7 +427,7 @@
}
final Message msg = new Message();
msg.setObject(new MessageBody(dests.size() == 1 && dests != members ? dests.get(0) : null, commandId, args));
- RspList rsps = AccessController.doPrivileged(new PrivilegedAction<RspList>()
+ RspList rsps = SecurityHelper.doPrivilegedAction(new PrivilegedAction<RspList>()
{
public RspList run()
{
@@ -703,7 +702,7 @@
try
{
- AccessController.doPrivileged(new PrivilegedExceptionAction<Void>()
+ SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Void>()
{
public Void run() throws Exception
{
@@ -755,19 +754,11 @@
{
if (LOG.isInfoEnabled())
LOG.info("Disconnecting and closing the Channel");
- AccessController.doPrivileged(new PrivilegedAction<Void>()
- {
- public Void run()
- {
- channel.disconnect();
- return null;
- }
- });
-
SecurityHelper.doPrivilegedAction(new PrivilegedAction<Void>()
{
public Void run()
{
+ channel.disconnect();
channel.close();
return null;
}
Modified: kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/QuartzSheduler.java
===================================================================
--- kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/QuartzSheduler.java 2011-05-27 11:15:05 UTC (rev 4439)
+++ kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/QuartzSheduler.java 2011-05-27 11:31:27 UTC (rev 4440)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.scheduler.impl;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.container.BaseContainerLifecyclePlugin;
import org.exoplatform.container.ExoContainer;
import org.exoplatform.container.ExoContainerContext;
@@ -29,7 +30,6 @@
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
-import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
@@ -51,7 +51,7 @@
try
{
- scheduler_ = AccessController.doPrivileged(new PrivilegedExceptionAction<Scheduler>()
+ scheduler_ = SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Scheduler>()
{
public Scheduler run() throws Exception
{
Modified: kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/transaction/impl/AbstractTransactionService.java
===================================================================
--- kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/transaction/impl/AbstractTransactionService.java 2011-05-27 11:15:05 UTC (rev 4439)
+++ kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/transaction/impl/AbstractTransactionService.java 2011-05-27 11:31:27 UTC (rev 4440)
@@ -24,8 +24,6 @@
import org.exoplatform.services.log.Log;
import org.exoplatform.services.transaction.TransactionService;
-import java.security.AccessController;
-import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import javax.transaction.HeuristicMixedException;
@@ -111,49 +109,14 @@
final Transaction tx = tm.getTransaction();
if (tx != null)
{
- PrivilegedExceptionAction<Boolean> action = new PrivilegedExceptionAction<Boolean>()
+ int flag = XAResource.TMSUCCESS;
+ switch (tx.getStatus())
{
- public Boolean run() throws Exception
- {
- int flag = XAResource.TMSUCCESS;
- switch (tx.getStatus())
- {
- case Status.STATUS_MARKED_ROLLBACK:
- case Status.STATUS_ROLLEDBACK:
- case Status.STATUS_ROLLING_BACK: flag = XAResource.TMFAIL;
- }
- return tx.delistResource(xares, flag);
- }
- };
- try
- {
- return AccessController.doPrivileged(action);
- }
- catch (PrivilegedActionException pae)
- {
- Throwable cause = pae.getCause();
-
- if (cause instanceof RollbackException)
- {
- throw (RollbackException)cause;
- }
- else if (cause instanceof IllegalStateException)
- {
- throw (IllegalStateException)cause;
- }
- else if (cause instanceof SystemException)
- {
- throw (SystemException)cause;
- }
- else if (cause instanceof RuntimeException)
- {
- throw (RuntimeException)cause;
- }
- else
- {
- throw new RuntimeException(cause);
- }
- }
+ case Status.STATUS_MARKED_ROLLBACK:
+ case Status.STATUS_ROLLEDBACK:
+ case Status.STATUS_ROLLING_BACK: flag = XAResource.TMFAIL;
+ }
+ return tx.delistResource(xares, flag);
}
else
{
@@ -170,42 +133,7 @@
final Transaction tx = tm.getTransaction();
if (tx != null)
{
- PrivilegedExceptionAction<Boolean> action = new PrivilegedExceptionAction<Boolean>()
- {
- public Boolean run() throws Exception
- {
- return tx.enlistResource(xares);
- }
- };
- try
- {
- return AccessController.doPrivileged(action);
- }
- catch (PrivilegedActionException pae)
- {
- Throwable cause = pae.getCause();
-
- if (cause instanceof RollbackException)
- {
- throw (RollbackException)cause;
- }
- else if (cause instanceof IllegalStateException)
- {
- throw (IllegalStateException)cause;
- }
- else if (cause instanceof SystemException)
- {
- throw (SystemException)cause;
- }
- else if (cause instanceof RuntimeException)
- {
- throw (RuntimeException)cause;
- }
- else
- {
- throw new RuntimeException(cause);
- }
- }
+ return tx.enlistResource(xares);
}
else
{
@@ -386,38 +314,7 @@
}
// Start the transaction
- PrivilegedExceptionAction<Object> action = new PrivilegedExceptionAction<Object>()
- {
- public Object run() throws Exception
- {
- tm.begin();
- return null;
- }
- };
- try
- {
- AccessController.doPrivileged(action);
- }
- catch (PrivilegedActionException pae)
- {
- Throwable cause = pae.getCause();
- if (cause instanceof NotSupportedException)
- {
- throw (NotSupportedException)cause;
- }
- else if (cause instanceof SystemException)
- {
- throw (SystemException)cause;
- }
- else if (cause instanceof RuntimeException)
- {
- throw (RuntimeException)cause;
- }
- else
- {
- throw new RuntimeException(cause);
- }
- }
+ tm.begin();
}
/**
@@ -426,54 +323,7 @@
public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException,
SecurityException, IllegalStateException, SystemException
{
- PrivilegedExceptionAction<Object> action = new PrivilegedExceptionAction<Object>()
- {
- public Object run() throws Exception
- {
- tm.commit();
- return null;
- }
- };
- try
- {
- AccessController.doPrivileged(action);
- }
- catch (PrivilegedActionException pae)
- {
- Throwable cause = pae.getCause();
- if (cause instanceof RollbackException)
- {
- throw (RollbackException)cause;
- }
- else if (cause instanceof HeuristicMixedException)
- {
- throw (HeuristicMixedException)cause;
- }
- else if (cause instanceof HeuristicRollbackException)
- {
- throw (HeuristicRollbackException)cause;
- }
- else if (cause instanceof SecurityException)
- {
- throw (SecurityException)cause;
- }
- else if (cause instanceof IllegalStateException)
- {
- throw (IllegalStateException)cause;
- }
- else if (cause instanceof SystemException)
- {
- throw (SystemException)cause;
- }
- else if (cause instanceof RuntimeException)
- {
- throw (RuntimeException)cause;
- }
- else
- {
- throw new RuntimeException(cause);
- }
- }
+ tm.commit();
}
/**
@@ -489,32 +339,7 @@
*/
public Transaction getTransaction() throws SystemException
{
- try
- {
- return SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Transaction>()
- {
- public Transaction run() throws Exception
- {
- return tm.getTransaction();
- }
- });
- }
- catch (PrivilegedActionException pae)
- {
- Throwable cause = pae.getCause();
- if (cause instanceof SystemException)
- {
- throw (SystemException)cause;
- }
- else if (cause instanceof RuntimeException)
- {
- throw (RuntimeException)cause;
- }
- else
- {
- throw new RuntimeException(cause);
- }
- }
+ return tm.getTransaction();
}
/**
@@ -523,42 +348,7 @@
public void resume(final Transaction tx) throws InvalidTransactionException, IllegalStateException,
SystemException
{
- PrivilegedExceptionAction<Object> action = new PrivilegedExceptionAction<Object>()
- {
- public Object run() throws Exception
- {
- tm.resume(tx);
- return null;
- }
- };
- try
- {
- AccessController.doPrivileged(action);
- }
- catch (PrivilegedActionException pae)
- {
- Throwable cause = pae.getCause();
- if (cause instanceof InvalidTransactionException)
- {
- throw (InvalidTransactionException)cause;
- }
- else if (cause instanceof IllegalStateException)
- {
- throw (IllegalStateException)cause;
- }
- else if (cause instanceof SystemException)
- {
- throw (SystemException)cause;
- }
- else if (cause instanceof RuntimeException)
- {
- throw (RuntimeException)cause;
- }
- else
- {
- throw new RuntimeException(cause);
- }
- }
+ tm.resume(tx);
}
/**
@@ -566,42 +356,7 @@
*/
public void rollback() throws IllegalStateException, SecurityException, SystemException
{
- PrivilegedExceptionAction<Object> action = new PrivilegedExceptionAction<Object>()
- {
- public Object run() throws Exception
- {
- tm.rollback();
- return null;
- }
- };
- try
- {
- AccessController.doPrivileged(action);
- }
- catch (PrivilegedActionException pae)
- {
- Throwable cause = pae.getCause();
- if (cause instanceof IllegalStateException)
- {
- throw (IllegalStateException)cause;
- }
- else if (cause instanceof SecurityException)
- {
- throw (SecurityException)cause;
- }
- else if (cause instanceof SystemException)
- {
- throw (SystemException)cause;
- }
- else if (cause instanceof RuntimeException)
- {
- throw (RuntimeException)cause;
- }
- else
- {
- throw new RuntimeException(cause);
- }
- }
+ tm.rollback();
}
/**
@@ -626,33 +381,7 @@
*/
public Transaction suspend() throws SystemException
{
- PrivilegedExceptionAction<Transaction> action = new PrivilegedExceptionAction<Transaction>()
- {
- public Transaction run() throws Exception
- {
- return tm.suspend();
- }
- };
- try
- {
- return AccessController.doPrivileged(action);
- }
- catch (PrivilegedActionException pae)
- {
- Throwable cause = pae.getCause();
- if (cause instanceof SystemException)
- {
- throw (SystemException)cause;
- }
- else if (cause instanceof RuntimeException)
- {
- throw (RuntimeException)cause;
- }
- else
- {
- throw new RuntimeException(cause);
- }
- }
+ return tm.suspend();
}
}
@@ -685,38 +414,7 @@
*/
public void begin() throws NotSupportedException, SystemException
{
- PrivilegedExceptionAction<Object> action = new PrivilegedExceptionAction<Object>()
- {
- public Object run() throws Exception
- {
- tm.begin();
- return null;
- }
- };
- try
- {
- AccessController.doPrivileged(action);
- }
- catch (PrivilegedActionException pae)
- {
- Throwable cause = pae.getCause();
- if (cause instanceof NotSupportedException)
- {
- throw (NotSupportedException)cause;
- }
- else if (cause instanceof SystemException)
- {
- throw (SystemException)cause;
- }
- else if (cause instanceof RuntimeException)
- {
- throw (RuntimeException)cause;
- }
- else
- {
- throw new RuntimeException(cause);
- }
- }
+ tm.begin();
}
/**
@@ -725,54 +423,7 @@
public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException,
SecurityException, IllegalStateException, SystemException
{
- PrivilegedExceptionAction<Object> action = new PrivilegedExceptionAction<Object>()
- {
- public Object run() throws Exception
- {
- tm.commit();
- return null;
- }
- };
- try
- {
- AccessController.doPrivileged(action);
- }
- catch (PrivilegedActionException pae)
- {
- Throwable cause = pae.getCause();
- if (cause instanceof RollbackException)
- {
- throw (RollbackException)cause;
- }
- else if (cause instanceof HeuristicMixedException)
- {
- throw (HeuristicMixedException)cause;
- }
- else if (cause instanceof HeuristicRollbackException)
- {
- throw (HeuristicRollbackException)cause;
- }
- else if (cause instanceof SecurityException)
- {
- throw (SecurityException)cause;
- }
- else if (cause instanceof IllegalStateException)
- {
- throw (IllegalStateException)cause;
- }
- else if (cause instanceof SystemException)
- {
- throw (SystemException)cause;
- }
- else if (cause instanceof RuntimeException)
- {
- throw (RuntimeException)cause;
- }
- else
- {
- throw new RuntimeException(cause);
- }
- }
+ tm.commit();
}
/**
@@ -780,42 +431,7 @@
*/
public void rollback() throws IllegalStateException, SecurityException, SystemException
{
- PrivilegedExceptionAction<Object> action = new PrivilegedExceptionAction<Object>()
- {
- public Object run() throws Exception
- {
- tm.rollback();
- return null;
- }
- };
- try
- {
- AccessController.doPrivileged(action);
- }
- catch (PrivilegedActionException pae)
- {
- Throwable cause = pae.getCause();
- if (cause instanceof IllegalStateException)
- {
- throw (IllegalStateException)cause;
- }
- else if (cause instanceof SecurityException)
- {
- throw (SecurityException)cause;
- }
- else if (cause instanceof SystemException)
- {
- throw (SystemException)cause;
- }
- else if (cause instanceof RuntimeException)
- {
- throw (RuntimeException)cause;
- }
- else
- {
- throw new RuntimeException(cause);
- }
- }
+ tm.rollback();
}
/**
Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/util/PrivilegedCacheHelper.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/util/PrivilegedCacheHelper.java 2011-05-27 11:15:05 UTC (rev 4439)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/util/PrivilegedCacheHelper.java 2011-05-27 11:31:27 UTC (rev 4440)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.cache.impl.jboss.util;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.jboss.cache.Cache;
import org.jboss.cache.CacheException;
import org.jboss.cache.CacheFactory;
@@ -26,7 +27,6 @@
import org.jboss.cache.config.ConfigurationException;
import java.io.InputStream;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
@@ -53,7 +53,7 @@
return null;
}
};
- AccessController.doPrivileged(action);
+ SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -71,7 +71,7 @@
return null;
}
};
- AccessController.doPrivileged(action);
+ SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -89,7 +89,7 @@
return null;
}
};
- AccessController.doPrivileged(action);
+ SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -107,7 +107,7 @@
return null;
}
};
- AccessController.doPrivileged(action);
+ SecurityHelper.doPrivilegedAction(action);
}
/**
@@ -127,7 +127,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -164,7 +164,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -200,7 +200,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -236,7 +236,7 @@
};
try
{
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedExceptionAction(action);
}
catch (PrivilegedActionException pae)
{
@@ -270,6 +270,6 @@
return new DefaultCacheFactory<K, V>();
}
};
- return AccessController.doPrivileged(action);
+ return SecurityHelper.doPrivilegedAction(action);
}
}
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ConfigurationUnmarshaller.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ConfigurationUnmarshaller.java 2011-05-27 11:15:05 UTC (rev 4439)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/configuration/ConfigurationUnmarshaller.java 2011-05-27 11:31:27 UTC (rev 4440)
@@ -39,7 +39,6 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URL;
-import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.util.Collections;
@@ -160,7 +159,7 @@
DocumentBuilder builder = null;
try
{
- builder = AccessController.doPrivileged(new PrivilegedExceptionAction<DocumentBuilder>()
+ builder = SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<DocumentBuilder>()
{
public DocumentBuilder run() throws Exception
{
@@ -264,7 +263,7 @@
final DocumentBuilderFactory builderFactory = factory;
try
{
- return AccessController.doPrivileged(new PrivilegedExceptionAction<Configuration>()
+ return SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Configuration>()
{
public Configuration run() throws Exception
{
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMXManagementProvider.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMXManagementProvider.java 2011-05-27 11:15:05 UTC (rev 4439)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/management/jmx/impl/JMXManagementProvider.java 2011-05-27 11:31:27 UTC (rev 4440)
@@ -25,7 +25,6 @@
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
-import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.util.LinkedHashMap;
@@ -174,7 +173,7 @@
}
try
{
- AccessController.doPrivileged(new PrivilegedExceptionAction<Void>()
+ SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Void>()
{
public Void run() throws Exception
{
@@ -197,7 +196,7 @@
{
try
{
- AccessController.doPrivileged(new PrivilegedExceptionAction<Void>()
+ SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<Void>()
{
public Void run() throws Exception
{
Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/xml/object/XMLObject.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/xml/object/XMLObject.java 2011-05-27 11:15:05 UTC (rev 4439)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/xml/object/XMLObject.java 2011-05-27 11:31:27 UTC (rev 4440)
@@ -31,7 +31,6 @@
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
@@ -278,7 +277,7 @@
{
try
{
- return AccessController.doPrivileged(new PrivilegedExceptionAction<IBindingFactory>()
+ return SecurityHelper.doPrivilegedExceptionAction(new PrivilegedExceptionAction<IBindingFactory>()
{
public IBindingFactory run() throws Exception
{
12 years, 11 months
exo-jcr SVN: r4439 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-05-27 07:15:05 -0400 (Fri, 27 May 2011)
New Revision: 4439
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/LazyTextExtractorField.java
Log:
EXOJCR-1200: PROBLEMS during load testing *WARN * [Thread-72] LazyTextExtractorField: Exception reading value for field: Stream closed
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/LazyTextExtractorField.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/LazyTextExtractorField.java 2011-05-27 11:07:52 UTC (rev 4438)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/LazyTextExtractorField.java 2011-05-27 11:15:05 UTC (rev 4439)
@@ -54,7 +54,7 @@
/**
* The extract as obtained lazily from {@link #reader}.
*/
- private String extract;
+ volatile private String extract;
/**
* Creates a new <code>LazyTextExtractorField</code> with the given
12 years, 11 months
exo-jcr SVN: r4438 - jcr/branches/1.12.x/patch/1.12.9-GA/JCR-1618.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-05-27 07:07:52 -0400 (Fri, 27 May 2011)
New Revision: 4438
Modified:
jcr/branches/1.12.x/patch/1.12.9-GA/JCR-1618/JCR-1618.patch
Log:
JCR-1618: patch updated
Modified: jcr/branches/1.12.x/patch/1.12.9-GA/JCR-1618/JCR-1618.patch
===================================================================
--- jcr/branches/1.12.x/patch/1.12.9-GA/JCR-1618/JCR-1618.patch 2011-05-27 11:03:32 UTC (rev 4437)
+++ jcr/branches/1.12.x/patch/1.12.9-GA/JCR-1618/JCR-1618.patch 2011-05-27 11:07:52 UTC (rev 4438)
@@ -1,6 +1,6 @@
Index: exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/data-container.xml
===================================================================
---- exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/data-container.xml (revision 4390)
+--- exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/data-container.xml (revision 4300)
+++ exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/data-container.xml (working copy)
@@ -96,18 +96,6 @@
<programlisting>boolean isCheckSNSNewConnection();
@@ -23,7 +23,7 @@
Configuration consists of implementation class and set of properties and
Index: exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml
===================================================================
---- exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml (revision 4390)
+--- exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml (revision 4300)
+++ exo.jcr.docs/exo.jcr.docs.developer/en/src/main/docbook/en-US/modules/jcr/configuration/jdbc-data-container-config.xml (working copy)
@@ -56,6 +56,13 @@
</listitem>
@@ -41,7 +41,7 @@
database dialect parameter. If you need a more detailed configuration of
Index: exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java
===================================================================
---- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java (revision 4390)
+--- exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java (revision 4300)
+++ exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java (working copy)
@@ -370,7 +370,7 @@
}
@@ -52,14 +52,16 @@
}
// ------------- Values swap config ------------------
-@@ -836,6 +836,22 @@
+@@ -836,6 +836,38 @@
*/
public void start()
{
+ // if isolation level lesser then TRANSACTION_READ_COMMITTED, print a warning
++ Connection con = null;
+ try
+ {
-+ if (getConnectionFactory().getJdbcConnection().getTransactionIsolation() < Connection.TRANSACTION_READ_COMMITTED)
++ con = getConnectionFactory().getJdbcConnection();
++ if (con.getTransactionIsolation() < Connection.TRANSACTION_READ_COMMITTED)
+ {
+ LOG.warn("Wrong default isolation level, please set the default isolation level to READ_COMMITTED or higher. Other default isolation levels are not supported");
+ }
@@ -72,6 +74,20 @@
+ {
+ LOG.error("Error checking isolation level configuration.", e);
+ }
++ finally
++ {
++ if (con != null)
++ {
++ try
++ {
++ con.close();
++ }
++ catch (SQLException e)
++ {
++ // ignore me
++ }
++ }
++ }
}
/**
12 years, 11 months
exo-jcr SVN: r4437 - in jcr/trunk: exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup and 1 other directory.
by do-not-reply@jboss.org
Author: sergiykarpenko
Date: 2011-05-27 07:03:32 -0400 (Fri, 27 May 2011)
New Revision: 4437
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/exporting/SystemViewStreamExporter.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/BackupChainLog.java
Log:
EXOJCR-1167: SystemViewStreamExporter stream close added. BackupChainLog PrivilegedFileHelper.getCanonicalPath() used.
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/exporting/SystemViewStreamExporter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/exporting/SystemViewStreamExporter.java 2011-05-27 10:39:22 UTC (rev 4436)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/xml/exporting/SystemViewStreamExporter.java 2011-05-27 11:03:32 UTC (rev 4437)
@@ -237,13 +237,23 @@
else
{
InputStream is = data.getAsStream();
- byte[] buffer = new byte[BUFFER_SIZE];
- int len;
- while ((len = is.read(buffer)) > 0)
+ try
{
- char[] charbuf1 = Base64.encode(buffer, 0, len, 0, "").toCharArray();
- writer.writeCharacters(charbuf1, 0, charbuf1.length);
+ byte[] buffer = new byte[BUFFER_SIZE];
+ int len;
+ while ((len = is.read(buffer)) > 0)
+ {
+ char[] charbuf1 = Base64.encode(buffer, 0, len, 0, "").toCharArray();
+ writer.writeCharacters(charbuf1, 0, charbuf1.length);
+ }
}
+ finally
+ {
+ if (is != null)
+ {
+ is.close();
+ }
+ }
}
}
}
Modified: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/BackupChainLog.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/BackupChainLog.java 2011-05-27 10:39:22 UTC (rev 4436)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/BackupChainLog.java 2011-05-27 11:03:32 UTC (rev 4437)
@@ -736,8 +736,7 @@
String dir = readContent();
if (dir.equals("."))
{
- String path = logFile.getParentFile().getCanonicalPath();
-
+ String path = PrivilegedFileHelper.getCanonicalPath(logFile.getParentFile());
conf.setBackupDir(new File(path));
}
else
12 years, 11 months
exo-jcr SVN: r4436 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene.
by do-not-reply@jboss.org
Author: tolusha
Date: 2011-05-27 06:39:22 -0400 (Fri, 27 May 2011)
New Revision: 4436
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/LazyTextExtractorField.java
Log:
EXOJCR-1200: PROBLEMS during load testing *WARN * [Thread-72] LazyTextExtractorField: Exception reading value for field: Stream closed
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/LazyTextExtractorField.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/LazyTextExtractorField.java 2011-05-27 07:49:03 UTC (rev 4435)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/LazyTextExtractorField.java 2011-05-27 10:39:22 UTC (rev 4436)
@@ -81,34 +81,39 @@
{
if (extract == null)
{
- StringBuffer textExtract = new StringBuffer();
- char[] buffer = new char[1024];
- int len;
- try
+ synchronized (this)
{
- while ((len = reader.read(buffer)) > -1)
+ if (extract == null)
{
- textExtract.append(buffer, 0, len);
+ StringBuffer textExtract = new StringBuffer();
+ char[] buffer = new char[1024];
+ int len;
+ try
+ {
+ while ((len = reader.read(buffer)) > -1)
+ {
+ textExtract.append(buffer, 0, len);
+ }
+ }
+ catch (IOException e)
+ {
+ log.warn("Exception reading value for field: " + e.getMessage());
+ log.debug("Dump:", e);
+ }
+ finally
+ {
+ try
+ {
+ reader.close();
+ }
+ catch (IOException e)
+ {
+ log.error(e.getLocalizedMessage(), e);
+ }
+ }
+ extract = textExtract.toString();
}
}
- catch (IOException e)
- {
- log.warn("Exception reading value for field: " + e.getMessage());
- log.debug("Dump:", e);
- }
- finally
- {
- //IOUtils.closeQuietly(reader);
- try
- {
- reader.close();
- }
- catch (IOException e)
- {
- log.error(e.getLocalizedMessage(), e);
- }
- }
- extract = textExtract.toString();
}
return extract;
}
12 years, 11 months