X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FWsParamSetManager.java;h=272e05bacc31af6f32a13d14dfc2c09d36a1342e;hb=0751c58086542f9e0466201b624f84d1efd547bb;hp=ab03d694ea32a6dda5a06024d35bc875c1ded9ff;hpb=7b5c84397cf62677cedfa8800022acacc905302c;p=jalview.git diff --git a/src/jalview/gui/WsParamSetManager.java b/src/jalview/gui/WsParamSetManager.java index ab03d69..272e05b 100644 --- a/src/jalview/gui/WsParamSetManager.java +++ b/src/jalview/gui/WsParamSetManager.java @@ -27,8 +27,11 @@ import jalview.util.MessageManager; import jalview.ws.params.ParamDatastoreI; import jalview.ws.params.ParamManager; import jalview.ws.params.WsParamSetI; +import jalview.xml.binding.jalview.ObjectFactory; +import jalview.xml.binding.jalview.WebServiceParameterSet; import java.io.File; +import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; @@ -39,6 +42,12 @@ import java.util.Hashtable; import java.util.List; import java.util.StringTokenizer; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBElement; +import javax.xml.bind.Marshaller; +import javax.xml.stream.XMLInputFactory; +import javax.xml.stream.XMLStreamReader; + /** * store and retrieve web service parameter sets. * @@ -61,7 +70,7 @@ public class WsParamSetManager implements ParamManager } StringTokenizer st = new StringTokenizer(files, "|"); String pfile = null; - ArrayList params = new ArrayList<>(); + List params = new ArrayList<>(); while (st.hasMoreTokens()) { pfile = st.nextToken(); @@ -111,31 +120,37 @@ public class WsParamSetManager implements ParamManager { List psets = new ArrayList<>(); InputStreamReader is = new InputStreamReader( - new java.io.FileInputStream(new File(filename)), "UTF-8"); - - jalview.schemabinding.version2.WebServiceParameterSet wspset = new jalview.schemabinding.version2.WebServiceParameterSet(); + new FileInputStream(new File(filename)), "UTF-8"); - org.exolab.castor.xml.Unmarshaller unmar = new org.exolab.castor.xml.Unmarshaller( - wspset); - unmar.setWhitespacePreserve(true); + WebServiceParameterSet wspset = null; try { - wspset = (jalview.schemabinding.version2.WebServiceParameterSet) unmar - .unmarshal(is); + JAXBContext jc = JAXBContext + .newInstance("jalview.xml.binding.jalview"); + javax.xml.bind.Unmarshaller um = jc.createUnmarshaller(); + XMLStreamReader streamReader = XMLInputFactory.newInstance() + .createXMLStreamReader(is); + JAXBElement jbe = um.unmarshal(streamReader, + WebServiceParameterSet.class); + wspset = jbe.getValue(); } catch (Exception ex) { throw new IOException(ex); } + if (wspset != null && wspset.getParameters().length() > 0) { - for (String url : wspset.getServiceURL()) + List urls = wspset.getServiceURL(); + final String[] urlArray = urls.toArray(new String[urls.size()]); + + for (String url : urls) { ParamDatastoreI parser = paramparsers.get(url); if (parser != null) { WsParamSetI pset = parser.parseServiceParameterFile( wspset.getName(), wspset.getDescription(), - wspset.getServiceURL(), wspset.getParameters()); + urlArray, wspset.getParameters()); if (pset != null) { pset.setSourceFile(filename); @@ -182,18 +197,19 @@ public class WsParamSetManager implements ParamManager } if (filename == null) { + // TODO: JAL-3048 webservice - not required for Jalview-JS + JalviewFileChooser chooser = new JalviewFileChooser("wsparams", "Web Service Parameter File"); chooser.setFileView(new JalviewFileView()); chooser.setDialogTitle(MessageManager .getString("label.choose_filename_for_param_file")); chooser.setToolTipText(MessageManager.getString("action.save")); - int value = chooser.showSaveDialog(Desktop.instance); + int value = chooser.showSaveDialog(Desktop.getInstance()); if (value == JalviewFileChooser.APPROVE_OPTION) { outfile = chooser.getSelectedFile(); - jalview.bin.Cache.setProperty("LAST_DIRECTORY", - outfile.getParent()); + Cache.setProperty("LAST_DIRECTORY", outfile.getParent()); filename = outfile.getAbsolutePath(); if (!filename.endsWith(".wsparams")) { @@ -214,13 +230,17 @@ public class WsParamSetManager implements ParamManager } paramFiles = paramFiles.concat(filename); } - jalview.bin.Cache.setProperty(WS_PARAM_FILES, paramFiles); - jalview.schemabinding.version2.WebServiceParameterSet paramxml = new jalview.schemabinding.version2.WebServiceParameterSet(); + Cache.setProperty(WS_PARAM_FILES, paramFiles); + + WebServiceParameterSet paramxml = new WebServiceParameterSet(); paramxml.setName(parameterSet.getName()); paramxml.setDescription(parameterSet.getDescription()); - paramxml.setServiceURL(parameterSet.getApplicableUrls().clone()); + for (String url : parameterSet.getApplicableUrls()) + { + paramxml.getServiceURL().add(url); + } paramxml.setVersion("1.0"); try { @@ -228,7 +248,12 @@ public class WsParamSetManager implements ParamManager parser.generateServiceParameterFile(parameterSet)); PrintWriter out = new PrintWriter(new OutputStreamWriter( new FileOutputStream(outfile), "UTF-8")); - paramxml.marshal(out); + JAXBContext jaxbContext = JAXBContext + .newInstance(WebServiceParameterSet.class); + Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); + jaxbMarshaller.marshal( + new ObjectFactory().createWebServiceParameterSet(paramxml), + out); out.close(); parameterSet.setSourceFile(filename); } catch (Exception e) @@ -289,7 +314,7 @@ public class WsParamSetManager implements ParamManager File pfile = new File(filename); if (pfile.exists() && pfile.canWrite()) { - if (JvOptionPane.showConfirmDialog(Desktop.instance, + if (JvOptionPane.showConfirmDialog(Desktop.getInstance(), "Delete the preset's file, too ?", "Delete User Preset ?", JvOptionPane.OK_CANCEL_OPTION) == JvOptionPane.OK_OPTION) {