Author: skabashnyuk
Date: 2009-11-15 09:29:46 -0500 (Sun, 15 Nov 2009)
New Revision: 668
Added:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/CacheLoaderParameter.java
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/DummyCacheLoader.java
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/DummyInterceptor.java
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/InjectionTest.java
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/InterceptorParameter.java
jcr/branches/1.12.0-JBC/component/core/src/test/resources/conf/standalone/test-custom-interceptor.xml
Log:
EXOJCR-199 : injection test
Added:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/CacheLoaderParameter.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/CacheLoaderParameter.java
(rev 0)
+++
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/CacheLoaderParameter.java 2009-11-15
14:29:46 UTC (rev 668)
@@ -0,0 +1,31 @@
+package org.exoplatform.services.jcr.impl.storage.jbosscache;
+
+import org.jboss.cache.factories.annotations.NonVolatile;
+
+@NonVolatile
+public class CacheLoaderParameter
+{
+ private boolean injected = false;
+
+ public CacheLoaderParameter()
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @return the injected
+ */
+ public boolean isInjected()
+ {
+ return injected;
+ }
+
+ /**
+ * @param injected the injected to set
+ */
+ public void setInjected(boolean injected)
+ {
+ this.injected = injected;
+ }
+}
Property changes on:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/CacheLoaderParameter.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/DummyCacheLoader.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/DummyCacheLoader.java
(rev 0)
+++
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/DummyCacheLoader.java 2009-11-15
14:29:46 UTC (rev 668)
@@ -0,0 +1,86 @@
+package org.exoplatform.services.jcr.impl.storage.jbosscache;
+
+import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.storage.WorkspaceDataContainer;
+import org.jboss.cache.Fqn;
+import org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig;
+import org.jboss.cache.factories.annotations.Inject;
+import org.jboss.cache.loader.AbstractCacheLoader;
+
+import java.util.Map;
+import java.util.Set;
+
+public class DummyCacheLoader extends AbstractCacheLoader
+{
+ private IndividualCacheLoaderConfig config;
+
+ private CacheLoaderParameter dummyParameter;
+
+ public boolean exists(Fqn name) throws Exception
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public Map<Object, Object> get(Fqn name) throws Exception
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Set<?> getChildrenNames(Fqn fqn) throws Exception
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public IndividualCacheLoaderConfig getConfig()
+ {
+ return config;
+ }
+
+ @Inject
+ public void inject(CacheLoaderParameter dummyParameter) throws
RepositoryConfigurationException
+ {
+ this.dummyParameter = dummyParameter;
+ //set injected flag
+ dummyParameter.setInjected(true);
+ }
+
+ public void put(Fqn name, Map<Object, Object> attributes) throws Exception
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public Object put(Fqn name, Object key, Object value) throws Exception
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void remove(Fqn fqn) throws Exception
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public Object remove(Fqn fqn, Object key) throws Exception
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void removeData(Fqn fqn) throws Exception
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void setConfig(IndividualCacheLoaderConfig config)
+ {
+ this.config = config;
+
+ }
+
+}
Property changes on:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/DummyCacheLoader.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/DummyInterceptor.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/DummyInterceptor.java
(rev 0)
+++
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/DummyInterceptor.java 2009-11-15
14:29:46 UTC (rev 668)
@@ -0,0 +1,34 @@
+package org.exoplatform.services.jcr.impl.storage.jbosscache;
+
+import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.impl.core.query.SearchManagerHolder;
+import org.jboss.cache.factories.annotations.Inject;
+import org.jboss.cache.interceptors.base.CommandInterceptor;
+
+public class DummyInterceptor extends CommandInterceptor
+{
+
+ private InterceptorParameter dummyParameter;
+
+ public DummyInterceptor()
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @return the dummyParameter
+ */
+ public InterceptorParameter getDummyParameter()
+ {
+ return dummyParameter;
+ }
+
+ @Inject
+ public void inject(InterceptorParameter dummyParameter) throws
RepositoryConfigurationException
+ {
+ this.dummyParameter = dummyParameter;
+ //set injected flag
+ dummyParameter.setInjected(true);
+ }
+}
Property changes on:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/DummyInterceptor.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/InjectionTest.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/InjectionTest.java
(rev 0)
+++
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/InjectionTest.java 2009-11-15
14:29:46 UTC (rev 668)
@@ -0,0 +1,47 @@
+package org.exoplatform.services.jcr.impl.storage.jbosscache;
+
+import junit.framework.TestCase;
+
+import org.jboss.cache.Cache;
+import org.jboss.cache.CacheFactory;
+import org.jboss.cache.CacheSPI;
+import org.jboss.cache.DefaultCacheFactory;
+
+import java.io.Serializable;
+
+public class InjectionTest extends TestCase
+{
+ /**
+ * Test injection of run time objects
+ * @throws Exception
+ */
+ public void testCustomInterceptorInjection() throws Exception
+ {
+ CacheFactory<Serializable, Object> factory = new
DefaultCacheFactory<Serializable, Object>();
+
+ // create cache
+ Cache<Serializable, Object> cache =
+
factory.createCache(InjectionTest.class.getResourceAsStream("/conf/standalone/test-custom-interceptor.xml"),
false);
+ //create interceptor parameter
+ InterceptorParameter interceptorParameter = new InterceptorParameter();
+ assertFalse(interceptorParameter.isInjected());
+ //create cache loader parameter
+ CacheLoaderParameter cacheLoaderParameter = new CacheLoaderParameter();
+ assertFalse(cacheLoaderParameter.isInjected());
+
+
+ //register in component registry
+ ((CacheSPI<Serializable,
Object>)cache).getComponentRegistry().registerComponent(interceptorParameter,
+ InterceptorParameter.class);
+ ((CacheSPI<Serializable,
Object>)cache).getComponentRegistry().registerComponent(cacheLoaderParameter,
+ CacheLoaderParameter.class);
+
+ cache.create();
+ cache.start();
+
+ //expect what all parameter woud be injected
+ assertTrue(cacheLoaderParameter.isInjected());
+ assertTrue(interceptorParameter.isInjected());
+
+ }
+}
Property changes on:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/InjectionTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/InterceptorParameter.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/InterceptorParameter.java
(rev 0)
+++
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/InterceptorParameter.java 2009-11-15
14:29:46 UTC (rev 668)
@@ -0,0 +1,31 @@
+package org.exoplatform.services.jcr.impl.storage.jbosscache;
+
+import org.jboss.cache.factories.annotations.NonVolatile;
+
+@NonVolatile
+public class InterceptorParameter
+{
+ private boolean injected = false;
+
+ public InterceptorParameter()
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @return the injected
+ */
+ public boolean isInjected()
+ {
+ return injected;
+ }
+
+ /**
+ * @param injected the injected to set
+ */
+ public void setInjected(boolean injected)
+ {
+ this.injected = injected;
+ }
+}
Property changes on:
jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/InterceptorParameter.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
jcr/branches/1.12.0-JBC/component/core/src/test/resources/conf/standalone/test-custom-interceptor.xml
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/test/resources/conf/standalone/test-custom-interceptor.xml
(rev 0)
+++
jcr/branches/1.12.0-JBC/component/core/src/test/resources/conf/standalone/test-custom-interceptor.xml 2009-11-15
14:29:46 UTC (rev 668)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jbosscache
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="urn:jboss:jbosscache-core:config:3.1">
+
+ <!-- Configure the TransactionManager -->
+ <transaction
+
transactionManagerLookupClass="org.jboss.cache.transaction.GenericTransactionManagerLookup"
/>
+ <loaders passivation="false" shared="false">
+
+ <loader class="org.jboss.cache.loader.JDBCCacheLoader"
async="false" fetchPersistentState="true"
+ ignoreModifications="false" purgeOnStartup="false">
+ <properties>
+ cache.jdbc.table.name=jdbcjcr
+ cache.jdbc.table.create=true
+ cache.jdbc.table.drop=true
+ cache.jdbc.table.primarykey=exojcr_pk
+ cache.jdbc.fqn.column=fqn
+ cache.jdbc.fqn.type=VARCHAR(512)
+ cache.jdbc.node.column=node
+ cache.jdbc.node.type=VARBINARY(65535)
+ cache.jdbc.parent.column=parent
+ cache.jdbc.driver=org.hsqldb.jdbcDriver
+ cache.jdbc.url=jdbc:hsqldb:file:target/temp/data/exojcr
+ cache.jdbc.user=sa
+ cache.jdbc.password=
+ </properties>
+ </loader>
+ <loader
class="org.exoplatform.services.jcr.impl.storage.jbosscache.DummyCacheLoader"
async="false" fetchPersistentState="false"
+ ignoreModifications="false" purgeOnStartup="false">
+ <properties>
+ </properties>
+ </loader>
+ </loaders>
+ <customInterceptors>
+ <interceptor after="org.jboss.cache.interceptors.CacheStoreInterceptor"
+ class="org.exoplatform.services.jcr.impl.storage.jbosscache.DummyInterceptor"
>
+ </interceptor>
+ </customInterceptors>
+ <!-- Enable batching -->
+ <invocationBatching enabled="true"/>
+</jbosscache>
Property changes on:
jcr/branches/1.12.0-JBC/component/core/src/test/resources/conf/standalone/test-custom-interceptor.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain