📄 classmanager.java
字号:
// You can redistribute this software and/or modify it under the terms of
// the Ozone Core License version 1 published by ozone-db.org.
//
// The original code and portions created by SMB are
// Copyright (C) 1997-@year@ by SMB GmbH. All rights reserved.
//
// $Id: ClassManager.java,v 1.8 2002/12/29 11:15:56 per_nyfelt Exp $
package org.ozoneDB.core;
import org.ozoneDB.OzoneClassNotFoundException;
import org.ozoneDB.util.LogWriter;
/**
* @author <a href="http://www.softwarebuero.de/">SMB</a>
* @version $Revision: 1.8 $Date: 2002/12/29 11:15:56 $
*/
public final class ClassManager extends ServerComponent {
protected ClassLoader classLoader;
public ClassManager( Env _env ) {
super( _env );
}
public void startup() throws Exception {
env.logWriter.newEntry( this, "startup...", LogWriter.INFO );
dropClasses();
}
public void shutdown() throws Exception {
env.logWriter.newEntry( this, "shutdown...", LogWriter.INFO );
}
public void save() throws Exception {
}
public Class classForName( String name ) throws OzoneClassNotFoundException {
if (env.logWriter.hasTarget( LogWriter.DEBUG3 )) {
env.logWriter.newEntry( this, "classForName(): " + name, LogWriter.DEBUG3 );
}
try {
// TODO: remove this if the classLoader works
// as long as the OzoneClassLoader does not work as expected and does
// not allow to drop classes we can directly use the context loader
// of the thread to avoid problems in managed environments like
// servlets
//Class cl;
// If we do not use OzoneClassLoader, we have to care for primitive types ourselves
//cl = OzoneClassLoader.primitiveType(name);
//if (cl==null) {
// cl = Thread.currentThread().getContextClassLoader().loadClass( name );
//}
Class cl = classLoader.loadClass( name );
if (env.logWriter.hasTarget( LogWriter.DEBUG3 )) {
env.logWriter.newEntry( this, " class: " + cl.getName() + ", " + cl.hashCode(), LogWriter.DEBUG3 );
}
return cl;
}
catch (ClassNotFoundException e) {
throw new OzoneClassNotFoundException( e.getMessage() );
}
}
public void dropClasses() throws Exception {
env.logWriter.newEntry( this, "dropClasses()", LogWriter.DEBUG3 );
classLoader = new OzoneClassLoader();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -