KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > terracotta > modules > iBatis_2_2_0 > IBatisTerracottaConfigurator


1 /*
2  * All content copyright (c) 2003-2007 Terracotta, Inc., except as may otherwise be noted in a separate copyright
3  * notice. All rights reserved.
4  */

5 package org.terracotta.modules.iBatis_2_2_0;
6
7 import org.osgi.framework.BundleContext;
8 import org.osgi.framework.Constants;
9 import org.terracotta.modules.configuration.TerracottaConfiguratorModule;
10 import org.terracotta.modules.iBatis_2_2_0.object.config.IBatisChangeApplicatorSpec;
11 import org.terracotta.modules.iBatis_2_2_0.object.config.IBatisModuleSpec;
12
13 import com.tc.object.bytecode.ClassAdapterFactory;
14 import com.tc.object.config.ConfigLockLevel;
15 import com.tc.object.config.ModuleSpec;
16 import com.tc.object.config.StandardDSOClientConfigHelper;
17 import com.tc.object.config.TransparencyClassSpec;
18
19 import java.sql.SQLException JavaDoc;
20 import java.util.Dictionary JavaDoc;
21 import java.util.Hashtable JavaDoc;
22
23 public final class IBatisTerracottaConfigurator extends TerracottaConfiguratorModule {
24   protected final void addInstrumentation(final BundleContext context, final StandardDSOClientConfigHelper configHelper) {
25     configHelper.addAutolock("* java.util.Collections$SynchronizedList.*(..)", ConfigLockLevel.WRITE);
26     
27     ClassAdapterFactory factory = new IBatisClassAdapter();
28     
29     TransparencyClassSpec spec = configHelper.getOrCreateSpec("com.ibatis.sqlmap.engine.mapping.result.loader.EnhancedLazyResultLoader$EnhancedLazyResultLoaderImpl");
30     configHelper.addAutolock("* com.ibatis.sqlmap.engine.mapping.result.loader.EnhancedLazyResultLoader$EnhancedLazyResultLoaderImpl.loadObject(..)", ConfigLockLevel.WRITE);
31     
32     spec = configHelper.getOrCreateSpec(SQLException JavaDoc.class.getName());
33     spec.markPreInstrumented();
34     
35     spec = configHelper.getOrCreateSpec("com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate");
36     
37     spec = configHelper.getOrCreateSpec("com.ibatis.sqlmap.engine.impl.SqlMapClientImpl");
38     spec.setCallConstructorOnLoad(true);
39     spec.addTransient("localSqlMapSession");
40     
41     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.execution.SqlExecutor", false, false, false);
42     
43     spec = configHelper.getOrCreateSpec("com.ibatis.common.jdbc.SimpleDataSource");
44     spec.setCallConstructorOnLoad(true);
45     spec.setCustomClassAdapter(factory);
46     spec.addTransient("activeConnections");
47     spec.addTransient("idleConnections");
48     configHelper.addAutolock("* com.ibatis.common.jdbc.SimpleDataSource.*(..)", ConfigLockLevel.WRITE);
49     
50     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransactionConfig", false, false, false);
51     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.transaction.BaseTransactionConfig", false, false, false);
52     
53     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.transaction.TransactionManager", false, false, false);
54     
55     configHelper.addIncludePattern("com.ibatis.common.util.Throttle", false, false, false);
56     configHelper.addAutolock("* com.ibatis.common.util.Throttle.*(..)", ConfigLockLevel.WRITE);
57     configHelper.addIncludePattern("com.ibatis.common.util.ThrottledPool", false, false, false);
58     
59     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.type.TypeHandlerFactory", false, false, false);
60     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.type.UnknownTypeHandler", false, false, false);
61     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.type.BaseTypeHandler", false, false, false);
62     
63     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.exchange.*", false, false, false);
64     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.mapping.statement.*", false, false, false);
65     
66     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.exchange.DomDataExchange", false, false, false);
67     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.exchange.ListDataExchange", false, false, false);
68     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.exchange.ComplexDataExchange", false, false, false);
69     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.exchange.PrimitiveDataExchange", false, false, false);
70     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.exchange.ComplexDataExchange", false, false, false);
71     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.exchange.BaseDataExchange", false, false, false);
72     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.exchange.DataExchangeFactory", false, false, false);
73     
74     spec = configHelper.getOrCreateSpec("com.ibatis.sqlmap.engine.exchange.JavaBeanDataExchange");
75     spec.addTransient("outParamPlan");
76     spec.addTransient("parameterPlan");
77
78     spec = configHelper.getOrCreateSpec("com.ibatis.sqlmap.engine.mapping.result.BasicResultMap");
79     spec.addTransient("remappableResultMappings");
80     
81     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.mapping.parameter.*", false, false, false);
82     
83     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.mapping.sql.stat.StaticSql", false, false, false);
84     
85     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.type.*", false, false, false);
86     
87     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.mapping.result.BasicResultMapping", false, false, false);
88     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.mapping.result.AutoResultMap", false, false, false);
89     
90     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.scope.*", false, false, false);
91     
92     spec = configHelper.getOrCreateSpec("com.ibatis.sqlmap.engine.scope.SessionScope");
93     spec.addTransient("transaction");
94     spec.addTransient("transactionState");
95     spec.addTransient("savedTransactionState");
96     
97     spec = configHelper.getOrCreateSpec("com.ibatis.sqlmap.engine.scope.RequestScope");
98     spec.addTransient("resultSet");
99     
100     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.mapping.sql.dynamic.DynamicSql", false, false, false);
101     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.mapping.sql.SqlText", false, false, false);
102     configHelper.addIncludePattern("com.ibatis.sqlmap.engine.mapping.sql.dynamic.elements.*", false, false, false);
103     //addIncludePattern("com.ibatis.sqlmap.engine.mapping.sql.dynamic.elements.SqlTag", false, false, false);
104
//addIncludePattern("com.ibatis.sqlmap.engine.mapping.sql.dynamic.elements.DynamicTagHandler", false, false, false);
105
//addIncludePattern("com.ibatis.sqlmap.engine.mapping.sql.dynamic.elements.BaseTagHandler", false, false, false);
106
//addIncludePattern("com.ibatis.sqlmap.engine.mapping.sql.dynamic.elements.IterateTagHandler", false, false, false);
107
configHelper.addIncludePattern("com.ibatis.common.util.PaginatedArrayList", false, false, false);
108     
109     /*
110     addIncludePattern("com.ibatis.sqlmap.engine.accessplan.EnhancedPropertyAccessPlan", false, false, false);
111     spec = getOrCreateSpec("com.ibatis.sqlmap.engine.accessplan.BaseAccessPlan");
112     spec.addTransient("clazz");
113     //spec.addTransient("propertyNames");
114     spec.addTransient("info");
115     */

116     
117     // IBatis DAO
118
configHelper.addIncludePattern("com.ibatis.dao.engine.impl.DaoProxy", false, false, false);
119     spec = configHelper.getOrCreateSpec("com.ibatis.dao.engine.impl.DaoImpl");
120     
121     spec = configHelper.getOrCreateSpec("com.ibatis.dao.engine.impl.StandardDaoManager");
122     spec.setCallConstructorOnLoad(true);
123     spec.addTransient("transactionMode");
124     spec.addTransient("contextInTransactionList");
125     
126     spec = configHelper.getOrCreateSpec("com.ibatis.dao.engine.impl.DaoContext");
127     spec.setCallConstructorOnLoad(true);
128     spec.addTransient("transaction");
129     spec.addTransient("state");
130
131     configHelper.addIncludePattern("com.ibatis.dao.client.template.SqlMapDaoTemplate", false, false, false);
132     configHelper.addIncludePattern("com.ibatis.dao.client.template.DaoTemplate", false, false, false);
133     
134     configHelper.addIncludePattern("com.ibatis.dao.engine.transaction.sqlmap.SqlMapDaoTransactionManager", false, false, false);
135     
136     //addIncludePattern("com.ibatis.sqlmap.engine.accessplan.PropertyAccessPlan", false, false, false);
137

138     configHelper.getOrCreateSpec("com.ibatis.sqlmap.engine.impl.SqlMapClientImpl").setCustomClassAdapter(factory);
139   }
140   
141   protected final void registerModuleSpec(final BundleContext context) {
142     final Dictionary JavaDoc serviceProps = new Hashtable JavaDoc();
143     serviceProps.put(Constants.SERVICE_VENDOR, "Terracotta, Inc.");
144     serviceProps.put(Constants.SERVICE_DESCRIPTION, "IBatis Plugin Spec");
145     context.registerService(ModuleSpec.class.getName(), new IBatisModuleSpec(new IBatisChangeApplicatorSpec(getClass().getClassLoader())), serviceProps);
146   }
147
148 }
149
Popular Tags