Ignore:
Timestamp:
05/16/11 10:42:30 (13 years ago)
Author:
gaba
Message:

virtualcollection publish

Location:
MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action/VirtualCollectionProxyAction.java

    r1275 r1310  
    44import java.io.BufferedReader;
    55import java.io.ByteArrayInputStream;
     6import java.io.ByteArrayOutputStream;
     7import java.io.File;
    68import java.io.FileInputStream;
    79import java.io.IOException;
    810import java.io.InputStream;
    911import java.io.InputStreamReader;
     12import java.io.OutputStream;
    1013import java.io.OutputStreamWriter;
     14import java.net.HttpURLConnection;
    1115import java.net.MalformedURLException;
    1216import java.net.URL;
     
    1620import java.util.Date;
    1721import java.util.HashMap;
     22
     23import org.w3c.dom.NodeList;
    1824
    1925import net.sf.json.JSONObject;
     
    7177            }
    7278            if (getQid() != null){
    73                         hm.put("queryid", getFullFormat());
     79                        hm.put("queryid", getQid());
    7480            }
    7581       
     
    7884        }
    7985        public String publish() throws Exception {
    80                 // find the filename
    81                 //WorkspaceAction wadmin = new WorkspaceAction();
    82                 //wadmin.setType(WorkspaceAction.ADMIN);
    83                 //String workspace_filename = "";
    8486               
    85                 // find the querydata
    86                 //WorkspaceAction wa = new WorkspaceAction();
    87                 //wa.setType(WorkspaceAction.FILENAME);
    88                 //wa.setWorkspace_filename(workspace_filename);
    89                 InputStream is = new BufferedInputStream( new FileInputStream(getPath()));
     87                // find the workspace data
     88                NodeList list = (NodeList) getWorkspace();
     89        InputStream is = this.DocumentToStream(list.item(0));
    9090                //xslt transform to request data
    9191                MDTransformer transformer = new MDTransformer();
    9292                transformer.setSrcFile(getTargetRequest());
    9393                transformer.setParams(createTransformerParams());
    94                 InputStream resultStream = transformer.transformXML(is);
     94                InputStream requestStream = transformer.transformXML(is);
    9595               
    96                 //post to wcr
    97                 // Send the request
    98         URL url = new URL("http://clarin.ids-mannheim.de/vcr");
    99         URLConnection conn = url.openConnection();
     96                java.io.Writer writer = new java.io.StringWriter();
     97                char[] buffer = new char[1024];             
     98               
     99                java.io.Reader reader = new BufferedReader(                         
     100                new InputStreamReader(requestStream, "UTF-8"));                 
     101                int n;                 
     102                while ((n = reader.read(buffer)) != -1) {                     
     103                        writer.write(buffer, 0, n);
     104                }
     105       
     106                //create connection and post request data
     107               
     108        URL url = new URL("http://clarin.ids-mannheim.de/vcr/service/virtualcollection");
     109        String charset = "UTF-8";
     110        URLConnection urlconn = url.openConnection();
     111        HttpURLConnection conn = (HttpURLConnection) urlconn;
     112        conn.setDoOutput(true);
     113        conn.setDoInput(true);
     114        conn.setRequestMethod("POST");
    100115        String encoding = new sun.misc.BASE64Encoder().encode("test1@ids-mannheim.de:test1234".getBytes());
    101         conn.setRequestProperty ("Authorization", "Basic " + encoding);
    102         System.setProperty("http.agent", "");
    103         conn.setDoOutput(true);
    104         OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
     116        conn.setRequestProperty("Authorization", "Basic " + encoding);
     117        conn.setRequestProperty("Content-Type", "text/xml;charset=" + charset);//; charset=utf-8");
     118        conn.setRequestProperty("Accept-Charset", charset);
     119        //System.setProperty("http.keepAlive", "false");
     120        //conn.setRequestMethod("GET");
     121        //conn("Expect", "100-continue");
     122        //System.setProperty("http.agent", "");
    105123       
    106                 //write parameters
    107         writer.write(resultStream.toString());
    108         writer.flush();
     124        OutputStreamWriter out = new OutputStreamWriter(
     125                                  conn.getOutputStream());
     126        out.write(writer.toString());
     127        out.flush();
     128        out.close();
     129       
     130        InputStream responseStream;
     131               
     132        Integer respCode = conn.getResponseCode();
     133        if (respCode == 200 || respCode == 201) { 
     134                    responseStream = conn.getInputStream();
     135                    //conn.getContent();
     136        } else {   
     137                        responseStream = conn.getErrorStream();
     138        }
     139                 
     140        setResultStream(responseStream);
    109141       
    110         // Get the response
    111         //StringBuffer answer = new StringBuffer();
    112         //BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    113         //String line;
    114         //while ((line = reader.readLine()) != null) {
    115         //    answer.append(line);
    116         //}
    117         writer.close();
    118         //reader.close();
    119 
    120                 //answer.toString();
    121                
    122142                return SUCCESS;
    123143        }
  • MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action/WorkspaceAction.java

    r1273 r1310  
    111111       
    112112        private static WorkspaceAction singleton;
    113         private String workspacefile;
     113        private static String workspacefilename;
     114        private static Document workspace_doc;
     115       
    114116        //private String workspaceindex_path;
    115117        //private static Integer querycounter;
    116118        private static final Integer start_query = 1;
    117119       
    118         private static Document workspace_doc;
     120       
    119121       
    120122        //private HttpServletRequest request;
     
    152154        }
    153155
    154        
    155        
    156156        public WorkspaceAction () {             
    157                 workspacefile = Admin.getConfig().getProperty("workspace.path") + Admin.getConfig().getProperty("workspace.file");
    158                 //querycounter =
    159                 if (singleton == null){
     157                workspacefilename = Admin.getConfig().getProperty("workspaceprofile.path") + Admin.getConfig().getProperty("workspace.file");
     158                if (workspace_doc == null){
     159                        //workspacefilename = Admin.getConfig().getProperty("workspace.path") + Admin.getConfig().getProperty("workspace.file");
    160160                        initDocument();
    161                         singleton = this;
    162                 }
    163 
    164                
     161                }
    165162        }
    166163       
     
    638635                        expr = xpath.compile(getWorkspaceXPathExpression());
    639636                        //expression is evaluated with respect to a certain context node which is doc.
    640                 Object result = expr.evaluate(workspace_doc, XPathConstants.NODESET);
     637                        Object result = null;
     638                        try{
     639                        result = expr.evaluate(workspace_doc, XPathConstants.NODESET);
     640                        } catch(Exception e){
     641                               
     642                        }
     643
    641644             return result;
    642645        }
     
    672675        }
    673676
     677       
     678       
    674679public void initDocument() {
    675                
    676                 Integer counter = start_query;
    677                 boolean init=false;
    678                 String fname = getPath();//workspacefile;
    679                 File f = new File (fname);
    680                
    681                 if (!f.exists()) {
     680       
     681        boolean init=false;
     682        Integer counter = start_query;
     683        //String fname = getPath();//workspacefile;
     684        File f = new File (workspacefilename);
     685               
     686        if (!f.exists()) {
    682687                                // create new  counter document
    683688                                DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
     
    693698                                        root.appendChild(e);
    694699                                        e = workspace_doc.createElement("maxqid");
    695                                         e.setNodeValue(counter.toString());//setAttribute("id", c.toString());
     700                                        e.setNodeValue(counter.toString());
     701                                        e = workspace_doc.createElement("WorkspaceProfiles");
     702                                        root.appendChild(e);
     703
    696704                                        //updateQuerycounter();
    697705                                        this.saveDocument();
     
    711719                                        docBuilder = docFactory.newDocumentBuilder();               
    712720                                        try {
    713                                                         workspace_doc = docBuilder.parse(fname);
     721                                                        workspace_doc = docBuilder.parse(workspacefilename);
    714722                                        } catch (SAXException e) {
    715723                                                        // TODO Auto-generated catch block
     
    764772                        String xmlString = result.getWriter().toString();
    765773
    766                         File f = new File (getPath());//workspacefile);
     774                        File f = new File (workspacefilename);
    767775                        FileWriter fw;
    768776                        try {
Note: See TracChangeset for help on using the changeset viewer.