Revision 9b853065
Added by Niels Hoffmann almost 14 years ago
.gitattributes | ||
---|---|---|
1233 | 1233 |
cdmlib-commons/src/main/java/eu/etaxonomy/cdm/common/ExcelUtils.java -text |
1234 | 1234 |
cdmlib-commons/src/main/java/eu/etaxonomy/cdm/common/FileCopy.java -text |
1235 | 1235 |
cdmlib-commons/src/main/java/eu/etaxonomy/cdm/common/IProgressMonitor.java -text |
1236 |
cdmlib-commons/src/main/java/eu/etaxonomy/cdm/common/ProgressMonitorBase.java -text svneol=unset#text/plain |
|
1236 | 1237 |
cdmlib-commons/src/main/java/eu/etaxonomy/cdm/common/ResultWrapper.java -text |
1237 | 1238 |
cdmlib-commons/src/main/java/eu/etaxonomy/cdm/common/Tree.java -text |
1238 | 1239 |
cdmlib-commons/src/main/java/eu/etaxonomy/cdm/common/TreeNode.java -text |
... | ... | |
2523 | 2524 |
cdmlib-print/build.properties -text |
2524 | 2525 |
cdmlib-print/pom.xml -text |
2525 | 2526 |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/AbstractXmlEntityFactory.java -text |
2526 |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/IHarvestObserver.java -text |
|
2527 | 2527 |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/IXMLElements.java -text |
2528 | 2528 |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/IXMLEntityFactory.java -text |
2529 | 2529 |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/LocalXMLEntityFactory.java -text |
2530 |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/NotificationMediator.java -text |
|
2531 | 2530 |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/PublishConfigurator.java -text |
2532 | 2531 |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/Publisher.java -text |
2533 | 2532 |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/RemoteXMLEntityFactory.java -text |
cdmlib-commons/src/main/java/eu/etaxonomy/cdm/common/IProgressMonitor.java | ||
---|---|---|
117 | 117 |
|
118 | 118 |
/** |
119 | 119 |
* Notifies about a warning |
120 |
* @param warning
|
|
120 |
* @param message
|
|
121 | 121 |
*/ |
122 |
public void warning(String warning);
|
|
122 |
public void warning(String message);
|
|
123 | 123 |
|
124 | 124 |
/** |
125 | 125 |
* Notifies about a warning that was caused by an exception. |
126 |
* @param string
|
|
127 |
* @param exception
|
|
126 |
* @param message
|
|
127 |
* @param throwable
|
|
128 | 128 |
*/ |
129 |
public void warning(String string, Exception exeption);
|
|
129 |
public void warning(String message, Throwable throwable);
|
|
130 | 130 |
|
131 | 131 |
} |
132 | 132 |
|
cdmlib-commons/src/main/java/eu/etaxonomy/cdm/common/ProgressMonitorBase.java | ||
---|---|---|
1 |
/** |
|
2 |
* |
|
3 |
*/ |
|
4 |
package eu.etaxonomy.cdm.common; |
|
5 |
|
|
6 |
/** |
|
7 |
* Empty default implementation |
|
8 |
* |
|
9 |
* @author n.hoffmann |
|
10 |
* |
|
11 |
*/ |
|
12 |
public class ProgressMonitorBase implements IProgressMonitor { |
|
13 |
|
|
14 |
/* (non-Javadoc) |
|
15 |
* @see eu.etaxonomy.cdm.common.IProgressMonitor#beginTask(java.lang.String, int) |
|
16 |
*/ |
|
17 |
@Override |
|
18 |
public void beginTask(String name, int totalWork) { |
|
19 |
// TODO Auto-generated method stub |
|
20 |
|
|
21 |
} |
|
22 |
|
|
23 |
/* (non-Javadoc) |
|
24 |
* @see eu.etaxonomy.cdm.common.IProgressMonitor#done() |
|
25 |
*/ |
|
26 |
@Override |
|
27 |
public void done() { |
|
28 |
// TODO Auto-generated method stub |
|
29 |
|
|
30 |
} |
|
31 |
|
|
32 |
/* (non-Javadoc) |
|
33 |
* @see eu.etaxonomy.cdm.common.IProgressMonitor#isCanceled() |
|
34 |
*/ |
|
35 |
@Override |
|
36 |
public boolean isCanceled() { |
|
37 |
// TODO Auto-generated method stub |
|
38 |
return false; |
|
39 |
} |
|
40 |
|
|
41 |
/* (non-Javadoc) |
|
42 |
* @see eu.etaxonomy.cdm.common.IProgressMonitor#setCanceled(boolean) |
|
43 |
*/ |
|
44 |
@Override |
|
45 |
public void setCanceled(boolean value) { |
|
46 |
// TODO Auto-generated method stub |
|
47 |
|
|
48 |
} |
|
49 |
|
|
50 |
/* (non-Javadoc) |
|
51 |
* @see eu.etaxonomy.cdm.common.IProgressMonitor#setTaskName(java.lang.String) |
|
52 |
*/ |
|
53 |
@Override |
|
54 |
public void setTaskName(String name) { |
|
55 |
// TODO Auto-generated method stub |
|
56 |
|
|
57 |
} |
|
58 |
|
|
59 |
/* (non-Javadoc) |
|
60 |
* @see eu.etaxonomy.cdm.common.IProgressMonitor#subTask(java.lang.String) |
|
61 |
*/ |
|
62 |
@Override |
|
63 |
public void subTask(String name) { |
|
64 |
// TODO Auto-generated method stub |
|
65 |
|
|
66 |
} |
|
67 |
|
|
68 |
/* (non-Javadoc) |
|
69 |
* @see eu.etaxonomy.cdm.common.IProgressMonitor#worked(int) |
|
70 |
*/ |
|
71 |
@Override |
|
72 |
public void worked(int work) { |
|
73 |
// TODO Auto-generated method stub |
|
74 |
|
|
75 |
} |
|
76 |
|
|
77 |
/* (non-Javadoc) |
|
78 |
* @see eu.etaxonomy.cdm.common.IProgressMonitor#warning(java.lang.String) |
|
79 |
*/ |
|
80 |
@Override |
|
81 |
public void warning(String message) { |
|
82 |
// TODO Auto-generated method stub |
|
83 |
|
|
84 |
} |
|
85 |
|
|
86 |
/* (non-Javadoc) |
|
87 |
* @see eu.etaxonomy.cdm.common.IProgressMonitor#warning(java.lang.String, java.lang.Exception) |
|
88 |
*/ |
|
89 |
@Override |
|
90 |
public void warning(String message, Throwable throwable) { |
|
91 |
// TODO Auto-generated method stub |
|
92 |
|
|
93 |
} |
|
94 |
|
|
95 |
} |
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/CdmApplicationAwareDefaultImport.java | ||
---|---|---|
19 | 19 |
import org.springframework.stereotype.Component; |
20 | 20 |
|
21 | 21 |
import eu.etaxonomy.cdm.api.service.IService; |
22 |
import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportState; |
|
23 | 22 |
import eu.etaxonomy.cdm.model.agent.Person; |
24 | 23 |
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase; |
25 | 24 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
... | ... | |
145 | 144 |
} |
146 | 145 |
|
147 | 146 |
ReferenceBase sourceReference = config.getSourceReference(); |
148 |
logger.info("Start import from Source '"+ config.getSourceNameString() + "' to destination '" + config.getDestinationNameString() + "'"); |
|
147 |
String message = "Start import from Source '"+ config.getSourceNameString() + "' to destination '" + config.getDestinationNameString() + "'"; |
|
148 |
logger.info(message); |
|
149 |
config.updateProgress(message); |
|
149 | 150 |
|
150 | 151 |
ImportStateBase state = config.getNewState(); |
151 | 152 |
state.initialize(config); |
... | ... | |
189 | 190 |
// |
190 | 191 |
// } |
191 | 192 |
|
192 |
|
|
193 |
logger.info("End import from source '" + config.getSourceNameString() |
|
194 |
+ "' to destination '" + config.getDestinationNameString() + "'"+ |
|
195 |
(result? "(successful)":"(with errors)")) ; |
|
193 |
message = "End import from source '" + config.getSourceNameString() |
|
194 |
+ "' to destination '" + config.getDestinationNameString() + "'"+ |
|
195 |
(result? "(successful)":"(with errors)"); |
|
196 |
logger.info(message) ; |
|
197 |
config.updateProgress(message); |
|
196 | 198 |
return result; |
197 | 199 |
} |
198 | 200 |
|
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/CdmIoBase.java | ||
---|---|---|
44 | 44 |
logger.warn("No invoke for " + ioName + " (ignored)"); |
45 | 45 |
return true; |
46 | 46 |
}else{ |
47 |
state.getConfig().updateProgress("Invoking " + ioName); |
|
47 | 48 |
return doInvoke(state); |
48 | 49 |
} |
49 | 50 |
} |
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/IImportConfigurator.java | ||
---|---|---|
11 | 11 |
|
12 | 12 |
import java.util.UUID; |
13 | 13 |
|
14 |
import eu.etaxonomy.cdm.common.IProgressMonitor; |
|
14 | 15 |
import eu.etaxonomy.cdm.database.DbSchemaValidation; |
15 | 16 |
import eu.etaxonomy.cdm.database.ICdmDataSource; |
16 | 17 |
import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer; |
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/IIoConfigurator.java | ||
---|---|---|
7 | 7 |
package eu.etaxonomy.cdm.io.common; |
8 | 8 |
|
9 | 9 |
import eu.etaxonomy.cdm.api.application.CdmApplicationController; |
10 |
import eu.etaxonomy.cdm.common.IProgressMonitor; |
|
10 | 11 |
import eu.etaxonomy.cdm.database.DbSchemaValidation; |
11 | 12 |
|
12 | 13 |
|
... | ... | |
61 | 62 |
*/ |
62 | 63 |
public void setDbSchemaValidation(DbSchemaValidation dbSchemaValidation); |
63 | 64 |
|
65 |
/** |
|
66 |
* |
|
67 |
* @param monitor |
|
68 |
*/ |
|
69 |
public void setProgressMonitor(IProgressMonitor monitor); |
|
70 |
|
|
71 |
/** |
|
72 |
* |
|
73 |
* @return |
|
74 |
*/ |
|
75 |
public IProgressMonitor getProgressMonitor(); |
|
64 | 76 |
|
77 |
/** |
|
78 |
* |
|
79 |
* @param message |
|
80 |
*/ |
|
81 |
public void updateProgress(String message); |
|
65 | 82 |
} |
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/IoConfiguratorBase.java | ||
---|---|---|
9 | 9 |
import org.apache.log4j.Logger; |
10 | 10 |
|
11 | 11 |
import eu.etaxonomy.cdm.api.application.CdmApplicationController; |
12 |
import eu.etaxonomy.cdm.common.IProgressMonitor; |
|
12 | 13 |
import eu.etaxonomy.cdm.database.DbSchemaValidation; |
13 | 14 |
import eu.etaxonomy.cdm.io.common.IImportConfigurator.DO_REFERENCES; |
14 | 15 |
|
... | ... | |
50 | 51 |
private boolean doMarker = true; |
51 | 52 |
private boolean doUser = true; |
52 | 53 |
|
54 |
private IProgressMonitor progressMonitor; |
|
55 |
|
|
53 | 56 |
|
54 | 57 |
/* (non-Javadoc) |
55 | 58 |
* @see eu.etaxonomy.cdm.io.common.IIoConfigurator#getDbSchemaValidation() |
... | ... | |
240 | 243 |
public void setUseTaxonomicTree(boolean useTaxonomicTree) { |
241 | 244 |
this.useTaxonomicTree = useTaxonomicTree; |
242 | 245 |
} |
246 |
|
|
247 |
@Override |
|
248 |
public void setProgressMonitor(IProgressMonitor monitor) { |
|
249 |
this.progressMonitor = monitor; |
|
250 |
} |
|
251 |
|
|
252 |
public IProgressMonitor getProgressMonitor(){ |
|
253 |
return this.progressMonitor; |
|
254 |
} |
|
255 |
|
|
256 |
@Override |
|
257 |
public void updateProgress(String message) { |
|
258 |
if(progressMonitor != null){ |
|
259 |
progressMonitor.worked(1); |
|
260 |
progressMonitor.subTask(message); |
|
261 |
} |
|
262 |
} |
|
243 | 263 |
} |
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/sdd/SDDCdmExporter.java | ||
---|---|---|
73 | 73 |
// Map<String, MapWrapper<? extends CdmBase>> stores) { |
74 | 74 |
|
75 | 75 |
SDDExportConfigurator sddExpConfig = state.getConfig(); |
76 |
String dbname = sddExpConfig.getSource().getName(); |
|
76 |
|
|
77 |
String dbname = sddExpConfig.getSource() != null ? sddExpConfig.getSource().getName() : "unknown"; |
|
77 | 78 |
String fileName = sddExpConfig.getDestinationNameString(); |
78 | 79 |
logger.info("Serializing DB " + dbname + " to file " + fileName); |
79 | 80 |
logger.debug("DbSchemaValidation = " + sddExpConfig.getDbSchemaValidation()); |
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/abcd206/in/Abcd206Import.java | ||
---|---|---|
92 | 92 |
String sourceName = config.getSource(); |
93 | 93 |
NodeList unitsList = getUnitsNodeList(sourceName); |
94 | 94 |
if (unitsList != null){ |
95 |
logger.info("nb units to insert: "+unitsList.getLength()); |
|
95 |
String message = "nb units to insert: "+unitsList.getLength(); |
|
96 |
logger.info(message); |
|
97 |
config.updateProgress(message); |
|
96 | 98 |
|
97 | 99 |
Abcd206DataHolder dataHolder = new Abcd206DataHolder(); |
98 | 100 |
|
... | ... | |
102 | 104 |
|
103 | 105 |
//compare the ABCD elements added in to the CDM and the unhandled ABCD elements |
104 | 106 |
compareABCDtoCDM(sourceName, dataHolder.knownABCDelements, dataHolder); |
105 |
|
|
107 |
|
|
106 | 108 |
//reset the ABCD elements added in CDM |
107 | 109 |
//knownABCDelements = new ArrayList<String>(); |
108 | 110 |
dataHolder.allABCDelements = new HashMap<String,String>(); |
... | ... | |
121 | 123 |
|
122 | 124 |
TransactionStatus tx = startTransaction(); |
123 | 125 |
try { |
126 |
config.updateProgress("Importing data for unit: " + dataHolder.unitID); |
|
127 |
|
|
124 | 128 |
// ReferenceBase sec = Database.NewInstance(); |
125 | 129 |
// sec.setTitleCache("XML DATA"); |
126 | 130 |
ReferenceBase sec = config.getTaxonReference(); |
... | ... | |
312 | 316 |
private void setUnitPropertiesXML(Element root, Abcd206DataHolder dataHolder){ |
313 | 317 |
try{ |
314 | 318 |
NodeList group; |
315 |
|
|
319 |
|
|
316 | 320 |
// try{afficherInfos(racine, 0);}catch (Exception e) {logger.info(e);} |
317 | 321 |
group = root.getChildNodes(); |
318 | 322 |
// logger.info("ABCD ELEMENT not stored: "+group.item(i).getNodeName().toString()+" - value: "+group.item(i).getTextContent()); |
cdmlib-print/pom.xml | ||
---|---|---|
3 | 3 |
<parent> |
4 | 4 |
<artifactId>cdmlib-parent</artifactId> |
5 | 5 |
<groupId>eu.etaxonomy</groupId> |
6 |
<version>1.0</version>
|
|
6 |
<version>2.4</version>
|
|
7 | 7 |
</parent> |
8 | 8 |
|
9 | 9 |
<modelVersion>4.0.0</modelVersion> |
... | ... | |
14 | 14 |
|
15 | 15 |
<packaging>jar</packaging> |
16 | 16 |
|
17 |
<version>1.0</version>
|
|
17 |
<version>2.4</version>
|
|
18 | 18 |
|
19 | 19 |
<name>CDM Print</name> |
20 | 20 |
|
... | ... | |
46 | 46 |
<artifactId>odfdom</artifactId> |
47 | 47 |
<version>0.8.6</version> |
48 | 48 |
</dependency> |
49 |
<dependency> |
|
50 |
<groupId>jdom</groupId> |
|
51 |
<artifactId>jdom</artifactId> |
|
52 |
<version>1.0</version> |
|
53 |
</dependency> |
|
49 | 54 |
</dependencies> |
50 | 55 |
</project> |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/IHarvestObserver.java | ||
---|---|---|
1 |
// $Id$ |
|
2 |
/** |
|
3 |
* Copyright (C) 2007 EDIT |
|
4 |
* European Distributed Institute of Taxonomy |
|
5 |
* http://www.e-taxonomy.eu |
|
6 |
* |
|
7 |
* The contents of this file are subject to the Mozilla Public License Version 1.1 |
|
8 |
* See LICENSE.TXT at the top of this package for the full license terms. |
|
9 |
*/ |
|
10 |
|
|
11 |
package eu.etaxonomy.cdm.print; |
|
12 |
|
|
13 |
|
|
14 |
/** |
|
15 |
* A client implementing this interface and registering with a {@link NotificationMediator} |
|
16 |
* will get notified of the progress of the print publishing process. |
|
17 |
* |
|
18 |
* @author n.hoffmann |
|
19 |
* @created Jul 19, 2010 |
|
20 |
* @version 1.0 |
|
21 |
*/ |
|
22 |
public interface IHarvestObserver { |
|
23 |
|
|
24 |
/** |
|
25 |
* |
|
26 |
* @param message |
|
27 |
*/ |
|
28 |
public void update(String message); |
|
29 |
} |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/NotificationMediator.java | ||
---|---|---|
1 |
// $Id$ |
|
2 |
/** |
|
3 |
* Copyright (C) 2007 EDIT |
|
4 |
* European Distributed Institute of Taxonomy |
|
5 |
* http://www.e-taxonomy.eu |
|
6 |
* |
|
7 |
* The contents of this file are subject to the Mozilla Public License Version 1.1 |
|
8 |
* See LICENSE.TXT at the top of this package for the full license terms. |
|
9 |
*/ |
|
10 |
|
|
11 |
package eu.etaxonomy.cdm.print; |
|
12 |
|
|
13 |
import java.util.ArrayList; |
|
14 |
import java.util.List; |
|
15 |
|
|
16 |
import org.apache.log4j.Logger; |
|
17 |
|
|
18 |
/** |
|
19 |
* A simple mediator that will mediate messages for {@linkplain IHarvestObserver observer}. |
|
20 |
* |
|
21 |
* @author n.hoffmann |
|
22 |
* @created Aug 3, 2010 |
|
23 |
* @version 1.0 |
|
24 |
*/ |
|
25 |
public class NotificationMediator { |
|
26 |
private static final Logger logger = Logger |
|
27 |
.getLogger(NotificationMediator.class); |
|
28 |
|
|
29 |
|
|
30 |
private List<IHarvestObserver> harvestOberver = new ArrayList<IHarvestObserver>(); |
|
31 |
|
|
32 |
/** |
|
33 |
* Adds an {@link IHarvestObserver} to the list of <code>IHarvestObservers</code>. |
|
34 |
* |
|
35 |
* @see {@link IHarvestObserver} |
|
36 |
* @param observer |
|
37 |
*/ |
|
38 |
public void addObserver(IHarvestObserver observer) { |
|
39 |
harvestOberver.add(observer); |
|
40 |
} |
|
41 |
|
|
42 |
/** |
|
43 |
* Removes an {@link IHarvestObserver} from the list of <code>IHarvestObservers</code>. |
|
44 |
* |
|
45 |
* @see {@link IHarvestObserver} |
|
46 |
* @param observer |
|
47 |
*/ |
|
48 |
public void removeObserver(IHarvestObserver observer) { |
|
49 |
harvestOberver.remove(observer); |
|
50 |
} |
|
51 |
|
|
52 |
/** |
|
53 |
* Calls the {@link IHarvestObserver#update(String)} method on all registered {@link IHarvestObserver}. |
|
54 |
* |
|
55 |
* @param message |
|
56 |
*/ |
|
57 |
public void notifyObserver(String message) { |
|
58 |
for(IHarvestObserver observer : harvestOberver){ |
|
59 |
logger.trace("Notifying HarvestObserver"); |
|
60 |
observer.update(message); |
|
61 |
logger.info(message); |
|
62 |
} |
|
63 |
} |
|
64 |
} |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/PublishConfigurator.java | ||
---|---|---|
22 | 22 |
import org.jdom.Element; |
23 | 23 |
|
24 | 24 |
import eu.etaxonomy.cdm.api.application.CdmApplicationController; |
25 |
import eu.etaxonomy.cdm.common.IProgressMonitor; |
|
25 | 26 |
import eu.etaxonomy.cdm.print.out.IPublishOutputModule; |
26 | 27 |
|
27 | 28 |
/** |
... | ... | |
61 | 62 |
|
62 | 63 |
private boolean remote; |
63 | 64 |
|
64 |
private NotificationMediator notificationMediator;
|
|
65 |
private IProgressMonitor progressMonitor;
|
|
65 | 66 |
|
66 | 67 |
/** |
67 | 68 |
* Hidden default constructor |
... | ... | |
292 | 293 |
return count; |
293 | 294 |
} |
294 | 295 |
|
295 |
/** |
|
296 |
* Adds an {@link IHarvestObserver} to the configurators list of <code>IHarvestObservers</code>. |
|
297 |
* |
|
298 |
* @see {@link IHarvestObserver} |
|
299 |
* @param observer |
|
300 |
*/ |
|
301 |
public void addObserver(IHarvestObserver observer) { |
|
302 |
getNotificationMediator().addObserver(observer); |
|
303 |
} |
|
304 |
|
|
305 |
/** |
|
306 |
* Removes an {@link IHarvestObserver} from the configurators list of <code>IHarvestObservers</code>. |
|
307 |
* |
|
308 |
* @see {@link IHarvestObserver} |
|
309 |
* @param observer |
|
310 |
*/ |
|
311 |
public void removeObserver(IHarvestObserver observer) { |
|
312 |
getNotificationMediator().removeObserver(observer); |
|
313 |
} |
|
314 |
|
|
315 |
public void notifyObserver(String message){ |
|
316 |
getNotificationMediator().notifyObserver(message); |
|
317 |
} |
|
318 | 296 |
|
319 | 297 |
/** |
320 | 298 |
* Whether taxonomically included taxa for the {@linkplain #getSelectedTaxonNodeElements() selected taxon nodes} |
... | ... | |
369 | 347 |
this.applicationController = applicationController; |
370 | 348 |
} |
371 | 349 |
|
372 |
/** |
|
373 |
* @return the notificationMediator |
|
374 |
*/ |
|
375 |
public NotificationMediator getNotificationMediator() { |
|
376 |
if(notificationMediator == null){ |
|
377 |
notificationMediator = new NotificationMediator(); |
|
378 |
} |
|
379 |
return notificationMediator; |
|
380 |
} |
|
381 |
|
|
382 |
/** |
|
383 |
* @param notificationMediator the notificationMediator to set |
|
384 |
*/ |
|
385 |
public void setNotificationMediator(NotificationMediator notificationMediator) { |
|
386 |
this.notificationMediator = notificationMediator; |
|
387 |
} |
|
388 |
|
|
389 | 350 |
/** |
390 | 351 |
* The feature tree configures which features and in which order and nesting will be exported |
391 | 352 |
* by the application |
... | ... | |
404 | 365 |
this.featureTreeUuid = featureTreeUuid; |
405 | 366 |
} |
406 | 367 |
|
368 |
public void setProgressMonitor(IProgressMonitor progressMonitor) { |
|
369 |
this.progressMonitor = progressMonitor; |
|
370 |
} |
|
371 |
|
|
372 |
public IProgressMonitor getProgressMonitor() { |
|
373 |
return progressMonitor; |
|
374 |
} |
|
375 |
|
|
407 | 376 |
|
408 | 377 |
|
409 | 378 |
|
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/Publisher.java | ||
---|---|---|
37 | 37 |
} |
38 | 38 |
|
39 | 39 |
for(IPublishOutputModule outputModule : configurator.getOutputModules()){ |
40 |
outputModule.output(document, configurator.getExportFolder(), configurator.getNotificationMediator());
|
|
40 |
outputModule.output(document, configurator.getExportFolder(), configurator.getProgressMonitor());
|
|
41 | 41 |
} |
42 | 42 |
|
43 | 43 |
} |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/XMLHarvester.java | ||
---|---|---|
21 | 21 |
import org.jdom.JDOMException; |
22 | 22 |
import org.jdom.xpath.XPath; |
23 | 23 |
|
24 |
import eu.etaxonomy.cdm.common.IProgressMonitor; |
|
24 | 25 |
import eu.etaxonomy.cdm.print.out.IPublishOutputModule; |
25 | 26 |
|
26 | 27 |
/** |
... | ... | |
39 | 40 |
|
40 | 41 |
private List<SimplifiedFeatureNode> simplifiedFeatureTree; |
41 | 42 |
|
43 |
private IProgressMonitor progressMonitor; |
|
44 |
|
|
42 | 45 |
/** |
43 | 46 |
* |
44 | 47 |
* @param configurator |
45 | 48 |
*/ |
46 | 49 |
public XMLHarvester(PublishConfigurator configurator){ |
47 | 50 |
this.configurator = configurator; |
48 |
factory = configurator.getFactory(); |
|
51 |
this.factory = configurator.getFactory(); |
|
52 |
this.progressMonitor = configurator.getProgressMonitor(); |
|
49 | 53 |
|
50 | 54 |
Element featureTreeElement = factory.getFeatureTree(configurator.getFeatureTreeUuid()); |
51 | 55 |
createSimplifiedFeatureTree(featureTreeElement); |
... | ... | |
56 | 60 |
|
57 | 61 |
Element realRoot = factory.getFeatureNode(XMLHelper.getUuid(root)); |
58 | 62 |
|
59 |
configurator.notifyObserver("Generating simplified Feature Tree.");
|
|
63 |
progressMonitor.subTask("Generating simplified Feature Tree.");
|
|
60 | 64 |
simplifiedFeatureTree = featureTreeRecursive(realRoot); |
61 | 65 |
|
62 | 66 |
logger.info("Simplified FeeatureTree created"); |
... | ... | |
175 | 179 |
// get the taxon from the generic service to have the uuid for further processing |
176 | 180 |
Element taxonElement = factory.getTaxonForTaxonNode(taxonNodeElement); |
177 | 181 |
|
178 |
configurator.notifyObserver("Gathering data for taxon: " + XMLHelper.getTitleCache(taxonElement));
|
|
182 |
progressMonitor.subTask("Gathering data for taxon: " + XMLHelper.getTitleCache(taxonElement));
|
|
179 | 183 |
|
180 | 184 |
// get initialized accepted taxon |
181 | 185 |
// TODO right now we are getting that from the portal service but should consider to use the generic service |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/AbstractPublishOutputModule.java | ||
---|---|---|
17 | 17 |
import org.apache.log4j.Logger; |
18 | 18 |
import org.jdom.Document; |
19 | 19 |
|
20 |
import eu.etaxonomy.cdm.print.NotificationMediator;
|
|
20 |
import eu.etaxonomy.cdm.common.IProgressMonitor;
|
|
21 | 21 |
|
22 | 22 |
/** |
23 | 23 |
* This abstract implementation of the {@link IPublishOutputModule} contains convenience methods for file |
... | ... | |
70 | 70 |
/* (non-Javadoc) |
71 | 71 |
* @see eu.etaxonomy.printpublisher.out.IPublishOutputModule#output(org.jdom.Document, java.io.File) |
72 | 72 |
*/ |
73 |
public void output(Document document, File exportFolder, NotificationMediator notificationMediator) { |
|
73 |
public void output(Document document, File exportFolder, IProgressMonitor progressMonitor) { |
|
74 |
if(progressMonitor == null){ |
|
75 |
throw new IllegalArgumentException("ProgressMonitor may not be null"); |
|
76 |
} |
|
77 |
|
|
74 | 78 |
String message = "Running output module: " + this.getClass().getSimpleName(); |
75 | 79 |
logger.trace(message); |
76 |
if(notificationMediator != null) |
|
77 |
notificationMediator.notifyObserver(message); |
|
80 |
progressMonitor.subTask(message); |
|
78 | 81 |
} |
79 | 82 |
} |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/IPublishOutputModule.java | ||
---|---|---|
14 | 14 |
|
15 | 15 |
import org.jdom.Document; |
16 | 16 |
|
17 |
import eu.etaxonomy.cdm.print.NotificationMediator;
|
|
17 |
import eu.etaxonomy.cdm.common.IProgressMonitor;
|
|
18 | 18 |
|
19 | 19 |
|
20 | 20 |
/** |
... | ... | |
43 | 43 |
* @param notificationMediator the {@link NotificationMediator} to propagate progress of the publish process. Implementors |
44 | 44 |
* should allow this to be <code>null</code>. |
45 | 45 |
*/ |
46 |
public void output(Document document, File targetFolder, NotificationMediator notificationMediator);
|
|
46 |
public void output(Document document, File targetFolder, IProgressMonitor progressMonitor);
|
|
47 | 47 |
|
48 | 48 |
} |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/odf/OdfOutputModule.java | ||
---|---|---|
11 | 11 |
import org.jdom.transform.XSLTransformException; |
12 | 12 |
import org.odftoolkit.odfdom.doc.OdfTextDocument; |
13 | 13 |
|
14 |
import eu.etaxonomy.cdm.print.NotificationMediator;
|
|
14 |
import eu.etaxonomy.cdm.common.IProgressMonitor;
|
|
15 | 15 |
import eu.etaxonomy.cdm.print.Transformator; |
16 | 16 |
import eu.etaxonomy.cdm.print.out.AbstractPublishOutputModule; |
17 | 17 |
|
... | ... | |
49 | 49 |
/* (non-Javadoc) |
50 | 50 |
* @see eu.etaxonomy.printpublisher.out.IPublishOutputModule#output(org.jdom.Document, java.io.File) |
51 | 51 |
*/ |
52 |
public void output(Document document, File exportFolder, NotificationMediator notificationMediator) {
|
|
52 |
public void output(Document document, File exportFolder, IProgressMonitor progressMonitor) {
|
|
53 | 53 |
|
54 |
super.output(document, exportFolder, notificationMediator);
|
|
54 |
super.output(document, exportFolder, progressMonitor);
|
|
55 | 55 |
|
56 | 56 |
Document transformedDocument; |
57 | 57 |
String filePath = getFilePath(exportFolder); |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/pdf/PdfOutputModule.java | ||
---|---|---|
29 | 29 |
import org.jdom.Document; |
30 | 30 |
import org.jdom.transform.JDOMSource; |
31 | 31 |
|
32 |
import eu.etaxonomy.cdm.print.NotificationMediator;
|
|
32 |
import eu.etaxonomy.cdm.common.IProgressMonitor;
|
|
33 | 33 |
import eu.etaxonomy.cdm.print.out.AbstractPublishOutputModule; |
34 | 34 |
|
35 | 35 |
/** |
... | ... | |
50 | 50 |
* (non-Javadoc) |
51 | 51 |
* @see eu.etaxonomy.printpublisher.out.IPublishOutputModule#output(org.jdom.Document, java.io.File, eu.etaxonomy.printpublisher.NotificationMediator) |
52 | 52 |
*/ |
53 |
public void output(Document document, File exportFolder, NotificationMediator notificationMediator) {
|
|
53 |
public void output(Document document, File exportFolder, IProgressMonitor progressMonitor) {
|
|
54 | 54 |
|
55 |
super.output(document, exportFolder, notificationMediator);
|
|
55 |
super.output(document, exportFolder, progressMonitor);
|
|
56 | 56 |
|
57 | 57 |
try{ |
58 | 58 |
|
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/taxpub/TaxPubOutputModule.java | ||
---|---|---|
15 | 15 |
import org.apache.log4j.Logger; |
16 | 16 |
import org.jdom.Document; |
17 | 17 |
|
18 |
import eu.etaxonomy.cdm.print.NotificationMediator;
|
|
18 |
import eu.etaxonomy.cdm.common.IProgressMonitor;
|
|
19 | 19 |
import eu.etaxonomy.cdm.print.out.AbstractPublishOutputModule; |
20 | 20 |
|
21 | 21 |
/** |
... | ... | |
36 | 36 |
|
37 | 37 |
@Override |
38 | 38 |
public void output(Document document, File exportFolder, |
39 |
NotificationMediator notificationMediator) {
|
|
40 |
super.output(document, exportFolder, notificationMediator);
|
|
39 |
IProgressMonitor progressMonitor) {
|
|
40 |
super.output(document, exportFolder, progressMonitor);
|
|
41 | 41 |
|
42 |
notificationMediator.notifyObserver("Not implemented yet");
|
|
42 |
progressMonitor.subTask("Not implemented yet");
|
|
43 | 43 |
} |
44 | 44 |
} |
cdmlib-print/src/main/java/eu/etaxonomy/cdm/print/out/xml/XMLOutputModule.java | ||
---|---|---|
19 | 19 |
import org.jdom.Document; |
20 | 20 |
import org.jdom.output.XMLOutputter; |
21 | 21 |
|
22 |
import eu.etaxonomy.cdm.print.NotificationMediator;
|
|
22 |
import eu.etaxonomy.cdm.common.IProgressMonitor;
|
|
23 | 23 |
import eu.etaxonomy.cdm.print.out.AbstractPublishOutputModule; |
24 | 24 |
|
25 | 25 |
/** |
... | ... | |
36 | 36 |
/* (non-Javadoc) |
37 | 37 |
* @see eu.etaxonomy.printpublisher.IPublishOutputModule#output(org.jdom.Document) |
38 | 38 |
*/ |
39 |
public void output(Document document, File exportFolder, NotificationMediator notificationMediator) {
|
|
39 |
public void output(Document document, File exportFolder, IProgressMonitor progressMonitor) {
|
|
40 | 40 |
|
41 |
super.output(document, exportFolder, notificationMediator);
|
|
41 |
super.output(document, exportFolder, progressMonitor);
|
|
42 | 42 |
|
43 | 43 |
try { |
44 | 44 |
String filePath = getFilePath(exportFolder); |
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationController.java | ||
---|---|---|
19 | 19 |
import org.springframework.beans.MutablePropertyValues; |
20 | 20 |
import org.springframework.beans.factory.config.BeanDefinition; |
21 | 21 |
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; |
22 |
import org.springframework.context.ApplicationEvent; |
|
23 |
import org.springframework.context.ApplicationListener; |
|
22 | 24 |
import org.springframework.context.support.AbstractApplicationContext; |
23 | 25 |
import org.springframework.context.support.GenericApplicationContext; |
24 | 26 |
import org.springframework.core.io.ClassPathResource; |
... | ... | |
50 | 52 |
import eu.etaxonomy.cdm.api.service.ITermService; |
51 | 53 |
import eu.etaxonomy.cdm.api.service.IUserService; |
52 | 54 |
import eu.etaxonomy.cdm.api.service.IVocabularyService; |
55 |
import eu.etaxonomy.cdm.common.IProgressMonitor; |
|
56 |
import eu.etaxonomy.cdm.common.ProgressMonitorBase; |
|
53 | 57 |
import eu.etaxonomy.cdm.database.CdmPersistentDataSource; |
54 | 58 |
import eu.etaxonomy.cdm.database.DataSourceNotFoundException; |
55 | 59 |
import eu.etaxonomy.cdm.database.DbSchemaValidation; |
... | ... | |
73 | 77 |
public AbstractApplicationContext applicationContext; |
74 | 78 |
private ICdmApplicationConfiguration configuration; |
75 | 79 |
private Resource applicationContextResource; |
80 |
|
|
81 |
private IProgressMonitor progressMonitor; |
|
76 | 82 |
|
77 | 83 |
final static DbSchemaValidation defaultDbSchemaValidation = DbSchemaValidation.VALIDATE; |
78 | 84 |
|
... | ... | |
85 | 91 |
logger.info("Start CdmApplicationController with default data source"); |
86 | 92 |
CdmPersistentDataSource dataSource = CdmPersistentDataSource.NewDefaultInstance(); |
87 | 93 |
DbSchemaValidation dbSchemaValidation = defaultDbSchemaValidation; |
88 |
return new CdmApplicationController(null, dataSource, dbSchemaValidation, false);
|
|
94 |
return CdmApplicationController.NewInstance(null, dataSource, dbSchemaValidation, false);
|
|
89 | 95 |
} |
90 | 96 |
|
91 | 97 |
/** |
... | ... | |
95 | 101 |
public static CdmApplicationController NewInstance(DbSchemaValidation dbSchemaValidation) throws DataSourceNotFoundException, TermNotFoundException { |
96 | 102 |
logger.info("Start CdmApplicationController with default data source"); |
97 | 103 |
CdmPersistentDataSource dataSource = CdmPersistentDataSource.NewDefaultInstance(); |
98 |
if (dbSchemaValidation == null){ |
|
99 |
dbSchemaValidation = defaultDbSchemaValidation; |
|
100 |
} |
|
101 |
return new CdmApplicationController(null, dataSource, dbSchemaValidation, false); |
|
104 |
return CdmApplicationController.NewInstance(null, dataSource, dbSchemaValidation, false); |
|
102 | 105 |
} |
103 | 106 |
|
104 | 107 |
|
... | ... | |
109 | 112 |
*/ |
110 | 113 |
public static CdmApplicationController NewInstance(ICdmDataSource dataSource) |
111 | 114 |
throws DataSourceNotFoundException, TermNotFoundException{ |
112 |
return new CdmApplicationController(null, dataSource, defaultDbSchemaValidation, false);
|
|
115 |
return CdmApplicationController.NewInstance(null, dataSource, defaultDbSchemaValidation, false);
|
|
113 | 116 |
} |
114 | 117 |
|
115 | 118 |
public static CdmApplicationController NewInstance(ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation) |
116 | 119 |
throws DataSourceNotFoundException, TermNotFoundException{ |
117 |
return new CdmApplicationController(null, dataSource, dbSchemaValidation, false);
|
|
120 |
return CdmApplicationController.NewInstance(null, dataSource, dbSchemaValidation, false);
|
|
118 | 121 |
} |
119 | 122 |
|
120 | 123 |
public static CdmApplicationController NewInstance(ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading) |
121 | 124 |
throws DataSourceNotFoundException, TermNotFoundException{ |
122 |
return new CdmApplicationController(null, dataSource, dbSchemaValidation, omitTermLoading);
|
|
125 |
return CdmApplicationController.NewInstance(null, dataSource, dbSchemaValidation, omitTermLoading);
|
|
123 | 126 |
} |
124 | 127 |
|
125 | 128 |
public static CdmApplicationController NewInstance(Resource applicationContextResource, ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading) |
126 | 129 |
throws DataSourceNotFoundException, TermNotFoundException{ |
127 |
return new CdmApplicationController(applicationContextResource, dataSource, dbSchemaValidation, omitTermLoading); |
|
130 |
return CdmApplicationController.NewInstance(applicationContextResource, dataSource, dbSchemaValidation, omitTermLoading); |
|
131 |
} |
|
132 |
|
|
133 |
public static CdmApplicationController NewInstance(Resource applicationContextResource, ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading, IProgressMonitor progressMonitor) |
|
134 |
throws DataSourceNotFoundException, TermNotFoundException{ |
|
135 |
|
|
136 |
|
|
137 |
return new CdmApplicationController(applicationContextResource, dataSource, dbSchemaValidation, omitTermLoading, progressMonitor); |
|
128 | 138 |
} |
129 | 139 |
|
130 | 140 |
/** |
... | ... | |
133 | 143 |
* @param dbSchemaValidation |
134 | 144 |
* @param omitTermLoading |
135 | 145 |
*/ |
136 |
private CdmApplicationController(Resource applicationContextResource, ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading){ |
|
146 |
private CdmApplicationController(Resource applicationContextResource, ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading, IProgressMonitor progressMonitor){
|
|
137 | 147 |
logger.info("Start CdmApplicationController with datasource: " + dataSource.getName()); |
138 |
if (applicationContextResource != null){ |
|
139 |
this.applicationContextResource = applicationContextResource; |
|
140 |
}else{ |
|
141 |
this.applicationContextResource = new ClassPathResource(DEFAULT_APPLICATION_CONTEXT_RESOURCE); |
|
148 |
|
|
149 |
if (dbSchemaValidation == null){ |
|
150 |
dbSchemaValidation = defaultDbSchemaValidation; |
|
142 | 151 |
} |
143 | 152 |
|
144 |
setNewDataSource(dataSource, dbSchemaValidation, omitTermLoading); |
|
153 |
this.applicationContextResource = applicationContextResource != null ? applicationContextResource : new ClassPathResource(DEFAULT_APPLICATION_CONTEXT_RESOURCE); |
|
154 |
this.progressMonitor = progressMonitor != null ? progressMonitor : new ProgressMonitorBase(); |
|
145 | 155 |
|
146 |
// if (setNewDataSource(dataSource, dbSchemaValidation, omitTermLoading) == false){ |
|
147 |
// throw new DataSourceNotFoundException("Wrong datasource: " + dataSource ); |
|
148 |
// } |
|
156 |
setNewDataSource(dataSource, dbSchemaValidation, omitTermLoading); |
|
149 | 157 |
} |
150 | 158 |
|
151 | 159 |
|
... | ... | |
158 | 166 |
dbSchemaValidation = defaultDbSchemaValidation; |
159 | 167 |
} |
160 | 168 |
logger.info("Connecting to '" + dataSource.getName() + "'"); |
161 |
|
|
169 |
progressMonitor.subTask("Connecting to '" + dataSource.getName() + "'"); |
|
170 |
progressMonitor.worked(1); |
|
162 | 171 |
|
163 | 172 |
GenericApplicationContext appContext; |
164 |
// try { |
|
165 |
appContext = new EclipseRcpSaveGenericApplicationContext(); |
|
166 |
|
|
167 |
BeanDefinition datasourceBean = dataSource.getDatasourceBean(); |
|
168 |
datasourceBean.setAttribute("isLazy", false); |
|
169 |
appContext.registerBeanDefinition("dataSource", datasourceBean); |
|
170 |
|
|
171 |
BeanDefinition hibernatePropBean= dataSource.getHibernatePropertiesBean(dbSchemaValidation); |
|
172 |
appContext.registerBeanDefinition("hibernateProperties", hibernatePropBean); |
|
173 |
|
|
174 |
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(appContext); |
|
175 |
xmlReader.loadBeanDefinitions(this.applicationContextResource); |
|
176 |
|
|
177 |
//omitTerms |
|
178 |
String initializerName = "persistentTermInitializer"; |
|
179 |
BeanDefinition beanDef = appContext.getBeanDefinition(initializerName); |
|
180 |
MutablePropertyValues values = beanDef.getPropertyValues(); |
|
181 |
values.addPropertyValue("omit", omitTermLoading); |
|
182 |
|
|
183 |
appContext.refresh(); |
|
184 |
appContext.start(); |
|
185 |
|
|
173 |
appContext = new EclipseRcpSaveGenericApplicationContext(); |
|
174 |
|
|
175 |
BeanDefinition datasourceBean = dataSource.getDatasourceBean(); |
|
176 |
datasourceBean.setAttribute("isLazy", false); |
|
177 |
progressMonitor.subTask("Registering datasource."); |
|
178 |
progressMonitor.worked(1); |
|
179 |
appContext.registerBeanDefinition("dataSource", datasourceBean); |
|
180 |
|
|
181 |
BeanDefinition hibernatePropBean= dataSource.getHibernatePropertiesBean(dbSchemaValidation); |
|
182 |
appContext.registerBeanDefinition("hibernateProperties", hibernatePropBean); |
|
183 |
|
|
184 |
XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(appContext); |
|
185 |
progressMonitor.subTask("Registering context resources."); |
|
186 |
progressMonitor.worked(1); |
|
187 |
xmlReader.loadBeanDefinitions(this.applicationContextResource); |
|
188 |
|
|
189 |
//omitTerms |
|
190 |
String initializerName = "persistentTermInitializer"; |
|
191 |
BeanDefinition beanDef = appContext.getBeanDefinition(initializerName); |
|
192 |
MutablePropertyValues values = beanDef.getPropertyValues(); |
|
193 |
values.addPropertyValue("omit", omitTermLoading); |
|
194 |
|
|
195 |
progressMonitor.subTask("Starting context. This might take a while..."); |
|
196 |
progressMonitor.worked(1); |
|
197 |
appContext.refresh(); |
|
198 |
appContext.start(); |
|
199 |
|
|
200 |
progressMonitor.subTask("Setting application context."); |
|
201 |
progressMonitor.worked(1); |
|
186 | 202 |
setApplicationContext(appContext); |
187 | 203 |
|
188 | 204 |
//initialize user and metaData for new databases |
189 | 205 |
int userCount = getUserService().count(User.class); |
190 | 206 |
if (userCount == 0 ){ |
207 |
progressMonitor.subTask("Creating Admin User"); |
|
208 |
progressMonitor.worked(1); |
|
191 | 209 |
createAdminUser(); |
192 | 210 |
} |
193 | 211 |
int metaDataCount = getCommonService().getCdmMetaData().size(); |
194 | 212 |
if (metaDataCount == 0){ |
213 |
progressMonitor.subTask("Creating Meta Data"); |
|
214 |
progressMonitor.worked(1); |
|
195 | 215 |
createMetadata(); |
196 | 216 |
} |
197 | 217 |
|
... | ... | |
297 | 317 |
//TODO delete next row (was just for testing) |
298 | 318 |
if (logger.isInfoEnabled()){ |
299 | 319 |
logger.info("Registered Beans: "); |
300 |
String[] beans = applicationContext.getBeanDefinitionNames(); |
|
301 |
for (String bean:beans){ |
|
302 |
logger.info(bean); |
|
320 |
progressMonitor.subTask("Registered Beans: "); |
|
321 |
String[] beanNames = applicationContext.getBeanDefinitionNames(); |
|
322 |
for (String beanName : beanNames){ |
|
323 |
logger.info(beanName); |
|
324 |
progressMonitor.subTask(beanName); |
|
303 | 325 |
} |
304 | 326 |
} |
305 | 327 |
configuration = (ICdmApplicationConfiguration)applicationContext.getBean("cdmApplicationDefaultConfiguration"); |
Also available in: Unified diff
Integrated progress monitor into application controller and started integrating it to some imports.