From kawas at dev.open-bio.org Wed Aug 6 10:47:55 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Wed, 6 Aug 2008 10:47:55 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808061447.m76EltjE028762@dev.open-bio.org> kawas Wed Aug 6 10:47:55 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOBY-Client In directory dev.open-bio.org:/tmp/cvs-serv28727/Perl/MOBY-Client Modified Files: populate_libs.pl Log Message: realized that Async.pm was not included in the Moby-Client module. moby-live/Perl/MOBY-Client populate_libs.pl,1.5,1.6 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY-Client/populate_libs.pl,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Perl/MOBY-Client/populate_libs.pl 2008/03/13 19:12:44 1.5 +++ /home/repository/moby/moby-live/Perl/MOBY-Client/populate_libs.pl 2008/08/06 14:47:54 1.6 @@ -8,7 +8,7 @@ # this module copies the files from MOBY-Server/lib/*.pm that are required for MOBY-Client to create a distribution use Data::Dumper; -my @MOBY = qw ( CommonSubs.pm CrossReference.pm MobyXMLConstants.pm ); +my @MOBY = qw ( Async.pm CommonSubs.pm CrossReference.pm MobyXMLConstants.pm ); my @Async = qw ( LSAE.pm Service.pm SimpleServer.pm WSRF.pm ); my @Client = qw ( Central.pm CollectionArticle.pm OntologyServer.pm Registration.pm SecondaryArticle.pm Service.pm ServiceInstance.pm SimpleArticle.pm SimpleInput.pm ); my @Exception = qw ( MobyException.pm MobyExceptionCodes.pm ); From kawas at dev.open-bio.org Wed Aug 6 10:48:50 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Wed, 6 Aug 2008 10:48:50 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808061448.m76Emo2K028802@dev.open-bio.org> kawas Wed Aug 6 10:48:49 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOBY-Client In directory dev.open-bio.org:/tmp/cvs-serv28767/Perl/MOBY-Client Modified Files: MANIFEST Log Message: realized that Async.pm was not included in the Moby-Client module. updated the manifest moby-live/Perl/MOBY-Client MANIFEST,1.9,1.10 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY-Client/MANIFEST,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- /home/repository/moby/moby-live/Perl/MOBY-Client/MANIFEST 2008/05/07 18:27:31 1.9 +++ /home/repository/moby/moby-live/Perl/MOBY-Client/MANIFEST 2008/08/06 14:48:49 1.10 @@ -12,6 +12,7 @@ inc/Module/Install/Win32.pm inc/Module/Install/WriteAll.pm INSTALL +lib/MOBY/Async.pm lib/MOBY/Async/LSAE.pm lib/MOBY/Async/Service.pm lib/MOBY/Async/SimpleServer.pm From senger at dev.open-bio.org Fri Aug 8 07:11:53 2008 From: senger at dev.open-bio.org (Martin Senger) Date: Fri, 8 Aug 2008 07:11:53 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808081111.m78BBr9K004852@dev.open-bio.org> senger Fri Aug 8 07:11:53 EDT 2008 Update of /home/repository/moby/moby-live/Java In directory dev.open-bio.org:/tmp/cvs-serv4833 Modified Files: build.xml Log Message: added maven artifact jmoby-dashboard moby-live/Java build.xml,1.72,1.73 =================================================================== RCS file: /home/repository/moby/moby-live/Java/build.xml,v retrieving revision 1.72 retrieving revision 1.73 diff -u -r1.72 -r1.73 --- /home/repository/moby/moby-live/Java/build.xml 2008/03/03 14:11:08 1.72 +++ /home/repository/moby/moby-live/Java/build.xml 2008/08/08 11:11:52 1.73 @@ -437,6 +437,8 @@ + - + From senger at dev.open-bio.org Fri Aug 8 07:11:53 2008 From: senger at dev.open-bio.org (Martin Senger) Date: Fri, 8 Aug 2008 07:11:53 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808081111.m78BBrrE004874@dev.open-bio.org> senger Fri Aug 8 07:11:53 EDT 2008 Update of /home/repository/moby/moby-live/Java/xmls In directory dev.open-bio.org:/tmp/cvs-serv4833/xmls Modified Files: maven.xml upload2maven.xml Log Message: added maven artifact jmoby-dashboard moby-live/Java/xmls maven.xml,1.3,1.4 upload2maven.xml,1.2,1.3 =================================================================== RCS file: /home/repository/moby/moby-live/Java/xmls/maven.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- /home/repository/moby/moby-live/Java/xmls/maven.xml 2008/04/21 13:44:05 1.3 +++ /home/repository/moby/moby-live/Java/xmls/maven.xml 2008/08/08 11:11:53 1.4 @@ -28,7 +28,8 @@ - + + @@ -37,7 +38,7 @@ description="Fetch Maven library - needed only the first time."> - + - - + + =================================================================== RCS file: /home/repository/moby/moby-live/Java/xmls/upload2maven.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- /home/repository/moby/moby-live/Java/xmls/upload2maven.xml 2008/03/13 16:49:35 1.2 +++ /home/repository/moby/moby-live/Java/xmls/upload2maven.xml 2008/08/08 11:11:53 1.3 @@ -21,12 +21,13 @@ - + - + - + @@ -34,15 +35,35 @@ + + + + + + + + + + + - + - + + + + + + + From senger at dev.open-bio.org Fri Aug 8 07:12:58 2008 From: senger at dev.open-bio.org (Martin Senger) Date: Fri, 8 Aug 2008 07:12:58 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808081112.m78BCwsR004911@dev.open-bio.org> senger Fri Aug 8 07:12:58 EDT 2008 Update of /home/repository/moby/moby-live/Java/xmls In directory dev.open-bio.org:/tmp/cvs-serv4896/xmls Added Files: project-dashboard.pom Log Message: added maven artifact jmoby-dashboard moby-live/Java/xmls project-dashboard.pom,NONE,1.1 From kawas at dev.open-bio.org Wed Aug 13 11:12:39 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Wed, 13 Aug 2008 11:12:39 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808131512.m7DFCd0u023104@dev.open-bio.org> kawas Wed Aug 13 11:12:38 EDT 2008 Update of /home/repository/moby/moby-live/Java/xmls In directory dev.open-bio.org:/tmp/cvs-serv23069/xmls Modified Files: project.pom Log Message: excluded the jdbc:jdbc dependency from commons-dbcp because it had redirection in it and then replaced it with the library that jdbc:jdbc redirects to moby-live/Java/xmls project.pom,1.11,1.12 =================================================================== RCS file: /home/repository/moby/moby-live/Java/xmls/project.pom,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- /home/repository/moby/moby-live/Java/xmls/project.pom 2008/07/23 09:32:35 1.11 +++ /home/repository/moby/moby-live/Java/xmls/project.pom 2008/08/13 15:12:38 1.12 @@ -2,7 +2,7 @@ 4.0.0 org.biomoby jmoby - 1.1.0 + 1.1.1 jMoby A sub-project of the BioMoby project. It aims to develop tools in Java for BioMoby. @@ -162,6 +162,12 @@ 3.1 + + + javax.sql + jdbc-stdext + 2.0 + commons-dbcp commons-dbcp @@ -179,6 +185,10 @@ commons-collections commons-collections + + jdbc + jdbc + From kawas at dev.open-bio.org Wed Aug 13 11:36:52 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Wed, 13 Aug 2008 11:36:52 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808131536.m7DFaqCt023314@dev.open-bio.org> kawas Wed Aug 13 11:36:52 EDT 2008 Update of /home/repository/moby/moby-live/Java/docs In directory dev.open-bio.org:/tmp/cvs-serv23279/docs Modified Files: DashboardImplementPerlService.html Log Message: moby-live/Java/docs DashboardImplementPerlService.html,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Java/docs/DashboardImplementPerlService.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Java/docs/DashboardImplementPerlService.html 2008/06/05 19:45:11 1.1 +++ /home/repository/moby/moby-live/Java/docs/DashboardImplementPerlService.html 2008/08/13 15:36:52 1.2 @@ -230,7 +230,7 @@ # END of Script -

The above script will register the service getReverseEchoString into the registry. Further discussion on the registering of services is beyond the scope of this tutorial. For more information on that topic, please visit the Biomoby homepage.

+

The above script will register the service getReverseEchoString into the registry. Further discussion on the registering of services is beyond the scope of this tutorial. For more information on that topic, please visit the Biomoby homepage.

Generating our service

@@ -327,7 +327,7 @@ # END of Script -

The above script will register the service getReverseEchoString into the registry. Further discussion on the registering of services is beyond the scope of this tutorial. For more information on that topic, please visit the Biomoby homepage.

+

The above script will register the service getReverseEchoString into the registry. Further discussion on the registering of services is beyond the scope of this tutorial. For more information on that topic, please visit the Biomoby homepage.

Generating our service

