#!/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 ($@);
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) = @_;
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'});