Revision: 140
http://polepos.svn.sourceforge.net/polepos/?rev=140&view=rev
Author: carlrosenberger
Date: 2010-11-20 12:59:52 +0000 (Sat, 20 Nov 2010)
Log Message:
-----------
cr: Updated to latest db4o version. Removing deprecated configurations. Added StoreAdapter
using reflection so db4o will remain runnable against old db4o versions.
Modified Paths:
--------------
trunk/polepos/.classpath
trunk/polepos/src/org/polepos/teams/db4o/BahrainDb4o.java
trunk/polepos/src/org/polepos/teams/db4o/Db4oCar.java
trunk/polepos/src/org/polepos/teams/db4o/Db4oDriver.java
trunk/polepos/src/org/polepos/teams/db4o/Db4oOptions.java
trunk/polepos/src/org/polepos/teams/db4o/Db4oTeam.java
Added Paths:
-----------
trunk/polepos/lib/db4o/db4o-8.0.174.15231-all-java5.jar
Removed Paths:
-------------
trunk/polepos/lib/db4o/db4o-8.0.145.14388-all-java5.jar
Modified: trunk/polepos/.classpath
===================================================================
--- trunk/polepos/.classpath 2010-11-19 13:53:02 UTC (rev 139)
+++ trunk/polepos/.classpath 2010-11-20 12:59:52 UTC (rev 140)
@@ -20,7 +20,6 @@
<classpathentry kind="lib" path="lib/common/serp-1.13.1.jar"/>
<classpathentry kind="lib" path="lib/common/xercesImpl.jar"/>
<classpathentry kind="lib" path="lib/common/xml-apis.jar"/>
- <classpathentry kind="lib" path="lib/db4o/db4o-8.0.145.14388-all-java5.jar"/>
<classpathentry kind="lib" path="lib/javadb/derby.jar"/>
<classpathentry kind="lib" path="lib/jms/geronimo-jms_1.1_spec-1.1.1.jar"/>
<classpathentry kind="lib" path="lib/jta/geronimo-jta_1.1_spec-1.1.jar"/>
@@ -44,6 +43,7 @@
<classpathentry kind="lib" path="lib/datanucleus/datanucleus-rdbms-2.1.0-release.jar"/>
<classpathentry kind="lib" path="lib/jdo/jdo-api-3.0.jar"/>
<classpathentry kind="lib" path="lib/datanucleus/datanucleus-connectionpool-2.0.3-SNAPSHOT.jar"/>
+ <classpathentry kind="lib" path="lib/db4o/db4o-8.0.174.15231-all-java5.jar"/>
<classpathentry kind="var" path="JUNIT_HOME/junit.jar" sourcepath="/ECLIPSE_HOME/plugins/org.eclipse.jdt.source_3.1.0/src/org.junit_3.8.1/junitsrc.zip"/>
<classpathentry kind="lib" path="lib/graph/gnujaxp.jar"/>
<classpathentry kind="lib" path="lib/graph/itext-1.2.jar"/>
Deleted: trunk/polepos/lib/db4o/db4o-8.0.145.14388-all-java5.jar
===================================================================
(Binary files differ)
Added: trunk/polepos/lib/db4o/db4o-8.0.174.15231-all-java5.jar
===================================================================
(Binary files differ)
Property changes on: trunk/polepos/lib/db4o/db4o-8.0.174.15231-all-java5.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/polepos/src/org/polepos/teams/db4o/BahrainDb4o.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/db4o/BahrainDb4o.java 2010-11-19 13:53:02 UTC (rev 139)
+++ trunk/polepos/src/org/polepos/teams/db4o/BahrainDb4o.java 2010-11-20 12:59:52 UTC (rev 140)
@@ -105,7 +105,7 @@
for (int i = 1; i <= updateCount; i++) {
Pilot p = (Pilot)set.next();
p.setName( p.getName().toUpperCase() );
- db().set(p);
+ store(p);
addToCheckSum(1);
}
db().commit();
Modified: trunk/polepos/src/org/polepos/teams/db4o/Db4oCar.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/db4o/Db4oCar.java 2010-11-19 13:53:02 UTC (rev 139)
+++ trunk/polepos/src/org/polepos/teams/db4o/Db4oCar.java 2010-11-20 12:59:52 UTC (rev 140)
@@ -131,9 +131,6 @@
for (int i = 0; i < _options.length; i++) {
try{
switch (_options[i]){
- case Db4oOptions.NO_FLUSH:
- config.flushFileBuffers(false);
- break;
case Db4oOptions.MEMORY_IO:
config.io(new com.db4o.io.MemoryIoAdapter());
break;
@@ -211,7 +208,7 @@
_objectContainer = Db4o.openFile(config(config), PATH).ext();
return _objectContainer.ext();
}
- return ((EmbeddedObjectContainer)_objectContainer).openSession().ext();
+ return _objectContainer.ext().openSession().ext();
}
public ExtObjectContainer openNetworkingClient(Configuration serverConfiguration, Configuration objectContainerConfiguration) {
Modified: trunk/polepos/src/org/polepos/teams/db4o/Db4oDriver.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/db4o/Db4oDriver.java 2010-11-19 13:53:02 UTC (rev 139)
+++ trunk/polepos/src/org/polepos/teams/db4o/Db4oDriver.java 2010-11-20 12:59:52 UTC (rev 140)
@@ -19,6 +19,8 @@
package org.polepos.teams.db4o;
+import java.lang.reflect.*;
+
import org.polepos.framework.*;
import com.db4o.*;
@@ -27,6 +29,8 @@
import com.db4o.query.*;
public abstract class Db4oDriver extends DriverBase {
+
+ private StoreAdapter _storeAdapter;
private ExtObjectContainer _container;
@@ -85,10 +89,13 @@
}
protected void store(Object obj) {
- // The new db4o interface is ObjectContainer#store();
- // We use #set() here for compatibility with old db4o
- // versions so we can also run against these.
- _container.set(obj);
+ // using a storeAdapter to be compatible with old db4o versions
+ // new syntax: ObjectContainer#store()
+ // old syntax prior to 7.1: ObjectContainer#set()
+ if(_storeAdapter == null){
+ _storeAdapter = StoreAdapter.forObjectContainer(_container);
+ }
+ _storeAdapter.store(_container, obj);
}
protected void purge(Object obj) {
@@ -98,5 +105,50 @@
protected void delete(Object obj) {
_container.delete(obj);
}
+
+ private static abstract class StoreAdapter{
+
+ abstract void store(ObjectContainer container, Object obj);
+ public static StoreAdapter forObjectContainer(ObjectContainer container) {
+ Class clazz = container.getClass();
+ try {
+ clazz.getMethod("store", new Class[]{Object.class});
+ } catch (NoSuchMethodException nsme) {
+ Method method = null;
+ try {
+ method = clazz.getMethod("set", new Class[]{Object.class});
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
+ return new StoreAdapter70(method);
+ }
+ return new StoreAdapter80();
+ }
+ }
+
+ private static class StoreAdapter80 extends StoreAdapter{
+ void store(ObjectContainer container, Object obj){
+ container.store(obj);
+ }
+ }
+
+ private static class StoreAdapter70 extends StoreAdapter{
+
+ private Method _method;
+
+ StoreAdapter70(Method method){
+ _method = method;
+ }
+
+ void store(ObjectContainer container, Object obj){
+ try {
+ _method.invoke(container, obj);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+
}
Modified: trunk/polepos/src/org/polepos/teams/db4o/Db4oOptions.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/db4o/Db4oOptions.java 2010-11-19 13:53:02 UTC (rev 139)
+++ trunk/polepos/src/org/polepos/teams/db4o/Db4oOptions.java 2010-11-20 12:59:52 UTC (rev 140)
@@ -4,7 +4,6 @@
public class Db4oOptions {
- public static final int NO_FLUSH = 1;
public static final int CLIENT_SERVER = 2;
public static final int CLIENT_SERVER_TCP = 3;
public static final int MEMORY_IO = 4;
Modified: trunk/polepos/src/org/polepos/teams/db4o/Db4oTeam.java
===================================================================
--- trunk/polepos/src/org/polepos/teams/db4o/Db4oTeam.java 2010-11-19 13:53:02 UTC (rev 139)
+++ trunk/polepos/src/org/polepos/teams/db4o/Db4oTeam.java 2010-11-20 12:59:52 UTC (rev 140)
@@ -124,9 +124,6 @@
for (int i = 0; i < options.length; i++) {
try{
switch (options[i]){
- case Db4oOptions.NO_FLUSH:
- _name += " noflush";
- break;
case Db4oOptions.CLIENT_SERVER:
_name += " C/S";
break;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|