Repository: cayenne
Updated Branches:
  refs/heads/master 1ace4e728 -> bd0bbcdc2


CAY-2165 Explicit "contribution" API for easier expansion of DI collections and 
maps

* DbSyncModule contribution API
* ROPServerModule contribution API


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

Branch: refs/heads/master
Commit: bd0bbcdc2e42c0e1a97344f0026a158f609db0ab
Parents: 1ace4e7
Author: Andrus Adamchik <and...@objectstyle.com>
Authored: Sun Dec 11 14:49:30 2016 +0300
Committer: Andrus Adamchik <and...@objectstyle.com>
Committed: Sun Dec 11 15:53:31 2016 +0300

----------------------------------------------------------------------
 .../org/apache/cayenne/dbsync/DbSyncModule.java     |  7 ++++++-
 .../configuration/rop/server/ROPServerModule.java   | 16 +++++++++++-----
 2 files changed, 17 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/bd0bbcdc/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/DbSyncModule.java
----------------------------------------------------------------------
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/DbSyncModule.java 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/DbSyncModule.java
index f73044d..c44793d 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/DbSyncModule.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/DbSyncModule.java
@@ -48,6 +48,7 @@ import 
org.apache.cayenne.dbsync.merge.factory.PostgresMergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.factory.SQLServerMergerTokenFactory;
 import org.apache.cayenne.dbsync.merge.factory.SybaseMergerTokenFactory;
 import org.apache.cayenne.di.Binder;
+import org.apache.cayenne.di.MapBuilder;
 import org.apache.cayenne.di.Module;
 
 /**
@@ -61,12 +62,16 @@ public class DbSyncModule implements Module {
      */
     public static final String MERGER_FACTORIES_MAP = 
"cayenne.dbsync.mergerfactories";
 
+    public static MapBuilder<MergerTokenFactory> 
contributeMergerTokenFactories(Binder binder) {
+        return binder.bindMap(MERGER_FACTORIES_MAP);
+    }
+
     @Override
     public void configure(Binder binder) {
 
         // default and per adapter merger factories...
         
binder.bind(MergerTokenFactory.class).to(DefaultMergerTokenFactory.class);
-        binder.bindMap(MERGER_FACTORIES_MAP)
+        contributeMergerTokenFactories(binder)
                 .put(DB2Adapter.class.getName(), DB2MergerTokenFactory.class)
                 .put(DerbyAdapter.class.getName(), 
DerbyMergerTokenFactory.class)
                 .put(FirebirdAdapter.class.getName(), 
FirebirdMergerTokenFactory.class)

http://git-wip-us.apache.org/repos/asf/cayenne/blob/bd0bbcdc/cayenne-server/src/main/java/org/apache/cayenne/configuration/rop/server/ROPServerModule.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/rop/server/ROPServerModule.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/rop/server/ROPServerModule.java
index ceefd62..e5bcc09 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/configuration/rop/server/ROPServerModule.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/configuration/rop/server/ROPServerModule.java
@@ -18,16 +18,16 @@
  ****************************************************************/
 package org.apache.cayenne.configuration.rop.server;
 
-import java.util.Map;
-
 import org.apache.cayenne.configuration.Constants;
 import org.apache.cayenne.di.Binder;
 import org.apache.cayenne.di.MapBuilder;
 import org.apache.cayenne.di.Module;
 import org.apache.cayenne.remote.RemoteService;
+import org.apache.cayenne.rop.ROPSerializationService;
 import org.apache.cayenne.rop.ServerHessianSerializationServiceProvider;
 import org.apache.cayenne.rop.ServerHttpRemoteService;
-import org.apache.cayenne.rop.ROPSerializationService;
+
+import java.util.Map;
 
 /**
  * A DI module that defines services for the server-side of an ROP application 
based on
@@ -39,14 +39,20 @@ public class ROPServerModule implements Module {
 
     protected Map<String, String> eventBridgeProperties;
 
+    /**
+     * @since 4.0
+     */
+    public static MapBuilder<String> contributeROPBridgeProperties(Binder 
binder) {
+        return 
binder.bindMap(Constants.SERVER_ROP_EVENT_BRIDGE_PROPERTIES_MAP);
+    }
+
     public ROPServerModule(Map<String, String> eventBridgeProperties) {
         this.eventBridgeProperties = eventBridgeProperties;
     }
 
     public void configure(Binder binder) {
 
-        MapBuilder<String> mapBuilder = binder
-                .bindMap(Constants.SERVER_ROP_EVENT_BRIDGE_PROPERTIES_MAP);
+        MapBuilder<String> mapBuilder = contributeROPBridgeProperties(binder);
         mapBuilder.putAll(eventBridgeProperties);
 
         binder.bind(RemoteService.class).to(ServerHttpRemoteService.class);

Reply via email to