/* * Copyright 2013 the original author or authors. * * 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. */ package ratpack.h2; import com.google.inject.AbstractModule; import com.google.inject.Provides; import org.h2.jdbcx.JdbcConnectionPool; import javax.sql.DataSource; public class H2Module extends AbstractModule { public String username = "user"; public String password = "pass"; public String url = "jdbc:h2:mem:dev"; public H2Module() {} public H2Module(String username, String password, String url) { this.username = username; this.password = password; this.url = url; } @Override protected void configure() { } @Provides DataSource dataSource() { return createDataSource(); } // separate from above to allow decoration of the datasource by extending the module // Guice does not allow overriding @Provides methods protected DataSource createDataSource() { return JdbcConnectionPool.create(url, username, password); } }