X-Git-Url: http://git.megacz.com/?p=org.ibex.jinetd.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Fjinetd%2FLoader.java;h=012a9356b5179016d1988df2be6f1e02b210a797;hp=0d6ca14128a300977ed58708395e90482cabdb80;hb=70604175e53b4c6ca71a82108f35e74b1ac1993a;hpb=5a70dae9ae337182636a4c4d59951019a24e9f34 diff --git a/src/org/ibex/jinetd/Loader.java b/src/org/ibex/jinetd/Loader.java index 0d6ca14..012a935 100644 --- a/src/org/ibex/jinetd/Loader.java +++ b/src/org/ibex/jinetd/Loader.java @@ -1,25 +1,49 @@ +// Copyright 2000-2005 the Contributors, as shown in the revision logs. +// Licensed under the Apache Public Source License 2.0 ("the License"). +// You may not use this file except in compliance with the License. + package org.ibex.jinetd; +import org.ibex.io.*; import org.ibex.util.*; import java.io.*; import java.util.*; +import java.text.*; +import java.net.*; import java.util.zip.*; /** represents a file or directory which is scanned for updates */ public class Loader extends Watcher { + ClassLoader parentClassLoader = null; + static final ClassLoader mycl = Loader.class.getClassLoader(); + + protected ThreadGroup tg = new ThreadGroup(getAbsolutePath()); + public Loader(String path) { super(path); } + //public Loader(String path, ClassLoader pcl) { super(path); this.parentClassLoader = pcl; } - private TreeClassLoader classloader = new TreeClassLoader(); - public ClassLoader getClassLoader() { + private TreeClassLoader classloader = null; + public synchronized void scan() throws IOException { super.scan(); } + public synchronized ClassLoader getClassLoader() { ClassLoader classloader = this.classloader; if (classloader == null) { - classloader = this.classloader = new TreeClassLoader(); - Log.warn(this, "getting classloader..."); + String s = getClassPath(); + StringTokenizer st = new StringTokenizer(s, File.pathSeparatorChar+""); + URL[] urls = new URL[st.countTokens()]; try { - compileSource(); - } catch (Exception e) { + for(int i=0; i 0) { + Log.warn(this, " annoying threads:"); + Thread[] annoying = new Thread[tg.activeCount()]; + tg.enumerate(annoying, true); + for(int i=0; i