@SuppressWarnings("unchecked") public static Class<? extends EventQualifierSerializer> generateAndLoad() { logger.info("Generating source for {}.{}...", SERIALIZER_PACKAGE_NAME, SERIALIZER_CLASS_NAME); final String source = generateSource(CDIAnnotationUtils.getQualifiers()); logger.info("Successfully generated source for {}.{}", SERIALIZER_PACKAGE_NAME, SERIALIZER_CLASS_NAME); logger.info("Attempting to compile and load {}.{}", SERIALIZER_PACKAGE_NAME, SERIALIZER_CLASS_NAME); return (Class<? extends EventQualifierSerializer>) ClassChangeUtil .compileAndLoadFromSource(SERIALIZER_PACKAGE_NAME, SERIALIZER_CLASS_NAME, source); }
@SuppressWarnings("unchecked") public static Class<? extends MarshallerFactory> getGeneratedMarshallerFactoryForServer() { final String packageName = MarshallersGenerator.SERVER_MARSHALLER_PACKAGE_NAME; final String simpleClassName = MarshallersGenerator.SERVER_MARSHALLER_CLASS_NAME; final String fullyQualifiedClassName = packageName + "." + simpleClassName; final Optional<Class<?>> generatedMarshaller = ClassChangeUtil.loadClassIfPresent(packageName, simpleClassName); if (generatedMarshaller.isPresent()) { return (Class<? extends MarshallerFactory>) generatedMarshaller.get(); } else if (!MarshallingGenUtil.isForceStaticMarshallers()) { return null; } else { log.info("couldn't find {} class, attempting to generate ...", fullyQualifiedClassName); final String classStr = MarshallerGeneratorFactory.getFor(null, MarshallerOutputTarget.Java) .generate(packageName, simpleClassName); return (Class<? extends MarshallerFactory>) ClassChangeUtil.compileAndLoadFromSource(packageName, simpleClassName, classStr); } } }
@SuppressWarnings("unchecked") public static Class<? extends MarshallerFactory> getGeneratedMarshallerFactoryForServer() { final String packageName = MarshallersGenerator.SERVER_MARSHALLER_PACKAGE_NAME; final String simpleClassName = MarshallersGenerator.SERVER_MARSHALLER_CLASS_NAME; final String fullyQualifiedClassName = packageName + "." + simpleClassName; final Optional<Class<?>> generatedMarshaller = ClassChangeUtil.loadClassIfPresent(packageName, simpleClassName); if (generatedMarshaller.isPresent()) { return (Class<? extends MarshallerFactory>) generatedMarshaller.get(); } else if (!MarshallingGenUtil.isForceStaticMarshallers()) { return null; } else { log.info("couldn't find {} class, attempting to generate ...", fullyQualifiedClassName); final String classStr = MarshallerGeneratorFactory.getFor(null, MarshallerOutputTarget.Java) .generate(packageName, simpleClassName); return (Class<? extends MarshallerFactory>) ClassChangeUtil.compileAndLoadFromSource(packageName, simpleClassName, classStr); } } }