From: miker Date: Thu, 29 Jun 2006 03:22:15 +0000 (+0000) Subject: fixing old fieldmapper_lookup generator X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=ae47016c133e7000285edb1f0ba029204767972f;p=Evergreen.git fixing old fieldmapper_lookup generator git-svn-id: svn://svn.open-ils.org/ILS/trunk@4828 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/apachemods/fieldmapper_lookup-gen.pl b/Open-ILS/src/apachemods/fieldmapper_lookup-gen.pl index 799f7d7d48..0c41733283 100755 --- a/Open-ILS/src/apachemods/fieldmapper_lookup-gen.pl +++ b/Open-ILS/src/apachemods/fieldmapper_lookup-gen.pl @@ -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 ($@); diff --git a/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm b/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm index 9975090bed..e4ca49325e 100644 --- a/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm +++ b/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm @@ -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'}); diff --git a/OpenSRF/src/perlmods/OpenSRF/System.pm b/OpenSRF/src/perlmods/OpenSRF/System.pm index 86d340c77e..e8833ed3b2 100644 --- a/OpenSRF/src/perlmods/OpenSRF/System.pm +++ b/OpenSRF/src/perlmods/OpenSRF/System.pm @@ -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();