From: <bsc...@us...> - 2007-02-06 19:48:23
|
Revision: 222 http://svn.sourceforge.net/unicore/?rev=222&view=rev Author: bschuller Date: 2007-02-06 11:48:13 -0800 (Tue, 06 Feb 2007) Log Message: ----------- add service discovery; fix bpsupport setup Modified Paths: -------------- unicorex/uas-core/trunk/src/main/java/com/intel/gpe/services/uas/workflow/WorkflowTargetSystemImpl.java unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/BaseUASClient.java unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/JobClient.java unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/RegistryClient.java unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/StorageClient.java unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/TSSClient.java unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/UASWSResourceImpl.java unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/job/JobManagementImpl.java unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/registry/LocalRegistryImpl.java unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/sms/StorageManagementImpl.java unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/tss/TargetSystemFactoryImpl.java unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/tss/TargetSystemImpl.java unicorex/uas-core/trunk/src/test/java/de/fzj/unicore/uas/impl/TestVarious.java Added Paths: ----------- unicorex/uas-core/trunk/src/test/java/de/fzj/unicore/client/functional/TestServiceDiscovery.java unicorex/uas-core/trunk/src/test/java/de/fzj/unicore/uas/impl/TestBPSupport.java Modified: unicorex/uas-core/trunk/src/main/java/com/intel/gpe/services/uas/workflow/WorkflowTargetSystemImpl.java =================================================================== --- unicorex/uas-core/trunk/src/main/java/com/intel/gpe/services/uas/workflow/WorkflowTargetSystemImpl.java 2007-02-06 13:59:06 UTC (rev 221) +++ unicorex/uas-core/trunk/src/main/java/com/intel/gpe/services/uas/workflow/WorkflowTargetSystemImpl.java 2007-02-06 19:48:13 UTC (rev 222) @@ -49,6 +49,7 @@ import org.unigrids.x2006.x04.services.tss.SubmitResponseDocument; import org.w3.x2005.x08.addressing.EndpointReferenceType; +import de.fzj.unicore.uas.BPSupport; import de.fzj.unicore.uas.TargetSystem; import de.fzj.unicore.uas.UAS; import de.fzj.unicore.uas.impl.UASWSResourceImpl; @@ -85,6 +86,13 @@ private String spoolTargetSystemURL; private String spool_tss_key = TargetSystemImpl.class.getName()+"_spool_target_system"; + @Override + protected void addWSResourceInterfaces(BPSupport baseProfile) { + super.addWSResourceInterfaces(baseProfile); + //TODO check QName for this + //baseProfile.addWSResourceInterface(...); + } + public SubmitResponseDocument Submit(SubmitDocument in) throws BaseFault { logger.info("Entering submit..."); if(logger.isLoggable(Level.FINEST)){ Modified: unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/BaseUASClient.java =================================================================== --- unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/BaseUASClient.java 2007-02-06 13:59:06 UTC (rev 221) +++ unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/BaseUASClient.java 2007-02-06 19:48:13 UTC (rev 222) @@ -57,7 +57,7 @@ * @param epr * @param security properties */ - public BaseUASClient(String url, EndpointReferenceType epr, IUASSecurityProperties sec) { + public BaseUASClient(String url, EndpointReferenceType epr, IUASSecurityProperties sec) throws Exception{ super(url, epr, sec); this.proxyMaker=new UASClientFactory(sec); this.securityProperties=sec; @@ -69,7 +69,7 @@ * @param url * @param epr */ - public BaseUASClient(String url, EndpointReferenceType epr) { + public BaseUASClient(String url, EndpointReferenceType epr) throws Exception{ this(url, epr, UAS.getSecurityProperties()); } @@ -78,7 +78,7 @@ * @param url * @param epr */ - public BaseUASClient(EndpointReferenceType epr) { + public BaseUASClient(EndpointReferenceType epr) throws Exception{ this(epr.getAddress().getStringValue(), epr, UAS.getSecurityProperties()); } Modified: unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/JobClient.java =================================================================== --- unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/JobClient.java 2007-02-06 13:59:06 UTC (rev 221) +++ unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/JobClient.java 2007-02-06 19:48:13 UTC (rev 222) @@ -64,7 +64,7 @@ * @param url * @param address */ - public JobClient(String url, EndpointReferenceType address, IUASSecurityProperties sec) { + public JobClient(String url, EndpointReferenceType address, IUASSecurityProperties sec)throws Exception { super(url, address,sec); holdDoc=HoldDocument.Factory.newInstance(); holdDoc.addNewHold(); abortDoc=AbortDocument.Factory.newInstance(); abortDoc.addNewAbort(); Modified: unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/RegistryClient.java =================================================================== --- unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/RegistryClient.java 2007-02-06 13:59:06 UTC (rev 221) +++ unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/RegistryClient.java 2007-02-06 19:48:13 UTC (rev 222) @@ -32,18 +32,25 @@ package de.fzj.unicore.uas.client; +import java.util.ArrayList; import java.util.List; import java.util.logging.Logger; +import javax.xml.namespace.QName; + import org.apache.xmlbeans.XmlCursor; import org.apache.xmlbeans.XmlObject; +import org.oasisOpen.docs.wsrf.rp2.QueryResourcePropertiesResponseDocument.QueryResourcePropertiesResponse; import org.oasisOpen.docs.wsrf.sg2.AddDocument; import org.oasisOpen.docs.wsrf.sg2.AddResponseDocument; import org.oasisOpen.docs.wsrf.sg2.ContentType; +import org.oasisOpen.docs.wsrf.sg2.ServiceGroupEntryRPDocument; import org.w3.x2005.x08.addressing.EndpointReferenceType; +import de.fzj.unicore.uas.BPSupport; import de.fzj.unicore.uas.Registry; import de.fzj.unicore.uas.security.IUASSecurityProperties; +import de.fzj.unicore.wsrflite.utils.Utilities; /** * @author demuth @@ -51,10 +58,14 @@ public class RegistryClient extends BaseUASClient{ protected static Logger logger=Logger.getLogger(RegistryClient.class.getName()); - public RegistryClient(String url,EndpointReferenceType address, IUASSecurityProperties sec) { + public RegistryClient(String url,EndpointReferenceType address, IUASSecurityProperties sec) throws Exception{ super(url, address,sec); } + public RegistryClient(EndpointReferenceType address)throws Exception { + super(address); + } + public AddResponseDocument addRegistryEntry(AddDocument in) throws Exception{ Registry reg=(Registry)makeProxy(Registry.class); @@ -96,9 +107,31 @@ } return content; } - + public static ContentType makeContent(List<XmlObject>os){ return makeContent(os.toArray(new XmlObject[os.size()])); } + /** + * list services implementing a given porttype + * @param QName the porttype to look for + * @return Array of EPRs + */ + public List<EndpointReferenceType> listServices(QName porttype) throws Exception{ + QName child=new QName(ServiceGroupEntryRPDocument.type.getDocumentElementName().getNamespaceURI() + ,"MemberServiceEPR"); + String xpath="declare namespace sg='"+ServiceGroupEntryRPDocument.type.getDocumentElementName().getNamespaceURI()+"' ; \n" + +"declare namespace bp='"+BPSupport.RPWsResourceInterfaces.getNamespaceURI()+"';\n" + +".//sg:ServiceGroupRP/sg:Entry" + +"/sg:Content/sg:RPDoc/bp:WSResourceInterfaces[matches(.,'"+porttype.getLocalPart()+"[ .*]?$')]" + +"/ancestor::sg:Entry/sg:MemberServiceEPR"; + QueryResourcePropertiesResponse res=queryResourceProperties(xpath).getQueryResourcePropertiesResponse(); + XmlObject[] content=Utilities.extractAny(res,child); + List<EndpointReferenceType>result=new ArrayList<EndpointReferenceType>(); + for(XmlObject o:content){ + result.add(EndpointReferenceType.Factory.parse(o.newInputStream())); + } + return result; + } + } Modified: unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/StorageClient.java =================================================================== --- unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/StorageClient.java 2007-02-06 13:59:06 UTC (rev 221) +++ unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/StorageClient.java 2007-02-06 19:48:13 UTC (rev 222) @@ -65,7 +65,7 @@ * @param url * @param address */ - public StorageClient(String url, EndpointReferenceType address,IUASSecurityProperties sec) { + public StorageClient(String url, EndpointReferenceType address,IUASSecurityProperties sec) throws Exception{ super(url, address,sec); try{ sms=(StorageManagement)makeProxy(StorageManagement.class); Modified: unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/TSSClient.java =================================================================== --- unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/TSSClient.java 2007-02-06 13:59:06 UTC (rev 221) +++ unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/client/TSSClient.java 2007-02-06 19:48:13 UTC (rev 222) @@ -73,7 +73,7 @@ * @param endpointUrl * @param epr */ - public TSSClient(String endpointUrl, EndpointReferenceType epr) { + public TSSClient(String endpointUrl, EndpointReferenceType epr)throws Exception { super(endpointUrl, epr); this.epr=epr; } Modified: unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/UASWSResourceImpl.java =================================================================== --- unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/UASWSResourceImpl.java 2007-02-06 13:59:06 UTC (rev 221) +++ unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/UASWSResourceImpl.java 2007-02-06 19:48:13 UTC (rev 222) @@ -72,10 +72,14 @@ private static final long serialVersionUID = 5805171035962067117L; - protected static BPSupportImpl baseProfile; + protected BPSupport baseProfile; - static { + public UASWSResourceImpl(){ baseProfile=new BPSupportImpl(); + addWSResourceInterfaces(baseProfile); + } + + protected void addWSResourceInterfaces(BPSupport baseProfile){ baseProfile.addWSResourceInterface(WSRFConstants.WSRL_DESTROY_PORT); baseProfile.addWSResourceInterface(WSRFConstants.WSRL_SET_TERMTIME_PORT); baseProfile.addWSResourceInterface(WSRFConstants.WSRP_GET_RP_DOCUMENT_PORT); Modified: unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/job/JobManagementImpl.java =================================================================== --- unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/job/JobManagementImpl.java 2007-02-06 13:59:06 UTC (rev 221) +++ unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/job/JobManagementImpl.java 2007-02-06 19:48:13 UTC (rev 222) @@ -116,8 +116,9 @@ private String tssId; private static String tssid_key=JobManagementImpl.class.getName()+"tssid"; - - static { + @Override + protected void addWSResourceInterfaces(BPSupport baseProfile) { + super.addWSResourceInterfaces(baseProfile); baseProfile.addWSResourceInterface(JMS_PORT); } Modified: unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/registry/LocalRegistryImpl.java =================================================================== --- unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/registry/LocalRegistryImpl.java 2007-02-06 13:59:06 UTC (rev 221) +++ unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/registry/LocalRegistryImpl.java 2007-02-06 19:48:13 UTC (rev 222) @@ -69,8 +69,9 @@ if(external_registry_url != null) { // notify external registry and ask it for termination time for entry EndpointReferenceType external_registry_epr = RegistryHandler.getExternalRegistryEpr(); - RegistryClient external_registry_client = new RegistryClient(external_registry_url,external_registry_epr,UAS.getSecurityProperties()); - try { + + try { + RegistryClient external_registry_client = new RegistryClient(external_registry_url,external_registry_epr,UAS.getSecurityProperties()); Calendar external_registry_time = external_registry_client.getCurrentTime(); AddResponseDocument external_res = external_registry_client.addRegistryEntry(in); long time_difference = System.currentTimeMillis() - external_registry_time.getTimeInMillis(); Modified: unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/sms/StorageManagementImpl.java =================================================================== --- unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/sms/StorageManagementImpl.java 2007-02-06 13:59:06 UTC (rev 221) +++ unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/sms/StorageManagementImpl.java 2007-02-06 19:48:13 UTC (rev 222) @@ -70,6 +70,7 @@ import org.unigrids.x2006.x04.services.sms.StoragePropertiesDocument.StorageProperties; import org.w3.x2005.x08.addressing.EndpointReferenceType; +import de.fzj.unicore.uas.BPSupport; import de.fzj.unicore.uas.StorageManagement; import de.fzj.unicore.uas.UAS; import de.fzj.unicore.uas.fts.FileTransferImpl; @@ -110,10 +111,14 @@ public static final String INIT_ACTIONID=StorageManagementImpl.class.getName()+"_actionid"; - static{ + + @Override + protected void addWSResourceInterfaces(BPSupport baseProfile) { + super.addWSResourceInterfaces(baseProfile); baseProfile.addWSResourceInterface(SMS_PORT); } + @Override protected XmlObject getResourcePropertyResponseDocument() { StoragePropertiesDocument res=StoragePropertiesDocument.Factory.newInstance(); Modified: unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/tss/TargetSystemFactoryImpl.java =================================================================== --- unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/tss/TargetSystemFactoryImpl.java 2007-02-06 13:59:06 UTC (rev 221) +++ unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/tss/TargetSystemFactoryImpl.java 2007-02-06 19:48:13 UTC (rev 222) @@ -52,6 +52,7 @@ import org.unigrids.x2006.x04.services.tss.ApplicationResourceType; import org.w3.x2005.x08.addressing.EndpointReferenceType; +import de.fzj.unicore.uas.BPSupport; import de.fzj.unicore.uas.TargetSystemFactory; import de.fzj.unicore.uas.UAS; import de.fzj.unicore.uas.impl.UASWSResourceImpl; @@ -77,7 +78,9 @@ public static final QName RPApplicationResource=ApplicationResourceDocument.type.getDocumentElementName(); - static{ + @Override + protected void addWSResourceInterfaces(BPSupport baseProfile) { + super.addWSResourceInterfaces(baseProfile); baseProfile.addWSResourceInterface(TSF_PORT); } Modified: unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/tss/TargetSystemImpl.java =================================================================== --- unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/tss/TargetSystemImpl.java 2007-02-06 13:59:06 UTC (rev 221) +++ unicorex/uas-core/trunk/src/main/java/de/fzj/unicore/uas/impl/tss/TargetSystemImpl.java 2007-02-06 19:48:13 UTC (rev 222) @@ -59,6 +59,7 @@ import org.unigrids.x2006.x04.services.tss.TargetSystemPropertiesDocument.TargetSystemProperties; import org.w3.x2005.x08.addressing.EndpointReferenceType; +import de.fzj.unicore.uas.BPSupport; import de.fzj.unicore.uas.TargetSystem; import de.fzj.unicore.uas.UAS; import de.fzj.unicore.uas.impl.UASWSResourceImpl; @@ -96,7 +97,9 @@ private Client client; private String client_key=TargetSystemImpl.class.getName()+"_client"; - static{ + @Override + protected void addWSResourceInterfaces(BPSupport baseProfile) { + super.addWSResourceInterfaces(baseProfile); baseProfile.addWSResourceInterface(TSS_PORT); } Added: unicorex/uas-core/trunk/src/test/java/de/fzj/unicore/client/functional/TestServiceDiscovery.java =================================================================== --- unicorex/uas-core/trunk/src/test/java/de/fzj/unicore/client/functional/TestServiceDiscovery.java (rev 0) +++ unicorex/uas-core/trunk/src/test/java/de/fzj/unicore/client/functional/TestServiceDiscovery.java 2007-02-06 19:48:13 UTC (rev 222) @@ -0,0 +1,63 @@ +package de.fzj.unicore.client.functional; + +import javax.xml.namespace.QName; + +import junit.framework.TestCase; + +import org.apache.xmlbeans.XmlObject; +import org.oasisOpen.docs.wsrf.rp2.QueryResourcePropertiesResponseDocument.QueryResourcePropertiesResponse; +import org.oasisOpen.docs.wsrf.sg2.ServiceGroupEntryRPDocument; +import org.w3.x2005.x08.addressing.EndpointReferenceType; + +import de.fzj.unicore.uas.BPSupport; +import de.fzj.unicore.uas.TargetSystem; +import de.fzj.unicore.uas.client.RegistryClient; +import de.fzj.unicore.wsrflite.utils.Utilities; + +/* + * some tests on querying the registry + */ +public class TestServiceDiscovery extends TestCase { + + String url="http://localhost:7777/services/Registry"; + + //run xpath through queryRP + public void test1()throws Exception{ + try{ + QName child=new QName(ServiceGroupEntryRPDocument.type.getDocumentElementName().getNamespaceURI() + ,"MemberServiceEPR"); + System.out.println(child); + EndpointReferenceType epr=EndpointReferenceType.Factory.newInstance(); + epr.addNewAddress().setStringValue(url+"?res=default_registry"); + RegistryClient registry=new RegistryClient(epr); + String xpath="declare namespace sg='"+ServiceGroupEntryRPDocument.type.getDocumentElementName().getNamespaceURI()+"' ; \n" + +"declare namespace bp='"+BPSupport.RPWsResourceInterfaces.getNamespaceURI()+"';\n" + +".//sg:ServiceGroupRP/sg:Entry" + +"/sg:Content/sg:RPDoc/bp:WSResourceInterfaces[matches(.,'TargetSystem[ .*]?$')]" + +"/ancestor::sg:Entry/sg:MemberServiceEPR"; + QueryResourcePropertiesResponse res=registry.queryResourceProperties(xpath).getQueryResourcePropertiesResponse(); + XmlObject[] content=Utilities.extractAny(res,child); + for(XmlObject o:content)System.out.println("++ "+(EndpointReferenceType.Factory.parse(o.newInputStream()))); + } + catch(Exception e){ + e.printStackTrace(); + fail(); + } + } + + //same thing done in the registry client + public void test2()throws Exception{ + try{ + EndpointReferenceType epr=EndpointReferenceType.Factory.newInstance(); + epr.addNewAddress().setStringValue(url+"?res=default_registry"); + RegistryClient c=new RegistryClient(epr); + for(EndpointReferenceType e: c.listServices(TargetSystem.TSS_PORT)) + System.out.println(e); + } + catch(Exception e){ + e.printStackTrace(); + fail(); + } + } + +} Added: unicorex/uas-core/trunk/src/test/java/de/fzj/unicore/uas/impl/TestBPSupport.java =================================================================== --- unicorex/uas-core/trunk/src/test/java/de/fzj/unicore/uas/impl/TestBPSupport.java (rev 0) +++ unicorex/uas-core/trunk/src/test/java/de/fzj/unicore/uas/impl/TestBPSupport.java 2007-02-06 19:48:13 UTC (rev 222) @@ -0,0 +1,20 @@ +package de.fzj.unicore.uas.impl; + +import de.fzj.unicore.uas.impl.job.JobManagementImpl; +import de.fzj.unicore.uas.impl.sms.StorageManagementImpl; +import junit.framework.TestCase; + +public class TestBPSupport extends TestCase{ + + public void test1(){ + UASWSResourceImpl i=new UASWSResourceImpl(); + assertTrue(i.getWSResourceInterfaces().toString().contains("QueryResourceProperties")); + JobManagementImpl j=new JobManagementImpl(); + assertTrue(j.getWSResourceInterfaces().toString().contains("QueryResourceProperties")); + assertTrue(j.getWSResourceInterfaces().toString().contains("JobManagement")); + StorageManagementImpl k=new StorageManagementImpl(); + assertTrue(k.getWSResourceInterfaces().toString().contains("QueryResourceProperties")); + assertTrue(k.getWSResourceInterfaces().toString().contains("StorageManagement")); + assertFalse(k.getWSResourceInterfaces().toString().contains("JobManagement")); + } +} Modified: unicorex/uas-core/trunk/src/test/java/de/fzj/unicore/uas/impl/TestVarious.java =================================================================== --- unicorex/uas-core/trunk/src/test/java/de/fzj/unicore/uas/impl/TestVarious.java 2007-02-06 13:59:06 UTC (rev 221) +++ unicorex/uas-core/trunk/src/test/java/de/fzj/unicore/uas/impl/TestVarious.java 2007-02-06 19:48:13 UTC (rev 222) @@ -34,31 +34,13 @@ package de.fzj.unicore.uas.impl; import junit.framework.TestCase; +import de.fzj.unicore.uas.client.RegistryClient; +import de.fzj.unicore.wsrflite.xmlbeans.impl.CurrentTimeProperty; public class TestVarious extends TestCase{ - - public void test1(){ - String m="delete:1234"; - String id=m.substring(m.indexOf(":")+1); - assertTrue(id.equals("1234")); - } - - public void test23(){ - String p="/foo/bar/"; - String l=p+"/baz"; - System.out.println(l.indexOf(p)); - l=l.substring(p.length()); - System.out.println(l); - assertTrue(l.equals("/baz")); + public void testRegistryContentMaker(){ + CurrentTimeProperty p=new CurrentTimeProperty(); + assertTrue(RegistryClient.makeContent(p.getXml()).toString().contains("CurrentTime")); } - - - public void test5(){ - String p = "../outcome/skdjflsdf/foo.txt"; - p=p.substring(p.lastIndexOf("/")); - System.out.println(p); - assertTrue(p.equals("/foo.txt")); - } - } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |