Changeset 1522 for MDService2


Ignore:
Timestamp:
09/06/11 18:54:58 (13 years ago)
Author:
vronk
Message:

moved params handling from RepoAction? to GenericAction?;
smaller changes to struts.xml (allowing format as part of the url again)

Location:
MDService2/branches/MDService_simple3
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • MDService2/branches/MDService_simple3/WebContent/static/test2.xml

    r1503 r1522  
    66                        <tr>
    77                        <td valign="top">
    8                                 <a class="request" href="/collections/htmllist?repository=clarin.at-mirror&amp;collection=&amp;maxdepth=1&amp;cache=skip">collections clarin.at</a>
     8                                <a class="request" href="collection/htmllist?repository=clarin.at-mirror&amp;collection=&amp;maxdepth=1&amp;cache=skip">collections clarin.at</a>
    99                        </td>
    1010                        <td valign="top">
    11                                 <a class="request" href="/collections/htmllist?repository=localhost-mirror&amp;collection=&amp;maxdepth=1&amp;cache=skip">collection localhost</a>
     11                                <a class="request" href="collection/htmllist?repository=localhost-mirror&amp;collection=&amp;maxdepth=1&amp;cache=skip">collection localhost</a>
    1212                        </td>
    1313                        <td valign="top">
    14                         <a class="request" href="/collections/htmllist?repository=gu.se-main&amp;collection=&amp;maxdepth=1&amp;cache=skip">collection gu.se</a>
     14                        <a class="request" href="collection/htmllist?repository=gu.se-main&amp;collection=&amp;maxdepth=1&amp;cache=skip">collection gu.se</a>
    1515                        </td>   
    1616                        </tr>
     
    2222                <a class="request" href="/terms/htmllist/?repository=clarin.at-mirror&amp;q=teiHeader">terms teiHeader- clarin.at</a>
    2323                 -->
     24                 
     25                 <a class="request count" href="/model/xml?repository=clarin.at-mirror&amp;q=teiHeader">model teiHeader</a>
    2426                <a class="request count" href="/terms/xml/?repository=localhost-mirror&amp;q=all">terms localhost</a>
    2527                <a class="query count" href="?squery=syntax">squery=syntax</a>
  • MDService2/branches/MDService_simple3/src/eu/clarin/cmdi/mdservice/action/GenericAction.java

    r1521 r1522  
    11package eu.clarin.cmdi.mdservice.action;
    22
    3 import java.io.ByteArrayInputStream;
    43import java.io.IOException;
    54import java.io.InputStream;
    65import java.io.StringWriter;
     6import java.util.ArrayList;
     7import java.util.Collections;
    78import java.util.HashMap;
     9import java.util.Iterator;
    810import java.util.Map;
    9 import javax.servlet.http.HttpServletRequest;
     11import java.util.Set;
     12import java.util.Map.Entry;
     13import org.w3c.dom.Document;
     14import org.w3c.dom.Node;
    1015import javax.xml.transform.TransformerFactory;
    1116import javax.xml.transform.dom.DOMSource;
    1217import javax.xml.transform.stream.StreamResult;
     18import java.io.ByteArrayInputStream;
     19
     20import javax.servlet.http.HttpServletRequest;
    1321
    1422import org.apache.log4j.Logger;
    1523import org.apache.struts2.interceptor.ServletRequestAware;
    16 import org.w3c.dom.Document;
    17 import org.w3c.dom.Node;
    1824
    1925import com.opensymphony.xwork2.ActionSupport;
     
    8793                 }
    8894                 return this.diagnostics;
    89                
    9095         }
    9196         
     
    110115        }
    111116         
     117       
    112118        public String getQ() {
    113                 return q;
     119                if  (q == null) {
     120                        return "";
     121                } else {
     122                        return q;
     123                }               
    114124        }
    115125
     
    236246         */
    237247        @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);
    245259        }
    246260
     
    259273        public String getParam(String key) {
    260274                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];
    276276                return v;
    277277        }
     
    348348        }
    349349       
     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   
    350365        public Map<String,String> createTransformerParams(){
    351366               
    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){
    359387                        hm.put("format", getFullFormat());
    360388            }
     
    381409                hm.put("repository_type", WorkspaceProfile.getRepositoryType(this.getRepository()));
    382410                //}
    383         */
    384                 //return hm;
    385                
    386         }
     411     
     412                return hm;             
     413        }
     414          */
    387415       
    388416        /**
     
    434462                        } */
    435463                }
    436                        
     464               
    437465                // add diagnostics
    438466                if (getDiagnostics().Exists()){
     
    462490                }
    463491               
     492               
    464493                if (getFormat().equals("xml")) {                       
    465494                        resultStream = sourceStream;   
     
    470499                        transformer.setSrcFile(getTargetProxy().getTargetRequest());
    471500                        transformer.setParams(createTransformerParams());
    472                         //transformer.setParams(getParams());
    473501                        // here the transformation is invoked
    474502                        resultStream = transformer.transformXML(sourceStream);
    475503                }
    476504               
    477                 //TODO
    478505                log.debug(getActionkey() + " success:" + (resultStream!=null));
    479                
    480                
    481506        }
    482507
  • MDService2/branches/MDService_simple3/src/eu/clarin/cmdi/mdservice/action/RepoAction.java

    r1521 r1522  
    8181        protected URL base_url ;
    8282
    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       
    9984        /**
    10085         * Based on the repository type - we create a typed Proxy, that will do the work.
     
    212197        }
    213198
    214        
    215         public String getFullFormat() {         
    216                 return actionkey + "2" + format;
    217         }
    218199
    219200        /**
     
    280261        }
    281262         
    282                
     263        /*     
    283264         @Override
    284265        public Map<String,String> createTransformerParams(){
     
    297278            }
    298279            return map;
     280            */
    299281            /*
    300282                HashMap<String,String> hm = new HashMap<String,String>();
     
    326308       
    327309                return hm;
     310        }
    328311                */
    329         }
     312       
    330313       
    331314
  • MDService2/branches/MDService_simple3/src/eu/clarin/cmdi/mdservice/proxy/BasicProxy.java

    r1515 r1522  
    4242 * and provides basic implementation where possible.
    4343 *
     44 * Tries to get the base_uri from Config (mdservice.properties) based on action_key
    4445 * 
    4546 * @author vronk
  • MDService2/branches/MDService_simple3/src/eu/clarin/cmdi/mdservice/proxy/RepoProxy.java

    r1521 r1522  
    4242 * and provides basic implementation where possible.
    4343 *
     44 * In contrast to base class BasicProxy RepoProxy tries to get the base_uri from WorkspaceProfile (based on the repository-parameter)
    4445 * 
    4546 * @author vronk
  • MDService2/branches/MDService_simple3/src/mdservice.properties

    r1516 r1522  
    3030xsl.profile2VC = profile2VC.xsl
    3131xsl.XCQL2XPATH = XCQL2Xpath.xsl
    32 xsl.recordset2htmltable = mdset2view.xsl
    33 xsl.recordset2htmlpage = mdset2view.xsl
    34 xsl.recordset2htmllist = mdset2view.xsl
    35 xsl.recordset2htmlsimple = mdset2view.xsl
     32xsl.search2htmltable = mdset2view.xsl
     33xsl.search2htmlpage = mdset2view.xsl
     34xsl.search2htmllist = mdset2view.xsl
     35xsl.search2htmlsimple = mdset2view.xsl
    3636xsl.sru2htmlpage = sru2view.xsl
    3737xsl.sru2htmltable = sru2view.xsl
  • MDService2/branches/MDService_simple3/src/struts.xml

    r1517 r1522  
    6969<!-- REPO ACTIONS -->
    7070                <action name="model/*" class="eu.clarin.cmdi.mdservice.action.RepoAction" method="execute">
    71                         <param name="q">{1}</param>
     71                        <param name="format">{1}</param>                       
    7272                        <param name="actionkey">model</param>                     
    7373                        <result type="stream">                     
     
    7878               
    7979                <action name="search/*" class="eu.clarin.cmdi.mdservice.action.RepoAction" method="execute">
    80                         <param name="q">{*}</param>
     80                        <param name="format">{1}</param>
    8181                        <param name="actionkey">search</param>                     
    8282                        <result type="stream">                     
     
    8686                </action>
    8787               
    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>                         
    8990                        <param name="actionkey">record</param>                     
    9091                        <result type="stream">                     
     
    9495                </action>
    9596               
    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>                       
    9799                        <param name="actionkey">collection</param>
    98100                        <result type="stream">         
  • MDService2/branches/MDService_simple3/src/xsl/static2view.xsl

    r1504 r1522  
    4141<xsl:template match="a[contains(@class,'query') or contains(@class,'request')]">
    4242
    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 ''" />
    4444 
    45  <xsl:variable name="data" >
     45 <xsl:variable name="target_url" >
    4646        <xsl:choose>                   
    4747                        <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)" />                                       
    4949                        </xsl:when>
    5050                        <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)" />                                                                               
    5252                        </xsl:when>
    5353                        <xsl:when test="@class='request'">
    54                                         <xsl:copy-of select="document(concat($base_url, @href))"  />                                                                           
     54                                        <xsl:copy-of select="concat($base_url, @href)"  />                                                                             
    5555                        </xsl:when>
    5656                                       
    5757                        <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)"  />                                                                         
    5959                        </xsl:when>
    6060                        <xsl:when test="starts-with(@href,'http:')">
     
    6969 </xsl:variable>
    7070
     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>
    7193       
    7294 <div class="cmds-ui-block" >
Note: See TracChangeset for help on using the changeset viewer.