/**\r
* Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
* http://www.e-taxonomy.eu\r
-* \r
+*\r
* The contents of this file are subject to the Mozilla Public License Version 1.1\r
* See LICENSE.TXT at the top of this package for the full license terms.\r
*/\r
\r
import java.util.Arrays;\r
import java.util.List;\r
+import java.util.UUID;\r
\r
import org.apache.log4j.Logger;\r
\r
+import eu.etaxonomy.cdm.api.application.CdmApplicationController;\r
+import eu.etaxonomy.cdm.api.service.config.CacheUpdaterConfigurator;\r
import eu.etaxonomy.cdm.app.common.CdmDestinations;\r
+import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;\r
import eu.etaxonomy.cdm.database.DbSchemaValidation;\r
import eu.etaxonomy.cdm.database.ICdmDataSource;\r
-import eu.etaxonomy.cdm.io.common.CacheUpdaterConfigurator;\r
+import eu.etaxonomy.cdm.io.api.application.CdmIoApplicationController;\r
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;\r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.cdm.model.reference.Reference;\r
+import eu.etaxonomy.cdm.io.common.ImportResult;\r
+import eu.etaxonomy.cdm.model.name.TaxonName;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
\r
\r
/**\r
* TODO add the following to a wiki page:\r
- * HINT: If you are about to import into a mysql data base running under windows and if you wish to dump and restore the resulting data bas under another operation systen \r
+ * HINT: If you are about to import into a mysql data base running under windows and if you wish to dump and restore the resulting data bas under another operation systen\r
* you must set the mysql system variable lower_case_table_names = 0 in order to create data base with table compatible names.\r
- * \r
- * \r
+ *\r
+ *\r
* @author a.mueller\r
*\r
*/\r
static final List<String> classListStrings = Arrays.asList(new String[]{\r
//IdentifiableEntity.class.getName(),\r
// IdentifiableEntity.class.getName(),\r
- TaxonNameBase.class.getName(),\r
+ TaxonName.class.getName(),\r
TaxonBase.class.getName()\r
});\r
//new ArrayList<Class<? extends IdentifiableEntity>>();\r
\r
-// **************** ALL ********************* \r
+// **************** ALL *********************\r
\r
// //DescriptionBase\r
// static final boolean doTaxonDescription = true;\r
// static final boolean doSpecimenDescription = true;\r
// static final boolean doNameDescription = true;\r
-// \r
+//\r
// //AgentBase\r
// static final boolean doPerson = true;\r
// static final boolean doTeam = true;\r
// static final boolean doInstitution = true;\r
-// \r
+//\r
// //MediaEntities\r
// static final boolean doCollection = true;\r
// static final boolean doReferenceBase = true;\r
-// \r
+//\r
// //SpecimenOrObservationBase\r
// static final boolean doFieldObservation = true;\r
// static final boolean doDeriveUnit = true;\r
// static final boolean doLivingBeing = true;\r
// static final boolean doObservation = true;\r
// static final boolean doSpecimen = true;\r
-// \r
+//\r
// //Media\r
// static final boolean doMedia = true;\r
// static final boolean doMediaKey = true;\r
// static final boolean doFigure = true;\r
// static final boolean doPhylogenticTree = true;\r
-// \r
-// \r
+//\r
+//\r
// //TaxonBase\r
// static final boolean doTaxon = true;\r
// static final boolean doSynonym = true;\r
-// \r
+//\r
// static final boolean doSequence = true;\r
-// \r
+//\r
// //Names\r
// static final boolean doViralName = true;\r
// static final boolean doNonViralName = true;\r
// static final boolean doBotanicalName = true;\r
// static final boolean doZoologicalName = true;\r
// static final boolean doCultivarPlantName = true;\r
-// \r
+//\r
// static final boolean doClassification = true;\r
-// \r
+//\r
// //TermBase\r
// static final boolean doFeatureTree = true;\r
// static final boolean doPolytomousKey = true;\r
-// \r
+//\r
// static final boolean doTermVocabulary = true;\r
// static final boolean doDefinedTermBase = true;\r
-// \r
- \r
- \r
- private boolean doInvoke(ICdmDataSource destination){\r
- boolean success = true;\r
+//\r
+\r
+\r
+ private ImportResult doInvoke(ICdmDataSource destination){\r
+ ImportResult success = null;\r
\r
CacheUpdaterConfigurator config;\r
try {\r
- config = CacheUpdaterConfigurator.NewInstance(destination, classListStrings);\r
- \r
+ config = CacheUpdaterConfigurator.NewInstance(classListStrings);\r
+\r
// invoke import\r
- CdmDefaultImport<CacheUpdaterConfigurator> myImport = new CdmDefaultImport<CacheUpdaterConfigurator>();\r
- success &= myImport.invoke(config);\r
- String successString = success ? "successful" : " with errors ";\r
+ CdmApplicationController appCtrInit = CdmIoApplicationController.NewInstance(destination, DbSchemaValidation.VALIDATE, false);\r
+ appCtrInit.authenticate("admin", "kups366+RU");\r
+ UUID monitUuid = appCtrInit.getLongRunningTasksService().monitLongRunningTask(config);\r
+ IRemotingProgressMonitor monitor = appCtrInit.getProgressMonitorService().getRemotingMonitor(monitUuid);\r
+ while(monitor != null && (!monitor.isCanceled() || !monitor.isDone() || !monitor.isFailed())) {\r
+ try {\r
+ Thread.sleep(10);\r
+ } catch (InterruptedException e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ }\r
+ logger.info("Waiting for monitered work to start ..");\r
+ monitor = appCtrInit.getProgressMonitorService().getRemotingMonitor(monitUuid);\r
+ }\r
+ \r
+ \r
+ String successString = monitor == null || monitor.isDone() ? "successful" : " with errors ";\r
System.out.println("End updating caches for "+ destination.getDatabase() + "..." + successString);\r
return success;\r
} catch (ClassNotFoundException e) {\r
logger.error(e);\r
- return false;\r
- } \r
+ success = new ImportResult();\r
+ success.addException(e);\r
+ return success;\r
+ }\r
}\r
- \r
+\r
/**\r
* @param args\r
*/\r
public static void main(String[] args) {\r
ICdmDataSource destination = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmDestination;\r
- \r
+\r
System.out.println("Start updating caches for "+ destination.getDatabase() + "...");\r
CichorieaeCacheUpdater me = new CichorieaeCacheUpdater();\r
me.doInvoke(destination);\r
- \r
+\r
}\r
\r
}\r