private S getNextClassInstance() { while (services.hasNext()) { ResourceClass<S> info = services.nextResourceClass(); try { return spi.newInstance(info.loadClass()); } catch (Exception e) { // ignore } catch (LinkageError le) { // ignore } } return null; } };
while (factory == null && services.hasNext()) { try { Class service = services.nextResourceClass().loadClass();
while (iter.hasNext()) { ResourceClass resource = iter.nextResourceClass(); try {
while (factory == null && services.hasNext()) { try { Class service = services.nextResourceClass().loadClass();
while (factory == null && services.hasNext()) { try { Class service = services.nextResourceClass().loadClass();
while (iter.hasNext()) { ResourceClass resource = iter.nextResourceClass(); try {
while (iter.hasNext()) { ResourceClass resource = iter.nextResourceClass(); try {
while (iter.hasNext()) { ResourceClass resource = iter.nextResourceClass(); try {
public Object run() { ResourceClassIterator services = getResourceClassIterator(spiClass); Object obj = null; while (obj == null && services.hasNext()) { Class service = services.nextResourceClass().loadClass(); /* service == null * if class resource wasn't loadable */ if (service != null) { /* OK, class loaded.. attempt to instantiate it. */ try { ClassUtils.verifyAncestory(spiClass, service); obj = ClassUtils.newInstance(service, constructorParamTypes, constructorParams); } catch (InvocationTargetException e) { if (e.getTargetException() instanceof java.lang.NoClassDefFoundError) { log.debug(Messages.getMessage("exception00"), e); } else { log.warn(Messages.getMessage("exception00"), e); } } catch (Exception e) { log.warn(Messages.getMessage("exception00"), e); } } } return obj; } });
public Object run() { ResourceClassIterator services = getResourceClassIterator(spiClass); Object obj = null; while (obj == null && services.hasNext()) { Class service = services.nextResourceClass().loadClass(); /* service == null * if class resource wasn't loadable */ if (service != null) { /* OK, class loaded.. attempt to instantiate it. */ try { ClassUtils.verifyAncestory(spiClass, service); obj = ClassUtils.newInstance(service, constructorParamTypes, constructorParams); } catch (InvocationTargetException e) { if (e.getTargetException() instanceof java.lang.NoClassDefFoundError) { log.debug(Messages.getMessage("exception00"), e); } else { log.warn(Messages.getMessage("exception00"), e); } } catch (Exception e) { log.warn(Messages.getMessage("exception00"), e); } } } return obj; } });
public Object run() { ResourceClassIterator services = getResourceClassIterator(spiClass); Object obj = null; while (obj == null && services.hasNext()) { Class service = services.nextResourceClass().loadClass(); /* service == null * if class resource wasn't loadable */ if (service != null) { /* OK, class loaded.. attempt to instantiate it. */ try { ClassUtils.verifyAncestory(spiClass, service); obj = ClassUtils.newInstance(service, constructorParamTypes, constructorParams); } catch (InvocationTargetException e) { if (e.getTargetException() instanceof java.lang.NoClassDefFoundError) { log.debug(Messages.getMessage("exception00"), e); } else { log.warn(Messages.getMessage("exception00"), e); } } catch (Exception e) { log.warn(Messages.getMessage("exception00"), e); } } } return obj; } });
/** * Returns the default class, loading it if necessary * and verifying that it implements the SPI * (this forces the check, no way out..). * * @param <S> Any type extends the SPI type * @param spi non-null SPI * @param loaders Used only if class needs to be loaded. * @return The default Class. */ public <S extends T> Class<S> getDefaultClass(SPInterface<T> spi, ClassLoaders loaders) { if (defaultClass == null) { DiscoverClasses<T> classDiscovery = new DiscoverClasses<T>(loaders); ResourceClassIterator<T> classes = classDiscovery.findResourceClasses(getDefaultName()); if (classes.hasNext()) { ResourceClass<T> info = classes.nextResourceClass(); try { defaultClass = info.loadClass(); } catch (Exception e) { // ignore } } } if (defaultClass != null) { spi.verifyAncestory(defaultClass); } @SuppressWarnings("unchecked") // the SPInterface.verifyAncestory already asserted Class<S> returned = (Class<S>) defaultClass; return returned; }
if (classes.hasNext()) { ResourceClass<T> info = classes.nextResourceClass(); try { (new DiscoverClasses<T>(loaders)).findResourceClasses(classIter); if (!classes.hasNext() && defaultImpl != null) { return defaultImpl.getDefaultClass(spi, loaders); while (classes.hasNext()) { ResourceClass<T> info = classes.nextResourceClass(); try {