You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2008/10/10 21:49:04 UTC
svn commit: r703566 - in /ibatis/trunk/java/ibatis-3: ./
ibatis-3-core/src/main/java/org/apache/ibatis/mapping/
ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/builder/
ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/environment/
Author: cbegin
Date: Fri Oct 10 12:49:04 2008
New Revision: 703566
URL: http://svn.apache.org/viewvc?rev=703566&view=rev
Log:
moved environment to core
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Environment.java
- copied, changed from r702695, ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/environment/Environment.java
Removed:
ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/environment/
Modified:
ibatis/trunk/java/ibatis-3/TODO
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java
ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/builder/MapperConfigParser.java
ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/builder/MonarchConfiguration.java
Modified: ibatis/trunk/java/ibatis-3/TODO
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/TODO?rev=703566&r1=703565&r2=703566&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/TODO (original)
+++ ibatis/trunk/java/ibatis-3/TODO Fri Oct 10 12:49:04 2008
@@ -2,11 +2,10 @@
* Improved Error Messages
Monarch XML
- * DTD / Schema
* Named parameter parsing/merging
* Loosely bound cache id to instance
- (perhaps use late-binding lookup proxies for all config elements?)
-mvn
+
Monarch API
* Transaction Manager
* Mapper Interface Binding
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java?rev=703566&r1=703565&r2=703566&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java Fri Oct 10 12:49:04 2008
@@ -15,6 +15,8 @@
public class Configuration {
+ private Environment environment;
+
private boolean lazyLoadingEnabled = true;
private boolean enhancementEnabled = false;
private boolean multipleResultSetsEnabled = true;
@@ -35,6 +37,14 @@
private final Map<String, ResultMap> resultMaps = new HashMap<String, ResultMap>();
private final Map<String, ParameterMap> parameterMaps = new HashMap<String, ParameterMap>();
+ public Environment getEnvironment() {
+ return environment;
+ }
+
+ public void setEnvironment(Environment environment) {
+ this.environment = environment;
+ }
+
public boolean isLazyLoadingEnabled() {
return lazyLoadingEnabled;
}
Copied: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Environment.java (from r702695, ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/environment/Environment.java)
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Environment.java?p2=ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Environment.java&p1=ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/environment/Environment.java&r1=702695&r2=703566&rev=703566&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/environment/Environment.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Environment.java Fri Oct 10 12:49:04 2008
@@ -1,4 +1,4 @@
-package org.apache.ibatis.monarch.environment;
+package org.apache.ibatis.mapping;
import org.apache.ibatis.transaction.TransactionManager;
@@ -13,8 +13,10 @@
public static class Builder {
private Environment environment = new Environment();
- public Builder(String id) {
+ public Builder(String id, TransactionManager transactionManager, DataSource dataSource) {
environment.id = id;
+ environment.transactionManager = transactionManager;
+ environment.dataSource = dataSource;
}
public Builder transactionManager(TransactionManager transactionManager) {
environment.transactionManager = transactionManager;
@@ -24,9 +26,14 @@
environment.dataSource = dataSource;
return this;
}
+ public String id() {
+ return environment.id;
+ }
+
public Environment build() {
return environment;
}
+
}
public String getId() {
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/builder/MapperConfigParser.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/builder/MapperConfigParser.java?rev=703566&r1=703565&r2=703566&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/builder/MapperConfigParser.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/builder/MapperConfigParser.java Fri Oct 10 12:49:04 2008
@@ -6,7 +6,7 @@
import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.reflection.*;
import org.apache.ibatis.io.Resources;
-import org.apache.ibatis.monarch.environment.Environment;
+import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.transaction.TransactionManagerFactory;
import org.apache.ibatis.datasource.DataSourceFactory;
@@ -15,9 +15,11 @@
public class MapperConfigParser extends BaseParser {
+
protected Reader reader;
protected NodeletParser parser;
+ private String environment;
private Environment.Builder environmentBuilder;
public MapperConfigParser(Reader reader, Properties props) {
@@ -72,7 +74,7 @@
public void objectFactoryElement(NodeletContext context) throws Exception {
String type = context.getStringAttribute("type");
Properties properties = context.getChildrenAsProperties();
- ObjectFactory factory = (ObjectFactory)resolveClass(type).newInstance();
+ ObjectFactory factory = (ObjectFactory) resolveClass(type).newInstance();
factory.setProperties(properties);
configuration.setObjectFactory(factory);
}
@@ -89,7 +91,7 @@
}
if (resource != null) {
defaults.putAll(Resources.getResourceAsProperties(resource));
- } else if (url != null){
+ } else if (url != null) {
defaults.putAll(Resources.getUrlAsProperties(url));
}
Properties vars = configuration.getVariables();
@@ -107,64 +109,71 @@
// Check that all settings are known to the configuration class
for (Map.Entry entry : props.entrySet()) {
MetaClass metaConfig = MetaClass.forClass(Configuration.class);
- if (!metaConfig.hasSetter((String)entry.getKey())) {
+ if (!metaConfig.hasSetter((String) entry.getKey())) {
throw new BuilderException("The setting " + entry.getKey() + " is not known. Make sure you spelled it correctly (case sensitive).");
}
}
- configuration.setCacheEnabled(booleanValueOf(props.getProperty("cacheEnabled"),true));
- configuration.setLazyLoadingEnabled(booleanValueOf(props.getProperty("lazyLoadingEnabled"),true));
- configuration.setMultipleResultSetsEnabled(booleanValueOf(props.getProperty("multipleResultSetsEnabled"),true));
- configuration.setUseColumnLabel(booleanValueOf(props.getProperty("useColumnLabel"),true));
- configuration.setEnhancementEnabled(booleanValueOf(props.getProperty("enhancementEnabled"),false));
- configuration.setGeneratedKeysEnabled(booleanValueOf(props.getProperty("generatedKeysEnabled"),false));
- configuration.setDefaultExecutorType(ExecutorType.valueOf(stringValueOf(props.getProperty("defaultExecutorType"),"SIMPLE")));
- configuration.setDefaultStatementTimeout(integerValueOf(props.getProperty("defaultStatementTimeout"),null));
+ configuration.setCacheEnabled(booleanValueOf(props.getProperty("cacheEnabled"), true));
+ configuration.setLazyLoadingEnabled(booleanValueOf(props.getProperty("lazyLoadingEnabled"), true));
+ configuration.setMultipleResultSetsEnabled(booleanValueOf(props.getProperty("multipleResultSetsEnabled"), true));
+ configuration.setUseColumnLabel(booleanValueOf(props.getProperty("useColumnLabel"), true));
+ configuration.setEnhancementEnabled(booleanValueOf(props.getProperty("enhancementEnabled"), false));
+ configuration.setGeneratedKeysEnabled(booleanValueOf(props.getProperty("generatedKeysEnabled"), false));
+ configuration.setDefaultExecutorType(ExecutorType.valueOf(stringValueOf(props.getProperty("defaultExecutorType"), "SIMPLE")));
+ configuration.setDefaultStatementTimeout(integerValueOf(props.getProperty("defaultStatementTimeout"), null));
}
// <environments default="development">
@Nodelet("/configuration/environments")
public void environmentsElement(NodeletContext context) throws Exception {
- String defaultEnv = context.getStringAttribute("default","default");
- configuration.setDefaultEnvironment(defaultEnv);
+ if (environment == null) {
+ environment = context.getStringAttribute("default");
+ }
}
// <environment id="development">
@Nodelet("/configuration/environments/environment")
public void environmentElement(NodeletContext context) throws Exception {
- String id = context.getStringAttribute("id","default");
- environmentBuilder = new Environment.Builder(id);
+ String id = context.getStringAttribute("id");
+ environmentBuilder = new Environment.Builder(id, null, null);
}
// <transactionManager type="JDBC|JTA|EXTERNAL">
// <property name="" value=""/>
@Nodelet("/configuration/environments/environment/transactionManager")
public void transactionManagerElement(NodeletContext context) throws Exception {
- String type = context.getStringAttribute("type");
- Properties props = context.getChildrenAsProperties();
+ if (isSpecifiedEnvironment()) {
+ String type = context.getStringAttribute("type");
+ Properties props = context.getChildrenAsProperties();
- TransactionManagerFactory factory = (TransactionManagerFactory) resolveClass(type).newInstance();
- factory.setProperties(props);
+ TransactionManagerFactory factory = (TransactionManagerFactory) resolveClass(type).newInstance();
+ factory.setProperties(props);
- environmentBuilder.transactionManager(factory.getTransactionManager());
+ environmentBuilder.transactionManager(factory.getTransactionManager());
+ }
}
// <dataSource type="POOLED|UNPOOLED|JNDI">
// <property name="" value=""/>
@Nodelet("/configuration/environments/environment/dataSource")
public void dataSourceElement(NodeletContext context) throws Exception {
- String type = context.getStringAttribute("type");
- Properties props = context.getChildrenAsProperties();
+ if (isSpecifiedEnvironment()) {
+ String type = context.getStringAttribute("type");
+ Properties props = context.getChildrenAsProperties();
- DataSourceFactory factory = (DataSourceFactory) resolveClass(type).newInstance();
- factory.setProperties(props);
+ DataSourceFactory factory = (DataSourceFactory) resolveClass(type).newInstance();
+ factory.setProperties(props);
- environmentBuilder.dataSource(factory.getDataSource());
+ environmentBuilder.dataSource(factory.getDataSource());
+ }
}
// </environment>
@Nodelet("/configuration/environments/environment/end()")
- public void environmentClosingElement(NodeletContext context) throws Exception {
- configuration.addEnvironment(environmentBuilder.build());
+ public void environmentElementEnd(NodeletContext context) throws Exception {
+ if (isSpecifiedEnvironment()) {
+ configuration.setEnvironment(environmentBuilder.build());
+ }
}
// <typeHandler javaType="" jdbcType="" handler=""/>
@@ -197,8 +206,18 @@
} else {
throw new BuilderException("A mapper element may only specify a url or resource, but not both.");
}
- MapperParser mapperParser = new MapperParser(reader,configuration);
+ MapperParser mapperParser = new MapperParser(reader, configuration);
mapperParser.parse();
}
+ private boolean isSpecifiedEnvironment() {
+ if (environment == null) {
+ throw new BuilderException("No environment specified.");
+ } else if (environmentBuilder.id() == null) {
+ throw new BuilderException("Environment requires an id attribute.");
+ } else if (environment.equals(environmentBuilder.id())) {
+ return true;
+ }
+ return false;
+ }
}
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/builder/MonarchConfiguration.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/builder/MonarchConfiguration.java?rev=703566&r1=703565&r2=703566&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/builder/MonarchConfiguration.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-monarch/src/main/java/org/apache/ibatis/monarch/builder/MonarchConfiguration.java Fri Oct 10 12:49:04 2008
@@ -1,28 +1,11 @@
package org.apache.ibatis.monarch.builder;
import org.apache.ibatis.mapping.Configuration;
-import org.apache.ibatis.monarch.environment.Environment;
+import org.apache.ibatis.mapping.Environment;
import java.util.*;
public class MonarchConfiguration extends Configuration {
- private String defaultEnvironment;
- private Map<String,Environment> environmentMap = new HashMap<String,Environment>();
-
- public String getDefaultEnvironment() {
- return defaultEnvironment;
- }
-
- public void setDefaultEnvironment(String defaultEnvironment) {
- this.defaultEnvironment = defaultEnvironment;
- }
-
- public void addEnvironment(Environment environment) {
- if(environmentMap.containsKey(environment.getId())) {
- throw new BuilderException("Duplicate environment ID detected: " + environment.getId() + ". Environment ID must be unique.");
- }
- environmentMap.put(environment.getId(),environment);
- }
}