comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSDBArtifact.java @ 3019:484f3dad4bfd

Let Artifacts of type WMSDBArtifact remove produced files and directories when endOfLife() is called. flys-artifacts/trunk@4586 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 05 Jun 2012 13:34:50 +0000
parents 2f7fed1eb4bf
children 4a76da133144
comparison
equal deleted inserted replaced
3018:fb07f936b5ad 3019:484f3dad4bfd
1 package de.intevation.flys.artifacts; 1 package de.intevation.flys.artifacts;
2
3 import java.io.File;
2 4
3 import java.util.ArrayList; 5 import java.util.ArrayList;
4 import java.util.List; 6 import java.util.List;
5 7
6 import java.util.regex.Pattern; 8 import java.util.regex.Pattern;
15 import com.vividsolutions.jts.geom.Envelope; 17 import com.vividsolutions.jts.geom.Envelope;
16 18
17 import de.intevation.artifacts.Artifact; 19 import de.intevation.artifacts.Artifact;
18 import de.intevation.artifacts.ArtifactFactory; 20 import de.intevation.artifacts.ArtifactFactory;
19 import de.intevation.artifacts.CallMeta; 21 import de.intevation.artifacts.CallMeta;
22
23 import de.intevation.artifacts.common.utils.FileTools;
20 24
21 import de.intevation.artifactdatabase.data.DefaultStateData; 25 import de.intevation.artifactdatabase.data.DefaultStateData;
22 import de.intevation.artifactdatabase.state.Facet; 26 import de.intevation.artifactdatabase.state.Facet;
23 import de.intevation.artifactdatabase.state.State; 27 import de.intevation.artifactdatabase.state.State;
24 28
27 31
28 import de.intevation.flys.artifacts.resources.Resources; 32 import de.intevation.flys.artifacts.resources.Resources;
29 import de.intevation.flys.artifacts.states.DefaultState; 33 import de.intevation.flys.artifacts.states.DefaultState;
30 import de.intevation.flys.artifacts.model.WMSDBLayerFacet; 34 import de.intevation.flys.artifacts.model.WMSDBLayerFacet;
31 import de.intevation.flys.utils.FLYSUtils; 35 import de.intevation.flys.utils.FLYSUtils;
36 import de.intevation.flys.utils.MapfileGenerator;
32 37
33 38
34 public abstract class WMSDBArtifact extends StaticFLYSArtifact { 39 public abstract class WMSDBArtifact extends StaticFLYSArtifact {
35 40
36 private static final Logger logger = Logger.getLogger(WMSDBArtifact.class); 41 private static final Logger logger = Logger.getLogger(WMSDBArtifact.class);
76 Artifact artifact, 81 Artifact artifact,
77 Object context, 82 Object context,
78 CallMeta callMeta) 83 CallMeta callMeta)
79 { 84 {
80 // do nothing 85 // do nothing
86 }
87
88
89 @Override
90 protected State getState(Object context, String stateID) {
91 return getCurrentState(context);
81 } 92 }
82 93
83 94
84 /** 95 /**
85 * Get a list containing the one and only State. 96 * Get a list containing the one and only State.
282 getFacetType(), 293 getFacetType(),
283 getFacetType()); 294 getFacetType());
284 } 295 }
285 296
286 297
298 @Override
299 public void endOfLife(Artifact owner, Object context) {
300 logger.info("Destroy WMSDBState: " + getID());
301
302 String p = FLYSUtils.getXPathString(FLYSUtils.XPATH_SHAPEFILE_DIR);
303 File dir = new File(p, owner.identifier());
304
305 if (dir != null && dir.exists()) {
306 logger.debug("Try to delete directory '" + dir + "'");
307
308 FileTools.deleteRecursive(dir);
309 MapfileGenerator.getInstance().update();
310 }
311 }
312
313
287 protected abstract String getFacetType(); 314 protected abstract String getFacetType();
288 315
289 protected abstract String getUrl(); 316 protected abstract String getUrl();
290 317
291 protected abstract String getSrid(); 318 protected abstract String getSrid();

http://dive4elements.wald.intevation.org