Created by N Padmavathi on Jun 23, 2023
Extension Id
com.castsoftware.java.freemarker
What's new?
Please see Apache FreeMarker - 1.0 - Release Notes for more information.
Description
This extension provides support for Apache FreeMarker Framework.
In what situation should you install this extension?
If your Java application uses the Apache FreeMarker Framework and you want to view these object types and their links, then you should install this extension. More specifically the extension will identify:
- "callLink" from HTML source code objects (.ftl and similar files) to CallToFTL objects.
- "callLink" from CallToFTL objects to Java methods.
Technology support
Component | Version | Supported | Supported Technology |
---|
Apache FreeMarker Framework | 2.3.x | | JAVA |
AIP Core compatibility
This extension is compatible with:
AIP Core release | Supported |
---|
8.3.x | |
Download and installation instructions
The extension will not be automatically downloaded and installed in CAST Console. If you need to use it, should manually install the extension using the Application - Extensions interface:
What results can you expect?
Once the analysis/snapshot generation is completed, you can view the results. The following objects and links will be displayed in CAST Enlighten:
Objects
Icon | Description |
---|
| Java Freemarker FTL Parameter |
| Java Freemarker FTL Call |
| HTML source code |
Links
Link Type | Source and destination of link |
---|
callLink | Between HTML source code objects(.ftl and similar files) and CallToFTL objects. |
callLink | Between CallToFTL objects and JAVA methods. |
relyonLink | Between Java Freemarker FTLParameter and its JAVA class |
Code Examples
public static void main(String[] args) throws Exception {
Configuration cfg = new Configuration();
String content = null;
cfg.setClassForTemplateLoading(MainTest.class, "templates");
cfg.setIncompatibleImprovements(new Version(2, 3, 20));
cfg.setDefaultEncoding("UTF-8");
cfg.setLocale(Locale.US);
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
Map<String, Object> input = new HashMap<String, Object>();
input.put("title", "Dummy example");
List<ValueExampleObject> systems = new ArrayList<ValueExampleObject>();
systems.add(new ValueExampleObject("Android", "Google"));
systems.add(new ValueExampleObject("iOS States", "Apple"));
systems.add(new ValueExampleObject("Ubuntu", "Canonical"));
systems.add(new ValueExampleObject("Windows7", "Microsoft"));
input.put("systems", systems);
Cal cal=new Cal();
input.put("cal", cal);
input.put("exampleObject", new ValueExampleObject("Java object", "me"));
Template template = cfg.getTemplate("helloworld.ftl");
template.process(input, consoleWriter);
}
public class Cal {
public int add(int a, int b) {
return a+b;
}
public int mul(int a, int b) {
return a*b;
}
}
<html>
<head>
<title>${title}
</head>
<body>
<h1>${title}</h1>
<p>${exampleObject.name} by ${exampleObject.developer}</p>
<ul>
<#list systems as system>
<li>${system_index + 1}. ${system.name} from ${system.developer}</li>
</#list>
</ul>
<h1>
2+3= ${cal.add(2,3)}
10/2= ${cal.mul(10,2)}
</h1>
<#assign multiplied = cal.mul(40,20)>
<h1>${multiplied}</h1>
</body>
</html>