From mwilkinson at dev.open-bio.org Thu Jan 3 17:52:15 2008 From: mwilkinson at dev.open-bio.org (Mark Wilkinson) Date: Thu, 3 Jan 2008 17:52:15 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801032252.m03MqFnQ003639@dev.open-bio.org> mwilkinson Thu Jan 3 17:52:14 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv3620 Modified Files: service_tester.pl Log Message: service tester is now more gentle on the registry, only calling on it to look-up one service provider at a time, rather than all of them moby-live/Perl/scripts service_tester.pl,1.4,1.5 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/service_tester.pl,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- /home/repository/moby/moby-live/Perl/scripts/service_tester.pl 2007/12/19 19:17:58 1.4 +++ /home/repository/moby/moby-live/Perl/scripts/service_tester.pl 2008/01/03 22:52:14 1.5 @@ -40,7 +40,7 @@ ######-------USER CONFIGURABLE PARAMETERS-------###### # how long in seconds to wait for a service to respond -my $TIMEOUT = 50; +my $TIMEOUT = 20; # the total number of 'threads' to use ... my $THREAD_COUNT = 15; @@ -75,9 +75,11 @@ } } ); +my @providers = $central->retrieveServiceProviders(); +foreach my $authURI(@providers){ my ( $second, $minute, $hour, @whatever ) = localtime(); - print "Finding services registered as '$cat' @ $hour:$minute:$second\n"; - my ( $services, $reg ) = $central->findService( Registry => "mobycentral",category => $cat ); + print "Finding services registered by '$authURI' as '$cat' @ $hour:$minute:$second\n"; + my ( $services, $reg ) = $central->findService( Registry => "mobycentral",category => $cat, authURI => $authURI ); ( $second, $minute, $hour, @whatever ) = localtime(); print "Services found " . scalar @$services @@ -161,7 +163,8 @@ # dont proceed until we are completed with the first batch of children! wait, $count-- while $count > 0; ( $second, $minute, $hour, @whatever ) = localtime(); - print "Testing of '$cat' services completed @ $hour:$minute:$second \n"; + print "Testing of '$cat' services from '$authURI' completed @ $hour:$minute:$second \n"; +} } my $doc = XML::LibXML::Document->new( "1.0", "UTF-8" ); From mwilkinson at dev.open-bio.org Thu Jan 3 17:58:10 2008 From: mwilkinson at dev.open-bio.org (Mark Wilkinson) Date: Thu, 3 Jan 2008 17:58:10 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801032258.m03MwAIq003682@dev.open-bio.org> mwilkinson Thu Jan 3 17:58:10 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv3663 Modified Files: service_tester.pl Log Message: service tester checks for its write permissions at the beginning of the test, rather than after an hour of testing moby-live/Perl/scripts service_tester.pl,1.5,1.6 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/service_tester.pl,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Perl/scripts/service_tester.pl 2008/01/03 22:52:14 1.5 +++ /home/repository/moby/moby-live/Perl/scripts/service_tester.pl 2008/01/03 22:58:10 1.6 @@ -62,6 +62,11 @@ my %ALIVE = (); my $FILENAME = 'isAliveStats.xml'; +# this is just to test if I'm going to have permissions +# right now, rather than an hour from now... Arghghg! +open( OUT, ">>$DIRECTORY/$FILENAME" ) || die("Cannot Open File $DIRECTORY/$FILENAME $!"); +close OUT; + # create some shared variables my $alive_handle = tie %ALIVE, 'IPC::Shareable', undef, { destroy => 'yes' }; @@ -188,7 +193,7 @@ IPC::Shareable->clean_up_all; -open( OUT, ">$DIRECTORY/$FILENAME" ) || die("Cannot Open File $!"); +open( OUT, ">$DIRECTORY/$FILENAME" ) || die("Cannot Open File $DIRECTORY/$FILENAME $!"); print OUT $doc->toString(1); close OUT; From gordonp at dev.open-bio.org Mon Jan 7 17:01:10 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:01:10 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072201.m07M1AgK014626@dev.open-bio.org> gordonp Mon Jan 7 17:01:09 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared In directory dev.open-bio.org:/tmp/cvs-serv14590/src/main/org/biomoby/shared Modified Files: MobyService.java Log Message: Made cloneable, and less verbose on metadata fetch failure moby-live/Java/src/main/org/biomoby/shared MobyService.java,1.22,1.23 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyService.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyService.java 2007/12/09 03:43:22 1.22 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyService.java 2008/01/07 22:01:09 1.23 @@ -9,7 +9,6 @@ import java.util.*; import java.net.URL; -import java.util.regex.Pattern; import org.biomoby.shared.extended.ServiceInstanceParser; /** @@ -25,7 +24,7 @@ */ public class MobyService - implements Comparable, LSIDAccessible { + implements Comparable, Cloneable, LSIDAccessible { /** * A dummy name used for MobyService instances that do not have @@ -120,6 +119,38 @@ setAuthority (authority); } + /** + * Generally, you don't need to clone a service, unless you plan on modifying + * fields of the object, but do not want it to affect the service definition + * used by other threads within the JVM (i.e. getService(serviceName) always + * returns the same object within a single JVM instance). + */ + public MobyService clone(){ + MobyService clone = new MobyService(getName(), getAuthority()); + clone.setId(getId()); + clone.setAuthoritative(isAuthoritative()); + clone.setEmailContact(getEmailContact()); + clone.setCategory(getCategory()); + clone.setDescription(getDescription()); + clone.setType(getType()); + clone.setURL(getURL()); + clone.setSignatureURL(getSignatureURL()); + clone.setPathToRDF(getPathToRDF()); + clone.setRDF(getRDF()); + clone.serviceStatus = serviceStatus; + clone.statusChecks = statusChecks; + for(MobyPrimaryData primary: getPrimaryInputs()){ + clone.primaryInputs.add(primary.clone()); + } + for(MobySecondaryData secondary: getSecondaryInputs()){ + clone.secondaryInputs.add(secondary.clone()); + } + for(MobyPrimaryData primary: getPrimaryOutputs()){ + clone.primaryOutputs.add(primary.clone()); + } + return clone; + } + public String getUniqueName() { return name + "/" + authority; } @@ -553,7 +584,7 @@ } } } catch(Exception e){ - e.printStackTrace(); + System.err.println("Error while fetching service metadata: " + e); } } From gordonp at dev.open-bio.org Mon Jan 7 17:04:17 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:04:17 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072204.m07M4Htf014703@dev.open-bio.org> gordonp Mon Jan 7 17:04:17 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client In directory dev.open-bio.org:/tmp/cvs-serv14667/src/main/org/biomoby/client Modified Files: MobyRequest.java Log Message: Now we fill in default secondary (at Andreas' request), and fixed a potential null pointer exception moby-live/Java/src/main/org/biomoby/client MobyRequest.java,1.31,1.32 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2007/12/14 23:04:31 1.31 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/07 22:04:17 1.32 @@ -737,11 +737,13 @@ } } - if(localResponseString != null && localResponseString.length() == 0){ - throw new MobyException("The MOBY payload has no text contents at all"); - } - if(Character.isWhitespace(localResponseString.charAt(0))){ - localResponseString = localResponseString.trim(); + if(localResponseString != null){ + if(localResponseString.length() == 0){ + throw new MobyException("The MOBY payload has no text contents at all"); + } + if(Character.isWhitespace(localResponseString.charAt(0))){ + localResponseString = localResponseString.trim(); + } } // Check if the payload is an XML document. If not, try a last ditch effort @@ -860,7 +862,8 @@ } /** - * Creates an XML representation of the data, renamed to fit the needs of the service if necessary. + * Creates an XML representation of the data, renamed to fit the needs of the service if necessary, + * and adding any secondary parameter default values if not already specified in the incoming data. * * @param data the array of input parameters to put in a MOBY XML request * @@ -869,7 +872,7 @@ public String convertMOBYDataToMOBYRequest(MobyContentInstance data) throws MobyException{ MobyData[] inputs = mobyService.getPrimaryInputs(); - MobyData[] secondaries = mobyService.getSecondaryInputs(); + MobySecondaryData[] secondaries = mobyService.getSecondaryInputs(); Iterator queries = data.keySet().iterator(); // Make sure the number of input args is correct for each query being submitted @@ -918,14 +921,22 @@ " primary input parameter(s), but takes " + inputs.length + " (query " + queryName + ")"); } - if(secondaries != null && secondaries.length != secondaryParams.size()){ - throw new MobyException("Service " + mobyService.getName() + " was provided " + - secondaryParams.size() + - " secondary input parameter(s), but takes " + secondaries.length + - " (query " + queryName + ")"); + if(secondaries != null){ + // If no secondaries provided, fill them in by default + if(secondaries.length != 0 && secondaryParams.isEmpty()){ + for(MobySecondaryData secondary: secondaries){ + secondaryParams.put(secondary.getName(), new MobyDataSecondaryInstance(secondary)); + } + } + else if(secondaries.length != secondaryParams.size()){ + throw new MobyException("Service " + mobyService.getName() + " was provided " + + secondaryParams.size() + + " secondary input parameter(s), but takes " + secondaries.length + + " (query " + queryName + ")"); + } } - // If there was one anonynmous input, assign the name automatically in + // If there was one anonymous input, assign the name automatically in // the case the service requires it to be named. This is the only // unambiguous case in which we can do this. if(inputs.length == 1){ From gordonp at dev.open-bio.org Mon Jan 7 17:06:47 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:06:47 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072206.m07M6lrY015170@dev.open-bio.org> gordonp Mon Jan 7 17:06:47 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services In directory dev.open-bio.org:/tmp/cvs-serv15134/src/main/ca/ucalgary/services Modified Files: ACDService.java Log Message: Better min/max param support, exchanged thisService references for getService() due to potential initialization problems moby-live/Java/src/main/ca/ucalgary/services ACDService.java,1.8,1.9 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/ACDService.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/ACDService.java 2007/12/18 23:08:29 1.8 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/ACDService.java 2008/01/07 22:06:47 1.9 @@ -72,7 +72,7 @@ // Run the program. The result is for each output param, a list (vector) of the raw data (byte array) // Maps are used because, for example, an output may be composed of several png files. Map> resultData = configAndRunProgram(request); - MobyPrimaryData[] mobyOutputTemplates = thisService.getPrimaryOutputs(); + MobyPrimaryData[] mobyOutputTemplates = getService().getPrimaryOutputs(); if((resultData == null || resultData.size() == 0) && mobyOutputTemplates != null && mobyOutputTemplates.length > 0){ @@ -133,7 +133,7 @@ Vector command = new Vector(); command.add(programBinaryFile.getAbsolutePath()); - MobyPrimaryData[] inputs = thisService.getPrimaryInputs(); + MobyPrimaryData[] inputs = getService().getPrimaryInputs(); // Param:tempFile Map Map tempFiles = new HashMap(); @@ -205,7 +205,7 @@ command.add(mobySecondary.getObject().toString()); } - MobyPrimaryData[] outputs = thisService.getPrimaryOutputs(); + MobyPrimaryData[] outputs = getService().getPrimaryOutputs(); Map outputFile = new HashMap(); // Primary output @@ -938,10 +938,10 @@ integer.setDataType(MobySecondaryData.INTEGER_TYPE); integer.setDescription(block.get("information")); String m = block.get("maximum"); - try{m = (new BigInteger(m)).toString();}catch(NumberFormatException nfe){m = ""+Integer.MAX_VALUE;} + try{m = (new BigInteger(m)).toString();}catch(Exception e){m = ""+Integer.MAX_VALUE;} integer.setMaxValue(m); m = block.get("minimum"); - try{m = (new BigInteger(m)).toString();}catch(NumberFormatException nfe){m = ""+Integer.MIN_VALUE;} + try{m = (new BigInteger(m)).toString();}catch(Exception e){m = ""+Integer.MIN_VALUE;} integer.setMinValue(m); // Set default to 0, or minimum value if it's not Integer.MIN_VALUE try{ @@ -961,10 +961,10 @@ floating.setDefaultValue(deFault); floating.setDescription(block.get("information")); String m = block.get("maximum"); - try{m = (new BigDecimal(m)).toString();}catch(NumberFormatException nfe){m = ""+Double.MAX_VALUE;} + try{m = (new BigDecimal(m)).toString();}catch(Exception e){m = ""+Double.MAX_VALUE;} floating.setMaxValue(m); m = block.get("minimum"); - try{m = (new BigDecimal(m)).toString();}catch(NumberFormatException nfe){m = ""+Double.MIN_VALUE;} + try{m = (new BigDecimal(m)).toString();}catch(Exception e){m = ""+Double.MIN_VALUE;} floating.setMinValue(m); // Set default to 0, or minimum value if it's not Double.MIN_VALUE try{ From gordonp at dev.open-bio.org Mon Jan 7 17:07:45 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:07:45 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072207.m07M7jEh015409@dev.open-bio.org> gordonp Mon Jan 7 17:07:45 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services In directory dev.open-bio.org:/tmp/cvs-serv15373/src/main/ca/ucalgary/seahawk/services Modified Files: MobyClient.java Log Message: Added more try blocks for pattern matching moby-live/Java/src/main/ca/ucalgary/seahawk/services MobyClient.java,1.18,1.19 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyClient.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyClient.java 2007/12/17 18:37:55 1.18 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyClient.java 2008/01/07 22:07:45 1.19 @@ -613,19 +613,23 @@ MobyComplexBuilder rule = regexMap.get(pattern); if(targetDataType == null || rule.getDataType().inheritsFrom(targetDataType)){ - Matcher matcher = pattern.matcher(textData); - - while(matcher.find()){ - try{ - MobyDataObject mobyObj = rule.apply(matcher); - if(mobyObj != null){ - objectVector.add(mobyObj); + try{ + Matcher matcher = pattern.matcher(textData); + + while(matcher.find()){ + try{ + MobyDataObject mobyObj = rule.apply(matcher); + if(mobyObj != null){ + objectVector.add(mobyObj); + } + } + catch(MobyException me){ + System.err.println("Could not build Moby object from match:" + me); + me.printStackTrace(); } } - catch(MobyException me){ - System.err.println("Could not build Moby object from match:" + me); - me.printStackTrace(); - } + } catch(Throwable t){ // Principally stack overflows + System.err.println("Exception/Error ("+t+") while applying regex '"+pattern.pattern()+"' to text"); } } } @@ -770,20 +774,24 @@ rawDataAsString = bytesToString(rawData); //System.err.println("Start of data is " + rawDataAsString.substring(0, 4)); } - Matcher matcher = pattern.matcher(rawDataAsString); - - while(matcher.find()){ - //System.err.println("Found match for binary data"); - try{ - MobyDataObject mobyObj = rule.apply(matcher, rawData); - if(mobyObj != null){ - objectVector.add(mobyObj); + try{ + Matcher matcher = pattern.matcher(rawDataAsString); + + while(matcher.find()){ + //System.err.println("Found match for binary data"); + try{ + MobyDataObject mobyObj = rule.apply(matcher, rawData); + if(mobyObj != null){ + objectVector.add(mobyObj); + } + } + catch(MobyException me){ + System.err.println("Could not build Moby object from match:" + me); + me.printStackTrace(); } } - catch(MobyException me){ - System.err.println("Could not build Moby object from match:" + me); - me.printStackTrace(); - } + } catch(Throwable t){ // Principally stack overflows + System.err.println("Exception/Error ("+t+") while applying regex '"+pattern.pattern()+"' to binary data"); } } } @@ -834,21 +842,25 @@ Iterator regex_keys = regexMap.keySet().iterator(); while(regex_keys.hasNext()){ //map still has untraversed regex entry to test Pattern pattern = (Pattern) regex_keys.next(); - Matcher matcher = pattern.matcher(textData); - - while(matcher.find()){ - MobyComplexBuilder rule = (MobyComplexBuilder) regexMap.get(pattern); - - try{ - MobyDataObject mobyObj = rule.apply(matcher, bytes); - if(mobyObj != null){ - objectVector.add(mobyObj); + try{ + Matcher matcher = pattern.matcher(textData); + + while(matcher.find()){ + MobyComplexBuilder rule = (MobyComplexBuilder) regexMap.get(pattern); + + try{ + MobyDataObject mobyObj = rule.apply(matcher, bytes); + if(mobyObj != null){ + objectVector.add(mobyObj); + } + } + catch(MobyException me){ + System.err.println("Could not build Moby object from match:" + me); + me.printStackTrace(); } } - catch(MobyException me){ - System.err.println("Could not build Moby object from match:" + me); - me.printStackTrace(); - } + }catch(Throwable t){ // Principally stack overflows + System.err.println("Exception/Error ("+t+") while applying regex '"+pattern.pattern()+"' to text/binary"); } } From gordonp at dev.open-bio.org Mon Jan 7 17:09:49 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:09:49 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072209.m07M9nbj015599@dev.open-bio.org> gordonp Mon Jan 7 17:09:49 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data In directory dev.open-bio.org:/tmp/cvs-serv15563/src/main/org/biomoby/shared/data Modified Files: MobyDataXref.java Log Message: Added support for non-registered services in Xref (doesn't cause exception anymore, but rather just has an info-poor MobyService object) moby-live/Java/src/main/org/biomoby/shared/data MobyDataXref.java,1.8,1.9 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataXref.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataXref.java 2007/12/09 00:23:49 1.8 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataXref.java 2008/01/07 22:09:49 1.9 @@ -71,7 +71,12 @@ public MobyDataXref(String namespace, String id, String serviceName, String authURI, Registry registry){ super("", id, new MobyService[] {MobyService.getService(serviceName, authURI)}, registry); addNamespace(MobyNamespace.getNamespace(namespace)); - getService().setAuthority(authURI); + MobyService s = getService(); + if(s == null){ // the service name given didn't resolve to something in the registry + s = new MobyService(serviceName, authURI); // make an explicit info-void one instead + System.err.println("Created token service object for unresolvable xref service '"+serviceName+"'"); + setServices(new MobyService[]{s}); + } } public MobyDataXref(Element e) throws MobyException{ @@ -263,7 +268,7 @@ return xrefType; } - public Object clone(){ + public MobyDataXref clone(){ return new MobyDataXref(getNamespace(), getId(), getService()); } From gordonp at dev.open-bio.org Mon Jan 7 17:11:36 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:11:36 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072211.m07MBamo015700@dev.open-bio.org> gordonp Mon Jan 7 17:11:36 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared In directory dev.open-bio.org:/tmp/cvs-serv15648/src/main/org/biomoby/shared Modified Files: MobyData.java MobyPrimaryData.java MobyPrimaryDataSet.java MobyPrimaryDataSimple.java MobySecondaryData.java Log Message: Added cloneability to MobyData derivatives moby-live/Java/src/main/org/biomoby/shared MobyData.java,1.5,1.6 MobyPrimaryData.java,1.2,1.3 MobyPrimaryDataSet.java,1.9,1.10 MobyPrimaryDataSimple.java,1.11,1.12 MobySecondaryData.java,1.10,1.11 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyData.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyData.java 2006/07/07 04:12:40 1.5 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyData.java 2008/01/07 22:11:36 1.6 @@ -21,7 +21,7 @@ * @version $Id$ */ -abstract public class MobyData { +abstract public class MobyData implements Cloneable{ protected String name; protected String id = null; @@ -56,8 +56,9 @@ } /************************************************************************** - * Must be overwritten byte a subclass. + * Must be overwritten by a subclass. *************************************************************************/ + abstract public MobyData clone(); abstract public String toXML(); abstract public boolean isPrimary(); abstract public String format (int indent); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryData.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryData.java 2006/07/07 04:12:40 1.2 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryData.java 2008/01/07 22:11:36 1.3 @@ -18,7 +18,7 @@ */ abstract public class MobyPrimaryData - extends MobyData { + extends MobyData implements Cloneable { /************************************************************************** * @@ -44,6 +44,7 @@ /************************************************************************** * Must be overwritten by a subclass. *************************************************************************/ + abstract public MobyPrimaryData clone(); abstract public MobyDataType getDataType(); abstract public void setDataType (MobyDataType value); abstract public MobyNamespace[] getNamespaces(); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryDataSet.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryDataSet.java 2006/11/11 23:04:34 1.9 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryDataSet.java 2008/01/07 22:11:36 1.10 @@ -22,7 +22,7 @@ */ public class MobyPrimaryDataSet - extends MobyPrimaryData { + extends MobyPrimaryData implements Cloneable{ protected Vector elements = new Vector(); @@ -57,6 +57,13 @@ } } + public MobyPrimaryDataSet clone(){ + MobyPrimaryDataSet clone = new MobyPrimaryDataSet(getName()); + clone.setDataType(getDataType()); + clone.setElements(getElements()); // also sets namespaces implicitly + return clone; + } + public MobyPrimaryDataSimple[] getElements() { MobyPrimaryDataSimple[] result = new MobyPrimaryDataSimple [elements.size()]; elements.copyInto (result); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryDataSimple.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryDataSimple.java 2007/04/27 13:44:21 1.11 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryDataSimple.java 2008/01/07 22:11:36 1.12 @@ -26,7 +26,7 @@ */ public class MobyPrimaryDataSimple - extends MobyPrimaryData { + extends MobyPrimaryData implements Cloneable{ protected Vector namespaces = new Vector(); protected MobyDataType dataType; @@ -88,6 +88,14 @@ } } + public MobyPrimaryDataSimple clone(){ + MobyPrimaryDataSimple clone = new MobyPrimaryDataSimple(name); + clone.setId(getId()); + clone.namespaces = new Vector(namespaces); + clone.dataType = dataType; + return clone; + } + /************************************************************************** * *************************************************************************/ =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobySecondaryData.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobySecondaryData.java 2006/12/07 16:37:36 1.10 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobySecondaryData.java 2008/01/07 22:11:36 1.11 @@ -22,7 +22,7 @@ */ public class MobySecondaryData - extends MobyData { + extends MobyData implements Cloneable{ public static final String INTEGER_TYPE = "Integer"; public static final String FLOAT_TYPE = "Float"; public static final String STRING_TYPE = "String"; @@ -90,6 +90,17 @@ } } + public MobySecondaryData clone(){ + MobySecondaryData clone = new MobySecondaryData(getName()); + clone.dataType = dataType; + clone.defaultValue = defaultValue; + clone.minimumValue = minimumValue; + clone.maximumValue = maximumValue; + clone.allowedValues = new Vector(allowedValues); + clone.description = description; + return clone(); + } + public String getDataType() { return dataType; } From gordonp at dev.open-bio.org Mon Jan 7 17:11:37 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:11:37 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072211.m07MBbcv015752@dev.open-bio.org> gordonp Mon Jan 7 17:11:36 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data In directory dev.open-bio.org:/tmp/cvs-serv15648/src/main/org/biomoby/shared/data Modified Files: MobyDataBoolean.java MobyDataComposite.java MobyDataDateTime.java MobyDataFloat.java MobyDataInt.java MobyDataObject.java MobyDataObjectSAI.java MobyDataObjectSet.java MobyDataString.java Log Message: Added cloneability to MobyData derivatives moby-live/Java/src/main/org/biomoby/shared/data MobyDataBoolean.java,1.7,1.8 MobyDataComposite.java,1.23,1.24 MobyDataDateTime.java,1.12,1.13 MobyDataFloat.java,1.10,1.11 MobyDataInt.java,1.9,1.10 MobyDataObject.java,1.25,1.26 MobyDataObjectSAI.java,1.3,1.4 MobyDataObjectSet.java,1.12,1.13 MobyDataString.java,1.9,1.10 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataBoolean.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataBoolean.java 2007/12/06 23:43:17 1.7 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataBoolean.java 2008/01/07 22:11:36 1.8 @@ -97,7 +97,7 @@ return value.toString(); } - public Object clone(){ + public MobyDataBoolean clone(){ MobyDataBoolean copy = new MobyDataBoolean(getName(), value, getDataType().getRegistry()); copy.setDataType(getDataType()); copy.setId(getId()); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataComposite.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataComposite.java 2007/12/09 00:23:49 1.23 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataComposite.java 2008/01/07 22:11:36 1.24 @@ -241,7 +241,7 @@ this(MobyDataType.getDataType(typeName, r)); } - public Object clone(){ + public MobyDataComposite clone(){ MobyDataComposite theClone = new MobyDataComposite(getDataType(), getName(), "", getId()); theClone.setNamespaces(getNamespaces()); theClone.putAll(members); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataDateTime.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataDateTime.java 2007/12/06 23:43:17 1.12 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataDateTime.java 2008/01/07 22:11:36 1.13 @@ -316,7 +316,7 @@ } - public Object clone(){ + public MobyDataDateTime clone(){ MobyDataDateTime copy = new MobyDataDateTime(getName(), getValue(), getDataType().getRegistry()); copy.setDataType(getDataType()); copy.setId(getId()); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataFloat.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataFloat.java 2007/12/06 23:43:17 1.10 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataFloat.java 2008/01/07 22:11:36 1.11 @@ -113,7 +113,7 @@ this("", stringNumber, registry); } - public Object clone(){ + public MobyDataFloat clone(){ MobyDataFloat copy = new MobyDataFloat(getName(), value, getDataType().getRegistry()); copy.setDataType(getDataType()); copy.setId(getId()); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataInt.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataInt.java 2007/12/06 23:43:17 1.9 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataInt.java 2008/01/07 22:11:36 1.10 @@ -208,7 +208,7 @@ } } - public Object clone(){ + public MobyDataInt clone(){ MobyDataInt copy = new MobyDataInt(getName(), value, getDataType().getRegistry()); copy.setDataType(getDataType()); copy.setId(getId()); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObject.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObject.java 2007/12/09 00:23:49 1.25 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObject.java 2008/01/07 22:11:36 1.26 @@ -540,7 +540,7 @@ * * @return an object of class MobyDataObject */ - public Object clone(){ + public MobyDataObject clone(){ MobyDataObject copy = null; copy = new MobyDataObject(getName(), getDataType().getRegistry()); copy.setNamespaces(getNamespaces()); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObjectSAI.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObjectSAI.java 2007/12/09 00:23:49 1.3 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObjectSAI.java 2008/01/07 22:11:36 1.4 @@ -45,7 +45,7 @@ mobyServices = services; } - public Object clone(){ + public MobyDataObjectSAI clone(){ // Clone according to the base instance's subclass specific methods return new MobyDataObjectSAI((MobyDataObject) dataInstance.clone(), mobyServices); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObjectSet.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObjectSet.java 2007/12/06 23:42:55 1.12 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObjectSet.java 2008/01/07 22:11:36 1.13 @@ -93,7 +93,7 @@ addAll(c); } - public Object clone(){ + public MobyDataObjectSet clone(){ return new MobyDataObjectSet(getName(), bag); } =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataString.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataString.java 2007/12/06 23:43:17 1.9 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataString.java 2008/01/07 22:11:36 1.10 @@ -58,7 +58,7 @@ return value.toString(); } - public Object clone(){ + public MobyDataString clone(){ MobyDataString copy = new MobyDataString(getName(), value, getDataType().getRegistry()); copy.setDataType(getDataType()); copy.setId(getId()); From gordonp at dev.open-bio.org Mon Jan 7 17:16:36 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:16:36 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072216.m07MGaRd015850@dev.open-bio.org> gordonp Mon Jan 7 17:16:35 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/service In directory dev.open-bio.org:/tmp/cvs-serv15814/src/main/org/biomoby/service Modified Files: MobyServlet.java Log Message: Added concurrent thread support for doPost calls (specifically, addException() wasn't kosher), and added runtime templated data type support moby-live/Java/src/main/org/biomoby/service MobyServlet.java,1.10,1.11 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/service/MobyServlet.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/service/MobyServlet.java 2007/12/17 18:31:09 1.10 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/service/MobyServlet.java 2008/01/07 22:16:35 1.11 @@ -23,8 +23,7 @@ import javax.xml.parsers.ParserConfigurationException; import javax.xml.soap.*; -import java.util.StringTokenizer; -import java.util.Vector; +import java.util.*; import java.math.*; /** @@ -73,12 +72,16 @@ protected static Registry registry; protected MobyService thisService; - protected MobyContentInstance currentContent = null; protected boolean isInitialized = false; + protected boolean hasDataTypeTemplates = false; // Will we need to consider runtime changes to data type specs? /** Changing this value makes logging more or less verbose */ protected boolean isDebug = false; /** Where data type, namespace and service type definition come from, if null, the default registry is used */ + // Only use for keep track of MobyServices if they have template values that are filled in at service invocation + protected Map templatedServicesMap; + protected Map responseContentInstanceMap; + public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException{ @@ -284,7 +287,7 @@ } /** - * Throws an exception if the data in the job does not match the input spec of the service + * Throws an exception if the data in the job does not match the input spec of the service. */ public static void validateArguments(MobyDataJob job, MobyService service, @@ -347,7 +350,27 @@ param.getDataType().getName()+ " in the MOBY Central object ontology)"); } - + if(param.getDataType() instanceof MobyDataTypeTemplate){ + // First instance. The runtime data type constraint is being defined here, + // i.e. the effective datatype for output parameters using the same template + // object is now set. + MobyDataTypeTemplate dtTemplate = (MobyDataTypeTemplate) param.getDataType(); + // Do not change the global definition of the template, but rather just an instance for this invocation + MobyDataType dtBoundTemplate = valueType; + param.setDataType(dtBoundTemplate); + // Propagate the change to other params using this data type + for(MobyPrimaryData primary: service.getPrimaryInputs()){ + if(primary.getDataType() == dtTemplate){ //refers to original template we just bound + primary.setDataType(dtBoundTemplate); + } + } + for(MobyPrimaryData primary: service.getPrimaryOutputs()){ + if(primary.getDataType() == dtTemplate){ //refers to original template we just bound + primary.setDataType(dtBoundTemplate); + } + } + dtTemplate.bindTemplate(param.getDataType()); + } // Looks good so far for a match. Make sure namespace matches // if part of the template too. MobyNamespace[] reqNS = param.getNamespaces(); @@ -462,6 +485,65 @@ } } + /** + * Allocates thread-specific (depending on service specification) variables to use during an invocation. + */ + protected synchronized MobyService startServiceInvocation(MobyContentInstance mci){ + if(responseContentInstanceMap == null){ // init() not called yet? + return null; + } + responseContentInstanceMap.put(Thread.currentThread(), mci); + + if(!hasDataTypeTemplates){ + return thisService; + } + MobyService invocationSpecificService = thisService.clone(); + templatedServicesMap.put(Thread.currentThread(), invocationSpecificService); + return invocationSpecificService; + } + + /** + * Cleans up invocation-specific variables. + */ + protected synchronized void endServiceInvocation(){ + if(responseContentInstanceMap != null){ + responseContentInstanceMap.remove(Thread.currentThread()); + } + if(hasDataTypeTemplates && templatedServicesMap != null){ + templatedServicesMap.remove(Thread.currentThread()); + } + } + + /** + * Returns the MobyContentInstance for the invocation response + * (or null if not in the middle of an invocation). + */ + protected MobyContentInstance getResponseContentInstance(){ + // The only time we don't return thisService is if an invocation-specific datatype is defined + if(responseContentInstanceMap != null && + responseContentInstanceMap.containsKey(Thread.currentThread())){ + return responseContentInstanceMap.get(Thread.currentThread()); + } + else{ + return null; + } + } + + /** + * Returns the (possibly invocation-specific) MobyService definition + */ + protected MobyService getService(){ + // The only time we don't return thisService is if an invocation-specific datatype is defined + if(templatedServicesMap != null && + hasDataTypeTemplates && + templatedServicesMap.containsKey(Thread.currentThread())){ + return templatedServicesMap.get(Thread.currentThread()); + } + else{ + return thisService; + } + } + private void writeResponse(HttpServletResponse response, MobyContentInstance mobyResults){ java.io.OutputStream out = null; @@ -516,12 +598,14 @@ * Writes the error to the servlet log, and adds a MobyException block to the response */ protected void addException(ServiceException se){ + MobyContentInstance currentContent = getResponseContentInstance(); + (new Exception("createing exception " +se)).printStackTrace(); if(currentContent != null){ currentContent.addException(se); if(isInitialized){ log("While executing Moby Service (initialized) " + getServiceName(), se); } - else if(thisService != null){ + else if(getService() != null){ System.err.println("While executing Moby Service (uninitialized) " + getClass().getName()); se.printStackTrace(); } @@ -551,7 +635,7 @@ if(isInitialized){ log("While executing Moby Service (initialized) " + getServiceName(), ex); } - else if(thisService != null){ + else if(getService() != null){ System.err.println("While executing Moby Service (uninitialized) " + getClass().getName()); ex.printStackTrace(); } @@ -575,7 +659,7 @@ if(isInitialized){ log("While executing Moby Service (initialized) " + getServiceName() + ", job '" + job.getID()+"'", ex); } - else if(thisService != null){ + else if(getService() != null){ System.err.println("While executing Moby Service (uninitialized) " + getClass().getName() + ", job '" + job.getID()+"'"); ex.printStackTrace(); } @@ -623,7 +707,11 @@ faultName = soapFactory.createName("Client", "", SOAPConstants.URI_NS_SOAP_ENVELOPE); - + + // Maps storing invocation-specific context variable + templatedServicesMap = new HashMap(); + responseContentInstanceMap = new HashMap(); + // Determine the Moby Central (and hence ontologies) to associate with the service String centralURL = null; mobyService ann = @@ -719,9 +807,11 @@ throw new Exception("Could not find required " + MOBY_INPUT_PARAM + " parameter in servlet config, available parameters were: " + paramNames); } + // The map allows definitions like + Map templateDataTypeMap = new HashMap(); for(int i = 0; i < ins.length; i++){ // non-void param - inputTypes.add(stringToPrimaryDataTemplate(ins[i])); + inputTypes.add(stringToPrimaryDataTemplate(ins[i], templateDataTypeMap)); } String[] outs = ann.out(); @@ -732,11 +822,15 @@ throw new Exception("Could not find required " + MOBY_OUTPUT_PARAM + " parameter in servlet config "); } + // The templateDataTypeMap map allows us to now use T in an output data type spec for(int i = 0; i < outs.length; i++){ if(outs[i] != null && outs[i].length() > 0){// non-void param - outputTypes.add(stringToPrimaryDataTemplate(outs[i])); + outputTypes.add(stringToPrimaryDataTemplate(outs[i], templateDataTypeMap)); } } + if(!templateDataTypeMap.isEmpty()){ + hasDataTypeTemplates = true; // affects runtime service behaviours + } String[] secondaries = ann.secondaryParams(); if(getCoCInitParameter(MOBY_SECONDARYINPUT_PARAM) != null){ @@ -1032,7 +1126,8 @@ * Strings have the form name:objectType:namespace, with ":namespace" optional * If the input is expected to be a Collection, then the syntax is name:Collection(objectType):namespace */ - public static MobyPrimaryData stringToPrimaryDataTemplate(String spec) throws Exception{ + public static MobyPrimaryData stringToPrimaryDataTemplate(String spec, Map runTimeTemplates) + throws Exception{ StringTokenizer st = new StringTokenizer(spec, ":"); String name = st.nextToken(); if(name == null || name.length() == 0){ @@ -1044,7 +1139,7 @@ spec + ") must have the minimal form " + "\"name:objectType\", aborting!"); } - String objectType = st.nextToken(); + String objectType = st.nextToken().trim(); if(objectType == null || objectType.length() == 0){ throw new Exception("The parameter specification (" + spec + ") has a blank object type, aborting!"); @@ -1055,7 +1150,7 @@ boolean isCollection = false; if(objectType.indexOf("Collection(") == 0 && objectType.lastIndexOf(")") == objectType.length()-1){ - objectType = objectType.substring(11, objectType.length()-1); + objectType = objectType.substring(11, objectType.length()-1).trim(); dataTemplate = new MobyPrimaryDataSet(name); isCollection = true; } @@ -1063,13 +1158,58 @@ dataTemplate = new MobyPrimaryDataSimple(name); } - MobyDataType type = MobyDataType.getDataType(objectType, registry); + // Allow runtime templating like , so for example we can + // restrict output to the same type T as the input that was provided. + String newTemplateToken = null; + if(objectType.indexOf("<") == 0 && + objectType.lastIndexOf(">") == objectType.length()-1){ + String[] tokens = objectType.substring(2, objectType.length()-1).split("\\s+"); + if(tokens.length != 3 || !"extends".equals(tokens[1]) || + tokens[0] == null || tokens[0].length() == 0 || + tokens[2] == null || tokens[2].length() == 0 ){ + throw new Exception("The parameter specification (" + + spec + ") attempts to define a template data type, but it is not of the " + + "expected form "); + } + if(runTimeTemplates.containsKey(tokens[0])){ + throw new Exception("The parameter specification (" + + spec + ") attempts to define a template data type " + tokens[0] + + ", but that token has already been bound to " + + " a template definition in this context (" + + runTimeTemplates.get(tokens[0]).getName() + ")"); + } + newTemplateToken = tokens[0]; + if(MobyDataType.getDataType(newTemplateToken, registry) != null){ + System.err.println("The parameter specification (" + + spec + ") defines a template data type " + tokens[0] + + ", but that token conflicts with the name of an existing " + + "data type in Moby Central. The template definition will " + + "be used, but this may have unintended consequences. " + + "It is suggested that you change the template name " + + " to an unambiguous one."); + } + objectType = tokens[2]; + } + MobyDataType type = null; + // Using a previously defined template data type + if(runTimeTemplates.containsKey(objectType)){ + type = runTimeTemplates.get(objectType); + } + else{ // Using a literal data type name + type = MobyDataType.getDataType(objectType, registry); + } if(type == null){ throw new Exception("The parameter specification (" + spec + ") has a data type not found in the " + "MOBY registry, aborting! (Either correct the type," + " or register it as a new type in MOBY Central"); } + // Defining a template data type, MobyDataTypeTemplate will + // bind to a subclass during service execution. + if(newTemplateToken != null){ + runTimeTemplates.put(newTemplateToken, new MobyDataTypeTemplate(type)); + type = runTimeTemplates.get(newTemplateToken); + } dataTemplate.setDataType(type); if(isCollection){ // Example data element in set needed for RDF creator to recognize the data type @@ -1077,7 +1217,7 @@ exampleData.setDataType(type); ((MobyPrimaryDataSet) dataTemplate).addElement(exampleData); } - + // namespace is optional if(st.hasMoreTokens()){ String namespaceValue = st.nextToken(); @@ -1120,13 +1260,14 @@ */ public void processRequests(MobyContentInstance requestContents, MobyContentInstance resultContents) throws Exception{ - currentContent = resultContents; //for exception handling within processRequest w/out content being passed around + // Set up the per-invocation variable context + startServiceInvocation(resultContents); for(String jobName: requestContents.keySet()){ try{ MobyDataJob currentRequest = requestContents.get(jobName); - if(thisService != null){ + if(getService() != null){ // Should happen, unless main() was called - validateArguments(currentRequest, thisService, "While executing service"); + validateArguments(currentRequest, getService(), "While executing service"); } MobyDataJob currentResult = resultContents.get(jobName); if(currentResult == null){ @@ -1139,7 +1280,8 @@ addException(resultContents, requestContents.get(jobName), e); } } - currentContent = null; + // Makes sure per-invocation variables can get GC'ed + endServiceInvocation(); } /** From gordonp at dev.open-bio.org Mon Jan 7 17:17:57 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:17:57 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072217.m07MHvWf015934@dev.open-bio.org> gordonp Mon Jan 7 17:17:57 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared In directory dev.open-bio.org:/tmp/cvs-serv15902/src/main/org/biomoby/shared Added Files: MobyDataTypeTemplate.java Log Message: Placeholder class for MobyServlet runtime templating of data types moby-live/Java/src/main/org/biomoby/shared MobyDataTypeTemplate.java,NONE,1.1 From gordonp at dev.open-bio.org Mon Jan 7 17:19:14 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:19:14 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072219.m07MJEq3015978@dev.open-bio.org> gordonp Mon Jan 7 17:19:14 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui In directory dev.open-bio.org:/tmp/cvs-serv15942/src/main/ca/ucalgary/seahawk/gui Modified Files: MobyContentPane.java Log Message: More verbose logging moby-live/Java/src/main/ca/ucalgary/seahawk/gui MobyContentPane.java,1.15,1.16 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentPane.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentPane.java 2007/12/07 20:32:29 1.15 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentPane.java 2008/01/07 22:19:14 1.16 @@ -233,7 +233,7 @@ status.setText("Note: There was an error transforming the MOBY data " + "into presentation form, it may not be displayed correctly"); logger.error("Note: There was an error transforming the MOBY data " + - "into presentation form, it may not be displayed correctly"); + "into presentation form, it may not be displayed correctly", e); } // Get rid of inter-tag whitespaces htmlContents = htmlContents.replaceAll(">[ \\t\\r\\n]+<", "><"); From gordonp at dev.open-bio.org Mon Jan 7 17:22:50 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:22:50 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072222.m07MMoVE016022@dev.open-bio.org> gordonp Mon Jan 7 17:22:49 EST 2008 Update of /home/repository/moby/moby-live/Java/src/Clients In directory dev.open-bio.org:/tmp/cvs-serv15986/src/Clients Modified Files: ServletTester.java Log Message: Updated to deal with new MobyServlet.stringToPrimaryDataTemplate() signature (includes runtime template var map) moby-live/Java/src/Clients ServletTester.java,1.2,1.3 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/Clients/ServletTester.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Java/src/Clients/ServletTester.java 2006/10/31 20:25:55 1.2 +++ /home/repository/moby/moby-live/Java/src/Clients/ServletTester.java 2008/01/07 22:22:48 1.3 @@ -103,13 +103,14 @@ System.exit(1); } + Map map = new HashMap(); if(MobyServlet.MOBY_INPUT_PARAM.equals(paramName.getTextContent())){ String values = paramValue.getTextContent(); if(values != null && values.length() != 0){ StringTokenizer st = new StringTokenizer(values, ","); // non-void param while(st.hasMoreTokens()){ - inputTypes.add(MobyServlet.stringToPrimaryDataTemplate(st.nextToken())); + inputTypes.add(MobyServlet.stringToPrimaryDataTemplate(st.nextToken(), map)); } } } @@ -119,7 +120,7 @@ StringTokenizer st = new StringTokenizer(values, ","); // non-void param while(st.hasMoreTokens()){ - outputTypes.add(MobyServlet.stringToPrimaryDataTemplate(st.nextToken())); + outputTypes.add(MobyServlet.stringToPrimaryDataTemplate(st.nextToken(), map)); } } } From gordonp at dev.open-bio.org Mon Jan 7 17:45:32 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:45:32 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072245.m07MjWTI016327@dev.open-bio.org> gordonp Mon Jan 7 17:45:32 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client In directory dev.open-bio.org:/tmp/cvs-serv16291/src/main/org/biomoby/client Modified Files: MobyRequest.java Log Message: Added default secondaries only if not already specified in the given input data moby-live/Java/src/main/org/biomoby/client MobyRequest.java,1.32,1.33 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/07 22:04:17 1.32 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/07 22:45:32 1.33 @@ -923,16 +923,19 @@ } if(secondaries != null){ // If no secondaries provided, fill them in by default - if(secondaries.length != 0 && secondaryParams.isEmpty()){ + if(secondaries.length != 0){ for(MobySecondaryData secondary: secondaries){ - secondaryParams.put(secondary.getName(), new MobyDataSecondaryInstance(secondary)); + if(!secondaryParams.containsKey(secondary.getName())){ + secondaryParams.put(secondary.getName(), new MobyDataSecondaryInstance(secondary)); + } } } - else if(secondaries.length != secondaryParams.size()){ + if(secondaries.length != secondaryParams.size()){ throw new MobyException("Service " + mobyService.getName() + " was provided " + secondaryParams.size() + " secondary input parameter(s), but takes " + secondaries.length + - " (query " + queryName + ")"); + " (query " + queryName + "). Extra secondary" + + " parameters must have been specified"); } } From gordonp at dev.open-bio.org Tue Jan 8 10:20:31 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 8 Jan 2008 10:20:31 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801081520.m08FKVud006302@dev.open-bio.org> gordonp Tue Jan 8 10:20:31 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client In directory dev.open-bio.org:/tmp/cvs-serv6266/src/main/org/biomoby/client Modified Files: MobyRequest.java Log Message: Foreach and Generics updates to request creation code, plus corrected default secondaries setting moby-live/Java/src/main/org/biomoby/client MobyRequest.java,1.33,1.34 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/07 22:45:32 1.33 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/08 15:20:31 1.34 @@ -873,34 +873,27 @@ MobyData[] inputs = mobyService.getPrimaryInputs(); MobySecondaryData[] secondaries = mobyService.getSecondaryInputs(); - Iterator queries = data.keySet().iterator(); // Make sure the number of input args is correct for each query being submitted - while(queries.hasNext()){ - String queryName = (String) queries.next(); - MobyDataJob query = data.get(queryName); + for(Map.Entry entry: data.entrySet()){ + String queryName = entry.getKey(); + MobyDataJob query = entry.getValue(); // Additionally, we check if they are MobyDataInstances below Map primaryParams = new HashMap(); Map secondaryParams = new HashMap(); - Iterator params = query.keySet().iterator(); // To store the primary input parameter name as given by the user, // in case we need it later on for parameter renaming... String primaryParamName = null; - while(params.hasNext()){ - String name = (String) params.next(); - Object param = query.get(name); + for(Map.Entry subentry: query.entrySet()){ + String name = subentry.getKey(); + MobyDataInstance param = subentry.getValue(); if(param == null){ throw new MobyException("Query " + queryName + " contained a null input parameter (" + name + ")"); } - else if(!(param instanceof MobyDataInstance)){ - System.err.println("Input parameter " + name + " (query " + queryName + - ") was not a MobyDataInstance " + - "as expected, but rather was of class " + param.getClass().getName()); - } else if(param instanceof MobyPrimaryData){ primaryParams.put(name, (MobyPrimaryData) param); primaryParamName = name; @@ -926,7 +919,7 @@ if(secondaries.length != 0){ for(MobySecondaryData secondary: secondaries){ if(!secondaryParams.containsKey(secondary.getName())){ - secondaryParams.put(secondary.getName(), new MobyDataSecondaryInstance(secondary)); + query.put(secondary.getName(), new MobyDataSecondaryInstance(secondary)); } } } From gordonp at dev.open-bio.org Tue Jan 8 10:26:55 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 8 Jan 2008 10:26:55 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801081526.m08FQtmX006346@dev.open-bio.org> gordonp Tue Jan 8 10:26:55 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client In directory dev.open-bio.org:/tmp/cvs-serv6310/src/main/org/biomoby/client Modified Files: MobyRequest.java Log Message: Less verbose moby-live/Java/src/main/org/biomoby/client MobyRequest.java,1.34,1.35 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/08 15:20:31 1.34 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/08 15:26:55 1.35 @@ -197,7 +197,6 @@ public void setInput(MobyDataInstance[] data) throws MobyException{ MobyDataJob job = new MobyDataJob(); for(MobyDataInstance param: data){ - System.err.println("Adding job param " + param.getName()); job.put(param.getName(), param); } inputData = new MobyContentInstance(); From gordonp at dev.open-bio.org Tue Jan 8 10:27:51 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 8 Jan 2008 10:27:51 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801081527.m08FRpNh006412@dev.open-bio.org> gordonp Tue Jan 8 10:27:50 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui In directory dev.open-bio.org:/tmp/cvs-serv6376/src/main/ca/ucalgary/seahawk/gui Modified Files: MobyServicesGUI.java Log Message: Less verbose moby-live/Java/src/main/ca/ucalgary/seahawk/gui MobyServicesGUI.java,1.13,1.14 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyServicesGUI.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyServicesGUI.java 2007/12/14 23:18:54 1.13 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyServicesGUI.java 2008/01/08 15:27:50 1.14 @@ -183,7 +183,6 @@ public void setupServiceSecondaryData(MobyRequestEventHandler handler){ MobyDataInstance[] castInputs = new MobyDataInstance[primaryInput.length]; - System.err.println("Submitting job with " + primaryInput.length + " parameters"); for(int i = 0; i < primaryInput.length; i++){ if(!(primaryInput[i] instanceof MobyDataInstance)){ logger.warn("Warning: setupServiceSecondaryData was called before the primary input" + From kawas at dev.open-bio.org Wed Jan 9 10:13:05 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Wed, 9 Jan 2008 10:13:05 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801091513.m09FD56Q015731@dev.open-bio.org> kawas Wed Jan 9 10:13:04 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv15696/Perl/scripts Modified Files: Moby Log Message: moby-live/Perl/scripts Moby,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Moby,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Perl/scripts/Moby 2007/12/04 18:02:30 1.1 +++ /home/repository/moby/moby-live/Perl/scripts/Moby 2008/01/09 15:13:03 1.2 @@ -16,7 +16,6 @@ # #----------------------------------------------------------------- -# this is a 're-port' of the RESOURCES script from java back to perl use strict; use CGI qw/:standard/; From kawas at dev.open-bio.org Wed Jan 9 11:23:48 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Wed, 9 Jan 2008 11:23:48 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801091623.m09GNm5m015951@dev.open-bio.org> kawas Wed Jan 9 11:23:47 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv15916/Perl/scripts Modified Files: service_tester.pl Log Message: formatted the code a little bit and also moved the call to retrieve service providers out of the foreach loop so that the call is made once and not numerous times. moby-live/Perl/scripts service_tester.pl,1.6,1.7 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/service_tester.pl,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- /home/repository/moby/moby-live/Perl/scripts/service_tester.pl 2008/01/03 22:58:10 1.6 +++ /home/repository/moby/moby-live/Perl/scripts/service_tester.pl 2008/01/09 16:23:47 1.7 @@ -64,14 +64,14 @@ # this is just to test if I'm going to have permissions # right now, rather than an hour from now... Arghghg! -open( OUT, ">>$DIRECTORY/$FILENAME" ) || die("Cannot Open File $DIRECTORY/$FILENAME $!"); +open( OUT, ">>$DIRECTORY/$FILENAME" ) || die("Cannot Open File '$DIRECTORY/$FILENAME' $!"); close OUT; # create some shared variables my $alive_handle = tie %ALIVE, 'IPC::Shareable', undef, { destroy => 'yes' }; -foreach my $cat (@CATEGORIES) { - my $central = +# create the central client and get all service providers once +my $central = MOBY::Client::Central->new( Registries => { mobycentral => { @@ -81,95 +81,92 @@ } ); my @providers = $central->retrieveServiceProviders(); -foreach my $authURI(@providers){ - my ( $second, $minute, $hour, @whatever ) = localtime(); - print "Finding services registered by '$authURI' as '$cat' @ $hour:$minute:$second\n"; - my ( $services, $reg ) = $central->findService( Registry => "mobycentral",category => $cat, authURI => $authURI ); - ( $second, $minute, $hour, @whatever ) = localtime(); - print "Services found " - . scalar @$services - . "... processing @ $hour:$minute:$second \n"; - - my $count = 0; - print "\tservice count: " . scalar (@$services) . "\n"; - foreach (@$services) { - # ignore test services - next if $_->authority eq 'samples.jmoby.net'; - wait, $count-- while $count >= $THREAD_COUNT; - $count++; - my $pid = fork(); - $count-- unless defined $pid; - do { IPC::Shareable->clean_up_all; die "Couldn't fork: $!"; } - unless defined $pid; - if ($pid) { - # parent - do nothing ...s - } - elsif ( $pid == 0 ) { - my $name = $_->name; - my $auth = $_->authority; - my $url = $_->URL; - - do { - # dont process localhost addresses ... - exit(0); - } if $url =~ /localhost/; - - # child - stuff to do goes here - #print "Calling: " . $auth . "," . $name . "\n"; - my $soap = - SOAP::Lite->uri("http://biomoby.org/") - ->proxy( $url, timeout => $TIMEOUT )->on_fault( - sub { - my $soap = shift; - my $res = shift; +foreach my $cat (@CATEGORIES) { + foreach my $authURI (@providers) { + my ( $second, $minute, $hour, @whatever ) = localtime(); + print "Finding services registered by '$authURI' as '$cat' @ $hour:$minute:$second\n"; + my ( $services, $reg ) = $central->findService( Registry => "mobycentral",category => $cat, authURI => $authURI ); + ( $second, $minute, $hour, @whatever ) = localtime(); + print "Services found " + . scalar @$services + . "... processing @ $hour:$minute:$second \n"; + + my $count = 0; + print "\tservice count: " . scalar (@$services) . "\n"; + foreach (@$services) { + # ignore test services + next if $_->authority eq 'samples.jmoby.net'; + wait, $count-- while $count >= $THREAD_COUNT; + $count++; + my $pid = fork(); + $count-- unless defined $pid; + do { IPC::Shareable->clean_up_all; die "Couldn't fork: $!"; } + unless defined $pid; + if ($pid) { + # parent - do nothing ...s + } elsif ( $pid == 0 ) { + my $name = $_->name; + my $auth = $_->authority; + my $url = $_->URL; + do { + # dont process localhost addresses ... + exit(0); + } if $url =~ /localhost/; + + # child - stuff to do goes here + #print "Calling: " . $auth . "," . $name . "\n"; + my $soap = + SOAP::Lite->uri("http://biomoby.org/") + ->proxy( $url, timeout => $TIMEOUT )->on_fault( + sub { + my $soap = shift; + my $res = shift; + + #TODO add to DEAD hash ... + $alive_handle->shlock(); + $ALIVE{$auth} = () if not exists $ALIVE{$auth}; + push @{ $ALIVE{$auth} }, {name=>$name, alive=>undef}; + $alive_handle->shunlock(); + + #print "\t" . $auth . "," . $name . " ~isAlive\n"; + exit(0); + } + ); + + my $input = _empty_input(); + my $out = + $soap->$name( SOAP::Data->type( 'string' => "$input" ) )->result; + do { + #TODO add to ALIVE hash ... + #print "\t" . $auth . "," . $name . " isAlive\n"; + $alive_handle->shlock(); + $ALIVE{$auth} = () if not exists $ALIVE{$auth}; + push @{ $ALIVE{$auth} }, {name=>$name, alive=>1}; + $alive_handle->shunlock(); + exit(0); + } if $out; + do { #TODO add to DEAD hash ... + #print "\t" . $auth . "," . $name . " ~isAlive\n"; $alive_handle->shlock(); $ALIVE{$auth} = () if not exists $ALIVE{$auth}; push @{ $ALIVE{$auth} }, {name=>$name, alive=>undef}; $alive_handle->shunlock(); - - #print "\t" . $auth . "," . $name . " ~isAlive\n"; exit(0); - } - ); - - my $input = _empty_input(); - my $out = - $soap->$name( SOAP::Data->type( 'string' => "$input" ) )->result; - do { - - #TODO add to ALIVE hash ... - #print "\t" . $auth . "," . $name . " isAlive\n"; - $alive_handle->shlock(); - $ALIVE{$auth} = () if not exists $ALIVE{$auth}; - push @{ $ALIVE{$auth} }, {name=>$name, alive=>1}; - $alive_handle->shunlock(); - exit(0); - } if $out; - do { - - #TODO add to DEAD hash ... - #print "\t" . $auth . "," . $name . " ~isAlive\n"; - $alive_handle->shlock(); - $ALIVE{$auth} = () if not exists $ALIVE{$auth}; - push @{ $ALIVE{$auth} }, {name=>$name, alive=>undef}; - $alive_handle->shunlock(); - exit(0); - } unless $out; - } - else { - IPC::Shareable->clean_up_all; - die "couldn?t fork: $!\n"; + } unless $out; + } else { + IPC::Shareable->clean_up_all; + die "couldn?t fork: $!\n"; + } } - } - # dont proceed until we are completed with the first batch of children! - wait, $count-- while $count > 0; - ( $second, $minute, $hour, @whatever ) = localtime(); - print "Testing of '$cat' services from '$authURI' completed @ $hour:$minute:$second \n"; -} + # dont proceed until we are completed with the first batch of children! + wait, $count-- while $count > 0; + ( $second, $minute, $hour, @whatever ) = localtime(); + print "Testing of '$cat' services from '$authURI' completed @ $hour:$minute:$second \n"; + } } my $doc = XML::LibXML::Document->new( "1.0", "UTF-8" ); From kawas at dev.open-bio.org Wed Jan 9 14:11:05 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Wed, 9 Jan 2008 14:11:05 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801091911.m09JB5Gs016436@dev.open-bio.org> kawas Wed Jan 9 14:11:04 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv16405/Perl/scripts Added Files: ServicePingerValidator Log Message: preliminary commit of a form that can be used to see why the pinger thinks your service is dead. Still needs some work and testing. moby-live/Perl/scripts ServicePingerValidator,NONE,1.1 From gordonp at dev.open-bio.org Wed Jan 9 15:19:09 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Wed, 9 Jan 2008 15:19:09 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801092019.m09KJ92A016626@dev.open-bio.org> gordonp Wed Jan 9 15:19:08 EST 2008 Update of /home/repository/moby/moby-live/Java/src/Clients In directory dev.open-bio.org:/tmp/cvs-serv16594/src/Clients Added Files: MobyPinger.java Log Message: Client to perform a basic Moby ping (empty request should retrieve an empty response) moby-live/Java/src/Clients MobyPinger.java,NONE,1.1 From gordonp at dev.open-bio.org Wed Jan 9 15:25:36 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Wed, 9 Jan 2008 15:25:36 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801092025.m09KPaxP016674@dev.open-bio.org> gordonp Wed Jan 9 15:25:36 EST 2008 Update of /home/repository/moby/moby-live/Java/src/Clients In directory dev.open-bio.org:/tmp/cvs-serv16638/src/Clients Modified Files: MobyPinger.java Log Message: Better invalid service handling moby-live/Java/src/Clients MobyPinger.java,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/Clients/MobyPinger.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Java/src/Clients/MobyPinger.java 2008/01/09 20:19:07 1.1 +++ /home/repository/moby/moby-live/Java/src/Clients/MobyPinger.java 2008/01/09 20:25:36 1.2 @@ -31,8 +31,9 @@ // Make sure we have a service to run for this input if(validServices == null || validServices.length == 0){ - System.err.println("Could not find a valid services with name "+ + System.err.println("Could not find a valid service with name "+ args[0] + " and provider " + args[1]); + System.exit(1); } else{ System.out.println("Found a services"); From kawas at dev.open-bio.org Thu Jan 10 09:40:29 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Thu, 10 Jan 2008 09:40:29 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801101440.m0AEeTcV018379@dev.open-bio.org> kawas Thu Jan 10 09:40:28 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv18343/Perl/scripts Modified Files: ServicePingerValidator Log Message: moby-live/Perl/scripts ServicePingerValidator,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/ServicePingerValidator,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Perl/scripts/ServicePingerValidator 2008/01/09 19:11:03 1.1 +++ /home/repository/moby/moby-live/Perl/scripts/ServicePingerValidator 2008/01/10 14:40:27 1.2 @@ -93,7 +93,10 @@ my $out = $soap->$name( SOAP::Data->type( 'string' => "$input" ) )->result; do { - print "
     " . $auth . "," . $name . " isAlive

