- From: Matthew Wilson <matthew@mjwilson.demon.co.uk>
- Date: Tue, 12 Mar 2002 19:19:36 +0000
- To: www-annotation@w3.org
Here is patch describing the changes I made to code to get the annotation server running (compiling, not fully functioning) on Windows NT. Notes: 1. Both access and annotate have the first line changed to point to the directory of the Perl executable. [-- In fact I've just noticed that access replaces the parameter with a new value. I meant to delete it, as in the annotate script.] 2. Both access and annotate have the 'storeIn' parameter removed from the Debug constructor. This leaves the W3CDebugCGI object to determine the directory. 3. Fixed a small error in the namespace exception object (I think). 4. Changed W3CDebugCGI to use the built-in time function instead of `date` (since the output of the `date` command is OS-dependent). (The only change here is that a numerical value of the day of the week is used instead of the name of the day of the week). This change should work cross-platform. Similarly the stuff with syscall is replaced by the use of the module Time::HiRes, available from CPAN and easily installed on Windows systems. Again this change should work cross-platform. 5. Changed W3CDebugCGI to default to the directory C:/temp instead of /tmp. Probably this should be changed to do some -d tests to try and find an existing directory. The configuration also needed some changing, in particular, in the Conf directory, a file annotate.prop was needed with an entry auth.database.parms: -type => 'sdbm', -file => '[path to DBM user file]' The path here should use forward-slashes as a directory separator, not backslashes. This still does not make the server fully functional. After POSTing a couple of annotations, trying to retrieve them gave the errors Error dumping [http://localhost/annotate/attribution/1015861599.94000#genid1]: unknown namespace: "W3C" '((?p W3C::Rdf::Uri=HASH(0x27bfacc) ?o) Error dumping [http://localhost/annotate/attribution/1015862081.618000#genid1]: unknown namespace: "W3C" '((?p W3C::Rdf::Uri=HASH(0x27bb138) ?o) Not sure why this is the case. Matthew Index: perl/modules/W3C/Annotations/CGI/access =================================================================== RCS file: /sources/public/perl/modules/W3C/Annotations/CGI/access,v retrieving revision 1.31 diff -u -r1.31 access --- access 2001/07/23 01:43:08 1.31 +++ access 2002/03/12 12:40:52 @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#!D:/Perl/bin/perl ## accounts: an account administrator designed for use # with the W3C Annotations project. @@ -68,7 +68,7 @@ eval { $W3C::Util::W3CDebugCGI::DEBUG_SESSION = $ARGV[1]; # use a session id like 957296047.909868; $query = new W3C::Util::W3CDebugCGI($0, $ARGV[0] eq 'DEBUG', - {-storeIn => '/tmp', + {-storeIn => 'C:/temp', -dieNoOpen => 1, -logExt => '.log', -rerun => 'w3c_rerun', -reconstruct => 'reconstruct'}); Index: perl/modules/W3C/Annotations/CGI/annotate =================================================================== RCS file: /sources/public/perl/modules/W3C/Annotations/CGI/annotate,v retrieving revision 1.129 diff -u -r1.129 annotate --- annotate 2002/03/08 22:37:42 1.129 +++ annotate 2002/03/12 12:40:52 @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#!D:/Perl/bin/perl ## W3C annotate - store annotations into, and query from, a persistant RDF DB @@ -199,7 +199,6 @@ $query = new W3C::Util::W3CDebugCGI($0, $ARGV[0] eq 'DEBUG', {-dieNoOpen => 1, -logExt => '.log', - -storeIn => '/tmp', -rerun => 'w3c_rerun', -mergeQueryAndPOST => 1}); @@ -805,8 +804,8 @@ <hr /> <h2><a name=\"byUri\">Query Annotations</a></h2> <form method=\"get\" action=\"$selfUri\"> - annotation to retreive: <input name=\"w3c_annotation\" size=55 value=\"$displayAnnotationId\"><br> - body to retreive: <input name=\"w3c_body\" size=55 value=\"$displayBodyId\"><br> + annotation to retrieve: <input name=\"w3c_annotation\" size=55 value=\"$displayAnnotationId\"><br> + body to retrieve: <input name=\"w3c_body\" size=55 value=\"$displayBodyId\"><br> uris to check for annotations: <input name=\"w3c_annotates\" size=55 value=\"$displayAnnotates\"><br> threads: <input name=\"w3c_replyTree\" size=55 value=\"$displayThread\"><br> <textarea name=\"w3c_algaeQuery\" rows=\"13\" cols=\"100\">$displayAlgaeQuery</textarea><br> Index: perl/modules/W3C/SAX/HandlerBase.pm =================================================================== RCS file: /sources/public/perl/modules/W3C/SAX/HandlerBase.pm,v retrieving revision 1.41 diff -u -r1.41 HandlerBase.pm --- HandlerBase.pm 2001/12/17 17:55:29 1.41 +++ HandlerBase.pm 2002/03/12 12:40:54 @@ -25,7 +25,7 @@ my ($proto, @parms) = @_; my $class = ref($proto) || $proto; my $self = $class->SUPER::new(@parms); - $self->missingParm('-namespace') if (!$self->{-target}); + $self->missingParm('-namespace') if (!$self->{-namespace}); $self->fillInStackTrace; return $self; } Index: perl/modules/W3C/Util/W3CDebugCGI.pm =================================================================== RCS file: /sources/public/perl/modules/W3C/Util/W3CDebugCGI.pm,v retrieving revision 1.76 diff -u -r1.76 W3CDebugCGI.pm --- W3CDebugCGI.pm 2002/02/27 09:45:58 1.76 +++ W3CDebugCGI.pm 2002/03/12 12:40:55 @@ -44,27 +44,25 @@ $self = {%$headerLineOrNameOrSibling}; $self->{ENTRY_TYPE} = $entryType; } else { - require 'sys/syscall.ph'; - my $timestamp=pack('LL', ()); - syscall( &SYS_gettimeofday, $timestamp, 0) != -1 || - &throw(new W3C::Util::Exception(-message => "gettimeofday: $!")); - my @timestamp = unpack('LL', $timestamp); + use Time::HiRes qw/gettimeofday/; + my @timestamp = gettimeofday(); + $self->{SESSION_ID} = $timestamp[0].'.'.$timestamp[1]; + my $timestamp = $self->{SESSION_ID}.' '.`date`; + my $sessionId = $timestamp[0].'.'.$timestamp[1]; - my $dateStr = `date`; - if ($dateStr !~ m/^(\w+) (\w+)\s+(\d+) (\d+):(\d+):(\d+) (?:(\w+) )?(\d+)$/) { - &throw(new W3C::Util::Exception(-message => "bad date \"$dateStr\"")); - } + + my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $self = {NAME => $headerLineOrNameOrSibling, ENTRY_TYPE => $entryType, SESSION_ID => $sessionId, - DAY => $1, - MON => $MonStrToNum{$2}, - DATE => $3, - HOUR => $4, - MIN => $5, - SEC => $6, - ZONE => $7, - YEAR => $8}; + DAY => $wday, # should be _name of_ day of week + MON => 1+$mon, + DATE => $mday, + HOUR => $hour, + MIN => $min, + SEC => $sec, + ZONE => $ENV{'TZ'}, + YEAR => 1900+$year}; } } else { if ($headerLineOrNameOrSibling !~ m/^([^\s]+) (\w+ )?([0-9\.]+) (\w+) (\w+)\s+(\d+) (\d+):(\d+):(\d+) (?:(\w+) )?(\d+)$/) { @@ -207,7 +205,7 @@ $scriptName =~ m/([\w\-\.]+)/; $scriptName = $1; $reUseCGI = 0 if (!defined $reUseCGI); - $storeIn = '/tmp/' if (!defined $storeIn); + $storeIn = 'C:/temp/' if (!defined $storeIn); $storeIn .= '/' if($storeIn !~ /\/\Z/); my ($baseName, $self); #($baseName = $scriptName) =~ s/^.*\/([^\/\.]+).*$/$1/;
Received on Tuesday, 12 March 2002 14:20:28 UTC