Package org.xmlBlaster.test.classloader

Source Code of org.xmlBlaster.test.classloader.XmlBlasterClassloaderTest

package org.xmlBlaster.test.classloader;

import java.util.logging.Logger;
import org.xmlBlaster.util.*;
import java.net.URL;
import java.net.URLClassLoader;
import org.xmlBlaster.client.qos.ConnectQos;
import org.xmlBlaster.client.I_XmlBlasterAccess;
import org.xmlBlaster.util.MsgUnit;


import junit.framework.*;
import java.net.*;

/**
* Test SNMP (simple network management protocol) to insert data.
* <p />
* All methods starting with 'test' and without arguments are invoked automatically
* <p />
* Invoke: java -Djava.compiler= junit.textui.TestRunner -noloading org.xmlBlaster.test.snmp.InsertTest
*
* @see org.xmlBlaster.engine.admin.extern.snmp.NodeEntryImpl
*/
public class XmlBlasterClassloaderTest extends TestCase {
   protected Global glob;
   private static Logger log = Logger.getLogger(XmlBlasterClassloaderTest.class.getName());
   private MsgUnit msgUnit;     // a message to play with

   public XmlBlasterClassloaderTest(String name) {
      super(name);
   }

   protected void setUp() {
      this.glob = Global.instance();

      URLClassLoader cl = (URLClassLoader)this.getClass().getClassLoader();
      URL[] urls = cl.getURLs();
      String path = "";
      for( int i = 0; i < urls.length; i++ ) {
         String file = urls[i].getFile();
         // TODO: parser.jar is not used anymore, remove code below
         if( file.endsWith("parser.jar") ) {
            int pos = file.indexOf("parser.jar");
            path = urls[i].getProtocol()+"://"+file.substring(0,pos);
            break;
         }
      }

      // Add a xerces.jar at the beginning, so that CLASSPATH contains another XML-Parser in front.
      try {
         urls = new URL[2];
         urls[0] = new URL(path+"ant/xerces.jar");
         urls[1] = new URL(path+"xmlBlaster.jar");
      }
      catch (MalformedURLException ex) {
         log.severe("error. >>>"+ex.toString());
      }

      cl = cl.newInstance(urls);
      try {
         Class clazz = cl.loadClass("org.xmlBlaster.util.EmbeddedXmlBlaster");
      }
      catch (ClassNotFoundException ex) {
         assertTrue(ex.getMessage(), true);
      }

   }

   public void testClassloader() {
      System.out.println("***XmlBlasterClassloaderTest: testClassloader ...");

      try {
         EmbeddedXmlBlaster embed = EmbeddedXmlBlaster.startXmlBlaster(glob);

         I_XmlBlasterAccess conn = glob.getXmlBlasterAccess();
         ConnectQos qos = new ConnectQos(glob, "marcel", "secret");
         conn.connect( qos, null ); // Login to xmlBlaster

         // a sample message unit
         String xmlKey = "<key oid='123' contentMime='text/plain' contentMimeExtended='myMime'>\n" +
                           "   <TestLogin-AGENT>" +
                           "   </TestLogin-AGENT>" +
                           "</key>";
         String senderContent = "Some content";
         MsgUnit msgUnit = new MsgUnit(xmlKey, senderContent.getBytes(), "<qos></qos>");
         conn.publish(msgUnit);

      }
      catch (Throwable t) {
         assertTrue( "Some error occured:"+t.toString(), true );
      }

      System.out.println("***XmlBlasterClassloaderTest: testClassloader [SUCCESS]");
   }


   protected void tearDown() {
   }

   /**
    * <pre>
    *  java org.xmlBlaster.test.snmp.InsertTest
    * </pre>
    */
   public static void main(String args[])
   {
      XmlBlasterClassloaderTest testCl = new XmlBlasterClassloaderTest("XmlBlasterClassloaderTest");
      testCl.setUp();
      testCl.testClassloader();
      testCl.tearDown();
   }
}
TOP

Related Classes of org.xmlBlaster.test.classloader.XmlBlasterClassloaderTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.