r1097 - in trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication: . action
Author: mfortun Date: 2011-07-28 15:15:33 +0200 (Thu, 28 Jul 2011) New Revision: 1097 Url: http://nuiton.org/repositories/revision/wikitty/1097 Log: * correct eval action wikitty content where extract before replacement by uiCodeDecorator * + others correction Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/FilterOption.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/FilterOption.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/FilterOption.java 2011-07-28 09:39:11 UTC (rev 1096) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/FilterOption.java 2011-07-28 13:15:33 UTC (rev 1097) @@ -6,9 +6,31 @@ protected String stringDelim; protected String concatChar; protected String endingCar; - protected String initializeOutputWriter; + protected String openingTemplate; protected String closingWriterChar; - + protected String closingTemplate; + protected String mimeType; + + + + public String getMimeType() { + return mimeType; + } + public void setMimeType(String mimeType) { + this.mimeType = mimeType; + } + public String getOpeningTemplate() { + return openingTemplate; + } + public void setOpeningTemplate(String openingTemplate) { + this.openingTemplate = openingTemplate; + } + public String getClosingTemplate() { + return closingTemplate; + } + public void setClosingTemplate(String closingTemplate) { + this.closingTemplate = closingTemplate; + } public String getClosingWriterChar() { return closingWriterChar; } @@ -48,14 +70,8 @@ public void setEndingCar(String endingCar) { this.endingCar = endingCar; } - public String getInitializeOutputWriter() { - return initializeOutputWriter; - } - public void setInitializeOutputWriter(String prefixFirstWriteString) { - this.initializeOutputWriter = prefixFirstWriteString; - } + - } Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java 2011-07-28 09:39:11 UTC (rev 1096) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/UiCodeDecorator.java 2011-07-28 13:15:33 UTC (rev 1097) @@ -4,7 +4,10 @@ import java.io.StringReader; import java.io.StringWriter; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; + import org.apache.commons.lang.StringUtils; import org.nuiton.processor.Processor; import org.nuiton.processor.filters.GeneratorTemplatesFilter; @@ -27,35 +30,44 @@ protected String MIME_SEP = "/"; protected Map<String, FilterOption> filtersOptions; + protected Set<String> firstPartMimeHandled; static protected FilterOption defaultFilterOption; - protected String decoringInit = StringUtils.EMPTY; - protected String decoringAffect; - protected String decoringEnd; - static { - defaultFilterOption= new FilterOption(); - defaultFilterOption.setInitializeOutputWriter("var result=\""); + defaultFilterOption = new FilterOption(); + defaultFilterOption.setOpeningTemplate("var result=\""); defaultFilterOption.setWriteString("result"); defaultFilterOption.setStringDelim("\""); defaultFilterOption.setConcatChar("+"); - defaultFilterOption.setEndingCar(";"); + defaultFilterOption.setEndingCar(";"); defaultFilterOption.setClosingWriterChar(""); defaultFilterOption.setOpeningWriterChar("+="); + defaultFilterOption.setClosingTemplate("\";"); + defaultFilterOption.setMimeType("application/javascript"); + + + } - - + public UiCodeDecorator() { - filtersOptions= new HashMap<String, FilterOption>(); + filtersOptions = new HashMap<String, FilterOption>(); + firstPartMimeHandled = new HashSet<String>(); + + // add basic value js and htmlp + filtersOptions.put("javascript", defaultFilterOption); + firstPartMimeHandled.add("htmlp"); } - public Wikitty transformPubUIToPubText(Wikitty wikitty) throws IOException { + public Wikitty transformPubUIToPubText(Wikitty wikitty) throws IOException { - - + if (!wikitty.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) { + return wikitty; + } + GeneratorTemplatesFilter filter = new GeneratorTemplatesFilter(); - GeneratorTemplatesFilterIn filterIn = new GeneratorTemplatesFilterIn(filter); + GeneratorTemplatesFilterIn filterIn = new GeneratorTemplatesFilterIn( + filter); String mime = WikittyPubTextHelper.getMimeType(wikitty); String initialVersion = wikitty.getVersion(); @@ -80,50 +92,50 @@ filterIn.setEndCar(foption.getEndingCar()); filterIn.setOpeningWriterChar(foption.getOpeningWriterChar()); filterIn.setClosingWriterChar(foption.getClosingWriterChar()); - //filter.setPassEmptyLine(false); - - - decoringEnd = foption.getStringDelim() + foption.getEndingCar(); - decoringAffect = foption.getInitializeOutputWriter(); + String decoringAffect = foption.getOpeningTemplate(); // initialize new content - String decoredContent = decoringInit; + String decoredContent = StringUtils.EMPTY; // set default content result (override if wikitty content define it) decoredContent += WikittyPublicationConstant.CONTEXT_VAR + ".setContentType(\"" + DEFAULT_MIME_TYPE_RETURN + "\")" + foption.getEndingCar(); - Processor proc= new Processor(); + Processor proc = new Processor(); proc.setInputFilter(filterIn); - - StringWriter writer = new StringWriter(); String content = WikittyPubTextHelper.getContent(wikitty); StringReader reader = new StringReader(content); // process string proc.process(reader, writer); - - - + decoredContent += decoringAffect; // replace element between <% %> and <%= %> decoredContent += writer.toString(); // end of string - decoredContent += decoringEnd; - - WikittyPubTextHelper.setContent(wikitty,decoredContent); - WikittyPubTextHelper.setMimeType(wikitty,mime); + decoredContent += foption.getClosingTemplate(); + // set the content + WikittyPubTextHelper.setContent(wikitty, decoredContent); + // get associated mimeType and set it + WikittyPubTextHelper.setMimeType(wikitty, foption.getMimeType()); + // restore version wikitty.setVersion(initialVersion); return wikitty; } - - public boolean isTransformationNeeded(Wikitty wikitty){ - return true; + + public boolean isTransformationNeeded(Wikitty wikitty) { + if (!wikitty.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) { + return false; + } + String mime = WikittyPubTextHelper.getMimeType(wikitty); + String[] mimeParsed = StringUtil.split(mime, MIME_SEP); + boolean result = firstPartMimeHandled.contains(mimeParsed[0]); + + return result; } - - + } Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java 2011-07-28 09:39:11 UTC (rev 1096) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java 2011-07-28 13:15:33 UTC (rev 1097) @@ -19,7 +19,6 @@ import org.nuiton.wikitty.ScriptEvaluator; import org.nuiton.wikitty.WikittyProxy; import org.nuiton.wikitty.WikittyService; -import org.nuiton.wikitty.WikittyUtil; import org.nuiton.wikitty.entities.Wikitty; import org.nuiton.wikitty.publication.UiCodeDecorator; import org.nuiton.wikitty.publication.WikittyPublicationConfig; @@ -130,14 +129,10 @@ } } else { - String content = WikittyPubTextHelper.getContent(w); - - UiCodeDecorator decorator= new UiCodeDecorator(); - - - if (decorator.isTransformationNeeded(w)){ + UiCodeDecorator decorator = new UiCodeDecorator(); + if (decorator.isTransformationNeeded(w)) { try { - w=decorator.transformPubUIToPubText(w); + w = decorator.transformPubUIToPubText(w); } catch (IOException e) { log.debug("Error when processing the wikitty content"); // TODO Mfortun-2011-07-28 really handle exception @@ -145,7 +140,9 @@ result = getError(context); } } - + + String content = WikittyPubTextHelper.getContent(w); + if (content == null) { result = getError(context); } else { @@ -235,8 +232,6 @@ return WikittyPublicationConfig.getConfig(); } - - @Override public String makeUrl(String url) { String finalUrl = url; @@ -289,12 +284,13 @@ @Override public Map<String, String> getArguments() { - Map<String,String> result = new HashMap<String, String>(); - - for( String argElm : ActionContext.getContext().getParameters().keySet()){ + Map<String, String> result = new HashMap<String, String>(); + + for (String argElm : ActionContext.getContext().getParameters() + .keySet()) { result.put(argElm, this.getArgument(argElm, "")); } - + return result; }
participants (1)
-
mfortun@users.nuiton.org