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(-)
----------------------------------------------------------------------