Skip to content

Commit

Permalink
Fixed distributed test case
Browse files Browse the repository at this point in the history
  • Loading branch information
lvca committed Dec 8, 2015
1 parent 1db9893 commit 6020c21
Showing 1 changed file with 85 additions and 114 deletions.
Expand Up @@ -26,8 +26,8 @@
import com.orientechnologies.orient.core.exception.OSchemaException;
import com.orientechnologies.orient.core.sql.OCommandSQL;
import com.orientechnologies.orient.server.OServer;
import com.orientechnologies.orient.server.OServerMain;
import com.tinkerpop.blueprints.Vertex;
import com.tinkerpop.blueprints.impls.orient.OrientBaseGraph;
import com.tinkerpop.blueprints.impls.orient.OrientEdge;
import com.tinkerpop.blueprints.impls.orient.OrientGraph;
import com.tinkerpop.blueprints.impls.orient.OrientGraphFactory;
Expand Down Expand Up @@ -74,7 +74,7 @@ protected static OrientGraphFactory getGraphFactory() throws Exception {

return new OrientGraphFactory((String) conf.get("storage.url"), (String) conf.get("storage.user"),
(String) conf.get("storage.password")).setupPool((Integer) conf.get("storage.pool-min"),
(Integer) conf.get("storage.pool-max"));
(Integer) conf.get("storage.pool-max"));
}

