source: MDService2/trunk/MDService2/src/eu/clarin/cmdi/mdservice/action/VirtualCollectionProxyAction.java

Last change on this file was 1435, checked in by gaba, 13 years ago

publishing bookmarksets
corrections of workspacehandling

File size: 4.4 KB
Line 
1package eu.clarin.cmdi.mdservice.action;
2
3import java.io.BufferedInputStream;
4import java.io.BufferedReader;
5import java.io.ByteArrayInputStream;
6import java.io.ByteArrayOutputStream;
7import java.io.File;
8import java.io.FileInputStream;
9import java.io.IOException;
10import java.io.InputStream;
11import java.io.InputStreamReader;
12import java.io.OutputStream;
13import java.io.OutputStreamWriter;
14import java.net.HttpURLConnection;
15import java.net.MalformedURLException;
16import java.net.URL;
17import java.net.URLConnection;
18import java.text.DateFormat;
19import java.text.SimpleDateFormat;
20import java.util.Date;
21import java.util.HashMap;
22
23import org.w3c.dom.NodeList;
24
25import net.sf.json.JSONObject;
26import net.sf.json.xml.XMLSerializer;
27
28/**
29 *
30 *
31 */
32public class VirtualCollectionProxyAction extends WorkspaceAction {
33
34        private static final long serialVersionUID = 1L;
35       
36        //private String proxy_key = "virtual_collection";
37       
38        //private String qid;
39        //private String date;
40        //private String datefrom;
41        //private String dateto;
42        /*
43        public String getQid(){
44                return qid;
45        }
46        public void setQid(String qid){
47                this.qid = qid;
48        }
49        */
50        @Override
51        protected void  initialize(){
52                setFormat("VC");
53         }
54       
55        @Override 
56        public String getFullFormat() {
57                return "profile2" + getFormat();
58        }
59       
60        //@Override
61        //public String getProxyKey() {
62        //      return proxy_key;
63        //}
64       
65        public String getBaseURI() { 
66                String uri = "file:/" + Cache.getCache().getCacheIndexPath();           
67                return uri;
68        }
69       
70        @Override
71        public HashMap<String,String> createTransformerParams(){
72               
73                HashMap<String,String> hm = new HashMap<String,String>();
74               
75                if (getFullFormat() != null){
76                        hm.put("format", getFullFormat());
77            }
78            if (getQid() != null){
79                        hm.put("queryid", getQid());
80            }
81       
82                return hm;
83               
84        }
85        public String publish() throws Exception {
86               
87                // find the workspace data
88                NodeList list = (NodeList) getWorkspace(); 
89        InputStream is = this.DocumentToStream(list.item(0));
90                //xslt transform to request data
91                MDTransformer transformer = new MDTransformer();
92                transformer.setSrcFile(getTargetRequest());
93                transformer.setParams(createTransformerParams());
94                InputStream requestStream = transformer.transformXML(is);
95               
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                // find out
108                //"http://clarin.ids-mannheim.de/vcr/service/virtualcollection";
109                String urlstring = Admin.getConfig().getProperty("virtualcollection.uri");
110                String vcrstr = (String)getVcrid();//getQueryVcrid();
111                if (!vcrstr.equals("0")){
112                        urlstring = urlstring + "/" + vcrstr;
113                }
114                //qlist.item(0).get
115        URL url = new URL(urlstring);
116        String charset = "UTF-8"; 
117        URLConnection urlconn = url.openConnection();
118        HttpURLConnection conn = (HttpURLConnection) urlconn;
119        conn.setDoOutput(true);
120        conn.setDoInput(true); 
121        conn.setRequestMethod("POST");
122        String encoding = new sun.misc.BASE64Encoder().encode("test1@ids-mannheim.de:test1234".getBytes());
123        conn.setRequestProperty("Authorization", "Basic " + encoding);
124        conn.setRequestProperty("Content-Type", "text/xml;charset=" + charset);//; charset=utf-8");
125        conn.setRequestProperty("Accept-Charset", charset); 
126        //System.setProperty("http.keepAlive", "false");
127        //conn.setRequestMethod("GET");
128        //conn("Expect", "100-continue");
129        //System.setProperty("http.agent", "");
130       
131        OutputStreamWriter out = new OutputStreamWriter(
132                                  conn.getOutputStream());
133        out.write(writer.toString());
134        out.flush();
135        out.close();
136       
137        InputStream responseStream; 
138               
139        Integer respCode = conn.getResponseCode();
140        if (respCode == 200 || respCode == 201) { 
141                    responseStream = conn.getInputStream(); 
142                    //conn.getContent();
143        } else {   
144                        responseStream = conn.getErrorStream(); 
145        } 
146                 
147        setResultStream(responseStream);
148       
149                return SUCCESS;
150        }
151       
152}
Note: See TracBrowser for help on using the repository browser.