Axton,
I have experienced that if you have the same classes in multiple jar files,
that it uses the one that's in the classpath first, first.  So...if you add
the newer versions of the classes in your jar first, then the plugin server
jar file, that I believe it should use the new ones before the old ones.

-----Original Message-----
From: Action Request System discussion list(ARSList)
[mailto:[email protected]] On Behalf Of Axton
Sent: Tuesday, February 14, 2012 2:22 PM
To: [email protected]
Subject: Java Plugin Server - Class conflict

I am trying to use Apache Commons Codec 1.6 in a plugin I am writing.
The plugin server jar contains these classes, though an old version
(too old to do what I would like to do):

$ jar -tvf arpluginsvr75.jar |grep 'org/apache/commons/codec/'
     0 Sun Sep 20 09:23:16 EDT 2009 org/apache/commons/codec/
     0 Sun Sep 20 09:23:16 EDT 2009 org/apache/commons/codec/binary/
     0 Sun Sep 20 09:23:16 EDT 2009 org/apache/commons/codec/digest/
     0 Sun Sep 20 09:23:16 EDT 2009 org/apache/commons/codec/language/
     0 Sun Sep 20 09:23:16 EDT 2009 org/apache/commons/codec/net/
   268 Sat Jul 10 16:13:00 EDT 2004
org/apache/commons/codec/BinaryDecoder.class
   268 Sat Jul 10 16:13:00 EDT 2004
org/apache/commons/codec/BinaryEncoder.class
   248 Sat Jul 10 16:13:00 EDT 2004 org/apache/commons/codec/Decoder.class
   391 Sat Jul 10 16:13:00 EDT 2004
org/apache/commons/codec/DecoderException.class
   248 Sat Jul 10 16:13:00 EDT 2004 org/apache/commons/codec/Encoder.class
   391 Sat Jul 10 16:13:00 EDT 2004
org/apache/commons/codec/EncoderException.class
   300 Sat Jul 10 16:13:00 EDT 2004
org/apache/commons/codec/StringDecoder.class
   300 Sat Jul 10 16:13:00 EDT 2004
org/apache/commons/codec/StringEncoder.class
  1190 Sat Jul 10 16:13:00 EDT 2004
org/apache/commons/codec/StringEncoderComparator.class
  5468 Sat Jul 10 16:13:00 EDT 2004
org/apache/commons/codec/binary/Base64.class
  2969 Sat Jul 10 16:13:00 EDT 2004
org/apache/commons/codec/binary/BinaryCodec.class
  2624 Sat Jul 10 16:13:00 EDT 2004
org/apache/commons/codec/binary/Hex.class
   704 Sat Jul 10 16:13:02 EDT 2004
org/apache/commons/codec/binary/package.html
  1860 Sat Jul 10 16:13:00 EDT 2004
org/apache/commons/codec/digest/DigestUtils.class
   708 Sat Jul 10 16:13:02 EDT 2004
org/apache/commons/codec/digest/package.html
  2470 Sat Jul 10 16:13:00 EDT 2004
org/apache/commons/codec/language/DoubleMetaphone$DoubleMetaphoneResult.clas
s
 14791 Sat Jul 10 16:13:00 EDT 2004
org/apache/commons/codec/language/DoubleMetaphone.class
  5050 Sat Jul 10 16:13:02 EDT 2004
org/apache/commons/codec/language/Metaphone.class
  2349 Sat Jul 10 16:13:02 EDT 2004
org/apache/commons/codec/language/RefinedSoundex.class
  3286 Sat Jul 10 16:13:02 EDT 2004
org/apache/commons/codec/language/Soundex.class
  1583 Sat Jul 10 16:13:02 EDT 2004
org/apache/commons/codec/language/SoundexUtils.class
   674 Sat Jul 10 16:13:02 EDT 2004
org/apache/commons/codec/language/package.html
  2661 Sat Jul 10 16:13:02 EDT 2004
org/apache/commons/codec/net/BCodec.class
  4052 Sat Jul 10 16:13:02 EDT 2004
org/apache/commons/codec/net/QCodec.class
  4511 Sat Jul 10 16:13:02 EDT 2004
org/apache/commons/codec/net/QuotedPrintableCodec.class
  2435 Sat Jul 10 16:13:02 EDT 2004
org/apache/commons/codec/net/RFC1522Codec.class
   252 Sat Jul 10 16:13:02 EDT 2004
org/apache/commons/codec/net/StringEncodings.class
  4432 Sat Jul 10 16:13:02 EDT 2004
org/apache/commons/codec/net/URLCodec.class
   696 Sat Jul 10 16:13:02 EDT 2004
org/apache/commons/codec/net/package.html
  1022 Sat Jul 10 16:13:02 EDT 2004 org/apache/commons/codec/overview.html
  3283 Sat Jul 10 16:13:02 EDT 2004 org/apache/commons/codec/package.html

The problem is that the plugin resolves and uses the classes in the
plugin server jar file, not the jar file I have referenced in my
plugin server configuration:

    <plugin>
      <name>ARF.PLUGIN</name>
      <type>FilterAPI</type>
      <code>JAVA</code>
      <filename>/path/to/plugin.jar</filename>
      <classname>com.newyorklife.remedy.plugins.Extractor</classname>
      <pathelement type="location">/path/to/javacsv.jar</pathelement>
      <pathelement
type="location">/path/to/commons-codec-1.6.jar</pathelement>
      <pathelement type="location">/path/to/mail.jar</pathelement>
      <pathelement
type="location">/path/to/commons-lang3-3.1.jar</pathelement>
      <userDefined>
        <configfile>/path/to/config.properties</configfile>
      </userDefined>
    </plugin>

Any ideas on how I can change the behavior of the classloader?  Do I
need to use something like java.lang.classloader?

Thanks,
Axton Grams

____________________________________________________________________________
___
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"

_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"

Reply via email to