Changeset 1522 for MDService2
- Timestamp:
- 09/06/11 18:54:58 (13 years ago)
- Location:
- MDService2/branches/MDService_simple3
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
MDService2/branches/MDService_simple3/WebContent/static/test2.xml
r1503 r1522 6 6 <tr> 7 7 <td valign="top"> 8 <a class="request" href=" /collections/htmllist?repository=clarin.at-mirror&collection=&maxdepth=1&cache=skip">collections clarin.at</a>8 <a class="request" href="collection/htmllist?repository=clarin.at-mirror&collection=&maxdepth=1&cache=skip">collections clarin.at</a> 9 9 </td> 10 10 <td valign="top"> 11 <a class="request" href=" /collections/htmllist?repository=localhost-mirror&collection=&maxdepth=1&cache=skip">collection localhost</a>11 <a class="request" href="collection/htmllist?repository=localhost-mirror&collection=&maxdepth=1&cache=skip">collection localhost</a> 12 12 </td> 13 13 <td valign="top"> 14 <a class="request" href=" /collections/htmllist?repository=gu.se-main&collection=&maxdepth=1&cache=skip">collection gu.se</a>14 <a class="request" href="collection/htmllist?repository=gu.se-main&collection=&maxdepth=1&cache=skip">collection gu.se</a> 15 15 </td> 16 16 </tr> … … 22 22 <a class="request" href="/terms/htmllist/?repository=clarin.at-mirror&q=teiHeader">terms teiHeader- clarin.at</a> 23 23 --> 24 25 <a class="request count" href="/model/xml?repository=clarin.at-mirror&q=teiHeader">model teiHeader</a> 24 26 <a class="request count" href="/terms/xml/?repository=localhost-mirror&q=all">terms localhost</a> 25 27 <a class="query count" href="?squery=syntax">squery=syntax</a> -
MDService2/branches/MDService_simple3/src/eu/clarin/cmdi/mdservice/action/GenericAction.java
r1521 r1522 1 1 package eu.clarin.cmdi.mdservice.action; 2 2 3 import java.io.ByteArrayInputStream;4 3 import java.io.IOException; 5 4 import java.io.InputStream; 6 5 import java.io.StringWriter; 6 import java.util.ArrayList; 7 import java.util.Collections; 7 8 import java.util.HashMap; 9 import java.util.Iterator; 8 10 import java.util.Map; 9 import javax.servlet.http.HttpServletRequest; 11 import java.util.Set; 12 import java.util.Map.Entry; 13 import org.w3c.dom.Document; 14 import org.w3c.dom.Node; 10 15 import javax.xml.transform.TransformerFactory; 11 16 import javax.xml.transform.dom.DOMSource; 12 17 import javax.xml.transform.stream.StreamResult; 18 import java.io.ByteArrayInputStream; 19 20 import javax.servlet.http.HttpServletRequest; 13 21 14 22 import org.apache.log4j.Logger; 15 23 import org.apache.struts2.interceptor.ServletRequestAware; 16 import org.w3c.dom.Document;17 import org.w3c.dom.Node;18 24 19 25 import com.opensymphony.xwork2.ActionSupport; … … 87 93 } 88 94 return this.diagnostics; 89 90 95 } 91 96 … … 110 115 } 111 116 117 112 118 public String getQ() { 113 return q; 119 if (q == null) { 120 return ""; 121 } else { 122 return q; 123 } 114 124 } 115 125 … … 236 246 */ 237 247 @SuppressWarnings("unchecked") 238 protected void loadParams() { 239 params = getServletRequest().getParameterMap(); 240 241 // add fullformat 242 String[] str = new String[1]; 243 str[0] = getFullFormat(); 244 params.put("fullformat", str);//getFullFormat()); 248 protected void loadParams() { 249 params = new HashMap(getServletRequest().getParameterMap()); 250 251 if (!getQ().equals("")) { 252 String[] sarr = new String[1]; 253 sarr[0] = getQ(); 254 params.put("q", sarr); 255 } 256 String[] sarr2 = new String[1]; 257 sarr2[0] =getFullFormat(); 258 params.put("fullformat", sarr2); 245 259 } 246 260 … … 259 273 public String getParam(String key) { 260 274 String v = ""; 261 if (key.equals("q")){ 262 if (params.get(key)==null){ 263 v = getQ(); 264 } else { 265 v=(String)params.get(key)[0]; 266 } 267 }else if (key.equals("format")){ 268 if (params.get(key)==null){ 269 v = getFormat(); 270 } else { 271 v=(String)params.get(key)[0]; 272 } 273 } else { 274 if (!(params.get(key)==null)) v=(String)params.get(key)[0]; 275 } 275 if (!(params.get(key)==null)) v=(String)params.get(key)[0]; 276 276 return v; 277 277 } … … 348 348 } 349 349 350 private static final Map<String, String> xsl_map; 351 static { 352 Map<String, String> aMap = new HashMap<String,String>(); 353 aMap.put("fullformat","format"); 354 aMap.put("format","fullformat"); 355 aMap.put("columns", "cols"); 356 aMap.put("maximumItems","maximumItems"); 357 aMap.put("startItem", "startItem"); 358 aMap.put("lang","lang"); 359 aMap.put("q", "q"); 360 aMap.put("repository","repository_name"); 361 //aMap.put("repository_type", "repository_type"); 362 xsl_map = Collections.unmodifiableMap(aMap); 363 } 364 350 365 public Map<String,String> createTransformerParams(){ 351 366 352 Map<String,String> hm = null; 353 354 return hm; 355 356 //new HashMap<String,String[]>(); 357 358 /*if (getFullFormat() != null){ 367 Map<String, String> map = new HashMap<String, String>(); 368 369 Set<Entry<String, String[]>> set = getParams().entrySet(); 370 Iterator<Entry<String, String[]>> i = set.iterator(); 371 372 while(i.hasNext()){ 373 Map.Entry<String,String[]> e = (Map.Entry<String,String[]>)i.next(); 374 if (xsl_map.containsKey((String)e.getKey())) { 375 map.put(xsl_map.get((String)e.getKey()), (String)e.getValue()[0]); 376 } 377 378 } 379 return map; 380 } 381 /* 382 public Map<String,String> createTransformerParams(){ 383 384 HashMap<String,String> hm = new HashMap<String,String>(); 385 386 if (getFullFormat() != null){ 359 387 hm.put("format", getFullFormat()); 360 388 } … … 381 409 hm.put("repository_type", WorkspaceProfile.getRepositoryType(this.getRepository())); 382 410 //} 383 */384 //return hm;385 386 }411 412 return hm; 413 } 414 */ 387 415 388 416 /** … … 434 462 } */ 435 463 } 436 464 437 465 // add diagnostics 438 466 if (getDiagnostics().Exists()){ … … 462 490 } 463 491 492 464 493 if (getFormat().equals("xml")) { 465 494 resultStream = sourceStream; … … 470 499 transformer.setSrcFile(getTargetProxy().getTargetRequest()); 471 500 transformer.setParams(createTransformerParams()); 472 //transformer.setParams(getParams());473 501 // here the transformation is invoked 474 502 resultStream = transformer.transformXML(sourceStream); 475 503 } 476 504 477 //TODO478 505 log.debug(getActionkey() + " success:" + (resultStream!=null)); 479 480 481 506 } 482 507 -
MDService2/branches/MDService_simple3/src/eu/clarin/cmdi/mdservice/action/RepoAction.java
r1521 r1522 81 81 protected URL base_url ; 82 82 83 private static final Map<String, String> xsl_map; 84 static { 85 Map<String, String> aMap = new HashMap<String,String>(); 86 aMap.put("fullformat","format"); 87 aMap.put("columns", "cols"); 88 aMap.put("maximumItems","maximumItems"); 89 aMap.put("startItem", "startItem"); 90 aMap.put("lang","lang"); 91 aMap.put("q", "q"); 92 aMap.put("repository","repository_name"); 93 //aMap.put("repository_type", "repository_type"); 94 xsl_map = Collections.unmodifiableMap(aMap); 95 } 96 97 98 83 99 84 /** 100 85 * Based on the repository type - we create a typed Proxy, that will do the work. … … 212 197 } 213 198 214 215 public String getFullFormat() {216 return actionkey + "2" + format;217 }218 199 219 200 /** … … 280 261 } 281 262 282 263 /* 283 264 @Override 284 265 public Map<String,String> createTransformerParams(){ … … 297 278 } 298 279 return map; 280 */ 299 281 /* 300 282 HashMap<String,String> hm = new HashMap<String,String>(); … … 326 308 327 309 return hm; 310 } 328 311 */ 329 }312 330 313 331 314 -
MDService2/branches/MDService_simple3/src/eu/clarin/cmdi/mdservice/proxy/BasicProxy.java
r1515 r1522 42 42 * and provides basic implementation where possible. 43 43 * 44 * Tries to get the base_uri from Config (mdservice.properties) based on action_key 44 45 * 45 46 * @author vronk -
MDService2/branches/MDService_simple3/src/eu/clarin/cmdi/mdservice/proxy/RepoProxy.java
r1521 r1522 42 42 * and provides basic implementation where possible. 43 43 * 44 * In contrast to base class BasicProxy RepoProxy tries to get the base_uri from WorkspaceProfile (based on the repository-parameter) 44 45 * 45 46 * @author vronk -
MDService2/branches/MDService_simple3/src/mdservice.properties
r1516 r1522 30 30 xsl.profile2VC = profile2VC.xsl 31 31 xsl.XCQL2XPATH = XCQL2Xpath.xsl 32 xsl. recordset2htmltable = mdset2view.xsl33 xsl. recordset2htmlpage = mdset2view.xsl34 xsl. recordset2htmllist = mdset2view.xsl35 xsl. recordset2htmlsimple = mdset2view.xsl32 xsl.search2htmltable = mdset2view.xsl 33 xsl.search2htmlpage = mdset2view.xsl 34 xsl.search2htmllist = mdset2view.xsl 35 xsl.search2htmlsimple = mdset2view.xsl 36 36 xsl.sru2htmlpage = sru2view.xsl 37 37 xsl.sru2htmltable = sru2view.xsl -
MDService2/branches/MDService_simple3/src/struts.xml
r1517 r1522 69 69 <!-- REPO ACTIONS --> 70 70 <action name="model/*" class="eu.clarin.cmdi.mdservice.action.RepoAction" method="execute"> 71 <param name=" q">{1}</param>71 <param name="format">{1}</param> 72 72 <param name="actionkey">model</param> 73 73 <result type="stream"> … … 78 78 79 79 <action name="search/*" class="eu.clarin.cmdi.mdservice.action.RepoAction" method="execute"> 80 <param name=" q">{*}</param>80 <param name="format">{1}</param> 81 81 <param name="actionkey">search</param> 82 82 <result type="stream"> … … 86 86 </action> 87 87 88 <action name="record" class="eu.clarin.cmdi.mdservice.action.RepoAction" method="execute"> 88 <action name="record/*" class="eu.clarin.cmdi.mdservice.action.RepoAction" method="execute"> 89 <param name="format">{1}</param> 89 90 <param name="actionkey">record</param> 90 91 <result type="stream"> … … 94 95 </action> 95 96 96 <action name="collection" class="eu.clarin.cmdi.mdservice.action.RepoAction" method="execute"> 97 <action name="collection/*" class="eu.clarin.cmdi.mdservice.action.RepoAction" method="execute"> 98 <param name="format">{1}</param> 97 99 <param name="actionkey">collection</param> 98 100 <result type="stream"> -
MDService2/branches/MDService_simple3/src/xsl/static2view.xsl
r1504 r1522 41 41 <xsl:template match="a[contains(@class,'query') or contains(@class,'request')]"> 42 42 43 <xsl:variable name="specific_prefix" select="if (contains(@href,'query')) then ' recordset/htmlpage/' else ''" />43 <xsl:variable name="specific_prefix" select="if (contains(@href,'query')) then 'search/htmlpage/' else ''" /> 44 44 45 <xsl:variable name=" data" >45 <xsl:variable name="target_url" > 46 46 <xsl:choose> 47 47 <xsl:when test="@class='request count'"> 48 <xsl:copy-of select=" document(concat($base_url,@href))" />48 <xsl:copy-of select="concat($base_url,@href)" /> 49 49 </xsl:when> 50 50 <xsl:when test="@class='query count'"> 51 <xsl:copy-of select=" document(concat($base_url, 'recordset/xml/', @href))" />51 <xsl:copy-of select="concat($base_url, 'search/xml/', @href)" /> 52 52 </xsl:when> 53 53 <xsl:when test="@class='request'"> 54 <xsl:copy-of select=" document(concat($base_url, @href))" />54 <xsl:copy-of select="concat($base_url, @href)" /> 55 55 </xsl:when> 56 56 57 57 <xsl:when test="@class='query'"> 58 <xsl:copy-of select=" document(concat($base_url, 'recordset/htmltable/', @href))" />58 <xsl:copy-of select="concat($base_url, 'search/htmltable/', @href)" /> 59 59 </xsl:when> 60 60 <xsl:when test="starts-with(@href,'http:')"> … … 69 69 </xsl:variable> 70 70 71 <xsl:variable name="data" > 72 <xsl:choose> 73 <xsl:when test="doc-available($target_url)" > 74 <xsl:choose> 75 <xsl:when test="contains(@class,'request') or contains(@class, 'query')"> 76 <xsl:copy-of select="document($target_url)" /> 77 </xsl:when> 78 <xsl:otherwise > 79 <xsl:copy-of select="." /> 80 </xsl:otherwise> 81 82 </xsl:choose> 83 </xsl:when> 84 <xsl:otherwise> 85 <diagnostics> 86 <diag:diagnostic> 87 <diag:message>Document not available!</diag:message> 88 </diag:diagnostic> 89 </diagnostics> 90 </xsl:otherwise> 91 </xsl:choose> 92 </xsl:variable> 71 93 72 94 <div class="cmds-ui-block" >
Note: See TracChangeset
for help on using the changeset viewer.