Created
September 3, 2014 17:47
-
-
Save yulgit1/41ddafc5831cb4f125c6 to your computer and use it in GitHub Desktop.
semantic handle creation using java Web Service client (another example) (using Netbeans wizard to create client methods)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* To change this template, choose Tools | Templates | |
* and open the template in the editor. | |
*/ | |
package edu.yale.library.ilts.findingaids; | |
//import edu.yale.library.ilts.handles.linktest.HandleMap.Map.Entry; | |
//import edu.yale.library.ilts.handles.linktest.ResultMap; | |
import java.util.HashMap; | |
import java.util.Map; | |
import javax.xml.namespace.QName; | |
import org.apache.axis.client.Call; | |
import org.apache.axis.client.Service; | |
import java.util.Properties; | |
import java.io.FileInputStream; | |
import java.io.File; | |
import java.util.ArrayList; | |
import java.util.List; | |
public class HandleService { | |
private String endpoint; | |
private Service service; | |
private Call call; | |
private Map<String, String> locations; | |
private String group; | |
private String netid; | |
private String ticket; | |
private String truststore; | |
private String OperationQNamePrefix; | |
private String OperationQNameLocalPart; | |
private String modendpoint; | |
private String modOperationQNameLocalPart; | |
public HandleService() throws Exception { | |
// Read properties | |
String handleProperties = System.getProperty("user.dir") + "/handle.properties"; | |
Properties p = new Properties(); | |
p.load(new FileInputStream(handleProperties)); | |
truststore = p.getProperty("truststore"); | |
group = p.getProperty("group"); | |
netid = p.getProperty("netid"); | |
ticket = p.getProperty("ticket"); | |
endpoint = p.getProperty("endpoint"); | |
OperationQNamePrefix= p.getProperty("OperationQNamePrefix"); | |
OperationQNameLocalPart=p.getProperty("OperationQNameLocalPart"); | |
modendpoint = p.getProperty("modendpoint"); | |
modOperationQNameLocalPart = p.getProperty("modOperationQNameLocalPart"); | |
/* | |
System.out.println("HandleService: truststore = " + truststore); | |
System.out.println("HandleService: group = " + group); | |
System.out.println("HandleService: netid = " + netid); | |
System.out.println("HandleService: ticket = " + ticket); | |
System.out.println("HandleService: endpoint = " + endpoint); | |
System.out.println("HandleService: OperationQNamePrefix = " + OperationQNamePrefix); | |
System.out.println("HandleService: OperationQNameLocalPart = " + OperationQNameLocalPart); | |
*/ | |
//=================================================== | |
/* Set truststore */ | |
File trust = new File(truststore); | |
System.setProperty("javax.net.ssl.trustStore",truststore); | |
String trustStore = System.getProperty("javax.net.ssl.trustStore"); | |
if(trustStore == null) System.out.println("javax.net.ssl.trustStore is not defined"); | |
System.out.println("Handle Service: endpoint = " + endpoint); | |
service = new Service(); | |
call = (Call) service.createCall(); | |
call.setTimeout(Integer.MAX_VALUE); | |
call.setTargetEndpointAddress(new java.net.URL(endpoint)); | |
call.setOperationName(new QName(OperationQNamePrefix, OperationQNameLocalPart)); | |
} | |
public Map createHandle(String handle, String url) { | |
Map handleMap = new HashMap<String, String>(); | |
//========================= F O R T E S T I N G ====================== | |
// handle = "10079/fa/divinity.999"; | |
//======================================================================== | |
handleMap.put(handle, url); | |
System.out.println("in createHandle: handle = " + handle); | |
System.out.println("in createHandle: url = " + url); | |
try { | |
Map retHandles = (Map) call.invoke( new Object[] {handleMap, group, netid, ticket}); | |
if (retHandles == null) System.out.println("ret = null"); | |
for(Object oneRetHandle : retHandles.keySet()) | |
{ | |
System.out.println("One Returned Handle: " + oneRetHandle); | |
} | |
return retHandles; | |
} catch (Exception e) { | |
System.err.println("Error registering handle: " + e.toString()); | |
} | |
return null; | |
} | |
public Map createModHandle(String handle, String url,String mode) { | |
edu.yale.library.ilts.handles.linktest.HandleMap handleMap = new edu.yale.library.ilts.handles.linktest.HandleMap(); | |
edu.yale.library.ilts.handles.linktest.HandleMap.Map map = new edu.yale.library.ilts.handles.linktest.HandleMap.Map(); | |
edu.yale.library.ilts.handles.linktest.HandleMap.Map.Entry entry = new edu.yale.library.ilts.handles.linktest.HandleMap.Map.Entry(); | |
entry.setKey(handle); | |
entry.setValue(url); | |
map.getEntry().add(entry); | |
handleMap.setMap(map); | |
System.out.println("in createModHandle: handle = " + handle); | |
System.out.println("in createModHandle: url = " + url); | |
System.out.println("in createModHandle: group = " + group); | |
System.out.println("in createModHandle: netid = " + netid); | |
System.out.println("in createModHandle: ticket = " + ticket); | |
edu.yale.library.ilts.handles.linktest.ResultMap resultMap = null; | |
if (mode.equals("create")) { | |
System.out.println("create handle"); | |
resultMap = createBatchSemantic(handleMap,group,netid,ticket);//netid=user ticket=credential | |
} | |
if (mode.equals("modify")) { | |
System.out.println("modify handle"); | |
resultMap = modifyBatch(handleMap,netid,ticket);//netid=user ticket=credential | |
} | |
Map retHandles = printLinktestResult(resultMap); | |
if (retHandles == null) System.out.println("ret = null"); | |
for(Object oneRetHandle : retHandles.keySet()) | |
{ | |
System.out.println("One Returned Handle: " + oneRetHandle); | |
System.out.println("value:"+retHandles.get(oneRetHandle)); | |
} | |
return retHandles; | |
} | |
public static void main(String[] args) { | |
Runnable runnable = new Runnable() { | |
@Override | |
public void run() { | |
HandleService svc; | |
try { | |
svc = new HandleService(); | |
} catch (Exception e) { | |
//System.out.println("Error creating HandleService: " + e.getMessage()); | |
e.printStackTrace(System.err); | |
return; | |
} | |
Map handleMap = new HashMap<String, String>(); | |
//for (int i = 0; i < 5; i++) { | |
// handleMap.put("10079.1/fatest" + i + System.currentTimeMillis(), "http://www.yale.edu/handlestest/"); | |
//} | |
String h = "10079.1/FA/mssa.ru.1113"; | |
String r = "http://drs.library.yale.edu:8083/HLTransformer/HLTransServlet?stylename=yul.ead2002.xhtml.xsl&pid=mssa:ru.1113&big=y"; | |
//String r = "http://google.com"; | |
//handleMap.put(h,r); | |
//Map handles = svc.createHandle(handleMap, "10079.1/FA", "10079.1/FA", "L3@iok"); | |
Map handles = svc.createHandle(h,r); | |
//Map handles = svc.createHandle(handleMap); | |
System.out.println("back from createHandle"); | |
//if (handles == null) System.out.println("ret = null"); | |
for (Object handle : handles.keySet()) { | |
if (handles.get(handle).equals("HANDLE ALREADY EXISTS")) { | |
System.out.println("Handle already exists, modify existing handle"); | |
svc.modifyHandle(h,r); | |
//svc.deleteHandle(h); | |
//svc.createHandle(h,r); | |
} | |
} | |
//handles = svc.modifyHandle(handles,h,r); | |
//svc.revertCall(); | |
//for(Object handle : handles.keySet()) | |
//{ | |
// System.out.println(handle); | |
// System.out.println(handles.get(handle)); | |
//} | |
} | |
}; | |
Thread t1 = new Thread(runnable); | |
t1.start(); | |
} | |
public Map modifyHandle(String handle, String url) { | |
//for (Object output1 : output.keySet()) { | |
// if (output.get(output1).equals("HANDLE ALREADY EXISTS")) { | |
//Map handleMap = new HashMap<String, String>(); | |
//handleMap.put(handle, url); | |
List handleMap = new ArrayList(); | |
handleMap.add(handle+":"+url); | |
//System.out.println("modHandle = " + handle); | |
//System.out.println("modUrl = " + url); | |
//System.out.println("modendpoint:"+modendpoint); | |
//System.out.println("modOperationQNamePrefix:"+OperationQNamePrefix); | |
//System.out.println("modOperationQNameLocalPart:"+modOperationQNameLocalPart); | |
//System.out.println("modNetid:"+netid); | |
//System.out.println("modTicket:"+ticket); | |
try { | |
Service service2 = new Service(); | |
Call call2 = (Call) service2.createCall(); | |
call2.setTimeout(Integer.MAX_VALUE); | |
call2.setTargetEndpointAddress(new java.net.URL(modendpoint)); | |
call2.setOperationName(new QName(OperationQNamePrefix,modOperationQNameLocalPart)); | |
Map retHandles = (Map) call2.invoke( new Object[] {handleMap,netid,ticket}); | |
if (retHandles == null) { | |
System.out.println("ret = null"); | |
return null; | |
} else { | |
for(Object oneRetHandle : retHandles.keySet()) { | |
System.out.println("One modified handle: " + oneRetHandle); | |
System.out.println("Modified response: " + retHandles.get(oneRetHandle)); | |
} | |
return retHandles; | |
} | |
} catch (Exception ex) { | |
ex.printStackTrace(System.err); | |
} | |
// } | |
//} | |
return null; | |
} | |
private static edu.yale.library.ilts.handles.linktest.ResultMap createBatchSemantic(edu.yale.library.ilts.handles.linktest.HandleMap handlesToValues, java.lang.String group, java.lang.String user, java.lang.String credential) { | |
edu.yale.library.ilts.handles.linktest.PersistentLinkingService service = new edu.yale.library.ilts.handles.linktest.PersistentLinkingService(); | |
edu.yale.library.ilts.handles.linktest.IPersistentLinking port = service.getPersistentLinkingPort(); | |
return port.createBatchSemantic(handlesToValues, group, user, credential); | |
} | |
/* | |
public Map deleteHandle(String handle) { | |
System.out.println("delHandle = " + handle); | |
System.out.println("delendpoint:"+delendpoint); | |
System.out.println("delOperationQNamePrefix:"+OperationQNamePrefix); | |
System.out.println("delOperationQNameLocalPart:"+delOperationQNameLocalPart); | |
System.out.println("delNetid:"+netid); | |
System.out.println("delTicket:"+ticket); | |
try { | |
Service service2 = new Service(); | |
Call call2 = (Call) service2.createCall(); | |
call2.setTimeout(Integer.MAX_VALUE); | |
call2.setTargetEndpointAddress(new java.net.URL(delendpoint)); | |
call2.setOperationName(new QName(OperationQNamePrefix,delOperationQNameLocalPart)); | |
Map retHandles = (Map) call2.invoke( new Object[] {handle,netid,ticket}); | |
if (retHandles == null) { | |
System.out.println("ret = null"); | |
return null; | |
} else { | |
for(Object oneRetHandle : retHandles.keySet()) { | |
System.out.println("One deleted handle: " + oneRetHandle); | |
System.out.println("value:"+retHandles.get(oneRetHandle)); | |
} | |
return retHandles; | |
} | |
} catch (Exception ex) { | |
ex.printStackTrace(System.err); | |
} | |
return null; | |
} | |
* | |
*/ | |
/* | |
public void revertCall() { | |
try { | |
call.setTargetEndpointAddress(new java.net.URL(endpoint)); | |
call.setOperationName(new QName(OperationQNamePrefix, OperationQNameLocalPart)); | |
} catch (MalformedURLException ex) { | |
System.err.println("Error resetting call to CreateHandleService: " + ex.toString()); | |
} | |
} | |
* | |
*/ | |
private Map printLinktestResult(edu.yale.library.ilts.handles.linktest.ResultMap hm) { | |
//ArrayList<String> results = new ArrayList(); | |
Map results = new HashMap(); | |
List<edu.yale.library.ilts.handles.linktest.ResultMap.SuccessMap.Entry> arr = hm.getSuccessMap().getEntry(); | |
if(arr!=null){ | |
//System.out.println("SUCCESS:"); | |
for(edu.yale.library.ilts.handles.linktest.ResultMap.SuccessMap.Entry et0 : arr){ | |
//results.add("SUCCESS:"+et0.getKey()+":"+et0.getValue()); | |
results.put(et0.getKey(),et0.getValue()); | |
} | |
} | |
List<edu.yale.library.ilts.handles.linktest.ResultMap.FailMap.Entry> arr2 = hm.getFailMap().getEntry(); | |
if(arr2!=null){ | |
//System.out.println("FAILED:"); | |
for(edu.yale.library.ilts.handles.linktest.ResultMap.FailMap.Entry et0 : arr2){ | |
results.put(et0.getKey(),et0.getValue()); | |
} | |
} | |
return results; | |
} | |
private static edu.yale.library.ilts.handles.linktest.ResultMap modifyBatch(edu.yale.library.ilts.handles.linktest.HandleMap handlesToValues, java.lang.String user, java.lang.String credential) { | |
edu.yale.library.ilts.handles.linktest.PersistentLinkingService service = new edu.yale.library.ilts.handles.linktest.PersistentLinkingService(); | |
edu.yale.library.ilts.handles.linktest.IPersistentLinking port = service.getPersistentLinkingPort(); | |
return port.modifyBatch(handlesToValues, user, credential); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment