Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #6661

Detecting if a class is already known

From Ross <rossclement@gmail.com>
Newsgroups comp.lang.java.programmer
Subject Detecting if a class is already known
Date 2011-07-29 09:47 -0700
Organization http://groups.google.com
Message-ID <c58b6bca-daa4-4942-b466-768344bf26b1@l7g2000vbz.googlegroups.com> (permalink)

Show all headers | View raw


Hi all.

I'm building a plugin loader. I want this loader to be able to load
from .jar files, which may contain multiple classes per plugin. So,
all of these classes need to be loaded in.

However, I don't want to load classes that already exist, e.g. I don't
want there to be the possibility of plugins loading classes which
would conflict with classes already part of the application.

I can easily check if classes are already present in the classpath by
using a method such as:

  private boolean known( String className )
  {
    try
    {
      Class c = Class.forName( className );
      return true;
    }
    catch( ClassNotFoundException cnfe )
    {
      return false;
    }
  }

This will cause a plugin to be rejected if it includes any class which
can be found. But, since plugins should really contain classes defined
in a unique package, I don't think this will cause a problem.

Is there a better way of identifying if plugins are redefining
existing classes, or otherwise creating a potential problem? Or, is
there no possibility of a potential conflict due to the way that
custom classloaders work?

Back to comp.lang.java.programmer | Previous | NextNext in thread | Find similar


Thread

Detecting if a class is already known Ross <rossclement@gmail.com> - 2011-07-29 09:47 -0700
  Re: Detecting if a class is already known markspace <-@.> - 2011-07-29 10:44 -0700
    Re: Detecting if a class is already known Lew <lewbloch@gmail.com> - 2011-08-02 07:51 -0700
  Re: Detecting if a class is already known Arne Vajhøj <arne@vajhoej.dk> - 2011-08-05 22:21 -0400

csiph-web