Author: metskem
Date: Sun Apr  3 16:53:29 2011
New Revision: 1088333

URL: http://svn.apache.org/viewvc?rev=1088333&view=rev
Log:
 3.0.0-svn-226 fixed JSPWIKI-688 (Poor performance of 
CreoleToJSPWikiTranslator), thanks to Jelmer Kuperus.

Modified:
    incubator/jspwiki/trunk/ChangeLog
    incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java
    
incubator/jspwiki/trunk/src/java/org/apache/wiki/parser/CreoleToJSPWikiTranslator.java
    incubator/jspwiki/trunk/src/java/org/apache/wiki/render/CreoleRenderer.java
    
incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/CreoleToJSPWikiTranslatorTest.java

Modified: incubator/jspwiki/trunk/ChangeLog
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/ChangeLog?rev=1088333&r1=1088332&r2=1088333&view=diff
==============================================================================
--- incubator/jspwiki/trunk/ChangeLog (original)
+++ incubator/jspwiki/trunk/ChangeLog Sun Apr  3 16:53:29 2011
@@ -1,3 +1,9 @@
+2011-04-03  Harry Metske <[email protected]>
+
+        * 3.0.0-svn-226
+        
+        * fixed JSPWIKI-688 (Poor performance of CreoleToJSPWikiTranslator), 
thanks to Jelmer Kuperus.
+        
 2011-03-24  Juan Pablo Santos (juanpablo AT apache DOT org)
         
         * 3.0.0-svn-225

Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java?rev=1088333&r1=1088332&r2=1088333&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java (original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/Release.java Sun Apr  3 
16:53:29 2011
@@ -77,7 +77,7 @@ public final class Release
      *  <p>
      *  If the build identifier is empty, it is not added.
      */
-    public static final String     BUILD         = "225";
+    public static final String     BUILD         = "226";
 
     /**
      *  This is the generic version string you should use

Modified: 
incubator/jspwiki/trunk/src/java/org/apache/wiki/parser/CreoleToJSPWikiTranslator.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/parser/CreoleToJSPWikiTranslator.java?rev=1088333&r1=1088332&r2=1088333&view=diff
==============================================================================
--- 
incubator/jspwiki/trunk/src/java/org/apache/wiki/parser/CreoleToJSPWikiTranslator.java
 (original)
+++ 
incubator/jspwiki/trunk/src/java/org/apache/wiki/parser/CreoleToJSPWikiTranslator.java
 Sun Apr  3 16:53:29 2011
@@ -145,7 +145,7 @@ public class CreoleToJSPWikiTranslator
 
     private static final String JSPWIKI_IMAGE_X = "[{\u2016 src='$1' 
caption='$4' \u2015}]";
 
-    private static final String CREOLE_LINK_IMAG_X = 
"\\[\\[(.*?)\\|\\{\\{(.*?)((\\|)(.*?)){0,1}((\\|)(.*?)){0,1}\\}\\}\\]\\]";
+    private static final String CREOLE_LINK_IMAG_X = 
"\\[\\[([^|]*)\\|\\{\\{([^|]*)((\\|)([^|]*)){0,1}((\\|)([^}]*)){0,1}\\}\\}\\]\\]";
 
     private static final String JSPWIKI_LINK_IMAGE_X = "[{\u2016 src='$2' 
link='$1' caption='$5' \u2015}]";
 

Modified: 
incubator/jspwiki/trunk/src/java/org/apache/wiki/render/CreoleRenderer.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/render/CreoleRenderer.java?rev=1088333&r1=1088332&r2=1088333&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/render/CreoleRenderer.java 
(original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/render/CreoleRenderer.java 
Sun Apr  3 16:53:29 2011
@@ -84,8 +84,6 @@ public class CreoleRenderer extends Wiki
     /**
      *  Creates a new Creole Renderer.
      *  
-     *  @param ctx {@inheritDoc}
-     *  @param doc {@inheritDoc}
      */
     public CreoleRenderer( WikiContext ctx, WikiDocument doc )
     {

Modified: 
incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/CreoleToJSPWikiTranslatorTest.java
URL: 
http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/CreoleToJSPWikiTranslatorTest.java?rev=1088333&r1=1088332&r2=1088333&view=diff
==============================================================================
--- 
incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/CreoleToJSPWikiTranslatorTest.java
 (original)
+++ 
incubator/jspwiki/trunk/tests/java/org/apache/wiki/parser/CreoleToJSPWikiTranslatorTest.java
 Sun Apr  3 16:53:29 2011
@@ -835,6 +835,34 @@ public class CreoleToJSPWikiTranslatorTe
         assertEquals(target, translate(src));
     }
 
+    /**
+     * See issue JSPWIKI-688 for details. 
+     * (before the patch it took about 50 seconds on an Intel Core 2 to 
complete, after the patch : 0.2 seconds).
+     */
+    public void testJSPWIKI688()
+    {
+        CreoleToJSPWikiTranslator translator = new CreoleToJSPWikiTranslator();
+
+        Properties props = new Properties();
+        props.setProperty( "creole.imagePlugin.para.XL", "width='540'" );
+        props.setProperty( "creole.imagePlugin.para.XXL", "width='1024'" );
+        props.setProperty( "creole.imagePlugin.para.S", "width='140'" );
+        props.setProperty( "creole.imagePlugin.para.M", "width='180'" );
+        props.setProperty( "creole.imagePlugin.para.L", "width='360'" );
+        props.setProperty( "creole.imagePlugin.name", "Image" );
+        props.setProperty( "creole.imagePlugin.para.%px", "width='%px\"" );
+
+        String content = "//Note: Please see the 
[[http://liferay.com/community/100-papercuts|main landing page]] for the latest 
updates.//<<TableOfContents>>== Introduction ==This project's aim is to 
identify and fix high-visibility, easy to correct bugs in Liferay Portal. It is 
driven by the wider Liferay community, with volunteers working to identify, 
prioritize, assign, and resolve known issues.== The Process ==# **Identify 
issues.**  The community has always been encouraged to vote for issues that 
they would like to see fixed sooner rather than later.  This has allowed 
Liferay program managers to properly prioritize bugs based on community 
feedback.  With the 100 Paper Cuts program, voting has become even more 
important.  We use the same voting system to identify high visibility, 
easy-to-fix bugs.  The 100 Paper Cuts process begins with a period of time in 
which additional voting is encouraged.  If you wish to vote for issues, please 
read the voting process.  You
  can also 
[[http://issues.liferay.com/secure/IssueNavigator.jspa?mode=hide&requestId=12340|browse
 this filter for potential PaperCuts bugs]].  This fiter shows all open bugs 
that haven't been already selected for inclusion into the existing Liferay 
development pipeline, sorted by votes.# **Assign and Fix.**  During a 2-week 
period, approximately 10 issues are selected and fixed based on their impact 
and effort required to fix.  We aim for selecting bugs that take no more than 1 
developer-day to fix.  This period is called a \"Community Sprint\" and 
represents a fixed time amount in which to fix the identified issues.  Once the 
sprint period is over, the process is repeated.# **Track progress.**  During 
and after the sprint, issues are tracked for progress, until the issue is 
merged with one or more Liferay releases.== Current Sprint Status 
==|=Resolved|=In Progress|=Blocked on submitter|=Warning!|=Unfixable/Not a 
papercut||{{http://cdn.www.liferay.com/osb-theme/images/
 
dock/my_place_current.png}}|{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=SharedImages/health-80plus.gif}}|{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=SharedImages/health-40to59.png}}|{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=SharedImages/warning.gif}}|{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=SharedImages/red.gif}}|===
 Sprint 3: Mar 16, 2011 - Mar 30, 2011 ===|= Issue |= Summary |= Assigned To |= 