@BeforeClass
Expand All @@ -85,70 +85,45 @@ public static void setup() throws Exception {
file.mkdirs();

server = new OServer(false);
server
.startup("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"
+ "<orient-server>\n"
+ " <handlers>\n"
+ " <!-- GRAPH PLUGIN -->\n"
+ " <handler class=\"com.orientechnologies.orient.graph.handler.OGraphServerHandler\">\n"
+ " <parameters>\n"
+ " <parameter name=\"enabled\" value=\"true\"/>\n"
+ " <parameter name=\"graph.pool.max\" value=\"50\"/>\n"
+ " </parameters>\n"
+ " </handler>\n"
+ " \n"
+ "<handler class=\"com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin\">\n"
+ " <parameters>\n"
+ " <parameter name=\"nodeName\" value=\"unittest\" />\n"
+ " <parameter name=\"enabled\" value=\"true\"/>\n"
+ " <parameter name=\"configuration.db.default\"\n"
+ " value=\"src/test/resources/default-distributed-db-config.json\"/>\n"
+ " <parameter name=\"configuration.hazelcast\" value=\"config/hazelcast.xml\"/>\n"
+ "\n"
+ " <!-- PARTITIONING STRATEGIES -->\n"
+ " <parameter name=\"sharding.strategy.round-robin\"\n"
+ " value=\"com.orientechnologies.orient.server.hazelcast.sharding.strategy.ORoundRobinPartitioninStrategy\"/>\n"
+ " </parameters>\n"
+ " </handler>"
+ " </handlers>\n"
+ " <network>\n"
+ " <protocols>\n"
+ " <protocol name=\"binary\"\n"
+ " implementation=\"com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary\"/>\n"
+ " </protocols>\n"
+ " <listeners>\n"
+ " <listener protocol=\"binary\" ip-address=\"0.0.0.0\" port-range=\"2424-2430\"/>\n"
+ " </listeners>\n"
+ " <cluster>\n"
+ " </cluster>\n"
+ " </network>\n"
+ " <storages>\n"
+ " </storages>\n"
+ " <users>\n"
+ " <user name=\"root\" password=\"root\" resources=\"*\"/>\n"
+ " </users>\n"
+ " <properties>\n"
+ "\n"
+ " <!-- Uses the Hazelcast's distributed cache as 2nd level cache -->\n"
+ " <!-- <entry name=\"cache.level2.impl\" value=\"com.orientechnologies.orient.server.hazelcast.OHazelcastCache\" /> -->\n"
+ "\n"
+ " <!-- DATABASE POOL: size min/max -->\n"
+ " <entry name=\"db.pool.min\" value=\"1\"/>\n"
+ " <entry name=\"db.pool.max\" value=\"20\"/>\n"
+ "\n"
+ " <!-- LEVEL1 AND 2 CACHE: enable/disable and set the size as number of entries -->\n"
+ " <entry name=\"cache.level1.enabled\" value=\"false\"/>\n"
+ " <entry name=\"cache.level1.size\" value=\"1000\"/>\n"
+ " <entry name=\"cache.level2.enabled\" value=\"false\"/>\n"
+ " <entry name=\"cache.level2.size\" value=\"1000\"/>\n"
+ "\n"
+ "<entry name=\"server.database.path\" value=\"target/databases\" />"
+ " <!-- PROFILER: configures the profiler as <seconds-for-snapshot>,<archive-snapshot-size>,<summary-size> -->\n"
+ " <entry name=\"profiler.enabled\" value=\"true\"/>\n"
+ " <!-- <entry name=\"profiler.config\" value=\"30,10,10\" /> -->\n" + "\n"
+ " <!-- LOG: enable/Disable logging. Levels are: finer, fine, finest, info, warning -->\n"
+ " <entry name=\"log.console.level\" value=\"finest\"/>\n"
+ " <entry name=\"log.file.level\" value=\"finest\"/>\n" + " </properties>\n" + " <isAfterFirstTime>true</isAfterFirstTime></orient-server>");
server.startup("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + "<orient-server>\n" + " <handlers>\n"
+ " <!-- GRAPH PLUGIN -->\n"
+ " <handler class=\"com.orientechnologies.orient.graph.handler.OGraphServerHandler\">\n"
+ " <parameters>\n" + " <parameter name=\"enabled\" value=\"true\"/>\n"
+ " <parameter name=\"graph.pool.max\" value=\"50\"/>\n" + " </parameters>\n"
+ " </handler>\n" + " \n"
+ "<handler class=\"com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin\">\n" + " <parameters>\n"
+ " <parameter name=\"nodeName\" value=\"unittest\" />\n"
+ " <parameter name=\"enabled\" value=\"true\"/>\n"
+ " <parameter name=\"configuration.db.default\"\n"
+ " value=\"src/test/resources/default-distributed-db-config.json\"/>\n"
+ " <parameter name=\"configuration.hazelcast\" value=\"config/hazelcast.xml\"/>\n" + "\n"
+ " <!-- PARTITIONING STRATEGIES -->\n"
+ " <parameter name=\"sharding.strategy.round-robin\"\n"
+ " value=\"com.orientechnologies.orient.server.hazelcast.sharding.strategy.ORoundRobinPartitioninStrategy\"/>\n"
+ " </parameters>\n" + " </handler>" + " </handlers>\n" + " <network>\n" + " <protocols>\n"
+ " <protocol name=\"binary\"\n"
+ " implementation=\"com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary\"/>\n"
+ " </protocols>\n" + " <listeners>\n"
+ " <listener protocol=\"binary\" ip-address=\"0.0.0.0\" port-range=\"2424-2430\"/>\n" + " </listeners>\n"
+ " <cluster>\n" + " </cluster>\n" + " </network>\n" + " <storages>\n" + " </storages>\n"
+ " <users>\n" + " <user name=\"root\" password=\"root\" resources=\"*\"/>\n" + " </users>\n"
+ " <properties>\n" + "\n" + " <!-- Uses the Hazelcast's distributed cache as 2nd level cache -->\n"
+ " <!-- <entry name=\"cache.level2.impl\" value=\"com.orientechnologies.orient.server.hazelcast.OHazelcastCache\" /> -->\n"
+ "\n" + " <!-- DATABASE POOL: size min/max -->\n" + " <entry name=\"db.pool.min\" value=\"1\"/>\n"
+ " <entry name=\"db.pool.max\" value=\"20\"/>\n" + "\n"
+ " <!-- LEVEL1 AND 2 CACHE: enable/disable and set the size as number of entries -->\n"
+ " <entry name=\"cache.level1.enabled\" value=\"false\"/>\n"
+ " <entry name=\"cache.level1.size\" value=\"1000\"/>\n"
+ " <entry name=\"cache.level2.enabled\" value=\"false\"/>\n"
+ " <entry name=\"cache.level2.size\" value=\"1000\"/>\n" + "\n"
+ "<entry name=\"server.database.path\" value=\"target/databases\" />"
+ " <!-- PROFILER: configures the profiler as <seconds-for-snapshot>,<archive-snapshot-size>,<summary-size> -->\n"
+ " <entry name=\"profiler.enabled\" value=\"true\"/>\n"
+ " <!-- <entry name=\"profiler.config\" value=\"30,10,10\" /> -->\n" + "\n"
+ " <!-- LOG: enable/Disable logging. Levels are: finer, fine, finest, info, warning -->\n"
+ " <entry name=\"log.console.level\" value=\"finest\"/>\n"
+ " <entry name=\"log.file.level\" value=\"finest\"/>\n" + " </properties>\n"
+ " <isAfterFirstTime>true</isAfterFirstTime></orient-server>");

server.activate();
}
Expand All @@ -169,31 +144,18 @@ private static void verifyDatabaseExists(Map<String, Object> conf) {
admin.createDatabase("graph", "plocal");
}

