annotate gwt-client/src/main/java/org/dive4elements/river/client/test/SinfoProof.java @ 9026:679b1442c886

local backup
author gernotbelger
date Wed, 25 Apr 2018 11:58:49 +0200
parents
children 274ddafb719b
rev   line source
9026
679b1442c886 local backup
gernotbelger
parents:
diff changeset
1 /*
679b1442c886 local backup
gernotbelger
parents:
diff changeset
2 * Copyright (c) 2010 by Intevation GmbH
679b1442c886 local backup
gernotbelger
parents:
diff changeset
3 *
679b1442c886 local backup
gernotbelger
parents:
diff changeset
4 * This program is free software under the LGPL (>=v2.1)
679b1442c886 local backup
gernotbelger
parents:
diff changeset
5 * Read the file LGPL.txt coming with the software for details
679b1442c886 local backup
gernotbelger
parents:
diff changeset
6 * or visit http://www.gnu.org/licenses/ if it does not exist.
679b1442c886 local backup
gernotbelger
parents:
diff changeset
7 */
679b1442c886 local backup
gernotbelger
parents:
diff changeset
8
679b1442c886 local backup
gernotbelger
parents:
diff changeset
9 package org.dive4elements.river.client.test;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
10
679b1442c886 local backup
gernotbelger
parents:
diff changeset
11 import java.io.File;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
12 import java.io.IOException;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
13 import java.net.MalformedURLException;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
14 import java.util.ArrayList;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
15 import java.util.List;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
16
679b1442c886 local backup
gernotbelger
parents:
diff changeset
17 import org.apache.log4j.Logger;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
18 import org.apache.log4j.PropertyConfigurator;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
19 import org.dive4elements.artifacts.common.ArtifactNamespaceContext;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
20 import org.dive4elements.artifacts.common.utils.ClientProtocolUtils;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
21 import org.dive4elements.artifacts.httpclient.exceptions.ConnectionException;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
22 import org.dive4elements.artifacts.httpclient.http.HttpClient;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
23 import org.dive4elements.artifacts.httpclient.http.HttpClientImpl;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
24 import org.dive4elements.artifacts.httpclient.http.response.DocumentResponseHandler;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
25 import org.dive4elements.artifacts.httpclient.utils.Configuration;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
26 import org.dive4elements.artifacts.httpclient.utils.XMLUtils;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
27 import org.dive4elements.river.client.server.AdvanceServiceImpl;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
28 import org.dive4elements.river.client.server.ArtifactHelper;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
29 import org.dive4elements.river.client.server.CollectionHelper;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
30 import org.dive4elements.river.client.server.CreateCollectionServiceImpl;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
31 import org.dive4elements.river.client.server.FLYSArtifactCreator;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
32 import org.dive4elements.river.client.server.FeedServiceImpl;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
33 import org.dive4elements.river.client.server.auth.DefaultUser;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
34 import org.dive4elements.river.client.server.auth.User;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
35 import org.dive4elements.river.client.server.auth.UserClient;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
36 import org.dive4elements.river.client.shared.exceptions.ServerException;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
37 import org.dive4elements.river.client.shared.model.Artifact;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
38 import org.dive4elements.river.client.shared.model.Collection;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
39 import org.dive4elements.river.client.shared.model.Data;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
40 import org.dive4elements.river.client.shared.model.DataItem;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
41 import org.dive4elements.river.client.shared.model.DataList;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
42 import org.dive4elements.river.client.shared.model.DefaultCollection;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
43 import org.dive4elements.river.client.shared.model.DefaultDataItem;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
44 import org.dive4elements.river.client.shared.model.OutputMode;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
45 import org.dive4elements.river.client.shared.model.Recommendation;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
46 import org.dive4elements.river.client.shared.model.StringOptionsData;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
47 import org.w3c.dom.Document;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
48 import org.w3c.dom.Element;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
49
679b1442c886 local backup
gernotbelger
parents:
diff changeset
50 /**
679b1442c886 local backup
gernotbelger
parents:
diff changeset
51 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
679b1442c886 local backup
gernotbelger
parents:
diff changeset
52 */
679b1442c886 local backup
gernotbelger
parents:
diff changeset
53 public class SinfoProof {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
54 /**
679b1442c886 local backup
gernotbelger
parents:
diff changeset
55 * The logging is done via Log4j. To configure the logging
679b1442c886 local backup
gernotbelger
parents:
diff changeset
56 * a file 'log4j.properties' is search in the configuration directory.
679b1442c886 local backup
gernotbelger
parents:
diff changeset
57 */
679b1442c886 local backup
gernotbelger
parents:
diff changeset
58 public static final String LOG4J_PROPERTIES = "log4j.properties";
679b1442c886 local backup
gernotbelger
parents:
diff changeset
59
679b1442c886 local backup
gernotbelger
parents:
diff changeset
60 /**
679b1442c886 local backup
gernotbelger
parents:
diff changeset
61 * The path of the configuration directory.
679b1442c886 local backup
gernotbelger
parents:
diff changeset
62 */
679b1442c886 local backup
gernotbelger
parents:
diff changeset
63 public static final String CONFIG_PATH = System.getProperty("config.dir", "conf");
679b1442c886 local backup
gernotbelger
parents:
diff changeset
64
679b1442c886 local backup
gernotbelger
parents:
diff changeset
65 public static final String CONFIG = System.getProperty("config.file", "use_case1.conf");
679b1442c886 local backup
gernotbelger
parents:
diff changeset
66
679b1442c886 local backup
gernotbelger
parents:
diff changeset
67 public static final String XPATH_DYNAMIC = "/art:result/art:ui/art:dynamic";
679b1442c886 local backup
gernotbelger
parents:
diff changeset
68 private static final String serverUrl = "http://localhost:8181";
679b1442c886 local backup
gernotbelger
parents:
diff changeset
69 private static final String locale = "de";
679b1442c886 local backup
gernotbelger
parents:
diff changeset
70 /**
679b1442c886 local backup
gernotbelger
parents:
diff changeset
71 * The logger used in this class.
679b1442c886 local backup
gernotbelger
parents:
diff changeset
72 */
679b1442c886 local backup
gernotbelger
parents:
diff changeset
73 private static Logger logger;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
74
679b1442c886 local backup
gernotbelger
parents:
diff changeset
75 static {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
76 configureLogging();
679b1442c886 local backup
gernotbelger
parents:
diff changeset
77
679b1442c886 local backup
gernotbelger
parents:
diff changeset
78 logger = Logger.getLogger(SinfoProof.class);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
79 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
80
679b1442c886 local backup
gernotbelger
parents:
diff changeset
81 /**
679b1442c886 local backup
gernotbelger
parents:
diff changeset
82 * Trys to load the Log4j configuration from ${config.dir}/log4j.properties.
679b1442c886 local backup
gernotbelger
parents:
diff changeset
83 */
679b1442c886 local backup
gernotbelger
parents:
diff changeset
84 public static final void configureLogging() {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
85 final File configDir = new File(CONFIG_PATH);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
86 final File propFile = new File(configDir, LOG4J_PROPERTIES);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
87
679b1442c886 local backup
gernotbelger
parents:
diff changeset
88 if (propFile.isFile() && propFile.canRead()) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
89 try {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
90 PropertyConfigurator.configure(propFile.toURI().toURL());
679b1442c886 local backup
gernotbelger
parents:
diff changeset
91 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
92 catch (final MalformedURLException mue) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
93 mue.printStackTrace(System.err);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
94 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
95 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
96 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
97
679b1442c886 local backup
gernotbelger
parents:
diff changeset
98 public static final Configuration readConfiguration() {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
99 final File configDir = new File(CONFIG_PATH);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
100 final File configFile = new File(configDir, CONFIG);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
101
679b1442c886 local backup
gernotbelger
parents:
diff changeset
102 logger.debug("Configuration file: " + configFile.getAbsolutePath());
679b1442c886 local backup
gernotbelger
parents:
diff changeset
103
679b1442c886 local backup
gernotbelger
parents:
diff changeset
104 if (configFile.isFile() && configFile.canRead()) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
105 try {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
106 final Configuration conf = new Configuration(configFile);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
107 conf.initialize();
679b1442c886 local backup
gernotbelger
parents:
diff changeset
108
679b1442c886 local backup
gernotbelger
parents:
diff changeset
109 return conf;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
110 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
111 catch (final IOException ioe) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
112 logger.error("Error while reading configuration.");
679b1442c886 local backup
gernotbelger
parents:
diff changeset
113 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
114 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
115
679b1442c886 local backup
gernotbelger
parents:
diff changeset
116 return null;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
117 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
118
679b1442c886 local backup
gernotbelger
parents:
diff changeset
119 public SinfoProof() {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
120 // empty constructor
679b1442c886 local backup
gernotbelger
parents:
diff changeset
121 super();
679b1442c886 local backup
gernotbelger
parents:
diff changeset
122 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
123
679b1442c886 local backup
gernotbelger
parents:
diff changeset
124 public static void main(final String[] args) throws ServerException, IOException {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
125 logger.info("Starting console client.");
679b1442c886 local backup
gernotbelger
parents:
diff changeset
126
679b1442c886 local backup
gernotbelger
parents:
diff changeset
127 final User user = new DefaultUser("belger", "belger", null, false, new ArrayList<String>(), new ArrayList<String>());
679b1442c886 local backup
gernotbelger
parents:
diff changeset
128 final UserClient userClient = new UserClient(serverUrl);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
129 final Element userElement = userClient.findUser(user);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
130 final String userUuid = userElement.getAttributeNS(ArtifactNamespaceContext.NAMESPACE_URI, "uuid");
679b1442c886 local backup
gernotbelger
parents:
diff changeset
131
679b1442c886 local backup
gernotbelger
parents:
diff changeset
132 /* Init Collection */
679b1442c886 local backup
gernotbelger
parents:
diff changeset
133 final Collection collection = createCollection(serverUrl, locale, userUuid);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
134 final org.dive4elements.river.client.shared.model.Artifact sinfoArtifact = ArtifactHelper.createArtifact(serverUrl, locale, "sinfo", null);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
135 final Collection newColl = CollectionHelper.addArtifact(collection, sinfoArtifact, serverUrl, locale); // wichtig; sorgt für Persistenz
679b1442c886 local backup
gernotbelger
parents:
diff changeset
136
679b1442c886 local backup
gernotbelger
parents:
diff changeset
137 /* Select River */
679b1442c886 local backup
gernotbelger
parents:
diff changeset
138 final Data data = new StringOptionsData("river", "river", new DataItem[] { new DefaultDataItem("Beispielfluss", "Beispielfluss", "Beispielfluss") });
679b1442c886 local backup
gernotbelger
parents:
diff changeset
139 final Artifact calcModeArtifact = feedAndGo(sinfoArtifact, new Data[] { data }, 0);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
140
679b1442c886 local backup
gernotbelger
parents:
diff changeset
141 /* Select CalcMode */
679b1442c886 local backup
gernotbelger
parents:
diff changeset
142 final DataList calcModes = calcModeArtifact.getArtifactDescription().getCurrentData(); // AUSWAHL-Möglichkeiten
679b1442c886 local backup
gernotbelger
parents:
diff changeset
143 final DataItem minMaxFlowdepth = calcModes.get(0).getItems()[2];
679b1442c886 local backup
gernotbelger
parents:
diff changeset
144 final Data dataCalcMode = new StringOptionsData("calculation_mode", "calculation_mode", new DataItem[] { minMaxFlowdepth });
679b1442c886 local backup
gernotbelger
parents:
diff changeset
145 final Artifact rangeArtifact = feedAndGo(calcModeArtifact, new Data[] { dataCalcMode }, 0);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
146
679b1442c886 local backup
gernotbelger
parents:
diff changeset
147 /* Select Distance */
679b1442c886 local backup
gernotbelger
parents:
diff changeset
148
679b1442c886 local backup
gernotbelger
parents:
diff changeset
149 // entweder eine bestimmte Range
679b1442c886 local backup
gernotbelger
parents:
diff changeset
150 final Data dataFrom = new StringOptionsData("ld_from", "ld_from", new DataItem[] { new DefaultDataItem("0", "0", "0") });
679b1442c886 local backup
gernotbelger
parents:
diff changeset
151 final Data dataTo = new StringOptionsData("ld_to", "ld_to", new DataItem[] { new DefaultDataItem("100", "100", "100") });
679b1442c886 local backup
gernotbelger
parents:
diff changeset
152 final Data[] rangeFromToDetermined = new Data[] { dataFrom, dataTo };
679b1442c886 local backup
gernotbelger
parents:
diff changeset
153
679b1442c886 local backup
gernotbelger
parents:
diff changeset
154 // oder die maxRange
679b1442c886 local backup
gernotbelger
parents:
diff changeset
155 final DataList list = rangeArtifact.getArtifactDescription().getCurrentData();
679b1442c886 local backup
gernotbelger
parents:
diff changeset
156 final Data[] rangeMax = new Data[] { list.get(0), list.get(1) };
679b1442c886 local backup
gernotbelger
parents:
diff changeset
157 final Artifact dataChoiceArtifact = feedAndGo(rangeArtifact, rangeMax, 0);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
158
679b1442c886 local backup
gernotbelger
parents:
diff changeset
159 /* Select Fixpunkte */
679b1442c886 local backup
gernotbelger
parents:
diff changeset
160 final List<Recommendation> recs = collection.getRecommendations();
679b1442c886 local backup
gernotbelger
parents:
diff changeset
161 if (recs != null) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
162
679b1442c886 local backup
gernotbelger
parents:
diff changeset
163 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
164 final String combinedId = "[c23bcc26-2282-47b7-b262-5a328a372926;staticwqkms;0;ELBE_W-MNQ1890-2006_Fixierungsdaten_150-280.csv]#[d2e2e1da-81cd-40e6-8857-dddc22252c29;bedheight;0;FP-2015_0-502]"; // SCHWACHSTELLE...
679b1442c886 local backup
gernotbelger
parents:
diff changeset
165 final Data pair = new StringOptionsData("Ausgewählte Differenzen", "diffids", new DataItem[] { new DefaultDataItem(null, null, combinedId) });
679b1442c886 local backup
gernotbelger
parents:
diff changeset
166 final Artifact export = feedAndGo(dataChoiceArtifact, new Data[] { pair }, 0);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
167 final Recommendation r;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
168
679b1442c886 local backup
gernotbelger
parents:
diff changeset
169 /* Export calculation */
679b1442c886 local backup
gernotbelger
parents:
diff changeset
170 final OutputMode[] modes = export.getArtifactDescription().getOutputModes();
679b1442c886 local backup
gernotbelger
parents:
diff changeset
171 if (modes != null) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
172
679b1442c886 local backup
gernotbelger
parents:
diff changeset
173 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
174 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
175
679b1442c886 local backup
gernotbelger
parents:
diff changeset
176 private static Artifact feedAndGo(final Artifact inputArtifact, final Data[] data, final int reachableStateIndex)
679b1442c886 local backup
gernotbelger
parents:
diff changeset
177 throws ConnectionException, ServerException {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
178 final Artifact artifact = feed(serverUrl, locale, inputArtifact, data);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
179 return advance(serverUrl, locale, artifact, getReachableStateByIndex(artifact, reachableStateIndex));
679b1442c886 local backup
gernotbelger
parents:
diff changeset
180 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
181
679b1442c886 local backup
gernotbelger
parents:
diff changeset
182 private static String getReachableStateByIndex(final Artifact artifact, final int index) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
183
679b1442c886 local backup
gernotbelger
parents:
diff changeset
184 final String[] states = artifact.getArtifactDescription().getReachableStates();
679b1442c886 local backup
gernotbelger
parents:
diff changeset
185 if (states != null) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
186 if (states.length > index) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
187 return states[index];
679b1442c886 local backup
gernotbelger
parents:
diff changeset
188 } else {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
189 return states[0];
679b1442c886 local backup
gernotbelger
parents:
diff changeset
190 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
191 } else {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
192 return "";
679b1442c886 local backup
gernotbelger
parents:
diff changeset
193 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
194 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
195
679b1442c886 local backup
gernotbelger
parents:
diff changeset
196 public static Collection createCollection(final String url, final String locale, final String ownerId) throws ConnectionException {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
197 final Document create = ClientProtocolUtils.newCreateCollectionDocument(null);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
198 final HttpClient client = new HttpClientImpl(url, locale);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
199 final Document doc = (Document) client.createCollection(create, ownerId, new DocumentResponseHandler());
679b1442c886 local backup
gernotbelger
parents:
diff changeset
200 final String uuid = XMLUtils.xpathString(doc, CreateCollectionServiceImpl.XPATH_COLLECTION_UUID, ArtifactNamespaceContext.INSTANCE);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
201 final String ttlStr = XMLUtils.xpathString(doc, CreateCollectionServiceImpl.XPATH_COLLECTION_TTL, ArtifactNamespaceContext.INSTANCE);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
202
679b1442c886 local backup
gernotbelger
parents:
diff changeset
203 return new DefaultCollection(uuid, Long.valueOf(ttlStr), uuid);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
204 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
205
679b1442c886 local backup
gernotbelger
parents:
diff changeset
206 public static Artifact feed(final String url, final String locale, final Artifact artifact, final Data[] data) throws ServerException, ConnectionException {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
207 final Document feed = ClientProtocolUtils.newFeedDocument(artifact.getUuid(), artifact.getHash(), createKVP(data));
679b1442c886 local backup
gernotbelger
parents:
diff changeset
208
679b1442c886 local backup
gernotbelger
parents:
diff changeset
209 final HttpClient client = new HttpClientImpl(url, locale);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
210
679b1442c886 local backup
gernotbelger
parents:
diff changeset
211 final Document description = (Document) client.feed(new org.dive4elements.artifacts.httpclient.objects.Artifact(artifact.getUuid(), artifact.getHash()),
679b1442c886 local backup
gernotbelger
parents:
diff changeset
212 feed, new DocumentResponseHandler());
679b1442c886 local backup
gernotbelger
parents:
diff changeset
213
679b1442c886 local backup
gernotbelger
parents:
diff changeset
214 final String result = XMLUtils.xpathString(description, FeedServiceImpl.XPATH_RESULT, ArtifactNamespaceContext.INSTANCE);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
215
679b1442c886 local backup
gernotbelger
parents:
diff changeset
216 if (result == null || !result.equals(FeedServiceImpl.OPERATION_FAILURE)) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
217 return (Artifact) new FLYSArtifactCreator().create(description);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
218 } else if (result != null && result.equals(FeedServiceImpl.OPERATION_FAILURE)) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
219 final String msg = XMLUtils.xpathString(description, FeedServiceImpl.XPATH_RESULT_MSG, ArtifactNamespaceContext.INSTANCE);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
220 throw new ServerException(msg);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
221 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
222
679b1442c886 local backup
gernotbelger
parents:
diff changeset
223 throw new ServerException(FeedServiceImpl.ERROR_FEED_DATA);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
224 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
225
679b1442c886 local backup
gernotbelger
parents:
diff changeset
226 protected static String[][] createKVP(final Data[] data) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
227 if (data != null) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
228 final String[][] kvp = new String[data.length][];
679b1442c886 local backup
gernotbelger
parents:
diff changeset
229
679b1442c886 local backup
gernotbelger
parents:
diff changeset
230 int i = 0;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
231
679b1442c886 local backup
gernotbelger
parents:
diff changeset
232 for (final Data d : data) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
233 final DataItem[] items = d.getItems();
679b1442c886 local backup
gernotbelger
parents:
diff changeset
234 final String key = d.getLabel();
679b1442c886 local backup
gernotbelger
parents:
diff changeset
235 final String value = d.getStringValue();
679b1442c886 local backup
gernotbelger
parents:
diff changeset
236
679b1442c886 local backup
gernotbelger
parents:
diff changeset
237 kvp[i++] = new String[] { key, value };
679b1442c886 local backup
gernotbelger
parents:
diff changeset
238 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
239
679b1442c886 local backup
gernotbelger
parents:
diff changeset
240 return kvp;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
241 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
242 return null;
679b1442c886 local backup
gernotbelger
parents:
diff changeset
243 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
244
679b1442c886 local backup
gernotbelger
parents:
diff changeset
245 public static Artifact advance(final String url, final String locale, final Artifact artifact, final String target)
679b1442c886 local backup
gernotbelger
parents:
diff changeset
246 throws ConnectionException, ServerException {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
247 final Document advance = ClientProtocolUtils.newAdvanceDocument(artifact.getUuid(), artifact.getHash(), target);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
248 final HttpClient client = new HttpClientImpl(url, locale);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
249
679b1442c886 local backup
gernotbelger
parents:
diff changeset
250 final Document description = (Document) client.advance(
679b1442c886 local backup
gernotbelger
parents:
diff changeset
251 new org.dive4elements.artifacts.httpclient.objects.Artifact(artifact.getUuid(), artifact.getHash()), advance, new DocumentResponseHandler());
679b1442c886 local backup
gernotbelger
parents:
diff changeset
252
679b1442c886 local backup
gernotbelger
parents:
diff changeset
253 if (description == null) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
254 throw new ServerException(AdvanceServiceImpl.ERROR_ADVANCE_ARTIFACT);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
255 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
256
679b1442c886 local backup
gernotbelger
parents:
diff changeset
257 final String result = XMLUtils.xpathString(description, AdvanceServiceImpl.XPATH_RESULT, ArtifactNamespaceContext.INSTANCE);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
258
679b1442c886 local backup
gernotbelger
parents:
diff changeset
259 if (result == null || !result.equals(AdvanceServiceImpl.OPERATION_FAILURE)) {
679b1442c886 local backup
gernotbelger
parents:
diff changeset
260 return (Artifact) new FLYSArtifactCreator().create(description);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
261 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
262
679b1442c886 local backup
gernotbelger
parents:
diff changeset
263 throw new ServerException(AdvanceServiceImpl.ERROR_ADVANCE_ARTIFACT);
679b1442c886 local backup
gernotbelger
parents:
diff changeset
264 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
265
679b1442c886 local backup
gernotbelger
parents:
diff changeset
266 // FIXME
679b1442c886 local backup
gernotbelger
parents:
diff changeset
267 }
679b1442c886 local backup
gernotbelger
parents:
diff changeset
268 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8:

http://dive4elements.wald.intevation.org