source: MDService2/branches/MDService_simple3/src/eu/clarin/cmdi/mdservice/action/VirtualCollectionProxyAction.java @ 1540

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

Utils.java in place of Helpers and Admin
Diagnostics changes in GenericAction?
code arrangement, comments

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