annotate src/de/mpiwg/itgroup/eSciDoc/Tools/EScidocBasicHandler.java @ 15:e0efd3a9d2f0

changes for escidoc1.4
author dwinter
date Mon, 17 Sep 2012 10:21:04 +0200
parents a844f6948dd8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
1 package de.mpiwg.itgroup.eSciDoc.Tools;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
2 import java.io.BufferedReader;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
3 import java.io.ByteArrayInputStream;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
4 import java.io.File;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
5 import java.io.FileWriter;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
6 import java.io.IOException;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
7 import java.io.InputStream;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
8 import java.io.InputStreamReader;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
9 import java.io.UnsupportedEncodingException;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
10 import java.net.URI;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
11 import java.net.URL;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
12 import java.net.URLEncoder;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
13 import java.util.ArrayList;
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
14 import java.util.HashMap;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
15 import java.util.List;
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
16 import java.util.Map;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
17 import java.util.StringTokenizer;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
18 import java.util.regex.Matcher;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
19 import java.util.regex.Pattern;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
20
c6929e63b0b8 first import
dwinter
parents:
diff changeset
21 import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
22
c6929e63b0b8 first import
dwinter
parents:
diff changeset
23
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
24 import org.apache.commons.codec.EncoderException;
15
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
25 import org.apache.http.Header;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
26 import org.apache.http.HttpEntity;
15
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
27 import org.apache.http.HttpMessage;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
28 import org.apache.http.HttpResponse;
15
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
29 import org.apache.http.NameValuePair;
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
30 import org.apache.http.StatusLine;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
31 import org.apache.http.client.ClientProtocolException;
15
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
32 import org.apache.http.client.CookieStore;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
33 import org.apache.http.client.HttpClient;
15
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
34 import org.apache.http.client.entity.UrlEncodedFormEntity;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
35 import org.apache.http.client.methods.HttpDelete;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
36 import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
37 import org.apache.http.client.methods.HttpGet;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
38 import org.apache.http.client.methods.HttpPost;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
39 import org.apache.http.client.methods.HttpPut;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
40 import org.apache.http.client.methods.HttpRequestBase;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
41 import org.apache.http.client.params.ClientPNames;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
42 import org.apache.http.client.params.CookiePolicy;
15
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
43 import org.apache.http.client.protocol.ClientContext;
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
44 import org.apache.http.cookie.Cookie;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
45 import org.apache.http.entity.InputStreamEntity;
15
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
46 import org.apache.http.entity.StringEntity;
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
47 import org.apache.http.impl.client.BasicCookieStore;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
48 import org.apache.http.impl.client.DefaultHttpClient;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
49 import org.apache.http.impl.conn.SingleClientConnManager;
15
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
50 import org.apache.http.impl.cookie.BasicClientCookie;
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
51 import org.apache.http.message.BasicNameValuePair;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
52 import org.apache.http.protocol.BasicHttpContext;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
53 import org.apache.http.protocol.HttpContext;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
54 import org.apache.log4j.Logger;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
55 import org.jdom.Attribute;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
56 import org.jdom.Document;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
57 import org.jdom.Element;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
58 import org.jdom.JDOMException;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
59 import org.jdom.Text;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
60 import org.jdom.input.SAXBuilder;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
61 import org.jdom.xpath.XPath;
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
62 import org.w3c.dom.Node;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
63
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
64 import de.mpiwg.itgroup.eSciDoc.echoObjects.ECHOObject;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
65 import de.mpiwg.itgroup.eSciDoc.echoObjects.ECHORessource;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
66 import de.mpiwg.itgroup.eSciDoc.exceptions.ConnectorException;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
67 import de.mpiwg.itgroup.eSciDoc.exceptions.ESciDocXmlObjectException;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
68 import de.mpiwg.itgroup.eSciDoc.exceptions.ObjectNotUniqueError;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
69 import de.mpiwg.itgroup.eSciDoc.utils.eSciDocXmlObject;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
70
c6929e63b0b8 first import
dwinter
parents:
diff changeset
71
c6929e63b0b8 first import
dwinter
parents:
diff changeset
72
15
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
73
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
74 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
75 * Handler to create a connection with an eScidoc server
c6929e63b0b8 first import
dwinter
parents:
diff changeset
76 * @author dwinter
c6929e63b0b8 first import
dwinter
parents:
diff changeset
77 *
c6929e63b0b8 first import
dwinter
parents:
diff changeset
78 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
79 public class EScidocBasicHandler {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
80
c6929e63b0b8 first import
dwinter
parents:
diff changeset
81 private Logger logger;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
82 private String eScidocServer;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
83 private int eScidocPort;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
84 private String user;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
85 private String password;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
86 public String eScidocUrl;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
87 private HttpClient httpclient=null;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
88
c6929e63b0b8 first import
dwinter
parents:
diff changeset
89 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
90 * @param eScidocServer
c6929e63b0b8 first import
dwinter
parents:
diff changeset
91 * @param eScidocPort
c6929e63b0b8 first import
dwinter
parents:
diff changeset
92 * @param user
c6929e63b0b8 first import
dwinter
parents:
diff changeset
93 * @param password
c6929e63b0b8 first import
dwinter
parents:
diff changeset
94 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
95 public EScidocBasicHandler(String eScidocServer, int eScidocPort,String user, String password){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
96 this.eScidocServer=eScidocServer;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
97 this.eScidocPort=eScidocPort;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
98 this.user=user;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
99 this.password=password;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
100 this.eScidocUrl="http://"+eScidocServer+":"+String.valueOf(eScidocPort);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
101
c6929e63b0b8 first import
dwinter
parents:
diff changeset
102 logger = Logger.getRootLogger();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
103
c6929e63b0b8 first import
dwinter
parents:
diff changeset
104 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
105
15
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
106 private void addHandleToMethod(final HttpMessage method,
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
107 final String eSciDocUserHandle) {
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
108 method.setHeader("Cookie", "escidocCookie=" + eSciDocUserHandle);
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
109 }
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
110
c6929e63b0b8 first import
dwinter
parents:
diff changeset
111 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
112 * Logs you into escidoc and sets the httpclient field to the current client for this session
c6929e63b0b8 first import
dwinter
parents:
diff changeset
113 * @return gives you the httpclient for further usage.
c6929e63b0b8 first import
dwinter
parents:
diff changeset
114 * @throws HttpException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
115 * @throws ClientProtocolException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
116 * @throws IOException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
117 */
15
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
118
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
119
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
120 public HttpClient login() throws IOException {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
121 httpclient = new DefaultHttpClient();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
122
15
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
123
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
124 //httpclient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
125 httpclient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.RFC_2109);
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
126 httpclient.getParams().setParameter("http.protocol.single-cookie-header", true);
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
127
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
128 HttpPost httppost = new HttpPost(eScidocUrl+"/aa/login?target=/");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
129
c6929e63b0b8 first import
dwinter
parents:
diff changeset
130 logger.debug("executing request");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
131
c6929e63b0b8 first import
dwinter
parents:
diff changeset
132 HttpResponse response = httpclient.execute(httppost);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
133 //HttpEntity entity = httppost.getRes
c6929e63b0b8 first import
dwinter
parents:
diff changeset
134
c6929e63b0b8 first import
dwinter
parents:
diff changeset
135 System.out.println("----------------------------------------");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
136 System.out.println(response.getStatusLine());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
137
c6929e63b0b8 first import
dwinter
parents:
diff changeset
138 HttpEntity entity = response.getEntity();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
139 if (entity != null) { entity.consumeContent();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
140 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
141
15
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
142
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
143
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
144 String params="j_username="+user+"&j_password="+password;
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
145
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
146
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
147 List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
148 nameValuePairs.add(new BasicNameValuePair("j_username",
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
149 user));
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
150 nameValuePairs.add(new BasicNameValuePair("j_password",
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
151 password));
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
152 HttpPost httpget = new HttpPost(eScidocUrl+"/aa/j_spring_security_check");
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
153
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
154 httpget.setEntity(new UrlEncodedFormEntity(nameValuePairs));
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
155 //httpget.setEntity(new StringEntity(params));
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
156 //
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
157 //
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
158 response = httpclient.execute(httpget);
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
159 // //entity = response.getEntity();
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
160 //
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
161 System.out.println("----------------------------------------");
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
162 System.out.println(response.getStatusLine());
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
163
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
164 entity = response.getEntity();
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
165 InputStream ct = entity.getContent();
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
166
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
167 String ret = EScidocBasicHandler.convertStreamToString(ct);
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
168 // if (entity != null) { entity.consumeContent();
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
169 // }
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
170 //
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
171 System.out.println(ret);
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
172
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
173
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
174 httppost = new HttpPost(eScidocUrl+"/aa/login?target=/");
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
175
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
176 logger.debug("executing request");
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
177
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
178 response = httpclient.execute(httppost);
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
179 //HttpEntity entity = httppost.getRes
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
180
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
181 System.out.println("----------------------------------------");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
182 System.out.println(response.getStatusLine());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
183
c6929e63b0b8 first import
dwinter
parents:
diff changeset
184 entity = response.getEntity();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
185 if (entity != null) { entity.consumeContent();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
186 }
15
e0efd3a9d2f0 changes for escidoc1.4
dwinter
parents: 8
diff changeset
187
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
188
c6929e63b0b8 first import
dwinter
parents:
diff changeset
189 return httpclient;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
190 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
191
c6929e63b0b8 first import
dwinter
parents:
diff changeset
192 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
193 * Sends a PUT request to the escidoc client. performs a login if not done before.
c6929e63b0b8 first import
dwinter
parents:
diff changeset
194 * @param command
c6929e63b0b8 first import
dwinter
parents:
diff changeset
195 * @param body
c6929e63b0b8 first import
dwinter
parents:
diff changeset
196 * @return
c6929e63b0b8 first import
dwinter
parents:
diff changeset
197 * @throws ClientProtocolException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
198 * @throws IOException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
199 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
200 public HttpResponse eScidocPut(String command, InputStream body) throws IOException {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
201 HttpPut httpput = new HttpPut(eScidocUrl+command);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
202 return eScidocRequestBase(httpput,command,body);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
203
c6929e63b0b8 first import
dwinter
parents:
diff changeset
204 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
205
c6929e63b0b8 first import
dwinter
parents:
diff changeset
206 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
207 * Sends a PUT request to the escidoc client. performs a login if not done before.
c6929e63b0b8 first import
dwinter
parents:
diff changeset
208 * @param command
c6929e63b0b8 first import
dwinter
parents:
diff changeset
209 * @param url
c6929e63b0b8 first import
dwinter
parents:
diff changeset
210 * @return
c6929e63b0b8 first import
dwinter
parents:
diff changeset
211 * @throws ClientProtocolException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
212 * @throws IOException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
213 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
214 public HttpResponse eScidocPut(String command, URL url) throws IOException{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
215
c6929e63b0b8 first import
dwinter
parents:
diff changeset
216 HttpPut httpput = new HttpPut(eScidocUrl+command);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
217 return eScidocRequestBase(httpput,command,url.openStream());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
218 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
219 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
220 * Sends a POST request to the escidoc client. performs a login if not done before.
c6929e63b0b8 first import
dwinter
parents:
diff changeset
221 * @param command
c6929e63b0b8 first import
dwinter
parents:
diff changeset
222 * @param body
c6929e63b0b8 first import
dwinter
parents:
diff changeset
223 * @return
c6929e63b0b8 first import
dwinter
parents:
diff changeset
224 * @throws ClientProtocolException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
225 * @throws IOException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
226 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
227 public HttpResponse eScidocPost(String command, InputStream body) throws IOException{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
228 HttpPost httppost = new HttpPost(eScidocUrl+command);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
229 return eScidocRequestBase(httppost,command,body);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
230 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
231
c6929e63b0b8 first import
dwinter
parents:
diff changeset
232 /** Sends a POST request to the escidoc client. performs a login if not done before.
c6929e63b0b8 first import
dwinter
parents:
diff changeset
233 * @param command
c6929e63b0b8 first import
dwinter
parents:
diff changeset
234 * @param url
c6929e63b0b8 first import
dwinter
parents:
diff changeset
235 * @return
c6929e63b0b8 first import
dwinter
parents:
diff changeset
236 * @throws ClientProtocolException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
237 * @throws IOException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
238 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
239 public HttpResponse eScidocPost(String command, URL url) throws IOException{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
240 HttpPost httppost = new HttpPost(eScidocUrl+command);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
241
c6929e63b0b8 first import
dwinter
parents:
diff changeset
242
c6929e63b0b8 first import
dwinter
parents:
diff changeset
243 return eScidocRequestBase(httppost,command,url.openStream());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
244 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
245 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
246 * Sends a GET request to the escidoc client. performs a login if not done before.
c6929e63b0b8 first import
dwinter
parents:
diff changeset
247 * @param command
c6929e63b0b8 first import
dwinter
parents:
diff changeset
248 * @return
c6929e63b0b8 first import
dwinter
parents:
diff changeset
249 * @throws ClientProtocolException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
250 * @throws IOException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
251 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
252 public HttpResponse eScidocGet(String command) throws IOException{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
253 HttpGet httpget = new HttpGet(eScidocUrl+command);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
254 return eScidocRequestBase(httpget,command,null);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
255
c6929e63b0b8 first import
dwinter
parents:
diff changeset
256 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
257
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
258
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
259
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
260 /** Send a delete command to the escidoc client. performs a login if necessara
c6929e63b0b8 first import
dwinter
parents:
diff changeset
261 * @param command
c6929e63b0b8 first import
dwinter
parents:
diff changeset
262 * @return
c6929e63b0b8 first import
dwinter
parents:
diff changeset
263 * @throws ClientProtocolException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
264 * @throws IOException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
265 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
266 public HttpResponse eScidocDelete(String command) throws IOException{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
267 HttpDelete httpdelete = new HttpDelete(eScidocUrl+command);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
268 return eScidocRequestBase(httpdelete,command,null);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
269
c6929e63b0b8 first import
dwinter
parents:
diff changeset
270 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
271 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
272 * Generates and sends a general request to escidoc, used by escidocPUT, POST and GET.
c6929e63b0b8 first import
dwinter
parents:
diff changeset
273 * @param httpBase
c6929e63b0b8 first import
dwinter
parents:
diff changeset
274 * @param command
c6929e63b0b8 first import
dwinter
parents:
diff changeset
275 * @param body
c6929e63b0b8 first import
dwinter
parents:
diff changeset
276 * @return
c6929e63b0b8 first import
dwinter
parents:
diff changeset
277 * @throws ClientProtocolException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
278 * @throws IOException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
279 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
280 private HttpResponse eScidocRequestBase(HttpRequestBase httpBase, String command, InputStream body) throws IOException {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
281
c6929e63b0b8 first import
dwinter
parents:
diff changeset
282
c6929e63b0b8 first import
dwinter
parents:
diff changeset
283
c6929e63b0b8 first import
dwinter
parents:
diff changeset
284 if (httpclient==null)
c6929e63b0b8 first import
dwinter
parents:
diff changeset
285 login();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
286
c6929e63b0b8 first import
dwinter
parents:
diff changeset
287
c6929e63b0b8 first import
dwinter
parents:
diff changeset
288
c6929e63b0b8 first import
dwinter
parents:
diff changeset
289 if (HttpEntityEnclosingRequestBase.class.isInstance(httpBase)){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
290
c6929e63b0b8 first import
dwinter
parents:
diff changeset
291
c6929e63b0b8 first import
dwinter
parents:
diff changeset
292 if (body!=null){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
293
c6929e63b0b8 first import
dwinter
parents:
diff changeset
294
c6929e63b0b8 first import
dwinter
parents:
diff changeset
295
c6929e63b0b8 first import
dwinter
parents:
diff changeset
296 HttpEntity entity = new InputStreamEntity(body, -1);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
297 ((HttpEntityEnclosingRequestBase)httpBase).setEntity(entity);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
298 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
299 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
300
2
dwinter
parents: 0
diff changeset
301 //logger.debug("executing request:"+httpBase.getRequestLine());
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
302
c6929e63b0b8 first import
dwinter
parents:
diff changeset
303
c6929e63b0b8 first import
dwinter
parents:
diff changeset
304 HttpResponse status = httpclient.execute(httpBase);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
305 //HttpEntity responseEntity = response.getEntity();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
306
c6929e63b0b8 first import
dwinter
parents:
diff changeset
307 logger.debug("----------------------------------------");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
308 logger.debug(status);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
309
c6929e63b0b8 first import
dwinter
parents:
diff changeset
310
c6929e63b0b8 first import
dwinter
parents:
diff changeset
311 return status;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
312 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
313
c6929e63b0b8 first import
dwinter
parents:
diff changeset
314 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
315 *
c6929e63b0b8 first import
dwinter
parents:
diff changeset
316 * To convert the InputStream to String we use the BufferedReader.readLine()
c6929e63b0b8 first import
dwinter
parents:
diff changeset
317 * method. We iterate until the BufferedReader return null which means
c6929e63b0b8 first import
dwinter
parents:
diff changeset
318 * there's no more data to read. Each line will appended to a StringBuilder
c6929e63b0b8 first import
dwinter
parents:
diff changeset
319 * and returned as String.
c6929e63b0b8 first import
dwinter
parents:
diff changeset
320
c6929e63b0b8 first import
dwinter
parents:
diff changeset
321 * @param is
c6929e63b0b8 first import
dwinter
parents:
diff changeset
322 * @return
c6929e63b0b8 first import
dwinter
parents:
diff changeset
323 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
324 public static String convertStreamToString(InputStream is) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
325
c6929e63b0b8 first import
dwinter
parents:
diff changeset
326 BufferedReader reader = new BufferedReader(new InputStreamReader(is));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
327 StringBuilder sb = new StringBuilder();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
328
c6929e63b0b8 first import
dwinter
parents:
diff changeset
329 String line = null;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
330 try {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
331 while ((line = reader.readLine()) != null) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
332 sb.append(line + "\n");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
333 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
334 } catch (IOException e) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
335 e.printStackTrace();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
336 } finally {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
337 try {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
338 is.close();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
339 } catch (IOException e) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
340 e.printStackTrace();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
341 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
342 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
343
c6929e63b0b8 first import
dwinter
parents:
diff changeset
344 return sb.toString();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
345 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
346
c6929e63b0b8 first import
dwinter
parents:
diff changeset
347 /** converts a stream to a string
c6929e63b0b8 first import
dwinter
parents:
diff changeset
348 * @param string
c6929e63b0b8 first import
dwinter
parents:
diff changeset
349 * @return
c6929e63b0b8 first import
dwinter
parents:
diff changeset
350 * @throws UnsupportedEncodingException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
351 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
352 public static InputStream convertStringToStream(String string) throws UnsupportedEncodingException{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
353 return new ByteArrayInputStream(string.getBytes("utf-8"));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
354 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
355
c6929e63b0b8 first import
dwinter
parents:
diff changeset
356 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
357 * Find the last-modification-date from an escidoc xml-file (item/container/context)
c6929e63b0b8 first import
dwinter
parents:
diff changeset
358 * @param ret
c6929e63b0b8 first import
dwinter
parents:
diff changeset
359 * @return
c6929e63b0b8 first import
dwinter
parents:
diff changeset
360 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
361 public static String getDateStamp(String ret) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
362 Pattern p = Pattern.compile("last-modification-date=\"([^\"]*)\"");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
363
c6929e63b0b8 first import
dwinter
parents:
diff changeset
364 Matcher m = p.matcher(ret);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
365
c6929e63b0b8 first import
dwinter
parents:
diff changeset
366 m.find();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
367
c6929e63b0b8 first import
dwinter
parents:
diff changeset
368 String txt;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
369 try {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
370 txt = m.group(1);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
371 } catch (IllegalStateException e) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
372
c6929e63b0b8 first import
dwinter
parents:
diff changeset
373 e.printStackTrace();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
374 System.out.println(ret);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
375 throw new IllegalStateException();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
376 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
377 return txt;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
378 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
379
c6929e63b0b8 first import
dwinter
parents:
diff changeset
380 /**
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
381 * Find the content-model (item)
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
382 * @param ret
c6929e63b0b8 first import
dwinter
parents:
diff changeset
383 * @return
c6929e63b0b8 first import
dwinter
parents:
diff changeset
384 * @throws IOException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
385 * @throws JDOMException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
386 * @throws UnsupportedEncodingException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
387 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
388 public static String getContentModel(InputStream escidocstream) throws UnsupportedEncodingException, JDOMException, IOException {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
389 SAXBuilder builder = new SAXBuilder();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
390 Document doc = builder.build(escidocstream);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
391
c6929e63b0b8 first import
dwinter
parents:
diff changeset
392 Element root= doc.getRootElement();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
393 XPath xpath = EScidocTools.getESciDocXpath("escidocItem:properties/srel:content-model/@xlink:href");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
394
c6929e63b0b8 first import
dwinter
parents:
diff changeset
395 Attribute node = (Attribute) xpath.selectSingleNode(root);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
396
c6929e63b0b8 first import
dwinter
parents:
diff changeset
397 return node.getValue();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
398
c6929e63b0b8 first import
dwinter
parents:
diff changeset
399 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
400
c6929e63b0b8 first import
dwinter
parents:
diff changeset
401
c6929e63b0b8 first import
dwinter
parents:
diff changeset
402 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
403 * Find the escidoc:id from an escidoc xml (item/container/context)
c6929e63b0b8 first import
dwinter
parents:
diff changeset
404 * @param ret
c6929e63b0b8 first import
dwinter
parents:
diff changeset
405 * @return
c6929e63b0b8 first import
dwinter
parents:
diff changeset
406 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
407 public static String getId(String ret) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
408 Pattern p = Pattern.compile("xlink:href=\"([^\"]*)\"");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
409
c6929e63b0b8 first import
dwinter
parents:
diff changeset
410 Matcher m = p.matcher(ret);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
411
c6929e63b0b8 first import
dwinter
parents:
diff changeset
412 m.find();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
413 String txt = m.group(1);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
414 String[] splitted = txt.split("/");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
415
c6929e63b0b8 first import
dwinter
parents:
diff changeset
416 String id = splitted[splitted.length-1];
c6929e63b0b8 first import
dwinter
parents:
diff changeset
417 return id;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
418 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
419
c6929e63b0b8 first import
dwinter
parents:
diff changeset
420
c6929e63b0b8 first import
dwinter
parents:
diff changeset
421 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
422 * Get the pid from an escidoc xml-file (item/container/context)
c6929e63b0b8 first import
dwinter
parents:
diff changeset
423 * @param retTxt
c6929e63b0b8 first import
dwinter
parents:
diff changeset
424 * @return
c6929e63b0b8 first import
dwinter
parents:
diff changeset
425 * @throws JDOMException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
426 * @throws IOException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
427 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
428 public static String getPID(String retTxt) throws JDOMException, IOException {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
429 SAXBuilder builder = new SAXBuilder();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
430
c6929e63b0b8 first import
dwinter
parents:
diff changeset
431
c6929e63b0b8 first import
dwinter
parents:
diff changeset
432 Document doc = builder.build(EScidocBasicHandler.convertStringToStream(retTxt));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
433
c6929e63b0b8 first import
dwinter
parents:
diff changeset
434 XPath xpath = XPath.newInstance("//prop:pid");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
435 xpath.addNamespace("prop", EScidocTools.prop);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
436
c6929e63b0b8 first import
dwinter
parents:
diff changeset
437 Element node = (Element) xpath.selectSingleNode(doc);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
438
c6929e63b0b8 first import
dwinter
parents:
diff changeset
439 return node.getTextTrim();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
440
c6929e63b0b8 first import
dwinter
parents:
diff changeset
441 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
442
c6929e63b0b8 first import
dwinter
parents:
diff changeset
443
c6929e63b0b8 first import
dwinter
parents:
diff changeset
444 /**
c6929e63b0b8 first import
dwinter
parents:
diff changeset
445 * get the number of the last version from an escidoc xml-file (item/container/context)
c6929e63b0b8 first import
dwinter
parents:
diff changeset
446 * @param retTxt
c6929e63b0b8 first import
dwinter
parents:
diff changeset
447 * @return
c6929e63b0b8 first import
dwinter
parents:
diff changeset
448 * @throws JDOMException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
449 * @throws IOException
c6929e63b0b8 first import
dwinter
parents:
diff changeset
450 */
c6929e63b0b8 first import
dwinter
parents:
diff changeset
451 public static String getLastVersionNumber(String retTxt) throws JDOMException, IOException {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
452 SAXBuilder builder = new SAXBuilder();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
453
c6929e63b0b8 first import
dwinter
parents:
diff changeset
454 Document doc = builder.build(EScidocBasicHandler.convertStringToStream(retTxt));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
455
c6929e63b0b8 first import
dwinter
parents:
diff changeset
456
c6929e63b0b8 first import
dwinter
parents:
diff changeset
457 XPath xpath = XPath.newInstance("//prop:version[@xlink:title='This Version']/version:number");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
458 xpath.addNamespace("prop", EScidocTools.prop);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
459 xpath.addNamespace("xlink", EScidocTools.xlink);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
460 xpath.addNamespace("version", EScidocTools.version);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
461
c6929e63b0b8 first import
dwinter
parents:
diff changeset
462 Element node = (Element) xpath.selectSingleNode(doc);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
463
c6929e63b0b8 first import
dwinter
parents:
diff changeset
464 return node.getText();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
465 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
466
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
467 public static Object getXPath(Element node, String xpathString,boolean single) throws JDOMException {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
468 XPath xpath= XPath.newInstance(xpathString);
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
469 xpath.addNamespace("dc",EScidocTools.DC);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
470 xpath.addNamespace("escidocComponents",EScidocTools.escidocComponents);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
471 xpath.addNamespace("prop",EScidocTools.prop);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
472 xpath.addNamespace("xlink",EScidocTools.xlink);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
473 xpath.addNamespace("mpiwg",EScidocTools.MPIWG);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
474 xpath.addNamespace("version",EScidocTools.version);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
475
c6929e63b0b8 first import
dwinter
parents:
diff changeset
476 if (single)
c6929e63b0b8 first import
dwinter
parents:
diff changeset
477 return xpath.selectSingleNode(node);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
478 else
c6929e63b0b8 first import
dwinter
parents:
diff changeset
479 return xpath.selectNodes(node);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
480 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
481
c6929e63b0b8 first import
dwinter
parents:
diff changeset
482
c6929e63b0b8 first import
dwinter
parents:
diff changeset
483
c6929e63b0b8 first import
dwinter
parents:
diff changeset
484 public Long writeItem(eSciDocXmlObject escidocItem) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
485 // TODO Auto-generated method stub
c6929e63b0b8 first import
dwinter
parents:
diff changeset
486 return null;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
487 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
488
c6929e63b0b8 first import
dwinter
parents:
diff changeset
489
c6929e63b0b8 first import
dwinter
parents:
diff changeset
490
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
491 /** Updates an item at the eScidocserver
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
492 * @param escidocItem
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
493 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
494 * @throws JDOMException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
495 */
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
496 public Boolean updateItem(eSciDocXmlObject escidocItem) throws JDOMException {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
497 String cmd=escidocItem.getESciDocId();
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
498
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
499 try {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
500 String retStr = escidocItem.printXML();
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
501 logger.debug(retStr);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
502 String newObj = createObject(cmd, retStr);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
503 return escidocItem.upDateFromXML(newObj);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
504 } catch (Exception e) {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
505 // TODO Auto-generated catch block
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
506 e.printStackTrace();
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
507 return false;
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
508 }
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
509
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
510
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
511 }
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
512
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
513 /**
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
514 * Creates an item
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
515 * @param escidocItem
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
516 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
517 */
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
518 public Boolean createItem(eSciDocXmlObject escidocItem) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
519 String cmd="/ir/item";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
520
c6929e63b0b8 first import
dwinter
parents:
diff changeset
521 try {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
522 String retStr = escidocItem.printXML();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
523 String newObj = createObject(cmd, retStr);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
524 return escidocItem.upDateFromXML(newObj);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
525 } catch (Exception e) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
526 // TODO Auto-generated catch block
c6929e63b0b8 first import
dwinter
parents:
diff changeset
527 e.printStackTrace();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
528 return false;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
529 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
530
c6929e63b0b8 first import
dwinter
parents:
diff changeset
531
c6929e63b0b8 first import
dwinter
parents:
diff changeset
532 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
533
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
534 /**
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
535 * Creates a new object, i.e. does a httPut on command
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
536 * @param command should accept an httPut for creating new object, e.g. /ir/irtem
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
537 * @param xml eScidocXML describing the new object
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
538 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
539 * @throws Exception
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
540 */
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
541 public String createObject (String command,String xml) throws Exception {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
542
c6929e63b0b8 first import
dwinter
parents:
diff changeset
543
c6929e63b0b8 first import
dwinter
parents:
diff changeset
544 InputStream stream = new ByteArrayInputStream(xml.getBytes("utf-8"));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
545
c6929e63b0b8 first import
dwinter
parents:
diff changeset
546
c6929e63b0b8 first import
dwinter
parents:
diff changeset
547
c6929e63b0b8 first import
dwinter
parents:
diff changeset
548 //DefaultHttpClient httpclient = login();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
549
c6929e63b0b8 first import
dwinter
parents:
diff changeset
550
c6929e63b0b8 first import
dwinter
parents:
diff changeset
551
c6929e63b0b8 first import
dwinter
parents:
diff changeset
552 HttpResponse eScidocPut = eScidocPut(command, stream);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
553
c6929e63b0b8 first import
dwinter
parents:
diff changeset
554
c6929e63b0b8 first import
dwinter
parents:
diff changeset
555 //HttpEntity responseEntity = eScidocPut.getEntity();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
556
c6929e63b0b8 first import
dwinter
parents:
diff changeset
557 System.out.println("----------------------------------------");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
558 System.out.println(eScidocPut.getStatusLine());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
559
c6929e63b0b8 first import
dwinter
parents:
diff changeset
560 int code = eScidocPut.getStatusLine().getStatusCode();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
561
c6929e63b0b8 first import
dwinter
parents:
diff changeset
562 InputStream st = eScidocPut.getEntity().getContent();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
563 //System.out.println(EScidocBasicHandler.convertStreamToString(st));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
564 String xmlret = EScidocBasicHandler.convertStreamToString(st);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
565 if (code !=200){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
566 logger.error(xmlret);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
567 throw (new Exception("CAN not DO error:"+code));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
568
c6929e63b0b8 first import
dwinter
parents:
diff changeset
569 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
570 return xmlret;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
571
c6929e63b0b8 first import
dwinter
parents:
diff changeset
572 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
573
c6929e63b0b8 first import
dwinter
parents:
diff changeset
574
c6929e63b0b8 first import
dwinter
parents:
diff changeset
575
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
576 /**
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
577 * Searches in a given context for an object's pid and return its escidoc:id
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
578 * @param pid
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
579 * @param context
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
580 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
581 * @throws ConnectorException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
582 */
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
583 public String getIDfromPID(String pid, String context) throws ConnectorException {
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
584
c6929e63b0b8 first import
dwinter
parents:
diff changeset
585
c6929e63b0b8 first import
dwinter
parents:
diff changeset
586 String filter = "<param><filter name=\"http://escidoc.de/core/01/properties/pid\">";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
587
c6929e63b0b8 first import
dwinter
parents:
diff changeset
588 filter += pid;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
589 filter += "</filter></param>";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
590
c6929e63b0b8 first import
dwinter
parents:
diff changeset
591 String command = context
c6929e63b0b8 first import
dwinter
parents:
diff changeset
592 + "/resources/members/filter";
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
593 HttpResponse result;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
594 try {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
595 result = eScidocPost(command,
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
596 new ByteArrayInputStream(filter.getBytes()));
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
597 } catch (IOException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
598 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
599 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
600 throw new ConnectorException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
601 }
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
602
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
603 try {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
604 Document dom = new SAXBuilder().build(result.getEntity().getContent());
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
605
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
606 XPath xp = EScidocTools.getESciDocXpath("//escidocItem:item/@xlink:href");
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
607
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
608 Attribute attr = (Attribute)xp.selectSingleNode(dom);
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
609
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
610 if (attr!=null){
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
611 return attr.getValue();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
612 }
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
613
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
614 return null;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
615 //return convertStreamToString(result.getEntity().getContent());
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
616 } catch (IllegalStateException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
617 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
618 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
619 throw new ConnectorException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
620 } catch (JDOMException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
621 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
622 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
623 throw new ConnectorException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
624 } catch (IOException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
625 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
626 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
627 throw new ConnectorException();
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
628 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
629
c6929e63b0b8 first import
dwinter
parents:
diff changeset
630
c6929e63b0b8 first import
dwinter
parents:
diff changeset
631 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
632
c6929e63b0b8 first import
dwinter
parents:
diff changeset
633
c6929e63b0b8 first import
dwinter
parents:
diff changeset
634
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
635 /**
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
636 * submits the object
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
637 * @param obj
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
638 * @param comment
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
639 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
640 * @throws ClientProtocolException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
641 * @throws IOException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
642 * @throws JDOMException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
643 */
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
644 public HttpResponse submitAnObject(eSciDocXmlObject obj, String comment) throws ClientProtocolException, IOException, JDOMException {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
645 try {
2
dwinter
parents: 0
diff changeset
646 //addVersionPid(obj);
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
647 } catch (Exception e) {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
648 // TODO: handle exception
c6929e63b0b8 first import
dwinter
parents:
diff changeset
649 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
650
c6929e63b0b8 first import
dwinter
parents:
diff changeset
651 String retTxt = obj.printXML();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
652 String dateStamp = EScidocBasicHandler.getDateStamp(retTxt);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
653
c6929e63b0b8 first import
dwinter
parents:
diff changeset
654 String param = "<param last-modification-date=\""+dateStamp+"\">";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
655 param+="<comment>"+comment+"</comment>";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
656 param+="</param>";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
657
c6929e63b0b8 first import
dwinter
parents:
diff changeset
658 String command=obj.getESciDocId()+"/submit";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
659 HttpResponse result = eScidocPost(command, EScidocBasicHandler.convertStringToStream(param));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
660
c6929e63b0b8 first import
dwinter
parents:
diff changeset
661 return result;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
662
c6929e63b0b8 first import
dwinter
parents:
diff changeset
663 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
664
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
665 /**
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
666 * Generates a list of eScidocObject from a search or filter
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
667 * @param command search or filter command (e.g. /resources/members/filter)
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
668 * @param objectXpath xpath to the element which separates the objects in the resultXML of the filering or search, e.g.
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
669 * "/zs:searchRetrieveResponse/zs:records/zs:record/zs:recordData/escidocItem:item" in a search
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
670 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
671 * @throws IOException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
672 * @throws IllegalStateException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
673 * @throws JDOMException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
674 * @throws ESciDocXmlObjectException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
675 */
4
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
676 public List<eSciDocXmlObject> getObjectsFromFilterResult(String command, String objectXpath) throws IOException, IllegalStateException, JDOMException,ESciDocXmlObjectException {
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
677 //String filter = "<param><filter></filter></param>";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
678 //
c6929e63b0b8 first import
dwinter
parents:
diff changeset
679 //String command = context
c6929e63b0b8 first import
dwinter
parents:
diff changeset
680 // + "/resources/members/filter";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
681 //HttpResponse result =eScidocPost(command,
c6929e63b0b8 first import
dwinter
parents:
diff changeset
682 //new ByteArrayInputStream(filter.getBytes()));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
683
c6929e63b0b8 first import
dwinter
parents:
diff changeset
684 //String command = context+"/resources/members";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
685
c6929e63b0b8 first import
dwinter
parents:
diff changeset
686 HttpResponse result =eScidocGet(command);
2
dwinter
parents: 0
diff changeset
687 //InputStream text=result.getEntity().getContent();
dwinter
parents: 0
diff changeset
688 //String tmtxt = convertStreamToString(text);
dwinter
parents: 0
diff changeset
689 //System.out.println(tmtxt);
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
690 Document dom = new SAXBuilder().build(result.getEntity().getContent());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
691 XPath xp = EScidocTools.getESciDocXpath(objectXpath);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
692
2
dwinter
parents: 0
diff changeset
693
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
694 List<Element> attr = (List<Element>)xp.selectNodes(dom);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
695 ArrayList<eSciDocXmlObject> ret = new ArrayList<eSciDocXmlObject>();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
696 for (Element el: attr){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
697 ret.add(new eSciDocXmlObject(el));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
698 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
699 return ret;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
700 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
701
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
702 /**
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
703 * @param command search or filter command (e.g. /resources/members/filter)
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
704 * @param objectXpath xpath to the element which separates the objects in the resultXML of the filering or search, e.g.
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
705 * "/zs:searchRetrieveResponse/zs:records/zs:record/zs:recordData/escidocItem:item" in a search
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
706 * @param mode mode=0 or 2 for pending, mode=1 for submitted objects
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
707 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
708 * @throws IOException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
709 * @throws IllegalStateException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
710 * @throws JDOMException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
711 */
2
dwinter
parents: 0
diff changeset
712 public Integer getNumberOfHitsFromFilterResult(String command,
dwinter
parents: 0
diff changeset
713 String objectXPath, int mode) throws IOException, IllegalStateException, JDOMException {
dwinter
parents: 0
diff changeset
714 String query="";
dwinter
parents: 0
diff changeset
715 if(mode==0 | mode==2){
dwinter
parents: 0
diff changeset
716 query="query=%22/properties/version/status%22=pending";
dwinter
parents: 0
diff changeset
717 } else {
dwinter
parents: 0
diff changeset
718 query="query=%22/properties/version/status%22=submitted";
dwinter
parents: 0
diff changeset
719 }
dwinter
parents: 0
diff changeset
720
dwinter
parents: 0
diff changeset
721 HttpResponse result =eScidocGet(command+"?maximumRecords=1&"+query);
dwinter
parents: 0
diff changeset
722 //InputStream text=result.getEntity().getContent();
dwinter
parents: 0
diff changeset
723 //String tmtxt = convertStreamToString(text);
dwinter
parents: 0
diff changeset
724 //System.out.println(tmtxt);
dwinter
parents: 0
diff changeset
725 Document dom = new SAXBuilder().build(result.getEntity().getContent());
dwinter
parents: 0
diff changeset
726 XPath xp = EScidocTools.getESciDocXpath("//srw:numberOfRecords");
dwinter
parents: 0
diff changeset
727
dwinter
parents: 0
diff changeset
728 Element attr = (Element)xp.selectSingleNode(dom);
dwinter
parents: 0
diff changeset
729
dwinter
parents: 0
diff changeset
730 Integer tmpInt = Integer.valueOf(attr.getText());
dwinter
parents: 0
diff changeset
731 return tmpInt;
dwinter
parents: 0
diff changeset
732 }
dwinter
parents: 0
diff changeset
733
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
734 /** adds a PID generated by the MPIWG PID generator to the object.
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
735 * @param obj
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
736 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
737 * @throws ClientProtocolException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
738 * @throws IOException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
739 * @throws JDOMException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
740 */
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
741 public boolean addVersionPid(eSciDocXmlObject obj) throws ClientProtocolException, IOException, JDOMException{
c6929e63b0b8 first import
dwinter
parents:
diff changeset
742 //HttpResponse ret = eScidocGet(href);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
743 //String retTxt = EScidocBasicHandler.convertStreamToString(ret.getEntity().getContent());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
744
c6929e63b0b8 first import
dwinter
parents:
diff changeset
745 String retTxt = obj.printXML();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
746 String dateStamp = EScidocBasicHandler.getDateStamp(retTxt);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
747 String pid=EScidocBasicHandler.getPID(retTxt);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
748 String versionNumber = EScidocBasicHandler.getLastVersionNumber(retTxt);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
749
c6929e63b0b8 first import
dwinter
parents:
diff changeset
750 String vpid=pid+":"+versionNumber;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
751
c6929e63b0b8 first import
dwinter
parents:
diff changeset
752 String param = "<param last-modification-date=\""+dateStamp+"\">";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
753 param+="<pid>"+vpid+"</pid>";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
754 param+="</param>";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
755 String command=obj.getESciDocId()+"/assign-version-pid";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
756
c6929e63b0b8 first import
dwinter
parents:
diff changeset
757 HttpResponse result = eScidocPost(command, EScidocBasicHandler.convertStringToStream(param));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
758
c6929e63b0b8 first import
dwinter
parents:
diff changeset
759 int code = result.getStatusLine().getStatusCode();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
760 result.getEntity().consumeContent();
2
dwinter
parents: 0
diff changeset
761 if (code!=200){
dwinter
parents: 0
diff changeset
762 if(code==450)
dwinter
parents: 0
diff changeset
763 return false;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
764 return false;
2
dwinter
parents: 0
diff changeset
765 }
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
766 return true;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
767
c6929e63b0b8 first import
dwinter
parents:
diff changeset
768
c6929e63b0b8 first import
dwinter
parents:
diff changeset
769 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
770
c6929e63b0b8 first import
dwinter
parents:
diff changeset
771
c6929e63b0b8 first import
dwinter
parents:
diff changeset
772
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
773 /**
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
774 * @param obj
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
775 * @param comment
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
776 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
777 * @throws IOException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
778 * @throws JDOMException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
779 */
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
780 public HttpResponse releaseAnObject(eSciDocXmlObject obj, String comment) throws IOException, JDOMException {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
781 //HttpResponse ret = getEsciDocHandler().eScidocGet(href);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
782 //String retTxt = EScidocBasicHandler.convertStreamToString(ret.getEntity().getContent());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
783
c6929e63b0b8 first import
dwinter
parents:
diff changeset
784 String retTxt = obj.printXML();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
785 String dateStamp = EScidocBasicHandler.getDateStamp(retTxt);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
786
c6929e63b0b8 first import
dwinter
parents:
diff changeset
787 String param = "<param last-modification-date=\""+dateStamp+"\">";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
788 param+="<comment>"+comment+"</comment>";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
789 param+="</param>";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
790
c6929e63b0b8 first import
dwinter
parents:
diff changeset
791 String command=obj.getESciDocId()+"/release";
c6929e63b0b8 first import
dwinter
parents:
diff changeset
792 HttpResponse result = eScidocPost(command, EScidocBasicHandler.convertStringToStream(param));
c6929e63b0b8 first import
dwinter
parents:
diff changeset
793
c6929e63b0b8 first import
dwinter
parents:
diff changeset
794 return result;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
795
c6929e63b0b8 first import
dwinter
parents:
diff changeset
796
c6929e63b0b8 first import
dwinter
parents:
diff changeset
797
c6929e63b0b8 first import
dwinter
parents:
diff changeset
798
c6929e63b0b8 first import
dwinter
parents:
diff changeset
799 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
800
c6929e63b0b8 first import
dwinter
parents:
diff changeset
801
c6929e63b0b8 first import
dwinter
parents:
diff changeset
802
c6929e63b0b8 first import
dwinter
parents:
diff changeset
803 public boolean upDateObject(eSciDocXmlObject obj) throws Exception {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
804 HttpResponse result = eScidocGet(obj.getESciDocId());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
805 if (result.getStatusLine().getStatusCode()!=200){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
806 logger.debug(result.getEntity().getContent());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
807 return false;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
808 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
809
c6929e63b0b8 first import
dwinter
parents:
diff changeset
810 String xml = convertStreamToString(result.getEntity().getContent());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
811 obj.upDateFromXML(xml);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
812 return true;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
813 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
814
c6929e63b0b8 first import
dwinter
parents:
diff changeset
815
c6929e63b0b8 first import
dwinter
parents:
diff changeset
816
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
817 /**check if object already exists
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
818 * @param indexField field in the /ir/items object to identify the object, for a list see /ir/items?operation=explain
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
819 * @param testString test if this exist in field.
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
820 * @param context
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
821 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
822 * @throws ConnectorException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
823 * @throws ObjectNotUniqueError
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
824 */
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
825 public ECHOObject alreadyExists(String indexField, String testString, String context, String comparator) throws ConnectorException, ObjectNotUniqueError {
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
826
c6929e63b0b8 first import
dwinter
parents:
diff changeset
827 String[] ct = context.split("/"); // gebraucht wird hier nur die id, dh ohne /ir/...
c6929e63b0b8 first import
dwinter
parents:
diff changeset
828
c6929e63b0b8 first import
dwinter
parents:
diff changeset
829 String contextId=ct[ct.length-1];
c6929e63b0b8 first import
dwinter
parents:
diff changeset
830
c6929e63b0b8 first import
dwinter
parents:
diff changeset
831
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
832 String searchString = String.format("\"%s\"%s\"%s\"",indexField,comparator,testString);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
833 searchString += " and "+String.format("\"%s\"=\"%s\"","context.objid",contextId);
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
834
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
835 HttpResponse ret;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
836 try{
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
837 searchString = URLEncoder.encode(searchString,"utf-8");
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
838 ret = eScidocGet("/srw/search/escidoc_all?operation=searchRetrieve&version=1.1&query="+searchString);
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
839 } catch (UnsupportedEncodingException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
840 throw new ConnectorException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
841 } catch (IOException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
842 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
843 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
844 throw new ConnectorException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
845 }
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
846
c6929e63b0b8 first import
dwinter
parents:
diff changeset
847 if (ret.getStatusLine().getStatusCode()!=200)
c6929e63b0b8 first import
dwinter
parents:
diff changeset
848 {
c6929e63b0b8 first import
dwinter
parents:
diff changeset
849 logger.debug("alreadyExists: error searchstring:"+searchString);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
850 HttpEntity ent = ret.getEntity();
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
851 if (ent!=null) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
852 try {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
853 ent.consumeContent();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
854 } catch (IOException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
855 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
856 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
857 throw new ConnectorException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
858 }
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
859 throw new ConnectorException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
860 }
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
861 }
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
862
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
863 try{
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
864 Document doc = new SAXBuilder().build(ret.getEntity().getContent());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
865
c6929e63b0b8 first import
dwinter
parents:
diff changeset
866 XPath xp = EScidocTools.getESciDocXpath("//zs:numberOfRecords/text()");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
867 String hitsStr = ((Text)xp.selectSingleNode(doc)).getText();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
868 Integer hits = Integer.valueOf(hitsStr);
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
869 if (hits>0){
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
870 if (hits>1)
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
871 throw new ObjectNotUniqueError();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
872 return getOldObjectFromESciDoc(doc);
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
873 //XPath xpItem = EScidocTools.getESciDocXpath("//escidocItem:item");
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
874
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
875
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
876 //Element attr = (Element) xp.selectSingleNode(doc);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
877
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
878 //return getOldObjectFromESciDoc(attr);
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
879 }
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
880 return null;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
881 } catch (IOException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
882 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
883 throw new ConnectorException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
884 } catch (IllegalStateException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
885 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
886 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
887 throw new ConnectorException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
888 } catch (JDOMException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
889 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
890 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
891 throw new ConnectorException();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
892 }
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
893 }
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
894
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
895
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
896
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
897 /**Nimmt ein u.U. modifiziertes eScidocObject (als jDom.Document) und sucht das dazugehšrige abgespeicherte Objekt.
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
898 * @param doc
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
899 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
900 */
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
901 private ECHOObject getOldObjectFromESciDoc(Document doc) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
902 Map<String,String>retMap = new HashMap<String,String>();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
903 XPath md5Nodes;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
904 XPath itemId;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
905 XPath lastModificationDate;
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
906 XPath objId;
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
907 try {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
908 md5Nodes= EScidocTools.getESciDocXpath(".//escidocComponents:component/escidocComponents:properties[prop:content-category[text()='index_meta']]/prop:checksum");
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
909 itemId= EScidocTools.getESciDocXpath(".//escidocItem:item/@xlink:href");
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
910 objId= EScidocTools.getESciDocXpath(".//escidocItem:item/@objid");
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
911 lastModificationDate = EScidocTools.getESciDocXpath(".//escidocItem:item/@last-modification-date");
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
912 } catch (JDOMException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
913 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
914 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
915 return null;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
916 }
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
917 Element node;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
918 Attribute idNode;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
919 Attribute lastModificationDateNode;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
920 try {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
921 node = (Element)md5Nodes.selectSingleNode(doc);
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
922 idNode = (Attribute)itemId.selectSingleNode(doc);
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
923 if (idNode==null){
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
924 idNode = (Attribute)objId.selectSingleNode(doc);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
925 }
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
926 lastModificationDateNode =(Attribute)lastModificationDate.selectSingleNode(doc);
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
927
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
928 } catch (JDOMException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
929 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
930 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
931 return null;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
932 }
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
933 String md5= node.getTextTrim();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
934 String escidocId= idNode.getValue();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
935 ECHORessource er;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
936 try {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
937 er = new ECHORessource();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
938 er.eScidocId=escidocId;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
939 er.indexMetaMD5stored=md5;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
940 er.lastModificationDate= lastModificationDateNode.getValue();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
941 } catch (IOException e) {
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
942 // TODO Auto-generated catch block
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
943 e.printStackTrace();
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
944 return null;
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
945 }
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
946 return er;
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
947 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
948
c6929e63b0b8 first import
dwinter
parents:
diff changeset
949
c6929e63b0b8 first import
dwinter
parents:
diff changeset
950
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
951 /**
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
952 * Suche alle Links aus den Komponenten des Types type, d.h. es wird auf dem Context in allen Elementen nach:
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
953 * ".//escidocComponents:component[escidocComponents:properties/prop:content-category[text()='"+type+"']]/escidocComponents:content/@xlink:href"
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
954 * gesucht.
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
955 *
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
956 * @param type
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
957 * @param context
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
958 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
959 * @throws IOException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
960 * @throws IllegalStateException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
961 * @throws JDOMException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
962 */
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
963 public ArrayList<String> getAllLinksOfContext(String type, String context) throws IOException, IllegalStateException, JDOMException {
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
964
c6929e63b0b8 first import
dwinter
parents:
diff changeset
965 HttpResponse result = eScidocGet(context+"/resources/members");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
966 Document doc = new SAXBuilder().build(result.getEntity().getContent());
c6929e63b0b8 first import
dwinter
parents:
diff changeset
967 XPath xp = EScidocTools.getESciDocXpath("//escidocItem:item");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
968 XPath id = EScidocTools.getESciDocXpath("./@xlink:href");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
969
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
970 XPath url= EScidocTools.getESciDocXpath(".//escidocComponents:component[escidocComponents:properties/prop:content-category[text()='"+type+"']]/escidocComponents:content/@xlink:href");
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
971
c6929e63b0b8 first import
dwinter
parents:
diff changeset
972 ArrayList<String> ret = new ArrayList<String>();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
973 List<Element> items = xp.selectNodes(doc);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
974
c6929e63b0b8 first import
dwinter
parents:
diff changeset
975 File fl = new File("/tmp/linksofcontext.out");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
976 FileWriter fw = new FileWriter(fl);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
977
c6929e63b0b8 first import
dwinter
parents:
diff changeset
978 for (Element item: items){
c6929e63b0b8 first import
dwinter
parents:
diff changeset
979
c6929e63b0b8 first import
dwinter
parents:
diff changeset
980 Attribute idAttribute = (Attribute)id.selectSingleNode(item);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
981 String idStr = idAttribute.getValue();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
982
c6929e63b0b8 first import
dwinter
parents:
diff changeset
983 Attribute urlAttribute = (Attribute)url.selectSingleNode(item);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
984 String urlStr = urlAttribute.getValue();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
985 ret.add(idStr+","+urlStr);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
986 logger.debug("getALLLinksOfContex:"+idStr+","+urlStr);
c6929e63b0b8 first import
dwinter
parents:
diff changeset
987 fw.write(idStr+","+urlStr+"\n");
c6929e63b0b8 first import
dwinter
parents:
diff changeset
988 }
c6929e63b0b8 first import
dwinter
parents:
diff changeset
989 fw.close();
c6929e63b0b8 first import
dwinter
parents:
diff changeset
990 return ret;
c6929e63b0b8 first import
dwinter
parents:
diff changeset
991 }
2
dwinter
parents: 0
diff changeset
992
dwinter
parents: 0
diff changeset
993
dwinter
parents: 0
diff changeset
994
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
995 /** Suche alle Objekte mit field = value, die Felder ergeben sich aus /srw/search/escidoc_all?operation= explain
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
996 *
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
997 * @param field
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
998 * @param value
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
999 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1000 * @throws ESciDocXmlObjectException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1001 */
4
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1002 public List<eSciDocXmlObject> getObjectsFromSearch(String field, String value) throws ESciDocXmlObjectException {
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1003 String query = "/srw/search/escidoc_all?operation=searchRetrieve&version=1.1&query=";
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1004 query+=field+"%3d";
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1005 try {
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1006 query+=URLEncoder.encode(value, "utf-8");
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1007 } catch (UnsupportedEncodingException e) {
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1008 // TODO Auto-generated catch block
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1009 e.printStackTrace();
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1010 throw new ESciDocXmlObjectException();
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1011 }
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1012
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1013 try {
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1014 return getObjectsFromFilterResult(query, "//escidocItem:item");
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1015 } catch (IllegalStateException e) {
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1016 // TODO Auto-generated catch block
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1017 e.printStackTrace();
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1018 } catch (IOException e) {
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1019 // TODO Auto-generated catch block
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1020 e.printStackTrace();
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1021 } catch (JDOMException e) {
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1022 // TODO Auto-generated catch block
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1023 e.printStackTrace();
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1024 }
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1025
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1026 throw new ESciDocXmlObjectException(); // fehler wenn kein return
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1027 }
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1028
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1029
cb5668b07bfc neuer check ob datei schon existiert.
dwinter
parents: 3
diff changeset
1030
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1031 /**
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1032 * Suche alle Objekte mit field = value, die Felder ergeben sich aus /srw/search/escidoc_all?operation= explain
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1033 *
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1034 * @param field
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1035 * @param value
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1036 * @param context
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1037 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1038 * @throws ESciDocXmlObjectException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1039 */
6
dwinter
parents: 4
diff changeset
1040 public List<eSciDocXmlObject> getObjectsFromSearch(String field,
dwinter
parents: 4
diff changeset
1041 String value, String context) throws ESciDocXmlObjectException {
dwinter
parents: 4
diff changeset
1042 String query = "/srw/search/escidoc_all?operation=searchRetrieve&version=1.1&query=";
dwinter
parents: 4
diff changeset
1043 query+=field+"%3d";
dwinter
parents: 4
diff changeset
1044 try {
dwinter
parents: 4
diff changeset
1045 String[] contextSplitted = context.split("/");
dwinter
parents: 4
diff changeset
1046 if(contextSplitted.length>0){
dwinter
parents: 4
diff changeset
1047 query+=URLEncoder.encode(value, "utf-8")+"%20and%20escidoc.context.objid%3d"+contextSplitted[contextSplitted.length-1];
dwinter
parents: 4
diff changeset
1048 }
dwinter
parents: 4
diff changeset
1049 } catch (UnsupportedEncodingException e) {
dwinter
parents: 4
diff changeset
1050 // TODO Auto-generated catch block
dwinter
parents: 4
diff changeset
1051 e.printStackTrace();
dwinter
parents: 4
diff changeset
1052 throw new ESciDocXmlObjectException();
dwinter
parents: 4
diff changeset
1053 }
dwinter
parents: 4
diff changeset
1054
dwinter
parents: 4
diff changeset
1055 try {
dwinter
parents: 4
diff changeset
1056 return getObjectsFromFilterResult(query, "//escidocItem:item");
dwinter
parents: 4
diff changeset
1057 } catch (IllegalStateException e) {
dwinter
parents: 4
diff changeset
1058 // TODO Auto-generated catch block
dwinter
parents: 4
diff changeset
1059 e.printStackTrace();
dwinter
parents: 4
diff changeset
1060 } catch (IOException e) {
dwinter
parents: 4
diff changeset
1061 // TODO Auto-generated catch block
dwinter
parents: 4
diff changeset
1062 e.printStackTrace();
dwinter
parents: 4
diff changeset
1063 } catch (JDOMException e) {
dwinter
parents: 4
diff changeset
1064 // TODO Auto-generated catch block
dwinter
parents: 4
diff changeset
1065 e.printStackTrace();
dwinter
parents: 4
diff changeset
1066 }
dwinter
parents: 4
diff changeset
1067
dwinter
parents: 4
diff changeset
1068 throw new ESciDocXmlObjectException(); // fehler wenn kein return
dwinter
parents: 4
diff changeset
1069
dwinter
parents: 4
diff changeset
1070
dwinter
parents: 4
diff changeset
1071 }
dwinter
parents: 4
diff changeset
1072
dwinter
parents: 4
diff changeset
1073
dwinter
parents: 4
diff changeset
1074
8
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1075 /**
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1076 * Teste ob das Item (itemString) mit Datestamp dateString versehen ist.
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1077 * @param itemString
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1078 * @param dateString
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1079 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1080 * @throws IOException
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1081 */
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1082 public boolean isCurrent(String itemString, String dateString) throws IOException {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1083 HttpResponse ret = eScidocGet(itemString);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1084 if (ret.getStatusLine().getStatusCode()!=200){
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1085 return false;
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1086 }
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1087 String dateStamp = getDateStamp(EScidocBasicHandler.convertStreamToString(ret.getEntity().getContent()));
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1088 if(dateStamp.equals(dateString))
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1089 return true;
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1090 return false;
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1091 }
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1092
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1093
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1094
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1095 /** holt alle ids von Objekten, die mit item Ÿber das Predicate Ÿber Relationen verbunden sind (item hat das Format /ir/item/XXX)
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1096 * @param itemString
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1097 * @param predicate
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1098 * @return
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1099 */
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1100 public List<String> getIdsOfRelationFromObject(String item,
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1101 String predicate) {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1102 String cmd=item+"/relations";
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1103 ArrayList<String> ret = new ArrayList<String>();
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1104
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1105 HttpResponse result;
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1106 try {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1107 result = eScidocGet(cmd);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1108 } catch (IOException e) {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1109 logger.error("Cannot deal with:"+cmd);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1110 return ret;
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1111 }
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1112
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1113 InputStream resultString;
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1114 try {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1115 resultString = result.getEntity().getContent();;
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1116 } catch (IllegalStateException e) {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1117 logger.error("Cannot deal with:"+cmd);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1118 return ret;
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1119 } catch (IOException e) {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1120 logger.error("Cannot deal with:"+cmd);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1121 return ret;
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1122 }
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1123
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1124 try {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1125 Document doc = (new SAXBuilder()).build(resultString);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1126 List<Attribute> xp = (List<Attribute>) getXPath(doc.getRootElement(), "//relations:relation[@predicate='"+predicate+"']/@xlink:href", false);
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1127
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1128 for (Attribute attr: xp){
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1129 ret.add(attr.getValue());
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1130 }
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1131 return ret;
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1132 } catch (JDOMException e) {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1133 // TODO Auto-generated catch block
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1134 e.printStackTrace();
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1135 } catch (IOException e) {
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1136 // TODO Auto-generated catch block
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1137 e.printStackTrace();
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1138 }
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1139 return ret;
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1140 }
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1141
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1142
a844f6948dd8 ?nderungen im Walker
dwinter
parents: 6
diff changeset
1143
3
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
1144
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
1145
58b52df9763c added update functionality if index.meta has changed
dwinter
parents: 2
diff changeset
1146
2
dwinter
parents: 0
diff changeset
1147
0
c6929e63b0b8 first import
dwinter
parents:
diff changeset
1148 }