/* * COMSAT * Copyright (C) 2014, Parallel Universe Software Co. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by * the Eclipse Foundation * * or (per the licensee's choosing) * * under the terms of the GNU Lesser General Public License version 3.0 * as published by the Free Software Foundation. */ package co.paralleluniverse.fibers.dropwizard; import com.codahale.metrics.MetricRegistry; import com.google.common.base.Optional; import io.dropwizard.db.DataSourceFactory; import io.dropwizard.db.ManagedDataSource; import io.dropwizard.util.Duration; import java.util.Map; public class FiberDataSourceFactory extends DataSourceFactory { private final DataSourceFactory dsf; public FiberDataSourceFactory(DataSourceFactory dsf) { this.dsf = dsf; } @Override public ManagedDataSource build(MetricRegistry metricRegistry, String name) { final ManagedDataSource ds = dsf.build(metricRegistry, name); return dsf.getUrl().startsWith("jdbc:fiber:") ? ds : FiberManagedDataSource.wrap(ds, 10); } // Delegations @Override public boolean isAutoCommentsEnabled() { return dsf.isAutoCommentsEnabled(); } @Override public void setAutoCommentsEnabled(boolean autoCommentsEnabled) { dsf.setAutoCommentsEnabled(autoCommentsEnabled); } @Override public String getDriverClass() { return dsf.getDriverClass(); } @Override public void setDriverClass(String driverClass) { dsf.setDriverClass(driverClass); } @Override public String getUser() { return dsf.getUser(); } @Override public void setUser(String user) { dsf.setUser(user); } @Override public String getPassword() { return dsf.getPassword(); } @Override public void setPassword(String password) { dsf.setPassword(password); } @Override public String getUrl() { return dsf.getUrl(); } @Override public void setUrl(String url) { dsf.setUrl(url); } @Override public Map<String, String> getProperties() { return dsf.getProperties(); } @Override public void setProperties(Map<String, String> properties) { dsf.setProperties(properties); } @Override public Duration getMaxWaitForConnection() { return dsf.getMaxWaitForConnection(); } @Override public void setMaxWaitForConnection(Duration maxWaitForConnection) { dsf.setMaxWaitForConnection(maxWaitForConnection); } @Override public String getValidationQuery() { return dsf.getValidationQuery(); } @Override public void setValidationQuery(String validationQuery) { dsf.setValidationQuery(validationQuery); } @Override public int getMinSize() { return dsf.getMinSize(); } @Override public void setMinSize(int minSize) { dsf.setMinSize(minSize); } @Override public int getMaxSize() { return dsf.getMaxSize(); } @Override public void setMaxSize(int maxSize) { dsf.setMaxSize(maxSize); } @Override public boolean getCheckConnectionWhileIdle() { return dsf.getCheckConnectionWhileIdle(); } @Override public void setCheckConnectionWhileIdle(boolean checkConnectionWhileIdle) { dsf.setCheckConnectionWhileIdle(checkConnectionWhileIdle); } @Override public boolean isDefaultReadOnly() { return dsf.isDefaultReadOnly(); } @Override public void setDefaultReadOnly(boolean defaultReadOnly) { dsf.setDefaultReadOnly(defaultReadOnly); } @Override public boolean isMinSizeLessThanMaxSize() { return dsf.isMinSizeLessThanMaxSize(); } @Override public boolean isInitialSizeLessThanMaxSize() { return dsf.isInitialSizeLessThanMaxSize(); } @Override public boolean isInitialSizeGreaterThanMinSize() { return dsf.isInitialSizeGreaterThanMinSize(); } @Override public int getAbandonWhenPercentageFull() { return dsf.getAbandonWhenPercentageFull(); } @Override public void setAbandonWhenPercentageFull(int percentage) { dsf.setAbandonWhenPercentageFull(percentage); } @Override public boolean isAlternateUsernamesAllowed() { return dsf.isAlternateUsernamesAllowed(); } @Override public void setAlternateUsernamesAllowed(boolean allow) { dsf.setAlternateUsernamesAllowed(allow); } @Override public boolean getCommitOnReturn() { return dsf.getCommitOnReturn(); } @Override public void setCommitOnReturn(boolean commitOnReturn) { dsf.setCommitOnReturn(commitOnReturn); } @Override public Boolean getAutoCommitByDefault() { return dsf.getAutoCommitByDefault(); } @Override public void setAutoCommitByDefault(Boolean autoCommit) { dsf.setAutoCommitByDefault(autoCommit); } @Override public String getDefaultCatalog() { return dsf.getDefaultCatalog(); } @Override public void setDefaultCatalog(String defaultCatalog) { dsf.setDefaultCatalog(defaultCatalog); } @Override public Boolean getReadOnlyByDefault() { return dsf.getReadOnlyByDefault(); } @Override public void setReadOnlyByDefault(Boolean readOnlyByDefault) { dsf.setReadOnlyByDefault(readOnlyByDefault); } @Override public TransactionIsolation getDefaultTransactionIsolation() { return dsf.getDefaultTransactionIsolation(); } @Override public void setDefaultTransactionIsolation(TransactionIsolation isolation) { dsf.setDefaultTransactionIsolation(isolation); } @Override public boolean getUseFairQueue() { return dsf.getUseFairQueue(); } @Override public void setUseFairQueue(boolean fair) { dsf.setUseFairQueue(fair); } @Override public int getInitialSize() { return dsf.getInitialSize(); } @Override public void setInitialSize(int initialSize) { dsf.setInitialSize(initialSize); } @Override public String getInitializationQuery() { return dsf.getInitializationQuery(); } @Override public void setInitializationQuery(String query) { dsf.setInitializationQuery(query); } @Override public boolean getLogAbandonedConnections() { return dsf.getLogAbandonedConnections(); } @Override public void setLogAbandonedConnections(boolean log) { dsf.setLogAbandonedConnections(log); } @Override public boolean getLogValidationErrors() { return dsf.getLogValidationErrors(); } @Override public void setLogValidationErrors(boolean log) { dsf.setLogValidationErrors(log); } @Override public Optional<Duration> getMaxConnectionAge() { return dsf.getMaxConnectionAge(); } @Override public void setMaxConnectionAge(Duration age) { dsf.setMaxConnectionAge(age); } @Override public Duration getMinIdleTime() { return dsf.getMinIdleTime(); } @Override public void setMinIdleTime(Duration time) { dsf.setMinIdleTime(time); } @Override public boolean getCheckConnectionOnBorrow() { return dsf.getCheckConnectionOnBorrow(); } @Override public void setCheckConnectionOnBorrow(boolean checkConnectionOnBorrow) { dsf.setCheckConnectionOnBorrow(checkConnectionOnBorrow); } @Override public boolean getCheckConnectionOnConnect() { return dsf.getCheckConnectionOnConnect(); } @Override public void setCheckConnectionOnConnect(boolean checkConnectionOnConnect) { dsf.setCheckConnectionOnConnect(checkConnectionOnConnect); } @Override public boolean getCheckConnectionOnReturn() { return dsf.getCheckConnectionOnReturn(); } @Override public void setCheckConnectionOnReturn(boolean checkConnectionOnReturn) { dsf.setCheckConnectionOnReturn(checkConnectionOnReturn); } @Override public Duration getEvictionInterval() { return dsf.getEvictionInterval(); } @Override public void setEvictionInterval(Duration interval) { dsf.setEvictionInterval(interval); } @Override public Duration getValidationInterval() { return dsf.getValidationInterval(); } @Override public void setValidationInterval(Duration validationInterval) { dsf.setValidationInterval(validationInterval); } }