From senger at dev.open-bio.org Wed Aug 13 15:41:04 2008 From: senger at dev.open-bio.org (Martin Senger) Date: Wed, 13 Aug 2008 15:41:04 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808131941.m7DJf4HA023801@dev.open-bio.org> senger Wed Aug 13 15:41:04 EDT 2008 Update of /home/repository/moby/moby-live/Java In directory dev.open-bio.org:/tmp/cvs-serv23782 Modified Files: build.xml Log Message: version 1.1.1 released moby-live/Java build.xml,1.73,1.74 =================================================================== RCS file: /home/repository/moby/moby-live/Java/build.xml,v retrieving revision 1.73 retrieving revision 1.74 diff -u -r1.73 -r1.74 --- /home/repository/moby/moby-live/Java/build.xml 2008/08/08 11:11:52 1.73 +++ /home/repository/moby/moby-live/Java/build.xml 2008/08/13 19:41:04 1.74 @@ -438,7 +438,7 @@ + value="${maven.project-dashboard.artifactId}-${maven.project-dashboard.version}.jar"/> senger Wed Aug 13 15:41:04 EDT 2008 Update of /home/repository/moby/moby-live/Java/docs In directory dev.open-bio.org:/tmp/cvs-serv23782/docs Modified Files: ChangeLog Log Message: version 1.1.1 released moby-live/Java/docs ChangeLog,1.91,1.92 =================================================================== RCS file: /home/repository/moby/moby-live/Java/docs/ChangeLog,v retrieving revision 1.91 retrieving revision 1.92 diff -u -r1.91 -r1.92 --- /home/repository/moby/moby-live/Java/docs/ChangeLog 2008/07/23 09:32:35 1.91 +++ /home/repository/moby/moby-live/Java/docs/ChangeLog 2008/08/13 19:41:04 1.92 @@ -1,3 +1,8 @@ +2008-08-13 Martin Senger + + * Version 1.1.1 released (the only changed from the previous one + was in packaging the jMoby; no change in code or behaviour) + 2008-07-23 Martin Senger * Version 1.1.0 released From kawas at dev.open-bio.org Mon Aug 18 11:52:18 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 18 Aug 2008 11:52:18 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808181552.m7IFqIZW010373@dev.open-bio.org> kawas Mon Aug 18 11:52:17 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async In directory dev.open-bio.org:/tmp/cvs-serv10338/Perl/MOBY-Server/lib/MOBY/Async Modified Files: WSRF.pm Log Message: added a $VERSION to the module and the xml namespace declaration 'mobyws' to the soap envelope (as the example in the RFC for async services shows) moby-live/Perl/MOBY-Server/lib/MOBY/Async WSRF.pm,1.3,1.4 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async/WSRF.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async/WSRF.pm 2008/06/30 17:56:48 1.3 +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async/WSRF.pm 2008/08/18 15:52:17 1.4 @@ -29,6 +29,9 @@ use strict; use WSRF::Lite 0.8.2.2; +use vars qw /$VERSION/; +$VERSION = sprintf "%d.%02d", q$Revision$ =~ /: (\d+)\.(\d+)/; + $WSRF::WSRP::Private{queryIDs} = []; $WSRF::WSRP::MobyPrivatePrefixes = ['pid', 'input']; $WSRF::WSRP::MobyPropertiesPrefixes = ['status', 'result']; @@ -66,7 +69,8 @@ 'xmlns:wsrl' => $WSRF::Constants::WSRL, 'xmlns:wsrp' => $WSRF::Constants::WSRP, 'xmlns:wsu' => $WSRF::Constants::WSU, - 'xmlns:wsse' => $WSRF::Constants::WSSE + 'xmlns:wsse' => $WSRF::Constants::WSSE, + 'xmlns:mobyws' => $WSRF::Constants::MOBY } ); From kawas at dev.open-bio.org Fri Aug 22 12:18:02 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Fri, 22 Aug 2008 12:18:02 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808221618.m7MGI20X029787@dev.open-bio.org> kawas Fri Aug 22 12:18:01 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOBY-Server/share/db/data In directory dev.open-bio.org:/tmp/cvs-serv29752/Perl/MOBY-Server/share/db/data Modified Files: mobyobject.data Log Message: adding boolean to the data that gets inserted into a new/clean registry. moby-live/Perl/MOBY-Server/share/db/data mobyobject.data,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/share/db/data/mobyobject.data,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Perl/MOBY-Server/share/db/data/mobyobject.data 2008/02/21 00:21:28 1.1 +++ /home/repository/moby/moby-live/Perl/MOBY-Server/share/db/data/mobyobject.data 2008/08/22 16:18:01 1.2 @@ -8,6 +8,7 @@ INSERT INTO object VALUES (3,'urn:lsid:biomoby.org:objectclass:String','String','a string','openinformatics.com','jason at openinformatics.com'); INSERT INTO object VALUES (4,'urn:lsid:biomoby.org:objectclass:Float','Float','a floating point number','openinformatics.com','jason at openinformatics.com'); INSERT INTO object VALUES (5,'urn:lsid:biomoby.org:objectclass:DateTime','DateTime','a date or time in ISO-8601 format','openinformatics.com','jason at openinformatics.com'); +INSERT INTO object VALUES (6,'urn:lsid:biomoby.org:objectclass:Boolean','Boolean','An object representing a boolean logic value (either "true" or "false")','openinformatics.com','jason at openinformatics.com'); -- -- Dumping data for table `object_term2term` @@ -18,4 +19,5 @@ INSERT INTO object_term2term VALUES (2,'urn:lsid:biomoby.org:objectrelation:isa',3,1,NULL); INSERT INTO object_term2term VALUES (3,'urn:lsid:biomoby.org:objectrelation:isa',4,1,NULL); INSERT INTO object_term2term VALUES (4,'urn:lsid:biomoby.org:objectrelation:isa',5,1,NULL); +INSERT INTO object_term2term VALUES (5,'urn:lsid:biomoby.org:objectrelation:isa',6,1,NULL); From kawas at dev.open-bio.org Fri Aug 22 14:30:50 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Fri, 22 Aug 2008 14:30:50 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808221830.m7MIUoPE030634@dev.open-bio.org> kawas Fri Aug 22 14:30:50 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY In directory dev.open-bio.org:/tmp/cvs-serv30599/Perl/MOBY-Server/lib/MOBY Modified Files: OntologyServer.pm Log Message: whenever a datatype didnt exist in the ontology and you try to remove it, an error like: Object type $term cannot be resolved to an LSID was being returned. removed qw{} and replaced it with "" so that $term is resolved to the actual term. moby-live/Perl/MOBY-Server/lib/MOBY OntologyServer.pm,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/OntologyServer.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/OntologyServer.pm 2008/02/21 00:21:27 1.1 +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/OntologyServer.pm 2008/08/22 18:30:50 1.2 @@ -443,7 +443,7 @@ # } my $LSID; unless ( $term =~ /urn\:lsid/ ) { $LSID = $self->getObjectURI($term) } else { $LSID = $term } - return ( 0, q{Object type $term cannot be resolved to an LSID}, "" ) + return ( 0, "Object type $term cannot be resolved to an LSID", "" ) unless $LSID; my $result = $adaptor->query_object(type => $LSID); From kawas at dev.open-bio.org Fri Aug 22 15:12:20 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Fri, 22 Aug 2008 15:12:20 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808221912.m7MJCKta030787@dev.open-bio.org> kawas Fri Aug 22 15:12:20 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY In directory dev.open-bio.org:/tmp/cvs-serv30752/Perl/MOBY-Server/lib/MOBY Modified Files: Central.pm Log Message: added utf8 encoding checks on all (most) data passed to the registry. if data passed is not utf8 encoded then an error message stating that the encoding is invalid is returned moby-live/Perl/MOBY-Server/lib/MOBY Central.pm,1.5,1.6 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Central.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Central.pm 2008/05/14 14:06:23 1.5 +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Central.pm 2008/08/22 19:12:20 1.6 @@ -27,14 +27,8 @@ use LWP; use MOBY::CommonSubs; -#use MOBY::RDF::ServiceInstanceRDF; -#use RDF::Core; -#use RDF::Core::Model; -#use RDF::Core::Literal; -#use RDF::Core::Statement; -#use RDF::Core::Model::Serializer; -#use RDF::Core::Storage::Memory; -#use RDF::Core::Constants qw(:xml :rdf :rdfs); +use Encode; + use MOBY::MobyXMLConstants; my $debug = 0; my $listener = 1; @@ -302,6 +296,14 @@ "" ); } + #print STDERR "$term, $desc, $auth, $email\n"; + #check encoding + unless ( decode_utf8($term) eq $term && decode_utf8($desc) eq $desc && decode_utf8($auth) eq $auth && decode_utf8($email) eq $email ) + { + return &_error("Invalid character encoding; one or all of objectType, Description, authURI or contactEmail were not UTF-8 encoded.", + "" + ); + } return &_error( "Malformed authURI - must not have an http:// prefix", "" ) if $auth =~ '[/:]'; return &_error( "Malformed authURI - must take the form NNN.NNN.NNN", "" ) @@ -660,6 +662,15 @@ "" ); } + #check character encoding + unless ( decode_utf8( $term ) eq $term && decode_utf8( $desc ) eq $desc && decode_utf8( $auth ) eq $auth && decode_utf8( $email ) eq $email ) + { + return &_error( +"Invalid character encoding\n One of serviceType, Description, authURI or contactEmail were not UTF-8 encoded.", + "" + ); + } + return &_error( "Malformed authURI - must not have an http:// prefix", "" ) if $auth =~ '[/:]'; return &_error( "Malformed authURI - must take the form NNN.NNN.NNN", "" ) @@ -910,6 +921,7 @@ "\n\npayload\n**********************\n$payload\n***********************\n\n" ); my ( $term, $auth, $desc, $email ) = &_registerNamespacePayload($payload); + $debug && &_LOG("\n\nterm $term\ndesc $desc\nemail $email\nauth $auth"); unless ( defined $term && defined $desc && defined $auth && defined $email ) { @@ -918,6 +930,16 @@ "" ); } + + # check encoding + unless ( decode_utf8( $term ) eq $term && decode_utf8( $desc ) eq $desc && decode_utf8( $auth ) eq $auth && decode_utf8( $email ) eq $email ) + { + return &_error( +"Invalid character encoding; one or all of namespaceType, Description, authURI or contactEmail were not UTF-8 encoded.", + "" + ); + } + return &_error( "Malformed authURI - must not have an http:// prefix", "" ) if $auth =~ '[/:]'; return &_error( "Malformed authURI - must take the form NNN.NNN.NNN", "" ) @@ -1315,10 +1337,12 @@ $error .= "missing serviceType \n" unless defined $serviceType; $error .= "invalid character string for serviceName. Must start with a letter followed by [A-Za-z0-9_]\n" if ($serviceName =~ /^[^A-Za-z]/); $error .= "invalid character string for serviceName. Must start with a letter followed by [A-Za-z0-9_]\n" if ($serviceName =~ /^.+?[^A-Za-z0-9_]/); - + # $error .="missing signatureURL \n" unless defined $signatureURL; $error .= "missing authURI \n" unless defined $AuthURI; + $error .= "invalid character encoding; authURI not encoded as UTF-8\n" unless decode_utf8( $AuthURI ) eq $AuthURI; $error .= "missing contactEmail \n" unless defined $contactEmail; + $error .= "invalid character encoding; contactEmail not encoded as UTF-8\n" unless decode_utf8( $contactEmail ) eq $contactEmail; return &_error( "Malformed authURI - must not have an http:// prefix", "" ) if $AuthURI =~ '[/:]'; return &_error( "Malformed authURI - must take the form NNN.NNN.NNN", "" ) @@ -1326,8 +1350,11 @@ return &_error("Malformed email - must be a valid email address of the form name\@organization.foo","") unless $contactEmail =~ /\S\@\S+\.\S+/; $error .= "missing URL \n" unless defined $URL; + $error .= "invalid character encoding; URL not encoded as UTF-8\n" unless decode_utf8( $URL ) eq $URL; $error .= "missing description \n" unless defined $desc; + $error .= "invalid character encoding; description not encoded as UTF-8\n" unless decode_utf8( $desc ) eq $desc; $error .= "missing Category \n" unless defined $Category; + $error .= "invalid character encoding; service name not encoded as UTF-8\n" unless decode_utf8( $serviceName ) eq $serviceName; return &_error( "malformed payload $error\n\n", "" ) if ($error); return &_error( "Category may take the (case sensitive) values 'moby', 'moby-async', 'cgi', 'doc-literal', and 'doc-literal-async', \n", @@ -1494,11 +1521,15 @@ return (-1,"Invalid articlename name found. Articlenames may not contain spaces or other special characters.") if $article =~ /([\+\=:\s\&\<\>\[\]\^\`\{\|\}\~\(\)\\\/\$\#\@\,\|\?\.!\*\;\'\"])/; + #check encoding for those articles that are not the empty string or a string of whitespace + return (-1,"Invalid character encoding; articlename not UTF-8 encoded.") + unless decode_utf8( $article ) eq $article; + $debug && &_LOG("ARTICLENAME in _registerArticle is $article"); if (lc($inout) eq "input"){ return (-1, "Input Simples and collections are required to have an articleName as of API version 0.86") if (!$article && !$collid); } - + my ( $object_type, @namespaces ); if ( $simp_coll eq "Collection" ) { $debug && &_LOG("Collection!\n"); From kawas at dev.open-bio.org Mon Aug 25 11:21:02 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 25 Aug 2008 11:21:02 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808251521.m7PFL2Nb007724@dev.open-bio.org> kawas Mon Aug 25 11:21:01 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/SOAP In directory dev.open-bio.org:/tmp/cvs-serv7689/Perl/MOBY-Server/lib/MOBY/SOAP Modified Files: Serializer.pm Log Message: removed some statements that caused apache axis incompatibilities. as far as i can tell, java/perl SOAP interaction with a registry using this serializer work as expected. moby-live/Perl/MOBY-Server/lib/MOBY/SOAP Serializer.pm,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/SOAP/Serializer.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/SOAP/Serializer.pm 2008/02/21 00:21:28 1.1 +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/SOAP/Serializer.pm 2008/08/25 15:21:01 1.2 @@ -1,6 +1,9 @@ #$Id$ package MOBY::SOAP::Serializer; +use vars qw /$VERSION/; +$VERSION = sprintf "%d.%02d", q$Revision$ =~ /: (\d+)\.(\d+)/; + # this module serializes SOAP messages to ensure # compatibility with other soap clients (Java) # All that you have to do to make this your serializer, @@ -20,37 +23,25 @@ my $self = shift; my ( $name, $attrs, $values, $id ) = @{ +shift }; $attrs ||= {}; - - # keep only namespace attributes for all elements - my $a = $attrs->{xmlns} ? { xmlns => $attrs->{xmlns} } : {}; - - return $self->SUPER::xmlize( [ $name, $a, $values, $id ] ); -} + return $self->SUPER::xmlize( [ $name, $attrs, $values, $id ] ); +} sub envelope { - delete $_[0]{_namespaces}->{'http://schemas.xmlsoap.org/soap/encoding/'} - if $_[0]; +# delete $_[0]{_namespaces}->{'http://schemas.xmlsoap.org/soap/encoding/'} +# if $_[0]; # only 'transform' soap responses UNIVERSAL::isa( $_[3] => 'SOAP::Data' ) ? do { - -# below encodes data -#my $xml = $_[3]->value; -#$xml =~ s"&"&"g; -#$xml =~ s"\<"<"g; -#$xml =~ s"\]\]\>"\]\]>"g; -#$_[3]->value($xml); -# when we set to string, we dont have to encode -#FIXME - this wont work for the DUMP call if and when a SOAP::Data object is passed + # when we set to string, we dont have to encode $_[3]->type( 'string' => $_[3]->value() ); } : do { do { - # for dumps, they are of type array: set them accordingly + # for dumps, they are of type string[]: set components accordingly $_[3]->[0] = SOAP::Data->type( 'string' => $_[3]->[0] ) if $_[3]->[0]; $_[3]->[1] = SOAP::Data->type( 'string' => $_[3]->[1] ) @@ -65,9 +56,6 @@ do { # below encodes data -> set type to string and we dont have to - #$_[3] =~ s"&"&"g; - #$_[3] =~ s"\<"<"g; - #$_[3] =~ s"\]\]\>"\]\]>"g; # set to string to avoid encoding $_[3] = SOAP::Data->type( 'string' => $_[3] ); } unless ( ref( $_[3] ) eq 'ARRAY' ); From kawas at dev.open-bio.org Mon Aug 25 12:27:28 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 25 Aug 2008 12:27:28 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808251627.m7PGRScF007860@dev.open-bio.org> kawas Mon Aug 25 12:27:28 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOSES-MOBY In directory dev.open-bio.org:/tmp/cvs-serv7817/Perl/MOSES-MOBY Modified Files: Makefile.PL Changes MANIFEST Log Message: added async service support to moses. MOBY.pm has some documentation, but more is to come. *ASYNC_SERVICE_TABLE refers to an as yet unimplemented example. *for those updating to this version, please make sure to run moses-install.pl again. *this module now uses WSRF-Lite and MOBY-Client moby-live/Perl/MOSES-MOBY Makefile.PL,1.6,1.7 Changes,1.6,1.7 MANIFEST,1.5,1.6 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/Makefile.PL,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/Makefile.PL 2008/05/11 23:44:37 1.6 +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/Makefile.PL 2008/08/25 16:27:28 1.7 @@ -1,6 +1,9 @@ # Load the Module::Install bundled in ./inc/ use inc::Module::Install; - + + # constant + use constant MSWIN => $^O =~ /MSWin32|Windows_NT/i ? 1 : 0; + # Define metadata name 'MOSES-MOBY'; version '0.86'; @@ -25,11 +28,20 @@ requires 'Class::Inspector' => 1.17; requires 'Params::Util' => 0.28; - # requires 'Want' => 0; - if ( not( $^O =~ /MSWin32|Windows_NT/i ) ) { - requires 'Want' => '0.18'; - requires 'IO::Prompt' => '0.99.2'; + # windows doesn't need this + if ( not MSWIN ) { + requires 'Want' => '0.18'; + requires 'IO::Prompt' => '0.99.2'; } + + print STDOUT "Shall I check for async libraries (do you plan on writing async services)? y/n [n] "; + my $tmp = ; + $tmp =~ s/\s//g; + if ($tmp =~ /y/i) { + requires 'MOBY::Client::Central' => 1.03; + requires 'WSRF::Lite' => 0.8.8.2; + } + build_requires 'Test::More' => '0.42'; no_index 'directory' => 'bin/scripts'; =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/Changes,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/Changes 2008/05/11 23:44:37 1.6 +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/Changes 2008/08/25 16:27:28 1.7 @@ -1,6 +1,18 @@ Revision history for Perl extension MOSES::MOBY. -.85 Fri May 9 7:52:35 2008 +.87 + - fixed a string append bug where '+' was used + instead of '.' + - added support for Asynchronous moby services + * added async option to moses-generate-services.pl + * added async option to moses-testing-service.pl + * created an async dispatcher template + AsyncMobyServer.cgi in the shared folder + * created an async template skeleton module + for async modules. + * added another service table for async services + +.86 Sun May 11 - fixed a bug in one of the test cases. .85 Fri May 9 7:52:35 2008 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/MANIFEST,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/MANIFEST 2008/05/07 17:33:30 1.5 +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/MANIFEST 2008/08/25 16:27:28 1.6 @@ -44,6 +44,7 @@ lib/MOSES/MOBY/Generators/GenServices.pm lib/MOSES/MOBY/Generators/GenTypes.pm lib/MOSES/MOBY/Generators/templates/datatype.tt +lib/MOSES/MOBY/Generators/templates/service-async.tt lib/MOSES/MOBY/Generators/templates/service-base.tt lib/MOSES/MOBY/Generators/templates/service-cgi.tt lib/MOSES/MOBY/Generators/templates/service.tt @@ -60,11 +61,13 @@ share/log4perl.properties.template share/mabuhay.file share/moby-services.cfg.template +share/AsyncMobyServer.cgi.template share/MobyServer.cgi.template share/notes share/samples/Service/HelloBiomobyWorld.pm share/samples/Service/Mabuhay.pm share/samples/SERVICES_TABLE +share/samples/ASYNC_SERVICE_TABLE share/USER_REGISTRIES t/MOSES-MOBY-Cache.t t/MOSES-MOBY-Registry.t From kawas at dev.open-bio.org Mon Aug 25 12:27:28 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 25 Aug 2008 12:27:28 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808251627.m7PGRSZg007880@dev.open-bio.org> kawas Mon Aug 25 12:27:28 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators In directory dev.open-bio.org:/tmp/cvs-serv7817/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators Modified Files: GenServices.pm Log Message: added async service support to moses. MOBY.pm has some documentation, but more is to come. *ASYNC_SERVICE_TABLE refers to an as yet unimplemented example. *for those updating to this version, please make sure to run moses-install.pl again. *this module now uses WSRF-Lite and MOBY-Client moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators GenServices.pm,1.6,1.7 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators/GenServices.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators/GenServices.pm 2008/05/10 00:23:05 1.6 +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators/GenServices.pm 2008/08/25 16:27:28 1.7 @@ -159,7 +159,7 @@ cachedir => $self->cachedir, registry => $self->registry, service_names => [], - force_over => 0, + force_over => 0, static_impl => 0, # other args, with no default values @@ -222,18 +222,17 @@ }; my @input_ns = (); foreach my $in (@{ $obj->inputs }) { - - if (ref ($in) eq 'MOSES::MOBY::Def::PrimaryDataSimple') { - foreach my $ns ( @{$in->namespaces} ) { - push @input_ns, $ns->name; - } - } else { - foreach my $sim (@{ $in->elements }) { - foreach my $ns ( @{$sim->namespaces} ) { - push @input_ns, $ns->name; - } - } - } + if (ref ($in) eq 'MOSES::MOBY::Def::PrimaryDataSimple') { + foreach my $ns ( @{$in->namespaces} ) { + push @input_ns, $ns->name; + } + } else { + foreach my $sim (@{ $in->elements }) { + foreach my $ns ( @{$sim->namespaces} ) { + push @input_ns, $ns->name; + } + } + } } if ($args{outcode}) { $tt->process ( $input, { base => $obj, @@ -278,7 +277,8 @@ my ($self, @args) = @_; my %args = ( # some default values - outdir => $self->outdir . "/../cgi", + outdir => $MOBYCFG::GENERATORS_IMPL_OUTDIR || + MOSES::MOBY::Generators::Utils->find_file ($Bin, 'services'), cachedir => $self->cachedir, registry => $self->registry, service_names => [], @@ -286,12 +286,12 @@ # other args, with no default values # authority => 'authority' # outcode => ref SCALAR - + # and the real parameters @args ); $self->_check_outcode (%args); - my $outdir = File::Spec->rel2abs ($args{outdir}); + my $outdir = File::Spec->rel2abs ($args{outdir} . "../cgi" ); $LOG->debug ("Arguments for generating cgi services: " . $self->toString (\%args)) if ($LOG->is_debug); $LOG->info ("CGI Services will be generated into: '$outdir'") @@ -350,6 +350,90 @@ #----------------------------------------------------------------- +# generate_async +#----------------------------------------------------------------- +sub generate_async { + my ($self, @args) = @_; + my %args = + ( # some default values + impl_outdir => ( $MOBYCFG::GENERATORS_IMPL_OUTDIR || + MOSES::MOBY::Generators::Utils->find_file ($Bin, 'services') ), + impl_prefix => $MOBYCFG::GENERATORS_IMPL_PACKAGE_PREFIX, + cachedir => $self->cachedir, + registry => $self->registry, + service_names => [], + force_over => 0, + static_impl => 0, + + # and the real parameters + @args ); + $self->_check_outcode (%args); + + my $outdir = File::Spec->rel2abs ($args{impl_outdir}); + $LOG->debug ("Arguments for generating async services: " . $self->toString (\%args)) + if ($LOG->is_debug); + $LOG->info ("ASYNC Services will be generated into: '$outdir'") + unless $args{outcode}; + + # get objects from a local cache + my $cache = MOSES::MOBY::Cache::Central->new (cachedir => $args{cachedir}, registry => $args{registry}); + my @names = (); + push (@names, $args{authority}, @{ $args{service_names} }) + if $args{authority}; + my @services = $cache->get_services (@names); + + # generate from template + my $tt = Template->new ( ABSOLUTE => 1 ); + my $input = MOSES::MOBY::Generators::Utils->find_file + ($Bin, + 'MOSES', 'MOBY', 'Generators', 'templates', + 'service-async.tt'); + + foreach my $obj (@services) { + my $name = $obj->name; + my $impl = { + package => ($args{impl_prefix} || 'Service') . '::' . $name, + }; + $LOG->debug ("$name\n"); + if ($args{outcode}) { + # check if the same service is already loaded + # (it can happen when this subroutine is called several times) + next if eval '%' . $obj->module_name . '::'; + $tt->process ( + $input, + { + impl => $impl, + obj => $obj, + pmoses_home => $MOBYCFG::USER_REGISTRIES_USER_REGISTRIES_DIR, + generated_dir => $MOBYCFG::GENERATORS_OUTDIR, + services_dir => $MOBYCFG::GENERATORS_IMPL_OUTDIR, + }, + $args{outcode} ) + || $LOG->logdie ($tt->error()); + } else { + # we cannot easily check whether the same file was already + # generated - so we don't + my $outfile = + File::Spec->catfile ( $outdir, split (/::/, $impl->{package}) ) + . 'Async.pm'; + $tt->process ( $input, + { + impl => $impl, + obj => $obj, + pmoses_home => $MOBYCFG::USER_REGISTRIES_USER_REGISTRIES_DIR, + generated_dir => $MOBYCFG::GENERATORS_OUTDIR, + services_dir => $MOBYCFG::GENERATORS_IMPL_OUTDIR, + }, + $outfile ) || $LOG->logdie ($tt->error()); + chmod (0755, $outfile); + $LOG->info ("\tAsync service created at '$outfile'\n"); + + } + } +} + + +#----------------------------------------------------------------- # update_table #----------------------------------------------------------------- sub update_table { @@ -427,6 +511,98 @@ $self->toString ($DISPATCH_TABLE)); } +#----------------------------------------------------------------- +# update_async_table +#----------------------------------------------------------------- +sub update_async_table { + my ($self, @args) = @_; + my %args = + ( # some default values + impl_outdir => ( $MOBYCFG::GENERATORS_IMPL_OUTDIR || + MOSES::MOBY::Generators::Utils->find_file ($Bin, 'services') ), + services_table => ($MOBYCFG::GENERATORS_IMPL_ASYNC_SERVICES_TABLE || 'ASYNC_SERVICES_TABLE'), + impl_prefix => ($MOBYCFG::GENERATORS_IMPL_PACKAGE_PREFIX || 'Service'), + cachedir => $self->cachedir, + registry => $self->registry, + service_names => [], + + # other args, with no default values + # authority => 'authority' + # outcode => ref SCALAR + + # and the real parameters + @args ); + $self->_check_outcode (%args); + + my $outdir = File::Spec->rel2abs ($args{impl_outdir}); + $LOG->debug ("Arguments for generating async services table: " . $self->toString (\%args)) + if ($LOG->is_debug); + + # read the current service table + unshift (@INC, $args{impl_outdir}); # place where ASYNC_SERVICES_TABLE could be + use vars qw ( $DISPATCH_TABLE ); + eval { require $args{services_table} }; + my $file_with_table; + if ($@) { + $LOG->warn ("Cannot find table of async services '" . $args{services_table} . "': $@"); + $file_with_table = File::Spec->catfile ($args{impl_outdir}, $args{services_table}); + } else { + $file_with_table = $INC{ $args{services_table} }; + } + + # get names of services that should be added to the service table: + my @names = (); + if ($args{service_names} and @{ $args{service_names} } > 0) { + # 1) if there are service_names given, take them, and that's it + # (TBD?: should I checked names against the cache?) + @names = @{ $args{service_names} }; + } else { + # 2) otherwise we need to get names from the cache + my $cache = MOSES::MOBY::Cache::Central->new (cachedir => $args{cachedir}, + registry => $args{registry}); + my %by_authorities = $cache->get_service_names; + if ($args{authority}) { + my $authority = $by_authorities{ $args{authority} }; + $self->throw ("Unknown authority '$args{authority}'.") + unless $authority; + @names = @{ $authority }; + } else { + foreach my $authority (keys %by_authorities) { + push (@names, @{ $by_authorities{$authority} }); + } + } + } + # dont want the redefined errors in Async to discourage service developer + no warnings qw(redefine); + require MOBY::Async::WSRF; + + # update dispatch table + foreach my $service_name (@names) { + $DISPATCH_TABLE->{$WSRF::Constants::MOBY."#$service_name"} + = $args{impl_prefix} . '::' . $service_name . 'Async'; + $DISPATCH_TABLE->{$WSRF::Constants::MOBY."#$service_name".'_submit'} + = $args{impl_prefix} . '::' . $service_name . 'Async'; + $DISPATCH_TABLE->{$WSRF::Constants::WSRPW .'/GetResourceProperty/GetResourcePropertyRequest'} + = "MOBY::Async::SimpleServer"; + $DISPATCH_TABLE->{$WSRF::Constants::WSRPW.'/GetMultipleResourceProperties/GetMultipleResourcePropertiesRequest'} + = "MOBY::Async::SimpleServer"; + $DISPATCH_TABLE->{$WSRF::Constants::WSRLW.'/ImmediateResourceTermination/DestroyRequest'} + = "MOBY::Async::SimpleServer"; + +# $DISPATCH_TABLE->{"http://biomoby.org/#$service_name"} = +# $args{impl_prefix} . '::' . $service_name; + } + # ...and write it back to a disk + require Data::Dumper; + open DISPATCH, ">$file_with_table" + or $self->throw ("Cannot open for writing '$file_with_table': $!\n"); + print DISPATCH Data::Dumper->Dump ( [$DISPATCH_TABLE], ['DISPATCH_TABLE'] ) + or $self->throw ("cannot write to '$file_with_table': $!\n"); + close DISPATCH; + $LOG->info ("Updated async services table '$file_with_table'. New contents: " . + $self->toString ($DISPATCH_TABLE)); +} + #----------------------------------------------------------------- # _check_outcode From kawas at dev.open-bio.org Mon Aug 25 12:27:28 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 25 Aug 2008 12:27:28 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808251627.m7PGRSPG007900@dev.open-bio.org> kawas Mon Aug 25 12:27:28 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOSES-MOBY/share In directory dev.open-bio.org:/tmp/cvs-serv7817/Perl/MOSES-MOBY/share Modified Files: moby-services.cfg.template Added Files: AsyncMobyServer.cgi.template Log Message: added async service support to moses. MOBY.pm has some documentation, but more is to come. *ASYNC_SERVICE_TABLE refers to an as yet unimplemented example. *for those updating to this version, please make sure to run moses-install.pl again. *this module now uses WSRF-Lite and MOBY-Client moby-live/Perl/MOSES-MOBY/share AsyncMobyServer.cgi.template,NONE,1.1 moby-services.cfg.template,1.3,1.4 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/share/moby-services.cfg.template,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/share/moby-services.cfg.template 2008/02/21 00:12:55 1.3 +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/share/moby-services.cfg.template 2008/08/25 16:27:28 1.4 @@ -18,8 +18,10 @@ [generators] outdir = @GENERATED_DIR@ impl.outdir = @SERVICES_DIR@ +impl.async.outdir = @ASYNC_SERVICES_DIR@ impl.package.prefix = Service impl.services.table = @SERVICES_TABLE@ +impl.async.services.table = @ASYNC_SERVICES_TABLE@ #ignore.existing.types = true [log] From kawas at dev.open-bio.org Mon Aug 25 12:27:28 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 25 Aug 2008 12:27:28 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808251627.m7PGRSX8007942@dev.open-bio.org> kawas Mon Aug 25 12:27:28 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES In directory dev.open-bio.org:/tmp/cvs-serv7817/Perl/MOSES-MOBY/lib/MOSES Modified Files: MOBY.pm Log Message: added async service support to moses. MOBY.pm has some documentation, but more is to come. *ASYNC_SERVICE_TABLE refers to an as yet unimplemented example. *for those updating to this version, please make sure to run moses-install.pl again. *this module now uses WSRF-Lite and MOBY-Client moby-live/Perl/MOSES-MOBY/lib/MOSES MOBY.pm,1.5,1.6 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY.pm 2008/05/10 00:23:44 1.5 +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY.pm 2008/08/25 16:27:28 1.6 @@ -117,6 +117,22 @@ slightly from its Java brother - mainly by not insisting to create all necessary objects in advance but building them on-the-fly. +=head2 New Features + +Some of the new features included in this release are: + +=over 4 + +=item * Support for CGI based moby services + +=item * Support for Asynchronous based moby services + +=item * Service developers can now enable the validation of namespaces + +=back + +=cut + =head2 Overview Perl Moses is a generator of Perl code - but this code does not need to be always stored in files, it can be generated on-the-fly every time a service is called. Also, there are up to four things to be generated: objects representing BioMoby data types, classes establishing bases for services, empty (but working) service implementation modules, and cgi-bin scripts, the entry points to BioMoby services. @@ -183,6 +199,8 @@ If you cannot create Symbolic links, or apache is not allowed to follow them, try this L +If you plan on developing asynchronous moby services, then don't forget to also create a symbolic link for B as well! + =item 5. Last but not least: call your service. There is a testing client that sends only empty data (so it can be used by any service): @@ -321,6 +339,9 @@ =item * IO::Prompt - try to install version 0.99.2 and not 0.99.4 +=item * + WSRF::Lite - for developing asynchronous moby services I + =back =cut @@ -423,6 +444,12 @@ installation. This is a cgi-bin script that will be started by your web server when a BioMoby request comes. More about it in deploying. + + * It creates a Perl-MoSeS/AsyncMobyServer.cgi file from a distributed + template, and updates their locations to reflect your local + installation. This is a cgi-bin script that will be started by + your web server when an asynchronous BioMoby request comes. More + about it in deploying. * For Perl Moses, the most important configuration option is the location of your local cache (a place where a BioMoby registered entities are mirrored). @@ -876,8 +903,10 @@ do it again in the run-time - therefore, the service implementation is generated slightly differently - with an option "use the base, rather than load the base" enabled.

