Java tutorial
/* * * Springstrap * * @author Jan Philipp Knller <info@pksoftware.de> * * Homepage: http://ui5strap.com/springstrap * * Copyright (c) 2013-2014 Jan Philipp Knller <info@pksoftware.de> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * Released under Apache2 license: http://www.apache.org/licenses/LICENSE-2.0.txt * */ package de.pksoftware.springstrap.core.config; import javax.naming.NamingException; import javax.sql.DataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.datasource.lookup.JndiDataSourceLookup; import org.springframework.jndi.JndiObjectFactoryBean; @Configuration public abstract class JndiRdbmsConfigBase extends RdbmsConfigBase { @Value("${rdbms.datasource.jndi.uri:}") protected String jndiDataSourceUri; /** * Returns the JNDI Data Source URI. * @return */ protected String getJndiDataSourceUri() { if (null != jndiDataSourceUri && !jndiDataSourceUri.isEmpty()) { return jndiDataSourceUri; } throw new RuntimeException( "Either set a property 'rdbms.datasource.jndi.uri' inside your server.properties file, or overwrite getJndiDataSourceUri() in your RdbmsConfig."); } /** * Creates the DataSource. * @return * @throws NamingException * @throws IllegalArgumentException */ protected DataSource dataSource() { final JndiDataSourceLookup dsLookup = new JndiDataSourceLookup(); dsLookup.setResourceRef(true); DataSource dataSource = dsLookup.getDataSource(getJndiDataSourceUri()); /* JndiObjectFactoryBean bean = new JndiObjectFactoryBean(); bean.setJndiName(getJndiDataSourceUri()); bean.setProxyInterface(DataSource.class); bean.setLookupOnStartup(false); try{ bean.afterPropertiesSet(); } catch(Exception ex){ } DataSource dataSource = (DataSource)bean.getObject(); */ return dataSource; } }