Author: doogie
Date: Tue Jun 1 22:01:05 2010 New Revision: 950279 URL: http://svn.apache.org/viewvc?rev=950279&view=rev Log: Revert wrongly committed 950256 Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/concurrent/DependencyPool.java ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/concurrent/DependencyPool.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/concurrent/DependencyPool.java?rev=950279&r1=950278&r2=950279&view=diff ============================================================================== --- ofbiz/trunk/framework/base/src/org/ofbiz/base/concurrent/DependencyPool.java (original) +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/concurrent/DependencyPool.java Tue Jun 1 22:01:05 2010 @@ -21,12 +21,9 @@ import java.util.concurrent.locks.Reentr import org.ofbiz.base.lang.LockedBy; import org.ofbiz.base.lang.SourceMonitored; -import org.ofbiz.base.util.Debug; @SourceMonitored public class DependencyPool<K, I extends DependencyPool.Item<I, K, V>, V> { - public static final String module = DependencyPool.class.getName(); - private final Executor executor; private final ConcurrentMap<K, I> allItems = new ConcurrentHashMap<K, I>(); private final ConcurrentMap<K, Future<V>> results = new ConcurrentHashMap<K, Future<V>>(); @@ -87,14 +84,10 @@ public class DependencyPool<K, I extends public boolean await() throws InterruptedException { submitLock.lock(); try { - Debug.logInfo("a outstanding.size=" + outstanding.size(), module); - Debug.logInfo("a pending.size=" + pending.size(), module); submitWork(); while (!outstanding.isEmpty()) { submitCondition.await(); } - Debug.logInfo("b outstanding.size=" + outstanding.size(), module); - Debug.logInfo("b pending.size=" + pending.size(), module); return pending.isEmpty(); } finally { submitLock.unlock(); Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java?rev=950279&r1=950278&r2=950279&view=diff ============================================================================== --- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java (original) +++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java Tue Jun 1 22:01:05 2010 @@ -47,7 +47,6 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.ofbiz.base.util.Debug; -import org.ofbiz.base.util.UtilMisc; import org.ofbiz.base.util.UtilTimer; import org.ofbiz.base.util.UtilValidate; import org.ofbiz.base.util.UtilXml; @@ -64,7 +63,6 @@ import org.ofbiz.entity.model.ModelKeyMa import org.ofbiz.entity.model.ModelRelation; import org.ofbiz.entity.model.ModelViewEntity; import org.ofbiz.entity.transaction.TransactionUtil; -import org.ofbiz.base.concurrent.DependencyPool; import org.ofbiz.base.concurrent.ExecutionPool; /** @@ -186,7 +184,7 @@ public class DatabaseUtil { return result; } - private class TableFuture extends DBFuture<TableFuture> implements DependencyPool.Item<TableFuture, String, TableFuture> { + private class TableFuture extends DBFuture<TableFuture> { private final int curEnt; private final int totalEnt; private final ModelEntity entity; @@ -204,18 +202,6 @@ public class DatabaseUtil { this.addMissing = addMissing; } - public String getKey() { - return "table#" + entity.getTableName(datasourceInfo); - } - - public Collection<String> getDependencies() { - return Collections.emptyList(); - } - - public Collection<String> getProvides() { - return Collections.emptyList(); - } - public TableFuture call() { String entMessage = "(" + timer.timeSinceLast() + "ms) Checking #" + curEnt + "/" + totalEnt + " Entity " + entity.getEntityName() + " with table " + entity.getTableName(datasourceInfo); @@ -416,7 +402,7 @@ public class DatabaseUtil { } } - private class ForeignKeyIndexFuture extends CountingFuture<ForeignKeyIndexFuture> implements DependencyPool.Item<ForeignKeyIndexFuture, String, ForeignKeyIndexFuture> { + private class ForeignKeyIndexFuture extends CountingFuture<ForeignKeyIndexFuture> { private final ModelEntity entity; private final int constraintNameClipLength; @@ -426,25 +412,13 @@ public class DatabaseUtil { this.constraintNameClipLength = constraintNameClipLength; } - public String getKey() { - return "fk-index#" + entity.getTableName(datasourceInfo); - } - - public Collection<String> getDependencies() { - return UtilMisc.toList("table#" + entity.getTableName(datasourceInfo)); - } - - public Collection<String> getProvides() { - return Collections.emptyList(); - } - public ForeignKeyIndexFuture call() { count.addAndGet(createForeignKeyIndices(entity, constraintNameClipLength, messages)); return this; } } - private class DeclaredIndexFuture extends CountingFuture<DeclaredIndexFuture> implements DependencyPool.Item<DeclaredIndexFuture, String, DeclaredIndexFuture> { + private class DeclaredIndexFuture extends CountingFuture<DeclaredIndexFuture> { private final ModelEntity entity; protected DeclaredIndexFuture(AtomicInteger count, ModelEntity entity) { @@ -452,19 +426,6 @@ public class DatabaseUtil { this.entity = entity; } - public String getKey() { - return "declared-index#" + entity.getTableName(datasourceInfo); - } - - public Collection<String> getDependencies() { - String tableName = entity.getTableName(datasourceInfo); - return UtilMisc.toList("table#" + tableName, "fk-index#" + tableName); - } - - public Collection<String> getProvides() { - return Collections.emptyList(); - } - public DeclaredIndexFuture call() { count.addAndGet(createDeclaredIndices(entity, messages)); return this; @@ -516,11 +477,9 @@ public class DatabaseUtil { int curEnt = 0; int totalEnt = modelEntityList.size(); List<ModelEntity> entitiesAdded = FastList.newInstance(); - List<TableFuture> tableFutures = FastList.newInstance(); + List<Future<TableFuture>> tableFutureFutures = FastList.newInstance(); ScheduledExecutorService threadPool = ExecutionPool.getNewOptimalExecutor("Databaseutil"); - DependencyPool depPool = new DependencyPool(threadPool, 3); - Debug.logInfo("start of table creation", module); for (ModelEntity entity: modelEntityList) { curEnt++; @@ -532,44 +491,13 @@ public class DatabaseUtil { continue; } - TableFuture tf = new TableFuture(modelEntities, timer, tableNames, colInfo, curEnt, totalEnt, entity, checkPks, addMissing); - tableFutures.add(tf); - depPool.add(tf); + tableFutureFutures.add(threadPool.submit(new TableFuture(modelEntities, timer, tableNames, colInfo, curEnt, totalEnt, entity, checkPks, addMissing))); } - // for each newly added table, add fk indices - Debug.logInfo("start of fk indices", module); - List<ForeignKeyIndexFuture> fkIndicesFutures = FastList.newInstance(); - AtomicInteger totalFkIndices = new AtomicInteger(); - if (datasourceInfo.useFkIndices) { - for (ModelEntity curEntity: entitiesAdded) { - if (curEntity.getRelationsOneSize() > 0) { - ForeignKeyIndexFuture fkif = new ForeignKeyIndexFuture(totalFkIndices, curEntity, datasourceInfo.constraintNameClipLength); - fkIndicesFutures.add(fkif); - depPool.add(fkif); - } - } - } - // for each newly added table, add declared indexes - List<DeclaredIndexFuture> disFutures = FastList.newInstance(); - AtomicInteger totalDis = new AtomicInteger(); - if (datasourceInfo.useIndices) { - for (ModelEntity curEntity: entitiesAdded) { - if (curEntity.getIndexesSize() > 0) { - DeclaredIndexFuture dif = new DeclaredIndexFuture(totalDis, curEntity); - disFutures.add(dif); - depPool.add(dif); - } - } - } - - depPool.start(); - try { - depPool.await(); - } catch (InterruptedException e) { - Debug.logError(e, "Couldn't wait for dependency pool to finish while creating the database", module); - return; + for (TableFuture tableFuture: getAllFutures(tableFutureFutures)) { + tableFuture.updateData(messages, entitiesAdded); } + timer.timerString("After Individual Table/Column Check"); // -list all tables that do not have a corresponding entity for (String tableName: tableNames) { @@ -577,13 +505,17 @@ public class DatabaseUtil { Debug.logWarning(message, module); if (messages != null) messages.add(message); } - for (TableFuture tableFuture: tableFutures) { - tableFuture.updateData(messages, entitiesAdded); - } - timer.timerString("After Individual Table/Column Check"); + // for each newly added table, add fk indices if (datasourceInfo.useFkIndices) { - for (ForeignKeyIndexFuture fkIndicesFuture: fkIndicesFutures) { + List<Future<ForeignKeyIndexFuture>> fkIndicesFutureFutures = FastList.newInstance(); + AtomicInteger totalFkIndices = new AtomicInteger(); + for (ModelEntity curEntity: entitiesAdded) { + if (curEntity.getRelationsOneSize() > 0) { + fkIndicesFutureFutures.add(threadPool.submit(new ForeignKeyIndexFuture(totalFkIndices, curEntity, datasourceInfo.constraintNameClipLength))); + } + } + for (ForeignKeyIndexFuture fkIndicesFuture: getAllFutures(fkIndicesFutureFutures)) { fkIndicesFuture.updateData(messages); } if (totalFkIndices.get() > 0) Debug.logImportant("==== TOTAL Foreign Key Indices Created: " + totalFkIndices.get(), module); @@ -600,7 +532,14 @@ public class DatabaseUtil { // for each newly added table, add declared indexes if (datasourceInfo.useIndices) { - for (DeclaredIndexFuture disFuture: disFutures) { + List<Future<DeclaredIndexFuture>> disFutureFutures = FastList.newInstance(); + AtomicInteger totalDis = new AtomicInteger(); + for (ModelEntity curEntity: entitiesAdded) { + if (curEntity.getIndexesSize() > 0) { + disFutureFutures.add(threadPool.submit(new DeclaredIndexFuture(totalDis, curEntity))); + } + } + for (DeclaredIndexFuture disFuture: getAllFutures(disFutureFutures)) { disFuture.updateData(messages); } if (totalDis.get() > 0) Debug.logImportant("==== TOTAL Declared Indices Created: " + totalDis.get(), module); |
Free forum by Nabble | Edit this page |