-
1. Re: Loading interceptor classes at run-time DR3
ben.wang Jan 7, 2005 11:36 AM (in response to cmiranda)"rkadayam" wrote:
1) I'm using jboss-aop with some other application servers such as weblogic and websphere. Would this usage construe as a jboss license violation?? The basic stuff works with weblogic 8.1
Absolutely not as JBoss-AOP is distributed under LGPL. You can embed it anywhere. LGPL is only triggered when you modify JBoss-AOP code."rkadayam" wrote:
2) I'd like to jar load the interceptor classes at run-time and dynamically attach and detach interceptors to advice bindings.
I noticed that the AdviceBinding.addInterceptor(Class) takes only a "class argument". How can I ask the aspect manager to use a particular class-loader to resolve that class?
I tried the following from a session bean.
addNewInterceptor(classname) -> jar loads the class file using some jar-directory conventions and is able to render the interceptor class
attachInterceptor(pointcut,interceptor) -> does the following
AdviceBinding binding = new AdviceBinding(pointcut,null);
binding.addInterceptor(jarLoader.loadClass(interceptor));
aspectManager.addBinding(binding);
At the point of adding the binding I get the ClassNotFoundException initiated at the GenericInterceptorFactory. Oh! So do I provide a custom "JarLoadingInterceptorFactory" then? I'm going to try that out.
any comments/suggestions would be greatly appreciated
thanks
rajiv
Ok, I've changed the code in CVS head to not create a GenericInterceptorFactory using the classname, but rather it can accept the java.lang.Class itself so this should solve the problem if you get from head.
You can get latest from CVS and build, or, in the meantime, the problem is that the GenericInterceptorFactory doesn't try and resolve the class until advice bind time. What you may be able to do is the followingClass interceptorClass = ....; Thread.currentThread().setContextClassLoader(interceptorClass.getClassLoader); AdviceBinding.addInterceptor(interceptorClass); aspectManager.addBinding(binding);
Let me know if this helps.
Bill -
2. Re: Problem with Hibernate and jbossCache
ben.wang Jan 7, 2005 12:33 PM (in response to cmiranda)Hmmn! I have no idea why. If secondary cache is not set, TreeCache should not be invoked.
Have you tried the Hibernate JBoss forum there?
-Ben -
3. Re: Problem with Hibernate and jbossCache
cmiranda Jan 7, 2005 12:49 PM (in response to cmiranda)Ben,
See my HBM files , java code and log file :
HBM:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<id name="id" unsaved-value="null" column="ID" type="java.lang.String">
<many-to-one name="impuesto"
class="gov.afip.pampa.component.supa.model.ImpuestoEntity"
column="CODIGO_IMPUESTO"/>
<many-to-one name="concepto"
class="gov.afip.pampa.component.supa.model.ConceptoEntity"
column="CODIGO_CONCEPTO"/>
</hibernate-mapping>
-----------------------
CODE FILE:
SessionFactory sessions =
new Configuration().configure("/META-INF/ctacte-session-factory.cfg.xml")
.buildSessionFactory();
Session s = sessions.openSession();
ICEntity ic = new ICEntity();
ic.setId("ID_EX");
s.save(ic);
s.flush(); // here propagate to L2
s.close();
-----------------------------------------------
Configuration Session
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<!-- a SessionFactory instance listed as /jndi/name -->
<session-factory>
<!-- este es datasource para correr con jboss -->
java:/PampaDS
true
true
net.sf.hibernate.dialect.OracleDialect
net.sf.hibernate.transaction.JTATransactionFactory
net.sf.hibernate.transaction.JBossTransactionManagerLookup
true
true
net.sf.hibernate.cache.TreeCacheProvider
ctacte
<!-- este es factory para correr unit test -->
<!--
develop
develop
jdbc:oracle:thin:@10.20.108.187:1521:OCRP
oracle.jdbc.driver.OracleDriver
true
true
net.sf.hibernate.dialect.OracleDialect
net.sf.hibernate.cache.OSCacheProvider
false
-->
</session-factory>
</hibernate-configuration>
-----------------------------
Log File
4:48:07,765 DEBUG [SessionImpl] executing flush
14:48:07,765 DEBUG [TreeCache] _put(null, "//net/sf/hibernate/cache/UpdateTimestampsCache/SUPA.IC_ENTITY", item, 11051201477)
14:48:07,765 DEBUG [Node] createChild: fqn=//net/sf/hibernate/cache/UpdateTimestampsCache
14:48:07,765 DEBUG [LRUPolicy] nodeAdded(): fqn- //net/sf/hibernate/cache/UpdateTimestampsCache
14:48:07,765 DEBUG [RegionManager] getRegion(): not user-specified region found for this fqn- //net/sf/hibernate/cache/UpdateTimestampsCache will use the global default region
14:48:07,765 DEBUG [Node] createChild: fqn=//net/sf/hibernate/cache/UpdateTimestampsCache/SUPA.IC_ENTITY
14:48:07,765 DEBUG [LRUPolicy] nodeAdded(): fqn- //net/sf/hibernate/cache/UpdateTimestampsCache/SUPA.IC_ENTITY
14:48:07,765 DEBUG [RegionManager] getRegion(): not user-specified region found for this fqn- //net/sf/hibernate/cache/UpdateTimestampsCache/SUPA.IC_ENTITY will use the global default region
14:48:07,765 DEBUG [LRUPolicy] nodeModified(): redirecting to node visited. fqn- //net/sf/hibernate/cache/UpdateTimestampsCache/SUPA.IC_ENTITY
14:48:07,765 DEBUG [LRUPolicy] nodeVisited(): fqn- //net/sf/hibernate/cache/UpdateTimestampsCache/SUPA.IC_ENTITY
14:48:07,765 DEBUG [RegionManager] getRegion(): not user-specified region found for this fqn- //net/sf/hibernate/cache/UpdateTimestampsCache/SUPA.IC_ENTITY will use the global default region
14:48:07,765 DEBUG [EntityPersister] Inserting entity: [gov.afip.pampa.component.supa.model.ICEntity#ID_EX]
14:48:07,765 DEBUG [BatcherImpl] about to open: 0 open PreparedStatements, 0 open ResultSets
14:48:07,765 DEBUG [SQL] insert into SUPA.IC_ENTITY (CODIGO_IMPUESTO, CODIGO_CONCEPTO, PERIODO_DESDE, PERIODO_HASTA, FECHA_DESDE, FECHA_HASTA, ID) values (?, ?, ?, ?, ?, ?, ?)
Any Help ?
/Carlos.- -
4. Re: Problem with Hibernate and jbossCache
ben.wang Jan 7, 2005 1:12 PM (in response to cmiranda)Your xml file is garbled so it's difficult to tell. But make sure you have comment out the TreecacheProvider for the second level cache in Hibernate.
-Ben -
5. Re: Problem with Hibernate and jbossCache
cmiranda Jan 7, 2005 1:23 PM (in response to cmiranda)Ben ,
Sorry , I resend a configuration file :<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"> <hibernate-configuration> <!-- a SessionFactory instance listed as /jndi/name --> <session-factory> <!-- este es datasource para correr con jboss --> <property name="connection.datasource">java:/PampaDS</property> <property name="show_sql">true</property> <property name="use_outer_join">true</property> <property name="dialect"> net.sf.hibernate.dialect.OracleDialect</property> <property name="transaction.factory_class"> net.sf.hibernate.transaction.JTATransactionFactory</property> <property name="hibernate.transaction.manager_lookup_class"> net.sf.hibernate.transaction.JBossTransactionManagerLookup</property> <property name="hibernate.cglib.use_reflection_optimize">true</property> <property name="hibernate.cache.use_query_cache">true</property> <property name="hibernate.cache.provider_class"> net.sf.hibernate.cache.TreeCacheProvider</property> <property name="hibernate.cache.region_prefix">ctacte</property> <!-- mapping files --> <mapping resource="gov/afip/pampa/component/supa/model/ICEntity.hbm.xml"/> <mapping resource="gov/afip/pampa/component/supa/model/ImpuestoEntity.hbm.xml"/> <mapping resource="gov/afip/pampa/component/supa/model/SubconceptoEntity.hbm.xml"/> <mapping resource="gov/afip/pampa/component/supa/model/ConceptoEntity.hbm.xml"/> </session-factory> </hibernate-configuration>
I want enable caching for any entities , but I not want for ICSentity .
Thanks.-
/Carlos