Revision: 156
http://polepos.svn.sourceforge.net/polepos/?rev=156&view=rev
Author: carlrosenberger
Date: 2010-12-06 16:58:49 +0000 (Mon, 06 Dec 2010)
Log Message:
-----------
cr + acv: Complex now working for Hibernate
Modified Paths:
--------------
trunk/polepos/settings/Circuits.properties
trunk/polepos/settings/DebugCircuits.properties
trunk/polepos/settings/Jdbc.properties
trunk/polepos/settings/Jdo.properties
trunk/polepos/src/org/polepos/RunSeason.java
trunk/polepos/src/org/polepos/circuits/flatobject/FlatObject.java
trunk/polepos/src/org/polepos/enhance/AllEnhance.java
trunk/polepos/src/org/polepos/framework/CircuitBase.java
trunk/polepos/src/org/polepos/framework/ReflectiveCircuitBase.java
trunk/polepos/src/org/polepos/framework/TurnSetupConfig.java
trunk/polepos/src/org/polepos/runner/AbstractRunner.java
trunk/polepos/src/org/polepos/teams/hibernate/ComplexHibernate.java
trunk/polepos/src/org/polepos/teams/hibernate/HibernateCar.java
trunk/polepos/src/org/polepos/teams/hibernate/HibernateTeam.java
trunk/polepos/src/org/polepos/teams/jdbc/ComplexJdbc.java
trunk/polepos/src/org/polepos/teams/jdbc/InheritanceHierarchyJdbc.java
trunk/polepos/src/org/polepos/teams/jdo/ComplexJdo.java
trunk/polepos/src/org/polepos/teams/jdo/JdoCar.java
trunk/polepos/src/org/polepos/teams/jdo/JdoTeam.java
trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo
Added Paths:
-----------
trunk/polepos/src/org/polepos/framework/Concurrent.java
trunk/polepos/src/org/polepos/teams/jdo/data/vod.jdo
Modified: trunk/polepos/settings/Circuits.properties
===================================================================
--- trunk/polepos/settings/Circuits.properties 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/settings/Circuits.properties 2010-12-06 16:58:49 UTC (rev 156)
@@ -41,12 +41,11 @@
#
# [objects]: number of objects to select from
# [selects]: number of queries run against all objects
+complex.objects=3,5,7
+complex.depth=6,6,6
+complex.selects=50,50,50
-complex.depth=7
-complex.objects=5,5,5
-complex.selects=100,100,100
-
# Settings for all circuits in the database benchmark.
# melbourne
Modified: trunk/polepos/settings/DebugCircuits.properties
===================================================================
--- trunk/polepos/settings/DebugCircuits.properties 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/settings/DebugCircuits.properties 2010-12-06 16:58:49 UTC (rev 156)
@@ -46,15 +46,11 @@
#
# [objects]: number of objects to select from
# [selects]: number of queries run against all objects
-#complex.depth=5,6,7
-#complex.objects=5,5,5
-#complex.selects=100,100,100
-complex.depth=5
-complex.objects=5
-complex.selects=50
+complex.objects=1,2,3
+complex.depth=4,4,4
+complex.selects=50,50,50
-
# melbourne
#
# [objects]: number of objects to be written, read and deleted
Modified: trunk/polepos/settings/Jdbc.properties
===================================================================
--- trunk/polepos/settings/Jdbc.properties 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/settings/Jdbc.properties 2010-12-06 16:58:49 UTC (rev 156)
@@ -23,7 +23,8 @@
# hibernate=hsqldb
#
# Client/Server
-hibernate=mysql,postgresql
+hibernate=mysql,postgresql
+
#
Modified: trunk/polepos/settings/Jdo.properties
===================================================================
--- trunk/polepos/settings/Jdo.properties 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/settings/Jdo.properties 2010-12-06 16:58:49 UTC (rev 156)
@@ -22,10 +22,10 @@
datanucleus.website=http://www.datanucleus.org
#
# Embedded
-# datanucleus.jdbc=hsqldb
+datanucleus.jdbc=hsqldb
#
# Client/Server
-datanucleus.jdbc=mysql
+# datanucleus.jdbc=mysql
#
Modified: trunk/polepos/src/org/polepos/RunSeason.java
===================================================================
--- trunk/polepos/src/org/polepos/RunSeason.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/RunSeason.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -19,8 +19,11 @@
package org.polepos;
+import java.io.*;
+
import org.polepos.circuits.bahrain.*;
import org.polepos.circuits.barcelona.*;
+import org.polepos.circuits.complex.*;
import org.polepos.circuits.flatobject.*;
import org.polepos.circuits.imola.*;
import org.polepos.circuits.inheritancehierarchy.*;
@@ -51,7 +54,7 @@
*
*/
public class RunSeason extends AbstractRunner {
-
+
public static void main(String[] args) {
new RunSeason().run();
}
@@ -60,9 +63,10 @@
public CircuitBase[] circuits() {
return new CircuitBase[] {
- // new ReflectiveCircuitBase(FlatObject.class),
- // new ReflectiveCircuitBase(NestedLists.class),
- // new ReflectiveCircuitBase(InheritanceHierarchy.class),
+// new ReflectiveCircuitBase(FlatObject.class),
+// new ReflectiveCircuitBase(NestedLists.class),
+// new ReflectiveCircuitBase(InheritanceHierarchy.class),
+// new ReflectiveCircuitBase(Complex.class),
new Melbourne(),
new Sepang(),
Modified: trunk/polepos/src/org/polepos/circuits/flatobject/FlatObject.java
===================================================================
--- trunk/polepos/src/org/polepos/circuits/flatobject/FlatObject.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/circuits/flatobject/FlatObject.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -22,6 +22,7 @@
import org.polepos.framework.*;
@CircuitDescription("write, query, update and delete indexed flat objects")
+@Concurrent
public interface FlatObject
{
@Order(1)
Modified: trunk/polepos/src/org/polepos/enhance/AllEnhance.java
===================================================================
--- trunk/polepos/src/org/polepos/enhance/AllEnhance.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/enhance/AllEnhance.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -23,10 +23,9 @@
public static void main(String[] args) throws Throwable {
-// Call Versant's enhancer directly.
- VodEnhancer.main(null);
+// VodEnhancer.main(null);
-// JdoEnhance.main(null);
+ JdoEnhance.main(null);
// new JviEnhance().runWithoutSystemExit();
Modified: trunk/polepos/src/org/polepos/framework/CircuitBase.java
===================================================================
--- trunk/polepos/src/org/polepos/framework/CircuitBase.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/framework/CircuitBase.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -222,7 +222,6 @@
try {
driver.takeSeatIn(car, setup);
} catch (CarMotorFailureException e1) {
- // FIXME reasonable exception handling
throw new RuntimeException("Circuit aborted", e1);
}
Added: trunk/polepos/src/org/polepos/framework/Concurrent.java
===================================================================
--- trunk/polepos/src/org/polepos/framework/Concurrent.java (rev 0)
+++ trunk/polepos/src/org/polepos/framework/Concurrent.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -0,0 +1,28 @@
+/*
+This file is part of the PolePosition database benchmark
+http://www.polepos.org
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public
+License along with this program; if not, write to the Free
+Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+MA 02111-1307, USA. */
+
+
+package org.polepos.framework;
+
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Concurrent {
+
+}
Property changes on: trunk/polepos/src/org/polepos/framework/Concurrent.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/polepos/src/org/polepos/framework/ReflectiveCircuitBase.java
===================================================================
--- trunk/polepos/src/org/polepos/framework/ReflectiveCircuitBase.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/framework/ReflectiveCircuitBase.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -51,14 +51,20 @@
}
}
+
+ @Override
+ public boolean isConcurrency() {
+ Concurrent concurrent = _driverClass.getAnnotation(Concurrent.class);
+ return concurrent != null;
+ }
@Override
public String description() {
- CircuitDescription annotation = _driverClass.getAnnotation(CircuitDescription.class);
- if(annotation == null){
+ CircuitDescription description = _driverClass.getAnnotation(CircuitDescription.class);
+ if(description == null){
throw new IllegalStateException("Class " + _driverClass.getName()+ " has to be annotated with " + CircuitDescription.class.getName());
}
- return annotation.value();
+ return description.value();
}
@Override
Modified: trunk/polepos/src/org/polepos/framework/TurnSetupConfig.java
===================================================================
--- trunk/polepos/src/org/polepos/framework/TurnSetupConfig.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/framework/TurnSetupConfig.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -72,10 +72,7 @@
int[] values = mProperties.getIntArray(circuit.internalName() + "." + AVAILABLE_SETTINGS[i]);
if(values!= null && values.length > 0){
-
-
// For concurrency, we only use the first setup parameters.
-
setupProperties.add(new SetupProperty(AVAILABLE_SETTINGS[i], values[0]));
}
Modified: trunk/polepos/src/org/polepos/runner/AbstractRunner.java
===================================================================
--- trunk/polepos/src/org/polepos/runner/AbstractRunner.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/runner/AbstractRunner.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -38,7 +38,9 @@
circuits.addAll(distinctCircuits);
if(turnSetupConfig.runConcurrency()){
for(Circuit circuit : distinctCircuits){
- circuits.add(new ConcurrencyCircuit(circuit));
+ if(circuit.isConcurrency()){
+ circuits.add(new ConcurrencyCircuit(circuit));
+ }
}
}
for(Circuit circuit: circuits){
Modified: trunk/polepos/src/org/polepos/teams/hibernate/ComplexHibernate.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/hibernate/ComplexHibernate.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/teams/hibernate/ComplexHibernate.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -24,11 +24,13 @@
import org.hibernate.*;
import org.polepos.circuits.complex.*;
+import org.polepos.framework.*;
import org.polepos.teams.hibernate.data.*;
public class ComplexHibernate extends HibernateDriver implements Complex {
+
@Override
public void write() {
Transaction tx = begin();
@@ -45,8 +47,8 @@
}
private ComplexHolder0 root() {
- String from = "from org.polepos.teams.hibernate.data.ComplexRoot";
- Iterator it = db().iterate(from);
+ String query = "from org.polepos.teams.hibernate.data.ComplexRoot";
+ Iterator it = db().iterate(query);
if(! it.hasNext()){
throw new IllegalStateException("no ComplexRoot found");
}
@@ -54,70 +56,66 @@
if(it.hasNext()){
throw new IllegalStateException("More than one ComplexRoot found");
}
- ComplexHolder0 holder = root.getHolder();
- return holder;
+ return root.getHolder();
}
@Override
public void query() {
-// int selectCount = selectCount();
-// int firstInt = objectCount() * objectCount() + objectCount();
-// int lastInt = firstInt + (objectCount() * objectCount() * objectCount()) - 1;
-// int currentInt = firstInt;
-// for (int run = 0; run < selectCount; run++) {
-//
-// Query query = null;
-// query.constrain(ComplexHolder2.class);
-// query.descend("_i2").constrain(currentInt);
-// ObjectSet<ComplexHolder2> result = query.execute();
-// if(result.size() != 1) {
-// throw new IllegalStateException("" + result.size());
-// }
-// ComplexHolder2 holder = result.get(0);
-//
-// addToCheckSum(holder.ownCheckSum());
-//
-// currentInt++;
-// if(currentInt > lastInt){
-// currentInt = firstInt;
-// }
-// }
-//
+ int selectCount = selectCount();
+ int firstInt = objectCount() * objectCount() + objectCount();
+ int lastInt = firstInt + (objectCount() * objectCount() * objectCount()) - 1;
+ int currentInt = firstInt;
+ for (int run = 0; run < selectCount; run++) {
+ String query = "from org.polepos.teams.hibernate.data.ComplexHolder2 where i2=" + currentInt;
+ Iterator it = db().iterate(query);
+ if(! it.hasNext()){
+ throw new IllegalStateException("no ComplexHolder2 found");
+ }
+ ComplexHolder2 holder = (ComplexHolder2) it.next();
+ addToCheckSum(holder.ownCheckSum());
+ if(it.hasNext()){
+ throw new IllegalStateException("More than one ComplexHolder2 found");
+ }
+ currentInt++;
+ if(currentInt > lastInt){
+ currentInt = firstInt;
+ }
+ }
}
@Override
public void update() {
-// ComplexHolder0 holder = root();
-// holder.traverse(new NullVisitor(),
-// new Visitor<ComplexHolder0>() {
-// @Override
-// public void visit(ComplexHolder0 holder) {
-// addToCheckSum(holder.ownCheckSum());
-// holder.setName("updated");
-// ComplexHolder2 newChild = new ComplexHolder2();
-// newChild._i1 = 1;
-// newChild._i2 = 2;
-// newChild.setName("added");
-// holder.addChild(newChild);
-// store(holder.getChildren());
-// store(holder);
-// }
-// });
+ Transaction tx = begin();
+ ComplexHolder0 holder = root();
+ holder.traverse(new NullVisitor<ComplexHolder0>(),
+ new Visitor<ComplexHolder0>() {
+ @Override
+ public void visit(ComplexHolder0 holder) {
+ addToCheckSum(holder.ownCheckSum());
+ holder.setName("updated");
+ ComplexHolder2 newChild = new ComplexHolder2();
+ newChild.setI1(1);
+ newChild.setI2(2);
+ newChild.setName("added");
+ holder.addChild(newChild);
+ store(holder);
+ }
+ });
+ tx.commit();
}
@Override
public void delete() {
-// ComplexHolder0 holder = root();
-//
-// holder.traverse(
-// new NullVisitor(),
-// new Visitor<ComplexHolder0>() {
-// @Override
-// public void visit(ComplexHolder0 holder) {
-// addToCheckSum(holder.ownCheckSum());
-// db().delete(holder);
-// }
-// });
+ ComplexHolder0 holder = root();
+ holder.traverse(
+ new NullVisitor<ComplexHolder0>(),
+ new Visitor<ComplexHolder0>() {
+ @Override
+ public void visit(ComplexHolder0 holder) {
+ addToCheckSum(holder.ownCheckSum());
+ db().delete(holder);
+ }
+ });
}
}
Modified: trunk/polepos/src/org/polepos/teams/hibernate/HibernateCar.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/hibernate/HibernateCar.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/teams/hibernate/HibernateCar.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -43,10 +43,10 @@
public Session openSession() throws CarMotorFailureException{
- if ( _sessionFactory == null) {
- _sessionFactory = getSessionFactory();
- }
-
+ if(_sessionFactory == null){
+ _sessionFactory = getSessionFactory();
+ }
+
Session session = _sessionFactory.openSession();
if("hsqldb".equals(_dbType)){
session.createSQLQuery("SET WRITE_DELAY 0").executeUpdate();
@@ -54,6 +54,13 @@
return session;
}
+ public void recreateSessionFactory() {
+ if(_sessionFactory != null){
+ _sessionFactory.close();
+ }
+ _sessionFactory = getSessionFactory();
+ }
+
public void closeSession(Session session){
session.close();
}
@@ -116,4 +123,6 @@
return factory;
}
+
+
}
Modified: trunk/polepos/src/org/polepos/teams/hibernate/HibernateTeam.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/hibernate/HibernateTeam.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/teams/hibernate/HibernateTeam.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -83,16 +83,7 @@
@Override
public void setUp() {
for(int i = 0; i < _cars.length;i++){
- Session session = null;
- try {
- session = ((HibernateCar)_cars[i]).openSession();
- } catch (CarMotorFailureException e) {
- e.printStackTrace();
- }
- for (Class clazz : persistentClasses()) {
- deleteExtent(session, clazz);
- }
- ((HibernateCar)_cars[i]).closeSession(session);
+ ((HibernateCar)_cars[i]).recreateSessionFactory();
}
}
Modified: trunk/polepos/src/org/polepos/teams/jdbc/ComplexJdbc.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdbc/ComplexJdbc.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/teams/jdbc/ComplexJdbc.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -34,13 +34,13 @@
private static final int ROOT_ID = 1;
- private static final String HOLDER_TABLE0 = "complexHolder0";
+ private static final String HOLDER_TABLE0 = "complexHolderJdbc0";
private static final String[] HOLDER_TABLES = new String[]{
- "complexHolder1",
- "complexHolder2",
- "complexHolder3",
- "complexHolder4",
+ "complexHolderJdbc1",
+ "complexHolderJdbc2",
+ "complexHolderJdbc3",
+ "complexHolderJdbc4",
};
private static final String CHILDREN_TABLE = "children";
@@ -108,11 +108,11 @@
_idGenerator = new IdGenerator(ROOT_ID);
final Stack<Integer> parentIds = new Stack<Integer>();
- final PreparedStatement complexHolder0Stat = prepareStatement("insert into complexHolder0 (id, name, type) values (?,?,?)");
+ final PreparedStatement complexHolder0Stat = prepareStatement("insert into " + HOLDER_TABLE0 + " (id, name, type) values (?,?,?)");
final PreparedStatement[] complexHolderStats = new PreparedStatement[4];
for (int i = 0; i < complexHolderStats.length; i++) {
+ String table = HOLDER_TABLES[i];
int idx = i + 1;
- String table = "complexHolder" + idx;
complexHolderStats[i] = prepareStatement("insert into " + table + "(id, i" + idx + ") values (?,?)");
}
final PreparedStatement arrayStat = prepareStatement("insert into tarray (parent, child, pos) values (?,?,?)");
@@ -241,13 +241,11 @@
private ComplexHolder0 readRootInternal() {
ComplexHolder0 holder = null;
try {
- final PreparedStatement complexHolder0Stat =
- prepareStatement("select * from complexHolder0 where id=?");
-
+ final PreparedStatement complexHolder0Stat = prepareStatement("select * from " + HOLDER_TABLE0 + " where id=?");
final PreparedStatement[] complexHolderStats = new PreparedStatement[4];
for (int i = 0; i < complexHolderStats.length; i++) {
int idx = i + 1;
- String table = "complexHolder" + idx;
+ String table = HOLDER_TABLES[i];
complexHolderStats[i] = prepareStatement("select * from " + table + " where id=?");
}
final PreparedStatement arrayStat = prepareStatement("select * from " + ARRAY_TABLE + " where parent=? order by pos");
@@ -396,16 +394,16 @@
int currentInt = firstInt;
for (int run = 0; run < selectCount; run++) {
StringBuilder sb = new StringBuilder();
- sb.append("select * from complexHolder0 ");
- sb.append("INNER JOIN complexHolder1 ");
- sb.append("on complexHolder0.id = complexHolder1.id ");
- sb.append("INNER JOIN complexHolder2 ");
- sb.append("on complexHolder0.id = complexHolder2.id ");
- sb.append("LEFT OUTER JOIN complexHolder3 ");
- sb.append("on complexHolder0.id = complexHolder3.id ");
- sb.append("LEFT OUTER JOIN complexHolder4 ");
- sb.append("on complexHolder0.id = complexHolder4.id ");
- sb.append("where complexHolder2.i2 = ?");
+ sb.append("select * from " + HOLDER_TABLE0);
+ sb.append(" INNER JOIN " + HOLDER_TABLES[0]);
+ sb.append(" on " + HOLDER_TABLE0 + ".id = " + HOLDER_TABLES[0] + ".id ");
+ sb.append(" INNER JOIN " + HOLDER_TABLES[1]);
+ sb.append(" on " + HOLDER_TABLE0 + ".id = " + HOLDER_TABLES[1] + ".id ");
+ sb.append(" LEFT OUTER JOIN " + HOLDER_TABLES[2]);
+ sb.append(" on " + HOLDER_TABLE0 + ".id = " + HOLDER_TABLES[2] + ".id ");
+ sb.append(" LEFT OUTER JOIN " + HOLDER_TABLES[3]);
+ sb.append(" on " + HOLDER_TABLE0 + ".id = " + HOLDER_TABLES[3] + ".id ");
+ sb.append(" where " + HOLDER_TABLES[1] + ".i2 = ?");
PreparedStatement stat = prepareStatement(sb.toString());
try {
@@ -440,12 +438,12 @@
@Override
public void update() {
- final PreparedStatement nameStat = prepareStatement("update complexholder0 set name=? where id=?");
- final PreparedStatement complexHolder0Stat = prepareStatement("insert into complexHolder0 (id, name, type) values (?,?,?)");
+ final PreparedStatement nameStat = prepareStatement("update " + HOLDER_TABLE0 + " set name=? where id=?");
+ final PreparedStatement complexHolder0Stat = prepareStatement("insert into " + HOLDER_TABLE0 + " (id, name, type) values (?,?,?)");
final PreparedStatement[] complexHolderStats = new PreparedStatement[2];
for (int i = 0; i < complexHolderStats.length; i++) {
int idx = i + 1;
- String table = "complexHolder" + idx;
+ String table = HOLDER_TABLES[i];
complexHolderStats[i] = prepareStatement("insert into " + table + "(id, i" + idx + ") values (?,?)");
}
final PreparedStatement childrenStat = prepareStatement("insert into children (parent, child, pos) values (?,?,?)");
@@ -508,8 +506,9 @@
@Override
public void delete() {
final PreparedStatement[] complexHolderStats = new PreparedStatement[5];
- for (int i = 0; i < complexHolderStats.length; i++) {
- String table = "complexHolder" + i;
+ complexHolderStats[0] = prepareStatement("delete from " + HOLDER_TABLE0 + " where id=?");
+ for (int i = 1; i < complexHolderStats.length; i++) {
+ String table = HOLDER_TABLES[i - 1];
complexHolderStats[i] = prepareStatement("delete from " + table + " where id=?");
}
final PreparedStatement arrayStat = prepareStatement("delete from " + ARRAY_TABLE + " where parent=?");
Modified: trunk/polepos/src/org/polepos/teams/jdbc/InheritanceHierarchyJdbc.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdbc/InheritanceHierarchyJdbc.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/teams/jdbc/InheritanceHierarchyJdbc.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -31,11 +31,11 @@
public class InheritanceHierarchyJdbc extends JdbcDriver implements InheritanceHierarchy {
private static final String[] TABLES = new String[]{
- "inheritanceHierarchy0",
- "inheritanceHierarchy1",
- "inheritanceHierarchy2",
- "inheritanceHierarchy3",
- "inheritanceHierarchy4",
+ "inheritanceHierarchyJdbc0",
+ "inheritanceHierarchyJdbc1",
+ "inheritanceHierarchyJdbc2",
+ "inheritanceHierarchyJdbc3",
+ "inheritanceHierarchyJdbc4",
};
public void takeSeatIn(Car car, TurnSetup setup) throws CarMotorFailureException{
@@ -43,17 +43,17 @@
super.takeSeatIn(car, setup);
openConnection();
- int i = 0;
- for(String table : TABLES){
- dropTable( table);
- createTable( table, new String[]{ "id", "parent", "i" + i},
- new Class[]{Integer.TYPE, Integer.TYPE, Integer.TYPE} );
- createIndex( table, "parent" );
- if(i == 2){
- createIndex( table, "i2" );
- }
- i++;
- }
+ for (int i = TABLES.length - 1; i >= 0; i--) {
+ String table = TABLES[i];
+ dropTable( table);
+ createTable( table, new String[]{ "id", "parent", "i" + i},
+ new Class[]{Integer.TYPE, Integer.TYPE, Integer.TYPE} );
+ createIndex( table, "parent" );
+ if(i == 2){
+ createIndex( table, "i2" );
+ }
+ }
+
close();
}
Modified: trunk/polepos/src/org/polepos/teams/jdo/ComplexJdo.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/ComplexJdo.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/teams/jdo/ComplexJdo.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -43,12 +43,16 @@
@Override
public void read() {
beginRead();
- ComplexHolder0 holder = root();
+ ComplexHolder0 holder = rootHolder();
addToCheckSum(holder);
}
- private ComplexHolder0 root() {
- Query query = db().newQuery(ComplexRoot.class);
+ private ComplexHolder0 rootHolder() {
+ return root().getHolder();
+ }
+
+ private ComplexRoot root() {
+ Query query = db().newQuery(ComplexRoot.class);
Collection result = (Collection) query.execute();
Iterator it = result.iterator();
if(! it.hasNext()){
@@ -58,7 +62,7 @@
if(it.hasNext()){
throw new IllegalStateException("More than one ComplexRoot found");
}
- return root.getHolder();
+ return root;
}
@Override
@@ -93,7 +97,7 @@
@Override
public void update() {
begin();
- ComplexHolder0 holder = root();
+ ComplexHolder0 holder = rootHolder();
holder.traverse(new NullVisitor<ComplexHolder0>(),
new Visitor<ComplexHolder0>() {
@Override
@@ -113,7 +117,9 @@
@Override
public void delete() {
begin();
- ComplexHolder0 holder = root();
+ ComplexRoot root = root();
+ ComplexHolder0 holder = root.getHolder();
+ delete(root);
holder.traverse(
new NullVisitor<ComplexHolder0>(),
new Visitor<ComplexHolder0>() {
Modified: trunk/polepos/src/org/polepos/teams/jdo/JdoCar.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/JdoCar.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/teams/jdo/JdoCar.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -67,7 +67,7 @@
properties.setProperty("javax.jdo.option.Optimistic", "true");
// Versant VODJDO specific settings
- properties.setProperty("versant.metadata.0", "org/polepos/teams/jdo/data/package.jdo");
+ properties.setProperty("versant.metadata.0", "org/polepos/teams/jdo/data/vod.jdo");
properties.setProperty("versant.allowPmfCloseWithPmHavingOpenTx","true");
properties.setProperty("versant.vdsSchemaEvolve","true");
Modified: trunk/polepos/src/org/polepos/teams/jdo/JdoTeam.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/JdoTeam.java 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/teams/jdo/JdoTeam.java 2010-12-06 16:58:49 UTC (rev 156)
@@ -123,18 +123,18 @@
deleteAll(pm, JdoIndexedObject.class);
deleteAll(pm, ListHolder.class);
+ deleteAll(pm, ComplexRoot.class);
+ deleteAll(pm, ComplexHolder4.class);
+ deleteAll(pm, ComplexHolder3.class);
+ deleteAll(pm, ComplexHolder2.class);
+ deleteAll(pm, ComplexHolder1.class);
deleteAll(pm, ComplexHolder0.class);
- deleteAll(pm, ComplexHolder1.class);
- deleteAll(pm, ComplexHolder2.class);
- deleteAll(pm, ComplexHolder3.class);
- deleteAll(pm, ComplexHolder4.class);
- deleteAll(pm, ComplexRoot.class);
+ deleteAll(pm, InheritanceHierarchy4.class);
+ deleteAll(pm, InheritanceHierarchy3.class);
+ deleteAll(pm, InheritanceHierarchy2.class);
+ deleteAll(pm, InheritanceHierarchy1.class);
deleteAll(pm, InheritanceHierarchy0.class);
- deleteAll(pm, InheritanceHierarchy1.class);
- deleteAll(pm, InheritanceHierarchy2.class);
- deleteAll(pm, InheritanceHierarchy3.class);
- deleteAll(pm, InheritanceHierarchy4.class);
deleteAll(pm, JB0.class);
deleteAll(pm, JB1.class);
Modified: trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo 2010-12-02 17:23:46 UTC (rev 155)
+++ trunk/polepos/src/org/polepos/teams/jdo/data/package.jdo 2010-12-06 16:58:49 UTC (rev 156)
@@ -7,7 +7,7 @@
<field name = "_string" indexed = "true"/>
</class>
<class name="ListHolder">
- <field name="_id" indexed = "true" />
+ <field name="_id" indexed = "true"/>
<field name="_name" indexed = "true"/>
<field name="_list">
<collection element-type="ListHolder"/>
@@ -15,28 +15,50 @@
</class>
<class name="ComplexRoot" />
<class name="ComplexHolder0">
+ <inheritance strategy="new-table"/>
<field name="name" />
<field name="array" />
<field name="children">
<collection element-type="ComplexHolder0"/>
</field>
-
</class>
- <class name="ComplexHolder1" persistence-capable-superclass="org.polepos.teams.jdo.data.ComplexHolder0" />
- <class name="ComplexHolder2" persistence-capable-superclass="org.polepos.teams.jdo.data.ComplexHolder1">
+ <class name="ComplexHolder1">
+ <inheritance strategy="new-table"/>
+ <field name = "i1" />
+ </class>
+ <class name="ComplexHolder2">
+ <inheritance strategy="new-table"/>
<field name = "i2" indexed = "true"/>
</class>
- <class name="ComplexHolder3" persistence-capable-superclass="org.polepos.teams.jdo.data.ComplexHolder2" />
- <class name="ComplexHolder4" persistence-capable-superclass="org.polepos.teams.jdo.data.ComplexHolder3" />
-
-
- <class name="InheritanceHierarchy0" />
- <class name="InheritanceHierarchy1" persistence-capable-superclass="org.polepos.teams.jdo.data.InheritanceHierarchy0" />
- <class name="InheritanceHierarchy2" persistence-capable-superclass="org.polepos.teams.jdo.data.InheritanceHierarchy1">
+ <class name="ComplexHolder3">
+ <inheritance strategy="new-table"/>
+ <field name = "i3" />
+ </class>
+ <class name="ComplexHolder4">
+ <inheritance strategy="new-table"/>
+ <field name = "i4" />
+ </class>
+ <class name="InheritanceHierarchy0">
+ <inheritance strategy="new-table"/>
+ <field name = "i0" />
+ </class>
+ <class name="InheritanceHierarchy1">
+ <inheritance strategy="new-table"/>
+ <field name = "i1" />
+ </class>
+ <class name="InheritanceHierarchy2">
+ <inheritance strategy="new-table"/>
<field name="i2" indexed="true"/>
</class>
- <class name="InheritanceHierarchy3" persistence-capable-superclass="org.polepos.teams.jdo.data.InheritanceHierarchy2" />
- <class name="InheritanceHierarchy4" persistence-capable-superclass="org.polepos.teams.jdo.data.InheritanceHierarchy3" />
+ <class name="InheritanceHierarchy3">
+ <inheritance strategy="new-table"/>
+ <field name = "i3" />
+ </class>
+ <class name="InheritanceHierarchy4">
+ <inheritance strategy="new-table"/>
+ <field name = "i4" />
+ </class>
+
<class name="JB0" />
<class name="JB1" persistence-capable-superclass="org.polepos.teams.jdo.data.JB0" />
Added: trunk/polepos/src/org/polepos/teams/jdo/data/vod.jdo
===================================================================
--- trunk/polepos/src/org/polepos/teams/jdo/data/vod.jdo (rev 0)
+++ trunk/polepos/src/org/polepos/teams/jdo/data/vod.jdo 2010-12-06 16:58:49 UTC (rev 156)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jdo PUBLIC '-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 2.2//EN' 'http://java.sun.com/dtd/jdo_2_2.dtd'>
+<jdo>
+ <package name="org.polepos.teams.jdo.data">
+ <class name="JdoIndexedObject">
+ <field name = "_int" indexed = "true"/>
+ <field name = "_string" indexed = "true"/>
+ </class>
+ <class name="ListHolder">
+ <field name="_id" indexed = "true"/>
+ <field name="_name" indexed = "true"/>
+ <field name="_list">
+ <collection element-type="ListHolder"/>
+ </field>
+ </class>
+ <class name="ComplexRoot" />
+ <class name="ComplexHolder0">
+ <field name="name" />
+ <field name="array" />
+ <field name="children">
+ <collection element-type="ComplexHolder0"/>
+ </field>
+ </class>
+ <class name="ComplexHolder1"/>
+ <class name="ComplexHolder2">
+ <field name = "i2" indexed = "true"/>
+ </class>
+ <class name="ComplexHolder3" />
+ <class name="ComplexHolder4" />
+
+ <class name="InheritanceHierarchy0" />
+ <class name="InheritanceHierarchy1" />
+ <class name="InheritanceHierarchy2" >
+ <field name="i2" indexed="true"/>
+ </class>
+ <class name="InheritanceHierarchy3" />
+ <class name="InheritanceHierarchy4" />
+
+ <class name="JB0" />
+ <class name="JB1" persistence-capable-superclass="org.polepos.teams.jdo.data.JB0" />
+ <class name="JB2" persistence-capable-superclass="org.polepos.teams.jdo.data.JB1">
+ <field name = "b2" indexed = "true"/>
+ </class>
+ <class name="JB3" persistence-capable-superclass="org.polepos.teams.jdo.data.JB2" />
+ <class name="JB4" persistence-capable-superclass="org.polepos.teams.jdo.data.JB3" />
+ <class name="JdoTree">
+ <fetch-group name="subsequent">
+ <field name="subsequent" recursion-depth="16"/>
+ </fetch-group>
+ <fetch-group name="preceding">
+ <field name="preceding" recursion-depth="16"/>
+ </fetch-group>
+ </class>
+ <class name="JdoPilot" />
+
+ <class name="JdoIndexedPilot">
+ <field name = "mName" indexed = "true"/>
+ <field name = "mLicenseID" indexed = "true"/>
+ </class>
+ <class name="JdoLightObject"/>
+ <class name="JdoListHolder">
+ <field name = "list">
+ <collection element-type="java.lang.Integer"/>
+ </field>
+ </class>
+ <class name="JN1"/>
+ </package>
+</jdo>
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|