You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/10/08 08:57:39 UTC

[1/2] cayenne git commit: Replace weak reference to soft reference in tests. Only ObjectStoreGCIT uses weak references.

Repository: cayenne
Updated Branches:
  refs/heads/master 89eb529f4 -> 33cfd6ccc


Replace weak reference to soft reference in tests. Only ObjectStoreGCIT uses weak references.


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

Branch: refs/heads/master
Commit: a3937f055bc7933a702bdda0ac5b90e48ad1840f
Parents: c935314
Author: Arseni Bulatski <an...@gmail.com>
Authored: Thu Sep 27 16:17:33 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Tue Oct 2 09:23:18 2018 +0300

----------------------------------------------------------------------
 .../apache/cayenne/access/ObjectStoreGCIT.java  |  4 +--
 .../cayenne/dba/ConcurrentPkGeneratorIT.java    |  1 -
 .../unit/di/server/ServerRuntimeProvider.java   |  7 +++++
 .../di/server/WeakReferenceStrategyModule.java  | 15 +++++++++++
 .../server/WeakReferenceStrategyServerCase.java | 20 ++++++++++++++
 .../WeakReferenceStrategyServerCaseModule.java  | 18 +++++++++++++
 ...kReferenceStrategyServerRuntimeProvider.java | 28 ++++++++++++++++++++
 7 files changed, 90 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/a3937f05/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreGCIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreGCIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreGCIT.java
index 4a57a6d..5f0e146 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreGCIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/ObjectStoreGCIT.java
@@ -25,14 +25,14 @@ import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.parallel.ParallelTestContainer;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.unit.di.server.CayenneProjects;
-import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.WeakReferenceStrategyServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 
 @UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