"; + $out =~ s/&/&/g; + $out =~ s/>/>/g; + $out =~ s/ " . $auth . "," . $name . " isAlive.\n output:\n$out
"; } if $out; do { print "
     " . $auth . "," . $name . " ~ did not respond!

"; @@ -145,7 +148,10 @@ my $out = $soap->$name( SOAP::Data->type( 'string' => "$input" ) )->result; do { - print "
     " . $auth . "," . $name . " isAlive

"; + $out =~ s/&/&/g; + $out =~ s/>/>/g; + $out =~ s/ " . $auth . "," . $name . " isAlive.\n output:\n$out
"; } if $out; do { print "
     " . $auth . "," . $name . " ~ did not respond!

"; From kawas at dev.open-bio.org Thu Jan 10 10:25:18 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Thu, 10 Jan 2008 10:25:18 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801101525.m0AFPIbS018523@dev.open-bio.org> kawas Thu Jan 10 10:25:17 EST 2008 Update of /home/repository/moby/moby-live/Docs/MOBY-S_API In directory dev.open-bio.org:/tmp/cvs-serv18488/Docs/MOBY-S_API Modified Files: RegistryScripts.html Log Message: added the ServicePingerValidator to the documentation. moby-live/Docs/MOBY-S_API RegistryScripts.html,1.4,1.5 =================================================================== RCS file: /home/repository/moby/moby-live/Docs/MOBY-S_API/RegistryScripts.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- /home/repository/moby/moby-live/Docs/MOBY-S_API/RegistryScripts.html 2007/12/12 14:01:22 1.4 +++ /home/repository/moby/moby-live/Docs/MOBY-S_API/RegistryScripts.html 2008/01/10 15:25:16 1.5 @@ -171,6 +171,8 @@
  • RDFAgent Validator - a form that can be used to test whether your installation of the agent was successful, or to test an RDF document that describes your services for syntactical errors.
  • +
  • Service Pinger Validator - a form that can be used to ping individual services so that you can determine whether there is a problem with that particular service.
    +
  • This document is broken down into the following sections: @@ -209,6 +211,7 @@ authority.pl
    ValidateService
    AgentRDFValidator
    + ServicePingerValidator
    RESOURCES
    Moby Copy the following file somewhere other than a web accessible directory (this script will be placed on a cron) @@ -221,6 +224,8 @@
  • You're done. All that is left for you to do is configure the newly installed scripts.
  • +

    Please make sure that the first line of all the scripts corresponds to the correct location of your perl executable.
    + For instance if you perl is located in /bin/my/perl, then make sure to modify the first line of each of the scripts so that they read #!/bin/my/perl -w

    From kawas at dev.open-bio.org Thu Jan 10 10:25:50 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Thu, 10 Jan 2008 10:25:50 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801101525.m0AFPoYw018581@dev.open-bio.org> kawas Thu Jan 10 10:25:50 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv18546/Perl/scripts Modified Files: Moby Log Message: added the ServicePingerValidator to the list of links moby-live/Perl/scripts Moby,1.2,1.3 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Moby,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Perl/scripts/Moby 2008/01/09 15:13:03 1.2 +++ /home/repository/moby/moby-live/Perl/scripts/Moby 2008/01/10 15:25:50 1.3 @@ -232,6 +232,12 @@

    For a form based page, click here.

    +

    Ping Registered Services - +Invoke the service pinger on any already registered service or group of services from a single service provider.

    +
    +

    For a form based page, click here. +

    +

    CallableServiceScript -Use this to determine whether or not a particular service(s) is reachable.

    From kawas at dev.open-bio.org Mon Jan 14 09:23:40 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 14 Jan 2008 09:23:40 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801141423.m0EENeMS032428@dev.open-bio.org> kawas Mon Jan 14 09:23:39 EST 2008 Update of /home/repository/moby/moby-live/Perl/MOBY/RDF/Ontologies In directory dev.open-bio.org:/tmp/cvs-serv32381/Perl/MOBY/RDF/Ontologies Modified Files: ServiceTypes.pm Namespaces.pm Services.pm Objects.pm Log Message: taverna dies because of the '/', so reverting back to '#' for the time being. moby-live/Perl/MOBY/RDF/Ontologies ServiceTypes.pm,1.5,1.6 Namespaces.pm,1.5,1.6 Services.pm,1.10,1.11 Objects.pm,1.7,1.8 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY/RDF/Ontologies/ServiceTypes.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Perl/MOBY/RDF/Ontologies/ServiceTypes.pm 2007/12/21 15:39:03 1.5 +++ /home/repository/moby/moby-live/Perl/MOBY/RDF/Ontologies/ServiceTypes.pm 2008/01/14 14:23:39 1.6 @@ -75,8 +75,8 @@ # save some information retrieved from mobycentral.config my $CONF = MOBY::Config->new; - $self->{uri} = $CONF->{mobyservice}->{resourceURL} || 'http://biomoby.org/RESOURCES/MOBY-S/Services/'; - $self->{uri} = $self->{uri} . "/" unless $self->{uri} =~ m/^.*(\/{1})$/; + $self->{uri} = $CONF->{mobyservice}->{resourceURL} || 'http://biomoby.org/RESOURCES/MOBY-S/Services#'; + $self->{uri} = $self->{uri} . "#" unless $self->{uri} =~ m/^.*(\#{1})$/; $self->{query_all} = <new; - $self->{uri} = $CONF->{mobynamespace}->{resourceURL} || 'http://biomoby.org/RESOURCES/MOBY-S/Namespaces/'; - $self->{uri} = $self->{uri} . "/" unless $self->{uri} =~ m/^.*(\/{1})$/; + $self->{uri} = $CONF->{mobynamespace}->{resourceURL} || 'http://biomoby.org/RESOURCES/MOBY-S/Namespaces#'; + $self->{uri} = $self->{uri} . "#" unless $self->{uri} =~ m/^.*(\#{1})$/; $self->{query_all} = <{instance_uri} = - 'http://biomoby.org/RESOURCES/MOBY-S/ServiceInstances/' + 'http://biomoby.org/RESOURCES/MOBY-S/ServiceInstances#' unless $moby->{ServiceInstance}->[0]; - $self->{service_uri} = 'http://biomoby.org/RESOURCES/MOBY-S/Services/' + $self->{service_uri} = 'http://biomoby.org/RESOURCES/MOBY-S/Services#' unless $moby->{Services}->[0]; $self->{namespace_uri} = - 'http://biomoby.org/RESOURCES/MOBY-S/Namespaces/' + 'http://biomoby.org/RESOURCES/MOBY-S/Namespaces#' unless $moby->{Namespaces}->[0]; - $self->{datatype_uri} = 'http://biomoby.org/RESOURCES/MOBY-S/Objects/' + $self->{datatype_uri} = 'http://biomoby.org/RESOURCES/MOBY-S/Objects#' unless $moby->{Objects}->[0]; } # add a / at the end of the uri if it isnt there already - $self->{instance_uri} = $self->{instance_uri} . "/" - unless $self->{instance_uri} =~ m/^.*(\/{1})$/; - $self->{service_uri} = $self->{service_uri} . "/" - unless $self->{service_uri} =~ m/^.*(\/{1})$/; - $self->{namespace_uri} = $self->{namespace_uri} . "/" - unless $self->{namespace_uri} =~ m/^.*(\/{1})$/; - $self->{datatype_uri} = $self->{datatype_uri} . "/" - unless $self->{datatype_uri} =~ m/^.*(\/{1})$/; + $self->{instance_uri} = $self->{instance_uri} . "#" + unless $self->{instance_uri} =~ m/^.*(\#{1})$/; + $self->{service_uri} = $self->{service_uri} . "#" + unless $self->{service_uri} =~ m/^.*(\#{1})$/; + $self->{namespace_uri} = $self->{namespace_uri} . "#" + unless $self->{namespace_uri} =~ m/^.*(\#{1})$/; + $self->{datatype_uri} = $self->{datatype_uri} . "#" + unless $self->{datatype_uri} =~ m/^.*(\#{1})$/; $self->{is_alive_path} = $CONF->{mobycentral}->{service_tester_path}; =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY/RDF/Ontologies/Objects.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- /home/repository/moby/moby-live/Perl/MOBY/RDF/Ontologies/Objects.pm 2007/12/21 15:39:03 1.7 +++ /home/repository/moby/moby-live/Perl/MOBY/RDF/Ontologies/Objects.pm 2008/01/14 14:23:39 1.8 @@ -76,8 +76,8 @@ # save some information retrieved from mobycentral.config my $CONF = MOBY::Config->new; - $self->{uri} = $CONF->{mobyobject}->{resourceURL} || 'http://biomoby.org/RESOURCES/MOBY-S/Objects/'; - $self->{uri} = $self->{uri} . "/" unless $self->{uri} =~ m/^.*(\/{1})$/; + $self->{uri} = $CONF->{mobyobject}->{resourceURL} || 'http://biomoby.org/RESOURCES/MOBY-S/Objects#'; + $self->{uri} = $self->{uri} . "#" unless $self->{uri} =~ m/^.*(\#{1})$/; $self->{uri_comp} = $self->{uri}; $self->{uri_comp} =~ s/\/MOBY\-S\//\/MOBY_SUB_COMPONENT\//; From kawas at dev.open-bio.org Mon Jan 14 14:51:11 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 14 Jan 2008 14:51:11 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801141951.m0EJpBT7004016@dev.open-bio.org> kawas Mon Jan 14 14:51:10 EST 2008 Update of /home/repository/moby/moby-live/Perl/MOBY/RDF/Predicates In directory dev.open-bio.org:/tmp/cvs-serv3981/Perl/MOBY/RDF/Predicates Modified Files: MOBY_PREDICATES.pm Log Message: moby-live/Perl/MOBY/RDF/Predicates MOBY_PREDICATES.pm,1.2,1.3 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY/RDF/Predicates/MOBY_PREDICATES.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Perl/MOBY/RDF/Predicates/MOBY_PREDICATES.pm 2007/12/21 15:39:03 1.2 +++ /home/repository/moby/moby-live/Perl/MOBY/RDF/Predicates/MOBY_PREDICATES.pm 2008/01/14 19:51:10 1.3 @@ -7,7 +7,7 @@ use constant MOBY_PREDICATES_PREFIX => 'moby'; use constant MOBY_PREDICATES_URI => - 'http://biomoby.org/RESOURCES/MOBY-S/Predicates/'; + 'http://biomoby.org/RESOURCES/MOBY-S/Predicates#'; ###################################### ## Predicates for MOBY_PREDICATES ## From gordonp at dev.open-bio.org Mon Jan 14 17:54:20 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 14 Jan 2008 17:54:20 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801142254.m0EMsKXM008755@dev.open-bio.org> gordonp Mon Jan 14 17:54:19 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data In directory dev.open-bio.org:/tmp/cvs-serv8718/src/main/org/biomoby/shared/data Modified Files: MobyContentInstance.java Log Message: Minor style changes moby-live/Java/src/main/org/biomoby/shared/data MobyContentInstance.java,1.13,1.14 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyContentInstance.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyContentInstance.java 2007/12/06 17:06:34 1.13 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyContentInstance.java 2008/01/14 22:54:19 1.14 @@ -70,7 +70,7 @@ } queryParams.put(paramName, mdi); } - put(""+autoID++, queryParams); + put(queryParams); } /** @@ -550,7 +550,7 @@ getClass()); } - if(queryID == null || !(queryID instanceof String) || ((String) queryID).length() == 0){ + if(queryID == null || queryID.length() == 0){ // autogenerate the queryID return members.put(""+autoID++, value); } From gordonp at dev.open-bio.org Mon Jan 14 17:55:43 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 14 Jan 2008 17:55:43 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801142255.m0EMthjd008834@dev.open-bio.org> gordonp Mon Jan 14 17:55:42 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util In directory dev.open-bio.org:/tmp/cvs-serv8798/src/main/ca/ucalgary/seahawk/util Modified Files: MinJarMaker.java Log Message: Added verbose class loading option with -Dverbose.class=true moby-live/Java/src/main/ca/ucalgary/seahawk/util MinJarMaker.java,1.7,1.8 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/MinJarMaker.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/MinJarMaker.java 2007/12/14 23:38:06 1.7 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/MinJarMaker.java 2008/01/14 22:55:42 1.8 @@ -23,6 +23,8 @@ */ public class MinJarMaker extends ClassLoader implements Runnable{ + public static String VERBOSE = "verbose.class"; + // The JAR file we want to create protected String jarfile; @@ -299,6 +301,9 @@ throw new IOException( "Could only read "+r+" of "+len+" bytes from "+classFile ); } fin.close(); + if(Boolean.getBoolean(VERBOSE)){ + System.err.println("[Loaded " + name + " from " + classFile.getCanonicalPath() + "]"); + } return data; } else{ @@ -328,6 +333,9 @@ classBytes = new byte[(int) classSize]; //classes better not be bigger than 2 GB! // Slurp it up in one shot classStream.read(classBytes, 0, (int) classSize); + if(Boolean.getBoolean(VERBOSE)){ + System.err.println("[Loaded " + name + " from " + f.getCanonicalPath() + "]"); + } return classBytes; } else{ @@ -339,6 +347,9 @@ r = classStream.read(byteBufferChunk, 0, 1024)){ byteBuffer.write(byteBufferChunk, 0, r); } + if(Boolean.getBoolean(VERBOSE)){ + System.err.println("[Loaded " + name + " from " + f.getCanonicalPath() + "]"); + } return byteBuffer.toByteArray(); } } From gordonp at dev.open-bio.org Mon Jan 14 18:00:44 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 14 Jan 2008 18:00:44 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801142300.m0EN0iqD009020@dev.open-bio.org> gordonp Mon Jan 14 18:00:44 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared In directory dev.open-bio.org:/tmp/cvs-serv8988/src/main/org/biomoby/shared Added Files: NamespaceContextImpl.java Log Message: Updates for javax.xml.xpath support rather than Aapache Xalan moby-live/Java/src/main/org/biomoby/shared NamespaceContextImpl.java,NONE,1.1 From gordonp at dev.open-bio.org Mon Jan 14 18:00:44 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 14 Jan 2008 18:00:44 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801142300.m0EN0i4b009040@dev.open-bio.org> gordonp Mon Jan 14 18:00:44 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services In directory dev.open-bio.org:/tmp/cvs-serv8988/src/main/ca/ucalgary/seahawk/services Modified Files: MobyClient.java Log Message: Updates for javax.xml.xpath support rather than Aapache Xalan moby-live/Java/src/main/ca/ucalgary/seahawk/services MobyClient.java,1.19,1.20 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyClient.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyClient.java 2008/01/07 22:07:45 1.19 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyClient.java 2008/01/14 23:00:44 1.20 @@ -1,6 +1,5 @@ package ca.ucalgary.seahawk.services; -import ca.ucalgary.seahawk.util.NamespaceContextImpl; import ca.ucalgary.seahawk.util.SeahawkOptions; import org.biomoby.client.*; @@ -8,14 +7,8 @@ import org.biomoby.shared.*; import org.biomoby.shared.data.*; -import org.apache.xpath.XPath; // compiled xpath statement -import org.apache.xpath.XPathContext; //runtime environment in which XPath is executed -import org.apache.xpath.objects.XObject; //format of results of XPath evaluation -import org.apache.xpath.objects.XNodeSet; //format of node based result lists of XPaths -import org.apache.xpath.objects.XNodeSetForDOM; //format of node based result lists of XPaths -import org.apache.xpath.objects.XString; -import org.apache.xml.utils.PrefixResolver; -import org.apache.xml.utils.PrefixResolverDefault; +import javax.xml.xpath.*; // compiled xpath statement +import javax.xml.namespace.NamespaceContext; import org.w3c.dom.*; @@ -66,9 +59,10 @@ public static final String IS_ALIVE_SERVICE_URL = "http://moby.ucalgary.ca/moby/ValidateService"; private NamespaceContextImpl nsContext; + private XPath commonXPath; private CentralImpl c; private Map isDeadMap; - private Map xpathMap; + private Map xpathMap; private Map urlRegexMap; private Map regexMap; private Map builderNameMap; @@ -105,12 +99,14 @@ else{ c = new CentralCachedCallsImpl(); } - xpathMap = new HashMap(); + xpathMap = new HashMap(); urlRegexMap = new HashMap(); regexMap = new HashMap(); builderNameMap = new HashMap(); patternNameMap = new HashMap(); nsContext = new NamespaceContextImpl(); + commonXPath = XPathFactory.newInstance().newXPath(); + commonXPath.setNamespaceContext(nsContext); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); @@ -462,7 +458,7 @@ throw new Exception("Attribute "+MEMBERS_RULE_ATTR+" refers to a rule (" + membersRuleName+") that does not exist"); } - MobyDataType dataType = MobyDataType.getDataType(dataTypeName); + MobyDataType dataType = MobyDataType.getDataType(dataTypeName, getRegistry()); if(!dataType.inheritsFrom(membersBuilder.getDataType())){ throw new Exception("Data type produced by inherited rule (" + membersRuleName + ") is not a subtype of the current rule (" + dataType.getName() + ")"); @@ -938,28 +934,24 @@ return new MobyDataObject[0]; } - XPathContext xpath_context = new XPathContext(); Node current_node = n; //for searching (dynamic mapping dependent on doc contents) - PrefixResolver doc_prefix_resolver = new PrefixResolverDefault(current_node); + //PrefixResolver doc_prefix_resolver = new PrefixResolverDefault(current_node); nsContextImpl.setCurrentNode? // Vector of moby objects we construct based on the xpath mappings found Vector objectVector = new Vector(); - Iterator xpath_keys = xpathMap.keySet().iterator(); - while(xpath_keys.hasNext()){ //map still has untraversed xpath entry to test - XPath xpath = (XPath) xpath_keys.next(); - + for(XPathExpression xpath: xpathMap.keySet()){ //map still has untraversed xpath entry to test Object result = null; try{ MobyComplexBuilder rule = (MobyComplexBuilder) xpathMap.get(xpath); - result = xpath.execute(xpath_context, current_node, doc_prefix_resolver); + result = xpath.evaluate(current_node, XPathConstants.NODESET); // More than one hit? - if(result instanceof XNodeSet){ + if(result != null){ try{ - NodeList node_list = ((XNodeSet) result).nodelist(); + NodeList node_list = (NodeList) result; //System.out.println("number of nodes in the nodelist: " + node_list.getLength()); if(node_list == null || node_list.getLength() == 0) continue; @@ -972,36 +964,31 @@ } } - }catch(javax.xml.transform.TransformerException te){ + }catch(XPathExpressionException xpe2){ System.err.println( "Warning: Cannot access resulting node list "+ - "due to exception in its retrieval: " + te); + "due to exception in its retrieval: " + xpe2); return new MobyDataObject[0]; } } - else if(result instanceof XString){ - if(((XString) result).str() == null || ((XString) result).str().equals("")){ - continue; // no useful data + else{ + result = xpath.evaluate(current_node, XPathConstants.STRING); + if(result != null){ + if(result.toString().equals("")){ + continue; // no useful data + } + //System.out.println("Got string result: " + result); + MobyDataObject mobyObj = rule.applyXPath(result, nsContext); + if(mobyObj != null){ + objectVector.add(mobyObj); + } } - //System.out.println("Got string result: " + result); - MobyDataObject mobyObj = rule.applyXPath(result, nsContext); - if(mobyObj != null){ - objectVector.add(mobyObj); + else{ //not a node sequence + System.out.println( "Warning: the XPath expression ("+ xpath + + ") did not return a node set, cannot select document elements."+ + " The returned object was of type "+ result.getClass().getName() ); + continue; } - } - else{ //not a node sequence - System.out.println( "Warning: the XPath expression ("+ xpath.getPatternString()+ - ") did not return a node set, cannot select document elements."+ - " The returned object was of type "+ result.getClass().getName() ); - continue; - } - - }catch(javax.xml.transform.TransformerException te){ - logger.warn( "Warning: Cannot select nodes due to exception "+ - "while executing XPath statement (" + xpath.getPatternString() + "):" +te.getMessage()); - System.err.println( "Warning: Cannot select nodes due to exception "+ - "while executing XPath statement (" + - xpath.getPatternString() + "):" + te); - return new MobyDataObject[0]; + } }catch(javax.xml.xpath.XPathExpressionException xpe){ System.err.println( "Warning: Cannot select nodes due to exception "+ "in XPath expression:" + xpe); @@ -1392,10 +1379,7 @@ Map membersMap, String articleName){ //mobyObj<--mobyNamespaces //System.out.println("xpath addMapping: " + xpath_exp); try{ - XPath xpath = new XPath(xpath_exp, - null, // SourceLocator locator, - nsContext, //need to use the default setting - XPath.SELECT); + XPathExpression xpath = commonXPath.compile(xpath_exp); // Base object if(mobyDataType == null || mobyDataType.length() == 0){ @@ -1445,19 +1429,6 @@ urlRegexMap.clear(); } - public void deleteXPathMapping(String xpath_exp){ - //System.out.println("the number of key-value mappings in this map before deleting: " + map.size()); - Set keys = xpathMap.keySet(); - Iterator it = keys.iterator(); - while(it.hasNext()) //map still has untraversed entry - { - XPath xpath = (XPath) it.next(); //Xpath obj. fr map //use an iterator - if(xpath.getPatternString().equals(xpath_exp)) - xpathMap.remove(xpath); - } - //System.out.println("the number of key-value mappings in this map: " + map.size()); - } - /** * Indicates whether at least one production rule exists for the data type or one of its children. */ From gordonp at dev.open-bio.org Mon Jan 14 18:00:45 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 14 Jan 2008 18:00:45 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801142300.m0EN0jwQ009062@dev.open-bio.org> gordonp Mon Jan 14 18:00:44 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test In directory dev.open-bio.org:/tmp/cvs-serv8988/src/main/ca/ucalgary/seahawk/gui/test Modified Files: MobyContentGUITestCase.java Log Message: Updates for javax.xml.xpath support rather than Aapache Xalan moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test MobyContentGUITestCase.java,1.2,1.3 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test/MobyContentGUITestCase.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test/MobyContentGUITestCase.java 2006/10/25 13:54:50 1.2 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test/MobyContentGUITestCase.java 2008/01/14 23:00:44 1.3 @@ -132,15 +132,17 @@ // work out, in which case we can check what services we can run org.w3c.dom.Node context_node = null; org.w3c.dom.Node doc_root = domDoc.getDocumentElement(); - org.apache.xpath.objects.XObject xobject = null; + Object xobject = null; try{ - xobject = org.apache.xpath.XPathAPI.eval(doc_root, testNode); - if(xobject == null || !(xobject instanceof org.apache.xpath.objects.XNodeSet)){ + xobject = javax.xml.xpath.XPathFactory.newInstance().newXPath().evaluate(testNode, + doc_root, + javax.xml.xpath.XPathConstants.NODESET); + if(xobject == null || !(xobject instanceof org.w3c.dom.NodeList)){ fail("The returned value from running context node specifier " + "(" + testNode + ") was not a XNodeSet as expected, cannot test MobyClient test" + " without a context node"); } - org.w3c.dom.NodeList result = ((org.apache.xpath.objects.XNodeSet) xobject).nodelist(); + org.w3c.dom.NodeList result = (org.w3c.dom.NodeList) xobject; System.out.println("There are " + result.getLength() + " instances of " + testNode + " in the document"); if(result.getLength() == 0){ @@ -151,20 +153,22 @@ // Take the first node context node of the right type that we find in the document context_node = result.item(0); System.out.println("Context node ID: " + ((org.w3c.dom.Element) context_node).getAttribute("element_id")); - }catch(javax.xml.transform.TransformerException te){ + }catch(javax.xml.xpath.XPathExpressionException xpe){ fail("The context node specifier XPath (" + testNode + - ") could not be evaluated, cannot test MobyClient without a context: " + te); + ") could not be evaluated, cannot test MobyClient without a context: " + xpe); } //tmp try{ - xobject = org.apache.xpath.XPathAPI.eval(context_node, testXPath); - if(xobject == null || !(xobject instanceof org.apache.xpath.objects.XNodeSet)){ + xobject = javax.xml.xpath.XPathFactory.newInstance().newXPath().evaluate(testXPath, + context_node, + javax.xml.xpath.XPathConstants.NODESET); + if(xobject == null || !(xobject instanceof org.w3c.dom.NodeList)){ fail("The returned value from running context node specifier " + "(" + testNode + ") was not a XNodeSet as expected, cannot test MobyClient test" + " without a context node"); } - org.w3c.dom.NodeList result = ((org.apache.xpath.objects.XNodeSet) xobject).nodelist(); + org.w3c.dom.NodeList result = (org.w3c.dom.NodeList) xobject; System.out.println("There are " + result.getLength() + " instances of " + testXPath + " in the context node"); if(result.getLength() == 0){ @@ -172,9 +176,9 @@ ") did not return any nodes under " + context_node + ". Cannot test MobyClient without a MOBY data node"); } - }catch(javax.xml.transform.TransformerException te){ + }catch(javax.xml.xpath.XPathExpressionException xpe){ fail("The MOBY node specifier XPath (" + testXPath + - ") could not be evaluated, cannot test MobyClient without a context: " + te); + ") could not be evaluated, cannot test MobyClient without a context: " + xpe); } //end tmp From gordonp at dev.open-bio.org Mon Jan 14 18:00:45 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 14 Jan 2008 18:00:45 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801142300.m0EN0jKf009084@dev.open-bio.org> gordonp Mon Jan 14 18:00:45 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui In directory dev.open-bio.org:/tmp/cvs-serv8988/src/main/ca/ucalgary/seahawk/gui Modified Files: MobyContentPane.java Log Message: Updates for javax.xml.xpath support rather than Aapache Xalan moby-live/Java/src/main/ca/ucalgary/seahawk/gui MobyContentPane.java,1.16,1.17 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentPane.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentPane.java 2008/01/07 22:19:14 1.16 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentPane.java 2008/01/14 23:00:45 1.17 @@ -12,12 +12,12 @@ import org.biomoby.shared.parser.ServiceException; import org.w3c.dom.*; +import org.xml.sax.InputSource; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.stream.*; -import org.apache.xpath.*; -import org.apache.xpath.objects.*; +import javax.xml.xpath.*; import javax.swing.*; import javax.swing.event.*; @@ -896,29 +896,26 @@ // Build and run the XPath statement Element mobyObject = null; NodeList idSearchResult = null; - XObject xobject = null; + Object xobject = null; try{ - xobject = XPathAPI.eval(domDoc, childXPath); + xobject = XPathFactory.newInstance().newXPath().evaluate(childXPath, + new InputSource(targetURL.openStream()), + XPathConstants.NODESET); // Check the results - if(xobject instanceof XNodeSet){ - idSearchResult = ((XNodeSet) xobject).nodelist(); - } - else if(xobject != null){ - logger.warn("Output of XPath was not a XNodeSet as expected, found " + - xobject.getClass().getName()); - return null; + if(xobject != null){ + idSearchResult = (NodeList) xobject; } else{ logger.warn("Could not find Moby object in document " + currentURL + - ", referred to by the reference ID in Moby link " + targetURL + - " (document changed?)"); + ", referred to by the reference ID in Moby link " + targetURL + + " (document changed?)"); return null; } } - catch(TransformerException te){// Syntax error + catch(Exception e){// Syntax error logger.error("Error: Could not search Moby data instance for XPath " + - childXPath + "):" + te); + childXPath + "):" + e); return null; } From gordonp at dev.open-bio.org Tue Jan 15 15:56:39 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 15 Jan 2008 15:56:39 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801152056.m0FKuckh015110@dev.open-bio.org> gordonp Tue Jan 15 15:56:38 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/service In directory dev.open-bio.org:/tmp/cvs-serv15074/src/main/org/biomoby/service Modified Files: MobyServlet.java Log Message: Removed unncessary properties, blank job on ping, and fixed typos moby-live/Java/src/main/org/biomoby/service MobyServlet.java,1.11,1.12 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/service/MobyServlet.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/service/MobyServlet.java 2008/01/07 22:16:35 1.11 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/service/MobyServlet.java 2008/01/15 20:56:38 1.12 @@ -555,14 +555,6 @@ return; } - // It's possible we got here due to an early error, in which - // case there will be no MobyData blocks in the response. Since - // this is technically illegal according to MOBY, throw a blank one - // in there are none at all - if(mobyResults.isEmpty()){ - mobyResults.put(new MobyDataJob()); - } - response.setContentType("text/xml"); try{ @@ -599,7 +591,6 @@ */ protected void addException(ServiceException se){ MobyContentInstance currentContent = getResponseContentInstance(); - (new Exception("createing exception " +se)).printStackTrace(); if(currentContent != null){ currentContent.addException(se); if(isInitialized){ @@ -612,10 +603,10 @@ } else{ if(isInitialized){ - log("Caught exception, but had no results contents to append it to", se); + log("Caught exception, but had no results contents to which it could be appended", se); } else{ - System.err.println("Caught exception, but had no results contents to append it to"); + System.err.println("Caught exception, but had no results contents to which it could be appended"); } } } @@ -670,10 +661,6 @@ */ public void init(){ try{ - if(System.getProperty("javax.xml.parsers.DocumentBuilderFactory") == null){ - System.setProperty("javax.xml.parsers.DocumentBuilderFactory", - "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"); - } DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); docBuilder = dbf.newDocumentBuilder(); @@ -688,12 +675,6 @@ "org.apache.axis.soap.MessageFactoryImpl"); } soapMessageFactory = MessageFactory.newInstance(); // Should find Axis by default - //log("SOAP Message Factory (when init is called) is " + soapMessageFactory); - - if(System.getProperty("javax.xml.soap.SOAPFactory") == null){ - System.setProperty("javax.xml.soap.SOAPFactory", - "org.apache.axis.soap.SOAPFactoryImpl"); - } SOAPFactory soapFactory = SOAPFactory.newInstance(); bodyContentsName = soapFactory.createName(getServiceName()+"Return", MobyPrefixResolver.MOBY_TRANSPORT_PREFIX, From gordonp at dev.open-bio.org Tue Jan 15 17:06:40 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 15 Jan 2008 17:06:40 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801152206.m0FM6eW7015466@dev.open-bio.org> gordonp Tue Jan 15 17:06:40 EST 2008 Update of /home/repository/moby/jars-archive/current In directory dev.open-bio.org:/tmp/cvs-serv15430 Modified Files: MobyServlet.war Log Message: Corrected ping response (was creating blank mobyData) jars-archive/current MobyServlet.war,1.11,1.12 =================================================================== RCS file: /home/repository/moby/jars-archive/current/MobyServlet.war,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 Binary files /home/repository/moby/jars-archive/current/MobyServlet.war 2007/12/17 17:45:13 1.11 and /home/repository/moby/jars-archive/current/MobyServlet.war 2008/01/15 22:06:39 1.12 differ rcsdiff: /home/repository/moby/jars-archive/current/MobyServlet.war: diff failed From gordonp at dev.open-bio.org Tue Jan 15 17:08:41 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 15 Jan 2008 17:08:41 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801152208.m0FM8fXF015542@dev.open-bio.org> gordonp Tue Jan 15 17:08:41 EST 2008 Update of /home/repository/moby/moby-live/Java/src/Clients In directory dev.open-bio.org:/tmp/cvs-serv15506/src/Clients Modified Files: MobyPinger.java Log Message: Update to allow test pinging of non-registered services moby-live/Java/src/Clients MobyPinger.java,1.2,1.3 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/Clients/MobyPinger.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Java/src/Clients/MobyPinger.java 2008/01/09 20:25:36 1.2 +++ /home/repository/moby/moby-live/Java/src/Clients/MobyPinger.java 2008/01/15 22:08:41 1.3 @@ -1,8 +1,10 @@ import org.biomoby.client.CentralImpl; import org.biomoby.client.MobyRequest; -import org.biomoby.shared.Central; -import org.biomoby.shared.MobyService; +import org.biomoby.shared.*; import org.biomoby.shared.data.*; +import org.biomoby.shared.parser.ServiceException; + +import java.net.*; import java.util.Iterator; /** @@ -14,69 +16,65 @@ public class MobyPinger{ public static void main(String[] args) { + long elapsedTimeMillis = 0; try{ if(args.length != 2){ - System.err.println("Usage: java MobyPinger serviceName serviceProvider"); + System.err.println("Usage: java MobyPinger serviceName (serviceProviderURI|serviceEndpointURL)"); System.exit(1); } Central worker = new CentralImpl (); - worker.setDebug(true); - // Make template for finding services - MobyService templateService = new MobyService("dummy"); - templateService.setName(args[0]); - templateService.setAuthority(args[1]); - - MobyService[] validServices = worker.findService(templateService); - - // Make sure we have a service to run for this input - if(validServices == null || validServices.length == 0){ - System.err.println("Could not find a valid service with name "+ - args[0] + " and provider " + args[1]); - System.exit(1); + MobyService service = null; + try{ + String serviceURLString = (new URL(args[1])).toString(); + service = new MobyService(args[0]); + service.setURL(serviceURLString); + } + catch(MalformedURLException murle){ } - else{ - System.out.println("Found a services"); + if(service == null){ + // Make template for finding services from the registry instead + MobyService templateService = new MobyService(args[0]); + templateService.setAuthority(args[1]); + + MobyService[] validServices = worker.findService(templateService); + + // Make sure we have a service to run for this input + if(validServices == null || validServices.length == 0){ + System.err.println("Could not find a valid service with name "+ + args[0] + " and provider " + args[1]); + System.exit(1); + } + service = validServices[0]; } MobyRequest mr = new MobyRequest(worker); // Set input and run the service - mr.setDebugMode(true); - mr.setService(validServices[0]); + mr.setService(service); mr.setInput(new MobyContentInstance()); // blank request + long startTimeMillis = System.currentTimeMillis(); MobyContentInstance responses = mr.invokeService(); + elapsedTimeMillis = System.currentTimeMillis()-startTimeMillis; // Process responses // The service invocation may have had many requests, there is a response // object for each request - Iterator i = responses.keySet().iterator(); - while(i.hasNext()){ - MobyDataJob responseObjects = responses.get(i.next()); - - // The response for a request may have many objects - Iterator i2 = responseObjects.values().iterator(); - while(i2.hasNext()){ - MobyDataInstance responseObject = i2.next(); - // The response objects may either be simple data, or data sets - if(responseObject instanceof MobyDataObject){ - System.out.println("Plain simple instance is "+((MobyDataInstance)responseObject).toXML()); - } - else if(responseObject instanceof MobyDataObjectSet){ - System.out.println("Found a collection:"); - MobyDataObject[] simples = ((MobyDataObjectSet) responseObject).getElementInstances(); - for(int j = 0; j < simples.length; j++){ - System.out.println(" Member instance is \n"+simples[j].toXML()); - } - } - else{ - System.out.println("Found funky data!" + responseObject); - } - } + for(ServiceException ex: responses.getExceptions()){ + if(ex.getSeverity() == ServiceException.ERROR){ + System.err.println("Exception in response from service: " + ex); + System.exit(1); + } + } + if(responses.keySet().size() != 0){ + System.err.println("Response from service was not blank as expected:"); + MobyDataUtils.toXMLDocument(System.err, responses); + System.exit(1); } }catch(Exception e){ - System.out.println("Problem: "+e); - e.printStackTrace(); + System.out.println("Problem while running ping: "+e); + System.exit(1); } + System.err.println("Ping successful, elapsed time for call was " + elapsedTimeMillis + "ms"); } } From kawas at dev.open-bio.org Wed Jan 16 16:46:21 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Wed, 16 Jan 2008 16:46:21 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801162146.m0GLkLsL018325@dev.open-bio.org> kawas Wed Jan 16 16:46:21 EST 2008 Update of /home/repository/moby/moby-live/Docs/MOBY-S_API In directory dev.open-bio.org:/tmp/cvs-serv18270/Docs/MOBY-S_API Modified Files: RegistryScripts.html Log Message: added a config parameter so that users dont have to modify the script everytime a new update occurs moby-live/Docs/MOBY-S_API RegistryScripts.html,1.5,1.6 =================================================================== RCS file: /home/repository/moby/moby-live/Docs/MOBY-S_API/RegistryScripts.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Docs/MOBY-S_API/RegistryScripts.html 2008/01/10 15:25:16 1.5 +++ /home/repository/moby/moby-live/Docs/MOBY-S_API/RegistryScripts.html 2008/01/16 21:46:21 1.6 @@ -307,6 +307,13 @@

    This can be any directory, including a temporary one. Make sure that the scripts invoked through apache and from the command line can read/write to it.
    Note: the service tester does not currently work on windows!

    + + rdf_cache +

    The full readable/writable path that the RESOURCES script can place cached RDF related files.

    +

    This can be any directory, including a temporary one. Make sure that the scripts invoked through apache and from the command line can read/write to it.
    +

    + +

     

  • To the [mobyobject] section of this file, please ensure that the following parameters are set:
  • From kawas at dev.open-bio.org Wed Jan 16 16:46:21 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Wed, 16 Jan 2008 16:46:21 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801162146.m0GLkLXC018305@dev.open-bio.org> kawas Wed Jan 16 16:46:21 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv18270/Perl/scripts Modified Files: RESOURCES Log Message: added a config parameter so that users dont have to modify the script everytime a new update occurs moby-live/Perl/scripts RESOURCES,1.4,1.5 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/RESOURCES,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- /home/repository/moby/moby-live/Perl/scripts/RESOURCES 2007/12/21 15:41:19 1.4 +++ /home/repository/moby/moby-live/Perl/scripts/RESOURCES 2008/01/16 21:46:21 1.5 @@ -33,9 +33,10 @@ use MOBY::RDF::Ontologies::Cache::ObjectCache; use MOBY::RDF::Ontologies::Cache::NamespaceCache; use MOBY::RDF::Ontologies::Cache::ServiceTypeCache; +use MOBY::Config; # your cache dir -my $dir = "/tmp/"; +my $dir = MOBY::Config->new->{mobycentral}->{rdf_cache} || "/tmp/"; # should we use caching? my $useCache = 1; From gordonp at dev.open-bio.org Wed Jan 16 17:34:03 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Wed, 16 Jan 2008 17:34:03 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801162234.m0GMY3Kx018436@dev.open-bio.org> gordonp Wed Jan 16 17:34:03 EST 2008 Update of /home/repository/moby/jars-archive/current In directory dev.open-bio.org:/tmp/cvs-serv18400 Modified Files: activation.jar Added Files: FastInfoset.jar http.jar jaxb-api.jar jaxb-impl.jar jaxb-xjc.jar jaxws-api.jar jaxws-rt.jar jaxws-tools.jar jsr173_api.jar jsr181-api.jar jsr250-api.jar resolver.jar saaj-api.jar saaj-impl.jar sjsxp.jar stax-ex.jar streambuffer.jar Log Message: JARs update for use of JAX-WS by Java 5 (Java6u4+ has it as part of the JRE) jars-archive/current FastInfoset.jar,NONE,1.1 http.jar,NONE,1.1 jaxb-api.jar,NONE,1.1 jaxb-impl.jar,NONE,1.1 jaxb-xjc.jar,NONE,1.1 jaxws-api.jar,NONE,1.1 jaxws-rt.jar,NONE,1.1 jaxws-tools.jar,NONE,1.1 jsr173_api.jar,NONE,1.1 jsr181-api.jar,NONE,1.1 jsr250-api.jar,NONE,1.1 resolver.jar,NONE,1.1 saaj-api.jar,NONE,1.1 saaj-impl.jar,NONE,1.1 sjsxp.jar,NONE,1.1 stax-ex.jar,NONE,1.1 streambuffer.jar,NONE,1.1 activation.jar,1.2,1.3 =================================================================== RCS file: /home/repository/moby/jars-archive/current/activation.jar,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 Binary files /home/repository/moby/jars-archive/current/activation.jar 2005/09/04 13:15:54 1.2 and /home/repository/moby/jars-archive/current/activation.jar 2008/01/16 22:34:03 1.3 differ rcsdiff: /home/repository/moby/jars-archive/current/activation.jar: diff failed From kawas at dev.open-bio.org Thu Jan 17 11:17:55 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Thu, 17 Jan 2008 11:17:55 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801171617.m0HGHtix021133@dev.open-bio.org> kawas Thu Jan 17 11:17:55 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv21098/Perl/scripts Modified Files: OntologyServer.cgi Log Message: changed the header to /usr/bin/perl from just perl to make it more consistent with the other scripts in this folder. moby-live/Perl/scripts OntologyServer.cgi,1.6,1.7 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/OntologyServer.cgi,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- /home/repository/moby/moby-live/Perl/scripts/OntologyServer.cgi 2005/11/22 21:33:23 1.6 +++ /home/repository/moby/moby-live/Perl/scripts/OntologyServer.cgi 2008/01/17 16:17:55 1.7 @@ -1,4 +1,4 @@ -#!perl -w +#!/usr/bin/perl -w use CGI qw/:standard/; use MOBY::OntologyServer; From gordonp at dev.open-bio.org Thu Jan 17 12:06:43 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Thu, 17 Jan 2008 12:06:43 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801171706.m0HH6hep022563@dev.open-bio.org> gordonp Thu Jan 17 12:06:43 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client In directory dev.open-bio.org:/tmp/cvs-serv22527/src/main/org/biomoby/client Modified Files: AsyncClient.java Log Message: Gave proper XML namespace definitions for a couple of WSRP tags (JAX-WS loaded xerces created errors) moby-live/Java/src/main/org/biomoby/client AsyncClient.java,1.2,1.3 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/AsyncClient.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/AsyncClient.java 2007/05/31 13:42:51 1.2 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/AsyncClient.java 2008/01/17 17:06:43 1.3 @@ -178,7 +178,9 @@ MobyPrefixResolver.WSRP_NAMESPACE)); // Add content for(String queryId: queryIds){ - bodyElement.addChildElement(MobyPrefixResolver.WSRP_PREFIX+":"+WSRP_PROPERTY_TAG_NAME) + bodyElement.addChildElement(envelope.createName(WSRP_PROPERTY_TAG_NAME, + MobyPrefixResolver.WSRP_PREFIX, + MobyPrefixResolver.WSRP_NAMESPACE)) .addTextNode("status_" + queryId); } @@ -378,7 +380,9 @@ MobyPrefixResolver.WSRP_NAMESPACE)); // Add content for(String queryId: queryIds){ - bodyElement.addChildElement(MobyPrefixResolver.WSRP_PREFIX+":"+WSRP_PROPERTY_TAG_NAME) + bodyElement.addChildElement(envelope.createName(WSRP_PROPERTY_TAG_NAME, + MobyPrefixResolver.WSRP_PREFIX, + MobyPrefixResolver.WSRP_NAMESPACE)) .addTextNode(MOBY_RESULT_PROPERTY_PREFIX + queryId); } From gordonp at dev.open-bio.org Thu Jan 17 12:08:12 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Thu, 17 Jan 2008 12:08:12 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801171708.m0HH8CtD022689@dev.open-bio.org> gordonp Thu Jan 17 12:08:12 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/util In directory dev.open-bio.org:/tmp/cvs-serv22657/src/main/org/biomoby/client/util Added Files: Base64Coder.java Log Message: Added utility class for base64 encode/decode needed for binary data representation in Moby moby-live/Java/src/main/org/biomoby/client/util Base64Coder.java,NONE,1.1 From gordonp at dev.open-bio.org Thu Jan 17 12:12:00 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Thu, 17 Jan 2008 12:12:00 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801171712.m0HHC0Oq022835@dev.open-bio.org> gordonp Thu Jan 17 12:11:59 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data In directory dev.open-bio.org:/tmp/cvs-serv22799/src/main/org/biomoby/shared/data Modified Files: MobyDataBytes.java Log Message: Changed Base64 coding from Axis util to org.biomoby.client.util.Base64Coder moby-live/Java/src/main/org/biomoby/shared/data MobyDataBytes.java,1.8,1.9 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataBytes.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataBytes.java 2007/11/30 17:42:15 1.8 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataBytes.java 2008/01/17 17:11:59 1.9 @@ -154,7 +154,7 @@ if(bytes == null){ throw new MobyException("The given byte data to Base64 encode was null"); } - String contents = org.apache.axis.encoding.Base64.encode(bytes); + String contents = new String(org.biomoby.client.util.Base64Coder.encode(bytes)); if(contents == null){ throw new MobyException("The byte contents could not be encoded in Base64 format"); } @@ -211,6 +211,6 @@ * The same as getObject, but doesn't require a cast of the result */ public byte[] getBytes(){ - return org.apache.axis.encoding.Base64.decode(((MobyDataString) get(ENCODED_MEMBER_NAME)).getValue()); + return org.biomoby.client.util.Base64Coder.decode(((MobyDataString) get(ENCODED_MEMBER_NAME)).getValue()); } } From gordonp at dev.open-bio.org Thu Jan 17 12:12:47 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Thu, 17 Jan 2008 12:12:47 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801171712.m0HHCl6q022901@dev.open-bio.org> gordonp Thu Jan 17 12:12:47 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services In directory dev.open-bio.org:/tmp/cvs-serv22865/src/main/ca/ucalgary/seahawk/services Modified Files: MobyComplexBuilder.java Log Message: Changed Base64 coding from Axis util to org.biomoby.client.util.Base64Coder moby-live/Java/src/main/ca/ucalgary/seahawk/services MobyComplexBuilder.java,1.14,1.15 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyComplexBuilder.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyComplexBuilder.java 2007/12/17 18:39:30 1.14 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyComplexBuilder.java 2008/01/17 17:12:47 1.15 @@ -1,5 +1,6 @@ package ca.ucalgary.seahawk.services; +import org.biomoby.client.util.Base64Coder; import org.biomoby.shared.*; import org.biomoby.shared.data.MobyDataBytes; import org.biomoby.shared.data.MobyDataComposite; @@ -471,7 +472,7 @@ if(isBinary){ //(new Exception("Base 64 encoding")).printStackTrace(); - result = org.apache.axis.encoding.Base64.encode(data == null ? result.getBytes() : resultBytes); + result = new String(Base64Coder.encode(data == null ? result.getBytes() : resultBytes)); } else{ //System.err.println("NO BASE64 (" + MobyClient.ENCODING_ATTR_BASE64_VAL + From kawas at dev.open-bio.org Tue Jan 22 10:12:26 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Tue, 22 Jan 2008 10:12:26 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801221512.m0MFCQen007259@dev.open-bio.org> kawas Tue Jan 22 10:12:26 EST 2008 Update of /home/repository/moby/moby-live/Docs/Schemas/RegistryAPI/registerServiceType In directory dev.open-bio.org:/tmp/cvs-serv7224/Docs/Schemas/RegistryAPI/registerServiceType Modified Files: registerServiceType.xsd Log Message: fixed the node labelled objectType. SHould have read serviceType. moby-live/Docs/Schemas/RegistryAPI/registerServiceType registerServiceType.xsd,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Docs/Schemas/RegistryAPI/registerServiceType/registerServiceType.xsd,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Docs/Schemas/RegistryAPI/registerServiceType/registerServiceType.xsd 2007/08/27 19:40:14 1.1 +++ /home/repository/moby/moby-live/Docs/Schemas/RegistryAPI/registerServiceType/registerServiceType.xsd 2008/01/22 15:12:26 1.2 @@ -1,81 +1,77 @@ - - - - - - Used for registering a new service class into the - service ontology - - - - - - - - - - - a unique name for your new service type - - - - - - - a description for your service type - - - - - - - - - - - - - - - - - - - - - - - - - The provider URI - - - - - - - - - - - Your email address - - - - - - - - - + + + + + + Used for registering a new service class into the + service ontology + + + + + + + + + + + a unique name for your new service type + + + + + + + a description for your service type + + + + + + + + + + + + + + + + + + + + + + The provider URI + + + + + + + + + + + Your email address + + + + + + + + + \ No newline at end of file From gordonp at dev.open-bio.org Tue Jan 22 17:22:12 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 22 Jan 2008 17:22:12 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801222222.m0MMMCPn008101@dev.open-bio.org> gordonp Tue Jan 22 17:22:12 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared In directory dev.open-bio.org:/tmp/cvs-serv8061/src/main/org/biomoby/shared Modified Files: MobyPrefixResolver.java NamespaceContextImpl.java Log Message: Added XHTML support moby-live/Java/src/main/org/biomoby/shared MobyPrefixResolver.java,1.9,1.10 NamespaceContextImpl.java,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrefixResolver.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrefixResolver.java 2007/03/30 19:48:12 1.9 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrefixResolver.java 2008/01/22 22:22:12 1.10 @@ -40,7 +40,8 @@ public static final String WS_ADDRESSING_NAMESPACE = "http://schemas.xmlsoap.org/ws/2004/03/addressing"; public static final String WSRP_PREFIX = "wsrp"; public static final String WSRP_NAMESPACE = "http://docs.oasis-open.org/wsrf/rp-2"; - + public static final String XHTML_PREFIX = "xhtml"; + public static final String XHTML_NAMESPACE = "http://www.w3.org/1999/xhtml"; /** * We don't really implement this as it can be extremely complicated. * =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/NamespaceContextImpl.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/NamespaceContextImpl.java 2008/01/14 23:00:44 1.1 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/NamespaceContextImpl.java 2008/01/22 22:22:12 1.2 @@ -28,8 +28,9 @@ prefixes.put(MobyPrefixResolver.XSI_NAMESPACE2001, MobyPrefixResolver.XSI2001_PREFIX); prefixes.put(MobyPrefixResolver.SOAP_ENC_NAMESPACE, MobyPrefixResolver.SOAP_ENC_PREFIX); prefixes.put(MobyPrefixResolver.WS_ADDRESSING_NAMESPACE, MobyPrefixResolver.WS_ADDRESSING_PREFIX); - prefixes.put(MobyPrefixResolver.WSRP_NAMESPACE, MobyPrefixResolver.WSRP_PREFIX); - + prefixes.put(MobyPrefixResolver.WSRP_NAMESPACE, MobyPrefixResolver.WSRP_PREFIX); + prefixes.put(MobyPrefixResolver.XHTML_NAMESPACE, MobyPrefixResolver.XHTML_PREFIX); + // Reverse map prefix -> nsURI nsURIs.put(MobyPrefixResolver.XSI_PREFIX, MobyPrefixResolver.XSI_NAMESPACE2001); for(Map.Entry entry: prefixes.entrySet()){ From gordonp at dev.open-bio.org Wed Jan 23 13:59:19 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Wed, 23 Jan 2008 13:59:19 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801231859.m0NIxJjv011860@dev.open-bio.org> gordonp Wed Jan 23 13:59:19 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client In directory dev.open-bio.org:/tmp/cvs-serv11824/src/main/org/biomoby/client Modified Files: MobyRequest.java Log Message: Fixed sync call to async service moby-live/Java/src/main/org/biomoby/client MobyRequest.java,1.35,1.36 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/08 15:26:55 1.35 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/23 18:59:19 1.36 @@ -272,7 +272,7 @@ * @throws SOAPException i.e. there was a problem with the underlying transaction/transport layer */ public MobyContentInstance invokeService() throws Exception, MobyException, SOAPException, NoSuccessException{ - return invokeService(inputData, (StringBuffer) null); + return mobyService.isAsynchronous() ? invokeService(inputData, new StringBuffer()) : invokeService(inputData, (StringBuffer) null); } // Used internally for asynchronous thread calls that all need the XML data From pieter at dev.open-bio.org Thu Jan 24 13:33:32 2008 From: pieter at dev.open-bio.org (Pieter Neerincs) Date: Thu, 24 Jan 2008 13:33:32 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801241833.m0OIXVGV016722@dev.open-bio.org> pieter Thu Jan 24 13:33:31 EST 2008 Update of /home/repository/moby/moby-live/Docs/MOBY-S_API In directory dev.open-bio.org:/tmp/cvs-serv16683 Modified Files: DataClassOntology.html ObjectStructure.html Log Message: Synchronised docs with BioMoby 1.0 manuscript: Changed API description of HAS and HASA relationship to allow zero instances of an object. moby-live/Docs/MOBY-S_API DataClassOntology.html,1.10,1.11 ObjectStructure.html,1.10,1.11 =================================================================== RCS file: /home/repository/moby/moby-live/Docs/MOBY-S_API/DataClassOntology.html,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- /home/repository/moby/moby-live/Docs/MOBY-S_API/DataClassOntology.html 2007/07/31 13:48:30 1.10 +++ /home/repository/moby/moby-live/Docs/MOBY-S_API/DataClassOntology.html 2008/01/24 18:33:31 1.11 @@ -63,7 +63,7 @@ In the BioMOBY system, all datatypes (Classes) are defined in an ontology, where each node represents a named Class, and each arc represents one of two -relationship types - ISA, or HASA - indicating inheritence or +relationship types - ISA, or HASA / HAS - indicating inheritence or container-relationship respectively. The root of the Class ontology is "Object" as defined above; all data Classes inherit from the "Object" Class, and (with the exception of the These primitive types are special as they are the only cases where the content of an element is meant to be interpreted by the client or service. -New classes MUST NOT inherit from the Primitive Classes. To obtain +New classes MUST NOT inherit from the Primitive Classes. To obtain content in another class, you must be a container of a primitive class. The two relationship types - HASA and HAS - are used to indicate container relationships, and the contained object is "labelled" using the articleName attribute to indicate its role in that object, or more precisely, its semantic relationship with the -parent object. HASA indicates that a single instance of the object is -contained, while HAS indicates that multiple instances of the object +parent object. HASA indicates that a maximally a single instance of the object is +contained, while HAS indicates that zero or more instances of the object are contained. The following RDF triple describes =================================================================== RCS file: /home/repository/moby/moby-live/Docs/MOBY-S_API/ObjectStructure.html,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- /home/repository/moby/moby-live/Docs/MOBY-S_API/ObjectStructure.html 2007/02/22 16:22:24 1.10 +++ /home/repository/moby/moby-live/Docs/MOBY-S_API/ObjectStructure.html 2008/01/24 18:33:31 1.11 @@ -61,26 +61,27 @@ BioMOBY Object Structure
    -It is our intention that MOBY Objects should be as lightweight as -possible. This not only reduces bandwith, speeds up service response -time, and reduces server load, it also reduces conflict that arises -from disagreement over the structure of more complex objects. More importantly, however, it results in - the creation of Services that have near-transparent semantics. Because of the limited - Service Ontology, the functionality of BioMoby services must be clearly - described in a single word. Generally speaking, if an Object contains - "lots of information", the Service that generates it will be quite complex. - Complex services cannot be described in the BioMoby system. As such, BioMoby - services attempt to be highly modular - complex data is derived by accessing - a broader arrange of lightweight services and integrating this data client-side, - in contrast to accessing a "one service provides all" Service whose output consists of many - data-types. +It is our intention that MOBY Objects should be as lightweight as +possible. This not only reduces bandwith, speeds up service response +time, and reduces server load, it also reduces conflict that arises +from disagreement over the structure of more complex objects. +More importantly, however, it results in the creation of Services that +have near-transparent semantics. Because of the limited +Service Ontology, the functionality of BioMoby services must be clearly +described in a single word. Generally speaking, if an Object contains +"lots of information", the Service that generates it will be quite complex. +Complex services cannot be described in the BioMoby system. As such, BioMoby +services attempt to be highly modular - complex data is derived by accessing +a broader arrange of lightweight services and integrating this data client-side, +in contrast to accessing a "one service provides all" Service whose output +consists of many data-types.

    MOBY Object structure is inferred by looking up the Object Class in the Class Ontology. Each node in the ontology is a different Class Name, and each arc is a relationship of the type ISA (inheritance), -HASA (container of exactly one of the given class), or HAS (container -of one or more of the given class). ISA relationships are guaranteed +HASA (container of maximal one object of the given class), or HAS (container +of zero or more of the given class). ISA relationships are guaranteed to be acyclic.

    @@ -89,7 +90,7 @@ All MOBY Objects inherit from the root "Object" Class, and since complex objects can only be derived through inheritence from (ISA), or -combination of (HASA) existing objects, every sub-object in a complex +combination of (HASA/HAS) existing objects, every sub-object in a complex object is, itself, a valid MOBY Object which inherits directly or indirectly from the "Object" Class.

    From gordonp at dev.open-bio.org Sat Jan 26 11:42:20 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Sat, 26 Jan 2008 11:42:20 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801261642.m0QGgJlw021042@dev.open-bio.org> gordonp Sat Jan 26 11:42:19 EST 2008 Update of /home/repository/moby/jars-archive/current In directory dev.open-bio.org:/tmp/cvs-serv21010 Added Files: commons-io-1.3.1.jar jodconverter-2.2.1.jar juh-2.3.0.jar jurt-2.3.0.jar ridl-2.3.0.jar slf4j-api-1.4.3.jar slf4j-jdk14-1.4.3.jar unoil-2.3.0.jar Log Message: Runtime jars for JODConverter jars-archive/current commons-io-1.3.1.jar,NONE,1.1 jodconverter-2.2.1.jar,NONE,1.1 juh-2.3.0.jar,NONE,1.1 jurt-2.3.0.jar,NONE,1.1 ridl-2.3.0.jar,NONE,1.1 slf4j-api-1.4.3.jar,NONE,1.1 slf4j-jdk14-1.4.3.jar,NONE,1.1 unoil-2.3.0.jar,NONE,1.1 From gordonp at dev.open-bio.org Sat Jan 26 11:43:00 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Sat, 26 Jan 2008 11:43:00 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801261643.m0QGh0sM021105@dev.open-bio.org> gordonp Sat Jan 26 11:43:00 EST 2008 Update of /home/repository/moby/jars-archive/current In directory dev.open-bio.org:/tmp/cvs-serv21072 Removed Files: jodconverter-2.2.0.jar Log Message: Replaced with 2.2.1 jars-archive/current jodconverter-2.2.0.jar,1.1,NONE rcsdiff: /home/repository/moby/jars-archive/current/RCS/jodconverter-2.2.0.jar,v: No such file or directory From gordonp at dev.open-bio.org Sat Jan 26 12:53:55 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Sat, 26 Jan 2008 12:53:55 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801261753.m0QHrtju021262@dev.open-bio.org> gordonp Sat Jan 26 12:53:55 EST 2008 Update of /home/repository/moby/moby-live/Java/xmls In directory dev.open-bio.org:/tmp/cvs-serv21226/xmls Modified Files: libraries.xml Log Message: Added JAX-WS and full JODConverter dependencies moby-live/Java/xmls libraries.xml,1.17,1.18 =================================================================== RCS file: /home/repository/moby/moby-live/Java/xmls/libraries.xml,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- /home/repository/moby/moby-live/Java/xmls/libraries.xml 2007/12/06 20:23:49 1.17 +++ /home/repository/moby/moby-live/Java/xmls/libraries.xml 2008/01/26 17:53:55 1.18 @@ -21,7 +21,7 @@ - + @@ -35,7 +35,6 @@ - @@ -58,7 +57,36 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -76,8 +104,6 @@ - - @@ -114,6 +140,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -137,6 +188,7 @@ + @@ -166,8 +218,6 @@ - - @@ -196,4 +246,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + From gordonp at dev.open-bio.org Sat Jan 26 12:54:59 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Sat, 26 Jan 2008 12:54:59 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801261754.m0QHsxDM021306@dev.open-bio.org> gordonp Sat Jan 26 12:54:59 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client In directory dev.open-bio.org:/tmp/cvs-serv21270/src/main/org/biomoby/client Modified Files: MobyRequest.java Log Message: Fixed async services' synchronous invokeService() call support, really this time moby-live/Java/src/main/org/biomoby/client MobyRequest.java,1.36,1.37 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/23 18:59:19 1.36 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/26 17:54:59 1.37 @@ -334,7 +334,7 @@ } } - if(newDataAvailable.size() > 0 && handler != null){ + if(newDataAvailable.size() > 0){ // Parse and merge the new data into the existing contents InputStream resultStream = AsyncClient.getResultStream(epr, newDataAvailable); Element mobyDOM = asyncSoapTextToMobyDOM(resultStream); @@ -345,16 +345,18 @@ } // Inform the handler that some data has been added to the response (for incremental display?) - MobyRequestEvent mre = new MobyRequestEvent(finalContents, this, mservice, null, requestId); - StringWriter xmlWriter = new StringWriter(); - MobyDataUtils.toXMLDocument(xmlWriter, finalContents); - - mre.setContentsXML(xmlWriter.toString()); - if(!queryIDs.isEmpty()){ - // Send an update event only if we aren't finished yet. - // If we are finished, the client is going to get this event as the - // invocation thread finishes up (no need to double up). - handler.processEvent(mre); + if(handler != null){ + MobyRequestEvent mre = new MobyRequestEvent(finalContents, this, mservice, null, requestId); + StringWriter xmlWriter = new StringWriter(); + MobyDataUtils.toXMLDocument(xmlWriter, finalContents); + + mre.setContentsXML(xmlWriter.toString()); + if(!queryIDs.isEmpty()){ + // Send an update event only if we aren't finished yet. + // If we are finished, the client is going to get this event as the + // invocation thread finishes up (no need to double up). + handler.processEvent(mre); + } } } } From gordonp at dev.open-bio.org Sat Jan 26 12:56:35 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Sat, 26 Jan 2008 12:56:35 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801261756.m0QHuZlv021369@dev.open-bio.org> gordonp Sat Jan 26 12:56:35 EST 2008 Update of /home/repository/moby/jars-archive/current In directory dev.open-bio.org:/tmp/cvs-serv21336 Removed Files: commons-io-1.0.jar Log Message: Replaced with 1.3.1 jars-archive/current commons-io-1.0.jar,1.1,NONE rcsdiff: /home/repository/moby/jars-archive/current/RCS/commons-io-1.0.jar,v: No such file or directory From gordonp at dev.open-bio.org Tue Jan 29 14:11:11 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 14:11:11 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801291911.m0TJBBSI010397@dev.open-bio.org> gordonp Tue Jan 29 14:11:10 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/util In directory dev.open-bio.org:/tmp/cvs-serv10365/src/main/ca/ucalgary/services/util Added Files: XHTMLForm.java Log Message: First, untested version of MOBY HTML wrapping utility committed most for backup purposes. Not for general use yet. moby-live/Java/src/main/ca/ucalgary/services/util XHTMLForm.java,NONE,1.1 From gordonp at dev.open-bio.org Tue Jan 29 16:12:46 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 16:12:46 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801292112.m0TLCkmv010581@dev.open-bio.org> gordonp Tue Jan 29 16:12:46 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow In directory dev.open-bio.org:/tmp/cvs-serv10546/minnow Log Message: Directory /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow added to the repository moby-live/Java/src/main/ca/ucalgary/minnow - New directory rcsdiff: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow/RCS/-,v: No such file or directory rcsdiff: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow/RCS/New,v: No such file or directory rcsdiff: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow/RCS/directory,v: No such file or directory From gordonp at dev.open-bio.org Tue Jan 29 16:58:12 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 16:58:12 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801292158.m0TLwCPb010714@dev.open-bio.org> gordonp Tue Jan 29 16:58:11 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/util In directory dev.open-bio.org:/tmp/cvs-serv10678/src/main/org/biomoby/client/util Modified Files: Base64Coder.java Log Message: Made decoder whitespace-tolerant of input Strings moby-live/Java/src/main/org/biomoby/client/util Base64Coder.java,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/util/Base64Coder.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/util/Base64Coder.java 2008/01/17 17:08:12 1.1 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/util/Base64Coder.java 2008/01/29 21:58:11 1.2 @@ -101,7 +101,7 @@ * @throws IllegalArgumentException if the input is not valid Base64 encoded data. */ public static byte[] decode (String s) { - return decode(s.toCharArray()); } + return decode(s.replaceAll("\\s+", "").toCharArray()); } /** * Decodes a byte array from Base64 format. From gordonp at dev.open-bio.org Tue Jan 29 19:03:26 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:03:26 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300003.m0U03QxM010856@dev.open-bio.org> gordonp Tue Jan 29 19:03:26 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/resources In directory dev.open-bio.org:/tmp/cvs-serv10820/src/main/ca/ucalgary/services/resources Modified Files: mobyRules.xsl Log Message: Support for EMBOSS 'sequence' type moby-live/Java/src/main/ca/ucalgary/services/resources mobyRules.xsl,1.3,1.4 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/resources/mobyRules.xsl,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/resources/mobyRules.xsl 2007/12/17 21:53:14 1.3 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/resources/mobyRules.xsl 2008/01/30 00:03:26 1.4 @@ -57,6 +57,9 @@ + + + @@ -81,6 +84,10 @@ + + + + - (?:DOI|doi):?\s*(10\.\d+/[^%"\#\x20\t\r\n]+) + (?:DOI|doi|[Dd]igital\s+[Oo]bject\s+[Ii][Dd](?:entifier))\s*:?\s*(10\.\d+/[^%"\#\x20\t\r\n]+) $1 From gordonp at dev.open-bio.org Tue Jan 29 19:04:56 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:04:56 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300004.m0U04uRP010944@dev.open-bio.org> gordonp Tue Jan 29 19:04:56 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui In directory dev.open-bio.org:/tmp/cvs-serv10908/src/main/ca/ucalgary/seahawk/gui Modified Files: MobyContentGUI.java Log Message: Got rid of Xerces dependency moby-live/Java/src/main/ca/ucalgary/seahawk/gui MobyContentGUI.java,1.15,1.16 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentGUI.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentGUI.java 2007/12/07 20:34:27 1.15 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentGUI.java 2008/01/30 00:04:56 1.16 @@ -844,12 +844,6 @@ // etc. by forcing resource loading for the only supported locale, _en java.util.Locale.setDefault(java.util.Locale.ENGLISH); - // Unless overridden on the command line, use xerces - if(System.getProperty("javax.xml.parsers.DocumentBuilderFactory") == null){ - System.setProperty("javax.xml.parsers.DocumentBuilderFactory", - "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"); - } - // Unless overridden on the command line, use xalan if(System.getProperty("javax.xml.transform.TransformerFactory") == null){ System.setProperty("javax.xml.transform.TransformerFactory", From gordonp at dev.open-bio.org Tue Jan 29 19:06:48 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:06:48 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300006.m0U06mX3010990@dev.open-bio.org> gordonp Tue Jan 29 19:06:48 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test In directory dev.open-bio.org:/tmp/cvs-serv10954/src/main/ca/ucalgary/seahawk/gui/test Modified Files: SeahawkTestCase.java Log Message: Added placeholders for JODConverter tests moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test SeahawkTestCase.java,1.9,1.10 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test/SeahawkTestCase.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test/SeahawkTestCase.java 2007/08/01 18:18:27 1.9 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test/SeahawkTestCase.java 2008/01/30 00:06:48 1.10 @@ -28,6 +28,8 @@ */ public class SeahawkTestCase extends JFCTestCase{ + private final static String TEST_MS_WORD_FILE = "ca/ucalgary/seahawk/gui/test/perlregex.doc"; + private final static String TEST_MS_EXCEL_FILE = "ca/ucalgary/seahawk/gui/test/twohybrid_uetz.xls"; private final static String TEST_MOBYEX_XML = "ca/ucalgary/seahawk/gui/test/moby_exception.xml"; private final static String TEST_MOBY_XML = "ca/ucalgary/seahawk/gui/test/allDataTypes.xml"; private final static String TEST_EXTERNAL_URL = "http://www.google.com/"; @@ -936,6 +938,18 @@ tempFile.delete(); } + public void testWordFileConversion() throws Exception{ + + } + + public void testExcelFileConversion() throws Exception{ + + } + + public void testTeXFileConversion() throws Exception{ + + } + /** * @return a test suite for all the test methods of this test case. */ @@ -955,6 +969,9 @@ suite.addTest(new SeahawkTestCase("testHighlightOptions"));//done suite.addTest(new SeahawkTestCase("testUserPreferences"));//done suite.addTest(new SeahawkTestCase("testExternalBrowser"));//done + suite.addTest(new SeahawkTestCase("testWordFileConversion")); + suite.addTest(new SeahawkTestCase("testExcelFileConversion")); + suite.addTest(new SeahawkTestCase("testTeXFileConversion")); return suite; } From gordonp at dev.open-bio.org Tue Jan 29 19:08:49 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:08:49 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300008.m0U08n4V011097@dev.open-bio.org> gordonp Tue Jan 29 19:08:49 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util In directory dev.open-bio.org:/tmp/cvs-serv11064/src/main/ca/ucalgary/seahawk/util Removed Files: NamespaceContextImpl.java Log Message: Moved to org.biomoby.shared moby-live/Java/src/main/ca/ucalgary/seahawk/util NamespaceContextImpl.java,1.3,NONE rcsdiff: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/RCS/NamespaceContextImpl.java,v: No such file or directory From gordonp at dev.open-bio.org Tue Jan 29 19:10:15 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:10:15 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300010.m0U0AFeg011160@dev.open-bio.org> gordonp Tue Jan 29 19:10:15 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/test In directory dev.open-bio.org:/tmp/cvs-serv11127/src/main/ca/ucalgary/seahawk/services/test Removed Files: MobyRequestTestCase.java Log Message: Superfluous file removed moby-live/Java/src/main/ca/ucalgary/seahawk/services/test MobyRequestTestCase.java,1.1,NONE rcsdiff: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/test/RCS/MobyRequestTestCase.java,v: No such file or directory From gordonp at dev.open-bio.org Tue Jan 29 19:14:11 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:14:11 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300014.m0U0EBoa011248@dev.open-bio.org> gordonp Tue Jan 29 19:14:11 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow In directory dev.open-bio.org:/tmp/cvs-serv11216/src/main/ca/ucalgary/minnow Added Files: MinJarMaker.java Log Message: Moved MinJarMaker ('Minnow') to its own package, as it doesn't depend on Seahawk moby-live/Java/src/main/ca/ucalgary/minnow MinJarMaker.java,NONE,1.1 From gordonp at dev.open-bio.org Tue Jan 29 19:14:11 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:14:11 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300014.m0U0EBko011263@dev.open-bio.org> gordonp Tue Jan 29 19:14:11 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util In directory dev.open-bio.org:/tmp/cvs-serv11216/src/main/ca/ucalgary/seahawk/util Removed Files: MinJarMaker.java Log Message: Moved MinJarMaker ('Minnow') to its own package, as it doesn't depend on Seahawk moby-live/Java/src/main/ca/ucalgary/seahawk/util MinJarMaker.java,1.8,NONE rcsdiff: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/RCS/MinJarMaker.java,v: No such file or directory From gordonp at dev.open-bio.org Tue Jan 29 19:14:11 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:14:11 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300014.m0U0EBbB011285@dev.open-bio.org> gordonp Tue Jan 29 19:14:11 EST 2008 Update of /home/repository/moby/moby-live/Java/xmls In directory dev.open-bio.org:/tmp/cvs-serv11216/xmls Modified Files: seahawkBuild.xml Log Message: Moved MinJarMaker ('Minnow') to its own package, as it doesn't depend on Seahawk moby-live/Java/xmls seahawkBuild.xml,1.13,1.14 =================================================================== RCS file: /home/repository/moby/moby-live/Java/xmls/seahawkBuild.xml,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- /home/repository/moby/moby-live/Java/xmls/seahawkBuild.xml 2007/12/17 18:43:06 1.13 +++ /home/repository/moby/moby-live/Java/xmls/seahawkBuild.xml 2008/01/30 00:14:11 1.14 @@ -31,10 +31,10 @@ - - + + - + + @@ -96,12 +97,14 @@ + - - + + From gordonp at dev.open-bio.org Tue Jan 29 19:41:39 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:41:39 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300041.m0U0fden011335@dev.open-bio.org> gordonp Tue Jan 29 19:41:39 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow In directory dev.open-bio.org:/tmp/cvs-serv11299/src/main/ca/ucalgary/minnow Modified Files: MinJarMaker.java Log Message: Avoid null pointer if jarmaker.class.extras property is not set moby-live/Java/src/main/ca/ucalgary/minnow MinJarMaker.java,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow/MinJarMaker.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow/MinJarMaker.java 2008/01/30 00:14:11 1.1 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow/MinJarMaker.java 2008/01/30 00:41:39 1.2 @@ -452,6 +452,10 @@ } protected void addExtraClasses(Set classes){ + if(System.getProperty("jarmaker.class.extras") == null){ + return; + } + StringTokenizer extraClassesTokens = new StringTokenizer(System.getProperty("jarmaker.class.extras"), File.pathSeparator); while(extraClassesTokens.hasMoreElements()){ From gordonp at dev.open-bio.org Wed Jan 30 16:33:28 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Wed, 30 Jan 2008 16:33:28 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801302133.m0ULXSoE013792@dev.open-bio.org> gordonp Wed Jan 30 16:33:28 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util In directory dev.open-bio.org:/tmp/cvs-serv13756/src/main/ca/ucalgary/seahawk/util Modified Files: HTMLUtils.java Log Message: Made tolltip wrapping for very long words more robust moby-live/Java/src/main/ca/ucalgary/seahawk/util HTMLUtils.java,1.6,1.7 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/HTMLUtils.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/HTMLUtils.java 2007/12/07 20:29:51 1.6 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/HTMLUtils.java 2008/01/30 21:33:28 1.7 @@ -144,6 +144,12 @@ for(String word: tokens){ while(word.length()+1 > maxLineLength){ //single word is bigger than preset width, hyphenate int cutPoint = maxLineLength - lineCharCount - 1; + if(cutPoint < word.length()-1){ + cutPoint = word.length()-1; + } + if(cutPoint < 0){ + break; + } result.append(word.substring(0, cutPoint)+"-
    "); lineCharCount = 0; word = word.substring(cutPoint); From mwilkinson at dev.open-bio.org Thu Jan 3 22:52:15 2008 From: mwilkinson at dev.open-bio.org (Mark Wilkinson) Date: Thu, 3 Jan 2008 17:52:15 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801032252.m03MqFnQ003639@dev.open-bio.org> mwilkinson Thu Jan 3 17:52:14 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv3620 Modified Files: service_tester.pl Log Message: service tester is now more gentle on the registry, only calling on it to look-up one service provider at a time, rather than all of them moby-live/Perl/scripts service_tester.pl,1.4,1.5 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/service_tester.pl,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- /home/repository/moby/moby-live/Perl/scripts/service_tester.pl 2007/12/19 19:17:58 1.4 +++ /home/repository/moby/moby-live/Perl/scripts/service_tester.pl 2008/01/03 22:52:14 1.5 @@ -40,7 +40,7 @@ ######-------USER CONFIGURABLE PARAMETERS-------###### # how long in seconds to wait for a service to respond -my $TIMEOUT = 50; +my $TIMEOUT = 20; # the total number of 'threads' to use ... my $THREAD_COUNT = 15; @@ -75,9 +75,11 @@ } } ); +my @providers = $central->retrieveServiceProviders(); +foreach my $authURI(@providers){ my ( $second, $minute, $hour, @whatever ) = localtime(); - print "Finding services registered as '$cat' @ $hour:$minute:$second\n"; - my ( $services, $reg ) = $central->findService( Registry => "mobycentral",category => $cat ); + print "Finding services registered by '$authURI' as '$cat' @ $hour:$minute:$second\n"; + my ( $services, $reg ) = $central->findService( Registry => "mobycentral",category => $cat, authURI => $authURI ); ( $second, $minute, $hour, @whatever ) = localtime(); print "Services found " . scalar @$services @@ -161,7 +163,8 @@ # dont proceed until we are completed with the first batch of children! wait, $count-- while $count > 0; ( $second, $minute, $hour, @whatever ) = localtime(); - print "Testing of '$cat' services completed @ $hour:$minute:$second \n"; + print "Testing of '$cat' services from '$authURI' completed @ $hour:$minute:$second \n"; +} } my $doc = XML::LibXML::Document->new( "1.0", "UTF-8" ); From mwilkinson at dev.open-bio.org Thu Jan 3 22:58:10 2008 From: mwilkinson at dev.open-bio.org (Mark Wilkinson) Date: Thu, 3 Jan 2008 17:58:10 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801032258.m03MwAIq003682@dev.open-bio.org> mwilkinson Thu Jan 3 17:58:10 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv3663 Modified Files: service_tester.pl Log Message: service tester checks for its write permissions at the beginning of the test, rather than after an hour of testing moby-live/Perl/scripts service_tester.pl,1.5,1.6 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/service_tester.pl,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Perl/scripts/service_tester.pl 2008/01/03 22:52:14 1.5 +++ /home/repository/moby/moby-live/Perl/scripts/service_tester.pl 2008/01/03 22:58:10 1.6 @@ -62,6 +62,11 @@ my %ALIVE = (); my $FILENAME = 'isAliveStats.xml'; +# this is just to test if I'm going to have permissions +# right now, rather than an hour from now... Arghghg! +open( OUT, ">>$DIRECTORY/$FILENAME" ) || die("Cannot Open File $DIRECTORY/$FILENAME $!"); +close OUT; + # create some shared variables my $alive_handle = tie %ALIVE, 'IPC::Shareable', undef, { destroy => 'yes' }; @@ -188,7 +193,7 @@ IPC::Shareable->clean_up_all; -open( OUT, ">$DIRECTORY/$FILENAME" ) || die("Cannot Open File $!"); +open( OUT, ">$DIRECTORY/$FILENAME" ) || die("Cannot Open File $DIRECTORY/$FILENAME $!"); print OUT $doc->toString(1); close OUT; From gordonp at dev.open-bio.org Mon Jan 7 22:01:10 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:01:10 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072201.m07M1AgK014626@dev.open-bio.org> gordonp Mon Jan 7 17:01:09 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared In directory dev.open-bio.org:/tmp/cvs-serv14590/src/main/org/biomoby/shared Modified Files: MobyService.java Log Message: Made cloneable, and less verbose on metadata fetch failure moby-live/Java/src/main/org/biomoby/shared MobyService.java,1.22,1.23 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyService.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyService.java 2007/12/09 03:43:22 1.22 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyService.java 2008/01/07 22:01:09 1.23 @@ -9,7 +9,6 @@ import java.util.*; import java.net.URL; -import java.util.regex.Pattern; import org.biomoby.shared.extended.ServiceInstanceParser; /** @@ -25,7 +24,7 @@ */ public class MobyService - implements Comparable, LSIDAccessible { + implements Comparable, Cloneable, LSIDAccessible { /** * A dummy name used for MobyService instances that do not have @@ -120,6 +119,38 @@ setAuthority (authority); } + /** + * Generally, you don't need to clone a service, unless you plan on modifying + * fields of the object, but do not want it to affect the service definition + * used by other threads within the JVM (i.e. getService(serviceName) always + * returns the same object within a single JVM instance). + */ + public MobyService clone(){ + MobyService clone = new MobyService(getName(), getAuthority()); + clone.setId(getId()); + clone.setAuthoritative(isAuthoritative()); + clone.setEmailContact(getEmailContact()); + clone.setCategory(getCategory()); + clone.setDescription(getDescription()); + clone.setType(getType()); + clone.setURL(getURL()); + clone.setSignatureURL(getSignatureURL()); + clone.setPathToRDF(getPathToRDF()); + clone.setRDF(getRDF()); + clone.serviceStatus = serviceStatus; + clone.statusChecks = statusChecks; + for(MobyPrimaryData primary: getPrimaryInputs()){ + clone.primaryInputs.add(primary.clone()); + } + for(MobySecondaryData secondary: getSecondaryInputs()){ + clone.secondaryInputs.add(secondary.clone()); + } + for(MobyPrimaryData primary: getPrimaryOutputs()){ + clone.primaryOutputs.add(primary.clone()); + } + return clone; + } + public String getUniqueName() { return name + "/" + authority; } @@ -553,7 +584,7 @@ } } } catch(Exception e){ - e.printStackTrace(); + System.err.println("Error while fetching service metadata: " + e); } } From gordonp at dev.open-bio.org Mon Jan 7 22:04:17 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:04:17 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072204.m07M4Htf014703@dev.open-bio.org> gordonp Mon Jan 7 17:04:17 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client In directory dev.open-bio.org:/tmp/cvs-serv14667/src/main/org/biomoby/client Modified Files: MobyRequest.java Log Message: Now we fill in default secondary (at Andreas' request), and fixed a potential null pointer exception moby-live/Java/src/main/org/biomoby/client MobyRequest.java,1.31,1.32 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2007/12/14 23:04:31 1.31 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/07 22:04:17 1.32 @@ -737,11 +737,13 @@ } } - if(localResponseString != null && localResponseString.length() == 0){ - throw new MobyException("The MOBY payload has no text contents at all"); - } - if(Character.isWhitespace(localResponseString.charAt(0))){ - localResponseString = localResponseString.trim(); + if(localResponseString != null){ + if(localResponseString.length() == 0){ + throw new MobyException("The MOBY payload has no text contents at all"); + } + if(Character.isWhitespace(localResponseString.charAt(0))){ + localResponseString = localResponseString.trim(); + } } // Check if the payload is an XML document. If not, try a last ditch effort @@ -860,7 +862,8 @@ } /** - * Creates an XML representation of the data, renamed to fit the needs of the service if necessary. + * Creates an XML representation of the data, renamed to fit the needs of the service if necessary, + * and adding any secondary parameter default values if not already specified in the incoming data. * * @param data the array of input parameters to put in a MOBY XML request * @@ -869,7 +872,7 @@ public String convertMOBYDataToMOBYRequest(MobyContentInstance data) throws MobyException{ MobyData[] inputs = mobyService.getPrimaryInputs(); - MobyData[] secondaries = mobyService.getSecondaryInputs(); + MobySecondaryData[] secondaries = mobyService.getSecondaryInputs(); Iterator queries = data.keySet().iterator(); // Make sure the number of input args is correct for each query being submitted @@ -918,14 +921,22 @@ " primary input parameter(s), but takes " + inputs.length + " (query " + queryName + ")"); } - if(secondaries != null && secondaries.length != secondaryParams.size()){ - throw new MobyException("Service " + mobyService.getName() + " was provided " + - secondaryParams.size() + - " secondary input parameter(s), but takes " + secondaries.length + - " (query " + queryName + ")"); + if(secondaries != null){ + // If no secondaries provided, fill them in by default + if(secondaries.length != 0 && secondaryParams.isEmpty()){ + for(MobySecondaryData secondary: secondaries){ + secondaryParams.put(secondary.getName(), new MobyDataSecondaryInstance(secondary)); + } + } + else if(secondaries.length != secondaryParams.size()){ + throw new MobyException("Service " + mobyService.getName() + " was provided " + + secondaryParams.size() + + " secondary input parameter(s), but takes " + secondaries.length + + " (query " + queryName + ")"); + } } - // If there was one anonynmous input, assign the name automatically in + // If there was one anonymous input, assign the name automatically in // the case the service requires it to be named. This is the only // unambiguous case in which we can do this. if(inputs.length == 1){ From gordonp at dev.open-bio.org Mon Jan 7 22:06:47 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:06:47 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072206.m07M6lrY015170@dev.open-bio.org> gordonp Mon Jan 7 17:06:47 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services In directory dev.open-bio.org:/tmp/cvs-serv15134/src/main/ca/ucalgary/services Modified Files: ACDService.java Log Message: Better min/max param support, exchanged thisService references for getService() due to potential initialization problems moby-live/Java/src/main/ca/ucalgary/services ACDService.java,1.8,1.9 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/ACDService.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/ACDService.java 2007/12/18 23:08:29 1.8 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/ACDService.java 2008/01/07 22:06:47 1.9 @@ -72,7 +72,7 @@ // Run the program. The result is for each output param, a list (vector) of the raw data (byte array) // Maps are used because, for example, an output may be composed of several png files. Map> resultData = configAndRunProgram(request); - MobyPrimaryData[] mobyOutputTemplates = thisService.getPrimaryOutputs(); + MobyPrimaryData[] mobyOutputTemplates = getService().getPrimaryOutputs(); if((resultData == null || resultData.size() == 0) && mobyOutputTemplates != null && mobyOutputTemplates.length > 0){ @@ -133,7 +133,7 @@ Vector command = new Vector(); command.add(programBinaryFile.getAbsolutePath()); - MobyPrimaryData[] inputs = thisService.getPrimaryInputs(); + MobyPrimaryData[] inputs = getService().getPrimaryInputs(); // Param:tempFile Map Map tempFiles = new HashMap(); @@ -205,7 +205,7 @@ command.add(mobySecondary.getObject().toString()); } - MobyPrimaryData[] outputs = thisService.getPrimaryOutputs(); + MobyPrimaryData[] outputs = getService().getPrimaryOutputs(); Map outputFile = new HashMap(); // Primary output @@ -938,10 +938,10 @@ integer.setDataType(MobySecondaryData.INTEGER_TYPE); integer.setDescription(block.get("information")); String m = block.get("maximum"); - try{m = (new BigInteger(m)).toString();}catch(NumberFormatException nfe){m = ""+Integer.MAX_VALUE;} + try{m = (new BigInteger(m)).toString();}catch(Exception e){m = ""+Integer.MAX_VALUE;} integer.setMaxValue(m); m = block.get("minimum"); - try{m = (new BigInteger(m)).toString();}catch(NumberFormatException nfe){m = ""+Integer.MIN_VALUE;} + try{m = (new BigInteger(m)).toString();}catch(Exception e){m = ""+Integer.MIN_VALUE;} integer.setMinValue(m); // Set default to 0, or minimum value if it's not Integer.MIN_VALUE try{ @@ -961,10 +961,10 @@ floating.setDefaultValue(deFault); floating.setDescription(block.get("information")); String m = block.get("maximum"); - try{m = (new BigDecimal(m)).toString();}catch(NumberFormatException nfe){m = ""+Double.MAX_VALUE;} + try{m = (new BigDecimal(m)).toString();}catch(Exception e){m = ""+Double.MAX_VALUE;} floating.setMaxValue(m); m = block.get("minimum"); - try{m = (new BigDecimal(m)).toString();}catch(NumberFormatException nfe){m = ""+Double.MIN_VALUE;} + try{m = (new BigDecimal(m)).toString();}catch(Exception e){m = ""+Double.MIN_VALUE;} floating.setMinValue(m); // Set default to 0, or minimum value if it's not Double.MIN_VALUE try{ From gordonp at dev.open-bio.org Mon Jan 7 22:07:45 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:07:45 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072207.m07M7jEh015409@dev.open-bio.org> gordonp Mon Jan 7 17:07:45 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services In directory dev.open-bio.org:/tmp/cvs-serv15373/src/main/ca/ucalgary/seahawk/services Modified Files: MobyClient.java Log Message: Added more try blocks for pattern matching moby-live/Java/src/main/ca/ucalgary/seahawk/services MobyClient.java,1.18,1.19 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyClient.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyClient.java 2007/12/17 18:37:55 1.18 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyClient.java 2008/01/07 22:07:45 1.19 @@ -613,19 +613,23 @@ MobyComplexBuilder rule = regexMap.get(pattern); if(targetDataType == null || rule.getDataType().inheritsFrom(targetDataType)){ - Matcher matcher = pattern.matcher(textData); - - while(matcher.find()){ - try{ - MobyDataObject mobyObj = rule.apply(matcher); - if(mobyObj != null){ - objectVector.add(mobyObj); + try{ + Matcher matcher = pattern.matcher(textData); + + while(matcher.find()){ + try{ + MobyDataObject mobyObj = rule.apply(matcher); + if(mobyObj != null){ + objectVector.add(mobyObj); + } + } + catch(MobyException me){ + System.err.println("Could not build Moby object from match:" + me); + me.printStackTrace(); } } - catch(MobyException me){ - System.err.println("Could not build Moby object from match:" + me); - me.printStackTrace(); - } + } catch(Throwable t){ // Principally stack overflows + System.err.println("Exception/Error ("+t+") while applying regex '"+pattern.pattern()+"' to text"); } } } @@ -770,20 +774,24 @@ rawDataAsString = bytesToString(rawData); //System.err.println("Start of data is " + rawDataAsString.substring(0, 4)); } - Matcher matcher = pattern.matcher(rawDataAsString); - - while(matcher.find()){ - //System.err.println("Found match for binary data"); - try{ - MobyDataObject mobyObj = rule.apply(matcher, rawData); - if(mobyObj != null){ - objectVector.add(mobyObj); + try{ + Matcher matcher = pattern.matcher(rawDataAsString); + + while(matcher.find()){ + //System.err.println("Found match for binary data"); + try{ + MobyDataObject mobyObj = rule.apply(matcher, rawData); + if(mobyObj != null){ + objectVector.add(mobyObj); + } + } + catch(MobyException me){ + System.err.println("Could not build Moby object from match:" + me); + me.printStackTrace(); } } - catch(MobyException me){ - System.err.println("Could not build Moby object from match:" + me); - me.printStackTrace(); - } + } catch(Throwable t){ // Principally stack overflows + System.err.println("Exception/Error ("+t+") while applying regex '"+pattern.pattern()+"' to binary data"); } } } @@ -834,21 +842,25 @@ Iterator regex_keys = regexMap.keySet().iterator(); while(regex_keys.hasNext()){ //map still has untraversed regex entry to test Pattern pattern = (Pattern) regex_keys.next(); - Matcher matcher = pattern.matcher(textData); - - while(matcher.find()){ - MobyComplexBuilder rule = (MobyComplexBuilder) regexMap.get(pattern); - - try{ - MobyDataObject mobyObj = rule.apply(matcher, bytes); - if(mobyObj != null){ - objectVector.add(mobyObj); + try{ + Matcher matcher = pattern.matcher(textData); + + while(matcher.find()){ + MobyComplexBuilder rule = (MobyComplexBuilder) regexMap.get(pattern); + + try{ + MobyDataObject mobyObj = rule.apply(matcher, bytes); + if(mobyObj != null){ + objectVector.add(mobyObj); + } + } + catch(MobyException me){ + System.err.println("Could not build Moby object from match:" + me); + me.printStackTrace(); } } - catch(MobyException me){ - System.err.println("Could not build Moby object from match:" + me); - me.printStackTrace(); - } + }catch(Throwable t){ // Principally stack overflows + System.err.println("Exception/Error ("+t+") while applying regex '"+pattern.pattern()+"' to text/binary"); } } From gordonp at dev.open-bio.org Mon Jan 7 22:09:49 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:09:49 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072209.m07M9nbj015599@dev.open-bio.org> gordonp Mon Jan 7 17:09:49 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data In directory dev.open-bio.org:/tmp/cvs-serv15563/src/main/org/biomoby/shared/data Modified Files: MobyDataXref.java Log Message: Added support for non-registered services in Xref (doesn't cause exception anymore, but rather just has an info-poor MobyService object) moby-live/Java/src/main/org/biomoby/shared/data MobyDataXref.java,1.8,1.9 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataXref.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataXref.java 2007/12/09 00:23:49 1.8 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataXref.java 2008/01/07 22:09:49 1.9 @@ -71,7 +71,12 @@ public MobyDataXref(String namespace, String id, String serviceName, String authURI, Registry registry){ super("", id, new MobyService[] {MobyService.getService(serviceName, authURI)}, registry); addNamespace(MobyNamespace.getNamespace(namespace)); - getService().setAuthority(authURI); + MobyService s = getService(); + if(s == null){ // the service name given didn't resolve to something in the registry + s = new MobyService(serviceName, authURI); // make an explicit info-void one instead + System.err.println("Created token service object for unresolvable xref service '"+serviceName+"'"); + setServices(new MobyService[]{s}); + } } public MobyDataXref(Element e) throws MobyException{ @@ -263,7 +268,7 @@ return xrefType; } - public Object clone(){ + public MobyDataXref clone(){ return new MobyDataXref(getNamespace(), getId(), getService()); } From gordonp at dev.open-bio.org Mon Jan 7 22:11:36 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:11:36 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072211.m07MBamo015700@dev.open-bio.org> gordonp Mon Jan 7 17:11:36 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared In directory dev.open-bio.org:/tmp/cvs-serv15648/src/main/org/biomoby/shared Modified Files: MobyData.java MobyPrimaryData.java MobyPrimaryDataSet.java MobyPrimaryDataSimple.java MobySecondaryData.java Log Message: Added cloneability to MobyData derivatives moby-live/Java/src/main/org/biomoby/shared MobyData.java,1.5,1.6 MobyPrimaryData.java,1.2,1.3 MobyPrimaryDataSet.java,1.9,1.10 MobyPrimaryDataSimple.java,1.11,1.12 MobySecondaryData.java,1.10,1.11 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyData.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyData.java 2006/07/07 04:12:40 1.5 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyData.java 2008/01/07 22:11:36 1.6 @@ -21,7 +21,7 @@ * @version $Id$ */ -abstract public class MobyData { +abstract public class MobyData implements Cloneable{ protected String name; protected String id = null; @@ -56,8 +56,9 @@ } /************************************************************************** - * Must be overwritten byte a subclass. + * Must be overwritten by a subclass. *************************************************************************/ + abstract public MobyData clone(); abstract public String toXML(); abstract public boolean isPrimary(); abstract public String format (int indent); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryData.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryData.java 2006/07/07 04:12:40 1.2 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryData.java 2008/01/07 22:11:36 1.3 @@ -18,7 +18,7 @@ */ abstract public class MobyPrimaryData - extends MobyData { + extends MobyData implements Cloneable { /************************************************************************** * @@ -44,6 +44,7 @@ /************************************************************************** * Must be overwritten by a subclass. *************************************************************************/ + abstract public MobyPrimaryData clone(); abstract public MobyDataType getDataType(); abstract public void setDataType (MobyDataType value); abstract public MobyNamespace[] getNamespaces(); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryDataSet.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryDataSet.java 2006/11/11 23:04:34 1.9 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryDataSet.java 2008/01/07 22:11:36 1.10 @@ -22,7 +22,7 @@ */ public class MobyPrimaryDataSet - extends MobyPrimaryData { + extends MobyPrimaryData implements Cloneable{ protected Vector elements = new Vector(); @@ -57,6 +57,13 @@ } } + public MobyPrimaryDataSet clone(){ + MobyPrimaryDataSet clone = new MobyPrimaryDataSet(getName()); + clone.setDataType(getDataType()); + clone.setElements(getElements()); // also sets namespaces implicitly + return clone; + } + public MobyPrimaryDataSimple[] getElements() { MobyPrimaryDataSimple[] result = new MobyPrimaryDataSimple [elements.size()]; elements.copyInto (result); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryDataSimple.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryDataSimple.java 2007/04/27 13:44:21 1.11 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrimaryDataSimple.java 2008/01/07 22:11:36 1.12 @@ -26,7 +26,7 @@ */ public class MobyPrimaryDataSimple - extends MobyPrimaryData { + extends MobyPrimaryData implements Cloneable{ protected Vector namespaces = new Vector(); protected MobyDataType dataType; @@ -88,6 +88,14 @@ } } + public MobyPrimaryDataSimple clone(){ + MobyPrimaryDataSimple clone = new MobyPrimaryDataSimple(name); + clone.setId(getId()); + clone.namespaces = new Vector(namespaces); + clone.dataType = dataType; + return clone; + } + /************************************************************************** * *************************************************************************/ =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobySecondaryData.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobySecondaryData.java 2006/12/07 16:37:36 1.10 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobySecondaryData.java 2008/01/07 22:11:36 1.11 @@ -22,7 +22,7 @@ */ public class MobySecondaryData - extends MobyData { + extends MobyData implements Cloneable{ public static final String INTEGER_TYPE = "Integer"; public static final String FLOAT_TYPE = "Float"; public static final String STRING_TYPE = "String"; @@ -90,6 +90,17 @@ } } + public MobySecondaryData clone(){ + MobySecondaryData clone = new MobySecondaryData(getName()); + clone.dataType = dataType; + clone.defaultValue = defaultValue; + clone.minimumValue = minimumValue; + clone.maximumValue = maximumValue; + clone.allowedValues = new Vector(allowedValues); + clone.description = description; + return clone(); + } + public String getDataType() { return dataType; } From gordonp at dev.open-bio.org Mon Jan 7 22:11:37 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:11:37 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072211.m07MBbcv015752@dev.open-bio.org> gordonp Mon Jan 7 17:11:36 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data In directory dev.open-bio.org:/tmp/cvs-serv15648/src/main/org/biomoby/shared/data Modified Files: MobyDataBoolean.java MobyDataComposite.java MobyDataDateTime.java MobyDataFloat.java MobyDataInt.java MobyDataObject.java MobyDataObjectSAI.java MobyDataObjectSet.java MobyDataString.java Log Message: Added cloneability to MobyData derivatives moby-live/Java/src/main/org/biomoby/shared/data MobyDataBoolean.java,1.7,1.8 MobyDataComposite.java,1.23,1.24 MobyDataDateTime.java,1.12,1.13 MobyDataFloat.java,1.10,1.11 MobyDataInt.java,1.9,1.10 MobyDataObject.java,1.25,1.26 MobyDataObjectSAI.java,1.3,1.4 MobyDataObjectSet.java,1.12,1.13 MobyDataString.java,1.9,1.10 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataBoolean.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataBoolean.java 2007/12/06 23:43:17 1.7 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataBoolean.java 2008/01/07 22:11:36 1.8 @@ -97,7 +97,7 @@ return value.toString(); } - public Object clone(){ + public MobyDataBoolean clone(){ MobyDataBoolean copy = new MobyDataBoolean(getName(), value, getDataType().getRegistry()); copy.setDataType(getDataType()); copy.setId(getId()); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataComposite.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataComposite.java 2007/12/09 00:23:49 1.23 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataComposite.java 2008/01/07 22:11:36 1.24 @@ -241,7 +241,7 @@ this(MobyDataType.getDataType(typeName, r)); } - public Object clone(){ + public MobyDataComposite clone(){ MobyDataComposite theClone = new MobyDataComposite(getDataType(), getName(), "", getId()); theClone.setNamespaces(getNamespaces()); theClone.putAll(members); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataDateTime.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataDateTime.java 2007/12/06 23:43:17 1.12 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataDateTime.java 2008/01/07 22:11:36 1.13 @@ -316,7 +316,7 @@ } - public Object clone(){ + public MobyDataDateTime clone(){ MobyDataDateTime copy = new MobyDataDateTime(getName(), getValue(), getDataType().getRegistry()); copy.setDataType(getDataType()); copy.setId(getId()); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataFloat.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataFloat.java 2007/12/06 23:43:17 1.10 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataFloat.java 2008/01/07 22:11:36 1.11 @@ -113,7 +113,7 @@ this("", stringNumber, registry); } - public Object clone(){ + public MobyDataFloat clone(){ MobyDataFloat copy = new MobyDataFloat(getName(), value, getDataType().getRegistry()); copy.setDataType(getDataType()); copy.setId(getId()); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataInt.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataInt.java 2007/12/06 23:43:17 1.9 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataInt.java 2008/01/07 22:11:36 1.10 @@ -208,7 +208,7 @@ } } - public Object clone(){ + public MobyDataInt clone(){ MobyDataInt copy = new MobyDataInt(getName(), value, getDataType().getRegistry()); copy.setDataType(getDataType()); copy.setId(getId()); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObject.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObject.java 2007/12/09 00:23:49 1.25 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObject.java 2008/01/07 22:11:36 1.26 @@ -540,7 +540,7 @@ * * @return an object of class MobyDataObject */ - public Object clone(){ + public MobyDataObject clone(){ MobyDataObject copy = null; copy = new MobyDataObject(getName(), getDataType().getRegistry()); copy.setNamespaces(getNamespaces()); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObjectSAI.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObjectSAI.java 2007/12/09 00:23:49 1.3 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObjectSAI.java 2008/01/07 22:11:36 1.4 @@ -45,7 +45,7 @@ mobyServices = services; } - public Object clone(){ + public MobyDataObjectSAI clone(){ // Clone according to the base instance's subclass specific methods return new MobyDataObjectSAI((MobyDataObject) dataInstance.clone(), mobyServices); =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObjectSet.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObjectSet.java 2007/12/06 23:42:55 1.12 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataObjectSet.java 2008/01/07 22:11:36 1.13 @@ -93,7 +93,7 @@ addAll(c); } - public Object clone(){ + public MobyDataObjectSet clone(){ return new MobyDataObjectSet(getName(), bag); } =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataString.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataString.java 2007/12/06 23:43:17 1.9 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataString.java 2008/01/07 22:11:36 1.10 @@ -58,7 +58,7 @@ return value.toString(); } - public Object clone(){ + public MobyDataString clone(){ MobyDataString copy = new MobyDataString(getName(), value, getDataType().getRegistry()); copy.setDataType(getDataType()); copy.setId(getId()); From gordonp at dev.open-bio.org Mon Jan 7 22:16:36 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:16:36 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072216.m07MGaRd015850@dev.open-bio.org> gordonp Mon Jan 7 17:16:35 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/service In directory dev.open-bio.org:/tmp/cvs-serv15814/src/main/org/biomoby/service Modified Files: MobyServlet.java Log Message: Added concurrent thread support for doPost calls (specifically, addException() wasn't kosher), and added runtime templated data type support moby-live/Java/src/main/org/biomoby/service MobyServlet.java,1.10,1.11 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/service/MobyServlet.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/service/MobyServlet.java 2007/12/17 18:31:09 1.10 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/service/MobyServlet.java 2008/01/07 22:16:35 1.11 @@ -23,8 +23,7 @@ import javax.xml.parsers.ParserConfigurationException; import javax.xml.soap.*; -import java.util.StringTokenizer; -import java.util.Vector; +import java.util.*; import java.math.*; /** @@ -73,12 +72,16 @@ protected static Registry registry; protected MobyService thisService; - protected MobyContentInstance currentContent = null; protected boolean isInitialized = false; + protected boolean hasDataTypeTemplates = false; // Will we need to consider runtime changes to data type specs? /** Changing this value makes logging more or less verbose */ protected boolean isDebug = false; /** Where data type, namespace and service type definition come from, if null, the default registry is used */ + // Only use for keep track of MobyServices if they have template values that are filled in at service invocation + protected Map templatedServicesMap; + protected Map responseContentInstanceMap; + public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException{ @@ -284,7 +287,7 @@ } /** - * Throws an exception if the data in the job does not match the input spec of the service + * Throws an exception if the data in the job does not match the input spec of the service. */ public static void validateArguments(MobyDataJob job, MobyService service, @@ -347,7 +350,27 @@ param.getDataType().getName()+ " in the MOBY Central object ontology)"); } - + if(param.getDataType() instanceof MobyDataTypeTemplate){ + // First instance. The runtime data type constraint is being defined here, + // i.e. the effective datatype for output parameters using the same template + // object is now set. + MobyDataTypeTemplate dtTemplate = (MobyDataTypeTemplate) param.getDataType(); + // Do not change the global definition of the template, but rather just an instance for this invocation + MobyDataType dtBoundTemplate = valueType; + param.setDataType(dtBoundTemplate); + // Propagate the change to other params using this data type + for(MobyPrimaryData primary: service.getPrimaryInputs()){ + if(primary.getDataType() == dtTemplate){ //refers to original template we just bound + primary.setDataType(dtBoundTemplate); + } + } + for(MobyPrimaryData primary: service.getPrimaryOutputs()){ + if(primary.getDataType() == dtTemplate){ //refers to original template we just bound + primary.setDataType(dtBoundTemplate); + } + } + dtTemplate.bindTemplate(param.getDataType()); + } // Looks good so far for a match. Make sure namespace matches // if part of the template too. MobyNamespace[] reqNS = param.getNamespaces(); @@ -462,6 +485,65 @@ } } + /** + * Allocates thread-specific (depending on service specification) variables to use during an invocation. + */ + protected synchronized MobyService startServiceInvocation(MobyContentInstance mci){ + if(responseContentInstanceMap == null){ // init() not called yet? + return null; + } + responseContentInstanceMap.put(Thread.currentThread(), mci); + + if(!hasDataTypeTemplates){ + return thisService; + } + MobyService invocationSpecificService = thisService.clone(); + templatedServicesMap.put(Thread.currentThread(), invocationSpecificService); + return invocationSpecificService; + } + + /** + * Cleans up invocation-specific variables. + */ + protected synchronized void endServiceInvocation(){ + if(responseContentInstanceMap != null){ + responseContentInstanceMap.remove(Thread.currentThread()); + } + if(hasDataTypeTemplates && templatedServicesMap != null){ + templatedServicesMap.remove(Thread.currentThread()); + } + } + + /** + * Returns the MobyContentInstance for the invocation response + * (or null if not in the middle of an invocation). + */ + protected MobyContentInstance getResponseContentInstance(){ + // The only time we don't return thisService is if an invocation-specific datatype is defined + if(responseContentInstanceMap != null && + responseContentInstanceMap.containsKey(Thread.currentThread())){ + return responseContentInstanceMap.get(Thread.currentThread()); + } + else{ + return null; + } + } + + /** + * Returns the (possibly invocation-specific) MobyService definition + */ + protected MobyService getService(){ + // The only time we don't return thisService is if an invocation-specific datatype is defined + if(templatedServicesMap != null && + hasDataTypeTemplates && + templatedServicesMap.containsKey(Thread.currentThread())){ + return templatedServicesMap.get(Thread.currentThread()); + } + else{ + return thisService; + } + } + private void writeResponse(HttpServletResponse response, MobyContentInstance mobyResults){ java.io.OutputStream out = null; @@ -516,12 +598,14 @@ * Writes the error to the servlet log, and adds a MobyException block to the response */ protected void addException(ServiceException se){ + MobyContentInstance currentContent = getResponseContentInstance(); + (new Exception("createing exception " +se)).printStackTrace(); if(currentContent != null){ currentContent.addException(se); if(isInitialized){ log("While executing Moby Service (initialized) " + getServiceName(), se); } - else if(thisService != null){ + else if(getService() != null){ System.err.println("While executing Moby Service (uninitialized) " + getClass().getName()); se.printStackTrace(); } @@ -551,7 +635,7 @@ if(isInitialized){ log("While executing Moby Service (initialized) " + getServiceName(), ex); } - else if(thisService != null){ + else if(getService() != null){ System.err.println("While executing Moby Service (uninitialized) " + getClass().getName()); ex.printStackTrace(); } @@ -575,7 +659,7 @@ if(isInitialized){ log("While executing Moby Service (initialized) " + getServiceName() + ", job '" + job.getID()+"'", ex); } - else if(thisService != null){ + else if(getService() != null){ System.err.println("While executing Moby Service (uninitialized) " + getClass().getName() + ", job '" + job.getID()+"'"); ex.printStackTrace(); } @@ -623,7 +707,11 @@ faultName = soapFactory.createName("Client", "", SOAPConstants.URI_NS_SOAP_ENVELOPE); - + + // Maps storing invocation-specific context variable + templatedServicesMap = new HashMap(); + responseContentInstanceMap = new HashMap(); + // Determine the Moby Central (and hence ontologies) to associate with the service String centralURL = null; mobyService ann = @@ -719,9 +807,11 @@ throw new Exception("Could not find required " + MOBY_INPUT_PARAM + " parameter in servlet config, available parameters were: " + paramNames); } + // The map allows definitions like + Map templateDataTypeMap = new HashMap(); for(int i = 0; i < ins.length; i++){ // non-void param - inputTypes.add(stringToPrimaryDataTemplate(ins[i])); + inputTypes.add(stringToPrimaryDataTemplate(ins[i], templateDataTypeMap)); } String[] outs = ann.out(); @@ -732,11 +822,15 @@ throw new Exception("Could not find required " + MOBY_OUTPUT_PARAM + " parameter in servlet config "); } + // The templateDataTypeMap map allows us to now use T in an output data type spec for(int i = 0; i < outs.length; i++){ if(outs[i] != null && outs[i].length() > 0){// non-void param - outputTypes.add(stringToPrimaryDataTemplate(outs[i])); + outputTypes.add(stringToPrimaryDataTemplate(outs[i], templateDataTypeMap)); } } + if(!templateDataTypeMap.isEmpty()){ + hasDataTypeTemplates = true; // affects runtime service behaviours + } String[] secondaries = ann.secondaryParams(); if(getCoCInitParameter(MOBY_SECONDARYINPUT_PARAM) != null){ @@ -1032,7 +1126,8 @@ * Strings have the form name:objectType:namespace, with ":namespace" optional * If the input is expected to be a Collection, then the syntax is name:Collection(objectType):namespace */ - public static MobyPrimaryData stringToPrimaryDataTemplate(String spec) throws Exception{ + public static MobyPrimaryData stringToPrimaryDataTemplate(String spec, Map runTimeTemplates) + throws Exception{ StringTokenizer st = new StringTokenizer(spec, ":"); String name = st.nextToken(); if(name == null || name.length() == 0){ @@ -1044,7 +1139,7 @@ spec + ") must have the minimal form " + "\"name:objectType\", aborting!"); } - String objectType = st.nextToken(); + String objectType = st.nextToken().trim(); if(objectType == null || objectType.length() == 0){ throw new Exception("The parameter specification (" + spec + ") has a blank object type, aborting!"); @@ -1055,7 +1150,7 @@ boolean isCollection = false; if(objectType.indexOf("Collection(") == 0 && objectType.lastIndexOf(")") == objectType.length()-1){ - objectType = objectType.substring(11, objectType.length()-1); + objectType = objectType.substring(11, objectType.length()-1).trim(); dataTemplate = new MobyPrimaryDataSet(name); isCollection = true; } @@ -1063,13 +1158,58 @@ dataTemplate = new MobyPrimaryDataSimple(name); } - MobyDataType type = MobyDataType.getDataType(objectType, registry); + // Allow runtime templating like , so for example we can + // restrict output to the same type T as the input that was provided. + String newTemplateToken = null; + if(objectType.indexOf("<") == 0 && + objectType.lastIndexOf(">") == objectType.length()-1){ + String[] tokens = objectType.substring(2, objectType.length()-1).split("\\s+"); + if(tokens.length != 3 || !"extends".equals(tokens[1]) || + tokens[0] == null || tokens[0].length() == 0 || + tokens[2] == null || tokens[2].length() == 0 ){ + throw new Exception("The parameter specification (" + + spec + ") attempts to define a template data type, but it is not of the " + + "expected form "); + } + if(runTimeTemplates.containsKey(tokens[0])){ + throw new Exception("The parameter specification (" + + spec + ") attempts to define a template data type " + tokens[0] + + ", but that token has already been bound to " + + " a template definition in this context (" + + runTimeTemplates.get(tokens[0]).getName() + ")"); + } + newTemplateToken = tokens[0]; + if(MobyDataType.getDataType(newTemplateToken, registry) != null){ + System.err.println("The parameter specification (" + + spec + ") defines a template data type " + tokens[0] + + ", but that token conflicts with the name of an existing " + + "data type in Moby Central. The template definition will " + + "be used, but this may have unintended consequences. " + + "It is suggested that you change the template name " + + " to an unambiguous one."); + } + objectType = tokens[2]; + } + MobyDataType type = null; + // Using a previously defined template data type + if(runTimeTemplates.containsKey(objectType)){ + type = runTimeTemplates.get(objectType); + } + else{ // Using a literal data type name + type = MobyDataType.getDataType(objectType, registry); + } if(type == null){ throw new Exception("The parameter specification (" + spec + ") has a data type not found in the " + "MOBY registry, aborting! (Either correct the type," + " or register it as a new type in MOBY Central"); } + // Defining a template data type, MobyDataTypeTemplate will + // bind to a subclass during service execution. + if(newTemplateToken != null){ + runTimeTemplates.put(newTemplateToken, new MobyDataTypeTemplate(type)); + type = runTimeTemplates.get(newTemplateToken); + } dataTemplate.setDataType(type); if(isCollection){ // Example data element in set needed for RDF creator to recognize the data type @@ -1077,7 +1217,7 @@ exampleData.setDataType(type); ((MobyPrimaryDataSet) dataTemplate).addElement(exampleData); } - + // namespace is optional if(st.hasMoreTokens()){ String namespaceValue = st.nextToken(); @@ -1120,13 +1260,14 @@ */ public void processRequests(MobyContentInstance requestContents, MobyContentInstance resultContents) throws Exception{ - currentContent = resultContents; //for exception handling within processRequest w/out content being passed around + // Set up the per-invocation variable context + startServiceInvocation(resultContents); for(String jobName: requestContents.keySet()){ try{ MobyDataJob currentRequest = requestContents.get(jobName); - if(thisService != null){ + if(getService() != null){ // Should happen, unless main() was called - validateArguments(currentRequest, thisService, "While executing service"); + validateArguments(currentRequest, getService(), "While executing service"); } MobyDataJob currentResult = resultContents.get(jobName); if(currentResult == null){ @@ -1139,7 +1280,8 @@ addException(resultContents, requestContents.get(jobName), e); } } - currentContent = null; + // Makes sure per-invocation variables can get GC'ed + endServiceInvocation(); } /** From gordonp at dev.open-bio.org Mon Jan 7 22:17:57 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:17:57 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072217.m07MHvWf015934@dev.open-bio.org> gordonp Mon Jan 7 17:17:57 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared In directory dev.open-bio.org:/tmp/cvs-serv15902/src/main/org/biomoby/shared Added Files: MobyDataTypeTemplate.java Log Message: Placeholder class for MobyServlet runtime templating of data types moby-live/Java/src/main/org/biomoby/shared MobyDataTypeTemplate.java,NONE,1.1 From gordonp at dev.open-bio.org Mon Jan 7 22:19:14 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:19:14 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072219.m07MJEq3015978@dev.open-bio.org> gordonp Mon Jan 7 17:19:14 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui In directory dev.open-bio.org:/tmp/cvs-serv15942/src/main/ca/ucalgary/seahawk/gui Modified Files: MobyContentPane.java Log Message: More verbose logging moby-live/Java/src/main/ca/ucalgary/seahawk/gui MobyContentPane.java,1.15,1.16 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentPane.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentPane.java 2007/12/07 20:32:29 1.15 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentPane.java 2008/01/07 22:19:14 1.16 @@ -233,7 +233,7 @@ status.setText("Note: There was an error transforming the MOBY data " + "into presentation form, it may not be displayed correctly"); logger.error("Note: There was an error transforming the MOBY data " + - "into presentation form, it may not be displayed correctly"); + "into presentation form, it may not be displayed correctly", e); } // Get rid of inter-tag whitespaces htmlContents = htmlContents.replaceAll(">[ \\t\\r\\n]+<", "><"); From gordonp at dev.open-bio.org Mon Jan 7 22:22:50 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:22:50 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072222.m07MMoVE016022@dev.open-bio.org> gordonp Mon Jan 7 17:22:49 EST 2008 Update of /home/repository/moby/moby-live/Java/src/Clients In directory dev.open-bio.org:/tmp/cvs-serv15986/src/Clients Modified Files: ServletTester.java Log Message: Updated to deal with new MobyServlet.stringToPrimaryDataTemplate() signature (includes runtime template var map) moby-live/Java/src/Clients ServletTester.java,1.2,1.3 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/Clients/ServletTester.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Java/src/Clients/ServletTester.java 2006/10/31 20:25:55 1.2 +++ /home/repository/moby/moby-live/Java/src/Clients/ServletTester.java 2008/01/07 22:22:48 1.3 @@ -103,13 +103,14 @@ System.exit(1); } + Map map = new HashMap(); if(MobyServlet.MOBY_INPUT_PARAM.equals(paramName.getTextContent())){ String values = paramValue.getTextContent(); if(values != null && values.length() != 0){ StringTokenizer st = new StringTokenizer(values, ","); // non-void param while(st.hasMoreTokens()){ - inputTypes.add(MobyServlet.stringToPrimaryDataTemplate(st.nextToken())); + inputTypes.add(MobyServlet.stringToPrimaryDataTemplate(st.nextToken(), map)); } } } @@ -119,7 +120,7 @@ StringTokenizer st = new StringTokenizer(values, ","); // non-void param while(st.hasMoreTokens()){ - outputTypes.add(MobyServlet.stringToPrimaryDataTemplate(st.nextToken())); + outputTypes.add(MobyServlet.stringToPrimaryDataTemplate(st.nextToken(), map)); } } } From gordonp at dev.open-bio.org Mon Jan 7 22:45:32 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 7 Jan 2008 17:45:32 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801072245.m07MjWTI016327@dev.open-bio.org> gordonp Mon Jan 7 17:45:32 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client In directory dev.open-bio.org:/tmp/cvs-serv16291/src/main/org/biomoby/client Modified Files: MobyRequest.java Log Message: Added default secondaries only if not already specified in the given input data moby-live/Java/src/main/org/biomoby/client MobyRequest.java,1.32,1.33 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/07 22:04:17 1.32 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/07 22:45:32 1.33 @@ -923,16 +923,19 @@ } if(secondaries != null){ // If no secondaries provided, fill them in by default - if(secondaries.length != 0 && secondaryParams.isEmpty()){ + if(secondaries.length != 0){ for(MobySecondaryData secondary: secondaries){ - secondaryParams.put(secondary.getName(), new MobyDataSecondaryInstance(secondary)); + if(!secondaryParams.containsKey(secondary.getName())){ + secondaryParams.put(secondary.getName(), new MobyDataSecondaryInstance(secondary)); + } } } - else if(secondaries.length != secondaryParams.size()){ + if(secondaries.length != secondaryParams.size()){ throw new MobyException("Service " + mobyService.getName() + " was provided " + secondaryParams.size() + " secondary input parameter(s), but takes " + secondaries.length + - " (query " + queryName + ")"); + " (query " + queryName + "). Extra secondary" + + " parameters must have been specified"); } } From gordonp at dev.open-bio.org Tue Jan 8 15:20:31 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 8 Jan 2008 10:20:31 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801081520.m08FKVud006302@dev.open-bio.org> gordonp Tue Jan 8 10:20:31 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client In directory dev.open-bio.org:/tmp/cvs-serv6266/src/main/org/biomoby/client Modified Files: MobyRequest.java Log Message: Foreach and Generics updates to request creation code, plus corrected default secondaries setting moby-live/Java/src/main/org/biomoby/client MobyRequest.java,1.33,1.34 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/07 22:45:32 1.33 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/08 15:20:31 1.34 @@ -873,34 +873,27 @@ MobyData[] inputs = mobyService.getPrimaryInputs(); MobySecondaryData[] secondaries = mobyService.getSecondaryInputs(); - Iterator queries = data.keySet().iterator(); // Make sure the number of input args is correct for each query being submitted - while(queries.hasNext()){ - String queryName = (String) queries.next(); - MobyDataJob query = data.get(queryName); + for(Map.Entry entry: data.entrySet()){ + String queryName = entry.getKey(); + MobyDataJob query = entry.getValue(); // Additionally, we check if they are MobyDataInstances below Map primaryParams = new HashMap(); Map secondaryParams = new HashMap(); - Iterator params = query.keySet().iterator(); // To store the primary input parameter name as given by the user, // in case we need it later on for parameter renaming... String primaryParamName = null; - while(params.hasNext()){ - String name = (String) params.next(); - Object param = query.get(name); + for(Map.Entry subentry: query.entrySet()){ + String name = subentry.getKey(); + MobyDataInstance param = subentry.getValue(); if(param == null){ throw new MobyException("Query " + queryName + " contained a null input parameter (" + name + ")"); } - else if(!(param instanceof MobyDataInstance)){ - System.err.println("Input parameter " + name + " (query " + queryName + - ") was not a MobyDataInstance " + - "as expected, but rather was of class " + param.getClass().getName()); - } else if(param instanceof MobyPrimaryData){ primaryParams.put(name, (MobyPrimaryData) param); primaryParamName = name; @@ -926,7 +919,7 @@ if(secondaries.length != 0){ for(MobySecondaryData secondary: secondaries){ if(!secondaryParams.containsKey(secondary.getName())){ - secondaryParams.put(secondary.getName(), new MobyDataSecondaryInstance(secondary)); + query.put(secondary.getName(), new MobyDataSecondaryInstance(secondary)); } } } From gordonp at dev.open-bio.org Tue Jan 8 15:26:55 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 8 Jan 2008 10:26:55 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801081526.m08FQtmX006346@dev.open-bio.org> gordonp Tue Jan 8 10:26:55 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client In directory dev.open-bio.org:/tmp/cvs-serv6310/src/main/org/biomoby/client Modified Files: MobyRequest.java Log Message: Less verbose moby-live/Java/src/main/org/biomoby/client MobyRequest.java,1.34,1.35 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/08 15:20:31 1.34 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/08 15:26:55 1.35 @@ -197,7 +197,6 @@ public void setInput(MobyDataInstance[] data) throws MobyException{ MobyDataJob job = new MobyDataJob(); for(MobyDataInstance param: data){ - System.err.println("Adding job param " + param.getName()); job.put(param.getName(), param); } inputData = new MobyContentInstance(); From gordonp at dev.open-bio.org Tue Jan 8 15:27:51 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 8 Jan 2008 10:27:51 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801081527.m08FRpNh006412@dev.open-bio.org> gordonp Tue Jan 8 10:27:50 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui In directory dev.open-bio.org:/tmp/cvs-serv6376/src/main/ca/ucalgary/seahawk/gui Modified Files: MobyServicesGUI.java Log Message: Less verbose moby-live/Java/src/main/ca/ucalgary/seahawk/gui MobyServicesGUI.java,1.13,1.14 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyServicesGUI.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyServicesGUI.java 2007/12/14 23:18:54 1.13 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyServicesGUI.java 2008/01/08 15:27:50 1.14 @@ -183,7 +183,6 @@ public void setupServiceSecondaryData(MobyRequestEventHandler handler){ MobyDataInstance[] castInputs = new MobyDataInstance[primaryInput.length]; - System.err.println("Submitting job with " + primaryInput.length + " parameters"); for(int i = 0; i < primaryInput.length; i++){ if(!(primaryInput[i] instanceof MobyDataInstance)){ logger.warn("Warning: setupServiceSecondaryData was called before the primary input" + From kawas at dev.open-bio.org Wed Jan 9 15:13:05 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Wed, 9 Jan 2008 10:13:05 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801091513.m09FD56Q015731@dev.open-bio.org> kawas Wed Jan 9 10:13:04 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv15696/Perl/scripts Modified Files: Moby Log Message: moby-live/Perl/scripts Moby,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Moby,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Perl/scripts/Moby 2007/12/04 18:02:30 1.1 +++ /home/repository/moby/moby-live/Perl/scripts/Moby 2008/01/09 15:13:03 1.2 @@ -16,7 +16,6 @@ # #----------------------------------------------------------------- -# this is a 're-port' of the RESOURCES script from java back to perl use strict; use CGI qw/:standard/; From kawas at dev.open-bio.org Wed Jan 9 16:23:48 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Wed, 9 Jan 2008 11:23:48 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801091623.m09GNm5m015951@dev.open-bio.org> kawas Wed Jan 9 11:23:47 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv15916/Perl/scripts Modified Files: service_tester.pl Log Message: formatted the code a little bit and also moved the call to retrieve service providers out of the foreach loop so that the call is made once and not numerous times. moby-live/Perl/scripts service_tester.pl,1.6,1.7 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/service_tester.pl,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- /home/repository/moby/moby-live/Perl/scripts/service_tester.pl 2008/01/03 22:58:10 1.6 +++ /home/repository/moby/moby-live/Perl/scripts/service_tester.pl 2008/01/09 16:23:47 1.7 @@ -64,14 +64,14 @@ # this is just to test if I'm going to have permissions # right now, rather than an hour from now... Arghghg! -open( OUT, ">>$DIRECTORY/$FILENAME" ) || die("Cannot Open File $DIRECTORY/$FILENAME $!"); +open( OUT, ">>$DIRECTORY/$FILENAME" ) || die("Cannot Open File '$DIRECTORY/$FILENAME' $!"); close OUT; # create some shared variables my $alive_handle = tie %ALIVE, 'IPC::Shareable', undef, { destroy => 'yes' }; -foreach my $cat (@CATEGORIES) { - my $central = +# create the central client and get all service providers once +my $central = MOBY::Client::Central->new( Registries => { mobycentral => { @@ -81,95 +81,92 @@ } ); my @providers = $central->retrieveServiceProviders(); -foreach my $authURI(@providers){ - my ( $second, $minute, $hour, @whatever ) = localtime(); - print "Finding services registered by '$authURI' as '$cat' @ $hour:$minute:$second\n"; - my ( $services, $reg ) = $central->findService( Registry => "mobycentral",category => $cat, authURI => $authURI ); - ( $second, $minute, $hour, @whatever ) = localtime(); - print "Services found " - . scalar @$services - . "... processing @ $hour:$minute:$second \n"; - - my $count = 0; - print "\tservice count: " . scalar (@$services) . "\n"; - foreach (@$services) { - # ignore test services - next if $_->authority eq 'samples.jmoby.net'; - wait, $count-- while $count >= $THREAD_COUNT; - $count++; - my $pid = fork(); - $count-- unless defined $pid; - do { IPC::Shareable->clean_up_all; die "Couldn't fork: $!"; } - unless defined $pid; - if ($pid) { - # parent - do nothing ...s - } - elsif ( $pid == 0 ) { - my $name = $_->name; - my $auth = $_->authority; - my $url = $_->URL; - - do { - # dont process localhost addresses ... - exit(0); - } if $url =~ /localhost/; - - # child - stuff to do goes here - #print "Calling: " . $auth . "," . $name . "\n"; - my $soap = - SOAP::Lite->uri("http://biomoby.org/") - ->proxy( $url, timeout => $TIMEOUT )->on_fault( - sub { - my $soap = shift; - my $res = shift; +foreach my $cat (@CATEGORIES) { + foreach my $authURI (@providers) { + my ( $second, $minute, $hour, @whatever ) = localtime(); + print "Finding services registered by '$authURI' as '$cat' @ $hour:$minute:$second\n"; + my ( $services, $reg ) = $central->findService( Registry => "mobycentral",category => $cat, authURI => $authURI ); + ( $second, $minute, $hour, @whatever ) = localtime(); + print "Services found " + . scalar @$services + . "... processing @ $hour:$minute:$second \n"; + + my $count = 0; + print "\tservice count: " . scalar (@$services) . "\n"; + foreach (@$services) { + # ignore test services + next if $_->authority eq 'samples.jmoby.net'; + wait, $count-- while $count >= $THREAD_COUNT; + $count++; + my $pid = fork(); + $count-- unless defined $pid; + do { IPC::Shareable->clean_up_all; die "Couldn't fork: $!"; } + unless defined $pid; + if ($pid) { + # parent - do nothing ...s + } elsif ( $pid == 0 ) { + my $name = $_->name; + my $auth = $_->authority; + my $url = $_->URL; + do { + # dont process localhost addresses ... + exit(0); + } if $url =~ /localhost/; + + # child - stuff to do goes here + #print "Calling: " . $auth . "," . $name . "\n"; + my $soap = + SOAP::Lite->uri("http://biomoby.org/") + ->proxy( $url, timeout => $TIMEOUT )->on_fault( + sub { + my $soap = shift; + my $res = shift; + + #TODO add to DEAD hash ... + $alive_handle->shlock(); + $ALIVE{$auth} = () if not exists $ALIVE{$auth}; + push @{ $ALIVE{$auth} }, {name=>$name, alive=>undef}; + $alive_handle->shunlock(); + + #print "\t" . $auth . "," . $name . " ~isAlive\n"; + exit(0); + } + ); + + my $input = _empty_input(); + my $out = + $soap->$name( SOAP::Data->type( 'string' => "$input" ) )->result; + do { + #TODO add to ALIVE hash ... + #print "\t" . $auth . "," . $name . " isAlive\n"; + $alive_handle->shlock(); + $ALIVE{$auth} = () if not exists $ALIVE{$auth}; + push @{ $ALIVE{$auth} }, {name=>$name, alive=>1}; + $alive_handle->shunlock(); + exit(0); + } if $out; + do { #TODO add to DEAD hash ... + #print "\t" . $auth . "," . $name . " ~isAlive\n"; $alive_handle->shlock(); $ALIVE{$auth} = () if not exists $ALIVE{$auth}; push @{ $ALIVE{$auth} }, {name=>$name, alive=>undef}; $alive_handle->shunlock(); - - #print "\t" . $auth . "," . $name . " ~isAlive\n"; exit(0); - } - ); - - my $input = _empty_input(); - my $out = - $soap->$name( SOAP::Data->type( 'string' => "$input" ) )->result; - do { - - #TODO add to ALIVE hash ... - #print "\t" . $auth . "," . $name . " isAlive\n"; - $alive_handle->shlock(); - $ALIVE{$auth} = () if not exists $ALIVE{$auth}; - push @{ $ALIVE{$auth} }, {name=>$name, alive=>1}; - $alive_handle->shunlock(); - exit(0); - } if $out; - do { - - #TODO add to DEAD hash ... - #print "\t" . $auth . "," . $name . " ~isAlive\n"; - $alive_handle->shlock(); - $ALIVE{$auth} = () if not exists $ALIVE{$auth}; - push @{ $ALIVE{$auth} }, {name=>$name, alive=>undef}; - $alive_handle->shunlock(); - exit(0); - } unless $out; - } - else { - IPC::Shareable->clean_up_all; - die "couldn?t fork: $!\n"; + } unless $out; + } else { + IPC::Shareable->clean_up_all; + die "couldn?t fork: $!\n"; + } } - } - # dont proceed until we are completed with the first batch of children! - wait, $count-- while $count > 0; - ( $second, $minute, $hour, @whatever ) = localtime(); - print "Testing of '$cat' services from '$authURI' completed @ $hour:$minute:$second \n"; -} + # dont proceed until we are completed with the first batch of children! + wait, $count-- while $count > 0; + ( $second, $minute, $hour, @whatever ) = localtime(); + print "Testing of '$cat' services from '$authURI' completed @ $hour:$minute:$second \n"; + } } my $doc = XML::LibXML::Document->new( "1.0", "UTF-8" ); From kawas at dev.open-bio.org Wed Jan 9 19:11:05 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Wed, 9 Jan 2008 14:11:05 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801091911.m09JB5Gs016436@dev.open-bio.org> kawas Wed Jan 9 14:11:04 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv16405/Perl/scripts Added Files: ServicePingerValidator Log Message: preliminary commit of a form that can be used to see why the pinger thinks your service is dead. Still needs some work and testing. moby-live/Perl/scripts ServicePingerValidator,NONE,1.1 From gordonp at dev.open-bio.org Wed Jan 9 20:19:09 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Wed, 9 Jan 2008 15:19:09 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801092019.m09KJ92A016626@dev.open-bio.org> gordonp Wed Jan 9 15:19:08 EST 2008 Update of /home/repository/moby/moby-live/Java/src/Clients In directory dev.open-bio.org:/tmp/cvs-serv16594/src/Clients Added Files: MobyPinger.java Log Message: Client to perform a basic Moby ping (empty request should retrieve an empty response) moby-live/Java/src/Clients MobyPinger.java,NONE,1.1 From gordonp at dev.open-bio.org Wed Jan 9 20:25:36 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Wed, 9 Jan 2008 15:25:36 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801092025.m09KPaxP016674@dev.open-bio.org> gordonp Wed Jan 9 15:25:36 EST 2008 Update of /home/repository/moby/moby-live/Java/src/Clients In directory dev.open-bio.org:/tmp/cvs-serv16638/src/Clients Modified Files: MobyPinger.java Log Message: Better invalid service handling moby-live/Java/src/Clients MobyPinger.java,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/Clients/MobyPinger.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Java/src/Clients/MobyPinger.java 2008/01/09 20:19:07 1.1 +++ /home/repository/moby/moby-live/Java/src/Clients/MobyPinger.java 2008/01/09 20:25:36 1.2 @@ -31,8 +31,9 @@ // Make sure we have a service to run for this input if(validServices == null || validServices.length == 0){ - System.err.println("Could not find a valid services with name "+ + System.err.println("Could not find a valid service with name "+ args[0] + " and provider " + args[1]); + System.exit(1); } else{ System.out.println("Found a services"); From kawas at dev.open-bio.org Thu Jan 10 14:40:29 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Thu, 10 Jan 2008 09:40:29 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801101440.m0AEeTcV018379@dev.open-bio.org> kawas Thu Jan 10 09:40:28 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv18343/Perl/scripts Modified Files: ServicePingerValidator Log Message: moby-live/Perl/scripts ServicePingerValidator,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/ServicePingerValidator,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Perl/scripts/ServicePingerValidator 2008/01/09 19:11:03 1.1 +++ /home/repository/moby/moby-live/Perl/scripts/ServicePingerValidator 2008/01/10 14:40:27 1.2 @@ -93,7 +93,10 @@ my $out = $soap->$name( SOAP::Data->type( 'string' => "$input" ) )->result; do { - print "
         " . $auth . "," . $name . " isAlive

    "; + $out =~ s/&/&/g; + $out =~ s/>/>/g; + $out =~ s/ " . $auth . "," . $name . " isAlive.\n output:\n$out
    "; } if $out; do { print "
         " . $auth . "," . $name . " ~ did not respond!

    "; @@ -145,7 +148,10 @@ my $out = $soap->$name( SOAP::Data->type( 'string' => "$input" ) )->result; do { - print "
         " . $auth . "," . $name . " isAlive

    "; + $out =~ s/&/&/g; + $out =~ s/>/>/g; + $out =~ s/ " . $auth . "," . $name . " isAlive.\n output:\n$out
    "; } if $out; do { print "
         " . $auth . "," . $name . " ~ did not respond!

    "; From kawas at dev.open-bio.org Thu Jan 10 15:25:18 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Thu, 10 Jan 2008 10:25:18 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801101525.m0AFPIbS018523@dev.open-bio.org> kawas Thu Jan 10 10:25:17 EST 2008 Update of /home/repository/moby/moby-live/Docs/MOBY-S_API In directory dev.open-bio.org:/tmp/cvs-serv18488/Docs/MOBY-S_API Modified Files: RegistryScripts.html Log Message: added the ServicePingerValidator to the documentation. moby-live/Docs/MOBY-S_API RegistryScripts.html,1.4,1.5 =================================================================== RCS file: /home/repository/moby/moby-live/Docs/MOBY-S_API/RegistryScripts.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- /home/repository/moby/moby-live/Docs/MOBY-S_API/RegistryScripts.html 2007/12/12 14:01:22 1.4 +++ /home/repository/moby/moby-live/Docs/MOBY-S_API/RegistryScripts.html 2008/01/10 15:25:16 1.5 @@ -171,6 +171,8 @@
  • RDFAgent Validator - a form that can be used to test whether your installation of the agent was successful, or to test an RDF document that describes your services for syntactical errors.
  • +
  • Service Pinger Validator - a form that can be used to ping individual services so that you can determine whether there is a problem with that particular service.
    +
  • This document is broken down into the following sections: @@ -209,6 +211,7 @@ authority.pl
    ValidateService
    AgentRDFValidator
    + ServicePingerValidator
    RESOURCES
    Moby Copy the following file somewhere other than a web accessible directory (this script will be placed on a cron) @@ -221,6 +224,8 @@
  • You're done. All that is left for you to do is configure the newly installed scripts.
  • +

    Please make sure that the first line of all the scripts corresponds to the correct location of your perl executable.
    + For instance if you perl is located in /bin/my/perl, then make sure to modify the first line of each of the scripts so that they read #!/bin/my/perl -w

    From kawas at dev.open-bio.org Thu Jan 10 15:25:50 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Thu, 10 Jan 2008 10:25:50 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801101525.m0AFPoYw018581@dev.open-bio.org> kawas Thu Jan 10 10:25:50 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv18546/Perl/scripts Modified Files: Moby Log Message: added the ServicePingerValidator to the list of links moby-live/Perl/scripts Moby,1.2,1.3 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/Moby,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Perl/scripts/Moby 2008/01/09 15:13:03 1.2 +++ /home/repository/moby/moby-live/Perl/scripts/Moby 2008/01/10 15:25:50 1.3 @@ -232,6 +232,12 @@

    For a form based page, click here.

    +

    Ping Registered Services - +Invoke the service pinger on any already registered service or group of services from a single service provider.

    +
    +

    For a form based page, click here. +

    +

    CallableServiceScript -Use this to determine whether or not a particular service(s) is reachable.

    From kawas at dev.open-bio.org Mon Jan 14 14:23:40 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 14 Jan 2008 09:23:40 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801141423.m0EENeMS032428@dev.open-bio.org> kawas Mon Jan 14 09:23:39 EST 2008 Update of /home/repository/moby/moby-live/Perl/MOBY/RDF/Ontologies In directory dev.open-bio.org:/tmp/cvs-serv32381/Perl/MOBY/RDF/Ontologies Modified Files: ServiceTypes.pm Namespaces.pm Services.pm Objects.pm Log Message: taverna dies because of the '/', so reverting back to '#' for the time being. moby-live/Perl/MOBY/RDF/Ontologies ServiceTypes.pm,1.5,1.6 Namespaces.pm,1.5,1.6 Services.pm,1.10,1.11 Objects.pm,1.7,1.8 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY/RDF/Ontologies/ServiceTypes.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Perl/MOBY/RDF/Ontologies/ServiceTypes.pm 2007/12/21 15:39:03 1.5 +++ /home/repository/moby/moby-live/Perl/MOBY/RDF/Ontologies/ServiceTypes.pm 2008/01/14 14:23:39 1.6 @@ -75,8 +75,8 @@ # save some information retrieved from mobycentral.config my $CONF = MOBY::Config->new; - $self->{uri} = $CONF->{mobyservice}->{resourceURL} || 'http://biomoby.org/RESOURCES/MOBY-S/Services/'; - $self->{uri} = $self->{uri} . "/" unless $self->{uri} =~ m/^.*(\/{1})$/; + $self->{uri} = $CONF->{mobyservice}->{resourceURL} || 'http://biomoby.org/RESOURCES/MOBY-S/Services#'; + $self->{uri} = $self->{uri} . "#" unless $self->{uri} =~ m/^.*(\#{1})$/; $self->{query_all} = <new; - $self->{uri} = $CONF->{mobynamespace}->{resourceURL} || 'http://biomoby.org/RESOURCES/MOBY-S/Namespaces/'; - $self->{uri} = $self->{uri} . "/" unless $self->{uri} =~ m/^.*(\/{1})$/; + $self->{uri} = $CONF->{mobynamespace}->{resourceURL} || 'http://biomoby.org/RESOURCES/MOBY-S/Namespaces#'; + $self->{uri} = $self->{uri} . "#" unless $self->{uri} =~ m/^.*(\#{1})$/; $self->{query_all} = <{instance_uri} = - 'http://biomoby.org/RESOURCES/MOBY-S/ServiceInstances/' + 'http://biomoby.org/RESOURCES/MOBY-S/ServiceInstances#' unless $moby->{ServiceInstance}->[0]; - $self->{service_uri} = 'http://biomoby.org/RESOURCES/MOBY-S/Services/' + $self->{service_uri} = 'http://biomoby.org/RESOURCES/MOBY-S/Services#' unless $moby->{Services}->[0]; $self->{namespace_uri} = - 'http://biomoby.org/RESOURCES/MOBY-S/Namespaces/' + 'http://biomoby.org/RESOURCES/MOBY-S/Namespaces#' unless $moby->{Namespaces}->[0]; - $self->{datatype_uri} = 'http://biomoby.org/RESOURCES/MOBY-S/Objects/' + $self->{datatype_uri} = 'http://biomoby.org/RESOURCES/MOBY-S/Objects#' unless $moby->{Objects}->[0]; } # add a / at the end of the uri if it isnt there already - $self->{instance_uri} = $self->{instance_uri} . "/" - unless $self->{instance_uri} =~ m/^.*(\/{1})$/; - $self->{service_uri} = $self->{service_uri} . "/" - unless $self->{service_uri} =~ m/^.*(\/{1})$/; - $self->{namespace_uri} = $self->{namespace_uri} . "/" - unless $self->{namespace_uri} =~ m/^.*(\/{1})$/; - $self->{datatype_uri} = $self->{datatype_uri} . "/" - unless $self->{datatype_uri} =~ m/^.*(\/{1})$/; + $self->{instance_uri} = $self->{instance_uri} . "#" + unless $self->{instance_uri} =~ m/^.*(\#{1})$/; + $self->{service_uri} = $self->{service_uri} . "#" + unless $self->{service_uri} =~ m/^.*(\#{1})$/; + $self->{namespace_uri} = $self->{namespace_uri} . "#" + unless $self->{namespace_uri} =~ m/^.*(\#{1})$/; + $self->{datatype_uri} = $self->{datatype_uri} . "#" + unless $self->{datatype_uri} =~ m/^.*(\#{1})$/; $self->{is_alive_path} = $CONF->{mobycentral}->{service_tester_path}; =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY/RDF/Ontologies/Objects.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- /home/repository/moby/moby-live/Perl/MOBY/RDF/Ontologies/Objects.pm 2007/12/21 15:39:03 1.7 +++ /home/repository/moby/moby-live/Perl/MOBY/RDF/Ontologies/Objects.pm 2008/01/14 14:23:39 1.8 @@ -76,8 +76,8 @@ # save some information retrieved from mobycentral.config my $CONF = MOBY::Config->new; - $self->{uri} = $CONF->{mobyobject}->{resourceURL} || 'http://biomoby.org/RESOURCES/MOBY-S/Objects/'; - $self->{uri} = $self->{uri} . "/" unless $self->{uri} =~ m/^.*(\/{1})$/; + $self->{uri} = $CONF->{mobyobject}->{resourceURL} || 'http://biomoby.org/RESOURCES/MOBY-S/Objects#'; + $self->{uri} = $self->{uri} . "#" unless $self->{uri} =~ m/^.*(\#{1})$/; $self->{uri_comp} = $self->{uri}; $self->{uri_comp} =~ s/\/MOBY\-S\//\/MOBY_SUB_COMPONENT\//; From kawas at dev.open-bio.org Mon Jan 14 19:51:11 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 14 Jan 2008 14:51:11 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801141951.m0EJpBT7004016@dev.open-bio.org> kawas Mon Jan 14 14:51:10 EST 2008 Update of /home/repository/moby/moby-live/Perl/MOBY/RDF/Predicates In directory dev.open-bio.org:/tmp/cvs-serv3981/Perl/MOBY/RDF/Predicates Modified Files: MOBY_PREDICATES.pm Log Message: moby-live/Perl/MOBY/RDF/Predicates MOBY_PREDICATES.pm,1.2,1.3 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY/RDF/Predicates/MOBY_PREDICATES.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Perl/MOBY/RDF/Predicates/MOBY_PREDICATES.pm 2007/12/21 15:39:03 1.2 +++ /home/repository/moby/moby-live/Perl/MOBY/RDF/Predicates/MOBY_PREDICATES.pm 2008/01/14 19:51:10 1.3 @@ -7,7 +7,7 @@ use constant MOBY_PREDICATES_PREFIX => 'moby'; use constant MOBY_PREDICATES_URI => - 'http://biomoby.org/RESOURCES/MOBY-S/Predicates/'; + 'http://biomoby.org/RESOURCES/MOBY-S/Predicates#'; ###################################### ## Predicates for MOBY_PREDICATES ## From gordonp at dev.open-bio.org Mon Jan 14 22:54:20 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 14 Jan 2008 17:54:20 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801142254.m0EMsKXM008755@dev.open-bio.org> gordonp Mon Jan 14 17:54:19 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data In directory dev.open-bio.org:/tmp/cvs-serv8718/src/main/org/biomoby/shared/data Modified Files: MobyContentInstance.java Log Message: Minor style changes moby-live/Java/src/main/org/biomoby/shared/data MobyContentInstance.java,1.13,1.14 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyContentInstance.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyContentInstance.java 2007/12/06 17:06:34 1.13 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyContentInstance.java 2008/01/14 22:54:19 1.14 @@ -70,7 +70,7 @@ } queryParams.put(paramName, mdi); } - put(""+autoID++, queryParams); + put(queryParams); } /** @@ -550,7 +550,7 @@ getClass()); } - if(queryID == null || !(queryID instanceof String) || ((String) queryID).length() == 0){ + if(queryID == null || queryID.length() == 0){ // autogenerate the queryID return members.put(""+autoID++, value); } From gordonp at dev.open-bio.org Mon Jan 14 22:55:43 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 14 Jan 2008 17:55:43 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801142255.m0EMthjd008834@dev.open-bio.org> gordonp Mon Jan 14 17:55:42 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util In directory dev.open-bio.org:/tmp/cvs-serv8798/src/main/ca/ucalgary/seahawk/util Modified Files: MinJarMaker.java Log Message: Added verbose class loading option with -Dverbose.class=true moby-live/Java/src/main/ca/ucalgary/seahawk/util MinJarMaker.java,1.7,1.8 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/MinJarMaker.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/MinJarMaker.java 2007/12/14 23:38:06 1.7 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/MinJarMaker.java 2008/01/14 22:55:42 1.8 @@ -23,6 +23,8 @@ */ public class MinJarMaker extends ClassLoader implements Runnable{ + public static String VERBOSE = "verbose.class"; + // The JAR file we want to create protected String jarfile; @@ -299,6 +301,9 @@ throw new IOException( "Could only read "+r+" of "+len+" bytes from "+classFile ); } fin.close(); + if(Boolean.getBoolean(VERBOSE)){ + System.err.println("[Loaded " + name + " from " + classFile.getCanonicalPath() + "]"); + } return data; } else{ @@ -328,6 +333,9 @@ classBytes = new byte[(int) classSize]; //classes better not be bigger than 2 GB! // Slurp it up in one shot classStream.read(classBytes, 0, (int) classSize); + if(Boolean.getBoolean(VERBOSE)){ + System.err.println("[Loaded " + name + " from " + f.getCanonicalPath() + "]"); + } return classBytes; } else{ @@ -339,6 +347,9 @@ r = classStream.read(byteBufferChunk, 0, 1024)){ byteBuffer.write(byteBufferChunk, 0, r); } + if(Boolean.getBoolean(VERBOSE)){ + System.err.println("[Loaded " + name + " from " + f.getCanonicalPath() + "]"); + } return byteBuffer.toByteArray(); } } From gordonp at dev.open-bio.org Mon Jan 14 23:00:44 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 14 Jan 2008 18:00:44 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801142300.m0EN0iqD009020@dev.open-bio.org> gordonp Mon Jan 14 18:00:44 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared In directory dev.open-bio.org:/tmp/cvs-serv8988/src/main/org/biomoby/shared Added Files: NamespaceContextImpl.java Log Message: Updates for javax.xml.xpath support rather than Aapache Xalan moby-live/Java/src/main/org/biomoby/shared NamespaceContextImpl.java,NONE,1.1 From gordonp at dev.open-bio.org Mon Jan 14 23:00:44 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 14 Jan 2008 18:00:44 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801142300.m0EN0i4b009040@dev.open-bio.org> gordonp Mon Jan 14 18:00:44 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services In directory dev.open-bio.org:/tmp/cvs-serv8988/src/main/ca/ucalgary/seahawk/services Modified Files: MobyClient.java Log Message: Updates for javax.xml.xpath support rather than Aapache Xalan moby-live/Java/src/main/ca/ucalgary/seahawk/services MobyClient.java,1.19,1.20 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyClient.java,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyClient.java 2008/01/07 22:07:45 1.19 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyClient.java 2008/01/14 23:00:44 1.20 @@ -1,6 +1,5 @@ package ca.ucalgary.seahawk.services; -import ca.ucalgary.seahawk.util.NamespaceContextImpl; import ca.ucalgary.seahawk.util.SeahawkOptions; import org.biomoby.client.*; @@ -8,14 +7,8 @@ import org.biomoby.shared.*; import org.biomoby.shared.data.*; -import org.apache.xpath.XPath; // compiled xpath statement -import org.apache.xpath.XPathContext; //runtime environment in which XPath is executed -import org.apache.xpath.objects.XObject; //format of results of XPath evaluation -import org.apache.xpath.objects.XNodeSet; //format of node based result lists of XPaths -import org.apache.xpath.objects.XNodeSetForDOM; //format of node based result lists of XPaths -import org.apache.xpath.objects.XString; -import org.apache.xml.utils.PrefixResolver; -import org.apache.xml.utils.PrefixResolverDefault; +import javax.xml.xpath.*; // compiled xpath statement +import javax.xml.namespace.NamespaceContext; import org.w3c.dom.*; @@ -66,9 +59,10 @@ public static final String IS_ALIVE_SERVICE_URL = "http://moby.ucalgary.ca/moby/ValidateService"; private NamespaceContextImpl nsContext; + private XPath commonXPath; private CentralImpl c; private Map isDeadMap; - private Map xpathMap; + private Map xpathMap; private Map urlRegexMap; private Map regexMap; private Map builderNameMap; @@ -105,12 +99,14 @@ else{ c = new CentralCachedCallsImpl(); } - xpathMap = new HashMap(); + xpathMap = new HashMap(); urlRegexMap = new HashMap(); regexMap = new HashMap(); builderNameMap = new HashMap(); patternNameMap = new HashMap(); nsContext = new NamespaceContextImpl(); + commonXPath = XPathFactory.newInstance().newXPath(); + commonXPath.setNamespaceContext(nsContext); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); @@ -462,7 +458,7 @@ throw new Exception("Attribute "+MEMBERS_RULE_ATTR+" refers to a rule (" + membersRuleName+") that does not exist"); } - MobyDataType dataType = MobyDataType.getDataType(dataTypeName); + MobyDataType dataType = MobyDataType.getDataType(dataTypeName, getRegistry()); if(!dataType.inheritsFrom(membersBuilder.getDataType())){ throw new Exception("Data type produced by inherited rule (" + membersRuleName + ") is not a subtype of the current rule (" + dataType.getName() + ")"); @@ -938,28 +934,24 @@ return new MobyDataObject[0]; } - XPathContext xpath_context = new XPathContext(); Node current_node = n; //for searching (dynamic mapping dependent on doc contents) - PrefixResolver doc_prefix_resolver = new PrefixResolverDefault(current_node); + //PrefixResolver doc_prefix_resolver = new PrefixResolverDefault(current_node); nsContextImpl.setCurrentNode? // Vector of moby objects we construct based on the xpath mappings found Vector objectVector = new Vector(); - Iterator xpath_keys = xpathMap.keySet().iterator(); - while(xpath_keys.hasNext()){ //map still has untraversed xpath entry to test - XPath xpath = (XPath) xpath_keys.next(); - + for(XPathExpression xpath: xpathMap.keySet()){ //map still has untraversed xpath entry to test Object result = null; try{ MobyComplexBuilder rule = (MobyComplexBuilder) xpathMap.get(xpath); - result = xpath.execute(xpath_context, current_node, doc_prefix_resolver); + result = xpath.evaluate(current_node, XPathConstants.NODESET); // More than one hit? - if(result instanceof XNodeSet){ + if(result != null){ try{ - NodeList node_list = ((XNodeSet) result).nodelist(); + NodeList node_list = (NodeList) result; //System.out.println("number of nodes in the nodelist: " + node_list.getLength()); if(node_list == null || node_list.getLength() == 0) continue; @@ -972,36 +964,31 @@ } } - }catch(javax.xml.transform.TransformerException te){ + }catch(XPathExpressionException xpe2){ System.err.println( "Warning: Cannot access resulting node list "+ - "due to exception in its retrieval: " + te); + "due to exception in its retrieval: " + xpe2); return new MobyDataObject[0]; } } - else if(result instanceof XString){ - if(((XString) result).str() == null || ((XString) result).str().equals("")){ - continue; // no useful data + else{ + result = xpath.evaluate(current_node, XPathConstants.STRING); + if(result != null){ + if(result.toString().equals("")){ + continue; // no useful data + } + //System.out.println("Got string result: " + result); + MobyDataObject mobyObj = rule.applyXPath(result, nsContext); + if(mobyObj != null){ + objectVector.add(mobyObj); + } } - //System.out.println("Got string result: " + result); - MobyDataObject mobyObj = rule.applyXPath(result, nsContext); - if(mobyObj != null){ - objectVector.add(mobyObj); + else{ //not a node sequence + System.out.println( "Warning: the XPath expression ("+ xpath + + ") did not return a node set, cannot select document elements."+ + " The returned object was of type "+ result.getClass().getName() ); + continue; } - } - else{ //not a node sequence - System.out.println( "Warning: the XPath expression ("+ xpath.getPatternString()+ - ") did not return a node set, cannot select document elements."+ - " The returned object was of type "+ result.getClass().getName() ); - continue; - } - - }catch(javax.xml.transform.TransformerException te){ - logger.warn( "Warning: Cannot select nodes due to exception "+ - "while executing XPath statement (" + xpath.getPatternString() + "):" +te.getMessage()); - System.err.println( "Warning: Cannot select nodes due to exception "+ - "while executing XPath statement (" + - xpath.getPatternString() + "):" + te); - return new MobyDataObject[0]; + } }catch(javax.xml.xpath.XPathExpressionException xpe){ System.err.println( "Warning: Cannot select nodes due to exception "+ "in XPath expression:" + xpe); @@ -1392,10 +1379,7 @@ Map membersMap, String articleName){ //mobyObj<--mobyNamespaces //System.out.println("xpath addMapping: " + xpath_exp); try{ - XPath xpath = new XPath(xpath_exp, - null, // SourceLocator locator, - nsContext, //need to use the default setting - XPath.SELECT); + XPathExpression xpath = commonXPath.compile(xpath_exp); // Base object if(mobyDataType == null || mobyDataType.length() == 0){ @@ -1445,19 +1429,6 @@ urlRegexMap.clear(); } - public void deleteXPathMapping(String xpath_exp){ - //System.out.println("the number of key-value mappings in this map before deleting: " + map.size()); - Set keys = xpathMap.keySet(); - Iterator it = keys.iterator(); - while(it.hasNext()) //map still has untraversed entry - { - XPath xpath = (XPath) it.next(); //Xpath obj. fr map //use an iterator - if(xpath.getPatternString().equals(xpath_exp)) - xpathMap.remove(xpath); - } - //System.out.println("the number of key-value mappings in this map: " + map.size()); - } - /** * Indicates whether at least one production rule exists for the data type or one of its children. */ From gordonp at dev.open-bio.org Mon Jan 14 23:00:45 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 14 Jan 2008 18:00:45 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801142300.m0EN0jwQ009062@dev.open-bio.org> gordonp Mon Jan 14 18:00:44 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test In directory dev.open-bio.org:/tmp/cvs-serv8988/src/main/ca/ucalgary/seahawk/gui/test Modified Files: MobyContentGUITestCase.java Log Message: Updates for javax.xml.xpath support rather than Aapache Xalan moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test MobyContentGUITestCase.java,1.2,1.3 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test/MobyContentGUITestCase.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test/MobyContentGUITestCase.java 2006/10/25 13:54:50 1.2 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test/MobyContentGUITestCase.java 2008/01/14 23:00:44 1.3 @@ -132,15 +132,17 @@ // work out, in which case we can check what services we can run org.w3c.dom.Node context_node = null; org.w3c.dom.Node doc_root = domDoc.getDocumentElement(); - org.apache.xpath.objects.XObject xobject = null; + Object xobject = null; try{ - xobject = org.apache.xpath.XPathAPI.eval(doc_root, testNode); - if(xobject == null || !(xobject instanceof org.apache.xpath.objects.XNodeSet)){ + xobject = javax.xml.xpath.XPathFactory.newInstance().newXPath().evaluate(testNode, + doc_root, + javax.xml.xpath.XPathConstants.NODESET); + if(xobject == null || !(xobject instanceof org.w3c.dom.NodeList)){ fail("The returned value from running context node specifier " + "(" + testNode + ") was not a XNodeSet as expected, cannot test MobyClient test" + " without a context node"); } - org.w3c.dom.NodeList result = ((org.apache.xpath.objects.XNodeSet) xobject).nodelist(); + org.w3c.dom.NodeList result = (org.w3c.dom.NodeList) xobject; System.out.println("There are " + result.getLength() + " instances of " + testNode + " in the document"); if(result.getLength() == 0){ @@ -151,20 +153,22 @@ // Take the first node context node of the right type that we find in the document context_node = result.item(0); System.out.println("Context node ID: " + ((org.w3c.dom.Element) context_node).getAttribute("element_id")); - }catch(javax.xml.transform.TransformerException te){ + }catch(javax.xml.xpath.XPathExpressionException xpe){ fail("The context node specifier XPath (" + testNode + - ") could not be evaluated, cannot test MobyClient without a context: " + te); + ") could not be evaluated, cannot test MobyClient without a context: " + xpe); } //tmp try{ - xobject = org.apache.xpath.XPathAPI.eval(context_node, testXPath); - if(xobject == null || !(xobject instanceof org.apache.xpath.objects.XNodeSet)){ + xobject = javax.xml.xpath.XPathFactory.newInstance().newXPath().evaluate(testXPath, + context_node, + javax.xml.xpath.XPathConstants.NODESET); + if(xobject == null || !(xobject instanceof org.w3c.dom.NodeList)){ fail("The returned value from running context node specifier " + "(" + testNode + ") was not a XNodeSet as expected, cannot test MobyClient test" + " without a context node"); } - org.w3c.dom.NodeList result = ((org.apache.xpath.objects.XNodeSet) xobject).nodelist(); + org.w3c.dom.NodeList result = (org.w3c.dom.NodeList) xobject; System.out.println("There are " + result.getLength() + " instances of " + testXPath + " in the context node"); if(result.getLength() == 0){ @@ -172,9 +176,9 @@ ") did not return any nodes under " + context_node + ". Cannot test MobyClient without a MOBY data node"); } - }catch(javax.xml.transform.TransformerException te){ + }catch(javax.xml.xpath.XPathExpressionException xpe){ fail("The MOBY node specifier XPath (" + testXPath + - ") could not be evaluated, cannot test MobyClient without a context: " + te); + ") could not be evaluated, cannot test MobyClient without a context: " + xpe); } //end tmp From gordonp at dev.open-bio.org Mon Jan 14 23:00:45 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Mon, 14 Jan 2008 18:00:45 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801142300.m0EN0jKf009084@dev.open-bio.org> gordonp Mon Jan 14 18:00:45 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui In directory dev.open-bio.org:/tmp/cvs-serv8988/src/main/ca/ucalgary/seahawk/gui Modified Files: MobyContentPane.java Log Message: Updates for javax.xml.xpath support rather than Aapache Xalan moby-live/Java/src/main/ca/ucalgary/seahawk/gui MobyContentPane.java,1.16,1.17 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentPane.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentPane.java 2008/01/07 22:19:14 1.16 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentPane.java 2008/01/14 23:00:45 1.17 @@ -12,12 +12,12 @@ import org.biomoby.shared.parser.ServiceException; import org.w3c.dom.*; +import org.xml.sax.InputSource; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.stream.*; -import org.apache.xpath.*; -import org.apache.xpath.objects.*; +import javax.xml.xpath.*; import javax.swing.*; import javax.swing.event.*; @@ -896,29 +896,26 @@ // Build and run the XPath statement Element mobyObject = null; NodeList idSearchResult = null; - XObject xobject = null; + Object xobject = null; try{ - xobject = XPathAPI.eval(domDoc, childXPath); + xobject = XPathFactory.newInstance().newXPath().evaluate(childXPath, + new InputSource(targetURL.openStream()), + XPathConstants.NODESET); // Check the results - if(xobject instanceof XNodeSet){ - idSearchResult = ((XNodeSet) xobject).nodelist(); - } - else if(xobject != null){ - logger.warn("Output of XPath was not a XNodeSet as expected, found " + - xobject.getClass().getName()); - return null; + if(xobject != null){ + idSearchResult = (NodeList) xobject; } else{ logger.warn("Could not find Moby object in document " + currentURL + - ", referred to by the reference ID in Moby link " + targetURL + - " (document changed?)"); + ", referred to by the reference ID in Moby link " + targetURL + + " (document changed?)"); return null; } } - catch(TransformerException te){// Syntax error + catch(Exception e){// Syntax error logger.error("Error: Could not search Moby data instance for XPath " + - childXPath + "):" + te); + childXPath + "):" + e); return null; } From gordonp at dev.open-bio.org Tue Jan 15 20:56:39 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 15 Jan 2008 15:56:39 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801152056.m0FKuckh015110@dev.open-bio.org> gordonp Tue Jan 15 15:56:38 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/service In directory dev.open-bio.org:/tmp/cvs-serv15074/src/main/org/biomoby/service Modified Files: MobyServlet.java Log Message: Removed unncessary properties, blank job on ping, and fixed typos moby-live/Java/src/main/org/biomoby/service MobyServlet.java,1.11,1.12 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/service/MobyServlet.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/service/MobyServlet.java 2008/01/07 22:16:35 1.11 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/service/MobyServlet.java 2008/01/15 20:56:38 1.12 @@ -555,14 +555,6 @@ return; } - // It's possible we got here due to an early error, in which - // case there will be no MobyData blocks in the response. Since - // this is technically illegal according to MOBY, throw a blank one - // in there are none at all - if(mobyResults.isEmpty()){ - mobyResults.put(new MobyDataJob()); - } - response.setContentType("text/xml"); try{ @@ -599,7 +591,6 @@ */ protected void addException(ServiceException se){ MobyContentInstance currentContent = getResponseContentInstance(); - (new Exception("createing exception " +se)).printStackTrace(); if(currentContent != null){ currentContent.addException(se); if(isInitialized){ @@ -612,10 +603,10 @@ } else{ if(isInitialized){ - log("Caught exception, but had no results contents to append it to", se); + log("Caught exception, but had no results contents to which it could be appended", se); } else{ - System.err.println("Caught exception, but had no results contents to append it to"); + System.err.println("Caught exception, but had no results contents to which it could be appended"); } } } @@ -670,10 +661,6 @@ */ public void init(){ try{ - if(System.getProperty("javax.xml.parsers.DocumentBuilderFactory") == null){ - System.setProperty("javax.xml.parsers.DocumentBuilderFactory", - "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"); - } DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); docBuilder = dbf.newDocumentBuilder(); @@ -688,12 +675,6 @@ "org.apache.axis.soap.MessageFactoryImpl"); } soapMessageFactory = MessageFactory.newInstance(); // Should find Axis by default - //log("SOAP Message Factory (when init is called) is " + soapMessageFactory); - - if(System.getProperty("javax.xml.soap.SOAPFactory") == null){ - System.setProperty("javax.xml.soap.SOAPFactory", - "org.apache.axis.soap.SOAPFactoryImpl"); - } SOAPFactory soapFactory = SOAPFactory.newInstance(); bodyContentsName = soapFactory.createName(getServiceName()+"Return", MobyPrefixResolver.MOBY_TRANSPORT_PREFIX, From gordonp at dev.open-bio.org Tue Jan 15 22:06:40 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 15 Jan 2008 17:06:40 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801152206.m0FM6eW7015466@dev.open-bio.org> gordonp Tue Jan 15 17:06:40 EST 2008 Update of /home/repository/moby/jars-archive/current In directory dev.open-bio.org:/tmp/cvs-serv15430 Modified Files: MobyServlet.war Log Message: Corrected ping response (was creating blank mobyData) jars-archive/current MobyServlet.war,1.11,1.12 =================================================================== RCS file: /home/repository/moby/jars-archive/current/MobyServlet.war,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 Binary files /home/repository/moby/jars-archive/current/MobyServlet.war 2007/12/17 17:45:13 1.11 and /home/repository/moby/jars-archive/current/MobyServlet.war 2008/01/15 22:06:39 1.12 differ rcsdiff: /home/repository/moby/jars-archive/current/MobyServlet.war: diff failed From gordonp at dev.open-bio.org Tue Jan 15 22:08:41 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 15 Jan 2008 17:08:41 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801152208.m0FM8fXF015542@dev.open-bio.org> gordonp Tue Jan 15 17:08:41 EST 2008 Update of /home/repository/moby/moby-live/Java/src/Clients In directory dev.open-bio.org:/tmp/cvs-serv15506/src/Clients Modified Files: MobyPinger.java Log Message: Update to allow test pinging of non-registered services moby-live/Java/src/Clients MobyPinger.java,1.2,1.3 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/Clients/MobyPinger.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Java/src/Clients/MobyPinger.java 2008/01/09 20:25:36 1.2 +++ /home/repository/moby/moby-live/Java/src/Clients/MobyPinger.java 2008/01/15 22:08:41 1.3 @@ -1,8 +1,10 @@ import org.biomoby.client.CentralImpl; import org.biomoby.client.MobyRequest; -import org.biomoby.shared.Central; -import org.biomoby.shared.MobyService; +import org.biomoby.shared.*; import org.biomoby.shared.data.*; +import org.biomoby.shared.parser.ServiceException; + +import java.net.*; import java.util.Iterator; /** @@ -14,69 +16,65 @@ public class MobyPinger{ public static void main(String[] args) { + long elapsedTimeMillis = 0; try{ if(args.length != 2){ - System.err.println("Usage: java MobyPinger serviceName serviceProvider"); + System.err.println("Usage: java MobyPinger serviceName (serviceProviderURI|serviceEndpointURL)"); System.exit(1); } Central worker = new CentralImpl (); - worker.setDebug(true); - // Make template for finding services - MobyService templateService = new MobyService("dummy"); - templateService.setName(args[0]); - templateService.setAuthority(args[1]); - - MobyService[] validServices = worker.findService(templateService); - - // Make sure we have a service to run for this input - if(validServices == null || validServices.length == 0){ - System.err.println("Could not find a valid service with name "+ - args[0] + " and provider " + args[1]); - System.exit(1); + MobyService service = null; + try{ + String serviceURLString = (new URL(args[1])).toString(); + service = new MobyService(args[0]); + service.setURL(serviceURLString); + } + catch(MalformedURLException murle){ } - else{ - System.out.println("Found a services"); + if(service == null){ + // Make template for finding services from the registry instead + MobyService templateService = new MobyService(args[0]); + templateService.setAuthority(args[1]); + + MobyService[] validServices = worker.findService(templateService); + + // Make sure we have a service to run for this input + if(validServices == null || validServices.length == 0){ + System.err.println("Could not find a valid service with name "+ + args[0] + " and provider " + args[1]); + System.exit(1); + } + service = validServices[0]; } MobyRequest mr = new MobyRequest(worker); // Set input and run the service - mr.setDebugMode(true); - mr.setService(validServices[0]); + mr.setService(service); mr.setInput(new MobyContentInstance()); // blank request + long startTimeMillis = System.currentTimeMillis(); MobyContentInstance responses = mr.invokeService(); + elapsedTimeMillis = System.currentTimeMillis()-startTimeMillis; // Process responses // The service invocation may have had many requests, there is a response // object for each request - Iterator i = responses.keySet().iterator(); - while(i.hasNext()){ - MobyDataJob responseObjects = responses.get(i.next()); - - // The response for a request may have many objects - Iterator i2 = responseObjects.values().iterator(); - while(i2.hasNext()){ - MobyDataInstance responseObject = i2.next(); - // The response objects may either be simple data, or data sets - if(responseObject instanceof MobyDataObject){ - System.out.println("Plain simple instance is "+((MobyDataInstance)responseObject).toXML()); - } - else if(responseObject instanceof MobyDataObjectSet){ - System.out.println("Found a collection:"); - MobyDataObject[] simples = ((MobyDataObjectSet) responseObject).getElementInstances(); - for(int j = 0; j < simples.length; j++){ - System.out.println(" Member instance is \n"+simples[j].toXML()); - } - } - else{ - System.out.println("Found funky data!" + responseObject); - } - } + for(ServiceException ex: responses.getExceptions()){ + if(ex.getSeverity() == ServiceException.ERROR){ + System.err.println("Exception in response from service: " + ex); + System.exit(1); + } + } + if(responses.keySet().size() != 0){ + System.err.println("Response from service was not blank as expected:"); + MobyDataUtils.toXMLDocument(System.err, responses); + System.exit(1); } }catch(Exception e){ - System.out.println("Problem: "+e); - e.printStackTrace(); + System.out.println("Problem while running ping: "+e); + System.exit(1); } + System.err.println("Ping successful, elapsed time for call was " + elapsedTimeMillis + "ms"); } } From kawas at dev.open-bio.org Wed Jan 16 21:46:21 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Wed, 16 Jan 2008 16:46:21 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801162146.m0GLkLsL018325@dev.open-bio.org> kawas Wed Jan 16 16:46:21 EST 2008 Update of /home/repository/moby/moby-live/Docs/MOBY-S_API In directory dev.open-bio.org:/tmp/cvs-serv18270/Docs/MOBY-S_API Modified Files: RegistryScripts.html Log Message: added a config parameter so that users dont have to modify the script everytime a new update occurs moby-live/Docs/MOBY-S_API RegistryScripts.html,1.5,1.6 =================================================================== RCS file: /home/repository/moby/moby-live/Docs/MOBY-S_API/RegistryScripts.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Docs/MOBY-S_API/RegistryScripts.html 2008/01/10 15:25:16 1.5 +++ /home/repository/moby/moby-live/Docs/MOBY-S_API/RegistryScripts.html 2008/01/16 21:46:21 1.6 @@ -307,6 +307,13 @@

    This can be any directory, including a temporary one. Make sure that the scripts invoked through apache and from the command line can read/write to it.
    Note: the service tester does not currently work on windows!

    + + rdf_cache +

    The full readable/writable path that the RESOURCES script can place cached RDF related files.

    +

    This can be any directory, including a temporary one. Make sure that the scripts invoked through apache and from the command line can read/write to it.
    +

    + +

     

  • To the [mobyobject] section of this file, please ensure that the following parameters are set:
  • From kawas at dev.open-bio.org Wed Jan 16 21:46:21 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Wed, 16 Jan 2008 16:46:21 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801162146.m0GLkLXC018305@dev.open-bio.org> kawas Wed Jan 16 16:46:21 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv18270/Perl/scripts Modified Files: RESOURCES Log Message: added a config parameter so that users dont have to modify the script everytime a new update occurs moby-live/Perl/scripts RESOURCES,1.4,1.5 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/RESOURCES,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- /home/repository/moby/moby-live/Perl/scripts/RESOURCES 2007/12/21 15:41:19 1.4 +++ /home/repository/moby/moby-live/Perl/scripts/RESOURCES 2008/01/16 21:46:21 1.5 @@ -33,9 +33,10 @@ use MOBY::RDF::Ontologies::Cache::ObjectCache; use MOBY::RDF::Ontologies::Cache::NamespaceCache; use MOBY::RDF::Ontologies::Cache::ServiceTypeCache; +use MOBY::Config; # your cache dir -my $dir = "/tmp/"; +my $dir = MOBY::Config->new->{mobycentral}->{rdf_cache} || "/tmp/"; # should we use caching? my $useCache = 1; From gordonp at dev.open-bio.org Wed Jan 16 22:34:03 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Wed, 16 Jan 2008 17:34:03 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801162234.m0GMY3Kx018436@dev.open-bio.org> gordonp Wed Jan 16 17:34:03 EST 2008 Update of /home/repository/moby/jars-archive/current In directory dev.open-bio.org:/tmp/cvs-serv18400 Modified Files: activation.jar Added Files: FastInfoset.jar http.jar jaxb-api.jar jaxb-impl.jar jaxb-xjc.jar jaxws-api.jar jaxws-rt.jar jaxws-tools.jar jsr173_api.jar jsr181-api.jar jsr250-api.jar resolver.jar saaj-api.jar saaj-impl.jar sjsxp.jar stax-ex.jar streambuffer.jar Log Message: JARs update for use of JAX-WS by Java 5 (Java6u4+ has it as part of the JRE) jars-archive/current FastInfoset.jar,NONE,1.1 http.jar,NONE,1.1 jaxb-api.jar,NONE,1.1 jaxb-impl.jar,NONE,1.1 jaxb-xjc.jar,NONE,1.1 jaxws-api.jar,NONE,1.1 jaxws-rt.jar,NONE,1.1 jaxws-tools.jar,NONE,1.1 jsr173_api.jar,NONE,1.1 jsr181-api.jar,NONE,1.1 jsr250-api.jar,NONE,1.1 resolver.jar,NONE,1.1 saaj-api.jar,NONE,1.1 saaj-impl.jar,NONE,1.1 sjsxp.jar,NONE,1.1 stax-ex.jar,NONE,1.1 streambuffer.jar,NONE,1.1 activation.jar,1.2,1.3 =================================================================== RCS file: /home/repository/moby/jars-archive/current/activation.jar,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 Binary files /home/repository/moby/jars-archive/current/activation.jar 2005/09/04 13:15:54 1.2 and /home/repository/moby/jars-archive/current/activation.jar 2008/01/16 22:34:03 1.3 differ rcsdiff: /home/repository/moby/jars-archive/current/activation.jar: diff failed From kawas at dev.open-bio.org Thu Jan 17 16:17:55 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Thu, 17 Jan 2008 11:17:55 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801171617.m0HGHtix021133@dev.open-bio.org> kawas Thu Jan 17 11:17:55 EST 2008 Update of /home/repository/moby/moby-live/Perl/scripts In directory dev.open-bio.org:/tmp/cvs-serv21098/Perl/scripts Modified Files: OntologyServer.cgi Log Message: changed the header to /usr/bin/perl from just perl to make it more consistent with the other scripts in this folder. moby-live/Perl/scripts OntologyServer.cgi,1.6,1.7 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/scripts/OntologyServer.cgi,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- /home/repository/moby/moby-live/Perl/scripts/OntologyServer.cgi 2005/11/22 21:33:23 1.6 +++ /home/repository/moby/moby-live/Perl/scripts/OntologyServer.cgi 2008/01/17 16:17:55 1.7 @@ -1,4 +1,4 @@ -#!perl -w +#!/usr/bin/perl -w use CGI qw/:standard/; use MOBY::OntologyServer; From gordonp at dev.open-bio.org Thu Jan 17 17:06:43 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Thu, 17 Jan 2008 12:06:43 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801171706.m0HH6hep022563@dev.open-bio.org> gordonp Thu Jan 17 12:06:43 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client In directory dev.open-bio.org:/tmp/cvs-serv22527/src/main/org/biomoby/client Modified Files: AsyncClient.java Log Message: Gave proper XML namespace definitions for a couple of WSRP tags (JAX-WS loaded xerces created errors) moby-live/Java/src/main/org/biomoby/client AsyncClient.java,1.2,1.3 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/AsyncClient.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/AsyncClient.java 2007/05/31 13:42:51 1.2 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/AsyncClient.java 2008/01/17 17:06:43 1.3 @@ -178,7 +178,9 @@ MobyPrefixResolver.WSRP_NAMESPACE)); // Add content for(String queryId: queryIds){ - bodyElement.addChildElement(MobyPrefixResolver.WSRP_PREFIX+":"+WSRP_PROPERTY_TAG_NAME) + bodyElement.addChildElement(envelope.createName(WSRP_PROPERTY_TAG_NAME, + MobyPrefixResolver.WSRP_PREFIX, + MobyPrefixResolver.WSRP_NAMESPACE)) .addTextNode("status_" + queryId); } @@ -378,7 +380,9 @@ MobyPrefixResolver.WSRP_NAMESPACE)); // Add content for(String queryId: queryIds){ - bodyElement.addChildElement(MobyPrefixResolver.WSRP_PREFIX+":"+WSRP_PROPERTY_TAG_NAME) + bodyElement.addChildElement(envelope.createName(WSRP_PROPERTY_TAG_NAME, + MobyPrefixResolver.WSRP_PREFIX, + MobyPrefixResolver.WSRP_NAMESPACE)) .addTextNode(MOBY_RESULT_PROPERTY_PREFIX + queryId); } From gordonp at dev.open-bio.org Thu Jan 17 17:08:12 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Thu, 17 Jan 2008 12:08:12 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801171708.m0HH8CtD022689@dev.open-bio.org> gordonp Thu Jan 17 12:08:12 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/util In directory dev.open-bio.org:/tmp/cvs-serv22657/src/main/org/biomoby/client/util Added Files: Base64Coder.java Log Message: Added utility class for base64 encode/decode needed for binary data representation in Moby moby-live/Java/src/main/org/biomoby/client/util Base64Coder.java,NONE,1.1 From gordonp at dev.open-bio.org Thu Jan 17 17:12:00 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Thu, 17 Jan 2008 12:12:00 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801171712.m0HHC0Oq022835@dev.open-bio.org> gordonp Thu Jan 17 12:11:59 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data In directory dev.open-bio.org:/tmp/cvs-serv22799/src/main/org/biomoby/shared/data Modified Files: MobyDataBytes.java Log Message: Changed Base64 coding from Axis util to org.biomoby.client.util.Base64Coder moby-live/Java/src/main/org/biomoby/shared/data MobyDataBytes.java,1.8,1.9 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataBytes.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataBytes.java 2007/11/30 17:42:15 1.8 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/data/MobyDataBytes.java 2008/01/17 17:11:59 1.9 @@ -154,7 +154,7 @@ if(bytes == null){ throw new MobyException("The given byte data to Base64 encode was null"); } - String contents = org.apache.axis.encoding.Base64.encode(bytes); + String contents = new String(org.biomoby.client.util.Base64Coder.encode(bytes)); if(contents == null){ throw new MobyException("The byte contents could not be encoded in Base64 format"); } @@ -211,6 +211,6 @@ * The same as getObject, but doesn't require a cast of the result */ public byte[] getBytes(){ - return org.apache.axis.encoding.Base64.decode(((MobyDataString) get(ENCODED_MEMBER_NAME)).getValue()); + return org.biomoby.client.util.Base64Coder.decode(((MobyDataString) get(ENCODED_MEMBER_NAME)).getValue()); } } From gordonp at dev.open-bio.org Thu Jan 17 17:12:47 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Thu, 17 Jan 2008 12:12:47 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801171712.m0HHCl6q022901@dev.open-bio.org> gordonp Thu Jan 17 12:12:47 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services In directory dev.open-bio.org:/tmp/cvs-serv22865/src/main/ca/ucalgary/seahawk/services Modified Files: MobyComplexBuilder.java Log Message: Changed Base64 coding from Axis util to org.biomoby.client.util.Base64Coder moby-live/Java/src/main/ca/ucalgary/seahawk/services MobyComplexBuilder.java,1.14,1.15 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyComplexBuilder.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyComplexBuilder.java 2007/12/17 18:39:30 1.14 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/MobyComplexBuilder.java 2008/01/17 17:12:47 1.15 @@ -1,5 +1,6 @@ package ca.ucalgary.seahawk.services; +import org.biomoby.client.util.Base64Coder; import org.biomoby.shared.*; import org.biomoby.shared.data.MobyDataBytes; import org.biomoby.shared.data.MobyDataComposite; @@ -471,7 +472,7 @@ if(isBinary){ //(new Exception("Base 64 encoding")).printStackTrace(); - result = org.apache.axis.encoding.Base64.encode(data == null ? result.getBytes() : resultBytes); + result = new String(Base64Coder.encode(data == null ? result.getBytes() : resultBytes)); } else{ //System.err.println("NO BASE64 (" + MobyClient.ENCODING_ATTR_BASE64_VAL + From kawas at dev.open-bio.org Tue Jan 22 15:12:26 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Tue, 22 Jan 2008 10:12:26 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801221512.m0MFCQen007259@dev.open-bio.org> kawas Tue Jan 22 10:12:26 EST 2008 Update of /home/repository/moby/moby-live/Docs/Schemas/RegistryAPI/registerServiceType In directory dev.open-bio.org:/tmp/cvs-serv7224/Docs/Schemas/RegistryAPI/registerServiceType Modified Files: registerServiceType.xsd Log Message: fixed the node labelled objectType. SHould have read serviceType. moby-live/Docs/Schemas/RegistryAPI/registerServiceType registerServiceType.xsd,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Docs/Schemas/RegistryAPI/registerServiceType/registerServiceType.xsd,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Docs/Schemas/RegistryAPI/registerServiceType/registerServiceType.xsd 2007/08/27 19:40:14 1.1 +++ /home/repository/moby/moby-live/Docs/Schemas/RegistryAPI/registerServiceType/registerServiceType.xsd 2008/01/22 15:12:26 1.2 @@ -1,81 +1,77 @@ - - - - - - Used for registering a new service class into the - service ontology - - - - - - - - - - - a unique name for your new service type - - - - - - - a description for your service type - - - - - - - - - - - - - - - - - - - - - - - - - The provider URI - - - - - - - - - - - Your email address - - - - - - - - - + + + + + + Used for registering a new service class into the + service ontology + + + + + + + + + + + a unique name for your new service type + + + + + + + a description for your service type + + + + + + + + + + + + + + + + + + + + + + The provider URI + + + + + + + + + + + Your email address + + + + + + + + + \ No newline at end of file From gordonp at dev.open-bio.org Tue Jan 22 22:22:12 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 22 Jan 2008 17:22:12 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801222222.m0MMMCPn008101@dev.open-bio.org> gordonp Tue Jan 22 17:22:12 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared In directory dev.open-bio.org:/tmp/cvs-serv8061/src/main/org/biomoby/shared Modified Files: MobyPrefixResolver.java NamespaceContextImpl.java Log Message: Added XHTML support moby-live/Java/src/main/org/biomoby/shared MobyPrefixResolver.java,1.9,1.10 NamespaceContextImpl.java,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrefixResolver.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrefixResolver.java 2007/03/30 19:48:12 1.9 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/MobyPrefixResolver.java 2008/01/22 22:22:12 1.10 @@ -40,7 +40,8 @@ public static final String WS_ADDRESSING_NAMESPACE = "http://schemas.xmlsoap.org/ws/2004/03/addressing"; public static final String WSRP_PREFIX = "wsrp"; public static final String WSRP_NAMESPACE = "http://docs.oasis-open.org/wsrf/rp-2"; - + public static final String XHTML_PREFIX = "xhtml"; + public static final String XHTML_NAMESPACE = "http://www.w3.org/1999/xhtml"; /** * We don't really implement this as it can be extremely complicated. * =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/NamespaceContextImpl.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/NamespaceContextImpl.java 2008/01/14 23:00:44 1.1 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/shared/NamespaceContextImpl.java 2008/01/22 22:22:12 1.2 @@ -28,8 +28,9 @@ prefixes.put(MobyPrefixResolver.XSI_NAMESPACE2001, MobyPrefixResolver.XSI2001_PREFIX); prefixes.put(MobyPrefixResolver.SOAP_ENC_NAMESPACE, MobyPrefixResolver.SOAP_ENC_PREFIX); prefixes.put(MobyPrefixResolver.WS_ADDRESSING_NAMESPACE, MobyPrefixResolver.WS_ADDRESSING_PREFIX); - prefixes.put(MobyPrefixResolver.WSRP_NAMESPACE, MobyPrefixResolver.WSRP_PREFIX); - + prefixes.put(MobyPrefixResolver.WSRP_NAMESPACE, MobyPrefixResolver.WSRP_PREFIX); + prefixes.put(MobyPrefixResolver.XHTML_NAMESPACE, MobyPrefixResolver.XHTML_PREFIX); + // Reverse map prefix -> nsURI nsURIs.put(MobyPrefixResolver.XSI_PREFIX, MobyPrefixResolver.XSI_NAMESPACE2001); for(Map.Entry entry: prefixes.entrySet()){ From gordonp at dev.open-bio.org Wed Jan 23 18:59:19 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Wed, 23 Jan 2008 13:59:19 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801231859.m0NIxJjv011860@dev.open-bio.org> gordonp Wed Jan 23 13:59:19 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client In directory dev.open-bio.org:/tmp/cvs-serv11824/src/main/org/biomoby/client Modified Files: MobyRequest.java Log Message: Fixed sync call to async service moby-live/Java/src/main/org/biomoby/client MobyRequest.java,1.35,1.36 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/08 15:26:55 1.35 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/23 18:59:19 1.36 @@ -272,7 +272,7 @@ * @throws SOAPException i.e. there was a problem with the underlying transaction/transport layer */ public MobyContentInstance invokeService() throws Exception, MobyException, SOAPException, NoSuccessException{ - return invokeService(inputData, (StringBuffer) null); + return mobyService.isAsynchronous() ? invokeService(inputData, new StringBuffer()) : invokeService(inputData, (StringBuffer) null); } // Used internally for asynchronous thread calls that all need the XML data From pieter at dev.open-bio.org Thu Jan 24 18:33:32 2008 From: pieter at dev.open-bio.org (Pieter Neerincs) Date: Thu, 24 Jan 2008 13:33:32 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801241833.m0OIXVGV016722@dev.open-bio.org> pieter Thu Jan 24 13:33:31 EST 2008 Update of /home/repository/moby/moby-live/Docs/MOBY-S_API In directory dev.open-bio.org:/tmp/cvs-serv16683 Modified Files: DataClassOntology.html ObjectStructure.html Log Message: Synchronised docs with BioMoby 1.0 manuscript: Changed API description of HAS and HASA relationship to allow zero instances of an object. moby-live/Docs/MOBY-S_API DataClassOntology.html,1.10,1.11 ObjectStructure.html,1.10,1.11 =================================================================== RCS file: /home/repository/moby/moby-live/Docs/MOBY-S_API/DataClassOntology.html,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- /home/repository/moby/moby-live/Docs/MOBY-S_API/DataClassOntology.html 2007/07/31 13:48:30 1.10 +++ /home/repository/moby/moby-live/Docs/MOBY-S_API/DataClassOntology.html 2008/01/24 18:33:31 1.11 @@ -63,7 +63,7 @@ In the BioMOBY system, all datatypes (Classes) are defined in an ontology, where each node represents a named Class, and each arc represents one of two -relationship types - ISA, or HASA - indicating inheritence or +relationship types - ISA, or HASA / HAS - indicating inheritence or container-relationship respectively. The root of the Class ontology is "Object" as defined above; all data Classes inherit from the "Object" Class, and (with the exception of the These primitive types are special as they are the only cases where the content of an element is meant to be interpreted by the client or service. -New classes MUST NOT inherit from the Primitive Classes. To obtain +New classes MUST NOT inherit from the Primitive Classes. To obtain content in another class, you must be a container of a primitive class. The two relationship types - HASA and HAS - are used to indicate container relationships, and the contained object is "labelled" using the articleName attribute to indicate its role in that object, or more precisely, its semantic relationship with the -parent object. HASA indicates that a single instance of the object is -contained, while HAS indicates that multiple instances of the object +parent object. HASA indicates that a maximally a single instance of the object is +contained, while HAS indicates that zero or more instances of the object are contained. The following RDF triple describes =================================================================== RCS file: /home/repository/moby/moby-live/Docs/MOBY-S_API/ObjectStructure.html,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- /home/repository/moby/moby-live/Docs/MOBY-S_API/ObjectStructure.html 2007/02/22 16:22:24 1.10 +++ /home/repository/moby/moby-live/Docs/MOBY-S_API/ObjectStructure.html 2008/01/24 18:33:31 1.11 @@ -61,26 +61,27 @@ BioMOBY Object Structure
    -It is our intention that MOBY Objects should be as lightweight as -possible. This not only reduces bandwith, speeds up service response -time, and reduces server load, it also reduces conflict that arises -from disagreement over the structure of more complex objects. More importantly, however, it results in - the creation of Services that have near-transparent semantics. Because of the limited - Service Ontology, the functionality of BioMoby services must be clearly - described in a single word. Generally speaking, if an Object contains - "lots of information", the Service that generates it will be quite complex. - Complex services cannot be described in the BioMoby system. As such, BioMoby - services attempt to be highly modular - complex data is derived by accessing - a broader arrange of lightweight services and integrating this data client-side, - in contrast to accessing a "one service provides all" Service whose output consists of many - data-types. +It is our intention that MOBY Objects should be as lightweight as +possible. This not only reduces bandwith, speeds up service response +time, and reduces server load, it also reduces conflict that arises +from disagreement over the structure of more complex objects. +More importantly, however, it results in the creation of Services that +have near-transparent semantics. Because of the limited +Service Ontology, the functionality of BioMoby services must be clearly +described in a single word. Generally speaking, if an Object contains +"lots of information", the Service that generates it will be quite complex. +Complex services cannot be described in the BioMoby system. As such, BioMoby +services attempt to be highly modular - complex data is derived by accessing +a broader arrange of lightweight services and integrating this data client-side, +in contrast to accessing a "one service provides all" Service whose output +consists of many data-types.

    MOBY Object structure is inferred by looking up the Object Class in the Class Ontology. Each node in the ontology is a different Class Name, and each arc is a relationship of the type ISA (inheritance), -HASA (container of exactly one of the given class), or HAS (container -of one or more of the given class). ISA relationships are guaranteed +HASA (container of maximal one object of the given class), or HAS (container +of zero or more of the given class). ISA relationships are guaranteed to be acyclic.

    @@ -89,7 +90,7 @@ All MOBY Objects inherit from the root "Object" Class, and since complex objects can only be derived through inheritence from (ISA), or -combination of (HASA) existing objects, every sub-object in a complex +combination of (HASA/HAS) existing objects, every sub-object in a complex object is, itself, a valid MOBY Object which inherits directly or indirectly from the "Object" Class.

    From gordonp at dev.open-bio.org Sat Jan 26 16:42:20 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Sat, 26 Jan 2008 11:42:20 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801261642.m0QGgJlw021042@dev.open-bio.org> gordonp Sat Jan 26 11:42:19 EST 2008 Update of /home/repository/moby/jars-archive/current In directory dev.open-bio.org:/tmp/cvs-serv21010 Added Files: commons-io-1.3.1.jar jodconverter-2.2.1.jar juh-2.3.0.jar jurt-2.3.0.jar ridl-2.3.0.jar slf4j-api-1.4.3.jar slf4j-jdk14-1.4.3.jar unoil-2.3.0.jar Log Message: Runtime jars for JODConverter jars-archive/current commons-io-1.3.1.jar,NONE,1.1 jodconverter-2.2.1.jar,NONE,1.1 juh-2.3.0.jar,NONE,1.1 jurt-2.3.0.jar,NONE,1.1 ridl-2.3.0.jar,NONE,1.1 slf4j-api-1.4.3.jar,NONE,1.1 slf4j-jdk14-1.4.3.jar,NONE,1.1 unoil-2.3.0.jar,NONE,1.1 From gordonp at dev.open-bio.org Sat Jan 26 16:43:00 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Sat, 26 Jan 2008 11:43:00 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801261643.m0QGh0sM021105@dev.open-bio.org> gordonp Sat Jan 26 11:43:00 EST 2008 Update of /home/repository/moby/jars-archive/current In directory dev.open-bio.org:/tmp/cvs-serv21072 Removed Files: jodconverter-2.2.0.jar Log Message: Replaced with 2.2.1 jars-archive/current jodconverter-2.2.0.jar,1.1,NONE rcsdiff: /home/repository/moby/jars-archive/current/RCS/jodconverter-2.2.0.jar,v: No such file or directory From gordonp at dev.open-bio.org Sat Jan 26 17:53:55 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Sat, 26 Jan 2008 12:53:55 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801261753.m0QHrtju021262@dev.open-bio.org> gordonp Sat Jan 26 12:53:55 EST 2008 Update of /home/repository/moby/moby-live/Java/xmls In directory dev.open-bio.org:/tmp/cvs-serv21226/xmls Modified Files: libraries.xml Log Message: Added JAX-WS and full JODConverter dependencies moby-live/Java/xmls libraries.xml,1.17,1.18 =================================================================== RCS file: /home/repository/moby/moby-live/Java/xmls/libraries.xml,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- /home/repository/moby/moby-live/Java/xmls/libraries.xml 2007/12/06 20:23:49 1.17 +++ /home/repository/moby/moby-live/Java/xmls/libraries.xml 2008/01/26 17:53:55 1.18 @@ -21,7 +21,7 @@ - + @@ -35,7 +35,6 @@ - @@ -58,7 +57,36 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -76,8 +104,6 @@ - - @@ -114,6 +140,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -137,6 +188,7 @@ + @@ -166,8 +218,6 @@ - - @@ -196,4 +246,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + From gordonp at dev.open-bio.org Sat Jan 26 17:54:59 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Sat, 26 Jan 2008 12:54:59 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801261754.m0QHsxDM021306@dev.open-bio.org> gordonp Sat Jan 26 12:54:59 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client In directory dev.open-bio.org:/tmp/cvs-serv21270/src/main/org/biomoby/client Modified Files: MobyRequest.java Log Message: Fixed async services' synchronous invokeService() call support, really this time moby-live/Java/src/main/org/biomoby/client MobyRequest.java,1.36,1.37 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/23 18:59:19 1.36 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/MobyRequest.java 2008/01/26 17:54:59 1.37 @@ -334,7 +334,7 @@ } } - if(newDataAvailable.size() > 0 && handler != null){ + if(newDataAvailable.size() > 0){ // Parse and merge the new data into the existing contents InputStream resultStream = AsyncClient.getResultStream(epr, newDataAvailable); Element mobyDOM = asyncSoapTextToMobyDOM(resultStream); @@ -345,16 +345,18 @@ } // Inform the handler that some data has been added to the response (for incremental display?) - MobyRequestEvent mre = new MobyRequestEvent(finalContents, this, mservice, null, requestId); - StringWriter xmlWriter = new StringWriter(); - MobyDataUtils.toXMLDocument(xmlWriter, finalContents); - - mre.setContentsXML(xmlWriter.toString()); - if(!queryIDs.isEmpty()){ - // Send an update event only if we aren't finished yet. - // If we are finished, the client is going to get this event as the - // invocation thread finishes up (no need to double up). - handler.processEvent(mre); + if(handler != null){ + MobyRequestEvent mre = new MobyRequestEvent(finalContents, this, mservice, null, requestId); + StringWriter xmlWriter = new StringWriter(); + MobyDataUtils.toXMLDocument(xmlWriter, finalContents); + + mre.setContentsXML(xmlWriter.toString()); + if(!queryIDs.isEmpty()){ + // Send an update event only if we aren't finished yet. + // If we are finished, the client is going to get this event as the + // invocation thread finishes up (no need to double up). + handler.processEvent(mre); + } } } } From gordonp at dev.open-bio.org Sat Jan 26 17:56:35 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Sat, 26 Jan 2008 12:56:35 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801261756.m0QHuZlv021369@dev.open-bio.org> gordonp Sat Jan 26 12:56:35 EST 2008 Update of /home/repository/moby/jars-archive/current In directory dev.open-bio.org:/tmp/cvs-serv21336 Removed Files: commons-io-1.0.jar Log Message: Replaced with 1.3.1 jars-archive/current commons-io-1.0.jar,1.1,NONE rcsdiff: /home/repository/moby/jars-archive/current/RCS/commons-io-1.0.jar,v: No such file or directory From gordonp at dev.open-bio.org Tue Jan 29 19:11:11 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 14:11:11 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801291911.m0TJBBSI010397@dev.open-bio.org> gordonp Tue Jan 29 14:11:10 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/util In directory dev.open-bio.org:/tmp/cvs-serv10365/src/main/ca/ucalgary/services/util Added Files: XHTMLForm.java Log Message: First, untested version of MOBY HTML wrapping utility committed most for backup purposes. Not for general use yet. moby-live/Java/src/main/ca/ucalgary/services/util XHTMLForm.java,NONE,1.1 From gordonp at dev.open-bio.org Tue Jan 29 21:12:46 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 16:12:46 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801292112.m0TLCkmv010581@dev.open-bio.org> gordonp Tue Jan 29 16:12:46 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow In directory dev.open-bio.org:/tmp/cvs-serv10546/minnow Log Message: Directory /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow added to the repository moby-live/Java/src/main/ca/ucalgary/minnow - New directory rcsdiff: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow/RCS/-,v: No such file or directory rcsdiff: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow/RCS/New,v: No such file or directory rcsdiff: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow/RCS/directory,v: No such file or directory From gordonp at dev.open-bio.org Tue Jan 29 21:58:12 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 16:58:12 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801292158.m0TLwCPb010714@dev.open-bio.org> gordonp Tue Jan 29 16:58:11 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/util In directory dev.open-bio.org:/tmp/cvs-serv10678/src/main/org/biomoby/client/util Modified Files: Base64Coder.java Log Message: Made decoder whitespace-tolerant of input Strings moby-live/Java/src/main/org/biomoby/client/util Base64Coder.java,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/util/Base64Coder.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/util/Base64Coder.java 2008/01/17 17:08:12 1.1 +++ /home/repository/moby/moby-live/Java/src/main/org/biomoby/client/util/Base64Coder.java 2008/01/29 21:58:11 1.2 @@ -101,7 +101,7 @@ * @throws IllegalArgumentException if the input is not valid Base64 encoded data. */ public static byte[] decode (String s) { - return decode(s.toCharArray()); } + return decode(s.replaceAll("\\s+", "").toCharArray()); } /** * Decodes a byte array from Base64 format. From gordonp at dev.open-bio.org Wed Jan 30 00:03:26 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:03:26 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300003.m0U03QxM010856@dev.open-bio.org> gordonp Tue Jan 29 19:03:26 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/resources In directory dev.open-bio.org:/tmp/cvs-serv10820/src/main/ca/ucalgary/services/resources Modified Files: mobyRules.xsl Log Message: Support for EMBOSS 'sequence' type moby-live/Java/src/main/ca/ucalgary/services/resources mobyRules.xsl,1.3,1.4 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/resources/mobyRules.xsl,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/resources/mobyRules.xsl 2007/12/17 21:53:14 1.3 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/services/resources/mobyRules.xsl 2008/01/30 00:03:26 1.4 @@ -57,6 +57,9 @@ + + + @@ -81,6 +84,10 @@ + + + + - (?:DOI|doi):?\s*(10\.\d+/[^%"\#\x20\t\r\n]+) + (?:DOI|doi|[Dd]igital\s+[Oo]bject\s+[Ii][Dd](?:entifier))\s*:?\s*(10\.\d+/[^%"\#\x20\t\r\n]+) $1 From gordonp at dev.open-bio.org Wed Jan 30 00:04:56 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:04:56 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300004.m0U04uRP010944@dev.open-bio.org> gordonp Tue Jan 29 19:04:56 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui In directory dev.open-bio.org:/tmp/cvs-serv10908/src/main/ca/ucalgary/seahawk/gui Modified Files: MobyContentGUI.java Log Message: Got rid of Xerces dependency moby-live/Java/src/main/ca/ucalgary/seahawk/gui MobyContentGUI.java,1.15,1.16 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentGUI.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentGUI.java 2007/12/07 20:34:27 1.15 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/MobyContentGUI.java 2008/01/30 00:04:56 1.16 @@ -844,12 +844,6 @@ // etc. by forcing resource loading for the only supported locale, _en java.util.Locale.setDefault(java.util.Locale.ENGLISH); - // Unless overridden on the command line, use xerces - if(System.getProperty("javax.xml.parsers.DocumentBuilderFactory") == null){ - System.setProperty("javax.xml.parsers.DocumentBuilderFactory", - "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"); - } - // Unless overridden on the command line, use xalan if(System.getProperty("javax.xml.transform.TransformerFactory") == null){ System.setProperty("javax.xml.transform.TransformerFactory", From gordonp at dev.open-bio.org Wed Jan 30 00:06:48 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:06:48 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300006.m0U06mX3010990@dev.open-bio.org> gordonp Tue Jan 29 19:06:48 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test In directory dev.open-bio.org:/tmp/cvs-serv10954/src/main/ca/ucalgary/seahawk/gui/test Modified Files: SeahawkTestCase.java Log Message: Added placeholders for JODConverter tests moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test SeahawkTestCase.java,1.9,1.10 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test/SeahawkTestCase.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test/SeahawkTestCase.java 2007/08/01 18:18:27 1.9 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/gui/test/SeahawkTestCase.java 2008/01/30 00:06:48 1.10 @@ -28,6 +28,8 @@ */ public class SeahawkTestCase extends JFCTestCase{ + private final static String TEST_MS_WORD_FILE = "ca/ucalgary/seahawk/gui/test/perlregex.doc"; + private final static String TEST_MS_EXCEL_FILE = "ca/ucalgary/seahawk/gui/test/twohybrid_uetz.xls"; private final static String TEST_MOBYEX_XML = "ca/ucalgary/seahawk/gui/test/moby_exception.xml"; private final static String TEST_MOBY_XML = "ca/ucalgary/seahawk/gui/test/allDataTypes.xml"; private final static String TEST_EXTERNAL_URL = "http://www.google.com/"; @@ -936,6 +938,18 @@ tempFile.delete(); } + public void testWordFileConversion() throws Exception{ + + } + + public void testExcelFileConversion() throws Exception{ + + } + + public void testTeXFileConversion() throws Exception{ + + } + /** * @return a test suite for all the test methods of this test case. */ @@ -955,6 +969,9 @@ suite.addTest(new SeahawkTestCase("testHighlightOptions"));//done suite.addTest(new SeahawkTestCase("testUserPreferences"));//done suite.addTest(new SeahawkTestCase("testExternalBrowser"));//done + suite.addTest(new SeahawkTestCase("testWordFileConversion")); + suite.addTest(new SeahawkTestCase("testExcelFileConversion")); + suite.addTest(new SeahawkTestCase("testTeXFileConversion")); return suite; } From gordonp at dev.open-bio.org Wed Jan 30 00:08:49 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:08:49 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300008.m0U08n4V011097@dev.open-bio.org> gordonp Tue Jan 29 19:08:49 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util In directory dev.open-bio.org:/tmp/cvs-serv11064/src/main/ca/ucalgary/seahawk/util Removed Files: NamespaceContextImpl.java Log Message: Moved to org.biomoby.shared moby-live/Java/src/main/ca/ucalgary/seahawk/util NamespaceContextImpl.java,1.3,NONE rcsdiff: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/RCS/NamespaceContextImpl.java,v: No such file or directory From gordonp at dev.open-bio.org Wed Jan 30 00:10:15 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:10:15 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300010.m0U0AFeg011160@dev.open-bio.org> gordonp Tue Jan 29 19:10:15 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/test In directory dev.open-bio.org:/tmp/cvs-serv11127/src/main/ca/ucalgary/seahawk/services/test Removed Files: MobyRequestTestCase.java Log Message: Superfluous file removed moby-live/Java/src/main/ca/ucalgary/seahawk/services/test MobyRequestTestCase.java,1.1,NONE rcsdiff: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/services/test/RCS/MobyRequestTestCase.java,v: No such file or directory From gordonp at dev.open-bio.org Wed Jan 30 00:14:11 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:14:11 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300014.m0U0EBoa011248@dev.open-bio.org> gordonp Tue Jan 29 19:14:11 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow In directory dev.open-bio.org:/tmp/cvs-serv11216/src/main/ca/ucalgary/minnow Added Files: MinJarMaker.java Log Message: Moved MinJarMaker ('Minnow') to its own package, as it doesn't depend on Seahawk moby-live/Java/src/main/ca/ucalgary/minnow MinJarMaker.java,NONE,1.1 From gordonp at dev.open-bio.org Wed Jan 30 00:14:11 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:14:11 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300014.m0U0EBko011263@dev.open-bio.org> gordonp Tue Jan 29 19:14:11 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util In directory dev.open-bio.org:/tmp/cvs-serv11216/src/main/ca/ucalgary/seahawk/util Removed Files: MinJarMaker.java Log Message: Moved MinJarMaker ('Minnow') to its own package, as it doesn't depend on Seahawk moby-live/Java/src/main/ca/ucalgary/seahawk/util MinJarMaker.java,1.8,NONE rcsdiff: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/RCS/MinJarMaker.java,v: No such file or directory From gordonp at dev.open-bio.org Wed Jan 30 00:14:11 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:14:11 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300014.m0U0EBbB011285@dev.open-bio.org> gordonp Tue Jan 29 19:14:11 EST 2008 Update of /home/repository/moby/moby-live/Java/xmls In directory dev.open-bio.org:/tmp/cvs-serv11216/xmls Modified Files: seahawkBuild.xml Log Message: Moved MinJarMaker ('Minnow') to its own package, as it doesn't depend on Seahawk moby-live/Java/xmls seahawkBuild.xml,1.13,1.14 =================================================================== RCS file: /home/repository/moby/moby-live/Java/xmls/seahawkBuild.xml,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- /home/repository/moby/moby-live/Java/xmls/seahawkBuild.xml 2007/12/17 18:43:06 1.13 +++ /home/repository/moby/moby-live/Java/xmls/seahawkBuild.xml 2008/01/30 00:14:11 1.14 @@ -31,10 +31,10 @@ - - + + - + + @@ -96,12 +97,14 @@ + - - + + From gordonp at dev.open-bio.org Wed Jan 30 00:41:39 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Tue, 29 Jan 2008 19:41:39 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801300041.m0U0fden011335@dev.open-bio.org> gordonp Tue Jan 29 19:41:39 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow In directory dev.open-bio.org:/tmp/cvs-serv11299/src/main/ca/ucalgary/minnow Modified Files: MinJarMaker.java Log Message: Avoid null pointer if jarmaker.class.extras property is not set moby-live/Java/src/main/ca/ucalgary/minnow MinJarMaker.java,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow/MinJarMaker.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow/MinJarMaker.java 2008/01/30 00:14:11 1.1 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/minnow/MinJarMaker.java 2008/01/30 00:41:39 1.2 @@ -452,6 +452,10 @@ } protected void addExtraClasses(Set classes){ + if(System.getProperty("jarmaker.class.extras") == null){ + return; + } + StringTokenizer extraClassesTokens = new StringTokenizer(System.getProperty("jarmaker.class.extras"), File.pathSeparator); while(extraClassesTokens.hasMoreElements()){ From gordonp at dev.open-bio.org Wed Jan 30 21:33:28 2008 From: gordonp at dev.open-bio.org (Paul Gordon) Date: Wed, 30 Jan 2008 16:33:28 -0500 Subject: [MOBY-guts] biomoby commit Message-ID: <200801302133.m0ULXSoE013792@dev.open-bio.org> gordonp Wed Jan 30 16:33:28 EST 2008 Update of /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util In directory dev.open-bio.org:/tmp/cvs-serv13756/src/main/ca/ucalgary/seahawk/util Modified Files: HTMLUtils.java Log Message: Made tolltip wrapping for very long words more robust moby-live/Java/src/main/ca/ucalgary/seahawk/util HTMLUtils.java,1.6,1.7 =================================================================== RCS file: /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/HTMLUtils.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/HTMLUtils.java 2007/12/07 20:29:51 1.6 +++ /home/repository/moby/moby-live/Java/src/main/ca/ucalgary/seahawk/util/HTMLUtils.java 2008/01/30 21:33:28 1.7 @@ -144,6 +144,12 @@ for(String word: tokens){ while(word.length()+1 > maxLineLength){ //single word is bigger than preset width, hyphenate int cutPoint = maxLineLength - lineCharCount - 1; + if(cutPoint < word.length()-1){ + cutPoint = word.length()-1; + } + if(cutPoint < 0){ + break; + } result.append(word.substring(0, cutPoint)+"-
    "); lineCharCount = 0; word = word.substring(cutPoint);