FreeMarker and OSGI



我们使用javaee和osgi构建框架已经做了很多工作。作为一个模板系统,JSP被选为最快且非常成熟的。

然而,我们遇到了一个非常严重的问题。当我们使用osgi时,我们有一个web应用程序包-wab。这个捆绑包只包含jsp、css、js、images、flash+配置xml文件。所有java类都在不同的bundle-jar中。

问题是,据我所知,jsp的delopers没有提供对类加载器的访问,因此javaee的开发人员不能让jsp编译器使用wab文件之外的类。问题描述如下-https://java.net/jira/browse/GLASSFISH-11208#。java ee开发人员保持沉默。

对于这个问题,处理代码真的很困难,因为你只能做反射。这就是为什么我们想要从jsp转移到freemarker。

所以我的问题是,freemarker是否提供了使用osgi的所有功能?

FreeMarker的模板加载机制依赖于可插入的TemplateLoader实现,因此在这方面没有不可能的事情。希望包含的TemplateLoader-无论如何都可以。

我知道类内省的一个潜在性能问题(虽然从未从用户那里听说过,但我只是在源代码中发现了它):如果你有多个同名的类(在OSGi下比在其他地方更容易发生),并且两者的实例都在模板中访问,FreeMarker将不断刷新其整个类内省缓存,因为它认为类已被重新加载。如果你运气不好,这可能是一个性能问题。

除此之外,freemarker.jar在OSGi环境中使用已久。它甚至是开箱即用的OSGi捆绑包。

最新更新