|
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());
|