- Option -c generates both a service base + Option -c generates both a service implementation as well as a CGI dispatcher script.

+ Option -A generates both a service implementation + as well as an asynchronous module (and it updates the dispatcher table, as well).

Option -u updates the service cache.

Option -f fills the service cache.

Option -R allows you to specify a registry endpoint. @@ -1373,6 +1402,8 @@ impl.outdir = /home/senger/Perl-MoSeS/services impl.package.prefix = Service impl.services.table = SERVICES_TABLE +impl.async.services.table = ASYNC_SERVICES_TABLE +  #ignore.existing.types = true   [log] @@ -1408,7 +1439,9 @@ B - A beginning of the package name of the generated service implementations. Default is 'Service'. For example, a service Mabuhay will be represented by a Perl module I. -B - A name (without any path) of a file with a services dispatch table. Default is 'SERVICES_TABLE'. +B - A name (without any path) of a file with a services dispatch table. Default is 'SERVICES_TABLE'. + +B - A name (without any path) of a file with an async services dispatch table. Default is 'ASYNC_SERVICES_TABLE'. B - A boolean property. If set to true ('true', 1, ' '+', 'yes', or 'ano') the data types generator will not check if a wanted data type module already exists on a disk but always generates into memory a new one. Default value is 'false' (meaning that the generator tries to use whatever already exists). @@ -1661,16 +1694,16 @@ its cgi-bin scripts are located (e.g. /usr/lib/cgi-bin). You may configure your Web Server to allow to have other cgi-bin script elsewhere, or to link them by symbolic links. An example how to create -a symbolic link is in installation. +a symbolic link is in 5 steps to your first service.

  • Then you need the cgi-bin script itself. Its name does not matter (except that it will become a part of your services -endpoint). The Perl Moses installation script creates a script named -MobyServer.cgi in /Perl-MoSeS directory. -Notice that it contains some hard-coded paths - that comes from the -installation time. Feel free to change them manually, or remove the -file and run install.pl again to re-create it. Here is the -whole script: +endpoint). The Perl Moses installation script creates two scripts named +MobyServer.cgi and AsyncMobyServer.cgi in +/Perl-MoSeS directory. Notice that it contains some hard-coded +paths - that comes from the installation time. Feel free to change them +manually, or remove the file and run install.pl again to +re-create it. Here is the whole script (for MobyServer.cgi):
  • @@ -1697,7 +1730,7 @@
     
     You see above that the script "requires" SERVICES_TABLE file (its name was taken during installation form the configuration). This is a dispatch table with a list of all BioMoby services served by this script. Yes, one cgi-bin script can serve more services - meaning that more services are registered with the same endpoint (and they are distinguished by their service names - which is, surprisingly, not part of the endpoint; but that's the way how Perl does it). 
     
    -These three things (a Web Server knowing about your cgi-bin script, a cgi-bin script knowing about Perl Moses code, and a dispatch table knowing what services to serve) are all you need to have your service deployed. 
    +These three things (a Web Server knowing about your cgi-bin scripts, a cgi-bin script knowing about Perl Moses code, and a dispatch table knowing what services to serve) are all you need to have your service deployed. 
     
     =cut
     
    @@ -1992,9 +2025,7 @@
     
     EEEE* (N) The generated service implementation could have a better Perl documentation, listing all available methods for inputs and outputs (the methods are already shown in the code, but having them also in the POD would help).
     
    -EEEE* (F) The service bases could have option to validate namespaces - as it is now in CommonSubs.pm.
    -
    -I will try to keep up-to-date the list of the recent changes in the ChangeLog L. 
    +I will try to keep up-to-date the list of the recent changes in the Changes file included with the distribution. 
     
     =cut
     
    
    
    From kawas at dev.open-bio.org  Mon Aug 25 12:27:29 2008
    From: kawas at dev.open-bio.org (Eddie Kawas)
    Date: Mon, 25 Aug 2008 12:27:29 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808251627.m7PGRTI2007958@dev.open-bio.org>
    
    
    kawas
    Mon Aug 25 12:27:28 EDT 2008
    Update of /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators/templates
    In directory dev.open-bio.org:/tmp/cvs-serv7817/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators/templates
    
    Added Files:
    	service-async.tt 
    Log Message:
    added async service support to moses. MOBY.pm has some documentation, but more is to come.
     *ASYNC_SERVICE_TABLE refers to an as yet unimplemented example.
     *for those updating to this version, please make sure to run moses-install.pl again.
     *this module now uses WSRF-Lite and MOBY-Client
    moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators/templates service-async.tt,NONE,1.1
    
    From kawas at dev.open-bio.org  Mon Aug 25 12:27:28 2008
    From: kawas at dev.open-bio.org (Eddie Kawas)
    Date: Mon, 25 Aug 2008 12:27:28 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808251627.m7PGRS2o007916@dev.open-bio.org>
    
    
    kawas
    Mon Aug 25 12:27:28 EDT 2008
    Update of /home/repository/moby/moby-live/Perl/MOSES-MOBY/share/samples
    In directory dev.open-bio.org:/tmp/cvs-serv7817/Perl/MOSES-MOBY/share/samples
    
    Added Files:
    	ASYNC_SERVICE_TABLE 
    Log Message:
    added async service support to moses. MOBY.pm has some documentation, but more is to come.
     *ASYNC_SERVICE_TABLE refers to an as yet unimplemented example.
     *for those updating to this version, please make sure to run moses-install.pl again.
     *this module now uses WSRF-Lite and MOBY-Client
    moby-live/Perl/MOSES-MOBY/share/samples ASYNC_SERVICE_TABLE,NONE,1.1
    
    From kawas at dev.open-bio.org  Mon Aug 25 12:28:57 2008
    From: kawas at dev.open-bio.org (Eddie Kawas)
    Date: Mon, 25 Aug 2008 12:28:57 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808251628.m7PGSvQC008024@dev.open-bio.org>
    
    
    kawas
    Mon Aug 25 12:28:57 EDT 2008
    Update of /home/repository/moby/moby-live/Perl/MOSES-MOBY/bin/scripts
    In directory dev.open-bio.org:/tmp/cvs-serv7985/Perl/MOSES-MOBY/bin/scripts
    
    Modified Files:
    	moses-install.pl moses-generate-services.pl 
    Log Message:
    added async service support to moses. MOBY.pm has some documentation, but more is to come.
     *for generating services, use -h option to see synopsis
     *installer now checks for async modules if user wishes to
    moby-live/Perl/MOSES-MOBY/bin/scripts moses-install.pl,1.4,1.5 moses-generate-services.pl,1.5,1.6
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/bin/scripts/moses-install.pl,v
    retrieving revision 1.4
    retrieving revision 1.5
    diff -u -r1.4 -r1.5
    --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/bin/scripts/moses-install.pl	2008/04/29 19:59:43	1.4
    +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/bin/scripts/moses-install.pl	2008/08/25 16:28:57	1.5
    @@ -63,10 +63,19 @@
     			  IO::Scalar
     			  Unicode::String
     			  ) ) {
    -	check_module ($module);
    +		check_module ($module);
         }
    +    # check for async libraries if user wants to ....
    +    print STDOUT "Shall we check for the moby-async libraries\n\t(do this only if you plan on creating async moby services)? y/n [n]";
    +    my $tmp = ;
    +    $tmp =~ s/\s//g; 
    +    if ($tmp =~ /y/i) {
    +    	check_module('MOBY::Client::Central');
    +		check_module('WSRF::Lite'); 
    +    }
    +
         if (MSWIN) {
    -	check_module ('Term::ReadLine');
    +		check_module ('Term::ReadLine');
     	{
     	    local $^W = 0;
     	    $SimplePrompt::Terminal = Term::ReadLine->new ('Installation');
    @@ -241,6 +250,8 @@
         "$pmoses_home/services";
     my $services_table = $MOBYCFG::GENERATORS_IMPL_SERVICES_TABLE ||
         'SERVICES_TABLE';
    +my $async_services_table = $MOBYCFG::GENERATORS_IMPL_SERVICES_TABLE ||
    +    'ASYNC_SERVICES_TABLE';
     
     my $cgibin_file = "$pmoses_home/MobyServer.cgi";
     if (-e $cgibin_file and ! $opt_F) {
    @@ -259,6 +270,27 @@
         chmod 0755, $cgibin_file;   # everybody can execute
     }
     
    +# AsyncMobyServer.cgi file
    +my $async_services_table = $MOBYCFG::GENERATORS_ASYNC_IMPL_SERVICES_TABLE ||
    +    'ASYNC_SERVICES_TABLE';
    +
    +my $async_cgibin_file = "$pmoses_home/AsyncMobyServer.cgi";
    +if (-e $async_cgibin_file and ! $opt_F) {
    +    say "\nWeb Server file '$async_cgibin_file' exists.";
    +    say "It will not be overwritten unless you start 'install.pl -F'.\n";
    +} else {
    +    file_from_template
    +	($async_cgibin_file,
    +	 File::ShareDir::dist_file('MOSES-MOBY','AsyncMobyServer.cgi.template'),
    +	 'Web Server file',
    +	 { '@PMOSES_HOME@'    => $pmoses_home,
    +	   '@GENERATED_DIR@'  => $generated_dir,
    +	   '@SERVICES_DIR@'   => $services_dir,
    +	   '@ASYNC_SERVICE_TABLE@' => $async_services_table,
    +       } );
    +    chmod 0755, $async_cgibin_file;   # everybody can execute
    +}
    +
     # directory for local cache
     my $cachedir = $MOBYCFG::CACHEDIR ||
         prompt_for_directory ( 'Directory for local cache',
    @@ -316,6 +348,7 @@
     	   '@GENERATED_DIR@'    		=> $generated_dir,
     	   '@SERVICES_DIR@'     		=> $services_dir,
     	   '@SERVICES_TABLE@'   		=> $services_table,
    +	   '@ASYNC_SERVICES_TABLE@'   	=> $async_services_table,
     	   '@LOG4PERL_FILE@'    		=> $log4perl_file,
     	   '@LOGFILE@'          		=> $log_file1,
     	   '@USER_REGISTRIES_FILE_DIR@'	=> $pmoses_home,
    
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/bin/scripts/moses-generate-services.pl,v
    retrieving revision 1.5
    retrieving revision 1.6
    diff -u -r1.5 -r1.6
    --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/bin/scripts/moses-generate-services.pl	2008/05/09 20:26:04	1.5
    +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/bin/scripts/moses-generate-services.pl	2008/08/25 16:28:57	1.6
    @@ -8,16 +8,16 @@
     
     # some command-line options
     use Getopt::Std;
    -use vars qw/ $opt_h $opt_d $opt_R $opt_v $opt_a $opt_s $opt_b $opt_f $opt_u $opt_F $opt_S $opt_t $opt_c /;
    -getopts('hdvasbfuFStcR:');
    +use vars qw/ $opt_h $opt_A $opt_d $opt_R $opt_v $opt_a $opt_s $opt_b $opt_f $opt_u $opt_F $opt_S $opt_t $opt_c /;
    +getopts('hdvasbfuFStcAR:');
     # usage
     if (not($opt_u or $opt_f)) {
     if ($opt_h or (not $opt_a and @ARGV == 0)) {
         print STDOUT <<'END_OF_USAGE';
     Generate Services.
    -Usage: [-vds] [-R registry-string] [-b|S|t] authority [service-name] [service-name...]
    -       [-vds] [-R registry-string] [-b|S|t] authority
    -       [-vd] [-R registry-string] [-b|S|t] -a
    +Usage: [-vds] [-R registry-string] [-b|S|t|c|A] authority [service-name] [service-name...]
    +       [-vds] [-R registry-string] [-b|S|t|c|A] authority
    +       [-vd] [-R registry-string] [-b|S|t|c|A] -a
            [-R registry-string] [-fu]
     
         It also needs to get a location of a local cache (and potentially
    @@ -40,9 +40,10 @@
                implementation module has enabled option to read the base
                statically (that is why it is also generated here)
         -i ... generate an implementation of the given service
    -    -c ... generate a cgi based implementation of the given service       
    +    -c ... generate a cgi based implementation of the given service
    +    -A ... generate an asynchronous based implementation of the given service       
         -t ... update dispatch table of services (a table used by the
    -	   cgi-bin script and SOAP::Lite to dispatch requests);
    +	       cgi-bin script and SOAP::Lite to dispatch requests);
                this table is also updated automatically when options
                -i or -S are given
         If none of -b, -S, -t, -c is given, it generates/show implementation
    @@ -119,6 +120,10 @@
     	$generator->generate_cgi;
         } elsif ($opt_t) {
     	$generator->update_table;
    +    } elsif ($opt_A) {
    +	$generator->generate_impl;
    +	$generator->generate_async;
    +	$generator->update_async_table;
         } else {
     	$generator->generate_impl;
     	$generator->update_table;
    @@ -139,6 +144,11 @@
     		$generator->generate_cgi(service_names => [@ARGV],
     				       authority     => $authority,
     				       outcode       => \$code);
    +    }elsif ($opt_A) {
    +		$generator->generate_async(service_names => [@ARGV],
    +					       authority     => $authority,
    +					       outcode       => \$code);
    +		#$generator->update_async_table;
         } else {
     	    $generator->generate_impl (service_names => [@ARGV],
     				       authority     => $authority,
    @@ -158,7 +168,18 @@
     				       authority     => $authority);
     	    $generator->update_table (service_names => [@ARGV],
     				      authority     => $authority);
    -	}  elsif ($opt_c) {
    +	} elsif ($opt_A) {
    +	    $generator->generate_impl(
    +					service_names => [@ARGV],
    +					authority     => $authority,
    +					force_over    => $opt_F);
    +	    $generator->generate_async (service_names => [@ARGV],
    +				       authority     => $authority,
    +				       force_over    => $opt_F,
    +				       static_impl   => 1);
    +	    $generator->update_async_table (service_names => [@ARGV],
    +				      authority     => $authority);
    +	} elsif ($opt_c) {
         	$generator->generate_impl(
     					service_names => [@ARGV],
     					authority     => $authority,
    
    
    From kawas at dev.open-bio.org  Wed Aug 27 14:12:30 2008
    From: kawas at dev.open-bio.org (Eddie Kawas)
    Date: Wed, 27 Aug 2008 14:12:30 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808271812.m7RICUpQ013230@dev.open-bio.org>
    
    
    kawas
    Wed Aug 27 14:12:29 EDT 2008
    Update of /home/repository/moby/moby-live/Docs/MOBY-S_API/Perl
    In directory dev.open-bio.org:/tmp/cvs-serv13191/Docs/MOBY-S_API/Perl
    
    Modified Files:
    	construct_moses_soap_service.html 
    	construct_moses_cgi_service.html 
    Log Message:
    changed the service type for these services
    moby-live/Docs/MOBY-S_API/Perl construct_moses_soap_service.html,1.1,1.2 construct_moses_cgi_service.html,1.1,1.2
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Docs/MOBY-S_API/Perl/construct_moses_soap_service.html,v
    retrieving revision 1.1
    retrieving revision 1.2
    diff -u -r1.1 -r1.2
    --- /home/repository/moby/moby-live/Docs/MOBY-S_API/Perl/construct_moses_soap_service.html	2008/05/01 21:44:46	1.1
    +++ /home/repository/moby/moby-live/Docs/MOBY-S_API/Perl/construct_moses_soap_service.html	2008/08/27 18:12:29	1.2
    @@ -54,7 +54,7 @@
     my $serviceName = "getReverseEchoString";
     
     # give our service a service type
    -my $serviceType = "Retrieval";
    +my $serviceType = "TutorialService";
     
     # the uri of the service provider
     my $authURI = "samples.jmoby.net";
    
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Docs/MOBY-S_API/Perl/construct_moses_cgi_service.html,v
    retrieving revision 1.1
    retrieving revision 1.2
    diff -u -r1.1 -r1.2
    --- /home/repository/moby/moby-live/Docs/MOBY-S_API/Perl/construct_moses_cgi_service.html	2008/05/06 17:15:00	1.1
    +++ /home/repository/moby/moby-live/Docs/MOBY-S_API/Perl/construct_moses_cgi_service.html	2008/08/27 18:12:29	1.2
    @@ -54,7 +54,7 @@
     my $serviceName = "getReverseEchoString";
     
     # give our service a service type
    -my $serviceType = "Retrieval";
    +my $serviceType = "TutorialService";
     
     # the uri of the service provider
     my $authURI = "samples.jmoby.net";
    
    
    From jmrc at dev.open-bio.org  Fri Aug 29 10:03:16 2008
    From: jmrc at dev.open-bio.org (José Manuel Rodríguez Carrasco)
    Date: Fri, 29 Aug 2008 10:03:16 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808291403.m7TE3G6O018661@dev.open-bio.org>
    
    
    jmrc
    Fri Aug 29 10:03:16 EDT 2008
    Update of /home/repository/moby/moby-live/Docs/asyncDocs
    In directory dev.open-bio.org:/tmp/cvs-serv18625/Docs/asyncDocs
    
    Modified Files:
    	README.txt 
    Log Message:
    *	Documentation and examples about multiple asynchronous services
    	has been added.
    *	Some cosmetic fixes.
    
    moby-live/Docs/asyncDocs README.txt,1.1,1.2
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Docs/asyncDocs/README.txt,v
    retrieving revision 1.1
    retrieving revision 1.2
    diff -u -r1.1 -r1.2
    --- /home/repository/moby/moby-live/Docs/asyncDocs/README.txt	2008/03/10 13:13:01	1.1
    +++ /home/repository/moby/moby-live/Docs/asyncDocs/README.txt	2008/08/29 14:03:16	1.2
    @@ -23,7 +23,7 @@
     	(asynchronous service requests) will be passed to the Services::AsyncServices module.
     	The methods defined in the WS-ResourceProperties spec. ("GetResourceProperty" and
     	"GetMultipleResourceProperties") and the methods of WS-ResourceLifetime spec. ("Destroy")
    -	will be passed to the same module, as well.
    +	will be passed to the module MOBY::Async::SimpleServer, which knows how to handle them.
     
     * The service module:
     
    @@ -40,8 +40,7 @@
     		use SOAP::Lite;
     		use MOBY::CommonSubs qw(:all);
     		use MOBY::Async::SimpleServer;
    -		use vars qw(@ISA);
    -		@ISA = qw(MOBY::Async::SimpleServer);
    +		use base qw(MOBY::Async::SimpleServer);
     
     
     	We are using MOBY::CommonSubs because it exports many useful subroutines that we will
    @@ -67,7 +66,7 @@
     					return $self->sync($sayHello, $TIMEOUT, @_);
     
             "sync" expects three parameters:
    -			- a variable which is the subroutine that will execute the service ("$sayHello");
    +			- a reference to the subroutine that will execute the service ("$sayHello");
     			- the allowed timeout for executing the service ("$TIMEOUT");
     			- and the input data of the service ("@_").
     
    @@ -77,7 +76,7 @@
     			return $self->async($sayHello, @_);
     
     	"async" expects two parameters:
    -			- a variable which is the subroutine that will execute the service ("$sayHello");
    +			- a reference to the subroutine that will execute the service ("$sayHello");
     			- and the input data of the service ("@_").
     
     * The WSDL:
    
    
    From jmrc at dev.open-bio.org  Fri Aug 29 10:03:16 2008
    From: jmrc at dev.open-bio.org (José Manuel Rodríguez Carrasco)
    Date: Fri, 29 Aug 2008 10:03:16 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808291403.m7TE3Gug018683@dev.open-bio.org>
    
    
    jmrc
    Fri Aug 29 10:03:16 EDT 2008
    Update of /home/repository/moby/moby-live/Docs/asyncDocs/async-MOBY-test
    In directory dev.open-bio.org:/tmp/cvs-serv18625/Docs/asyncDocs/async-MOBY-test
    
    Modified Files:
    	AsyncService.pm async-MOBY-test.cgi.pl 
    Added Files:
    	OtherService.pm multasync-MOBY-test.cgi 
    	multasync-MOBY-test.cgi.pl 
    Log Message:
    *	Documentation and examples about multiple asynchronous services
    	has been added.
    *	Some cosmetic fixes.
    
    moby-live/Docs/asyncDocs/async-MOBY-test OtherService.pm,NONE,1.1 multasync-MOBY-test.cgi,NONE,1.1 multasync-MOBY-test.cgi.pl,NONE,1.1 AsyncService.pm,1.3,1.4 async-MOBY-test.cgi.pl,1.2,1.3
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Docs/asyncDocs/async-MOBY-test/AsyncService.pm,v
    retrieving revision 1.3
    retrieving revision 1.4
    diff -u -r1.3 -r1.4
    --- /home/repository/moby/moby-live/Docs/asyncDocs/async-MOBY-test/AsyncService.pm	2008/06/30 10:31:26	1.3
    +++ /home/repository/moby/moby-live/Docs/asyncDocs/async-MOBY-test/AsyncService.pm	2008/08/29 14:03:16	1.4
    @@ -3,8 +3,8 @@
     use SOAP::Lite;
     use MOBY::CommonSubs qw(:all); 
     use MOBY::Async::SimpleServer;
    -use vars qw(@ISA);
    - at ISA = qw(MOBY::Async::SimpleServer);
    +
    +use base qw(MOBY::Async::SimpleServer);
     
     # This variable is a subroutine which carry out the core of the service
     my $sayHello = sub
    
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Docs/asyncDocs/async-MOBY-test/async-MOBY-test.cgi.pl,v
    retrieving revision 1.2
    retrieving revision 1.3
    diff -u -r1.2 -r1.3
    --- /home/repository/moby/moby-live/Docs/asyncDocs/async-MOBY-test/async-MOBY-test.cgi.pl	2008/04/23 13:08:10	1.2
    +++ /home/repository/moby/moby-live/Docs/asyncDocs/async-MOBY-test/async-MOBY-test.cgi.pl	2008/08/29 14:03:16	1.3
    @@ -3,6 +3,7 @@
     use SOAP::Transport::HTTP;
     
     use MOBY::Async::WSRF;
    +use MOBY::Async::SimpleServer;
     
     use AsyncService; # the name of your Service modules
     
    @@ -16,10 +17,8 @@
     $server->dispatch_with({
              $WSRF::Constants::MOBY.'#sayHello'        => 'AsyncService',
              $WSRF::Constants::MOBY.'#sayHello_submit' => 'AsyncService',
    -         $WSRF::Constants::MOBY.'#sayGoodbye'        => 'AsyncService',
    -         $WSRF::Constants::MOBY.'#sayGoodbye_submit' => 'AsyncService',
    -         $WSRF::Constants::WSRPW.'/GetResourceProperty/GetResourcePropertyRequest' => 'AsyncService',
    -	 $WSRF::Constants::WSRPW.'/GetMultipleResourceProperties/GetMultipleResourcePropertiesRequest' => 'AsyncService',
    -	 $WSRF::Constants::WSRLW.'/ImmediateResourceTermination/DestroyRequest' => 'AsyncService',
    +         $WSRF::Constants::WSRPW.'/GetResourceProperty/GetResourcePropertyRequest' => 'MOBY::Async::SimpleServer',
    +	 $WSRF::Constants::WSRPW.'/GetMultipleResourceProperties/GetMultipleResourcePropertiesRequest' => 'MOBY::Async::SimpleServer',
    +	 $WSRF::Constants::WSRLW.'/ImmediateResourceTermination/DestroyRequest' => 'MOBY::Async::SimpleServer',
     });
     $server->handle();
    
    
    From jmrc at dev.open-bio.org  Fri Aug 29 10:03:17 2008
    From: jmrc at dev.open-bio.org (José Manuel Rodríguez Carrasco)
    Date: Fri, 29 Aug 2008 10:03:17 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808291403.m7TE3HrM018701@dev.open-bio.org>
    
    
    jmrc
    Fri Aug 29 10:03:16 EDT 2008
    Update of /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY
    In directory dev.open-bio.org:/tmp/cvs-serv18625/Perl/MOBY-Server/lib/MOBY
    
    Modified Files:
    	Async.pm 
    Log Message:
    *	Documentation and examples about multiple asynchronous services
    	has been added.
    *	Some cosmetic fixes.
    
    moby-live/Perl/MOBY-Server/lib/MOBY Async.pm,1.3,1.4
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async.pm,v
    retrieving revision 1.3
    retrieving revision 1.4
    diff -u -r1.3 -r1.4
    --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async.pm	2008/04/23 13:08:11	1.3
    +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async.pm	2008/08/29 14:03:16	1.4
    @@ -60,10 +60,11 @@
     B
     
       #!/usr/bin/perl
    -  BEGIN { @INC = ("/path/to/my/libs", @INC); } 
    +  use lib "/path/to/my/libs";
       use strict;
       use SOAP::Transport::HTTP;
       use MOBY::Async::WSRF;
    +  use MOBY::Async::SimpleServer;
       use HelloWorld;
     
       my $server = new SOAP::Transport::HTTP::CGI;
    @@ -73,9 +74,9 @@
       $server->dispatch_with({
         $WSRF::Constants::MOBY.'#sayHello'        => 'HelloWorld',
         $WSRF::Constants::MOBY.'#sayHello_submit' => 'HelloWorld',
    -    $WSRF::Constants::WSRPW.'/GetResourceProperty/GetResourcePropertyRequest' => 'HelloWorld',
    -    $WSRF::Constants::WSRPW.'/GetMultipleResourceProperties/GetMultipleResourcePropertiesRequest' => 'HelloWorld',
    -    $WSRF::Constants::WSRLW.'/ImmediateResourceTermination/DestroyRequest' => 'HelloWorld',
    +    $WSRF::Constants::WSRPW.'/GetResourceProperty/GetResourcePropertyRequest' => 'MOBY::Async::SimpleServer',
    +    $WSRF::Constants::WSRPW.'/GetMultipleResourceProperties/GetMultipleResourcePropertiesRequest' => 'MOBY::Async::SimpleServer',
    +    $WSRF::Constants::WSRLW.'/ImmediateResourceTermination/DestroyRequest' => 'MOBY::Async::SimpleServer',
       });
       $server->handle();
     
    
    
    From jmrc at dev.open-bio.org  Fri Aug 29 10:16:02 2008
    From: jmrc at dev.open-bio.org (José Manuel Rodríguez Carrasco)
    Date: Fri, 29 Aug 2008 10:16:02 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808291416.m7TEG2eg018777@dev.open-bio.org>
    
    
    jmrc
    Fri Aug 29 10:16:02 EDT 2008
    Update of /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async
    In directory dev.open-bio.org:/tmp/cvs-serv18741/Perl/MOBY-Server/lib/MOBY/Async
    
    Modified Files:
    	WSRF.pm 
    Log Message:
    *	Directory where temporal results from async services are saved
    	is not hard-coded any more. Now it depends on TMPDIR environment
    	variable.
    
    moby-live/Perl/MOBY-Server/lib/MOBY/Async WSRF.pm,1.4,1.5
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async/WSRF.pm,v
    retrieving revision 1.4
    retrieving revision 1.5
    diff -u -r1.4 -r1.5
    --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async/WSRF.pm	2008/08/18 15:52:17	1.4
    +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async/WSRF.pm	2008/08/29 14:16:02	1.5
    @@ -36,7 +36,8 @@
     $WSRF::WSRP::MobyPrivatePrefixes    = ['pid', 'input'];
     $WSRF::WSRP::MobyPropertiesPrefixes = ['status', 'result'];
     
    -$WSRF::Constants::Data  = '/tmp/moby_';
    +$WSRF::Constants::DataDir  = (exists($ENV{TMPDIR}) && defined($ENV{TMPDIR}) && $ENV{TMPDIR} ne '')?$ENV{TMPDIR}:'/tmp';
    +$WSRF::Constants::DataPrefix  = 'moby_';
     $WSRF::Constants::MOBY  = 'http://biomoby.org/';
     $WSRF::Constants::MOBY_MESSAGE_NS  = 'http://www.biomoby.org/moby';
     #$WSRF::Constants::WSA   = 'http://www.w3.org/2005/08/addressing';
    @@ -413,7 +414,7 @@
     	my $self = shift @_;
     	my $envelope = pop @_;
     	my $lock = WSRF::MobyFile->new($envelope);
    -	my $file = $WSRF::Constants::Data.$lock->ID();
    +	my $file = $WSRF::Constants::DataDir . '/' . $WSRF::Constants::DataPrefix.$lock->ID();
     	unlink $file or WSRF::BaseFaults::die_with_fault( $envelope, (
     		BaseFault   => "ResourceNotDestroyedFault",
     		Description => "Could not remove WS-Resource file"
    @@ -619,7 +620,7 @@
     	$ID_clipped =~ s/-\w*//o;
     	
     	# File containing resource properties
    -	my $path = $WSRF::Constants::Data.$ID_clipped;
    +	my $path = $WSRF::Constants::DataDir . '/' . $WSRF::Constants::DataPrefix.$ID_clipped;
     	WSRF::BaseFaults::die_with_fault( $envelope, (
     		BaseFault   => "ResourceUnknownFault",
     		Description => "No WS-Resource with Identifer $ID"
    
    
    From jmrc at dev.open-bio.org  Fri Aug 29 12:09:44 2008
    From: jmrc at dev.open-bio.org (José Manuel Rodríguez Carrasco)
    Date: Fri, 29 Aug 2008 12:09:44 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808291609.m7TG9ibt019937@dev.open-bio.org>
    
    
    jmrc
    Fri Aug 29 12:09:44 EDT 2008
    Update of /home/repository/moby/moby-live/Docs/ExceptionReporting
    In directory dev.open-bio.org:/tmp/cvs-serv19902/ExceptionReporting
    
    Log Message:
    Directory /home/repository/moby/moby-live/Docs/ExceptionReporting added to the repository
    
    moby-live/Docs/ExceptionReporting - New directory
    rcsdiff: /home/repository/moby/moby-live/Docs/ExceptionReporting/RCS/-,v: No such file or directory
    
    rcsdiff: /home/repository/moby/moby-live/Docs/ExceptionReporting/RCS/New,v: No such file or directory
    
    rcsdiff: /home/repository/moby/moby-live/Docs/ExceptionReporting/RCS/directory,v: No such file or directory
    
    
    From jmrc at dev.open-bio.org  Fri Aug 29 12:18:51 2008
    From: jmrc at dev.open-bio.org (José Manuel Rodríguez Carrasco)
    Date: Fri, 29 Aug 2008 12:18:51 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808291618.m7TGIpfs020306@dev.open-bio.org>
    
    
    jmrc
    Fri Aug 29 12:18:51 EDT 2008
    Update of /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception
    In directory dev.open-bio.org:/tmp/cvs-serv20192
    
    Modified Files:
    	MobyException.pm MobyExceptionCodes.pm 
    Log Message:
    *	From Exception proposal (v2.02), both 'refQueryID' and 'refElement' 
    	are optional attributes.
    	We have fixed a bug which a 'refQueryId' was not optional attribute.
    *	Deleting duplicate exception code in perldoc documentation.
    
    
    moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception MobyException.pm,1.1,1.2 MobyExceptionCodes.pm,1.1,1.2
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception/MobyException.pm,v
    retrieving revision 1.1
    retrieving revision 1.2
    diff -u -r1.1 -r1.2
    --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception/MobyException.pm	2008/02/21 00:21:28	1.1
    +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception/MobyException.pm	2008/08/29 16:18:51	1.2
    @@ -187,9 +187,12 @@
     
     		# Chek if there is article Name 
     		my ($refElement) = '';
    -		if (defined($self->{refElement}) && ($self->{refElement} ne '')) { $refElement = "refElement='".$self->{refElement}."'" ; }
    +		if (exists($self->{refElement}) && defined($self->{refElement}) && ($self->{refElement} ne '')) { $refElement = "refElement='".$self->{refElement}."'" ; }
     
    -		$exceptionResponse = "\n\t".$self->{code}."\n\t$infoMessage\n";
    +		my ($refQueryID) = '';
    +		if (exists($self->{queryID}) && defined($self->{queryID}) && ($self->{queryID} ne '')) { $refQueryID = "refQueryID='".$self->{queryID}."'" ; }
    +
    +		$exceptionResponse = "\n\t".$self->{code}."\n\t$infoMessage\n";
     
     	} else {
     
    @@ -200,8 +203,11 @@
     		croak("code of exception is wrong or does not exists") unless(defined($standardMessage));
     
     		# Chek if there is article Name 
    -		my ($refElement) = '';
    -		if (defined($self->{refElement}) && ($self->{refElement} ne '')) { $refElement = "refElement='".$self->{refElement}."'" ; }
    +                my ($refElement) = '';
    +                if (exists($self->{refElement}) && defined($self->{refElement}) && ($self->{refElement} ne '')) { $refElement = "refElement='".$self->{refElement}."'" ; }
    +
    +                my ($refQueryID) = '';
    +                if (exists($self->{queryID}) && defined($self->{queryID}) && ($self->{queryID} ne '')) { $refQueryID = "refQueryID='".$self->{queryID}."'" ; }
     
     		# User could add dynamic message into satandard exception message
     		my ($exceptionMessage) = (defined($self->{message})) ? $standardMessage.$self->{message} : $standardMessage;
    @@ -209,11 +215,11 @@
     		if (defined($self->{type}) && ($self->{type} eq 'warning' || $self->{type} eq 'error')) {
     			if ($self->{type} eq 'error') {
     
    -				$exceptionResponse = "\n\t".$self->{code}."\n\t$exceptionMessage\n";
    +				$exceptionResponse = "\n\t".$self->{code}."\n\t$exceptionMessage\n";
     
     			} elsif ($self->{type} eq 'warning') {
     
    -				$exceptionResponse = "\n\t".$self->{code}."\n\t$exceptionMessage\n";
    +				$exceptionResponse = "\n\t".$self->{code}."\n\t$exceptionMessage\n";
     
     			} else {
     				croak("type of exception is wrong or does not exists");
    
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception/MobyExceptionCodes.pm,v
    retrieving revision 1.1
    retrieving revision 1.2
    diff -u -r1.1 -r1.2
    --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception/MobyExceptionCodes.pm	2008/02/21 00:21:28	1.1
    +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception/MobyExceptionCodes.pm	2008/08/29 16:18:51	1.2
    @@ -357,11 +357,6 @@
     			Service require parameter X
     		
     		
    -			221
    -			INPUT_REQUIRED_PARAMETER
    -			Service require parameter X
    -		
    -		
     			222
     			INPUT_INCORRECT_PARAMETER
     			Incorrect parameter X
    
    
    From jmrc at dev.open-bio.org  Fri Aug 29 12:23:39 2008
    From: jmrc at dev.open-bio.org (José Manuel Rodríguez Carrasco)
    Date: Fri, 29 Aug 2008 12:23:39 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808291623.m7TGNdim020391@dev.open-bio.org>
    
    
    jmrc
    Fri Aug 29 12:23:39 EDT 2008
    Update of /home/repository/moby/moby-live/Docs/ExceptionReporting
    In directory dev.open-bio.org:/tmp/cvs-serv20359/ExceptionReporting
    
    Added Files:
    	0501INB-ExceptionReporting-v2.02.pdf 
    	INB-ExceptionReporting-CodeDocumentation-v2.03.pdf 
    	MobyExceptionCodes.html README.txt 
    Log Message:
    Documentation of Exception Reporting in MOBY-S:
    
    * README.txt, describes every document file.
    * 0501INB-ExceptionReporting-v2.02.pdf, official proposal.
    * INB-ExceptionReporting-CodeDocumentation-v2.03.pdf, not official proposal. It
    is a code documentation.
    * MobyExceptionCodes.html, web document describing exception codes.
    
    
    
    
    moby-live/Docs/ExceptionReporting 0501INB-ExceptionReporting-v2.02.pdf,NONE,1.1 INB-ExceptionReporting-CodeDocumentation-v2.03.pdf,NONE,1.1 MobyExceptionCodes.html,NONE,1.1 README.txt,NONE,1.1
    
    From kawas at dev.open-bio.org  Wed Aug  6 14:47:55 2008
    From: kawas at dev.open-bio.org (Eddie Kawas)
    Date: Wed, 6 Aug 2008 10:47:55 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808061447.m76EltjE028762@dev.open-bio.org>
    
    
    kawas
    Wed Aug  6 10:47:55 EDT 2008
    Update of /home/repository/moby/moby-live/Perl/MOBY-Client
    In directory dev.open-bio.org:/tmp/cvs-serv28727/Perl/MOBY-Client
    
    Modified Files:
    	populate_libs.pl 
    Log Message:
    realized that Async.pm was not included in the Moby-Client module.
    moby-live/Perl/MOBY-Client populate_libs.pl,1.5,1.6
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Perl/MOBY-Client/populate_libs.pl,v
    retrieving revision 1.5
    retrieving revision 1.6
    diff -u -r1.5 -r1.6
    --- /home/repository/moby/moby-live/Perl/MOBY-Client/populate_libs.pl	2008/03/13 19:12:44	1.5
    +++ /home/repository/moby/moby-live/Perl/MOBY-Client/populate_libs.pl	2008/08/06 14:47:54	1.6
    @@ -8,7 +8,7 @@
     # this module copies the files from MOBY-Server/lib/*.pm that are required for MOBY-Client to create a distribution
     use Data::Dumper;
     
    -my @MOBY 		= qw ( CommonSubs.pm CrossReference.pm MobyXMLConstants.pm );
    +my @MOBY 		= qw ( Async.pm CommonSubs.pm CrossReference.pm MobyXMLConstants.pm );
     my @Async 		= qw ( LSAE.pm Service.pm SimpleServer.pm WSRF.pm );
     my @Client		= qw ( Central.pm CollectionArticle.pm OntologyServer.pm Registration.pm SecondaryArticle.pm Service.pm ServiceInstance.pm SimpleArticle.pm SimpleInput.pm );
     my @Exception 	= qw ( MobyException.pm MobyExceptionCodes.pm );
    
    
    
    From kawas at dev.open-bio.org  Wed Aug  6 14:48:50 2008
    From: kawas at dev.open-bio.org (Eddie Kawas)
    Date: Wed, 6 Aug 2008 10:48:50 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808061448.m76Emo2K028802@dev.open-bio.org>
    
    
    kawas
    Wed Aug  6 10:48:49 EDT 2008
    Update of /home/repository/moby/moby-live/Perl/MOBY-Client
    In directory dev.open-bio.org:/tmp/cvs-serv28767/Perl/MOBY-Client
    
    Modified Files:
    	MANIFEST 
    Log Message:
    realized that Async.pm was not included in the Moby-Client module. updated the manifest
    moby-live/Perl/MOBY-Client MANIFEST,1.9,1.10
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Perl/MOBY-Client/MANIFEST,v
    retrieving revision 1.9
    retrieving revision 1.10
    diff -u -r1.9 -r1.10
    --- /home/repository/moby/moby-live/Perl/MOBY-Client/MANIFEST	2008/05/07 18:27:31	1.9
    +++ /home/repository/moby/moby-live/Perl/MOBY-Client/MANIFEST	2008/08/06 14:48:49	1.10
    @@ -12,6 +12,7 @@
     inc/Module/Install/Win32.pm
     inc/Module/Install/WriteAll.pm
     INSTALL
    +lib/MOBY/Async.pm
     lib/MOBY/Async/LSAE.pm
     lib/MOBY/Async/Service.pm
     lib/MOBY/Async/SimpleServer.pm
    
    
    
    From senger at dev.open-bio.org  Fri Aug  8 11:11:53 2008
    From: senger at dev.open-bio.org (Martin Senger)
    Date: Fri, 8 Aug 2008 07:11:53 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808081111.m78BBr9K004852@dev.open-bio.org>
    
    
    senger
    Fri Aug  8 07:11:53 EDT 2008
    Update of /home/repository/moby/moby-live/Java
    In directory dev.open-bio.org:/tmp/cvs-serv4833
    
    Modified Files:
    	build.xml 
    Log Message:
    added maven artifact jmoby-dashboard
    moby-live/Java build.xml,1.72,1.73
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Java/build.xml,v
    retrieving revision 1.72
    retrieving revision 1.73
    diff -u -r1.72 -r1.73
    --- /home/repository/moby/moby-live/Java/build.xml	2008/03/03 14:11:08	1.72
    +++ /home/repository/moby/moby-live/Java/build.xml	2008/08/08 11:11:52	1.73
    @@ -437,6 +437,8 @@
         
         
    +    
         
          
           
         
       
    -     
    +     
           
           
             
    
    
    
    From senger at dev.open-bio.org  Fri Aug  8 11:11:53 2008
    From: senger at dev.open-bio.org (Martin Senger)
    Date: Fri, 8 Aug 2008 07:11:53 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808081111.m78BBrrE004874@dev.open-bio.org>
    
    
    senger
    Fri Aug  8 07:11:53 EDT 2008
    Update of /home/repository/moby/moby-live/Java/xmls
    In directory dev.open-bio.org:/tmp/cvs-serv4833/xmls
    
    Modified Files:
    	maven.xml upload2maven.xml 
    Log Message:
    added maven artifact jmoby-dashboard
    moby-live/Java/xmls maven.xml,1.3,1.4 upload2maven.xml,1.2,1.3
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Java/xmls/maven.xml,v
    retrieving revision 1.3
    retrieving revision 1.4
    diff -u -r1.3 -r1.4
    --- /home/repository/moby/moby-live/Java/xmls/maven.xml	2008/04/21 13:44:05	1.3
    +++ /home/repository/moby/moby-live/Java/xmls/maven.xml	2008/08/08 11:11:53	1.4
    @@ -28,7 +28,8 @@
     
     
     
    -
    +
    +
     
     
     
    @@ -37,7 +38,7 @@
       description="Fetch Maven library - needed only the first time.">
     
       
    -  
    +  
     
       
       
     
       
    -  
    -  
    +  
    +  
     
       
    
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Java/xmls/upload2maven.xml,v
    retrieving revision 1.2
    retrieving revision 1.3
    diff -u -r1.2 -r1.3
    --- /home/repository/moby/moby-live/Java/xmls/upload2maven.xml	2008/03/13 16:49:35	1.2
    +++ /home/repository/moby/moby-live/Java/xmls/upload2maven.xml	2008/08/08 11:11:53	1.3
    @@ -21,12 +21,13 @@
     
     
     
    -
    +
     
     
    -  
    +  
     
    -  
    +  
         
           
         
    @@ -34,15 +35,35 @@
       
     
     
    +
    +  
    +
    +  
    +    
    +      
    +    
    +    
    +  
    +
    +
     
     
     
     
     
    -
    +
     
     
    -  
    +  
         
       
     
    +
    +
    +  
    +    
    +  
    +
    
    
    
    From senger at dev.open-bio.org  Fri Aug  8 11:12:58 2008
    From: senger at dev.open-bio.org (Martin Senger)
    Date: Fri, 8 Aug 2008 07:12:58 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808081112.m78BCwsR004911@dev.open-bio.org>
    
    
    senger
    Fri Aug  8 07:12:58 EDT 2008
    Update of /home/repository/moby/moby-live/Java/xmls
    In directory dev.open-bio.org:/tmp/cvs-serv4896/xmls
    
    Added Files:
    	project-dashboard.pom 
    Log Message:
    added maven artifact jmoby-dashboard
    moby-live/Java/xmls project-dashboard.pom,NONE,1.1
    
    
    From kawas at dev.open-bio.org  Wed Aug 13 15:12:39 2008
    From: kawas at dev.open-bio.org (Eddie Kawas)
    Date: Wed, 13 Aug 2008 11:12:39 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808131512.m7DFCd0u023104@dev.open-bio.org>
    
    
    kawas
    Wed Aug 13 11:12:38 EDT 2008
    Update of /home/repository/moby/moby-live/Java/xmls
    In directory dev.open-bio.org:/tmp/cvs-serv23069/xmls
    
    Modified Files:
    	project.pom 
    Log Message:
    excluded the jdbc:jdbc dependency from commons-dbcp because it had redirection in it and then replaced it with the library that jdbc:jdbc redirects to
    moby-live/Java/xmls project.pom,1.11,1.12
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Java/xmls/project.pom,v
    retrieving revision 1.11
    retrieving revision 1.12
    diff -u -r1.11 -r1.12
    --- /home/repository/moby/moby-live/Java/xmls/project.pom	2008/07/23 09:32:35	1.11
    +++ /home/repository/moby/moby-live/Java/xmls/project.pom	2008/08/13 15:12:38	1.12
    @@ -2,7 +2,7 @@
       4.0.0
       org.biomoby
       jmoby
    -  1.1.0
    +  1.1.1
       jMoby
       
     A sub-project of the BioMoby project. It aims to develop tools in Java for BioMoby.
    @@ -162,6 +162,12 @@
           3.1
         
     
    +	
    +	
    +		javax.sql
    +  		jdbc-stdext
    +  		2.0
    +	
         
           commons-dbcp
           commons-dbcp
    @@ -179,6 +185,10 @@
               commons-collections
               commons-collections
             
    +        
    +          jdbc
    +          jdbc
    +        
            
         
     
    
    
    
    From kawas at dev.open-bio.org  Wed Aug 13 15:36:52 2008
    From: kawas at dev.open-bio.org (Eddie Kawas)
    Date: Wed, 13 Aug 2008 11:36:52 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808131536.m7DFaqCt023314@dev.open-bio.org>
    
    
    kawas
    Wed Aug 13 11:36:52 EDT 2008
    Update of /home/repository/moby/moby-live/Java/docs
    In directory dev.open-bio.org:/tmp/cvs-serv23279/docs
    
    Modified Files:
    	DashboardImplementPerlService.html 
    Log Message:
    
    moby-live/Java/docs DashboardImplementPerlService.html,1.1,1.2
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Java/docs/DashboardImplementPerlService.html,v
    retrieving revision 1.1
    retrieving revision 1.2
    diff -u -r1.1 -r1.2
    --- /home/repository/moby/moby-live/Java/docs/DashboardImplementPerlService.html	2008/06/05 19:45:11	1.1
    +++ /home/repository/moby/moby-live/Java/docs/DashboardImplementPerlService.html	2008/08/13 15:36:52	1.2
    @@ -230,7 +230,7 @@
     # END of Script
     
       
    -

    The above script will register the service getReverseEchoString into the registry. Further discussion on the registering of services is beyond the scope of this tutorial. For more information on that topic, please visit the Biomoby homepage.

    +

    The above script will register the service getReverseEchoString into the registry. Further discussion on the registering of services is beyond the scope of this tutorial. For more information on that topic, please visit the Biomoby homepage.

    Generating our service

    @@ -327,7 +327,7 @@ # END of Script -

    The above script will register the service getReverseEchoString into the registry. Further discussion on the registering of services is beyond the scope of this tutorial. For more information on that topic, please visit the Biomoby homepage.

    +

    The above script will register the service getReverseEchoString into the registry. Further discussion on the registering of services is beyond the scope of this tutorial. For more information on that topic, please visit the Biomoby homepage.

    Generating our service

    From senger at dev.open-bio.org Wed Aug 13 19:41:04 2008 From: senger at dev.open-bio.org (Martin Senger) Date: Wed, 13 Aug 2008 15:41:04 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808131941.m7DJf4HA023801@dev.open-bio.org> senger Wed Aug 13 15:41:04 EDT 2008 Update of /home/repository/moby/moby-live/Java In directory dev.open-bio.org:/tmp/cvs-serv23782 Modified Files: build.xml Log Message: version 1.1.1 released moby-live/Java build.xml,1.73,1.74 =================================================================== RCS file: /home/repository/moby/moby-live/Java/build.xml,v retrieving revision 1.73 retrieving revision 1.74 diff -u -r1.73 -r1.74 --- /home/repository/moby/moby-live/Java/build.xml 2008/08/08 11:11:52 1.73 +++ /home/repository/moby/moby-live/Java/build.xml 2008/08/13 19:41:04 1.74 @@ -438,7 +438,7 @@ + value="${maven.project-dashboard.artifactId}-${maven.project-dashboard.version}.jar"/> senger Wed Aug 13 15:41:04 EDT 2008 Update of /home/repository/moby/moby-live/Java/docs In directory dev.open-bio.org:/tmp/cvs-serv23782/docs Modified Files: ChangeLog Log Message: version 1.1.1 released moby-live/Java/docs ChangeLog,1.91,1.92 =================================================================== RCS file: /home/repository/moby/moby-live/Java/docs/ChangeLog,v retrieving revision 1.91 retrieving revision 1.92 diff -u -r1.91 -r1.92 --- /home/repository/moby/moby-live/Java/docs/ChangeLog 2008/07/23 09:32:35 1.91 +++ /home/repository/moby/moby-live/Java/docs/ChangeLog 2008/08/13 19:41:04 1.92 @@ -1,3 +1,8 @@ +2008-08-13 Martin Senger + + * Version 1.1.1 released (the only changed from the previous one + was in packaging the jMoby; no change in code or behaviour) + 2008-07-23 Martin Senger * Version 1.1.0 released From kawas at dev.open-bio.org Mon Aug 18 15:52:18 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 18 Aug 2008 11:52:18 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808181552.m7IFqIZW010373@dev.open-bio.org> kawas Mon Aug 18 11:52:17 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async In directory dev.open-bio.org:/tmp/cvs-serv10338/Perl/MOBY-Server/lib/MOBY/Async Modified Files: WSRF.pm Log Message: added a $VERSION to the module and the xml namespace declaration 'mobyws' to the soap envelope (as the example in the RFC for async services shows) moby-live/Perl/MOBY-Server/lib/MOBY/Async WSRF.pm,1.3,1.4 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async/WSRF.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async/WSRF.pm 2008/06/30 17:56:48 1.3 +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async/WSRF.pm 2008/08/18 15:52:17 1.4 @@ -29,6 +29,9 @@ use strict; use WSRF::Lite 0.8.2.2; +use vars qw /$VERSION/; +$VERSION = sprintf "%d.%02d", q$Revision$ =~ /: (\d+)\.(\d+)/; + $WSRF::WSRP::Private{queryIDs} = []; $WSRF::WSRP::MobyPrivatePrefixes = ['pid', 'input']; $WSRF::WSRP::MobyPropertiesPrefixes = ['status', 'result']; @@ -66,7 +69,8 @@ 'xmlns:wsrl' => $WSRF::Constants::WSRL, 'xmlns:wsrp' => $WSRF::Constants::WSRP, 'xmlns:wsu' => $WSRF::Constants::WSU, - 'xmlns:wsse' => $WSRF::Constants::WSSE + 'xmlns:wsse' => $WSRF::Constants::WSSE, + 'xmlns:mobyws' => $WSRF::Constants::MOBY } ); From kawas at dev.open-bio.org Fri Aug 22 16:18:02 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Fri, 22 Aug 2008 12:18:02 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808221618.m7MGI20X029787@dev.open-bio.org> kawas Fri Aug 22 12:18:01 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOBY-Server/share/db/data In directory dev.open-bio.org:/tmp/cvs-serv29752/Perl/MOBY-Server/share/db/data Modified Files: mobyobject.data Log Message: adding boolean to the data that gets inserted into a new/clean registry. moby-live/Perl/MOBY-Server/share/db/data mobyobject.data,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/share/db/data/mobyobject.data,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Perl/MOBY-Server/share/db/data/mobyobject.data 2008/02/21 00:21:28 1.1 +++ /home/repository/moby/moby-live/Perl/MOBY-Server/share/db/data/mobyobject.data 2008/08/22 16:18:01 1.2 @@ -8,6 +8,7 @@ INSERT INTO object VALUES (3,'urn:lsid:biomoby.org:objectclass:String','String','a string','openinformatics.com','jason at openinformatics.com'); INSERT INTO object VALUES (4,'urn:lsid:biomoby.org:objectclass:Float','Float','a floating point number','openinformatics.com','jason at openinformatics.com'); INSERT INTO object VALUES (5,'urn:lsid:biomoby.org:objectclass:DateTime','DateTime','a date or time in ISO-8601 format','openinformatics.com','jason at openinformatics.com'); +INSERT INTO object VALUES (6,'urn:lsid:biomoby.org:objectclass:Boolean','Boolean','An object representing a boolean logic value (either "true" or "false")','openinformatics.com','jason at openinformatics.com'); -- -- Dumping data for table `object_term2term` @@ -18,4 +19,5 @@ INSERT INTO object_term2term VALUES (2,'urn:lsid:biomoby.org:objectrelation:isa',3,1,NULL); INSERT INTO object_term2term VALUES (3,'urn:lsid:biomoby.org:objectrelation:isa',4,1,NULL); INSERT INTO object_term2term VALUES (4,'urn:lsid:biomoby.org:objectrelation:isa',5,1,NULL); +INSERT INTO object_term2term VALUES (5,'urn:lsid:biomoby.org:objectrelation:isa',6,1,NULL); From kawas at dev.open-bio.org Fri Aug 22 18:30:50 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Fri, 22 Aug 2008 14:30:50 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808221830.m7MIUoPE030634@dev.open-bio.org> kawas Fri Aug 22 14:30:50 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY In directory dev.open-bio.org:/tmp/cvs-serv30599/Perl/MOBY-Server/lib/MOBY Modified Files: OntologyServer.pm Log Message: whenever a datatype didnt exist in the ontology and you try to remove it, an error like: Object type $term cannot be resolved to an LSID was being returned. removed qw{} and replaced it with "" so that $term is resolved to the actual term. moby-live/Perl/MOBY-Server/lib/MOBY OntologyServer.pm,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/OntologyServer.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/OntologyServer.pm 2008/02/21 00:21:27 1.1 +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/OntologyServer.pm 2008/08/22 18:30:50 1.2 @@ -443,7 +443,7 @@ # } my $LSID; unless ( $term =~ /urn\:lsid/ ) { $LSID = $self->getObjectURI($term) } else { $LSID = $term } - return ( 0, q{Object type $term cannot be resolved to an LSID}, "" ) + return ( 0, "Object type $term cannot be resolved to an LSID", "" ) unless $LSID; my $result = $adaptor->query_object(type => $LSID); From kawas at dev.open-bio.org Fri Aug 22 19:12:20 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Fri, 22 Aug 2008 15:12:20 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808221912.m7MJCKta030787@dev.open-bio.org> kawas Fri Aug 22 15:12:20 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY In directory dev.open-bio.org:/tmp/cvs-serv30752/Perl/MOBY-Server/lib/MOBY Modified Files: Central.pm Log Message: added utf8 encoding checks on all (most) data passed to the registry. if data passed is not utf8 encoded then an error message stating that the encoding is invalid is returned moby-live/Perl/MOBY-Server/lib/MOBY Central.pm,1.5,1.6 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Central.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Central.pm 2008/05/14 14:06:23 1.5 +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Central.pm 2008/08/22 19:12:20 1.6 @@ -27,14 +27,8 @@ use LWP; use MOBY::CommonSubs; -#use MOBY::RDF::ServiceInstanceRDF; -#use RDF::Core; -#use RDF::Core::Model; -#use RDF::Core::Literal; -#use RDF::Core::Statement; -#use RDF::Core::Model::Serializer; -#use RDF::Core::Storage::Memory; -#use RDF::Core::Constants qw(:xml :rdf :rdfs); +use Encode; + use MOBY::MobyXMLConstants; my $debug = 0; my $listener = 1; @@ -302,6 +296,14 @@ "" ); } + #print STDERR "$term, $desc, $auth, $email\n"; + #check encoding + unless ( decode_utf8($term) eq $term && decode_utf8($desc) eq $desc && decode_utf8($auth) eq $auth && decode_utf8($email) eq $email ) + { + return &_error("Invalid character encoding; one or all of objectType, Description, authURI or contactEmail were not UTF-8 encoded.", + "" + ); + } return &_error( "Malformed authURI - must not have an http:// prefix", "" ) if $auth =~ '[/:]'; return &_error( "Malformed authURI - must take the form NNN.NNN.NNN", "" ) @@ -660,6 +662,15 @@ "" ); } + #check character encoding + unless ( decode_utf8( $term ) eq $term && decode_utf8( $desc ) eq $desc && decode_utf8( $auth ) eq $auth && decode_utf8( $email ) eq $email ) + { + return &_error( +"Invalid character encoding\n One of serviceType, Description, authURI or contactEmail were not UTF-8 encoded.", + "" + ); + } + return &_error( "Malformed authURI - must not have an http:// prefix", "" ) if $auth =~ '[/:]'; return &_error( "Malformed authURI - must take the form NNN.NNN.NNN", "" ) @@ -910,6 +921,7 @@ "\n\npayload\n**********************\n$payload\n***********************\n\n" ); my ( $term, $auth, $desc, $email ) = &_registerNamespacePayload($payload); + $debug && &_LOG("\n\nterm $term\ndesc $desc\nemail $email\nauth $auth"); unless ( defined $term && defined $desc && defined $auth && defined $email ) { @@ -918,6 +930,16 @@ "" ); } + + # check encoding + unless ( decode_utf8( $term ) eq $term && decode_utf8( $desc ) eq $desc && decode_utf8( $auth ) eq $auth && decode_utf8( $email ) eq $email ) + { + return &_error( +"Invalid character encoding; one or all of namespaceType, Description, authURI or contactEmail were not UTF-8 encoded.", + "" + ); + } + return &_error( "Malformed authURI - must not have an http:// prefix", "" ) if $auth =~ '[/:]'; return &_error( "Malformed authURI - must take the form NNN.NNN.NNN", "" ) @@ -1315,10 +1337,12 @@ $error .= "missing serviceType \n" unless defined $serviceType; $error .= "invalid character string for serviceName. Must start with a letter followed by [A-Za-z0-9_]\n" if ($serviceName =~ /^[^A-Za-z]/); $error .= "invalid character string for serviceName. Must start with a letter followed by [A-Za-z0-9_]\n" if ($serviceName =~ /^.+?[^A-Za-z0-9_]/); - + # $error .="missing signatureURL \n" unless defined $signatureURL; $error .= "missing authURI \n" unless defined $AuthURI; + $error .= "invalid character encoding; authURI not encoded as UTF-8\n" unless decode_utf8( $AuthURI ) eq $AuthURI; $error .= "missing contactEmail \n" unless defined $contactEmail; + $error .= "invalid character encoding; contactEmail not encoded as UTF-8\n" unless decode_utf8( $contactEmail ) eq $contactEmail; return &_error( "Malformed authURI - must not have an http:// prefix", "" ) if $AuthURI =~ '[/:]'; return &_error( "Malformed authURI - must take the form NNN.NNN.NNN", "" ) @@ -1326,8 +1350,11 @@ return &_error("Malformed email - must be a valid email address of the form name\@organization.foo","") unless $contactEmail =~ /\S\@\S+\.\S+/; $error .= "missing URL \n" unless defined $URL; + $error .= "invalid character encoding; URL not encoded as UTF-8\n" unless decode_utf8( $URL ) eq $URL; $error .= "missing description \n" unless defined $desc; + $error .= "invalid character encoding; description not encoded as UTF-8\n" unless decode_utf8( $desc ) eq $desc; $error .= "missing Category \n" unless defined $Category; + $error .= "invalid character encoding; service name not encoded as UTF-8\n" unless decode_utf8( $serviceName ) eq $serviceName; return &_error( "malformed payload $error\n\n", "" ) if ($error); return &_error( "Category may take the (case sensitive) values 'moby', 'moby-async', 'cgi', 'doc-literal', and 'doc-literal-async', \n", @@ -1494,11 +1521,15 @@ return (-1,"Invalid articlename name found. Articlenames may not contain spaces or other special characters.") if $article =~ /([\+\=:\s\&\<\>\[\]\^\`\{\|\}\~\(\)\\\/\$\#\@\,\|\?\.!\*\;\'\"])/; + #check encoding for those articles that are not the empty string or a string of whitespace + return (-1,"Invalid character encoding; articlename not UTF-8 encoded.") + unless decode_utf8( $article ) eq $article; + $debug && &_LOG("ARTICLENAME in _registerArticle is $article"); if (lc($inout) eq "input"){ return (-1, "Input Simples and collections are required to have an articleName as of API version 0.86") if (!$article && !$collid); } - + my ( $object_type, @namespaces ); if ( $simp_coll eq "Collection" ) { $debug && &_LOG("Collection!\n"); From kawas at dev.open-bio.org Mon Aug 25 15:21:02 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 25 Aug 2008 11:21:02 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808251521.m7PFL2Nb007724@dev.open-bio.org> kawas Mon Aug 25 11:21:01 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/SOAP In directory dev.open-bio.org:/tmp/cvs-serv7689/Perl/MOBY-Server/lib/MOBY/SOAP Modified Files: Serializer.pm Log Message: removed some statements that caused apache axis incompatibilities. as far as i can tell, java/perl SOAP interaction with a registry using this serializer work as expected. moby-live/Perl/MOBY-Server/lib/MOBY/SOAP Serializer.pm,1.1,1.2 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/SOAP/Serializer.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/SOAP/Serializer.pm 2008/02/21 00:21:28 1.1 +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/SOAP/Serializer.pm 2008/08/25 15:21:01 1.2 @@ -1,6 +1,9 @@ #$Id$ package MOBY::SOAP::Serializer; +use vars qw /$VERSION/; +$VERSION = sprintf "%d.%02d", q$Revision$ =~ /: (\d+)\.(\d+)/; + # this module serializes SOAP messages to ensure # compatibility with other soap clients (Java) # All that you have to do to make this your serializer, @@ -20,37 +23,25 @@ my $self = shift; my ( $name, $attrs, $values, $id ) = @{ +shift }; $attrs ||= {}; - - # keep only namespace attributes for all elements - my $a = $attrs->{xmlns} ? { xmlns => $attrs->{xmlns} } : {}; - - return $self->SUPER::xmlize( [ $name, $a, $values, $id ] ); -} + return $self->SUPER::xmlize( [ $name, $attrs, $values, $id ] ); +} sub envelope { - delete $_[0]{_namespaces}->{'http://schemas.xmlsoap.org/soap/encoding/'} - if $_[0]; +# delete $_[0]{_namespaces}->{'http://schemas.xmlsoap.org/soap/encoding/'} +# if $_[0]; # only 'transform' soap responses UNIVERSAL::isa( $_[3] => 'SOAP::Data' ) ? do { - -# below encodes data -#my $xml = $_[3]->value; -#$xml =~ s"&"&"g; -#$xml =~ s"\<"<"g; -#$xml =~ s"\]\]\>"\]\]>"g; -#$_[3]->value($xml); -# when we set to string, we dont have to encode -#FIXME - this wont work for the DUMP call if and when a SOAP::Data object is passed + # when we set to string, we dont have to encode $_[3]->type( 'string' => $_[3]->value() ); } : do { do { - # for dumps, they are of type array: set them accordingly + # for dumps, they are of type string[]: set components accordingly $_[3]->[0] = SOAP::Data->type( 'string' => $_[3]->[0] ) if $_[3]->[0]; $_[3]->[1] = SOAP::Data->type( 'string' => $_[3]->[1] ) @@ -65,9 +56,6 @@ do { # below encodes data -> set type to string and we dont have to - #$_[3] =~ s"&"&"g; - #$_[3] =~ s"\<"<"g; - #$_[3] =~ s"\]\]\>"\]\]>"g; # set to string to avoid encoding $_[3] = SOAP::Data->type( 'string' => $_[3] ); } unless ( ref( $_[3] ) eq 'ARRAY' ); From kawas at dev.open-bio.org Mon Aug 25 16:27:28 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 25 Aug 2008 12:27:28 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808251627.m7PGRScF007860@dev.open-bio.org> kawas Mon Aug 25 12:27:28 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOSES-MOBY In directory dev.open-bio.org:/tmp/cvs-serv7817/Perl/MOSES-MOBY Modified Files: Makefile.PL Changes MANIFEST Log Message: added async service support to moses. MOBY.pm has some documentation, but more is to come. *ASYNC_SERVICE_TABLE refers to an as yet unimplemented example. *for those updating to this version, please make sure to run moses-install.pl again. *this module now uses WSRF-Lite and MOBY-Client moby-live/Perl/MOSES-MOBY Makefile.PL,1.6,1.7 Changes,1.6,1.7 MANIFEST,1.5,1.6 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/Makefile.PL,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/Makefile.PL 2008/05/11 23:44:37 1.6 +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/Makefile.PL 2008/08/25 16:27:28 1.7 @@ -1,6 +1,9 @@ # Load the Module::Install bundled in ./inc/ use inc::Module::Install; - + + # constant + use constant MSWIN => $^O =~ /MSWin32|Windows_NT/i ? 1 : 0; + # Define metadata name 'MOSES-MOBY'; version '0.86'; @@ -25,11 +28,20 @@ requires 'Class::Inspector' => 1.17; requires 'Params::Util' => 0.28; - # requires 'Want' => 0; - if ( not( $^O =~ /MSWin32|Windows_NT/i ) ) { - requires 'Want' => '0.18'; - requires 'IO::Prompt' => '0.99.2'; + # windows doesn't need this + if ( not MSWIN ) { + requires 'Want' => '0.18'; + requires 'IO::Prompt' => '0.99.2'; } + + print STDOUT "Shall I check for async libraries (do you plan on writing async services)? y/n [n] "; + my $tmp = ; + $tmp =~ s/\s//g; + if ($tmp =~ /y/i) { + requires 'MOBY::Client::Central' => 1.03; + requires 'WSRF::Lite' => 0.8.8.2; + } + build_requires 'Test::More' => '0.42'; no_index 'directory' => 'bin/scripts'; =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/Changes,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/Changes 2008/05/11 23:44:37 1.6 +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/Changes 2008/08/25 16:27:28 1.7 @@ -1,6 +1,18 @@ Revision history for Perl extension MOSES::MOBY. -.85 Fri May 9 7:52:35 2008 +.87 + - fixed a string append bug where '+' was used + instead of '.' + - added support for Asynchronous moby services + * added async option to moses-generate-services.pl + * added async option to moses-testing-service.pl + * created an async dispatcher template + AsyncMobyServer.cgi in the shared folder + * created an async template skeleton module + for async modules. + * added another service table for async services + +.86 Sun May 11 - fixed a bug in one of the test cases. .85 Fri May 9 7:52:35 2008 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/MANIFEST,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/MANIFEST 2008/05/07 17:33:30 1.5 +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/MANIFEST 2008/08/25 16:27:28 1.6 @@ -44,6 +44,7 @@ lib/MOSES/MOBY/Generators/GenServices.pm lib/MOSES/MOBY/Generators/GenTypes.pm lib/MOSES/MOBY/Generators/templates/datatype.tt +lib/MOSES/MOBY/Generators/templates/service-async.tt lib/MOSES/MOBY/Generators/templates/service-base.tt lib/MOSES/MOBY/Generators/templates/service-cgi.tt lib/MOSES/MOBY/Generators/templates/service.tt @@ -60,11 +61,13 @@ share/log4perl.properties.template share/mabuhay.file share/moby-services.cfg.template +share/AsyncMobyServer.cgi.template share/MobyServer.cgi.template share/notes share/samples/Service/HelloBiomobyWorld.pm share/samples/Service/Mabuhay.pm share/samples/SERVICES_TABLE +share/samples/ASYNC_SERVICE_TABLE share/USER_REGISTRIES t/MOSES-MOBY-Cache.t t/MOSES-MOBY-Registry.t From kawas at dev.open-bio.org Mon Aug 25 16:27:28 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 25 Aug 2008 12:27:28 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808251627.m7PGRSZg007880@dev.open-bio.org> kawas Mon Aug 25 12:27:28 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators In directory dev.open-bio.org:/tmp/cvs-serv7817/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators Modified Files: GenServices.pm Log Message: added async service support to moses. MOBY.pm has some documentation, but more is to come. *ASYNC_SERVICE_TABLE refers to an as yet unimplemented example. *for those updating to this version, please make sure to run moses-install.pl again. *this module now uses WSRF-Lite and MOBY-Client moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators GenServices.pm,1.6,1.7 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators/GenServices.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators/GenServices.pm 2008/05/10 00:23:05 1.6 +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators/GenServices.pm 2008/08/25 16:27:28 1.7 @@ -159,7 +159,7 @@ cachedir => $self->cachedir, registry => $self->registry, service_names => [], - force_over => 0, + force_over => 0, static_impl => 0, # other args, with no default values @@ -222,18 +222,17 @@ }; my @input_ns = (); foreach my $in (@{ $obj->inputs }) { - - if (ref ($in) eq 'MOSES::MOBY::Def::PrimaryDataSimple') { - foreach my $ns ( @{$in->namespaces} ) { - push @input_ns, $ns->name; - } - } else { - foreach my $sim (@{ $in->elements }) { - foreach my $ns ( @{$sim->namespaces} ) { - push @input_ns, $ns->name; - } - } - } + if (ref ($in) eq 'MOSES::MOBY::Def::PrimaryDataSimple') { + foreach my $ns ( @{$in->namespaces} ) { + push @input_ns, $ns->name; + } + } else { + foreach my $sim (@{ $in->elements }) { + foreach my $ns ( @{$sim->namespaces} ) { + push @input_ns, $ns->name; + } + } + } } if ($args{outcode}) { $tt->process ( $input, { base => $obj, @@ -278,7 +277,8 @@ my ($self, @args) = @_; my %args = ( # some default values - outdir => $self->outdir . "/../cgi", + outdir => $MOBYCFG::GENERATORS_IMPL_OUTDIR || + MOSES::MOBY::Generators::Utils->find_file ($Bin, 'services'), cachedir => $self->cachedir, registry => $self->registry, service_names => [], @@ -286,12 +286,12 @@ # other args, with no default values # authority => 'authority' # outcode => ref SCALAR - + # and the real parameters @args ); $self->_check_outcode (%args); - my $outdir = File::Spec->rel2abs ($args{outdir}); + my $outdir = File::Spec->rel2abs ($args{outdir} . "../cgi" ); $LOG->debug ("Arguments for generating cgi services: " . $self->toString (\%args)) if ($LOG->is_debug); $LOG->info ("CGI Services will be generated into: '$outdir'") @@ -350,6 +350,90 @@ #----------------------------------------------------------------- +# generate_async +#----------------------------------------------------------------- +sub generate_async { + my ($self, @args) = @_; + my %args = + ( # some default values + impl_outdir => ( $MOBYCFG::GENERATORS_IMPL_OUTDIR || + MOSES::MOBY::Generators::Utils->find_file ($Bin, 'services') ), + impl_prefix => $MOBYCFG::GENERATORS_IMPL_PACKAGE_PREFIX, + cachedir => $self->cachedir, + registry => $self->registry, + service_names => [], + force_over => 0, + static_impl => 0, + + # and the real parameters + @args ); + $self->_check_outcode (%args); + + my $outdir = File::Spec->rel2abs ($args{impl_outdir}); + $LOG->debug ("Arguments for generating async services: " . $self->toString (\%args)) + if ($LOG->is_debug); + $LOG->info ("ASYNC Services will be generated into: '$outdir'") + unless $args{outcode}; + + # get objects from a local cache + my $cache = MOSES::MOBY::Cache::Central->new (cachedir => $args{cachedir}, registry => $args{registry}); + my @names = (); + push (@names, $args{authority}, @{ $args{service_names} }) + if $args{authority}; + my @services = $cache->get_services (@names); + + # generate from template + my $tt = Template->new ( ABSOLUTE => 1 ); + my $input = MOSES::MOBY::Generators::Utils->find_file + ($Bin, + 'MOSES', 'MOBY', 'Generators', 'templates', + 'service-async.tt'); + + foreach my $obj (@services) { + my $name = $obj->name; + my $impl = { + package => ($args{impl_prefix} || 'Service') . '::' . $name, + }; + $LOG->debug ("$name\n"); + if ($args{outcode}) { + # check if the same service is already loaded + # (it can happen when this subroutine is called several times) + next if eval '%' . $obj->module_name . '::'; + $tt->process ( + $input, + { + impl => $impl, + obj => $obj, + pmoses_home => $MOBYCFG::USER_REGISTRIES_USER_REGISTRIES_DIR, + generated_dir => $MOBYCFG::GENERATORS_OUTDIR, + services_dir => $MOBYCFG::GENERATORS_IMPL_OUTDIR, + }, + $args{outcode} ) + || $LOG->logdie ($tt->error()); + } else { + # we cannot easily check whether the same file was already + # generated - so we don't + my $outfile = + File::Spec->catfile ( $outdir, split (/::/, $impl->{package}) ) + . 'Async.pm'; + $tt->process ( $input, + { + impl => $impl, + obj => $obj, + pmoses_home => $MOBYCFG::USER_REGISTRIES_USER_REGISTRIES_DIR, + generated_dir => $MOBYCFG::GENERATORS_OUTDIR, + services_dir => $MOBYCFG::GENERATORS_IMPL_OUTDIR, + }, + $outfile ) || $LOG->logdie ($tt->error()); + chmod (0755, $outfile); + $LOG->info ("\tAsync service created at '$outfile'\n"); + + } + } +} + + +#----------------------------------------------------------------- # update_table #----------------------------------------------------------------- sub update_table { @@ -427,6 +511,98 @@ $self->toString ($DISPATCH_TABLE)); } +#----------------------------------------------------------------- +# update_async_table +#----------------------------------------------------------------- +sub update_async_table { + my ($self, @args) = @_; + my %args = + ( # some default values + impl_outdir => ( $MOBYCFG::GENERATORS_IMPL_OUTDIR || + MOSES::MOBY::Generators::Utils->find_file ($Bin, 'services') ), + services_table => ($MOBYCFG::GENERATORS_IMPL_ASYNC_SERVICES_TABLE || 'ASYNC_SERVICES_TABLE'), + impl_prefix => ($MOBYCFG::GENERATORS_IMPL_PACKAGE_PREFIX || 'Service'), + cachedir => $self->cachedir, + registry => $self->registry, + service_names => [], + + # other args, with no default values + # authority => 'authority' + # outcode => ref SCALAR + + # and the real parameters + @args ); + $self->_check_outcode (%args); + + my $outdir = File::Spec->rel2abs ($args{impl_outdir}); + $LOG->debug ("Arguments for generating async services table: " . $self->toString (\%args)) + if ($LOG->is_debug); + + # read the current service table + unshift (@INC, $args{impl_outdir}); # place where ASYNC_SERVICES_TABLE could be + use vars qw ( $DISPATCH_TABLE ); + eval { require $args{services_table} }; + my $file_with_table; + if ($@) { + $LOG->warn ("Cannot find table of async services '" . $args{services_table} . "': $@"); + $file_with_table = File::Spec->catfile ($args{impl_outdir}, $args{services_table}); + } else { + $file_with_table = $INC{ $args{services_table} }; + } + + # get names of services that should be added to the service table: + my @names = (); + if ($args{service_names} and @{ $args{service_names} } > 0) { + # 1) if there are service_names given, take them, and that's it + # (TBD?: should I checked names against the cache?) + @names = @{ $args{service_names} }; + } else { + # 2) otherwise we need to get names from the cache + my $cache = MOSES::MOBY::Cache::Central->new (cachedir => $args{cachedir}, + registry => $args{registry}); + my %by_authorities = $cache->get_service_names; + if ($args{authority}) { + my $authority = $by_authorities{ $args{authority} }; + $self->throw ("Unknown authority '$args{authority}'.") + unless $authority; + @names = @{ $authority }; + } else { + foreach my $authority (keys %by_authorities) { + push (@names, @{ $by_authorities{$authority} }); + } + } + } + # dont want the redefined errors in Async to discourage service developer + no warnings qw(redefine); + require MOBY::Async::WSRF; + + # update dispatch table + foreach my $service_name (@names) { + $DISPATCH_TABLE->{$WSRF::Constants::MOBY."#$service_name"} + = $args{impl_prefix} . '::' . $service_name . 'Async'; + $DISPATCH_TABLE->{$WSRF::Constants::MOBY."#$service_name".'_submit'} + = $args{impl_prefix} . '::' . $service_name . 'Async'; + $DISPATCH_TABLE->{$WSRF::Constants::WSRPW .'/GetResourceProperty/GetResourcePropertyRequest'} + = "MOBY::Async::SimpleServer"; + $DISPATCH_TABLE->{$WSRF::Constants::WSRPW.'/GetMultipleResourceProperties/GetMultipleResourcePropertiesRequest'} + = "MOBY::Async::SimpleServer"; + $DISPATCH_TABLE->{$WSRF::Constants::WSRLW.'/ImmediateResourceTermination/DestroyRequest'} + = "MOBY::Async::SimpleServer"; + +# $DISPATCH_TABLE->{"http://biomoby.org/#$service_name"} = +# $args{impl_prefix} . '::' . $service_name; + } + # ...and write it back to a disk + require Data::Dumper; + open DISPATCH, ">$file_with_table" + or $self->throw ("Cannot open for writing '$file_with_table': $!\n"); + print DISPATCH Data::Dumper->Dump ( [$DISPATCH_TABLE], ['DISPATCH_TABLE'] ) + or $self->throw ("cannot write to '$file_with_table': $!\n"); + close DISPATCH; + $LOG->info ("Updated async services table '$file_with_table'. New contents: " . + $self->toString ($DISPATCH_TABLE)); +} + #----------------------------------------------------------------- # _check_outcode From kawas at dev.open-bio.org Mon Aug 25 16:27:28 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 25 Aug 2008 12:27:28 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808251627.m7PGRSPG007900@dev.open-bio.org> kawas Mon Aug 25 12:27:28 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOSES-MOBY/share In directory dev.open-bio.org:/tmp/cvs-serv7817/Perl/MOSES-MOBY/share Modified Files: moby-services.cfg.template Added Files: AsyncMobyServer.cgi.template Log Message: added async service support to moses. MOBY.pm has some documentation, but more is to come. *ASYNC_SERVICE_TABLE refers to an as yet unimplemented example. *for those updating to this version, please make sure to run moses-install.pl again. *this module now uses WSRF-Lite and MOBY-Client moby-live/Perl/MOSES-MOBY/share AsyncMobyServer.cgi.template,NONE,1.1 moby-services.cfg.template,1.3,1.4 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/share/moby-services.cfg.template,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/share/moby-services.cfg.template 2008/02/21 00:12:55 1.3 +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/share/moby-services.cfg.template 2008/08/25 16:27:28 1.4 @@ -18,8 +18,10 @@ [generators] outdir = @GENERATED_DIR@ impl.outdir = @SERVICES_DIR@ +impl.async.outdir = @ASYNC_SERVICES_DIR@ impl.package.prefix = Service impl.services.table = @SERVICES_TABLE@ +impl.async.services.table = @ASYNC_SERVICES_TABLE@ #ignore.existing.types = true [log] From kawas at dev.open-bio.org Mon Aug 25 16:27:28 2008 From: kawas at dev.open-bio.org (Eddie Kawas) Date: Mon, 25 Aug 2008 12:27:28 -0400 Subject: [MOBY-guts] biomoby commit Message-ID: <200808251627.m7PGRSX8007942@dev.open-bio.org> kawas Mon Aug 25 12:27:28 EDT 2008 Update of /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES In directory dev.open-bio.org:/tmp/cvs-serv7817/Perl/MOSES-MOBY/lib/MOSES Modified Files: MOBY.pm Log Message: added async service support to moses. MOBY.pm has some documentation, but more is to come. *ASYNC_SERVICE_TABLE refers to an as yet unimplemented example. *for those updating to this version, please make sure to run moses-install.pl again. *this module now uses WSRF-Lite and MOBY-Client moby-live/Perl/MOSES-MOBY/lib/MOSES MOBY.pm,1.5,1.6 =================================================================== RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY.pm,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY.pm 2008/05/10 00:23:44 1.5 +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY.pm 2008/08/25 16:27:28 1.6 @@ -117,6 +117,22 @@ slightly from its Java brother - mainly by not insisting to create all necessary objects in advance but building them on-the-fly. +=head2 New Features + +Some of the new features included in this release are: + +=over 4 + +=item * Support for CGI based moby services + +=item * Support for Asynchronous based moby services + +=item * Service developers can now enable the validation of namespaces + +=back + +=cut + =head2 Overview Perl Moses is a generator of Perl code - but this code does not need to be always stored in files, it can be generated on-the-fly every time a service is called. Also, there are up to four things to be generated: objects representing BioMoby data types, classes establishing bases for services, empty (but working) service implementation modules, and cgi-bin scripts, the entry points to BioMoby services. @@ -183,6 +199,8 @@ If you cannot create Symbolic links, or apache is not allowed to follow them, try this L +If you plan on developing asynchronous moby services, then don't forget to also create a symbolic link for B as well! + =item 5. Last but not least: call your service. There is a testing client that sends only empty data (so it can be used by any service): @@ -321,6 +339,9 @@ =item * IO::Prompt - try to install version 0.99.2 and not 0.99.4 +=item * + WSRF::Lite - for developing asynchronous moby services I + =back =cut @@ -423,6 +444,12 @@ installation. This is a cgi-bin script that will be started by your web server when a BioMoby request comes. More about it in deploying. + + * It creates a Perl-MoSeS/AsyncMobyServer.cgi file from a distributed + template, and updates their locations to reflect your local + installation. This is a cgi-bin script that will be started by + your web server when an asynchronous BioMoby request comes. More + about it in deploying. * For Perl Moses, the most important configuration option is the location of your local cache (a place where a BioMoby registered entities are mirrored). @@ -876,8 +903,10 @@ do it again in the run-time - therefore, the service implementation is generated slightly differently - with an option "use the base, rather than load the base" enabled.

    - Option -c generates both a service base + Option -c generates both a service implementation as well as a CGI dispatcher script.

    + Option -A generates both a service implementation + as well as an asynchronous module (and it updates the dispatcher table, as well).

    Option -u updates the service cache.

    Option -f fills the service cache.

    Option -R allows you to specify a registry endpoint. @@ -1373,6 +1402,8 @@ impl.outdir = /home/senger/Perl-MoSeS/services impl.package.prefix = Service impl.services.table = SERVICES_TABLE +impl.async.services.table = ASYNC_SERVICES_TABLE +  #ignore.existing.types = true   [log] @@ -1408,7 +1439,9 @@ B - A beginning of the package name of the generated service implementations. Default is 'Service'. For example, a service Mabuhay will be represented by a Perl module I. -B - A name (without any path) of a file with a services dispatch table. Default is 'SERVICES_TABLE'. +B - A name (without any path) of a file with a services dispatch table. Default is 'SERVICES_TABLE'. + +B - A name (without any path) of a file with an async services dispatch table. Default is 'ASYNC_SERVICES_TABLE'. B - A boolean property. If set to true ('true', 1, ' '+', 'yes', or 'ano') the data types generator will not check if a wanted data type module already exists on a disk but always generates into memory a new one. Default value is 'false' (meaning that the generator tries to use whatever already exists). @@ -1661,16 +1694,16 @@ its cgi-bin scripts are located (e.g. /usr/lib/cgi-bin). You may configure your Web Server to allow to have other cgi-bin script elsewhere, or to link them by symbolic links. An example how to create -a symbolic link is in installation. +a symbolic link is in 5 steps to your first service.

  • Then you need the cgi-bin script itself. Its name does not matter (except that it will become a part of your services -endpoint). The Perl Moses installation script creates a script named -MobyServer.cgi in /Perl-MoSeS directory. -Notice that it contains some hard-coded paths - that comes from the -installation time. Feel free to change them manually, or remove the -file and run install.pl again to re-create it. Here is the -whole script: +endpoint). The Perl Moses installation script creates two scripts named +MobyServer.cgi and AsyncMobyServer.cgi in +/Perl-MoSeS directory. Notice that it contains some hard-coded +paths - that comes from the installation time. Feel free to change them +manually, or remove the file and run install.pl again to +re-create it. Here is the whole script (for MobyServer.cgi):
  • @@ -1697,7 +1730,7 @@
     
     You see above that the script "requires" SERVICES_TABLE file (its name was taken during installation form the configuration). This is a dispatch table with a list of all BioMoby services served by this script. Yes, one cgi-bin script can serve more services - meaning that more services are registered with the same endpoint (and they are distinguished by their service names - which is, surprisingly, not part of the endpoint; but that's the way how Perl does it). 
     
    -These three things (a Web Server knowing about your cgi-bin script, a cgi-bin script knowing about Perl Moses code, and a dispatch table knowing what services to serve) are all you need to have your service deployed. 
    +These three things (a Web Server knowing about your cgi-bin scripts, a cgi-bin script knowing about Perl Moses code, and a dispatch table knowing what services to serve) are all you need to have your service deployed. 
     
     =cut
     
    @@ -1992,9 +2025,7 @@
     
     EEEE* (N) The generated service implementation could have a better Perl documentation, listing all available methods for inputs and outputs (the methods are already shown in the code, but having them also in the POD would help).
     
    -EEEE* (F) The service bases could have option to validate namespaces - as it is now in CommonSubs.pm.
    -
    -I will try to keep up-to-date the list of the recent changes in the ChangeLog L. 
    +I will try to keep up-to-date the list of the recent changes in the Changes file included with the distribution. 
     
     =cut
     
    
    
    
    From kawas at dev.open-bio.org  Mon Aug 25 16:27:29 2008
    From: kawas at dev.open-bio.org (Eddie Kawas)
    Date: Mon, 25 Aug 2008 12:27:29 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808251627.m7PGRTI2007958@dev.open-bio.org>
    
    
    kawas
    Mon Aug 25 12:27:28 EDT 2008
    Update of /home/repository/moby/moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators/templates
    In directory dev.open-bio.org:/tmp/cvs-serv7817/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators/templates
    
    Added Files:
    	service-async.tt 
    Log Message:
    added async service support to moses. MOBY.pm has some documentation, but more is to come.
     *ASYNC_SERVICE_TABLE refers to an as yet unimplemented example.
     *for those updating to this version, please make sure to run moses-install.pl again.
     *this module now uses WSRF-Lite and MOBY-Client
    moby-live/Perl/MOSES-MOBY/lib/MOSES/MOBY/Generators/templates service-async.tt,NONE,1.1
    
    
    From kawas at dev.open-bio.org  Mon Aug 25 16:27:28 2008
    From: kawas at dev.open-bio.org (Eddie Kawas)
    Date: Mon, 25 Aug 2008 12:27:28 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808251627.m7PGRS2o007916@dev.open-bio.org>
    
    
    kawas
    Mon Aug 25 12:27:28 EDT 2008
    Update of /home/repository/moby/moby-live/Perl/MOSES-MOBY/share/samples
    In directory dev.open-bio.org:/tmp/cvs-serv7817/Perl/MOSES-MOBY/share/samples
    
    Added Files:
    	ASYNC_SERVICE_TABLE 
    Log Message:
    added async service support to moses. MOBY.pm has some documentation, but more is to come.
     *ASYNC_SERVICE_TABLE refers to an as yet unimplemented example.
     *for those updating to this version, please make sure to run moses-install.pl again.
     *this module now uses WSRF-Lite and MOBY-Client
    moby-live/Perl/MOSES-MOBY/share/samples ASYNC_SERVICE_TABLE,NONE,1.1
    
    
    From kawas at dev.open-bio.org  Mon Aug 25 16:28:57 2008
    From: kawas at dev.open-bio.org (Eddie Kawas)
    Date: Mon, 25 Aug 2008 12:28:57 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808251628.m7PGSvQC008024@dev.open-bio.org>
    
    
    kawas
    Mon Aug 25 12:28:57 EDT 2008
    Update of /home/repository/moby/moby-live/Perl/MOSES-MOBY/bin/scripts
    In directory dev.open-bio.org:/tmp/cvs-serv7985/Perl/MOSES-MOBY/bin/scripts
    
    Modified Files:
    	moses-install.pl moses-generate-services.pl 
    Log Message:
    added async service support to moses. MOBY.pm has some documentation, but more is to come.
     *for generating services, use -h option to see synopsis
     *installer now checks for async modules if user wishes to
    moby-live/Perl/MOSES-MOBY/bin/scripts moses-install.pl,1.4,1.5 moses-generate-services.pl,1.5,1.6
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/bin/scripts/moses-install.pl,v
    retrieving revision 1.4
    retrieving revision 1.5
    diff -u -r1.4 -r1.5
    --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/bin/scripts/moses-install.pl	2008/04/29 19:59:43	1.4
    +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/bin/scripts/moses-install.pl	2008/08/25 16:28:57	1.5
    @@ -63,10 +63,19 @@
     			  IO::Scalar
     			  Unicode::String
     			  ) ) {
    -	check_module ($module);
    +		check_module ($module);
         }
    +    # check for async libraries if user wants to ....
    +    print STDOUT "Shall we check for the moby-async libraries\n\t(do this only if you plan on creating async moby services)? y/n [n]";
    +    my $tmp = ;
    +    $tmp =~ s/\s//g; 
    +    if ($tmp =~ /y/i) {
    +    	check_module('MOBY::Client::Central');
    +		check_module('WSRF::Lite'); 
    +    }
    +
         if (MSWIN) {
    -	check_module ('Term::ReadLine');
    +		check_module ('Term::ReadLine');
     	{
     	    local $^W = 0;
     	    $SimplePrompt::Terminal = Term::ReadLine->new ('Installation');
    @@ -241,6 +250,8 @@
         "$pmoses_home/services";
     my $services_table = $MOBYCFG::GENERATORS_IMPL_SERVICES_TABLE ||
         'SERVICES_TABLE';
    +my $async_services_table = $MOBYCFG::GENERATORS_IMPL_SERVICES_TABLE ||
    +    'ASYNC_SERVICES_TABLE';
     
     my $cgibin_file = "$pmoses_home/MobyServer.cgi";
     if (-e $cgibin_file and ! $opt_F) {
    @@ -259,6 +270,27 @@
         chmod 0755, $cgibin_file;   # everybody can execute
     }
     
    +# AsyncMobyServer.cgi file
    +my $async_services_table = $MOBYCFG::GENERATORS_ASYNC_IMPL_SERVICES_TABLE ||
    +    'ASYNC_SERVICES_TABLE';
    +
    +my $async_cgibin_file = "$pmoses_home/AsyncMobyServer.cgi";
    +if (-e $async_cgibin_file and ! $opt_F) {
    +    say "\nWeb Server file '$async_cgibin_file' exists.";
    +    say "It will not be overwritten unless you start 'install.pl -F'.\n";
    +} else {
    +    file_from_template
    +	($async_cgibin_file,
    +	 File::ShareDir::dist_file('MOSES-MOBY','AsyncMobyServer.cgi.template'),
    +	 'Web Server file',
    +	 { '@PMOSES_HOME@'    => $pmoses_home,
    +	   '@GENERATED_DIR@'  => $generated_dir,
    +	   '@SERVICES_DIR@'   => $services_dir,
    +	   '@ASYNC_SERVICE_TABLE@' => $async_services_table,
    +       } );
    +    chmod 0755, $async_cgibin_file;   # everybody can execute
    +}
    +
     # directory for local cache
     my $cachedir = $MOBYCFG::CACHEDIR ||
         prompt_for_directory ( 'Directory for local cache',
    @@ -316,6 +348,7 @@
     	   '@GENERATED_DIR@'    		=> $generated_dir,
     	   '@SERVICES_DIR@'     		=> $services_dir,
     	   '@SERVICES_TABLE@'   		=> $services_table,
    +	   '@ASYNC_SERVICES_TABLE@'   	=> $async_services_table,
     	   '@LOG4PERL_FILE@'    		=> $log4perl_file,
     	   '@LOGFILE@'          		=> $log_file1,
     	   '@USER_REGISTRIES_FILE_DIR@'	=> $pmoses_home,
    
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Perl/MOSES-MOBY/bin/scripts/moses-generate-services.pl,v
    retrieving revision 1.5
    retrieving revision 1.6
    diff -u -r1.5 -r1.6
    --- /home/repository/moby/moby-live/Perl/MOSES-MOBY/bin/scripts/moses-generate-services.pl	2008/05/09 20:26:04	1.5
    +++ /home/repository/moby/moby-live/Perl/MOSES-MOBY/bin/scripts/moses-generate-services.pl	2008/08/25 16:28:57	1.6
    @@ -8,16 +8,16 @@
     
     # some command-line options
     use Getopt::Std;
    -use vars qw/ $opt_h $opt_d $opt_R $opt_v $opt_a $opt_s $opt_b $opt_f $opt_u $opt_F $opt_S $opt_t $opt_c /;
    -getopts('hdvasbfuFStcR:');
    +use vars qw/ $opt_h $opt_A $opt_d $opt_R $opt_v $opt_a $opt_s $opt_b $opt_f $opt_u $opt_F $opt_S $opt_t $opt_c /;
    +getopts('hdvasbfuFStcAR:');
     # usage
     if (not($opt_u or $opt_f)) {
     if ($opt_h or (not $opt_a and @ARGV == 0)) {
         print STDOUT <<'END_OF_USAGE';
     Generate Services.
    -Usage: [-vds] [-R registry-string] [-b|S|t] authority [service-name] [service-name...]
    -       [-vds] [-R registry-string] [-b|S|t] authority
    -       [-vd] [-R registry-string] [-b|S|t] -a
    +Usage: [-vds] [-R registry-string] [-b|S|t|c|A] authority [service-name] [service-name...]
    +       [-vds] [-R registry-string] [-b|S|t|c|A] authority
    +       [-vd] [-R registry-string] [-b|S|t|c|A] -a
            [-R registry-string] [-fu]
     
         It also needs to get a location of a local cache (and potentially
    @@ -40,9 +40,10 @@
                implementation module has enabled option to read the base
                statically (that is why it is also generated here)
         -i ... generate an implementation of the given service
    -    -c ... generate a cgi based implementation of the given service       
    +    -c ... generate a cgi based implementation of the given service
    +    -A ... generate an asynchronous based implementation of the given service       
         -t ... update dispatch table of services (a table used by the
    -	   cgi-bin script and SOAP::Lite to dispatch requests);
    +	       cgi-bin script and SOAP::Lite to dispatch requests);
                this table is also updated automatically when options
                -i or -S are given
         If none of -b, -S, -t, -c is given, it generates/show implementation
    @@ -119,6 +120,10 @@
     	$generator->generate_cgi;
         } elsif ($opt_t) {
     	$generator->update_table;
    +    } elsif ($opt_A) {
    +	$generator->generate_impl;
    +	$generator->generate_async;
    +	$generator->update_async_table;
         } else {
     	$generator->generate_impl;
     	$generator->update_table;
    @@ -139,6 +144,11 @@
     		$generator->generate_cgi(service_names => [@ARGV],
     				       authority     => $authority,
     				       outcode       => \$code);
    +    }elsif ($opt_A) {
    +		$generator->generate_async(service_names => [@ARGV],
    +					       authority     => $authority,
    +					       outcode       => \$code);
    +		#$generator->update_async_table;
         } else {
     	    $generator->generate_impl (service_names => [@ARGV],
     				       authority     => $authority,
    @@ -158,7 +168,18 @@
     				       authority     => $authority);
     	    $generator->update_table (service_names => [@ARGV],
     				      authority     => $authority);
    -	}  elsif ($opt_c) {
    +	} elsif ($opt_A) {
    +	    $generator->generate_impl(
    +					service_names => [@ARGV],
    +					authority     => $authority,
    +					force_over    => $opt_F);
    +	    $generator->generate_async (service_names => [@ARGV],
    +				       authority     => $authority,
    +				       force_over    => $opt_F,
    +				       static_impl   => 1);
    +	    $generator->update_async_table (service_names => [@ARGV],
    +				      authority     => $authority);
    +	} elsif ($opt_c) {
         	$generator->generate_impl(
     					service_names => [@ARGV],
     					authority     => $authority,
    
    
    
    From kawas at dev.open-bio.org  Wed Aug 27 18:12:30 2008
    From: kawas at dev.open-bio.org (Eddie Kawas)
    Date: Wed, 27 Aug 2008 14:12:30 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808271812.m7RICUpQ013230@dev.open-bio.org>
    
    
    kawas
    Wed Aug 27 14:12:29 EDT 2008
    Update of /home/repository/moby/moby-live/Docs/MOBY-S_API/Perl
    In directory dev.open-bio.org:/tmp/cvs-serv13191/Docs/MOBY-S_API/Perl
    
    Modified Files:
    	construct_moses_soap_service.html 
    	construct_moses_cgi_service.html 
    Log Message:
    changed the service type for these services
    moby-live/Docs/MOBY-S_API/Perl construct_moses_soap_service.html,1.1,1.2 construct_moses_cgi_service.html,1.1,1.2
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Docs/MOBY-S_API/Perl/construct_moses_soap_service.html,v
    retrieving revision 1.1
    retrieving revision 1.2
    diff -u -r1.1 -r1.2
    --- /home/repository/moby/moby-live/Docs/MOBY-S_API/Perl/construct_moses_soap_service.html	2008/05/01 21:44:46	1.1
    +++ /home/repository/moby/moby-live/Docs/MOBY-S_API/Perl/construct_moses_soap_service.html	2008/08/27 18:12:29	1.2
    @@ -54,7 +54,7 @@
     my $serviceName = "getReverseEchoString";
     
     # give our service a service type
    -my $serviceType = "Retrieval";
    +my $serviceType = "TutorialService";
     
     # the uri of the service provider
     my $authURI = "samples.jmoby.net";
    
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Docs/MOBY-S_API/Perl/construct_moses_cgi_service.html,v
    retrieving revision 1.1
    retrieving revision 1.2
    diff -u -r1.1 -r1.2
    --- /home/repository/moby/moby-live/Docs/MOBY-S_API/Perl/construct_moses_cgi_service.html	2008/05/06 17:15:00	1.1
    +++ /home/repository/moby/moby-live/Docs/MOBY-S_API/Perl/construct_moses_cgi_service.html	2008/08/27 18:12:29	1.2
    @@ -54,7 +54,7 @@
     my $serviceName = "getReverseEchoString";
     
     # give our service a service type
    -my $serviceType = "Retrieval";
    +my $serviceType = "TutorialService";
     
     # the uri of the service provider
     my $authURI = "samples.jmoby.net";
    
    
    
    From jmrc at dev.open-bio.org  Fri Aug 29 14:03:16 2008
    From: jmrc at dev.open-bio.org (José Manuel Rodríguez Carrasco)
    Date: Fri, 29 Aug 2008 10:03:16 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808291403.m7TE3G6O018661@dev.open-bio.org>
    
    
    jmrc
    Fri Aug 29 10:03:16 EDT 2008
    Update of /home/repository/moby/moby-live/Docs/asyncDocs
    In directory dev.open-bio.org:/tmp/cvs-serv18625/Docs/asyncDocs
    
    Modified Files:
    	README.txt 
    Log Message:
    *	Documentation and examples about multiple asynchronous services
    	has been added.
    *	Some cosmetic fixes.
    
    moby-live/Docs/asyncDocs README.txt,1.1,1.2
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Docs/asyncDocs/README.txt,v
    retrieving revision 1.1
    retrieving revision 1.2
    diff -u -r1.1 -r1.2
    --- /home/repository/moby/moby-live/Docs/asyncDocs/README.txt	2008/03/10 13:13:01	1.1
    +++ /home/repository/moby/moby-live/Docs/asyncDocs/README.txt	2008/08/29 14:03:16	1.2
    @@ -23,7 +23,7 @@
     	(asynchronous service requests) will be passed to the Services::AsyncServices module.
     	The methods defined in the WS-ResourceProperties spec. ("GetResourceProperty" and
     	"GetMultipleResourceProperties") and the methods of WS-ResourceLifetime spec. ("Destroy")
    -	will be passed to the same module, as well.
    +	will be passed to the module MOBY::Async::SimpleServer, which knows how to handle them.
     
     * The service module:
     
    @@ -40,8 +40,7 @@
     		use SOAP::Lite;
     		use MOBY::CommonSubs qw(:all);
     		use MOBY::Async::SimpleServer;
    -		use vars qw(@ISA);
    -		@ISA = qw(MOBY::Async::SimpleServer);
    +		use base qw(MOBY::Async::SimpleServer);
     
     
     	We are using MOBY::CommonSubs because it exports many useful subroutines that we will
    @@ -67,7 +66,7 @@
     					return $self->sync($sayHello, $TIMEOUT, @_);
     
             "sync" expects three parameters:
    -			- a variable which is the subroutine that will execute the service ("$sayHello");
    +			- a reference to the subroutine that will execute the service ("$sayHello");
     			- the allowed timeout for executing the service ("$TIMEOUT");
     			- and the input data of the service ("@_").
     
    @@ -77,7 +76,7 @@
     			return $self->async($sayHello, @_);
     
     	"async" expects two parameters:
    -			- a variable which is the subroutine that will execute the service ("$sayHello");
    +			- a reference to the subroutine that will execute the service ("$sayHello");
     			- and the input data of the service ("@_").
     
     * The WSDL:
    
    
    
    From jmrc at dev.open-bio.org  Fri Aug 29 14:03:16 2008
    From: jmrc at dev.open-bio.org (José Manuel Rodríguez Carrasco)
    Date: Fri, 29 Aug 2008 10:03:16 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808291403.m7TE3Gug018683@dev.open-bio.org>
    
    
    jmrc
    Fri Aug 29 10:03:16 EDT 2008
    Update of /home/repository/moby/moby-live/Docs/asyncDocs/async-MOBY-test
    In directory dev.open-bio.org:/tmp/cvs-serv18625/Docs/asyncDocs/async-MOBY-test
    
    Modified Files:
    	AsyncService.pm async-MOBY-test.cgi.pl 
    Added Files:
    	OtherService.pm multasync-MOBY-test.cgi 
    	multasync-MOBY-test.cgi.pl 
    Log Message:
    *	Documentation and examples about multiple asynchronous services
    	has been added.
    *	Some cosmetic fixes.
    
    moby-live/Docs/asyncDocs/async-MOBY-test OtherService.pm,NONE,1.1 multasync-MOBY-test.cgi,NONE,1.1 multasync-MOBY-test.cgi.pl,NONE,1.1 AsyncService.pm,1.3,1.4 async-MOBY-test.cgi.pl,1.2,1.3
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Docs/asyncDocs/async-MOBY-test/AsyncService.pm,v
    retrieving revision 1.3
    retrieving revision 1.4
    diff -u -r1.3 -r1.4
    --- /home/repository/moby/moby-live/Docs/asyncDocs/async-MOBY-test/AsyncService.pm	2008/06/30 10:31:26	1.3
    +++ /home/repository/moby/moby-live/Docs/asyncDocs/async-MOBY-test/AsyncService.pm	2008/08/29 14:03:16	1.4
    @@ -3,8 +3,8 @@
     use SOAP::Lite;
     use MOBY::CommonSubs qw(:all); 
     use MOBY::Async::SimpleServer;
    -use vars qw(@ISA);
    - at ISA = qw(MOBY::Async::SimpleServer);
    +
    +use base qw(MOBY::Async::SimpleServer);
     
     # This variable is a subroutine which carry out the core of the service
     my $sayHello = sub
    
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Docs/asyncDocs/async-MOBY-test/async-MOBY-test.cgi.pl,v
    retrieving revision 1.2
    retrieving revision 1.3
    diff -u -r1.2 -r1.3
    --- /home/repository/moby/moby-live/Docs/asyncDocs/async-MOBY-test/async-MOBY-test.cgi.pl	2008/04/23 13:08:10	1.2
    +++ /home/repository/moby/moby-live/Docs/asyncDocs/async-MOBY-test/async-MOBY-test.cgi.pl	2008/08/29 14:03:16	1.3
    @@ -3,6 +3,7 @@
     use SOAP::Transport::HTTP;
     
     use MOBY::Async::WSRF;
    +use MOBY::Async::SimpleServer;
     
     use AsyncService; # the name of your Service modules
     
    @@ -16,10 +17,8 @@
     $server->dispatch_with({
              $WSRF::Constants::MOBY.'#sayHello'        => 'AsyncService',
              $WSRF::Constants::MOBY.'#sayHello_submit' => 'AsyncService',
    -         $WSRF::Constants::MOBY.'#sayGoodbye'        => 'AsyncService',
    -         $WSRF::Constants::MOBY.'#sayGoodbye_submit' => 'AsyncService',
    -         $WSRF::Constants::WSRPW.'/GetResourceProperty/GetResourcePropertyRequest' => 'AsyncService',
    -	 $WSRF::Constants::WSRPW.'/GetMultipleResourceProperties/GetMultipleResourcePropertiesRequest' => 'AsyncService',
    -	 $WSRF::Constants::WSRLW.'/ImmediateResourceTermination/DestroyRequest' => 'AsyncService',
    +         $WSRF::Constants::WSRPW.'/GetResourceProperty/GetResourcePropertyRequest' => 'MOBY::Async::SimpleServer',
    +	 $WSRF::Constants::WSRPW.'/GetMultipleResourceProperties/GetMultipleResourcePropertiesRequest' => 'MOBY::Async::SimpleServer',
    +	 $WSRF::Constants::WSRLW.'/ImmediateResourceTermination/DestroyRequest' => 'MOBY::Async::SimpleServer',
     });
     $server->handle();
    
    
    
    From jmrc at dev.open-bio.org  Fri Aug 29 14:03:17 2008
    From: jmrc at dev.open-bio.org (José Manuel Rodríguez Carrasco)
    Date: Fri, 29 Aug 2008 10:03:17 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808291403.m7TE3HrM018701@dev.open-bio.org>
    
    
    jmrc
    Fri Aug 29 10:03:16 EDT 2008
    Update of /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY
    In directory dev.open-bio.org:/tmp/cvs-serv18625/Perl/MOBY-Server/lib/MOBY
    
    Modified Files:
    	Async.pm 
    Log Message:
    *	Documentation and examples about multiple asynchronous services
    	has been added.
    *	Some cosmetic fixes.
    
    moby-live/Perl/MOBY-Server/lib/MOBY Async.pm,1.3,1.4
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async.pm,v
    retrieving revision 1.3
    retrieving revision 1.4
    diff -u -r1.3 -r1.4
    --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async.pm	2008/04/23 13:08:11	1.3
    +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async.pm	2008/08/29 14:03:16	1.4
    @@ -60,10 +60,11 @@
     B
     
       #!/usr/bin/perl
    -  BEGIN { @INC = ("/path/to/my/libs", @INC); } 
    +  use lib "/path/to/my/libs";
       use strict;
       use SOAP::Transport::HTTP;
       use MOBY::Async::WSRF;
    +  use MOBY::Async::SimpleServer;
       use HelloWorld;
     
       my $server = new SOAP::Transport::HTTP::CGI;
    @@ -73,9 +74,9 @@
       $server->dispatch_with({
         $WSRF::Constants::MOBY.'#sayHello'        => 'HelloWorld',
         $WSRF::Constants::MOBY.'#sayHello_submit' => 'HelloWorld',
    -    $WSRF::Constants::WSRPW.'/GetResourceProperty/GetResourcePropertyRequest' => 'HelloWorld',
    -    $WSRF::Constants::WSRPW.'/GetMultipleResourceProperties/GetMultipleResourcePropertiesRequest' => 'HelloWorld',
    -    $WSRF::Constants::WSRLW.'/ImmediateResourceTermination/DestroyRequest' => 'HelloWorld',
    +    $WSRF::Constants::WSRPW.'/GetResourceProperty/GetResourcePropertyRequest' => 'MOBY::Async::SimpleServer',
    +    $WSRF::Constants::WSRPW.'/GetMultipleResourceProperties/GetMultipleResourcePropertiesRequest' => 'MOBY::Async::SimpleServer',
    +    $WSRF::Constants::WSRLW.'/ImmediateResourceTermination/DestroyRequest' => 'MOBY::Async::SimpleServer',
       });
       $server->handle();
     
    
    
    
    From jmrc at dev.open-bio.org  Fri Aug 29 14:16:02 2008
    From: jmrc at dev.open-bio.org (José Manuel Rodríguez Carrasco)
    Date: Fri, 29 Aug 2008 10:16:02 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808291416.m7TEG2eg018777@dev.open-bio.org>
    
    
    jmrc
    Fri Aug 29 10:16:02 EDT 2008
    Update of /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async
    In directory dev.open-bio.org:/tmp/cvs-serv18741/Perl/MOBY-Server/lib/MOBY/Async
    
    Modified Files:
    	WSRF.pm 
    Log Message:
    *	Directory where temporal results from async services are saved
    	is not hard-coded any more. Now it depends on TMPDIR environment
    	variable.
    
    moby-live/Perl/MOBY-Server/lib/MOBY/Async WSRF.pm,1.4,1.5
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async/WSRF.pm,v
    retrieving revision 1.4
    retrieving revision 1.5
    diff -u -r1.4 -r1.5
    --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async/WSRF.pm	2008/08/18 15:52:17	1.4
    +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Async/WSRF.pm	2008/08/29 14:16:02	1.5
    @@ -36,7 +36,8 @@
     $WSRF::WSRP::MobyPrivatePrefixes    = ['pid', 'input'];
     $WSRF::WSRP::MobyPropertiesPrefixes = ['status', 'result'];
     
    -$WSRF::Constants::Data  = '/tmp/moby_';
    +$WSRF::Constants::DataDir  = (exists($ENV{TMPDIR}) && defined($ENV{TMPDIR}) && $ENV{TMPDIR} ne '')?$ENV{TMPDIR}:'/tmp';
    +$WSRF::Constants::DataPrefix  = 'moby_';
     $WSRF::Constants::MOBY  = 'http://biomoby.org/';
     $WSRF::Constants::MOBY_MESSAGE_NS  = 'http://www.biomoby.org/moby';
     #$WSRF::Constants::WSA   = 'http://www.w3.org/2005/08/addressing';
    @@ -413,7 +414,7 @@
     	my $self = shift @_;
     	my $envelope = pop @_;
     	my $lock = WSRF::MobyFile->new($envelope);
    -	my $file = $WSRF::Constants::Data.$lock->ID();
    +	my $file = $WSRF::Constants::DataDir . '/' . $WSRF::Constants::DataPrefix.$lock->ID();
     	unlink $file or WSRF::BaseFaults::die_with_fault( $envelope, (
     		BaseFault   => "ResourceNotDestroyedFault",
     		Description => "Could not remove WS-Resource file"
    @@ -619,7 +620,7 @@
     	$ID_clipped =~ s/-\w*//o;
     	
     	# File containing resource properties
    -	my $path = $WSRF::Constants::Data.$ID_clipped;
    +	my $path = $WSRF::Constants::DataDir . '/' . $WSRF::Constants::DataPrefix.$ID_clipped;
     	WSRF::BaseFaults::die_with_fault( $envelope, (
     		BaseFault   => "ResourceUnknownFault",
     		Description => "No WS-Resource with Identifer $ID"
    
    
    
    From jmrc at dev.open-bio.org  Fri Aug 29 16:09:44 2008
    From: jmrc at dev.open-bio.org (José Manuel Rodríguez Carrasco)
    Date: Fri, 29 Aug 2008 12:09:44 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808291609.m7TG9ibt019937@dev.open-bio.org>
    
    
    jmrc
    Fri Aug 29 12:09:44 EDT 2008
    Update of /home/repository/moby/moby-live/Docs/ExceptionReporting
    In directory dev.open-bio.org:/tmp/cvs-serv19902/ExceptionReporting
    
    Log Message:
    Directory /home/repository/moby/moby-live/Docs/ExceptionReporting added to the repository
    
    moby-live/Docs/ExceptionReporting - New directory
    rcsdiff: /home/repository/moby/moby-live/Docs/ExceptionReporting/RCS/-,v: No such file or directory
    
    rcsdiff: /home/repository/moby/moby-live/Docs/ExceptionReporting/RCS/New,v: No such file or directory
    
    rcsdiff: /home/repository/moby/moby-live/Docs/ExceptionReporting/RCS/directory,v: No such file or directory
    
    
    
    From jmrc at dev.open-bio.org  Fri Aug 29 16:18:51 2008
    From: jmrc at dev.open-bio.org (José Manuel Rodríguez Carrasco)
    Date: Fri, 29 Aug 2008 12:18:51 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808291618.m7TGIpfs020306@dev.open-bio.org>
    
    
    jmrc
    Fri Aug 29 12:18:51 EDT 2008
    Update of /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception
    In directory dev.open-bio.org:/tmp/cvs-serv20192
    
    Modified Files:
    	MobyException.pm MobyExceptionCodes.pm 
    Log Message:
    *	From Exception proposal (v2.02), both 'refQueryID' and 'refElement' 
    	are optional attributes.
    	We have fixed a bug which a 'refQueryId' was not optional attribute.
    *	Deleting duplicate exception code in perldoc documentation.
    
    
    moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception MobyException.pm,1.1,1.2 MobyExceptionCodes.pm,1.1,1.2
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception/MobyException.pm,v
    retrieving revision 1.1
    retrieving revision 1.2
    diff -u -r1.1 -r1.2
    --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception/MobyException.pm	2008/02/21 00:21:28	1.1
    +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception/MobyException.pm	2008/08/29 16:18:51	1.2
    @@ -187,9 +187,12 @@
     
     		# Chek if there is article Name 
     		my ($refElement) = '';
    -		if (defined($self->{refElement}) && ($self->{refElement} ne '')) { $refElement = "refElement='".$self->{refElement}."'" ; }
    +		if (exists($self->{refElement}) && defined($self->{refElement}) && ($self->{refElement} ne '')) { $refElement = "refElement='".$self->{refElement}."'" ; }
     
    -		$exceptionResponse = "\n\t".$self->{code}."\n\t$infoMessage\n";
    +		my ($refQueryID) = '';
    +		if (exists($self->{queryID}) && defined($self->{queryID}) && ($self->{queryID} ne '')) { $refQueryID = "refQueryID='".$self->{queryID}."'" ; }
    +
    +		$exceptionResponse = "\n\t".$self->{code}."\n\t$infoMessage\n";
     
     	} else {
     
    @@ -200,8 +203,11 @@
     		croak("code of exception is wrong or does not exists") unless(defined($standardMessage));
     
     		# Chek if there is article Name 
    -		my ($refElement) = '';
    -		if (defined($self->{refElement}) && ($self->{refElement} ne '')) { $refElement = "refElement='".$self->{refElement}."'" ; }
    +                my ($refElement) = '';
    +                if (exists($self->{refElement}) && defined($self->{refElement}) && ($self->{refElement} ne '')) { $refElement = "refElement='".$self->{refElement}."'" ; }
    +
    +                my ($refQueryID) = '';
    +                if (exists($self->{queryID}) && defined($self->{queryID}) && ($self->{queryID} ne '')) { $refQueryID = "refQueryID='".$self->{queryID}."'" ; }
     
     		# User could add dynamic message into satandard exception message
     		my ($exceptionMessage) = (defined($self->{message})) ? $standardMessage.$self->{message} : $standardMessage;
    @@ -209,11 +215,11 @@
     		if (defined($self->{type}) && ($self->{type} eq 'warning' || $self->{type} eq 'error')) {
     			if ($self->{type} eq 'error') {
     
    -				$exceptionResponse = "\n\t".$self->{code}."\n\t$exceptionMessage\n";
    +				$exceptionResponse = "\n\t".$self->{code}."\n\t$exceptionMessage\n";
     
     			} elsif ($self->{type} eq 'warning') {
     
    -				$exceptionResponse = "\n\t".$self->{code}."\n\t$exceptionMessage\n";
    +				$exceptionResponse = "\n\t".$self->{code}."\n\t$exceptionMessage\n";
     
     			} else {
     				croak("type of exception is wrong or does not exists");
    
    ===================================================================
    RCS file: /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception/MobyExceptionCodes.pm,v
    retrieving revision 1.1
    retrieving revision 1.2
    diff -u -r1.1 -r1.2
    --- /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception/MobyExceptionCodes.pm	2008/02/21 00:21:28	1.1
    +++ /home/repository/moby/moby-live/Perl/MOBY-Server/lib/MOBY/Client/Exception/MobyExceptionCodes.pm	2008/08/29 16:18:51	1.2
    @@ -357,11 +357,6 @@
     			Service require parameter X
     		
     		
    -			221
    -			INPUT_REQUIRED_PARAMETER
    -			Service require parameter X
    -		
    -		
     			222
     			INPUT_INCORRECT_PARAMETER
     			Incorrect parameter X
    
    
    
    From jmrc at dev.open-bio.org  Fri Aug 29 16:23:39 2008
    From: jmrc at dev.open-bio.org (José Manuel Rodríguez Carrasco)
    Date: Fri, 29 Aug 2008 12:23:39 -0400
    Subject: [MOBY-guts] biomoby commit
    Message-ID: <200808291623.m7TGNdim020391@dev.open-bio.org>
    
    
    jmrc
    Fri Aug 29 12:23:39 EDT 2008
    Update of /home/repository/moby/moby-live/Docs/ExceptionReporting
    In directory dev.open-bio.org:/tmp/cvs-serv20359/ExceptionReporting
    
    Added Files:
    	0501INB-ExceptionReporting-v2.02.pdf 
    	INB-ExceptionReporting-CodeDocumentation-v2.03.pdf 
    	MobyExceptionCodes.html README.txt 
    Log Message:
    Documentation of Exception Reporting in MOBY-S:
    
    * README.txt, describes every document file.
    * 0501INB-ExceptionReporting-v2.02.pdf, official proposal.
    * INB-ExceptionReporting-CodeDocumentation-v2.03.pdf, not official proposal. It
    is a code documentation.
    * MobyExceptionCodes.html, web document describing exception codes.
    
    
    
    
    moby-live/Docs/ExceptionReporting 0501INB-ExceptionReporting-v2.02.pdf,NONE,1.1 INB-ExceptionReporting-CodeDocumentation-v2.03.pdf,NONE,1.1 MobyExceptionCodes.html,NONE,1.1 README.txt,NONE,1.1