The following code illustrates STUDYing a class with Inline::Java. Other classes encountered when the code is first run are examined courtesy of the AUTOSTUDY statement. The class info is cached so that future execution is quicker.
#! /usr/bin/perl -w
use strict;
use warnings;
use Data::Dumper;
use Inline ( Java => 'STUDY',
STUDY => ['com.verity.search.VSearch'],
AUTOSTUDY => 1,
);
use Inline::Java qw(caught) ;
eval
{
my $search = new com::verity::search::VSearch();
$search->setServerSpec('localhost:9900');
$search->setK2UserName('inman');
$search->setK2Password('xxxxx');
my $ticket = $search->k2Login();;
my $colls = $search->collectionsInfo();
my $collCount = $colls->count();
foreach (0..$collCount-1)
{
my $coll = $colls->at($_);
print "Collection: ".$coll->getAlias."\n";
}
$search->addCollection ('verity_doccoll');
$search->setQueryText('*');
my $result = $search->getResult();
print "Docs Found: ", $result->{docsFound};
};
if ($@)
{
if (caught("java.lang.Exception"))
{
my $msg;
$msg = ($@->getMessage());
print "Exception $msg\n"; # prints ouch!
}
else
{
# It wasn't a Java exception after all...
die $@ ;
}
}
|