You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2016/06/07 16:28:01 UTC

tomee git commit: TOMEE-1834 FailoverDataSource

Repository: tomee
Updated Branches:
  refs/heads/master 0175ecd2e -> 3fd96f194


TOMEE-1834 FailoverDataSource


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/3fd96f19
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/3fd96f19
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/3fd96f19

Branch: refs/heads/master
Commit: 3fd96f1947d9f78e4ef6032e0081e0d3320128d5
Parents: 0175ecd
Author: Romain manni-Bucau <rm...@gmail.com>
Authored: Tue Jun 7 18:27:35 2016 +0200
Committer: Romain manni-Bucau <rm...@gmail.com>
Committed: Tue Jun 7 18:27:35 2016 +0200

----------------------------------------------------------------------
 .../resource/jdbc/FailoverDataSource.java       | 69 ++++++++++++++++++++
 .../openejb/resource/jdbc/RoutedDataSource.java |  6 +-
 .../resource/jdbc/router/FailOverRouter.java    |  2 +-
 3 files changed, 75 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/3fd96f19/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/FailoverDataSource.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/FailoverDataSource.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/FailoverDataSource.java
new file mode 100644
index 0000000..d217b2e
--- /dev/null
+++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/FailoverDataSource.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.openejb.resource.jdbc;
+
+import org.apache.openejb.resource.jdbc.router.FailOverRouter;
+
+import javax.annotation.PostConstruct;
+
+// an all in one RoutedDataSource + FailOverRouter
+public class FailoverDataSource extends RoutedDataSource {
+    public FailoverDataSource() {
+        super(new FailOverRouter());
+    }
+
+    private FailOverRouter failoverRouter() {
+        return FailOverRouter.class.cast(delegate);
+    }
+
+    @PostConstruct
+    private void init() {
+        failoverRouter().init();
+    }
+
+    public void setDatasourceNames(final String datasourceNames) {
+        failoverRouter().setDatasourceNames(datasourceNames);
+    }
+
+    public void setDelimiter(final String delimiter) {
+        failoverRouter().setDelimiter(delimiter);
+    }
+
+    public void setStrategy(final String strategy) {
+        failoverRouter().setStrategy(strategy);
+    }
+
+    public void setStrategyInstance(final FailOverRouter.Strategy strategy) {
+        failoverRouter().setStrategyInstance(strategy);
+    }
+
+    public void setExceptionSelectorInstance(final FailOverRouter.ExceptionSelector selector) {
+        failoverRouter().setExceptionSelectorInstance(selector);
+    }
+
+    public void setExceptionSelector(final String selector) {
+        failoverRouter().setExceptionSelector(selector);
+    }
+
+    public void setErrorHandlerInstance(final FailOverRouter.ErrorHandler errorHandler) {
+        failoverRouter().setErrorHandlerInstance(errorHandler);
+    }
+
+    public void setErrorHandler(final String errorHandler) {
+        failoverRouter().setErrorHandler(errorHandler);
+    }
+}

http://git-wip-us.apache.org/repos/asf/tomee/blob/3fd96f19/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/RoutedDataSource.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/RoutedDataSource.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/RoutedDataSource.java
index 9e94cd2..0324661 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/RoutedDataSource.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/RoutedDataSource.java
@@ -33,12 +33,16 @@ import java.util.logging.Logger;
 public class RoutedDataSource implements DataSource {
     private static final String OPENEJB_RESOURCE_PREFIX = "openejb:Resource/";
 
-    private Router delegate;
+    protected Router delegate;
 
     public RoutedDataSource() {
         // no-op
     }
 
+    public RoutedDataSource(final Router router) {
+        delegate = router;
+    }
+
     public RoutedDataSource(final String router) {
         setRouter(router);
     }

http://git-wip-us.apache.org/repos/asf/tomee/blob/3fd96f19/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/router/FailOverRouter.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/router/FailOverRouter.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/router/FailOverRouter.java
index 2556d42..44361f2 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/router/FailOverRouter.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/router/FailOverRouter.java
@@ -64,7 +64,7 @@ public class FailOverRouter extends AbstractRouter {
     }
 
     @PostConstruct
-    private void init() {
+    public void init() {
         initDataSources();
         initStrategy();
         initFacade();