From: <jbo...@li...> - 2005-08-22 12:50:57
|
Author: szimano Date: 2005-08-22 08:50:52 -0400 (Mon, 22 Aug 2005) New Revision: 912 Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/FileDataSource.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/MediaDataSource.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiEngine.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPage.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/DiffPlugin.java Log: new way of geting pages Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/FileDataSource.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/FileDataSource.java 2005-08-22 08:26:41 UTC (rev 911) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/FileDataSource.java 2005-08-22 12:50:52 UTC (rev 912) @@ -14,6 +14,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.lang.reflect.Array; +import java.util.Calendar; import java.util.Date; import java.util.Properties; @@ -75,7 +76,7 @@ boolean status = false; if (pageExists(page.getName())) { // page exists on harddisk - add new - // version + // version Properties pageProps = getPageProps(page.getName()); pageProps.setProperty(page.getLastVersion() + ".author", page @@ -243,8 +244,10 @@ System.err.println(ioe); } - page = new WikiPage(pageName, author, pageContent, i, i, new Date( - pageFile.lastModified()), this); + page = new WikiPage(pageName, author, pageContent, i, i, + new Date(pageFile.lastModified()), this); + + page.setLength(pageFile.length()); } } @@ -271,26 +274,32 @@ return false; } - public WikiPage getPageAtVersion(WikiPage originPage, String languageCode, - int version) { + public WikiPage getPageAtVersion(WikiPage originPage, boolean loadContent, + String languageCode, int version) { if (languageCode != null) { System.out .println("As for now, languages aren't supported in the wiki. Please do not use language codes"); } - return getPageAtVersion(originPage, version); + return getPageAtVersion(originPage, loadContent, version); } - public WikiPage getPageAtVersion(WikiPage originPage, int version) { + public WikiPage getPageAtVersion(WikiPage originPage, boolean loadContent, + int version) { + + /* + * Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); long + * oldMilis = cal.getTimeInMillis(); + */ + WikiPage page = null; - + try { - page = (WikiPage)originPage.clone(); - } - catch (CloneNotSupportedException e) { + page = (WikiPage) originPage.clone(); + } catch (CloneNotSupportedException e) { System.err.println(e); } - + if (page != null) { if (page.getLastVersion() < version) { System.out.println("There is no version " + version @@ -298,38 +307,56 @@ return null; } - page.setPageContent(getContentAtVersion(page.getName(), version)); + getContentAtVersion(page, loadContent, version); page.setLastAuthor(getAuthorAtVersion(page.getName(), version)); - + page.setVersion(version); page.setEditDate(getDateAtVersion(page.getName(), version)); } + + /* + * cal.setTime(new Date()); + * + * System.out.println("PAGE "+page.getName()+" loaded in: + * "+(cal.getTimeInMillis() - oldMilis)); + */ return page; } - public String getContentAtVersion(String pageName, int version) { + public void getContentAtVersion(WikiPage page, boolean loadContent, + int version) { String ret = null; - try { - FileInputStream input = new FileInputStream(new File(pathToMedia - + "/OLD/" + pageName + "/" + version + ".txt")); + File pageFile = new File(pathToMedia + "/OLD/" + page.getName() + "/" + + version + ".txt"); - int nextChr = input.read(); + if (loadContent) { + try { + FileInputStream input = new FileInputStream(pageFile); - ret = ""; + int nextChr = input.read(); - while (nextChr != -1) { - ret += (char) nextChr; - nextChr = input.read(); + ret = ""; + + while (nextChr != -1) { + ret += (char) nextChr; + nextChr = input.read(); + } + + page.setPageContent(ret); + page.setLength(ret.length()); + + } catch (IOException ioe) { + System.err.println(ioe); } - } catch (IOException ioe) { - System.err.println(ioe); + } else { + page.setLength(pageFile.length()); + page.setPageContent(null); } - - return ret; + } public Date getDateAtVersion(String pageName, int version) { @@ -348,49 +375,34 @@ version + ".author")); } - /*public static void main(String[] args) { - MediaDataSource fds = new FileDataSource(); + /* + * public static void main(String[] args) { MediaDataSource fds = new + * FileDataSource(); + * + * String[] pageName = { "Rali", "Tomek", "Adam", "Dupa", "WhatIsJBossForge" }; + * + * for (int i = 0; i < Array.getLength(pageName); i++) { WikiPage page = + * fds.getPage(pageName[i]); + * + * if (page != null) { page.showPage(); } else { System.out.println("Page " + + * pageName[i] + " doesn't exist"); } } + * + * WikiPage page = fds.getPageAtVersion("WhatIsJBossForge", 7); + * + * if (page != null) { page.showPage(); } else { System.out .println("Page + * WhatIsJBossForge doesn't exist at version 7"); } + * + * page = fds.getPageAtVersion("Dupa", 7); + * + * if (page != null) { page.showPage(); } else { System.out.println("Page + * Dupa doesn't exist at version 7"); } + * + * page = fds.getPageAtVersion("WhatIsJBossForge", 70); + * + * if (page != null) { page.showPage(); } else { System.out .println("Page + * WhatIsJBossForge doesn't exist at version 70"); } } + */ - String[] pageName = { "Rali", "Tomek", "Adam", "Dupa", - "WhatIsJBossForge" }; - - for (int i = 0; i < Array.getLength(pageName); i++) { - WikiPage page = fds.getPage(pageName[i]); - - if (page != null) { - page.showPage(); - } else { - System.out.println("Page " + pageName[i] + " doesn't exist"); - } - } - - WikiPage page = fds.getPageAtVersion("WhatIsJBossForge", 7); - - if (page != null) { - page.showPage(); - } else { - System.out - .println("Page WhatIsJBossForge doesn't exist at version 7"); - } - - page = fds.getPageAtVersion("Dupa", 7); - - if (page != null) { - page.showPage(); - } else { - System.out.println("Page Dupa doesn't exist at version 7"); - } - - page = fds.getPageAtVersion("WhatIsJBossForge", 70); - - if (page != null) { - page.showPage(); - } else { - System.out - .println("Page WhatIsJBossForge doesn't exist at version 70"); - } - }*/ - public boolean pageExists(String pageName) { File pageFile = new File(pathToMedia + "/" + pageName + ".txt"); Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/MediaDataSource.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/MediaDataSource.java 2005-08-22 08:26:41 UTC (rev 911) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/MediaDataSource.java 2005-08-22 12:50:52 UTC (rev 912) @@ -76,11 +76,14 @@ */ public WikiPage getPage(String pageName, String languageCode); - public WikiPage getPageAtVersion(WikiPage originPage, String languageCode, int version); + public WikiPage getPageAtVersion(WikiPage originPage, boolean loadContent, String languageCode, int version); - public WikiPage getPageAtVersion(WikiPage originPage, int version); + public WikiPage getPageAtVersion(WikiPage originPage, boolean loadContent, int version); public boolean pageExists(String pageName); + + public void getContentAtVersion(WikiPage page, boolean loadContent, + int version); } Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiEngine.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiEngine.java 2005-08-22 08:26:41 UTC (rev 911) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiEngine.java 2005-08-22 12:50:52 UTC (rev 912) @@ -156,7 +156,7 @@ pages.put(pageName, ret); } - ret = ret.getPageAtVersion(version); + ret = ret.getPageAtVersion(true, version); if (ret != null) { if (wikiContext != null) { Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPage.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPage.java 2005-08-22 08:26:41 UTC (rev 911) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPage.java 2005-08-22 12:50:52 UTC (rev 912) @@ -39,6 +39,8 @@ private Date lockTime = null; private String lockUser; + + private long length = 0; /** * <p> @@ -191,12 +193,12 @@ * @return * @param version */ - public WikiPage getPageAtVersion(int version) { + public WikiPage getPageAtVersion(boolean loadContent, int version) { if (version == lastVersion) { return this; } else { - return mediaDataSource.getPageAtVersion(this,version); + return mediaDataSource.getPageAtVersion(this, loadContent, version); } } @@ -287,6 +289,10 @@ } public String getPageContent() { + if (pageContent == null) { + // page wasn't loaded with conent - lets do it + mediaDataSource.getContentAtVersion(this, true, version); + } return pageContent; } @@ -298,6 +304,9 @@ public Object clone() throws CloneNotSupportedException { WikiPage clonedPage = new WikiPage(getName(), getLastAuthor(), getPageContent(), getLastVersion(), getVersion(), getEditDate(), mediaDataSource); + + clonedPage.setLength(getLength()); + return clonedPage; } @@ -354,4 +363,16 @@ public void setVersion(int version) { this.version = version; } + + public long getLength() { + if ((length == 0)&&(getPageContent().length() != 0)) { + length = getPageContent().length(); + } + + return length; + } + + public void setLength(long length) { + this.length = length; + } } Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-08-22 08:26:41 UTC (rev 911) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/WikiPortlet.java 2005-08-22 12:50:52 UTC (rev 912) @@ -8,7 +8,9 @@ *************************************************/ package org.jboss.wiki; +import java.util.Calendar; import java.util.Date; +import java.util.HashMap; import javax.portlet.*; import org.jboss.portlet.*; Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/DiffPlugin.java =================================================================== --- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/DiffPlugin.java 2005-08-22 08:26:41 UTC (rev 911) +++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/DiffPlugin.java 2005-08-22 12:50:52 UTC (rev 912) @@ -21,7 +21,7 @@ System.err.println(e); } - prevNewPage = newPage.getPageAtVersion(newPage.getVersion()-1); + prevNewPage = newPage.getPageAtVersion(true, newPage.getVersion()-1); String diff = differenceEngine.makeDiff(prevNewPage.getContent(), newPage.getContent()); |