Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:jee="http://www.springframework.org/schema/jee"
- xmlns:p="http://www.springframework.org/schema/p"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/jee
- http://www.springframework.org/schema/jee/spring-jee-3.0.xsd">
- <jee:jndi-lookup id="dataSource"
- jndi-name="java:comp/env/dataSource"
- expected-type="javax.sql.DataSource" />
- </beans>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:p="http://www.springframework.org/schema/p"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
- <bean id="dataSource"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource"
- p:driverClassName="org.hsqldb.jdbcDriver"
- p:url="jdbc:hsqldb:hsql://localhost:9001"
- p:username="sa"
- p:password="" />
- </beans>
- @ContextConfiguration({
- "classpath*:META-INF/spring/datasource-testcontext.xml",
- "classpath*:META-INF/spring/session-factory-context.xml"
- })
- public class MyTest {
- }
- SimpleNamingContextBuilder builder = new SimpleNamingContextBuilder();
- builder.bind("java:comp/env/jdbc/mydatasource", dataSource);
- builder.activate();
- import java.sql.Connection;
- import java.sql.SQLException;
- import org.springframework.jdbc.datasource.AbstractDataSource;
- /**
- * Mock implementation of DataSource suitable for use in testing.
- *
- *
- */
- public class MockDataSource extends AbstractDataSource {
- private Connection connection;
- /**
- * Sets the connection returned by javax.sql.DataSource#getConnection()
- * and javax.sql.DataSource#getConnection(java.lang.String, java.lang.String)
- *
- * @param connection
- */
- public void setConnection(Connection connection) {
- this.connection = connection;
- }
- /*
- * (non-Javadoc)
- * @see javax.sql.DataSource#getConnection()
- */
- public Connection getConnection()
- throws SQLException {
- return connection;
- }
- /*
- * (non-Javadoc)
- * @see javax.sql.DataSource#getConnection(java.lang.String, java.lang.String)
- */
- public Connection getConnection(String username, String password)
- throws SQLException {
- return connection;
- }
- }
- <!-- Database configuration -->
- <import resource="beans.datasource.jndi.xml" />
- <import resource="beans.xml" />
- <import resource="beans.datasource.test.xml" />
- @RunWith(SpringJUnit4ClassRunner.class)
- @ContextConfiguration(locations = { "classpath:/beans.test.xml" })
- public class ASRTests
- {
- ...
- }
- <jee:jndi-lookup expected-type="javax.sql.DataSource" id="mysqlDataSource" jndi-name="jdbc/mysql"/>
- <bean id="mysqlDataSource" ...>
- ...
- </bean>
- <bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
- <property name="URL" value="jdbc:oracle:thin:@localhost:1521:XE"/>
- <property name="user" value="UNITTEST"/>
- <property name="password" value="UNITTEST"/>
- </bean>
- <bean id="dataSourceFromJndi" class="org.springframework.jndi.JndiObjectFactoryBean">
- <!-- Any junk value will suffice as that is always gonna throw NamingException -->
- <property name="jndiName" value="jdbc/Ds"/>
- <property name="defaultObject" ref="dataSource"/>
- </bean>
- <!-- START OF SERVICES -->
- <bean class="com.sample.Service" >
- <property name="dataSource" ref="dataSourceFromJndi" />
- </bean>
- @RunWith(SpringJUnit4ClassRunner.class)
- @ContextConfiguration(classes = {DatabaseConfigStub.class}, loader= AnnotationConfigContextLoader.class)
- public class DatabaseConfigTest {
- @Autowired
- private DataSource datasource;
- @Autowired
- private JdbcTemplate jdbcTemplate;
- @Before
- public void setUp() throws Exception {
- }
- @After
- public void tearDown() throws Exception {
- }
- @Test
- public void testDataSource() {
- assertNotNull(datasource);
- assertNotNull(jdbcTemplate);
- }
- }
- public class DatabaseConfigStub {
- private static final Logger log = Logger.getLogger(DatabaseConfigStub.class);
- private static final String DS_NAME = "jdbc/DS_NAME";
- @Bean
- DataSource dataSource() {
- JndiObjectFactoryBean jndiObjectBean = EasyMock.createMock(JndiObjectFactoryBean.class);
- jndiObjectBean.setJndiName(DS_NAME);
- jndiObjectBean.setResourceRef(true);
- jndiObjectBean.setProxyInterfaces(DataSource.class);
- EasyMock.expect( (DataSource)jndiObjectBean.getObject()).andReturn(new DataSource() {
- public <T> T unwrap(Class<T> iface) throws SQLException {
- // TODO Auto-generated method stub
- return null;
- }
- public boolean isWrapperFor(Class<?> iface) throws SQLException {
- // TODO Auto-generated method stub
- return false;
- }
- public void setLoginTimeout(int seconds) throws SQLException {
- // TODO Auto-generated method stub
- }
- public void setLogWriter(PrintWriter out) throws SQLException {
- // TODO Auto-generated method stub
- }
- public int getLoginTimeout() throws SQLException {
- // TODO Auto-generated method stub
- return 0;
- }
- public PrintWriter getLogWriter() throws SQLException {
- // TODO Auto-generated method stub
- return null;
- }
- public Connection getConnection(String username, String password)
- throws SQLException {
- // TODO Auto-generated method stub
- return null;
- }
- public Connection getConnection() throws SQLException {
- // TODO Auto-generated method stub
- return null;
- }
- }
- );
- EasyMock.replay(jndiObjectBean);
- return (DataSource) jndiObjectBean.getObject();
- }
- @Bean
- JdbcTemplate jdbcTemplate(){
- return new JdbcTemplate( dataSource());
- }
- <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
- <property name="jndiName" value="java:comp/env/jdbc/DataSource"/>
- </bean>
- <bean id="dao" class="my.Dao">
- <property name="dataSource" ref="dataSource" />
- </bean>
- type=javax.sql.DataSource
- driverClassName=org.gjt.mm.mysql.Driver
- url=jdbc:mysql://localhost/testdb
- username=user_name
- password=password
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement