You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2016/12/11 18:00:03 UTC

[09/10] cayenne git commit: CAY-2166 Auto-loading of Cayenne modules

CAY-2166 Auto-loading of Cayenne modules

* back to overrides as collection instead of Class[]


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

Branch: refs/heads/master
Commit: 302ca65c6cd31f00033517e9ddfae127c7bd0578
Parents: 374aab3
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Sun Dec 11 17:05:33 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Sun Dec 11 20:50:15 2016 +0300

----------------------------------------------------------------------
 cayenne-crypto/pom.xml                          |  2 +-
 .../cayenne/crypto/CryptoModuleBuilder.java     |  5 +--
 .../cayenne/crypto/CryptoModuleProvider.java    | 47 ++++++++++++++++++++
 .../apache/cayenne/di/spi/ModuleProvider.java   |  4 +-
 .../apache/cayenne/di/spi/ModuleLoaderTest.java | 21 +++++----
 .../cayenne/java8/Java8ModuleProvider.java      |  7 ++-
 .../apache/cayenne/joda/JodaModuleProvider.java |  7 ++-
 .../server/ServerModuleProvider.java            |  7 ++-
 8 files changed, 80 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/302ca65c/cayenne-crypto/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-crypto/pom.xml b/cayenne-crypto/pom.xml
index c1156ec..ea4e759 100644
--- a/cayenne-crypto/pom.xml
+++ b/cayenne-crypto/pom.xml
@@ -68,7 +68,7 @@
 	</dependencies>
 	<build>
 		<plugins>
-			<!-- This ensures LICESNE and NOTICE inclusion in all jars -->
+			<!-- This ensures LICENSE and NOTICE inclusion in all jars -->
             <plugin>
                 <artifactId>maven-remote-resources-plugin</artifactId>
                 <executions>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/302ca65c/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java
index 63adfe8..62a8af2 100644
--- a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java
@@ -37,10 +37,7 @@ import java.util.Map;
 import java.util.Objects;
 
 /**
- * A builder of a Cayenne DI module that will contain all extension to Cayenne
- * runtime needed to enable encryption of certain data columns. Builder allows
- * to specify custom ciphers, as well as a strategy for discovering which
- * columns are encrypted.
+ * A builder that allows to customize {@link CryptoModule} module.
  *
  * @since 4.0
  */

http://git-wip-us.apache.org/repos/asf/cayenne/blob/302ca65c/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleProvider.java b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleProvider.java
new file mode 100644
index 0000000..c65b4df
--- /dev/null
+++ b/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleProvider.java
@@ -0,0 +1,47 @@
+/*
+ *    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.cayenne.crypto;
+
+import org.apache.cayenne.di.Module;
+import org.apache.cayenne.di.spi.ModuleProvider;
+
+import java.util.Collection;
+import java.util.Collections;
+
+/**
+ * @since 4.0
+ */
+public class CryptoModuleProvider implements ModuleProvider {
+
+    @Override
+    public Module module() {
+        return new CryptoModule();
+    }
+
+    @Override
+    public Class<? extends Module> moduleType() {
+        return CryptoModule.class;
+    }
+
+    @Override
+    public Collection<Class<? extends Module>> overrides() {
+        // we don't override anything, we only decorate ServerModule services...
+        return Collections.emptyList();
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/302ca65c/cayenne-di/src/main/java/org/apache/cayenne/di/spi/ModuleProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-di/src/main/java/org/apache/cayenne/di/spi/ModuleProvider.java b/cayenne-di/src/main/java/org/apache/cayenne/di/spi/ModuleProvider.java
index e96322e..679b593 100644
--- a/cayenne-di/src/main/java/org/apache/cayenne/di/spi/ModuleProvider.java
+++ b/cayenne-di/src/main/java/org/apache/cayenne/di/spi/ModuleProvider.java
@@ -20,6 +20,8 @@ package org.apache.cayenne.di.spi;
 
 import org.apache.cayenne.di.Module;
 
+import java.util.Collection;
+
 /**
  * Provider of modules used by module auto-loading mechanism to identify and load modules.
  *
@@ -37,5 +39,5 @@ public interface ModuleProvider {
      *
      * @return a collection of module types this module overrides.
      */
-    Class<? extends Module>[] overrides();
+    Collection<Class<? extends Module>> overrides();
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/302ca65c/cayenne-di/src/test/java/org/apache/cayenne/di/spi/ModuleLoaderTest.java
----------------------------------------------------------------------
diff --git a/cayenne-di/src/test/java/org/apache/cayenne/di/spi/ModuleLoaderTest.java b/cayenne-di/src/test/java/org/apache/cayenne/di/spi/ModuleLoaderTest.java
index 3456b5b..9443524 100644
--- a/cayenne-di/src/test/java/org/apache/cayenne/di/spi/ModuleLoaderTest.java
+++ b/cayenne-di/src/test/java/org/apache/cayenne/di/spi/ModuleLoaderTest.java
@@ -24,6 +24,8 @@ import org.apache.cayenne.di.Injector;
 import org.apache.cayenne.di.Module;
 import org.junit.Test;
 
+import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 
 import static org.junit.Assert.assertEquals;
@@ -90,9 +92,11 @@ public class ModuleLoaderTest {
             return Module1.class;
         }
 
+
         @Override
-        public Class<? extends Module>[] overrides() {
-            return new Class[]{Module2.class};
+        public Collection<Class<? extends Module>> overrides() {
+            Collection c = Collections.singletonList(Module2.class);
+            return c;
         }
     }
 
@@ -109,8 +113,8 @@ public class ModuleLoaderTest {
         }
 
         @Override
-        public Class<? extends Module>[] overrides() {
-            return new Class[0];
+        public Collection<Class<? extends Module>> overrides() {
+            return Collections.emptyList();
         }
     }
 
@@ -127,8 +131,8 @@ public class ModuleLoaderTest {
         }
 
         @Override
-        public Class<? extends Module>[] overrides() {
-            return new Class[0];
+        public Collection<Class<? extends Module>> overrides() {
+            return Collections.emptyList();
         }
     }
 
@@ -145,8 +149,9 @@ public class ModuleLoaderTest {
         }
 
         @Override
-        public Class<? extends Module>[] overrides() {
-            return new Class[]{Module3.class};
+        public Collection<Class<? extends Module>> overrides() {
+            Collection c = Collections.singletonList(Module3.class);
+            return c;
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/302ca65c/cayenne-java8/src/main/java/org/apache/cayenne/java8/Java8ModuleProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-java8/src/main/java/org/apache/cayenne/java8/Java8ModuleProvider.java b/cayenne-java8/src/main/java/org/apache/cayenne/java8/Java8ModuleProvider.java
index 243dc73..f8fe1b6 100644
--- a/cayenne-java8/src/main/java/org/apache/cayenne/java8/Java8ModuleProvider.java
+++ b/cayenne-java8/src/main/java/org/apache/cayenne/java8/Java8ModuleProvider.java
@@ -21,6 +21,9 @@ package org.apache.cayenne.java8;
 import org.apache.cayenne.di.Module;
 import org.apache.cayenne.di.spi.ModuleProvider;
 
+import java.util.Collection;
+import java.util.Collections;
+
 /**
  * @since 4.0
  */
@@ -37,7 +40,7 @@ public class Java8ModuleProvider implements ModuleProvider {
     }
 
     @Override
-    public Class<? extends Module>[] overrides() {
-        return new Class[0];
+    public Collection<Class<? extends Module>> overrides() {
+        return Collections.emptyList();
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/302ca65c/cayenne-joda/src/main/java/org/apache/cayenne/joda/JodaModuleProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-joda/src/main/java/org/apache/cayenne/joda/JodaModuleProvider.java b/cayenne-joda/src/main/java/org/apache/cayenne/joda/JodaModuleProvider.java
index 9c9e204..d390937 100644
--- a/cayenne-joda/src/main/java/org/apache/cayenne/joda/JodaModuleProvider.java
+++ b/cayenne-joda/src/main/java/org/apache/cayenne/joda/JodaModuleProvider.java
@@ -21,6 +21,9 @@ package org.apache.cayenne.joda;
 import org.apache.cayenne.di.Module;
 import org.apache.cayenne.di.spi.ModuleProvider;
 
+import java.util.Collection;
+import java.util.Collections;
+
 /**
  * @since 4.0
  */
@@ -37,7 +40,7 @@ public class JodaModuleProvider implements ModuleProvider {
     }
 
     @Override
-    public Class<? extends Module>[] overrides() {
-        return new Class[0];
+    public Collection<Class<? extends Module>> overrides() {
+        return Collections.emptyList();
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/302ca65c/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModuleProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModuleProvider.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModuleProvider.java
index 55d681d..e8e126d 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModuleProvider.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModuleProvider.java
@@ -21,6 +21,9 @@ package org.apache.cayenne.configuration.server;
 import org.apache.cayenne.di.Module;
 import org.apache.cayenne.di.spi.ModuleProvider;
 
+import java.util.Collection;
+import java.util.Collections;
+
 /**
  * ServerModule auto-loading facility.
  *
@@ -39,7 +42,7 @@ public class ServerModuleProvider implements ModuleProvider {
     }
 
     @Override
-    public Class<? extends Module>[] overrides() {
-        return new Class[0];
+    public Collection<Class<? extends Module>> overrides() {
+        return Collections.emptyList();
     }
 }