diff options
Diffstat (limited to 'plugins')
11 files changed, 126 insertions, 444 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/CDODBSchema.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/CDODBSchema.java index 0a0544d864..a85c66c949 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/CDODBSchema.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/CDODBSchema.java @@ -28,38 +28,6 @@ public class CDODBSchema extends DBSchema public static final CDODBSchema INSTANCE = new CDODBSchema(); /** - * DBTable cdo_repository - */ - public static final IDBTable REPOSITORY = INSTANCE.addTable("cdo_repository"); //$NON-NLS-1$ - - public static final IDBField REPOSITORY_CREATED = // - REPOSITORY.addField("created", DBType.BIGINT); //$NON-NLS-1$ - - public static final IDBField REPOSITORY_STARTS = // - REPOSITORY.addField("starts", DBType.BIGINT); //$NON-NLS-1$ - - public static final IDBField REPOSITORY_STARTED = // - REPOSITORY.addField("started", DBType.BIGINT); //$NON-NLS-1$ - - public static final IDBField REPOSITORY_STOPPED = // - REPOSITORY.addField("stopped", DBType.BIGINT); //$NON-NLS-1$ - - public static final IDBField REPOSITORY_NEXT_LOCAL_CDOID = // - REPOSITORY.addField("next_local_cdoid", DBType.BIGINT); //$NON-NLS-1$ - - public static final IDBField REPOSITORY_LAST_CDOID = // - REPOSITORY.addField("last_cdoid", DBType.BIGINT); //$NON-NLS-1$ - - public static final IDBField REPOSITORY_LAST_METAID = // - REPOSITORY.addField("last_metaid", DBType.BIGINT); //$NON-NLS-1$ - - public static final IDBField REPOSITORY_LAST_BRANCHID = // - REPOSITORY.addField("last_branchid", DBType.INTEGER); //$NON-NLS-1$ - - public static final IDBField REPOSITORY_LAST_COMMITTIME = // - REPOSITORY.addField("last_committime", DBType.BIGINT); //$NON-NLS-1$ - - /** * DBTable cdo_properties */ public static final IDBTable PROPERTIES = INSTANCE.addTable("cdo_properties"); //$NON-NLS-1$ diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStore.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStore.java index d1971b3396..392baf305a 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStore.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStore.java @@ -14,7 +14,6 @@ */ package org.eclipse.emf.cdo.server.internal.db; -import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.server.ISession; import org.eclipse.emf.cdo.server.ITransaction; import org.eclipse.emf.cdo.server.IView; @@ -45,7 +44,9 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.text.MessageFormat; +import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.Map.Entry; @@ -57,6 +58,22 @@ public class DBStore extends LongIDStore implements IDBStore { public static final String TYPE = "db"; //$NON-NLS-1$ + private static final String PROP_REPOSITORY_CREATED = "org.eclipse.emf.cdo.server.db.repositoryCreated"; //$NON-NLS-1$ + + private static final String PROP_REPOSITORY_STOPPED = "org.eclipse.emf.cdo.server.db.repositoryStopped"; //$NON-NLS-1$ + + private static final String PROP_NEXT_LOCAL_CDOID = "org.eclipse.emf.cdo.server.db.nextLocalCDOID"; //$NON-NLS-1$ + + private static final String PROP_LAST_CDOID = "org.eclipse.emf.cdo.server.db.lastCDOID"; //$NON-NLS-1$ + + private static final String PROP_LAST_METAID = "org.eclipse.emf.cdo.server.db.lastMetaID"; //$NON-NLS-1$ + + private static final String PROP_LAST_BRANCHID = "org.eclipse.emf.cdo.server.db.lastBranchID"; //$NON-NLS-1$ + + private static final String PROP_LAST_COMMITTIME = "org.eclipse.emf.cdo.server.db.lastCommitTime"; //$NON-NLS-1$ + + private static final String PROP_GRACEFULLY_SHUT_DOWN = "org.eclipse.emf.cdo.server.db.gracefullyShutDown"; //$NON-NLS-1$ + private long creationTime; private boolean firstTime; @@ -376,7 +393,7 @@ public class DBStore extends LongIDStore implements IDBStore try { Set<IDBTable> createdTables = CDODBSchema.INSTANCE.create(dbAdapter, connection); - if (createdTables.contains(CDODBSchema.REPOSITORY)) + if (createdTables.contains(CDODBSchema.PROPERTIES)) { firstStart(connection); } @@ -397,131 +414,84 @@ public class DBStore extends LongIDStore implements IDBStore LifecycleUtil.activate(externalReferenceManager); } + @Override + protected void doDeactivate() throws Exception + { + LifecycleUtil.deactivate(metaDataManager); + metaDataManager = null; + + LifecycleUtil.deactivate(externalReferenceManager); + externalReferenceManager = null; + + LifecycleUtil.deactivate(mappingStrategy); + mappingStrategy = null; + + Map<String, String> map = new HashMap<String, String>(); + map.put(PROP_GRACEFULLY_SHUT_DOWN, Boolean.TRUE.toString()); + map.put(PROP_REPOSITORY_STOPPED, Long.toString(getRepository().getTimeStamp())); + map.put(PROP_NEXT_LOCAL_CDOID, Long.toString(getNextLocalObjectID())); + map.put(PROP_LAST_CDOID, Long.toString(getLastObjectID())); + map.put(PROP_LAST_METAID, Long.toString(getLastMetaID())); + map.put(PROP_LAST_BRANCHID, Integer.toString(getLastBranchID())); + map.put(PROP_LAST_COMMITTIME, Long.toString(getLastCommitTime())); + setPropertyValues(map); + + readerPool.dispose(); + writerPool.dispose(); + super.doDeactivate(); + } + protected void firstStart(Connection connection) { creationTime = getRepository().getTimeStamp(); firstTime = true; - DBUtil.insertRow(connection, dbAdapter, CDODBSchema.REPOSITORY, creationTime, 1, creationTime, 0, CRASHED_OID, - CRASHED_OID, CRASHED_OID, CRASHED_BRANCHID, CDORevision.UNSPECIFIED_DATE); + Map<String, String> map = new HashMap<String, String>(); + map.put(PROP_REPOSITORY_CREATED, Long.toString(creationTime)); + setPropertyValues(map); + OM.LOG.info(MessageFormat.format(Messages.getString("DBStore.8"), creationTime)); //$NON-NLS-1$ } protected void reStart(Connection connection) { - creationTime = DBUtil.selectMaximumLong(connection, CDODBSchema.REPOSITORY_CREATED); - long nextLocalObjectID = DBUtil.selectMaximumLong(connection, CDODBSchema.REPOSITORY_NEXT_LOCAL_CDOID); - long lastObjectID = DBUtil.selectMaximumLong(connection, CDODBSchema.REPOSITORY_LAST_CDOID); - long lastMetaID = DBUtil.selectMaximumLong(connection, CDODBSchema.REPOSITORY_LAST_METAID); - int lastBranchID = DBUtil.selectMaximumInt(connection, CDODBSchema.REPOSITORY_LAST_BRANCHID); - long lastCommitTime = DBUtil.selectMaximumLong(connection, CDODBSchema.REPOSITORY_LAST_COMMITTIME); + Set<String> names = new HashSet<String>(); + names.add(PROP_REPOSITORY_CREATED); + names.add(PROP_GRACEFULLY_SHUT_DOWN); - if (lastObjectID == CRASHED_OID) - { - OM.LOG.info(Messages.getString("DBStore.9")); //$NON-NLS-1$ - long[] result = mappingStrategy.repairAfterCrash(dbAdapter, connection); - nextLocalObjectID = result[0]; - lastObjectID = result[1]; - lastCommitTime = result[2]; - lastMetaID = DBUtil.selectMaximumLong(connection, CDODBSchema.PACKAGE_INFOS_META_UB); - lastBranchID = DBUtil.selectMaximumInt(connection, CDODBSchema.BRANCHES_ID); - OM.LOG.info(MessageFormat.format(Messages.getString("DBStore.10"), lastObjectID, lastMetaID)); //$NON-NLS-1$ - } + Map<String, String> map = getPropertyValues(names); + creationTime = Long.valueOf(map.get(PROP_REPOSITORY_CREATED)); - setNextLocalObjectID(nextLocalObjectID); - setLastObjectID(lastObjectID); - setLastMetaID(lastMetaID); - setLastBranchID(lastBranchID); - setLastCommitTime(lastCommitTime); - - StringBuilder builder = new StringBuilder(); - builder.append("UPDATE "); //$NON-NLS-1$ - builder.append(CDODBSchema.REPOSITORY); - builder.append(" SET "); //$NON-NLS-1$ - builder.append(CDODBSchema.REPOSITORY_STARTS); - builder.append("="); //$NON-NLS-1$ - builder.append(CDODBSchema.REPOSITORY_STARTS); - builder.append("+1, "); //$NON-NLS-1$ - builder.append(CDODBSchema.REPOSITORY_STARTED); - builder.append("="); //$NON-NLS-1$ - builder.append(getRepository().getTimeStamp()); - builder.append(", "); //$NON-NLS-1$ - builder.append(CDODBSchema.REPOSITORY_STOPPED); - builder.append("=0, "); //$NON-NLS-1$ - builder.append(CDODBSchema.REPOSITORY_LAST_CDOID); - builder.append("="); //$NON-NLS-1$ - builder.append(CRASHED_OID); - - String sql = builder.toString(); - int count = DBUtil.update(connection, sql); - if (count == 0) + if (map.containsKey(PROP_GRACEFULLY_SHUT_DOWN)) { - throw new DBException("No row updated in table " + CDODBSchema.REPOSITORY); //$NON-NLS-1$ + names.clear(); + names.add(PROP_NEXT_LOCAL_CDOID); + names.add(PROP_LAST_CDOID); + names.add(PROP_LAST_METAID); + names.add(PROP_LAST_BRANCHID); + names.add(PROP_LAST_COMMITTIME); + map = getPropertyValues(names); + + setNextLocalObjectID(Long.valueOf(map.get(PROP_NEXT_LOCAL_CDOID))); + setLastObjectID(Long.valueOf(map.get(PROP_LAST_CDOID))); + setLastMetaID(Long.valueOf(map.get(PROP_LAST_METAID))); + setLastBranchID(Integer.valueOf(map.get(PROP_LAST_BRANCHID))); + setLastCommitTime(Long.valueOf(map.get(PROP_LAST_COMMITTIME))); } - } - - @Override - protected void doDeactivate() throws Exception - { - Connection connection = null; - - LifecycleUtil.deactivate(metaDataManager); - metaDataManager = null; - - LifecycleUtil.deactivate(externalReferenceManager); - externalReferenceManager = null; - - try + else { - connection = getConnection(); - - LifecycleUtil.deactivate(mappingStrategy); - - StringBuilder builder = new StringBuilder(); - builder.append("UPDATE "); //$NON-NLS-1$ - builder.append(CDODBSchema.REPOSITORY); - builder.append(" SET "); //$NON-NLS-1$ - builder.append(CDODBSchema.REPOSITORY_STOPPED); - builder.append("="); //$NON-NLS-1$ - builder.append(getRepository().getTimeStamp()); - builder.append(", "); //$NON-NLS-1$ - builder.append(CDODBSchema.REPOSITORY_NEXT_LOCAL_CDOID); - builder.append("="); //$NON-NLS-1$ - builder.append(getNextLocalObjectID()); - builder.append(", "); //$NON-NLS-1$ - builder.append(CDODBSchema.REPOSITORY_LAST_CDOID); - builder.append("="); //$NON-NLS-1$ - builder.append(getLastObjectID()); - builder.append(", "); //$NON-NLS-1$ - builder.append(CDODBSchema.REPOSITORY_LAST_METAID); - builder.append("="); //$NON-NLS-1$ - builder.append(getLastMetaID()); - builder.append(", "); //$NON-NLS-1$ - builder.append(CDODBSchema.REPOSITORY_LAST_BRANCHID); - builder.append("="); //$NON-NLS-1$ - builder.append(getLastBranchID()); - builder.append(", "); //$NON-NLS-1$ - builder.append(CDODBSchema.REPOSITORY_LAST_COMMITTIME); - builder.append("="); //$NON-NLS-1$ - builder.append(getLastCommitTime()); - - String sql = builder.toString(); - int count = DBUtil.update(connection, sql); - if (count == 0) - { - throw new DBException("No row updated in table " + CDODBSchema.REPOSITORY); //$NON-NLS-1$ - } + OM.LOG.info(Messages.getString("DBStore.9")); //$NON-NLS-1$ + long[] result = mappingStrategy.repairAfterCrash(dbAdapter, connection); - connection.commit(); - } - finally - { - DBUtil.close(connection); + setNextLocalObjectID(result[0]); + setLastObjectID(result[1]); + setLastMetaID(DBUtil.selectMaximumLong(connection, CDODBSchema.PACKAGE_INFOS_META_UB)); + setLastBranchID(DBUtil.selectMaximumInt(connection, CDODBSchema.BRANCHES_ID)); + setLastCommitTime(result[2]); + OM.LOG.info(MessageFormat.format(Messages.getString("DBStore.10"), getLastObjectID(), getLastMetaID())); //$NON-NLS-1$ } - readerPool.dispose(); - writerPool.dispose(); - super.doDeactivate(); + removePropertyValues(Collections.singleton(PROP_GRACEFULLY_SHUT_DOWN)); } protected IExternalReferenceManager.Internal createExternalReferenceManager() diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java index b0d6257ea1..b3bd3afca0 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java @@ -858,7 +858,7 @@ public class DBStoreAccessor extends LongIDStoreAccessor implements IDBStoreAcce } stmt = connection.createStatement(); - stmt.executeQuery("SELECT 1 FROM " + CDODBSchema.REPOSITORY); //$NON-NLS-1$ + stmt.executeQuery("SELECT 1 FROM " + CDODBSchema.PROPERTIES); //$NON-NLS-1$ } catch (SQLException ex) { diff --git a/plugins/org.eclipse.emf.cdo.server/CDOServer.launch b/plugins/org.eclipse.emf.cdo.server/CDOServer.launch index acd99cfb20..85b408cc5b 100644 --- a/plugins/org.eclipse.emf.cdo.server/CDOServer.launch +++ b/plugins/org.eclipse.emf.cdo.server/CDOServer.launch @@ -4,7 +4,7 @@ <stringAttribute key="application" value="org.eclipse.emf.cdo.server.app"/> <booleanAttribute key="askclear" value="true"/> <booleanAttribute key="automaticAdd" value="false"/> -<booleanAttribute key="automaticValidate" value="false"/> +<booleanAttribute key="automaticValidate" value="true"/> <stringAttribute key="bootstrap" value=""/> <stringAttribute key="checked" value="org.eclipse.emf.cdo.server,org.eclipse.emf.cdo.server.db,org.eclipse.net4j,org.eclipse.net4j.db,org.eclipse.net4j.db.derby,org.eclipse.net4j.http.common,org.eclipse.net4j.http.server,org.eclipse.net4j.tcp,org.eclipse.net4j.util"/> <booleanAttribute key="clearConfig" value="true"/> @@ -29,8 +29,8 @@ <stringAttribute key="pde.version" value="3.3"/> <stringAttribute key="product" value="org.eclipse.sdk.ide"/> <stringAttribute key="selectedPlugin" value="org.eclipse.emf.cdo"/> -<stringAttribute key="selected_target_plugins" value="org.eclipse.osgi@-1:true,org.h2.jdbc@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.emf.common@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.mortbay.jetty.util@default:default,com.mysql.jdbc@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.apache.derby@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.emf.teneo@default:default,org.eclipse.emf.teneo.hibernate.mapper@default:default,org.eclipse.emf.teneo.annotations@default:default,org.postgresql.jdbc3@default:default,org.eclipse.emf.ecore@default:default,javax.servlet@default:default,org.eclipse.equinox.common@2:true,org.eclipse.core.filesystem@default:default,org.apache.commons.el@default:default,org.apache.ant@default:default,org.hibernate@default:default,org.apache.jasper@default:default,org.eclipse.osgi.services@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.team.core@default:default,org.hsqldb@default:default,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.app@default:default,org.eclipse.core.variables@default:default,org.eclipse.core.runtime@default:true,org.eclipse.equinox.http.servlet@default:default,javax.servlet.jsp@default:default,org.mortbay.jetty.server@default:default,org.apache.commons.logging@default:default,org.eclipse.emf.ecore.xmi@default:default"/> -<stringAttribute key="selected_workspace_plugins" value="org.eclipse.net4j.db.mysql@default:default,org.eclipse.net4j.util@default:default,org.eclipse.net4j.db@default:default,org.eclipse.emf.cdo.server.net4j@default:default,org.eclipse.emf.cdo.server@default:default,org.eclipse.net4j@default:default,org.eclipse.net4j.db.hsqldb@default:default,org.eclipse.emf.cdo.server.db@default:default,org.eclipse.net4j.tcp@default:default,org.eclipse.emf.cdo.server.hibernate@default:default,org.eclipse.net4j.db.postgresql@default:default,org.eclipse.emf.cdo.common@default:default,org.eclipse.net4j.db.h2@default:default,org.eclipse.net4j.db.derby@default:default,org.eclipse.emf.cdo@default:default,org.eclipse.emf.cdo.server.hibernate.teneo@default:default"/> +<stringAttribute key="selected_target_plugins" value="org.eclipse.core.resources@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.teneo.annotations@default:default,org.eclipse.ant.core@default:default,org.eclipse.team.core@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.contenttype@default:default,org.postgresql.jdbc3@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.equinox.http.servlet@default:default,org.apache.commons.logging@default:default,org.mortbay.jetty.server@default:default,org.eclipse.core.runtime@default:true,org.mortbay.jetty.util@default:default,org.eclipse.equinox.app@default:default,org.h2@default:default,org.eclipse.equinox.http.jetty@default:default,org.hsqldb@default:default,org.apache.ant@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.apache.jasper@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.resources.win32.x86@default:false,org.apache.commons.el@default:default,org.apache.derby@default:default,org.eclipse.core.variables@default:default,org.eclipse.emf.teneo.hibernate.mapper@default:default,javax.servlet@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.http.registry@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.equinox.registry@default:default,javax.servlet.jsp@default:default,org.eclipse.emf.common@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.core.expressions@default:default,org.eclipse.emf.teneo@default:default,org.eclipse.core.jobs@default:default,org.hibernate@default:default,org.eclipse.core.filesystem@default:default,com.mysql.jdbc@default:default"/> +<stringAttribute key="selected_workspace_plugins" value="org.eclipse.net4j.db.postgresql@default:default,org.eclipse.net4j.tcp@default:default,org.eclipse.emf.cdo.server.net4j@default:default,org.eclipse.net4j.db.hsqldb@default:default,org.eclipse.net4j@default:default,org.eclipse.net4j.db.mysql@default:default,org.eclipse.net4j.util@default:default,org.eclipse.emf.cdo.server@default:default,org.eclipse.emf.cdo.common@default:default,org.eclipse.net4j.db@default:default,org.eclipse.emf.cdo.server.hibernate@default:default,org.eclipse.emf.cdo.server.hibernate.teneo@default:default,org.eclipse.net4j.db.derby@default:default,org.eclipse.emf.cdo@default:default,org.eclipse.net4j.db.h2@default:default,org.eclipse.emf.cdo.server.db@default:default"/> <booleanAttribute key="show_selected_only" value="false"/> <stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/> <booleanAttribute key="tracing" value="true"/> @@ -46,23 +46,23 @@ <mapEntry key="org.eclipse.ui/trace/contexts" value="false"/> <mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/> <mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/> -<mapEntry key="org.eclipse.jdt.core/debug" value="true"/> <mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/> +<mapEntry key="org.eclipse.jdt.core/debug" value="true"/> <mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/> <mapEntry key="org.eclipse.net4j.tcp/debug" value="true"/> <mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/> <mapEntry key="org.eclipse.emf.cdo.server/debug.repository" value="true"/> <mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/> <mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/> -<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/> <mapEntry key="org.eclipse.emf.cdo.common/debug.protocol" value="true"/> +<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/> <mapEntry key="org.eclipse.net4j.util/debug.lifecycle.dump" value="true"/> <mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/> <mapEntry key="org.eclipse.emf.cdo/debug.util" value="true"/> <mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/> <mapEntry key="org.eclipse.team.core/refreshjob" value="false"/> -<mapEntry key="org.eclipse.ui/debug" value="false"/> <mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/> +<mapEntry key="org.eclipse.ui/debug" value="false"/> <mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/> <mapEntry key="org.eclipse.pde.core/classpath" value="false"/> <mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/> @@ -72,8 +72,8 @@ <mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/> <mapEntry key="org.eclipse.osgi/trace/activation" value="false"/> <mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/> -<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/> <mapEntry key="org.eclipse.team.core/threading" value="false"/> +<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/> <mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/> <mapEntry key="org.eclipse.ui/trace/graphics" value="false"/> @@ -86,14 +86,14 @@ <mapEntry key="org.eclipse.debug.ui/debug" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/> <mapEntry key="org.eclipse.help.base/debug/search" value="false"/> -<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/> <mapEntry key="org.eclipse.pde.build/debug" value="false"/> +<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/> <mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/> <mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/> <mapEntry key="org.eclipse.update.core/debug/type" value="false"/> <mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/> -<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/> <mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/> +<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/> <mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/> <mapEntry key="org.eclipse.core.resources/refresh" value="false"/> <mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/> @@ -105,8 +105,8 @@ <mapEntry key="org.eclipse.ui/trace/handlers" value="false"/> <mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/> <mapEntry key="org.eclipse.net4j.buddies/debug" value="true"/> -<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/> <mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/> +<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/> <mapEntry key="org.eclipse.osgi/profile/startup" value="false"/> <mapEntry key="org.eclipse.core.jobs/jobs" value="false"/> <mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/> @@ -122,11 +122,11 @@ <mapEntry key="org.eclipse.net4j/debug.buffer" value="true"/> <mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/> <mapEntry key="org.eclipse.emf.cdo/debug.repository" value="true"/> -<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/> <mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/> +<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/> <mapEntry key="org.eclipse.emf.cdo.examples/debug" value="true"/> -<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/> <mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/> +<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/> <mapEntry key="org.eclipse.ui.ide/debug" value="false"/> <mapEntry key="org.eclipse.osgi/profile/debug" value="false"/> <mapEntry key="org.eclipse.pde.core/debug" value="true"/> @@ -135,17 +135,17 @@ <mapEntry key="org.eclipse.net4j.util/debug.registry" value="true"/> <mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/> <mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/> -<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/> -<mapEntry key="org.eclipse.emf.cdo/debug.object" value="true"/> <mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/> +<mapEntry key="org.eclipse.emf.cdo/debug.object" value="true"/> +<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/> <mapEntry key="org.eclipse.emf.cdo.server/debug.revision" value="true"/> <mapEntry key="org.eclipse.core.resources/strings" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/> <mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/> <mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/> -<mapEntry key="org.eclipse.core.resources/preferences" value="false"/> -<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/> <mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/> +<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/> +<mapEntry key="org.eclipse.core.resources/preferences" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/> <mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/> <mapEntry key="org.eclipse.jdt.core/debug/javamodel/cache" value="false"/> @@ -157,45 +157,45 @@ <mapEntry key="org.eclipse.ui/perf/part.activate" value="200"/> <mapEntry key="org.eclipse.update.core/debug" value="true"/> <mapEntry key="org.eclipse.osgi/debug/security" value="false"/> -<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/> <mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/> +<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/> <mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/> -<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/> -<mapEntry key="org.eclipse.net4j.db.hsqldb/debug" value="true"/> <mapEntry key="org.eclipse.net4j.jms.admin/debug.protocol" value="true"/> +<mapEntry key="org.eclipse.net4j.db.hsqldb/debug" value="true"/> +<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/> <mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/> -<mapEntry key="org.eclipse.core.resources/history" value="false"/> <mapEntry key="org.eclipse.emf.cdo.server/debug.store" value="true"/> +<mapEntry key="org.eclipse.core.resources/history" value="false"/> <mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/> -<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/> <mapEntry key="org.eclipse.pde.core/validation" value="false"/> +<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/> <mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/> <mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/> <mapEntry key="org.eclipse.core.runtime/debug" value="false"/> <mapEntry key="org.eclipse.equinox.preferences/set" value="false"/> <mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/> <mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/> -<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/> <mapEntry key="org.eclipse.emf.cdo/debug.protocol" value="true"/> +<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/> <mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/> <mapEntry key="org.eclipse.emf.cdo.common/perf.revision" value="true"/> <mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/> <mapEntry key="org.eclipse.emf.cdo.common/debug.model" value="true"/> <mapEntry key="org.eclipse.ui/perf/workbench.start" value="45000"/> -<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/> <mapEntry key="org.eclipse.emf.cdo.common/perf.revision.reading" value="true"/> +<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/> <mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/> <mapEntry key="org.eclipse.net4j/debug.connector" value="true"/> <mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/> <mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/> <mapEntry key="org.eclipse.core.resources/restore" value="false"/> <mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/> -<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/> <mapEntry key="org.eclipse.net4j.buddies.server/debug" value="true"/> +<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/> <mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/> -<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/> <mapEntry key="org.eclipse.osgi/debug/loader" value="false"/> +<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/> <mapEntry key="org.eclipse.osgi/resolver/grouping" value="false"/> <mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/> <mapEntry key="org.eclipse.net4j/debug.acceptor" value="true"/> @@ -222,8 +222,8 @@ <mapEntry key="org.eclipse.ui.intro.universal/trace/logPerformance" value="false"/> <mapEntry key="org.eclipse.help/debug/context" value="false"/> <mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/> -<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/> <mapEntry key="org.eclipse.emf.cdo/debug" value="true"/> +<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/> <mapEntry key="org.eclipse.emf.cdo.ui/debug" value="true"/> <mapEntry key="org.eclipse.net4j.examples/debug" value="true"/> <mapEntry key="org.eclipse.core.resources/build/needbuildstack" value="false"/> @@ -236,12 +236,12 @@ <mapEntry key="org.eclipse.emf.cdo.common/debug.revision" value="true"/> <mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/> <mapEntry key="org.eclipse.net4j.jms.server.jdbc/debug" value="true"/> -<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/> <mapEntry key="org.eclipse.core.resources/save" value="false"/> +<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/> <mapEntry key="org.eclipse.core.resources/contenttype" value="false"/> <mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/> -<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/> <mapEntry key="org.eclipse.emf.cdo.server/debug" value="true"/> +<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/> <mapEntry key="org.eclipse.osgi/debug/events" value="false"/> <mapEntry key="org.eclipse.ui/trace/commands" value="false"/> <mapEntry key="org.eclipse.equinox.preferences/get" value="false"/> @@ -258,25 +258,25 @@ <mapEntry key="org.eclipse.net4j.jms/debug" value="true"/> <mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/> <mapEntry key="org.eclipse.emf.cdo.server/debug.resource" value="true"/> -<mapEntry key="org.eclipse.net4j.debug/debug" value="true"/> <mapEntry key="org.eclipse.net4j.db.derby/debug.sql" value="true"/> +<mapEntry key="org.eclipse.net4j.debug/debug" value="true"/> <mapEntry key="org.eclipse.pde.core/cache" value="false"/> <mapEntry key="org.eclipse.emf.cdo/debug.transaction" value="true"/> <mapEntry key="org.eclipse.emf.cdo.server.db/debug" value="true"/> -<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/> <mapEntry key="org.eclipse.net4j/debug.selector" value="true"/> +<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/> <mapEntry key="org.eclipse.emf.cdo.common/perf" value="true"/> <mapEntry key="org.eclipse.jdt.ui/debug" value="true"/> -<mapEntry key="org.eclipse.net4j.db/debug.sql" value="true"/> <mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/> +<mapEntry key="org.eclipse.net4j.db/debug.sql" value="true"/> <mapEntry key="org.eclipse.ui/perf/part.input" value="200"/> <mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/> <mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/> <mapEntry key="org.eclipse.osgi/debug/messageBundles" value="false"/> <mapEntry key="org.eclipse.core.resources/build/invoking" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/javadelta/verbose" value="false"/> -<mapEntry key="org.eclipse.net4j.fileshare.ui/debug" value="true"/> <mapEntry key="org.eclipse.net4j.util/debug.concurrency" value="true"/> +<mapEntry key="org.eclipse.net4j.fileshare.ui/debug" value="true"/> <mapEntry key="org.eclipse.core.resources/save/tree" value="false"/> <mapEntry key="org.eclipse.ui/debug/contributions" value="false"/> <mapEntry key="org.eclipse.update.core/debug/warning" value="false"/> @@ -284,20 +284,20 @@ <mapEntry key="org.eclipse.jdt.core.manipulation/debug" value="true"/> <mapEntry key="org.eclipse.emf.cdo.common/perf.revision.writing" value="true"/> <mapEntry key="org.eclipse.net4j.jms.admin/debug" value="true"/> -<mapEntry key="org.eclipse.net4j.db.derby/debug" value="true"/> <mapEntry key="org.eclipse.emf.cdo/debug.model" value="true"/> +<mapEntry key="org.eclipse.net4j.db.derby/debug" value="true"/> <mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/> -<mapEntry key="org.eclipse.help/debug/search" value="false"/> <mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/> +<mapEntry key="org.eclipse.help/debug/search" value="false"/> <mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/> -<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/> <mapEntry key="org.eclipse.ui/perf/part.create" value="800"/> +<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/> <mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/> <mapEntry key="org.eclipse.team.core/streams" value="false"/> <mapEntry key="org.eclipse.emf.cdo.common/debug" value="true"/> <mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/> -<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/> <mapEntry key="org.eclipse.net4j.ui/debug" value="true"/> +<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/> <mapEntry key="org.eclipse.ui/experimental/menus" value="false"/> <mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/> <mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/> @@ -314,15 +314,15 @@ <mapEntry key="org.eclipse.ui.workbench/debug" value="false"/> <mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/> <mapEntry key="org.eclipse.osgi/debug/filter" value="false"/> -<mapEntry key="org.eclipse.debug.core/debug" value="false"/> <mapEntry key="org.eclipse.net4j.buddies.common/debug" value="true"/> +<mapEntry key="org.eclipse.debug.core/debug" value="false"/> <mapEntry key="org.eclipse.core.resources/debug" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/> -<mapEntry key="org.eclipse.ui.browser/debug" value="false"/> <mapEntry key="org.eclipse.emf.cdo.server/debug.protocol" value="true"/> +<mapEntry key="org.eclipse.ui.browser/debug" value="false"/> <mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/> -<mapEntry key="org.eclipse.net4j.jms.server/debug.protocol" value="true"/> <mapEntry key="org.eclipse.update.core/debug/web" value="false"/> +<mapEntry key="org.eclipse.net4j.jms.server/debug.protocol" value="true"/> <mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/> <mapEntry key="org.eclipse.help/debug" value="true"/> <mapEntry key="org.eclipse.core.runtime/perf" value="false"/> @@ -334,10 +334,10 @@ <mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/> <mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/> <mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/> -<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/> <mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/> -<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/> +<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/> <mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/> +<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/> <mapEntry key="org.eclipse.emf.cdo/debug.resource" value="true"/> <mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/> <mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/> @@ -354,8 +354,8 @@ <mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/> <mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/> <mapEntry key="org.eclipse.update.configurator/debug" value="false"/> -<mapEntry key="org.eclipse.help.ui/debug" value="true"/> <mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/> +<mapEntry key="org.eclipse.help.ui/debug" value="true"/> <mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/> <mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/> </mapAttribute> diff --git a/plugins/org.eclipse.net4j.db.derby/src/org/eclipse/net4j/db/derby/DerbyAdapter.java b/plugins/org.eclipse.net4j.db.derby/src/org/eclipse/net4j/db/derby/DerbyAdapter.java index 83e2b904ae..d97d0d76c1 100644 --- a/plugins/org.eclipse.net4j.db.derby/src/org/eclipse/net4j/db/derby/DerbyAdapter.java +++ b/plugins/org.eclipse.net4j.db.derby/src/org/eclipse/net4j/db/derby/DerbyAdapter.java @@ -4,7 +4,7 @@ * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html - * + * * Contributors: * Eike Stepper - initial API and implementation */ @@ -14,8 +14,6 @@ import org.eclipse.net4j.db.DBType; import org.eclipse.net4j.db.ddl.IDBField; import org.eclipse.net4j.spi.db.DBAdapter; -import java.util.StringTokenizer; - /** * @author Eike Stepper * @since 2.0 @@ -70,61 +68,8 @@ public abstract class DerbyAdapter extends DBAdapter return super.getTypeName(field); } - @Override - public void appendValue(StringBuilder builder, IDBField field, Object value) - { - Object newValue = value; - if (value instanceof Boolean) - { - newValue = (Boolean)value ? 1 : 0; - } - else if (value instanceof String) - { - // Derby just adds one additional single quote for a single quote - String str = (String)value; - StringTokenizer tokenizer = new StringTokenizer(str, "\'", true); // split on single quote //$NON-NLS-1$ - StringBuilder newValueBuilder = new StringBuilder(); - - while (tokenizer.hasMoreTokens()) - { - String current = tokenizer.nextToken(); - if (current.length() == 0) - { - continue; - } - - if (current.length() > 1) // >1 -> can not be token -> normal string - { - newValueBuilder.append(current); - } - else - { // length == 1 - newValueBuilder.append(processEscape(current.charAt(0))); - } - } - - newValue = newValueBuilder.toString(); - } - else if (value instanceof Character) - { - newValue = processEscape((Character)value); - } - - super.appendValue(builder, field, newValue); - } - public String[] getReservedWords() { return RESERVED_WORDS; } - - private Object processEscape(char c) - { - if (c == '\'') // one single quote --> - { - return "\'\'"; // results two single quotes //$NON-NLS-1$ - } - - return c; // no escape character --> return as is - } } diff --git a/plugins/org.eclipse.net4j.db.h2/src/org/eclipse/net4j/db/h2/H2Adapter.java b/plugins/org.eclipse.net4j.db.h2/src/org/eclipse/net4j/db/h2/H2Adapter.java index ff26c5dca8..7327a3649a 100644 --- a/plugins/org.eclipse.net4j.db.h2/src/org/eclipse/net4j/db/h2/H2Adapter.java +++ b/plugins/org.eclipse.net4j.db.h2/src/org/eclipse/net4j/db/h2/H2Adapter.java @@ -19,7 +19,6 @@ import org.h2.jdbcx.JdbcDataSource; import javax.sql.DataSource; import java.sql.Driver; -import java.util.StringTokenizer; /** * @author Eike Stepper @@ -76,54 +75,4 @@ public class H2Adapter extends DBAdapter { return getSQL92ReservedWords(); } - - @Override - public void appendValue(StringBuilder builder, IDBField field, Object value) - { - Object newValue = value; - - if (value instanceof String) - { - // H2 just adds one additional single quote for a single quote - String str = (String)value; - StringTokenizer tokenizer = new StringTokenizer(str, "\'", true); // split on single quote //$NON-NLS-1$ - StringBuilder newValueBuilder = new StringBuilder(); - - while (tokenizer.hasMoreTokens()) - { - String current = tokenizer.nextToken(); - if (current.length() == 0) - { - continue; - } - - if (current.length() > 1) // >1 -> can not be token -> normal string - { - newValueBuilder.append(current); - } - else - { // length == 1 - newValueBuilder.append(processEscape(current.charAt(0))); - } - } - - newValue = newValueBuilder.toString(); - } - else if (value instanceof Character) - { - newValue = processEscape((Character)value); - } - - super.appendValue(builder, field, newValue); - } - - private Object processEscape(char c) - { - if (c == '\'') // one single quote --> - { - return "\'\'"; // results two single quotes //$NON-NLS-1$ - } - - return c; // no escape character --> return as is - } } diff --git a/plugins/org.eclipse.net4j.db.hsqldb/src/org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.java b/plugins/org.eclipse.net4j.db.hsqldb/src/org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.java index cfeaf8699d..11d4e8a285 100644 --- a/plugins/org.eclipse.net4j.db.hsqldb/src/org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.java +++ b/plugins/org.eclipse.net4j.db.hsqldb/src/org/eclipse/net4j/db/hsqldb/HSQLDBAdapter.java @@ -4,7 +4,7 @@ * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html - * + * * Contributors: * Eike Stepper - initial API and implementation */ @@ -19,7 +19,6 @@ import org.hsqldb.jdbcDriver; import javax.sql.DataSource; import java.sql.Driver; -import java.util.StringTokenizer; /** * @author Eike Stepper @@ -96,54 +95,4 @@ public class HSQLDBAdapter extends DBAdapter { return getSQL92ReservedWords(); } - - @Override - public void appendValue(StringBuilder builder, IDBField field, Object value) - { - Object newValue = value; - - if (value instanceof String) - { - // HSQLDB just adds one additional single quote for a single quote - String str = (String)value; - StringTokenizer tokenizer = new StringTokenizer(str, "\'", true); // split on single quote //$NON-NLS-1$ - StringBuilder newValueBuilder = new StringBuilder(); - - while (tokenizer.hasMoreTokens()) - { - String current = tokenizer.nextToken(); - if (current.length() == 0) - { - continue; - } - - if (current.length() > 1) // >1 -> can not be token -> normal string - { - newValueBuilder.append(current); - } - else - { // length == 1 - newValueBuilder.append(processEscape(current.charAt(0))); - } - } - - newValue = newValueBuilder.toString(); - } - else if (value instanceof Character) - { - newValue = processEscape((Character)value); - } - - super.appendValue(builder, field, newValue); - } - - private Object processEscape(char c) - { - if (c == '\'') // one single quote --> - { - return "\'\'"; // results two single quotes //$NON-NLS-1$ - } - - return c; // no escape character --> return as is - } } diff --git a/plugins/org.eclipse.net4j.db.mysql/src/org/eclipse/net4j/db/mysql/MYSQLAdapter.java b/plugins/org.eclipse.net4j.db.mysql/src/org/eclipse/net4j/db/mysql/MYSQLAdapter.java index 28f2bf6701..829737e4f3 100644 --- a/plugins/org.eclipse.net4j.db.mysql/src/org/eclipse/net4j/db/mysql/MYSQLAdapter.java +++ b/plugins/org.eclipse.net4j.db.mysql/src/org/eclipse/net4j/db/mysql/MYSQLAdapter.java @@ -4,7 +4,7 @@ * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html - * + * * Contributors: * Eike Stepper - initial API and implementation */ @@ -21,7 +21,6 @@ import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; import javax.sql.DataSource; import java.sql.SQLException; -import java.util.StringTokenizer; /** * @author Eike Stepper @@ -140,59 +139,4 @@ public class MYSQLAdapter extends DBAdapter return super.isTypeIndexable(type); } } - - @Override - public void appendValue(StringBuilder builder, IDBField field, Object value) - { - Object newValue = value; - - if (value instanceof String) - { - // MySQL does Java-Style backslash-escaping - String str = (String)value; - StringTokenizer st = new StringTokenizer(str, "\\\'", true); // split on backslash or single quote //$NON-NLS-1$ - StringBuilder newValueBuilder = new StringBuilder(); - - while (st.hasMoreTokens()) - { - String current = st.nextToken(); - if (current.length() == 0) - { - continue; - } - - if (current.length() > 1) // >1 -> can not be token -> normal string - { - newValueBuilder.append(current); - } - else - { // length == 1 - newValueBuilder.append(processEscape(current.charAt(0))); - } - } - - newValue = newValueBuilder.toString(); - } - else if (value instanceof Character) - { - newValue = processEscape((Character)value); - } - - super.appendValue(builder, field, newValue); - } - - private Object processEscape(char c) - { - if (c == '\\') // one backslash --> - { - return "\\\\"; // results in two backslashes //$NON-NLS-1$ - } - - if (c == '\'') // one single quote --> - { - return "\\'"; // results in backslash+single quote //$NON-NLS-1$ - } - - return c; // no escape character --> return as is - } } diff --git a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/DBUtil.java b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/DBUtil.java index 9f33989f61..afe8b75035 100644 --- a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/DBUtil.java +++ b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/DBUtil.java @@ -442,41 +442,6 @@ public final class DBUtil } } - public static void insertRow(Connection connection, IDBAdapter dbAdapter, IDBTable table, Object... args) - throws DBException - { - IDBField[] fields = table.getFields(); - if (fields.length != args.length) - { - throw new IllegalArgumentException("Wrong number of args for " + table + ": " + Arrays.asList(args) + " --> " //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - + Arrays.asList(table.getFields())); - } - - StringBuilder builder = new StringBuilder(); - builder.append("INSERT INTO "); //$NON-NLS-1$ - builder.append(table); - builder.append(" VALUES ("); //$NON-NLS-1$ - - for (int i = 0; i < fields.length; i++) - { - if (i > 0) - { - builder.append(", "); //$NON-NLS-1$ - } - - dbAdapter.appendValue(builder, fields[i], args[i]); - } - - builder.append(")"); //$NON-NLS-1$ - String sql = builder.toString(); - - int count = update(connection, sql); - if (count == 0) - { - throw new DBException("No row inserted into table " + table); //$NON-NLS-1$ - } - } - public static int select(Connection connection, IDBRowHandler rowHandler, String where, IDBField... fields) throws DBException { diff --git a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/IDBAdapter.java b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/IDBAdapter.java index 962d14eff4..51a092cff4 100644 --- a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/IDBAdapter.java +++ b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/db/IDBAdapter.java @@ -4,14 +4,13 @@ * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html - * + * * Contributors: * Eike Stepper - initial API and implementation * Stefan Winkler - bug 289445 */ package org.eclipse.net4j.db; -import org.eclipse.net4j.db.ddl.IDBField; import org.eclipse.net4j.db.ddl.IDBTable; import org.eclipse.net4j.internal.db.DBAdapterRegistry; import org.eclipse.net4j.util.registry.IRegistry; @@ -61,8 +60,6 @@ public interface IDBAdapter */ public int getMaxFieldNameLength(); - public void appendValue(StringBuilder builder, IDBField field, Object value); - public boolean isTypeIndexable(DBType type); /** diff --git a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java index d45141499a..4d4564c784 100644 --- a/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java +++ b/plugins/org.eclipse.net4j.db/src/org/eclipse/net4j/spi/db/DBAdapter.java @@ -220,11 +220,6 @@ public abstract class DBAdapter implements IDBAdapter return 128; } - public void appendValue(StringBuilder builder, IDBField field, Object value) - { - field.appendValue(builder, value); - } - public boolean isTypeIndexable(DBType type) { switch (type) |