bean
class
dependencies
jsp
view
Jahia 7.3
Jahia 8
Class usage from another module in a view (jsp)
Question
How I can use a class, from another module, in a jsp (a view in another module)?
Answer
In the module where the class is definded, the package must be exported in pom.xml (e.g. org.jahia.modules.classdepmod1.utils):
... <build> <plugins> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <Export-Package> org.jahia.modules.classdepmod1.utils </Export-Package> <instructions> <Jahia-Depends>default</Jahia-Depends> </instructions> </configuration> ...
In the module where the class should be used, must be a dependency to the oder module (e.g. classdepmod1) and import the package:
... <properties> <jahia-depends>classdepmod1,default</jahia-depends> </properties> .... <dependencies> <dependency> <groupId>org.jahia.modules</groupId> <artifactId>classdepmod1</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> .... <plugins> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <Import-Package> org.jahia.modules.classdepmod1.utils, ${jahia.plugin.projectPackageImport}, * </Import-Package> <instructions /> </configuration> ......
After a rebuild and redeployment of this modules, the class could be used in the jsp as import or fully qualified with package like:
... <%@page import="org.jahia.modules.classdepmod1.utils.*" %> .... <% MyDependentUtil myDepUtil = MyDependentUtil.getInstance(); %> ..... <%=myDepUtil.get....%>
....