Status |= Indicator || [[http://issues.liferay.com/browse/LPS-15491 
|LPS-15491]] | Automatic \"html linkification\" of text http links in message 
board posts: [[http://liferay.com/|http://liferay.com]] => <a 
href=\"[[http://lliferay.com\";>http//lliferay.com</a>|http://lliferay.com\";>http://lliferay.com</a>]]
 | Baptiste | Open | 
{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=SharedImages/warning.gif}}||
 [[h
 ttp://issues.liferay.com/browse/LPS-9157 |LPS-9157]] | Width of the panel 
shouldn't be changed| Maarten | Contributed Solution | 
{{http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}|| 
[[http://issues.liferay.com/browse/LPS-15494 |LPS-15494]] | Showing search 
result content in inappropriate layout| Juan | Contributed Solution | 
{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}||
 [[http://issues.liferay.com/browse/LPS-15791 |LPS-15791]] | Pagination is lost 
after editing permissions in the Define Permission action of Roles admin 
portlet| Rafal | Contributed Solution | 
{{http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}|| 
[[http://issues.liferay.com/browse/LPS-8968 |LPS-8968]] | Web Proxy fails with 
error.httpclient in Glassfish| Deb | Contributed Solution | 
{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileNam
 e=http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}|| 
[[http://issues.liferay.com/browse/LPS-15677 |LPS-15677]] | Asset Publisher 
portlet does not display web content, When the content publish again.| Boubker 
| Contributed Solution | 
{{http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}|| 
[[http://issues.liferay.com/browse/LPS-15225 |LPS-15225]] | String not 
internationalized in Enterprise Admin Organizations portlet.| Corne | Community 
Resolved| 
{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}||
 [[http://issues.liferay.com/browse/LPS-15122 |LPS-15122]] | o language key for 
\"Table of Contents\" in the wiki | Corne | Contributed Solution| 
{{http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}|| 
[[http://issues.liferay.com/browse/LPS-14789 |LPS-14789]] | Freemarker template 
processor has undefined variables | Tomas
  | Contributed Solution | 
{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}|==
 Previous Sprint Status ===== Sprint 2: Feb 23, 2011 - Mar 9, 2011 ===|= Issue 
|= Summary |= Assigned To |= Status |= Indicator || 
[[http://issues.liferay.com/browse/LEP-6973 |LEP-6973]] | Publish to Live is 
not properly configuring Page Permissions from Staging | Boubker | Contributed 
Solution | 
{{http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}|| 
[[http://issues.liferay.com/browse/LPS-12988 |LPS-12988]] | Bad HTTP 
Content-Type for RSS feed | Jelmer | Contributed Solution | 
{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}||
 [[http://issues.liferay.com/browse/LPS-10263 |LPS-10263]] | Remove the 
mandatory URL from announcements entries | Jaromir | Contributed Solution | 
{{htt
 p://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}|| 
[[http://issues.liferay.com/browse/LPS-11854 |LPS-11854]] | Web Form Portlet 
Configuration -- Changing type field does not appear to work at all in IE8. | 
Deb | Contributed Solution | 
{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}||
 [[http://issues.liferay.com/browse/LPS-12918 |LPS-12918]] | Import lar with 
global \"Structures/Templates\" | Jelmer | Contributed Solution | 
{{http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}|| 
[[http://issues.liferay.com/browse/LPS-11479 |LPS-11479]] | ServiceBuilder 
doesn't support one-to-one relationships out of the box | Tomas | Open | 
{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=SharedImages/red.gif}}||
 [[http://issues.liferay.com/browse/LPS-7503 |LPS-7503]] | Give alternatives to 
<object> | Juan | Open | {{../
 
../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=SharedImages/red.gif}}||
 [[http://issues.liferay.com/browse/LPS-14905 |LPS-14905]] | Unable to import 
group from LDAP in Liferay 6.0.5 with ldap.import.method=user | Baptiste | 
Resolved | 
{{http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}|=== 
Sprint 1: Feb 2, 2011 - Feb 16, 2011 ===|= Issue |= Summary |= Assigned To |= 
Status |= Indicator || [[http://issues.liferay.com/browse/LPS-11003|LPS-11003]] 
| sample-struts-liferay-portlet can not be deployed to trunk | James | Closed 
(not reproducible) | 
{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}||
 [[http://issues.liferay.com/browse/LPS-13422|LPS-13422]] | Preformatted URLS 
show with \"[ ]\" around them on a wiki page | Milan | Fixed | 
{{http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}|| 
[[http://issues.lifer
 ay.com/browse/LPS-14911|LPS-14911]] | Unable to publish previously saved draft 
| Deb | Community Resolved | 
{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}||
 [[http://issues.liferay.com/browse/LPS-14671|LPS-14671]] | When adding a 
document to the document library a file extension is required in the document 
title | Corne | Closed (already fixed) | 
{{http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}|| 
[[http://issues.liferay.com/browse/LPS-14411|LPS-14411]] | 
complete_gradient.png is missing | Boubker | In Review | 
{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}||
 [[http://issues.liferay.com/browse/LPS-14351|LPS-14351]] | Liferay Calendar, 
Duplicate Events Upon Import | Tomas | Contributed Solution | 
{{http://cdn.www.liferay.com/osb-theme/images/dock
 /my_place_current.png}}|| 
[[http://issues.liferay.com/browse/LPS-12988|LPS-12988]] | Bad HTTP 
Content-Type for RSS feed | Maarten | Open | 
{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=SharedImages/red.gif}}||
 [[http://issues.liferay.com/browse/LPS-12810|LPS-12810]] | Error on Summary 
Tab of Calendar | Juan | Fixed | 
{{http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}|| 
[[http://issues.liferay.com/browse/LPS-11859|LPS-11859]] | Categories 
Navigation with Wiki Broken | Juan | Contributed Solution | 
{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=http://cdn.www.liferay.com/osb-theme/images/dock/my_place_current.png}}||
 [[http://issues.liferay.com/browse/LPS-11854|LPS-11854]] | Web Form Portlet 
Configuration -- Changing type field does not appear to work at all in IE8. | 
Szymon | Open | 
{{../../../c/wiki/get_page_attachment?p_l_id=10171&nodeId=10304&title=&fileName=SharedImages/warning.gif}}
 |";
+
+        long startTime = System.currentTimeMillis();
+        translator.translate( props, content );
+        long testDuration = System.currentTimeMillis() - startTime;
+        
+        // even a very slow cpu should do this much faster
+        assertTrue( "rendering takes too long", testDuration < 3000 );
+
+    }
+
     public String translate(String src)
     {
         CreoleToJSPWikiTranslator translator = new CreoleToJSPWikiTranslator();


Reply via email to