2 * Copyright (C) 2008 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 package eu
.etaxonomy
.cdm
.io
.common
;
8 import org
.apache
.logging
.log4j
.LogManager
;
9 import org
.apache
.logging
.log4j
.Logger
;
10 import org
.springframework
.core
.io
.ClassPathResource
;
12 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationController
;
13 import eu
.etaxonomy
.cdm
.api
.application
.ICdmApplication
;
14 import eu
.etaxonomy
.cdm
.database
.DbSchemaValidation
;
15 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
16 import eu
.etaxonomy
.cdm
.io
.api
.application
.CdmIoApplicationController
;
19 * This is an exporter that invokes the application aware defaultExport when
22 * @author a.babadshanjan
25 public class CdmDefaultIOBase
<T
extends IIoConfigurator
> {
27 @SuppressWarnings("unused")
28 private static final Logger logger
= LogManager
.getLogger();
30 public static final String DEFAULT_IO_APPLICATION_CONTEXT_RESOURCE
= CdmIoApplicationController
.DEFAULT_APPLICATION_CONTEXT_RESOURCE
;
32 protected ICdmApplication cdmApp
= null;
35 * Creates a new {@link CdmApplicationController} if it does not exist yet
36 * or if createNew is <ocde>true</code>
38 protected boolean startApplicationController(IIoConfigurator config
,
39 ICdmDataSource cdmSource
, boolean omitTermLoading
, boolean createNew
) {
40 if (config
.getCdmAppController() != null) {
41 this.cdmApp
= config
.getCdmAppController();
43 DbSchemaValidation schemaValidation
= config
.getDbSchemaValidation();
44 if (this instanceof CdmDefaultExport
) {
45 if (schemaValidation
.equals(DbSchemaValidation
.CREATE
)
46 || schemaValidation
.equals(DbSchemaValidation
.CREATE_DROP
)) {
47 throw new IllegalArgumentException(
48 "The export may not run with DbSchemaValidation.CREATE or DbSchemaValidation.CREATE_DROP as this value deletes the source database");
52 if (createNew
== true || cdmApp
== null) {
53 ClassPathResource applicationContextResource
= new ClassPathResource(DEFAULT_IO_APPLICATION_CONTEXT_RESOURCE
);
54 cdmApp
= CdmApplicationController
.NewInstance(applicationContextResource
, cdmSource
, schemaValidation
,
55 config
.getHibernateConfig(), omitTermLoading
, config
.getProgressMonitor());
67 * Returns the {@link CdmApplicationController}. This is null if invoke()
68 * has not been called yet and if the controller has not been set manually
73 public ICdmApplication
getCdmAppController() {
77 * @see #getCdmAppController()
79 public void setCdmAppController(ICdmApplication cdmApp
) {