fixing old fieldmapper_lookup generator
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 29 Jun 2006 03:22:15 +0000 (03:22 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 29 Jun 2006 03:22:15 +0000 (03:22 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@4828 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/apachemods/fieldmapper_lookup-gen.pl
Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm
OpenSRF/src/perlmods/OpenSRF/System.pm

index 799f7d7..0c41733 100755 (executable)
@@ -1,13 +1,10 @@
 #!/usr/bin/perl
 use strict;
-use lib '../perlmods/';
+use lib '../perlmods/OpenILS/Utils/';
+
+use Fieldmapper (IDL => '../../examples/fm_IDL.xml');  
 
 my $map = {};
-eval "
-       use lib '../perlmods/';
-       use lib '../../../OpenSRF/src/perlmods/';
-       use OpenILS::Utils::Fieldmapper;  
-";
 $map = $Fieldmapper::fieldmap unless ($@);
 
 die $@ if ($@);
index 9975090..e4ca493 100644 (file)
@@ -4,14 +4,13 @@ use Data::Dumper;
 use base 'OpenSRF::Application';
 use OpenSRF::Utils::Logger;
 use OpenSRF::Utils::SettingsClient;
+use OpenSRF::System;
 use XML::Simple;
 
 my $log = 'OpenSRF::Utils::Logger';
 
 use vars qw/$fieldmap $VERSION/;
 
-_init();
-
 sub publish_fieldmapper {
        my ($self,$client,$class) = @_;
 
@@ -38,11 +37,16 @@ sub classes {
        return keys %$fieldmap;
 }
 
-sub _init {
+import();
+sub import {
+       my $class = shift;
+       my %args = @_;
+
        return if (keys %$fieldmap);
+       return if (!OpenSRF::System->connected && !$args{IDL});
 
         # parse the IDL ...
-        my $file = OpenSRF::Utils::SettingsClient->new->config_value( 'IDL' );
+        my $file = $args{IDL} || OpenSRF::Utils::SettingsClient->new->config_value( 'IDL' );
         my $idl = XMLin( $file )->{class};
        for my $c ( keys %$idl ) {
                next unless ($idl->{$c}{'oils_obj:fieldmapper'});
index 86d340c..e8833ed 100644 (file)
@@ -257,6 +257,13 @@ sub bootstrap_client {
 
 }
 
+sub connected {
+       if (my $con = OpenSRF::Transport::PeerHandle->retrieve) {
+               return 1 if ($con->tcp_connected);
+       }
+       return 0;
+}
+
 sub bootstrap_logger {
        $0 = "Log Server";
        OpenSRF::Utils::LogServer->serve();