public CompiledOpenClass getCompiledOpenClass() throws RulesInstantiationException, ProjectResolvingException, ClassNotFoundException { return getRulesInstantiationStrategy().compile(); }
@Override public void setExternalParameters(Map<String, Object> parameters) { getOriginalInstantiationStrategy().setExternalParameters(parameters); } }
private void resolveInterfaceAndClassLoader(OpenLService service, RulesInstantiationStrategy instantiationStrategy) throws RulesInstantiationException, ClassNotFoundException { String serviceClassName = service.getServiceClassName(); Class<?> serviceClass = null; ClassLoader serviceClassLoader = instantiationStrategy.getClassLoader(); service.setClassLoader(serviceClassLoader); if (serviceClassName != null) { try { serviceClass = serviceClassLoader.loadClass(serviceClassName.trim()); Class<?> interfaceForInstantiationStrategy = RuleServiceInstantiationFactoryHelper.getInterfaceForInstantiationStrategy(instantiationStrategy, serviceClass); instantiationStrategy.setServiceClass(interfaceForInstantiationStrategy); } catch (ClassNotFoundException e) { log.error("Failed to load service class '{}'.", serviceClassName, e); } catch (NoClassDefFoundError e) { log.error("Failed to load service class '{}'.", serviceClassName, e); } } if (serviceClass == null) { log.info("Service class is undefined for service '{}'. Generated interface has been used.", service.getName()); Class<?> instanceClass = instantiationStrategy.getInstanceClass(); serviceClass = processGeneratedServiceClass(instantiationStrategy, service, instanceClass, serviceClassLoader); service.setServiceClassName(null); //Generated class is used. } service.setServiceClass(serviceClass); }
rulesInstantiationStrategy.setExternalParameters(parameters); rulesInstantiationStrategy.setServiceClass(EmptyInterface.class); // Prevent try { OpenLValidationManager.turnOffValidation(); CompiledOpenClass compiledOpenClass = rulesInstantiationStrategy.compile(); CompiledDependency cd = new CompiledDependency(dependencyName, compiledOpenClass); log.debug("Dependency for dependencyName = {} has been stored in cache.", dependencyName);
instantiationStrategy.setExternalParameters(externalParameters); instantiationStrategy.setServiceClass(SimpleProjectDependencyLoader.EmptyInterface.class); if (reloadType == ReloadType.FORCED) { instantiationStrategy.forcedReset(); } else if (reloadType != ReloadType.NO) { instantiationStrategy.reset(); compiledOpenClass = instantiationStrategy.compile(); webStudioWorkspaceDependencyManager.replaceClassLoader(moduleInfo.getProject(), instantiationStrategy.getClassLoader());
private void instantiateServiceBean(OpenLService service, RulesInstantiationStrategy instantiationStrategy) throws RulesInstantiationException, ClassNotFoundException { Class<?> serviceClass = service.getServiceClass(); CompiledOpenClass compiledOpenClass = instantiationStrategy.compile(); service.setOpenClass(compiledOpenClass.getOpenClass()); Object serviceBean = instantiationStrategy.instantiate(); Thread.currentThread().setContextClassLoader(instantiationStrategy.getClassLoader()); factory.addAdvice(new ServiceInvocationAdvice(serviceBean, serviceClass, getServiceCallInterceptorGroups(), instantiationStrategy.getClassLoader())); if (serviceClass.isInterface()) { factory.addInterface(serviceClass);
getProjectDescriptor().getModules()); instantiationStrategy.setExternalParameters(parameters); try { if (interfaceClass != null) { instantiationStrategy.setServiceClass(interfaceClass);
public Class<?> getInterfaceClass() throws RulesInstantiationException, ProjectResolvingException, ClassNotFoundException { if (interfaceClass != null) { return interfaceClass; } if (generatedInterfaceClass != null) { return generatedInterfaceClass; } log.info("Interface class is undefined for factory. Generated interface has been used."); generatedInterfaceClass = getRulesInstantiationStrategy().getInstanceClass(); return generatedInterfaceClass; }
@Override public void setServiceClass(Class<?> serviceClass) { try { if (validateServiceClass(serviceClass)) { this.serviceClass = serviceClass; try { Class<?> clazz = undecorateServiceClass(serviceClass, getClassLoader()); getOriginalInstantiationStrategy().setServiceClass(clazz); } catch (Exception e) { throw new OpenlNotCheckedException( "Failed to set service class to instantiation strategy enhancer. Failed to get undecorated class.", e); } } else { throw new OpenlNotCheckedException( "Failed to set service class to instantiation strategy enhancer. Service class isn't supported by this strategy!"); } } catch (ValidationServiceClassException e) { throw new OpenlNotCheckedException( "Failed to set service class to instantiation strategy enhancer. Service class isn't supported by this strategy!", e); } }
@SuppressWarnings("unchecked") public T newInstance() throws RulesInstantiationException, ProjectResolvingException, ClassNotFoundException { return (T) getRulesInstantiationStrategy().instantiate(); }
@Override public void reset() { getOriginalInstantiationStrategy().reset(); serviceClass = null; }
@Override public void forcedReset() { reset(); getOriginalInstantiationStrategy().forcedReset(); }
ClassUtils.defineClass(className, classWriter.toByteArray(), instantiationStrategy.getClassLoader()); return Class.forName(className, true, instantiationStrategy.getClassLoader()); } catch (Exception e) { throw new OpenlNotCheckedException(e);
rulesInstantiationStrategy.setExternalParameters(parameters); rulesInstantiationStrategy.setServiceClass(EmptyInterface.class); // Prevent try { OpenLValidationManager.turnOffValidation(); CompiledOpenClass compiledOpenClass = rulesInstantiationStrategy.compile(); CompiledDependency cd = new CompiledDependency(dependencyName, compiledOpenClass); log.debug("Dependency for dependencyName = {} has been stored in cache.", dependencyName);
instantiationStrategy.setExternalParameters(externalParameters); instantiationStrategy.setServiceClass(SimpleProjectDependencyLoader.EmptyInterface.class); if (reloadType == ReloadType.FORCED) { instantiationStrategy.forcedReset(); } else if (reloadType != ReloadType.NO) { instantiationStrategy.reset(); compiledOpenClass = instantiationStrategy.compile(); webStudioWorkspaceDependencyManager.replaceClassLoader(moduleInfo.getProject(), instantiationStrategy.getClassLoader());
ClassNotFoundException { Class<?> serviceClass = service.getServiceClass(); CompiledOpenClass compiledOpenClass = instantiationStrategy.compile(); service.setOpenClass(compiledOpenClass.getOpenClass()); Object serviceBean = instantiationStrategy.instantiate(); Thread.currentThread().setContextClassLoader(instantiationStrategy.getClassLoader()); factory.addAdvice(new ServiceInvocationAdvice(serviceBean, serviceClass, getServiceCallInterceptorGroups(), instantiationStrategy.getClassLoader())); if (serviceClass.isInterface()) { factory.addInterface(serviceClass);
getProjectDescriptor().getModules()); instantiationStrategy.setExternalParameters(parameters); try { if (interfaceClass != null) { instantiationStrategy.setServiceClass(interfaceClass);
public Class<?> getInterfaceClass() throws RulesInstantiationException, ProjectResolvingException, ClassNotFoundException { if (interfaceClass != null) { return interfaceClass; } if (generatedInterfaceClass != null) { return generatedInterfaceClass; } log.info("Interface class is undefined for factory. Generated interface has been used."); generatedInterfaceClass = getRulesInstantiationStrategy().getInstanceClass(); return generatedInterfaceClass; }
@Override public void setServiceClass(Class<?> serviceClass) { try { if (validateServiceClass(serviceClass)) { this.serviceClass = serviceClass; try { Class<?> clazz = undecorateServiceClass(serviceClass, getClassLoader()); getOriginalInstantiationStrategy().setServiceClass(clazz); } catch (Exception e) { throw new OpenlNotCheckedException( "Failed to set service class to instantiation strategy enhancer. Failed to get undecorated class.", e); } } else { throw new OpenlNotCheckedException( "Failed to set service class to instantiation strategy enhancer. Service class isn't supported by this strategy!"); } } catch (ValidationServiceClassException e) { throw new OpenlNotCheckedException( "Failed to set service class to instantiation strategy enhancer. Service class isn't supported by this strategy!", e); } }
@SuppressWarnings("unchecked") public T newInstance() throws RulesInstantiationException, ProjectResolvingException, ClassNotFoundException { return (T) getRulesInstantiationStrategy().instantiate(); }