use of io.clownfish.clownfish.datamodels.ClownfishResponse in project Clownfish by rawdog71.
the class Clownfish method universalPost.
/**
* POST
*
* @param name
* @param request
* @param response
*/
@PostMapping("/{name}/**")
public void universalPost(@PathVariable("name") String name, @Context HttpServletRequest request, @Context HttpServletResponse response) {
try {
ArrayList urlParams = new ArrayList();
String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
if (path.contains("/")) {
String[] params = path.split("/");
for (int i = 1; i < params.length; i++) {
if (1 == i) {
path = params[i];
} else {
urlParams.add(params[i]);
}
}
}
if (name.compareToIgnoreCase(path) != 0) {
name = path.substring(1);
if (name.lastIndexOf("/") + 1 == name.length()) {
name = name.substring(0, name.length() - 1);
}
}
userSession = request.getSession();
if (request.getContentType().startsWith("multipart/form-data")) {
Map rqMap = request.getParameterMap();
LOGGER.info("MULTIPART");
} else {
String content = request.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
Gson gson = new Gson();
List<JsonFormParameter> map;
map = (List<JsonFormParameter>) gson.fromJson(content, new TypeToken<List<JsonFormParameter>>() {
}.getType());
addHeader(response, clownfishutil.getVersion());
Future<ClownfishResponse> cfResponse = makeResponse(name, map, urlParams, false);
if (cfResponse.get().getErrorcode() == 0) {
response.setContentType(this.contenttype);
response.setCharacterEncoding(this.characterencoding);
ServletOutputStream out = response.getOutputStream();
out.write(cfResponse.get().getOutput().getBytes(this.characterencoding));
} else {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
ServletOutputStream out = response.getOutputStream();
out.write(cfResponse.get().getOutput().getBytes(this.characterencoding));
}
}
} catch (IOException | InterruptedException | ExecutionException | PageNotFoundException | IllegalStateException ex) {
LOGGER.error(ex.getMessage());
}
}
use of io.clownfish.clownfish.datamodels.ClownfishResponse in project Clownfish by rawdog71.
the class Clownfish method getStaticSite.
/**
* getStaticSite
*/
private ClownfishResponse getStaticSite(String sitename) {
ClownfishResponse cfResponse = new ClownfishResponse();
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(folderUtil.getStatic_folder() + File.separator + sitename), "UTF-8"));
StringBuilder sb = new StringBuilder(1024);
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
cfResponse.setOutput(sb.toString());
cfResponse.setErrorcode(0);
br.close();
return cfResponse;
} catch (IOException ex) {
LOGGER.error(ex.getMessage());
cfResponse.setOutput("Static site not found");
cfResponse.setErrorcode(1);
return cfResponse;
} finally {
try {
if (null != br) {
br.close();
}
} catch (IOException ex) {
LOGGER.error(ex.getMessage());
}
}
}
use of io.clownfish.clownfish.datamodels.ClownfishResponse in project Clownfish by rawdog71.
the class Clownfish method universalGet.
/**
* GET
*
* @param name
* @param request
* @param response
*/
@GetMapping(path = "/{name}/**")
public void universalGet(@PathVariable("name") String name, @Context HttpServletRequest request, @Context HttpServletResponse response) {
if (servicestatus.isOnline()) {
try {
ArrayList urlParams = new ArrayList();
if (0 != name.compareToIgnoreCase("searchresult")) {
String path = (String) request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE);
if (path.contains("/")) {
String[] params = path.split("/");
for (int i = 1; i < params.length; i++) {
if (1 == i) {
path = params[i];
} else {
urlParams.add(params[i]);
}
}
}
if (name.compareToIgnoreCase(path) != 0) {
name = path.substring(1);
if (name.lastIndexOf("/") + 1 == name.length()) {
name = name.substring(0, name.length() - 1);
}
}
}
userSession = request.getSession();
Map<String, String[]> querymap = request.getParameterMap();
ArrayList queryParams = new ArrayList();
querymap.keySet().stream().map((key) -> {
JsonFormParameter jfp = new JsonFormParameter();
jfp.setName((String) key);
String[] values = querymap.get((String) key);
jfp.setValue(values[0]);
return jfp;
}).forEach((jfp) -> {
queryParams.add(jfp);
});
addHeader(response, clownfishutil.getVersion());
Future<ClownfishResponse> cfResponse = makeResponse(name, queryParams, urlParams, false);
if (cfResponse.get().getErrorcode() == 0) {
response.setContentType(this.contenttype);
response.setCharacterEncoding(this.characterencoding);
} else {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
}
ServletOutputStream out = response.getOutputStream();
out.write(cfResponse.get().getOutput().getBytes(this.characterencoding));
} catch (IOException | InterruptedException | ExecutionException ex) {
LOGGER.error(ex.getMessage());
} catch (PageNotFoundException ex) {
String error_site = propertyUtil.getPropertyValue("site_error");
if (null == error_site) {
error_site = "error";
}
request.setAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, error_site);
universalGet(error_site, request, response);
}
} else {
PrintWriter outwriter = null;
try {
outwriter = response.getWriter();
outwriter.println(servicestatus.getMessage());
} catch (IOException ex) {
LOGGER.error(ex.getMessage());
} finally {
if (null != outwriter) {
outwriter.close();
}
}
}
}
use of io.clownfish.clownfish.datamodels.ClownfishResponse in project Clownfish by rawdog71.
the class Clownfish method makeResponse.
/**
* makeResponse
*
* @param name
* @param postmap
* @param urlParams
* @param makestatic
* @return
* @throws io.clownfish.clownfish.exceptions.PageNotFoundException
*/
@Async
public Future<ClownfishResponse> makeResponse(String name, List<JsonFormParameter> postmap, List urlParams, boolean makestatic) throws PageNotFoundException {
ClownfishResponse cfresponse = new ClownfishResponse();
try {
List<CfSitedatasource> sitedatasourcelist = null;
// Freemarker Template
freemarker.template.Template fmTemplate = null;
Map fmRoot = null;
// Velocity Template
org.apache.velocity.VelocityContext velContext = null;
org.apache.velocity.Template velTemplate = null;
// fetch parameter list
Map parametermap = clownfishutil.getParametermap(postmap);
// manage urlParams
clownfishutil.addUrlParams(parametermap, urlParams);
preview = false;
if (parametermap.containsKey("preview")) {
// check mode for display (preview or productive)
if (parametermap.get("preview").toString().compareToIgnoreCase("true") == 0) {
preview = true;
}
}
if (parametermap.containsKey("modus")) {
// check mode for display (staging or dev)
if (parametermap.get("modus").toString().compareToIgnoreCase("dev") == 0) {
modus = DEVELOPMENT;
}
}
// fetch site by name or aliasname
CfSite cfsite = null;
try {
cfsite = cfsiteService.findByName(name);
} catch (Exception ex) {
try {
cfsite = cfsiteService.findByAliaspath(name);
} catch (Exception e1) {
throw new PageNotFoundException("PageNotFound Exception: " + name);
}
}
// Site has not job flag
if (!cfsite.isJob()) {
// increment site hitcounter
if ((!preview) && (modus == STAGING)) {
long hitcounter = cfsite.getHitcounter().longValue();
cfsite.setHitcounter(BigInteger.valueOf(hitcounter + 1));
cfsiteService.edit(cfsite);
}
// Site has static flag
if ((cfsite.isStaticsite()) && (!makestatic) && (!preview)) {
if ((cfsite.getContenttype() != null)) {
if (!cfsite.getContenttype().isEmpty()) {
this.contenttype = cfsite.getContenttype();
}
}
if ((cfsite.getCharacterencoding() != null)) {
if (!cfsite.getCharacterencoding().isEmpty()) {
this.characterencoding = cfsite.getCharacterencoding();
}
}
if ((cfsite.getLocale() != null)) {
if (!cfsite.getLocale().isEmpty()) {
this.locale = cfsite.getLocale();
}
}
cfresponse = getStaticSite(name);
if (0 == cfresponse.getErrorcode()) {
return new AsyncResult<>(cfresponse);
} else {
Future<ClownfishResponse> cfStaticResponse = makeResponse(name, postmap, urlParams, true);
try {
String aliasname = cfsite.getAliaspath();
StaticSiteUtil.generateStaticSite(name, aliasname, cfStaticResponse.get().getOutput(), cfassetService, folderUtil);
return makeResponse(name, postmap, urlParams, false);
} catch (InterruptedException | ExecutionException ex) {
LOGGER.error(ex.getMessage());
return makeResponse(name, postmap, urlParams, false);
}
}
} else {
if ((cfsite.getContenttype() != null)) {
if (!cfsite.getContenttype().isEmpty()) {
this.contenttype = cfsite.getContenttype();
}
}
if ((cfsite.getCharacterencoding() != null)) {
if (!cfsite.getCharacterencoding().isEmpty()) {
this.characterencoding = cfsite.getCharacterencoding();
}
}
if ((cfsite.getLocale() != null)) {
if (!cfsite.getLocale().isEmpty()) {
this.locale = cfsite.getLocale();
}
}
try {
CfTemplate cftemplate = cftemplateService.findById(cfsite.getTemplateref().longValue());
// fetch the dependend template
boolean isScripted = false;
switch(cftemplate.getScriptlanguage()) {
case // FREEMARKER
0:
fmRoot = new LinkedHashMap();
freemarkerTemplateloader.setModus(modus);
freemarkerCfg = new freemarker.template.Configuration();
freemarkerCfg.setDefaultEncoding("UTF-8");
freemarkerCfg.setTemplateLoader(freemarkerTemplateloader);
freemarkerCfg.setLocalizedLookup(false);
freemarkerCfg.setLocale(Locale.GERMANY);
fmTemplate = freemarkerCfg.getTemplate(cftemplate.getName());
isScripted = true;
break;
case // VELOCITY
1:
velContext = new org.apache.velocity.VelocityContext();
velTemplate = new org.apache.velocity.Template();
org.apache.velocity.runtime.RuntimeServices runtimeServices = org.apache.velocity.runtime.RuntimeSingleton.getRuntimeServices();
String templateContent;
if (DEVELOPMENT == modus) {
templateContent = cftemplate.getContent();
} else {
long currentTemplateVersion;
try {
currentTemplateVersion = cftemplateversionService.findMaxVersion(cftemplate.getId());
} catch (NullPointerException ex) {
currentTemplateVersion = 0;
}
templateContent = templateUtil.getVersion(cftemplate.getId(), currentTemplateVersion);
}
templateContent = templateUtil.fetchIncludes(templateContent, modus);
StringReader reader = new StringReader(templateContent);
velTemplate.setRuntimeServices(runtimeServices);
velTemplate.setData(runtimeServices.parse(reader, velTemplate));
velTemplate.initDocument();
isScripted = true;
break;
default:
break;
}
String gzip = propertyUtil.getPropertySwitch("html_gzip", cfsite.getGzip());
if (gzip.compareToIgnoreCase("on") == 0) {
gzipswitch.setGzipon(true);
}
String htmlcompression = propertyUtil.getPropertySwitch("html_compression", cfsite.getHtmlcompression());
HtmlCompressor htmlcompressor = new HtmlCompressor();
htmlcompressor.setRemoveSurroundingSpaces(HtmlCompressor.BLOCK_TAGS_MAX);
htmlcompressor.setPreserveLineBreaks(false);
Writer out = new StringWriter();
// fetch the dependend stylesheet, if available
String cfstylesheet = "";
if (cfsite.getStylesheetref() != null) {
cfstylesheet = ((CfStylesheet) cfstylesheetService.findById(cfsite.getStylesheetref().longValue())).getContent();
if (htmlcompression.compareToIgnoreCase("on") == 0) {
htmlcompressor.setCompressCss(true);
cfstylesheet = htmlcompressor.compress(cfstylesheet);
}
}
// fetch the dependend javascript, if available
String cfjavascript = "";
if (cfsite.getJavascriptref() != null) {
cfjavascript = ((CfJavascript) cfjavascriptService.findById(cfsite.getJavascriptref().longValue())).getContent();
if (htmlcompression.compareToIgnoreCase("on") == 0) {
htmlcompressor.setCompressJavaScript(true);
cfjavascript = htmlcompressor.compress(cfjavascript);
}
}
if (!cftemplate.isLayout()) {
// NORMAL Template
// fetch the dependend content
List<CfSitecontent> sitecontentlist = new ArrayList<>();
sitecontentlist.addAll(cfsitecontentService.findBySiteref(cfsite.getId()));
sitecontentmap = siteutil.getSitecontentmapList(sitecontentlist);
// fetch the dependend datalists, if available
sitecontentmap = siteutil.getSitelist_list(cfsite, sitecontentmap);
// fetch the site assetlibraries
sitecontentmap = siteutil.getSiteAssetlibrary(cfsite, sitecontentmap);
// fetch the site keywordlibraries
sitecontentmap = siteutil.getSiteKeywordlibrary(cfsite, sitecontentmap);
} else {
// LAYOUT Template
// Fetch the dependent content
List<CfLayoutcontent> layoutcontentlist = cflayoutcontentService.findBySiteref(cfsite.getId());
List<CfLayoutcontent> contentlist = layoutcontentlist.stream().filter(lc -> lc.getCfLayoutcontentPK().getContenttype().compareToIgnoreCase("C") == 0).collect(Collectors.toList());
List<CfClasscontent> classcontentlist = new ArrayList<>();
for (CfLayoutcontent layoutcontent : contentlist) {
if (preview) {
if (layoutcontent.getPreview_contentref().longValue() > 0) {
classcontentlist.add(cfclasscontentService.findById(layoutcontent.getPreview_contentref().longValue()));
}
} else {
if ((null != layoutcontent.getContentref()) && (layoutcontent.getContentref().longValue() > 0)) {
classcontentlist.add(cfclasscontentService.findById(layoutcontent.getContentref().longValue()));
}
}
}
sitecontentmap = siteutil.getClasscontentmapList(classcontentlist);
// fetch the dependend datalists, if available
contentlist = layoutcontentlist.stream().filter(lc -> lc.getCfLayoutcontentPK().getContenttype().compareToIgnoreCase("DL") == 0).collect(Collectors.toList());
List<CfList> sitelist = new ArrayList<>();
for (CfLayoutcontent layoutcontent : contentlist) {
if (preview) {
if (layoutcontent.getPreview_contentref().longValue() > 0) {
sitelist.add(cflistService.findById(layoutcontent.getPreview_contentref().longValue()));
}
} else {
if ((null != layoutcontent.getContentref()) && (layoutcontent.getContentref().longValue() > 0)) {
sitelist.add(cflistService.findById(layoutcontent.getContentref().longValue()));
}
}
}
sitecontentmap = siteutil.getSitelist_list(sitelist, sitecontentmap);
// fetch the dependend assetlibraries, if available
contentlist = layoutcontentlist.stream().filter(lc -> lc.getCfLayoutcontentPK().getContenttype().compareToIgnoreCase("AL") == 0).collect(Collectors.toList());
List<CfAssetlist> assetlibrary_list = new ArrayList<>();
for (CfLayoutcontent layoutcontent : contentlist) {
if (preview) {
if (layoutcontent.getPreview_contentref().longValue() > 0) {
assetlibrary_list.add(cfassetlistService.findById(layoutcontent.getPreview_contentref().longValue()));
}
} else {
if ((null != layoutcontent.getContentref()) && (layoutcontent.getContentref().longValue() > 0)) {
assetlibrary_list.add(cfassetlistService.findById(layoutcontent.getContentref().longValue()));
}
}
}
sitecontentmap = siteutil.getAssetlibrary(assetlibrary_list, sitecontentmap);
// fetch the site keywordlibraries
contentlist = layoutcontentlist.stream().filter(lc -> lc.getCfLayoutcontentPK().getContenttype().compareToIgnoreCase("KL") == 0).collect(Collectors.toList());
List<CfKeywordlist> keywordlibrary_list = new ArrayList<>();
for (CfLayoutcontent layoutcontent : contentlist) {
if (preview) {
if (layoutcontent.getPreview_contentref().longValue() > 0) {
keywordlibrary_list.add(cfkeywordlistService.findById(layoutcontent.getPreview_contentref().longValue()));
}
} else {
if ((null != layoutcontent.getContentref()) && (layoutcontent.getContentref().longValue() > 0)) {
keywordlibrary_list.add(cfkeywordlistService.findById(layoutcontent.getContentref().longValue()));
}
}
}
sitecontentmap = siteutil.getSiteKeywordlibrary(keywordlibrary_list, sitecontentmap);
}
// manage parameters
HashMap<String, DatatableProperties> datatableproperties = clownfishutil.getDatatableproperties(postmap);
EmailProperties emailproperties = clownfishutil.getEmailproperties(postmap);
HashMap<String, DatatableNewProperties> datatablenewproperties = clownfishutil.getDatatablenewproperties(postmap);
HashMap<String, DatatableDeleteProperties> datatabledeleteproperties = clownfishutil.getDatatabledeleteproperties(postmap);
HashMap<String, DatatableUpdateProperties> datatableupdateproperties = clownfishutil.getDatatableupdateproperties(postmap);
manageSessionVariables(postmap);
writeSessionVariables(parametermap);
// fetch the dependend datasources
sitedatasourcelist = new ArrayList<>();
sitedatasourcelist.addAll(cfsitedatasourceService.findBySiteref(cfsite.getId()));
HashMap<String, HashMap> dbexport = databaseUtil.getDbexport(sitedatasourcelist, datatableproperties, datatablenewproperties, datatabledeleteproperties, datatableupdateproperties);
sitecontentmap.put("db", dbexport);
// Put meta info to sitecontentmap
metainfomap.put("title", cfsite.getTitle());
metainfomap.put("description", cfsite.getDescription());
metainfomap.put("name", cfsite.getName());
metainfomap.put("encoding", cfsite.getCharacterencoding());
metainfomap.put("contenttype", cfsite.getContenttype());
metainfomap.put("locale", cfsite.getLocale());
metainfomap.put("alias", cfsite.getAliaspath());
// instantiate Template Beans
networkbean = new NetworkTemplateBean();
webservicebean = new WebServiceTemplateBean();
emailbean = new EmailTemplateBean();
emailbean.init(propertyUtil.getPropertymap(), mailUtil, propertyUtil);
// send a mail, if email properties are set
if (emailproperties != null) {
try {
sendRespondMail(emailproperties.getSendto(), emailproperties.getSubject(), emailproperties.getBody());
} catch (Exception ex) {
LOGGER.error(ex.getMessage());
}
}
if (sapSupport) {
List<CfSitesaprfc> sitesaprfclist = new ArrayList<>();
sitesaprfclist.addAll(cfsitesaprfcService.findBySiteref(cfsite.getId()));
sapbean = new SAPTemplateBean();
sapbean.init(sapc, sitesaprfclist, rpytableread, postmap);
}
databasebean = new DatabaseTemplateBean();
importbean = new ImportTemplateBean();
pdfbean = new PDFTemplateBean();
pdfbean.init(pdfUtil);
if (!sitedatasourcelist.isEmpty()) {
databasebean.init(sitedatasourcelist, cfdatasourceService);
importbean.init(sitedatasourcelist, cfdatasourceService);
}
externalclassproviderbean = new ExternalClassProvider(cfclassCompiler);
if (isScripted) {
// NORMAL Template
switch(cftemplate.getScriptlanguage()) {
case // FREEMARKER
0:
if (null != fmRoot) {
fmRoot.put("css", cfstylesheet);
fmRoot.put("js", cfjavascript);
fmRoot.put("sitecontent", sitecontentmap);
fmRoot.put("metainfo", metainfomap);
fmRoot.put("property", propertyUtil.getPropertymap());
fmRoot.put("emailBean", emailbean);
if (sapSupport) {
fmRoot.put("sapBean", sapbean);
}
fmRoot.put("databaseBean", databasebean);
fmRoot.put("importBean", importbean);
fmRoot.put("networkBean", networkbean);
fmRoot.put("webserviceBean", webservicebean);
fmRoot.put("pdfBean", pdfbean);
fmRoot.put("classBean", externalclassproviderbean);
fmRoot.put("parameter", parametermap);
if (!searchmetadata.isEmpty()) {
fmRoot.put("searchmetadata", searchmetadata);
}
if (!searchcontentmap.isEmpty()) {
fmRoot.put("searchcontentlist", searchcontentmap);
}
if (!searchassetmap.isEmpty()) {
fmRoot.put("searchassetlist", searchassetmap);
}
if (!searchassetmetadatamap.isEmpty()) {
fmRoot.put("searchassetmetadatalist", searchassetmetadatamap);
}
if (!searchclasscontentmap.isEmpty()) {
fmRoot.put("searchclasscontentlist", searchclasscontentmap);
}
for (Class<?> tpbc : beanUtil.getLoadabletemplatebeans()) {
Constructor<?> ctor;
try {
ctor = tpbc.getConstructor();
Object object = ctor.newInstance();
fmRoot.put(tpbc.getName().replaceAll("\\.", "_"), object);
} catch (NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
LOGGER.error(ex.getMessage());
}
}
/*
for (Class<?> c : classpathUtil.getClass_set()) {
Constructor<?> ctor;
try {
if (!Modifier.isInterface(c.getModifiers()) && !Modifier.isAbstract(c.getModifiers()) && !Modifier.isFinal(c.getModifiers()))
{
ctor = c.getConstructor();
Object object = ctor.newInstance();
fmRoot.put(c.getName().replaceAll("\\.", "_"), object);
}
} catch (NoClassDefFoundError | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
if (ex instanceof NoSuchMethodException || ex instanceof IllegalAccessException || ex instanceof InvocationTargetException || ex instanceof NoClassDefFoundError)
continue;
LOGGER.error(ex.getMessage());
}
}
*/
Map finalFmRoot = fmRoot;
cfclassCompiler.getClassMethodMap().forEach((k, v) -> {
Constructor<?> ctor;
try {
ctor = k.getConstructor();
Object object = ctor.newInstance();
finalFmRoot.put(k.getName().replaceAll("\\.", "_"), object);
} catch (NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
LOGGER.error(ex.getMessage());
}
});
try {
if (null != fmTemplate) {
if (cftemplate.isLayout()) {
String output = manageLayout(cfsite, cftemplate.getName(), cftemplate.getContent(), cfstylesheet, cfjavascript, parametermap);
output = interpretscript(output, cftemplate, cfstylesheet, cfjavascript, parametermap);
out.write(output);
} else {
freemarker.core.Environment env = fmTemplate.createProcessingEnvironment(fmRoot, out);
env.process();
}
}
} catch (freemarker.template.TemplateException ex) {
LOGGER.error(ex.getMessage());
}
}
break;
case // VELOCITY
1:
if (null != velContext) {
velContext.put("css", cfstylesheet);
velContext.put("js", cfjavascript);
velContext.put("sitecontent", sitecontentmap);
velContext.put("metainfo", metainfomap);
velContext.put("emailBean", emailbean);
if (sapSupport) {
velContext.put("sapBean", sapbean);
}
velContext.put("databaseBean", databasebean);
velContext.put("importBean", importbean);
velContext.put("networkBean", networkbean);
velContext.put("webserviceBean", webservicebean);
velContext.put("pdfBean", pdfbean);
velContext.put("classBean", externalclassproviderbean);
velContext.put("parameter", parametermap);
velContext.put("property", propertyUtil.getPropertymap());
if (!searchmetadata.isEmpty()) {
velContext.put("searchmetadata", searchmetadata);
}
if (!searchcontentmap.isEmpty()) {
velContext.put("searchcontentlist", searchcontentmap);
}
if (!searchassetmap.isEmpty()) {
velContext.put("searchassetlist", searchassetmap);
}
if (!searchassetmetadatamap.isEmpty()) {
velContext.put("searchassetmetadatalist", searchassetmetadatamap);
}
if (!searchclasscontentmap.isEmpty()) {
velContext.put("searchclasscontentlist", searchclasscontentmap);
}
for (Class tpbc : beanUtil.getLoadabletemplatebeans()) {
Constructor<?> ctor;
try {
ctor = tpbc.getConstructor();
Object object = ctor.newInstance(new Object[] {});
velContext.put(tpbc.getName().replaceAll("\\.", "_"), object);
} catch (NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
LOGGER.error(ex.getMessage());
}
}
/*
for (Class<?> c : classpathUtil.getClass_set()) {
Constructor<?> ctor;
try {
if (!Modifier.isInterface(c.getModifiers()) && !Modifier.isAbstract(c.getModifiers()) && !Modifier.isFinal(c.getModifiers()))
{
ctor = c.getConstructor();
Object object = ctor.newInstance();
velContext.put(c.getName().replaceAll("\\.", "_"), object);
}
} catch (NoClassDefFoundError | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
if (ex instanceof NoSuchMethodException || ex instanceof IllegalAccessException || ex instanceof InvocationTargetException || ex instanceof NoClassDefFoundError)
continue;
LOGGER.error(ex.getMessage());
}
}
*/
org.apache.velocity.VelocityContext finalvelContext = velContext;
cfclassCompiler.getClassMethodMap().forEach((k, v) -> {
Constructor<?> ctor;
try {
ctor = k.getConstructor();
Object object = ctor.newInstance();
finalvelContext.put(k.getName().replaceAll("\\.", "_"), object);
} catch (NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
LOGGER.error(ex.getMessage());
}
});
if (null != velTemplate) {
if (cftemplate.isLayout()) {
String output = manageLayout(cfsite, cftemplate.getName(), cftemplate.getContent(), cfstylesheet, cfjavascript, parametermap);
output = interpretscript(output, cftemplate, cfstylesheet, cfjavascript, parametermap);
out.write(output);
} else {
velTemplate.merge(velContext, out);
}
}
}
break;
// HTML
default:
}
} else {
// LAYOUT Template
if (cftemplate.isLayout()) {
String output = manageLayout(cfsite, cftemplate.getName(), cftemplate.getContent(), cfstylesheet, cfjavascript, parametermap);
out.write(output);
out.flush();
out.close();
} else {
out.write(cftemplate.getContent());
out.flush();
out.close();
}
}
if (htmlcompression.compareToIgnoreCase("on") == 0) {
htmlcompressor.setCompressCss(false);
htmlcompressor.setCompressJavaScript(false);
cfresponse.setErrorcode(0);
cfresponse.setOutput(htmlcompressor.compress(out.toString()));
// LOGGER.info("END makeResponse: " + name);
return new AsyncResult<>(cfresponse);
} else {
cfresponse.setErrorcode(0);
cfresponse.setOutput(out.toString());
// LOGGER.info("END makeResponse: " + name);
return new AsyncResult<>(cfresponse);
}
} catch (NoResultException ex) {
LOGGER.info("Exception: " + ex);
cfresponse.setErrorcode(1);
cfresponse.setOutput("No template");
// LOGGER.info("END makeResponse: " + name);
return new AsyncResult<>(cfresponse);
}
}
} else {
cfresponse.setErrorcode(2);
cfresponse.setOutput("Only for Job calling");
return new AsyncResult<>(cfresponse);
}
} catch (IOException | org.apache.velocity.runtime.parser.ParseException ex) {
cfresponse.setErrorcode(1);
cfresponse.setOutput(ex.getMessage());
// LOGGER.info("END makeResponse: " + name);
return new AsyncResult<>(cfresponse);
}
}
Aggregations