-public class ObjectStoreGCIT extends ServerCase {
+public class ObjectStoreGCIT extends WeakReferenceStrategyServerCase {
 
     @Inject
     private DataContext context;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a3937f05/cayenne-server/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java b/cayenne-server/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
index 3510455..b66dc51 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
@@ -54,7 +54,6 @@ public class ConcurrentPkGeneratorIT extends ServerCase {
      */
     @Test
     public void testConcurrentInserts() {
-
     	if(!unitDbAdapter.supportsPKGeneratorConcurrency()) {
     		return;
 		}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a3937f05/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProvider.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProvider.java
index 1531f91..843b910 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProvider.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerRuntimeProvider.java
@@ -20,7 +20,9 @@ package org.apache.cayenne.unit.di.server;
 
 import org.apache.cayenne.ConfigurationException;
 import org.apache.cayenne.access.DataDomain;
+import org.apache.cayenne.configuration.Constants;
 import org.apache.cayenne.configuration.server.DataNodeFactory;
+import org.apache.cayenne.configuration.server.ServerModule;
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.di.Binder;
@@ -86,6 +88,11 @@ public class ServerRuntimeProvider implements Provider<ServerRuntime> {
             binder.bind(DataNodeFactory.class).to(ServerCaseDataNodeFactory.class);
             binder.bind(UnitDbAdapter.class).toInstance(unitDbAdapter);
 
+            ServerModule.contributeProperties(binder)
+                    // Use soft references instead of default weak.
+                    // Should remove problems with random-failing tests (those that are GC-sensitive).
+                    .put(Constants.SERVER_OBJECT_RETAIN_STRATEGY_PROPERTY, "soft");
+
             // map DataSources for all test DataNode names
             binder.bind(ServerCaseDataSourceFactory.class).toInstance(dataSourceFactory);
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a3937f05/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyModule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyModule.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyModule.java
new file mode 100644
index 0000000..94b0dc6
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyModule.java
@@ -0,0 +1,15 @@
+package org.apache.cayenne.unit.di.server;
+
+import org.apache.cayenne.configuration.Constants;
+import org.apache.cayenne.configuration.server.ServerModule;
+import org.apache.cayenne.di.Binder;
+import org.apache.cayenne.di.Module;
+
+public class WeakReferenceStrategyModule implements Module {
+    @Override
+    public void configure(Binder binder) {
+        ServerModule.contributeProperties(binder)
+                //Use in ObjectStoreGCIT
+                .put(Constants.SERVER_OBJECT_RETAIN_STRATEGY_PROPERTY, "weak");
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a3937f05/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerCase.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerCase.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerCase.java
new file mode 100644
index 0000000..0501226
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerCase.java
@@ -0,0 +1,20 @@
+package org.apache.cayenne.unit.di.server;
+
+import org.apache.cayenne.di.DIBootstrap;
+import org.apache.cayenne.di.Injector;
+import org.apache.cayenne.di.spi.DefaultScope;
+
+public class WeakReferenceStrategyServerCase extends ServerCase {
+    private static final Injector injector;
+
+    static {
+        DefaultScope testScope = new DefaultScope();
+        injector = DIBootstrap.createInjector(new WeakReferenceStrategyServerCaseModule(testScope));
+        injector.getInstance(SchemaBuilder.class).rebuildSchema();
+    }
+
+    @Override
+    protected Injector getUnitTestInjector() {
+        return injector;
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a3937f05/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerCaseModule.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerCaseModule.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerCaseModule.java
new file mode 100644
index 0000000..1e58a24
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerCaseModule.java
@@ -0,0 +1,18 @@
+package org.apache.cayenne.unit.di.server;
+
+import org.apache.cayenne.configuration.server.ServerRuntime;
+import org.apache.cayenne.di.Binder;
+import org.apache.cayenne.di.spi.DefaultScope;
+
+public class WeakReferenceStrategyServerCaseModule extends ServerCaseModule {
+
+    public WeakReferenceStrategyServerCaseModule(DefaultScope testScope) {
+        super(testScope);
+    }
+
+    @Override
+    public void configure(Binder binder){
+        super.configure(binder);
+        binder.bind(ServerRuntime.class).toProvider(WeakReferenceStrategyServerRuntimeProvider.class).in(testScope);
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/a3937f05/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerRuntimeProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerRuntimeProvider.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerRuntimeProvider.java
new file mode 100644
index 0000000..c067c49
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/WeakReferenceStrategyServerRuntimeProvider.java
@@ -0,0 +1,28 @@
+package org.apache.cayenne.unit.di.server;
+
+import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.di.Module;
+import org.apache.cayenne.di.Provider;
+import org.apache.cayenne.unit.UnitDbAdapter;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+public class WeakReferenceStrategyServerRuntimeProvider extends ServerRuntimeProvider {
+
+    public WeakReferenceStrategyServerRuntimeProvider(@Inject ServerCaseDataSourceFactory dataSourceFactory,
+                                                      @Inject ServerCaseProperties properties,
+                                                      @Inject Provider<DbAdapter> dbAdapterProvider,
+                                                      @Inject UnitDbAdapter unitDbAdapter) {
+        super(dataSourceFactory, properties, dbAdapterProvider, unitDbAdapter);
+    }
+
+    @Override
+    protected Collection<? extends Module> getExtraModules() {
+        Collection<Module> modules = new ArrayList<>();
+        modules.addAll(super.getExtraModules());
+        modules.add(new WeakReferenceStrategyModule());
+        return modules;
+    }
+}


[2/2] cayenne git commit: Merge PR #329

Posted by nt...@apache.org.
Merge PR #329


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

Branch: refs/heads/master
Commit: 33cfd6ccc42cf7a5eaf1d3dffd1f0345a8191124
Parents: 89eb529 a3937f0
Author: Nikita Timofeev <st...@gmail.com>
Authored: Mon Oct 8 11:56:27 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Mon Oct 8 11:56:27 2018 +0300

----------------------------------------------------------------------
 .../apache/cayenne/access/ObjectStoreGCIT.java  |  4 +--
 .../cayenne/dba/ConcurrentPkGeneratorIT.java    |  1 -
 .../unit/di/server/ServerRuntimeProvider.java   |  7 +++++
 .../di/server/WeakReferenceStrategyModule.java  | 15 +++++++++++
 .../server/WeakReferenceStrategyServerCase.java | 20 ++++++++++++++
 .../WeakReferenceStrategyServerCaseModule.java  | 18 +++++++++++++
 ...kReferenceStrategyServerRuntimeProvider.java | 28 ++++++++++++++++++++
 7 files changed, 90 insertions(+), 3 deletions(-)
----------------------------------------------------------------------