Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/Datacage.java @ 987:82ef338fee91
Datacage: Add collections at initial scan.
flys-artifacts/trunk@2419 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 28 Jul 2011 15:34:26 +0000 |
parents | 70545233f8ee |
children | dbe39e1fb5e7 |
rev | line source |
---|---|
982
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts.datacage; |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 |
984
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
3 import java.sql.SQLException; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
4 |
982
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
5 import de.intevation.artifacts.GlobalContext; |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 |
983
4ea5f5a2284e
Ajusted datacage to use the SQL infrastructure from the artifact database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
982
diff
changeset
|
7 import de.intevation.artifactdatabase.db.SQL; |
4ea5f5a2284e
Ajusted datacage to use the SQL infrastructure from the artifact database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
982
diff
changeset
|
8 import de.intevation.artifactdatabase.db.SQLExecutor; |
4ea5f5a2284e
Ajusted datacage to use the SQL infrastructure from the artifact database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
982
diff
changeset
|
9 |
982
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 import de.intevation.artifactdatabase.LifetimeListener; |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 |
984
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
12 import de.intevation.artifacts.Artifact; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
13 import de.intevation.artifacts.ArtifactDatabase; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
14 import de.intevation.artifacts.ArtifactDatabaseException; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
15 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
16 import de.intevation.flys.artifacts.FLYSArtifact; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
17 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
18 import de.intevation.artifacts.common.utils.LRUCache; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
19 |
982
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 import org.apache.log4j.Logger; |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
21 |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 import org.w3c.dom.Document; |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
24 public class Datacage |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 implements LifetimeListener |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 { |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 private static Logger log = Logger.getLogger(Datacage.class); |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 |
984
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
29 public static final String ARTEFACT_DATABASE_KEY = |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
30 "global.artifact.database"; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
31 |
987
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
32 private String SQL_DELETE_ALL_USERS = "delete.all.users"; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
33 private String SQL_USER_ID_NEXTVAL = "user.id.nextval"; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
34 private String SQL_USER_BY_GID = "user.by.gid"; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
35 private String SQL_INSERT_USER = "insert.user"; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
36 private String SQL_COLLECTION_BY_GID = "collection.by.gid"; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
37 private String SQL_COLLECTION_ID_NEXTVAL = "collection.id.nextval"; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
38 private String SQL_INSERT_COLLECTION = "insert.collection"; |
984
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
39 |
983
4ea5f5a2284e
Ajusted datacage to use the SQL infrastructure from the artifact database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
982
diff
changeset
|
40 protected SQLExecutor sqlExecutor; |
4ea5f5a2284e
Ajusted datacage to use the SQL infrastructure from the artifact database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
982
diff
changeset
|
41 |
984
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
42 public class InitialScan |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
43 implements ArtifactDatabase.ArtifactLoadedCallback |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
44 { |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
45 protected LRUCache<String, Integer> users; |
986
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
46 protected LRUCache<String, Integer> collections; |
984
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
47 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
48 public InitialScan() { |
986
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
49 users = new LRUCache<String, Integer>(); |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
50 collections = new LRUCache<String, Integer>(); |
984
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
51 } |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
52 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
53 @Override |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
54 public void artifactLoaded( |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
55 String userId, |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
56 String collectionId, |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
57 String artifactId, |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
58 Artifact artifact |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
59 ) { |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
60 if (!(artifact instanceof FLYSArtifact)) { |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
61 log.warn("ignoring none FLYS artifacts"); |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
62 return; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
63 } |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
64 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
65 FLYSArtifact flysArtifact = (FLYSArtifact)artifact; |
986
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
66 |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
67 Integer uId = getUserId(userId); |
987
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
68 // TODO: We need the name of the collection |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
69 Integer cId = getCollectionId(collectionId, uId, "XXX"); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
70 |
984
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
71 // TODO: implement me! |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
72 } |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
73 |
987
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
74 protected Integer getId( |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
75 LRUCache<String, Integer> cache, |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
76 final String idString, |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
77 final String selectById |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
78 ) { |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
79 Integer id = cache.get(idString); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
80 if (id != null) { |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
81 return id; |
986
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
82 } |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
83 |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
84 final Integer [] res = new Integer[1]; |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
85 |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
86 SQLExecutor.Instance exec = sqlExecutor.new Instance() { |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
87 @Override |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
88 public boolean doIt() throws SQLException { |
987
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
89 prepareStatement(selectById); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
90 stmnt.setString(1, idString); |
986
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
91 result = stmnt.executeQuery(); |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
92 if (!result.next()) { |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
93 return false; |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
94 } |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
95 res[0] = result.getInt(1); |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
96 return true; |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
97 } |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
98 }; |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
99 |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
100 if (exec.runRead()) { |
987
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
101 cache.put(idString, res[0]); |
986
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
102 return res[0]; |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
103 } |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
104 |
987
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
105 return null; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
106 } |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
107 |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
108 |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
109 protected Integer getCollectionId( |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
110 final String collectionId, |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
111 final Integer ownerId, |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
112 final String collectionName |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
113 ) { |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
114 Integer c = getId(collections, collectionId, SQL_COLLECTION_BY_GID); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
115 |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
116 if (c != null) { |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
117 return c; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
118 } |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
119 |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
120 final Integer [] res = new Integer[1]; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
121 |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
122 SQLExecutor.Instance exec = sqlExecutor.new Instance() { |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
123 @Override |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
124 public boolean doIt() throws SQLException { |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
125 prepareStatement(SQL_COLLECTION_ID_NEXTVAL); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
126 result = stmnt.executeQuery(); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
127 if (!result.next()) { |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
128 return false; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
129 } |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
130 res[0] = result.getInt(1); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
131 reset(); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
132 prepareStatement(SQL_INSERT_COLLECTION); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
133 stmnt.setInt (1, res[0]); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
134 stmnt.setString(2, collectionId); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
135 stmnt.setInt (3, ownerId); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
136 stmnt.setString(4, collectionName); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
137 stmnt.execute(); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
138 return true; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
139 } |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
140 }; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
141 |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
142 if (exec.runWrite()) { |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
143 collections.put(collectionId, res[0]); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
144 return res[0]; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
145 } |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
146 |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
147 return null; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
148 } |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
149 |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
150 protected Integer getUserId(final String userId) { |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
151 |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
152 Integer u = getId(users, userId, SQL_USER_BY_GID); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
153 |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
154 if (u != null) { |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
155 return u; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
156 } |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
157 |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
158 final Integer [] res = new Integer[1]; |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
159 |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
160 SQLExecutor.Instance exec = sqlExecutor.new Instance() { |
986
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
161 @Override |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
162 public boolean doIt() throws SQLException { |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
163 prepareStatement(SQL_USER_ID_NEXTVAL); |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
164 result = stmnt.executeQuery(); |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
165 if (!result.next()) { |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
166 return false; |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
167 } |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
168 res[0] = result.getInt(1); |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
169 reset(); |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
170 prepareStatement(SQL_INSERT_USER); |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
171 stmnt.setInt (1, res[0]); |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
172 stmnt.setString(2, userId); |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
173 stmnt.execute(); |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
174 return true; |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
175 } |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
176 }; |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
177 |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
178 if (exec.runWrite()) { |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
179 users.put(userId, res[0]); |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
180 return res[0]; |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
181 } |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
182 |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
183 return null; |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
184 } |
70545233f8ee
Datacage: Add users at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
984
diff
changeset
|
185 |
984
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
186 public boolean scan(ArtifactDatabase adb) { |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
187 try { |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
188 adb.loadAllArtifacts(this); |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
189 } |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
190 catch (ArtifactDatabaseException ade) { |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
191 log.error(ade); |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
192 return false; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
193 } |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
194 return true; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
195 } |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
196 } // class InitialScan |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
197 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
198 |
982
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
199 public Datacage() { |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
200 } |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
201 |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
202 @Override |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
203 public void setup(Document document) { |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
204 log.debug("setup"); |
983
4ea5f5a2284e
Ajusted datacage to use the SQL infrastructure from the artifact database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
982
diff
changeset
|
205 DBConfig config = DBConfig.getInstance(); |
4ea5f5a2284e
Ajusted datacage to use the SQL infrastructure from the artifact database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
982
diff
changeset
|
206 setupSQL(config.getSQL()); |
4ea5f5a2284e
Ajusted datacage to use the SQL infrastructure from the artifact database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
982
diff
changeset
|
207 sqlExecutor = new SQLExecutor(config.getDBConnection()); |
4ea5f5a2284e
Ajusted datacage to use the SQL infrastructure from the artifact database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
982
diff
changeset
|
208 } |
4ea5f5a2284e
Ajusted datacage to use the SQL infrastructure from the artifact database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
982
diff
changeset
|
209 |
4ea5f5a2284e
Ajusted datacage to use the SQL infrastructure from the artifact database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
982
diff
changeset
|
210 protected void setupSQL(SQL sql) { |
987
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
211 SQL_DELETE_ALL_USERS = sql.get(SQL_DELETE_ALL_USERS); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
212 SQL_USER_ID_NEXTVAL = sql.get(SQL_USER_ID_NEXTVAL); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
213 SQL_USER_BY_GID = sql.get(SQL_USER_BY_GID); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
214 SQL_INSERT_USER = sql.get(SQL_INSERT_USER); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
215 SQL_COLLECTION_BY_GID = sql.get(SQL_COLLECTION_BY_GID); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
216 SQL_COLLECTION_ID_NEXTVAL = sql.get(SQL_COLLECTION_ID_NEXTVAL); |
82ef338fee91
Datacage: Add collections at initial scan.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
986
diff
changeset
|
217 SQL_INSERT_COLLECTION = sql.get(SQL_INSERT_COLLECTION); |
982
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
218 } |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
219 |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
220 @Override |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
221 public void systemUp(GlobalContext context) { |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
222 log.debug("systemUp"); |
984
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
223 initialScan(context); |
982
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
224 } |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
225 |
984
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
226 protected void initialScan(GlobalContext context) { |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
227 log.debug("initialScan"); |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
228 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
229 Object adbObject = context.get(ARTEFACT_DATABASE_KEY); |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
230 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
231 if (!(adbObject instanceof ArtifactDatabase)) { |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
232 log.error("missing artefact database. Cannot scan"); |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
233 return; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
234 } |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
235 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
236 ArtifactDatabase adb = (ArtifactDatabase)adbObject; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
237 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
238 if (!cleanDatabase()) { |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
239 log.error("cleaning database failed"); |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
240 return; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
241 } |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
242 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
243 InitialScan is = new InitialScan(); |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
244 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
245 if (!is.scan(adb)) { |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
246 log.error("initial scan failed"); |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
247 return; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
248 } |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
249 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
250 } |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
251 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
252 protected boolean cleanDatabase() { |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
253 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
254 return sqlExecutor.new Instance() { |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
255 @Override |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
256 public boolean doIt() throws SQLException { |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
257 prepareStatement(SQL_DELETE_ALL_USERS); |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
258 stmnt.execute(); |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
259 return true; |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
260 } |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
261 }.runWrite(); |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
262 } |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
263 |
2b05c4a0c6fd
Datacage: clear database before initial scan
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
983
diff
changeset
|
264 |
982
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
265 @Override |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
266 public void systemDown(GlobalContext context) { |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
267 log.debug("systemDown"); |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
268 } |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
269 } |
66b3f2f064de
Added the datacage as lifetime listener to the artifact database to create the initial index.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
270 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |