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 2009/03/21 21:24:10 UTC
svn commit: r757006 - in /ibatis/trunk/java/ibatis-3: ./
ibatis-3-core/src/main/java/org/apache/ibatis/datasource/jndi/
ibatis-3-core/src/test/java/org/apache/ibatis/datasource/
ibatis-3-core/src/test/java/org/apache/ibatis/datasource/jndi/
Author: cbegin
Date: Sat Mar 21 20:24:10 2009
New Revision: 757006
URL: http://svn.apache.org/viewvc?rev=757006&view=rev
Log:
Added JNDI Factory test
Excluded ognl from emma coverage
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/datasource/
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/datasource/jndi/
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/datasource/jndi/JndiDataSourceFactoryTest.java
Modified:
ibatis/trunk/java/ibatis-3/common.xml
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/datasource/jndi/JndiDataSourceFactory.java
ibatis/trunk/java/ibatis-3/version.properties
Modified: ibatis/trunk/java/ibatis-3/common.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/common.xml?rev=757006&r1=757005&r2=757006&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/common.xml (original)
+++ ibatis/trunk/java/ibatis-3/common.xml Sat Mar 21 20:24:10 2009
@@ -106,7 +106,9 @@
<instr instrpathref="classes-to-instrument"
destdir="${classes.instrumented}"
metadatafile="./coverage.ec"
- merge="true"/>
+ merge="true">
+ <filter excludes="org.apache.ibatis.ognl.*"/>
+ </instr>
</emma>
</target>
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/datasource/jndi/JndiDataSourceFactory.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/datasource/jndi/JndiDataSourceFactory.java?rev=757006&r1=757005&r2=757006&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/datasource/jndi/JndiDataSourceFactory.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/datasource/jndi/JndiDataSourceFactory.java Sat Mar 21 20:24:10 2009
@@ -14,28 +14,28 @@
public class JndiDataSourceFactory implements DataSourceFactory {
+ public static final String INITIAL_CONTEXT = "initial_context";
+ public static final String DATA_SOURCE = "data_source";
+ public static final String ENV_PREFIX = "env.";
+
private DataSource dataSource;
- private static final String INITIAL_CONTEXT = "initialContext";
- private static final String DATA_SOURCE = "dataSource";
- private static final String CONTEXT_PREFIX = "context.";
public void setProperties(Properties properties) {
try {
InitialContext initCtx = null;
- Hashtable context = getContextProperties(properties);
-
- if (context == null) {
+ Hashtable env = getEnvProperties(properties);
+ if (env == null) {
initCtx = new InitialContext();
} else {
- initCtx = new InitialContext(context);
+ initCtx = new InitialContext(env);
}
if (properties.containsKey(INITIAL_CONTEXT)
&& properties.containsKey(DATA_SOURCE)) {
- Context ctx = (Context) initCtx.lookup((String) properties.get(INITIAL_CONTEXT));
- dataSource = (DataSource) ctx.lookup((String) properties.get(DATA_SOURCE));
+ Context ctx = (Context) initCtx.lookup(properties.getProperty(INITIAL_CONTEXT));
+ dataSource = (DataSource) ctx.lookup(properties.getProperty(DATA_SOURCE));
} else if (properties.containsKey(DATA_SOURCE)) {
- dataSource = (DataSource) initCtx.lookup((String) properties.get(DATA_SOURCE));
+ dataSource = (DataSource) initCtx.lookup(properties.getProperty(DATA_SOURCE));
}
} catch (NamingException e) {
@@ -47,8 +47,8 @@
return dataSource;
}
- private static Hashtable getContextProperties(Map allProps) {
- final String PREFIX = CONTEXT_PREFIX;
+ private static Hashtable getEnvProperties(Map allProps) {
+ final String PREFIX = ENV_PREFIX;
Hashtable contextProperties = null;
Iterator keys = allProps.keySet().iterator();
while (keys.hasNext()) {
Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/datasource/jndi/JndiDataSourceFactoryTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/datasource/jndi/JndiDataSourceFactoryTest.java?rev=757006&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/datasource/jndi/JndiDataSourceFactoryTest.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/datasource/jndi/JndiDataSourceFactoryTest.java Sat Mar 21 20:24:10 2009
@@ -0,0 +1,85 @@
+package org.apache.ibatis.datasource.jndi;
+
+import org.apache.ibatis.BaseDataTest;
+import org.apache.ibatis.datasource.DataSourceException;
+import org.apache.ibatis.datasource.unpooled.UnpooledDataSource;
+import static org.junit.Assert.assertEquals;
+import org.junit.Before;
+import org.junit.Test;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.naming.spi.InitialContextFactory;
+import javax.sql.DataSource;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Properties;
+
+public class JndiDataSourceFactoryTest extends BaseDataTest {
+
+ private static final String TEST_INITIAL_CONTEXT_FACTORY = MockContextFactory.class.getName();
+ private static final String TEST_INITIAL_CONTEXT = "/mypath/path/";
+ private static final String TEST_DATA_SOURCE = "myDataSource";
+ private UnpooledDataSource expectedDataSource;
+
+ @Before
+ public void setup() throws Exception {
+ expectedDataSource = createUnpooledDataSource(BLOG_PROPERTIES);
+ }
+
+ @Test
+ public void shouldRetrieveDataSourceFromJNDI() throws Exception {
+ createJndiDataSource();
+ JndiDataSourceFactory factory = new JndiDataSourceFactory();
+ factory.setProperties(new Properties() {
+ {
+ setProperty(JndiDataSourceFactory.ENV_PREFIX + Context.INITIAL_CONTEXT_FACTORY, TEST_INITIAL_CONTEXT_FACTORY);
+ setProperty(JndiDataSourceFactory.INITIAL_CONTEXT, TEST_INITIAL_CONTEXT);
+ setProperty(JndiDataSourceFactory.DATA_SOURCE, TEST_DATA_SOURCE);
+ }
+ });
+ DataSource actualDataSource = factory.getDataSource();
+ assertEquals(expectedDataSource, actualDataSource);
+ }
+
+ private void createJndiDataSource() throws Exception {
+ try {
+ Hashtable env = new Hashtable();
+ env.put(Context.INITIAL_CONTEXT_FACTORY, TEST_INITIAL_CONTEXT_FACTORY);
+
+ MockContext ctx = new MockContext(false);
+ ctx.bind(TEST_DATA_SOURCE, expectedDataSource);
+
+ InitialContext initCtx = new InitialContext(env);
+ initCtx.bind(TEST_INITIAL_CONTEXT, ctx);
+ } catch (NamingException e) {
+ throw new DataSourceException("There was an error configuring JndiDataSourceTransactionPool. Cause: " + e, e);
+ }
+ }
+
+ public static class MockContextFactory implements InitialContextFactory {
+ public Context getInitialContext(Hashtable<?, ?> environment) throws NamingException {
+ return new MockContext(false);
+ }
+ }
+
+ public static class MockContext extends InitialContext {
+ private static Map bindings = new HashMap();
+
+ public MockContext(boolean lazy) throws NamingException {
+ super(lazy);
+ }
+
+ public Object lookup(String name) throws NamingException {
+ return bindings.get(name);
+ }
+
+ public void bind(String name, Object obj) throws NamingException {
+ bindings.put(name, obj);
+ }
+ }
+
+
+}
Modified: ibatis/trunk/java/ibatis-3/version.properties
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/version.properties?rev=757006&r1=757005&r2=757006&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/version.properties (original)
+++ ibatis/trunk/java/ibatis-3/version.properties Sat Mar 21 20:24:10 2009
@@ -1,5 +1,5 @@
#Build version info
-#Sat Mar 21 01:24:14 MDT 2009
+#Sat Mar 21 12:35:55 MDT 2009
version=3.0.0
-buildDate=2009/03/21 01\:24
-buildNum=138
+buildDate=2009/03/21 12\:35
+buildNum=142