Commit b7462d8977faf1d03fd7830595f8cfdb8569c0c9

Authored by Cleverson Sacramento
1 parent 83c51577
Exists in master

Serialização do BasicDataSource via proxy

impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/internal/producer/DataSourceProducer.java
... ... @@ -15,12 +15,12 @@ import javax.naming.Context;
15 15 import javax.naming.InitialContext;
16 16 import javax.sql.DataSource;
17 17  
18   -import org.apache.commons.dbcp.BasicDataSource;
19 18 import org.slf4j.Logger;
20 19  
21 20 import br.gov.frameworkdemoiselle.DemoiselleException;
22 21 import br.gov.frameworkdemoiselle.annotation.Name;
23 22 import br.gov.frameworkdemoiselle.internal.configuration.JDBCConfig;
  23 +import br.gov.frameworkdemoiselle.transaction.BasicDataSourceProxy;
24 24 import br.gov.frameworkdemoiselle.util.Beans;
25 25 import br.gov.frameworkdemoiselle.util.ResourceBundle;
26 26  
... ... @@ -117,18 +117,7 @@ public class DataSourceProducer implements Serializable {
117 117 result = (DataSource) context.lookup(jndiMap.get(dataSourceName));
118 118  
119 119 } else {
120   - String driver = config.getDriverClass().get(dataSourceName);
121   - String url = config.getUrl().get(dataSourceName);
122   - String username = config.getUsername().get(dataSourceName);
123   - String password = config.getPassword().get(dataSourceName);
124   -
125   - BasicDataSource dataSource = new BasicDataSource();
126   - dataSource.setDriverClassName(driver);
127   - dataSource.setUrl(url);
128   - dataSource.setUsername(username);
129   - dataSource.setPassword(password);
130   -
131   - result = dataSource;
  120 + result = new BasicDataSourceProxy(dataSourceName, config);
132 121 }
133 122  
134 123 } catch (Exception cause) {
... ...
impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/transaction/BasicDataSourceProxy.java 0 → 100644
... ... @@ -0,0 +1,352 @@
  1 +package br.gov.frameworkdemoiselle.transaction;
  2 +
  3 +import java.io.PrintWriter;
  4 +import java.io.Serializable;
  5 +import java.sql.Connection;
  6 +import java.sql.SQLException;
  7 +import java.util.Collection;
  8 +
  9 +import org.apache.commons.dbcp.BasicDataSource;
  10 +
  11 +import br.gov.frameworkdemoiselle.internal.configuration.JDBCConfig;
  12 +
  13 +public class BasicDataSourceProxy extends BasicDataSource implements Serializable {
  14 +
  15 + private static final long serialVersionUID = 1L;
  16 +
  17 + private String dataSourceName;
  18 +
  19 + private JDBCConfig config;
  20 +
  21 + private transient BasicDataSource delegate;
  22 +
  23 + public BasicDataSourceProxy(String dataSourceName, JDBCConfig config) {
  24 + this.dataSourceName = dataSourceName;
  25 + this.config = config;
  26 + }
  27 +
  28 + private BasicDataSource getDelegate() {
  29 + if (this.delegate == null) {
  30 + String driver = config.getDriverClass().get(dataSourceName);
  31 + String url = config.getUrl().get(dataSourceName);
  32 + String username = config.getUsername().get(dataSourceName);
  33 + String password = config.getPassword().get(dataSourceName);
  34 +
  35 + BasicDataSource dataSource = new BasicDataSource();
  36 + dataSource.setDriverClassName(driver);
  37 + dataSource.setUrl(url);
  38 + dataSource.setUsername(username);
  39 + dataSource.setPassword(password);
  40 +
  41 + delegate = dataSource;
  42 + }
  43 +
  44 + return this.delegate;
  45 + }
  46 +
  47 + public boolean getDefaultAutoCommit() {
  48 + return getDelegate().getDefaultAutoCommit();
  49 + }
  50 +
  51 + public void setDefaultAutoCommit(boolean defaultAutoCommit) {
  52 + getDelegate().setDefaultAutoCommit(defaultAutoCommit);
  53 + }
  54 +
  55 + public boolean getDefaultReadOnly() {
  56 + return getDelegate().getDefaultReadOnly();
  57 + }
  58 +
  59 + public void setDefaultReadOnly(boolean defaultReadOnly) {
  60 + getDelegate().setDefaultReadOnly(defaultReadOnly);
  61 + }
  62 +
  63 + public int getDefaultTransactionIsolation() {
  64 + return getDelegate().getDefaultTransactionIsolation();
  65 + }
  66 +
  67 + public void setDefaultTransactionIsolation(int defaultTransactionIsolation) {
  68 + getDelegate().setDefaultTransactionIsolation(defaultTransactionIsolation);
  69 + }
  70 +
  71 + public String getDefaultCatalog() {
  72 + return getDelegate().getDefaultCatalog();
  73 + }
  74 +
  75 + public void setDefaultCatalog(String defaultCatalog) {
  76 + getDelegate().setDefaultCatalog(defaultCatalog);
  77 + }
  78 +
  79 + public String getDriverClassName() {
  80 + return getDelegate().getDriverClassName();
  81 + }
  82 +
  83 + public void setDriverClassName(String driverClassName) {
  84 + getDelegate().setDriverClassName(driverClassName);
  85 + }
  86 +
  87 + public ClassLoader getDriverClassLoader() {
  88 + return getDelegate().getDriverClassLoader();
  89 + }
  90 +
  91 + public void setDriverClassLoader(ClassLoader driverClassLoader) {
  92 + getDelegate().setDriverClassLoader(driverClassLoader);
  93 + }
  94 +
  95 + public int getMaxActive() {
  96 + return getDelegate().getMaxActive();
  97 + }
  98 +
  99 + public void setMaxActive(int maxActive) {
  100 + getDelegate().setMaxActive(maxActive);
  101 + }
  102 +
  103 + public int getMaxIdle() {
  104 + return getDelegate().getMaxIdle();
  105 + }
  106 +
  107 + public void setMaxIdle(int maxIdle) {
  108 + getDelegate().setMaxIdle(maxIdle);
  109 + }
  110 +
  111 + public int getMinIdle() {
  112 + return getDelegate().getMinIdle();
  113 + }
  114 +
  115 + public void setMinIdle(int minIdle) {
  116 + getDelegate().setMinIdle(minIdle);
  117 + }
  118 +
  119 + public int getInitialSize() {
  120 + return getDelegate().getInitialSize();
  121 + }
  122 +
  123 + public void setInitialSize(int initialSize) {
  124 + getDelegate().setInitialSize(initialSize);
  125 + }
  126 +
  127 + public long getMaxWait() {
  128 + return getDelegate().getMaxWait();
  129 + }
  130 +
  131 + public void setMaxWait(long maxWait) {
  132 + getDelegate().setMaxWait(maxWait);
  133 + }
  134 +
  135 + public boolean isPoolPreparedStatements() {
  136 + return getDelegate().isPoolPreparedStatements();
  137 + }
  138 +
  139 + public void setPoolPreparedStatements(boolean poolingStatements) {
  140 + getDelegate().setPoolPreparedStatements(poolingStatements);
  141 + }
  142 +
  143 + public int getMaxOpenPreparedStatements() {
  144 + return getDelegate().getMaxOpenPreparedStatements();
  145 + }
  146 +
  147 + public void setMaxOpenPreparedStatements(int maxOpenStatements) {
  148 + getDelegate().setMaxOpenPreparedStatements(maxOpenStatements);
  149 + }
  150 +
  151 + public boolean getTestOnBorrow() {
  152 + return getDelegate().getTestOnBorrow();
  153 + }
  154 +
  155 + public void setTestOnBorrow(boolean testOnBorrow) {
  156 + getDelegate().setTestOnBorrow(testOnBorrow);
  157 + }
  158 +
  159 + public boolean getTestOnReturn() {
  160 + return getDelegate().getTestOnReturn();
  161 + }
  162 +
  163 + public void setTestOnReturn(boolean testOnReturn) {
  164 + getDelegate().setTestOnReturn(testOnReturn);
  165 + }
  166 +
  167 + public long getTimeBetweenEvictionRunsMillis() {
  168 + return getDelegate().getTimeBetweenEvictionRunsMillis();
  169 + }
  170 +
  171 + public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) {
  172 + getDelegate().setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
  173 + }
  174 +
  175 + public int getNumTestsPerEvictionRun() {
  176 + return getDelegate().getNumTestsPerEvictionRun();
  177 + }
  178 +
  179 + public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) {
  180 + getDelegate().setNumTestsPerEvictionRun(numTestsPerEvictionRun);
  181 + }
  182 +
  183 + public long getMinEvictableIdleTimeMillis() {
  184 + return getDelegate().getMinEvictableIdleTimeMillis();
  185 + }
  186 +
  187 + public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) {
  188 + getDelegate().setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
  189 + }
  190 +
  191 + public boolean getTestWhileIdle() {
  192 + return getDelegate().getTestWhileIdle();
  193 + }
  194 +
  195 + public void setTestWhileIdle(boolean testWhileIdle) {
  196 + getDelegate().setTestWhileIdle(testWhileIdle);
  197 + }
  198 +
  199 + public int getNumActive() {
  200 + return getDelegate().getNumActive();
  201 + }
  202 +
  203 + public int getNumIdle() {
  204 + return getDelegate().getNumIdle();
  205 + }
  206 +
  207 + public String getPassword() {
  208 + return getDelegate().getPassword();
  209 + }
  210 +
  211 + public void setPassword(String password) {
  212 + getDelegate().setPassword(password);
  213 + }
  214 +
  215 + public String getUrl() {
  216 + return getDelegate().getUrl();
  217 + }
  218 +
  219 + public void setUrl(String url) {
  220 + getDelegate().setUrl(url);
  221 + }
  222 +
  223 + public String getUsername() {
  224 + return getDelegate().getUsername();
  225 + }
  226 +
  227 + public void setUsername(String username) {
  228 + getDelegate().setUsername(username);
  229 + }
  230 +
  231 + public String getValidationQuery() {
  232 + return getDelegate().getValidationQuery();
  233 + }
  234 +
  235 + public void setValidationQuery(String validationQuery) {
  236 + getDelegate().setValidationQuery(validationQuery);
  237 + }
  238 +
  239 + public int getValidationQueryTimeout() {
  240 + return getDelegate().getValidationQueryTimeout();
  241 + }
  242 +
  243 + public void setValidationQueryTimeout(int timeout) {
  244 + getDelegate().setValidationQueryTimeout(timeout);
  245 + }
  246 +
  247 + @SuppressWarnings("rawtypes")
  248 + public Collection getConnectionInitSqls() {
  249 + return getDelegate().getConnectionInitSqls();
  250 + }
  251 +
  252 + @SuppressWarnings("rawtypes")
  253 + public void setConnectionInitSqls(Collection connectionInitSqls) {
  254 + getDelegate().setConnectionInitSqls(connectionInitSqls);
  255 + }
  256 +
  257 + public void setAccessToUnderlyingConnectionAllowed(boolean allow) {
  258 + getDelegate().setAccessToUnderlyingConnectionAllowed(allow);
  259 + }
  260 +
  261 + public Connection getConnection(String user, String pass) throws SQLException {
  262 + return getDelegate().getConnection(user, pass);
  263 + }
  264 +
  265 + public int getLoginTimeout() throws SQLException {
  266 + return getDelegate().getLoginTimeout();
  267 + }
  268 +
  269 + public PrintWriter getLogWriter() throws SQLException {
  270 + return getDelegate().getLogWriter();
  271 + }
  272 +
  273 + public void setLoginTimeout(int loginTimeout) throws SQLException {
  274 + getDelegate().setLoginTimeout(loginTimeout);
  275 + }
  276 +
  277 + public void setLogWriter(PrintWriter logWriter) throws SQLException {
  278 + getDelegate().setLogWriter(logWriter);
  279 + }
  280 +
  281 + public boolean getRemoveAbandoned() {
  282 + return getDelegate().getRemoveAbandoned();
  283 + }
  284 +
  285 + public void setRemoveAbandoned(boolean removeAbandoned) {
  286 + getDelegate().setRemoveAbandoned(removeAbandoned);
  287 + }
  288 +
  289 + public int getRemoveAbandonedTimeout() {
  290 + return getDelegate().getRemoveAbandonedTimeout();
  291 + }
  292 +
  293 + public void setRemoveAbandonedTimeout(int removeAbandonedTimeout) {
  294 + getDelegate().setRemoveAbandonedTimeout(removeAbandonedTimeout);
  295 + }
  296 +
  297 + public boolean getLogAbandoned() {
  298 + return getDelegate().getLogAbandoned();
  299 + }
  300 +
  301 + public void setLogAbandoned(boolean logAbandoned) {
  302 + getDelegate().setLogAbandoned(logAbandoned);
  303 + }
  304 +
  305 + public void addConnectionProperty(String name, String value) {
  306 + getDelegate().addConnectionProperty(name, value);
  307 + }
  308 +
  309 + public void removeConnectionProperty(String name) {
  310 + getDelegate().removeConnectionProperty(name);
  311 + }
  312 +
  313 + public void setConnectionProperties(String connectionProperties) {
  314 + getDelegate().setConnectionProperties(connectionProperties);
  315 + }
  316 +
  317 + public void close() throws SQLException {
  318 + getDelegate().close();
  319 + }
  320 +
  321 + public boolean equals(Object arg0) {
  322 + return getDelegate().equals(arg0);
  323 + }
  324 +
  325 + public Connection getConnection() throws SQLException {
  326 + return getDelegate().getConnection();
  327 + }
  328 +
  329 + public int hashCode() {
  330 + return getDelegate().hashCode();
  331 + }
  332 +
  333 + public boolean isAccessToUnderlyingConnectionAllowed() {
  334 + return getDelegate().isAccessToUnderlyingConnectionAllowed();
  335 + }
  336 +
  337 + public boolean isClosed() {
  338 + return getDelegate().isClosed();
  339 + }
  340 +
  341 + public boolean isWrapperFor(Class<?> iface) throws SQLException {
  342 + return getDelegate().isWrapperFor(iface);
  343 + }
  344 +
  345 + public String toString() {
  346 + return getDelegate().toString();
  347 + }
  348 +
  349 + public <T> T unwrap(Class<T> iface) throws SQLException {
  350 + return getDelegate().unwrap(iface);
  351 + }
  352 +}
... ...