OrientGraph t = new OrientGraph(url, (String) conf.get("storage.user"), (String) conf.get("storage.password"));
try {
OrientGraph t = new OrientGraph(url, (String) conf.get("storage.user"), (String) conf.get("storage.password"));
t.command(new OCommandSQL("alter database custom useLightweightEdges=false")).execute();
t.commit();
t.shutdown();
} catch (Throwable ignored) {
// blank
}

try {
OrientGraph t = new OrientGraph(url, (String) conf.get("storage.user"), (String) conf.get("storage.password"));
t.command(new OCommandSQL("ALTER CLASS V CLUSTERSELECTION balanced")).execute();
t.commit();
t.shutdown();
} catch (Throwable ignored) {
// blank
}

try {
OrientGraph t = new OrientGraph(url, (String) conf.get("storage.user"), (String) conf.get("storage.password"));
t.command(new OCommandSQL("ALTER CLASS E CLUSTERSELECTION balanced")).execute();
t.commit();
} finally {
t.shutdown();
} catch (Throwable ignored) {
// blank
}

admin.close();
Expand All @@ -206,51 +168,60 @@ private static void verifyDatabaseExists(Map<String, Object> conf) {
public void testEdges() throws Exception {
OrientGraphFactory factory = getGraphFactory();

OrientBaseGraph g = factory.getNoTx();
try {
factory.getNoTx().createEdgeType("some-label");
} catch (OSchemaException ex) {
if (!ex.getMessage().contains("exists"))
throw (ex);
factory.getNoTx().command(new OCommandSQL("delete edge some-label")).execute();
}
try {
g.createEdgeType("some-label");
} catch (OSchemaException ex) {
if (!ex.getMessage().contains("exists"))
throw (ex);
g.command(new OCommandSQL("delete edge some-label")).execute();
}

try {
factory.getNoTx().createVertexType("some-v-label");
} catch (OSchemaException ex) {
if (!ex.getMessage().contains("exists"))
throw (ex);
factory.getNoTx().command(new OCommandSQL("delete vertex some-v-label")).execute();
try {
g.createVertexType("some-v-label");
} catch (OSchemaException ex) {
if (!ex.getMessage().contains("exists"))
throw (ex);
g.command(new OCommandSQL("delete vertex some-v-label")).execute();
}
} finally {
g.shutdown();
}

OrientGraph t = factory.getTx();
try {
Vertex v1 = t.addVertex("class:some-v-label");
Vertex v2 = t.addVertex("class:some-v-label");
v1.setProperty("_id", "v1");
v2.setProperty("_id", "v2");

Vertex v1 = t.addVertex("class:some-v-label");
Vertex v2 = t.addVertex("class:some-v-label");
v1.setProperty("_id", "v1");
v2.setProperty("_id", "v2");
OrientEdge edge = t.addEdge(null, v1, v2, "some-label");
edge.setProperty("some", "thing");

OrientEdge edge = t.addEdge(null, v1, v2, "some-label");
edge.setProperty("some", "thing");
t.commit();
t.shutdown();

t.commit();
t.shutdown();
t = factory.getTx();

t = factory.getTx();
assertEquals(2, t.countVertices("some-v-label"));
assertEquals(1, t.countEdges());
assertNotNull(t.getVertices("_id", "v1").iterator().next());
assertNotNull(t.getVertices("_id", "v2").iterator().next());
t.commit();
t.shutdown();

assertEquals(2, t.countVertices("some-v-label"));
assertEquals(1, t.countEdges());
assertNotNull(t.getVertices("_id", "v1").iterator().next());
assertNotNull(t.getVertices("_id", "v2").iterator().next());
t.commit();
t.shutdown();
t = factory.getTx();

t = factory.getTx();
// works
assertEquals(1, t.getVertices("_id", "v1").iterator().next().query().labels("some-label").count());
// NoSuchElementException
assertNotNull(t.getVertices("_id", "v1").iterator().next().query().labels("some-label").edges().iterator().next());

// works
assertEquals(1, t.getVertices("_id", "v1").iterator().next().query().labels("some-label").count());
// NoSuchElementException
assertNotNull(t.getVertices("_id", "v1").iterator().next().query().labels("some-label").edges().iterator().next());
t.commit();
} finally {
t.shutdown();
}

t.commit();
}
}

0 comments on commit 6020c21

Please sign in to comment.