From: <li...@us...> - 2008-10-24 16:13:39
|
Revision: 2248 http://cogkit.svn.sourceforge.net/cogkit/?rev=2248&view=rev Author: liuwt Date: 2008-10-24 16:13:25 +0000 (Fri, 24 Oct 2008) Log Message: ----------- a class for endpoint reference management Added Paths: ----------- trunk/current/src/cog/modules/transfer-gui/src/org/globus/transfer/reliable/client/eprmgmt/ trunk/current/src/cog/modules/transfer-gui/src/org/globus/transfer/reliable/client/eprmgmt/EPRManager.java Added: trunk/current/src/cog/modules/transfer-gui/src/org/globus/transfer/reliable/client/eprmgmt/EPRManager.java =================================================================== --- trunk/current/src/cog/modules/transfer-gui/src/org/globus/transfer/reliable/client/eprmgmt/EPRManager.java (rev 0) +++ trunk/current/src/cog/modules/transfer-gui/src/org/globus/transfer/reliable/client/eprmgmt/EPRManager.java 2008-10-24 16:13:25 UTC (rev 2248) @@ -0,0 +1,99 @@ +package org.globus.transfer.reliable.client.eprmgmt; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.Reader; +import java.io.Writer; + +import javax.xml.namespace.QName; + +import org.apache.axis.message.addressing.EndpointReferenceType; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.globus.wsrf.encoding.ObjectDeserializer; +import org.globus.wsrf.encoding.ObjectSerializer; +import org.xml.sax.InputSource; + +public class EPRManager { + private final static String EPR_DIR = "epr"; + private static Log logger = LogFactory.getLog(EPRManager.class); + + public void saveEPR(EndpointReferenceType epr) throws Exception { + if (null == epr) { + throw new Exception("can not save a null EPR"); + } + + String resourceKey = epr.getProperties().get_any()[0].getValue(); + if (null == resourceKey || "".equals(resourceKey.trim())) { + resourceKey = new Long(System.currentTimeMillis()).toString(); + } + + QName qname = new QName("", "epr"); + File file = new File(EPR_DIR, resourceKey); + Writer writer = null; + try { + writer = new FileWriter(file); + ObjectSerializer.serialize(writer, epr, qname); + } catch (Exception e) { + logger.debug(e.getMessage(), e); + throw e; + } finally { + if (null != writer) { + writer.close(); + } + } + + } + + public EndpointReferenceType getEPR(String resourceKey) throws Exception { + if (null == resourceKey || "".equals(resourceKey.trim())) { + throw new Exception("resource key can not be null"); + } + + File file = new File(EPR_DIR, resourceKey); + if (!file.exists() || !file.isFile()) { + return null; + } + + Reader reader = null; + try { + reader = new FileReader(file); + InputSource inputSource = new InputSource(reader); + EndpointReferenceType ret = (EndpointReferenceType)ObjectDeserializer.deserialize( + inputSource, EndpointReferenceType.class); + + return ret; + } catch(Exception e) { + logger.debug(e.getMessage(), e); + } finally { + if (null != reader) { + reader.close(); + } + } + + return null; + } + + public boolean deleteEPR(String resourceKey) { + if (null == resourceKey || "".equals(resourceKey.trim())) { + return true; + } + + File file = new File(EPR_DIR, resourceKey); + return file.delete(); + } + + public static void main(String[] args) { + EPRManager e = new EPRManager(); + EndpointReferenceType p; + try { + p = e.getEPR("22558696"); + //System.out.println(p); + } catch (Exception e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |