|
From: <jbo...@li...> - 2005-08-23 09:08:16
|
Author: szimano
Date: 2005-08-23 05:08:00 -0400 (Tue, 23 Aug 2005)
New Revision: 920
Added:
trunk/forge/portal-extensions/forge-wiki/src/etc/org/jboss/wiki/fileaccess/
trunk/forge/portal-extensions/forge-wiki/src/etc/org/jboss/wiki/fileaccess/mime.types
trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/fileaccess/
trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java
Removed:
trunk/forge/portal-extensions/wiki-file-access/
Modified:
trunk/forge/portal-extensions/forge-jspwiki/maven.xml
trunk/forge/portal-extensions/forge-wiki/project.xml
trunk/forge/portal-extensions/forge-wiki/src/etc/org/jboss/wiki/filedatasource.properties
trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/web.xml
trunk/forge/portal-extensions/jspwiki/maven.xml
Log:
wiki file access moved to wiki... use http:/domain/wiki/page/file
Modified: trunk/forge/portal-extensions/forge-jspwiki/maven.xml
===================================================================
--- trunk/forge/portal-extensions/forge-jspwiki/maven.xml 2005-08-22 22:57:02 UTC (rev 919)
+++ trunk/forge/portal-extensions/forge-jspwiki/maven.xml 2005-08-23 09:08:00 UTC (rev 920)
@@ -14,10 +14,10 @@
</goal>
<goal name="deploy">
- <!--<ant:copy todir="${local.deploy.dir}" flatten="true">
+ <ant:copy todir="${local.deploy.dir}" flatten="true">
<ant:fileset dir=".">
<ant:filename name="target/*.war" />
</ant:fileset>
- </ant:copy>-->
+ </ant:copy>
</goal>
-</project>
\ No newline at end of file
+</project>
Modified: trunk/forge/portal-extensions/forge-wiki/project.xml
===================================================================
--- trunk/forge/portal-extensions/forge-wiki/project.xml 2005-08-22 22:57:02 UTC (rev 919)
+++ trunk/forge/portal-extensions/forge-wiki/project.xml 2005-08-23 09:08:00 UTC (rev 920)
@@ -7,7 +7,7 @@
<project>
<pomVersion>3</pomVersion>
<extend>../common.xml</extend>
- <id>wiki-portlet</id>
+ <id>wiki</id>
<name>Wiki portlet</name>
<currentVersion>1.0</currentVersion>
<!--<build>
@@ -24,24 +24,43 @@
<url>http://mamut.net.pl</url>
</organization>
- <dependency>
- <groupId>aslibs</groupId>
- <artifactId>javax.servlet</artifactId>
- <version>1.0</version>
- <jar>javax.servlet.jar</jar>
- </dependency>
-
- <dependency>
- <groupId>aslibs</groupId>
- <artifactId>javax.servlet.jsp</artifactId>
- <version>1.0</version>
- <jar>javax.servlet.jsp.jar</jar>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <version>3.8.1</version>
- <jar>javax.servlet.jsp.jar</jar>
- </dependency>
+ <dependencies>
+
+ <dependency>
+ <groupId>aslibs</groupId>
+ <artifactId>javax.servlet</artifactId>
+ <version>1.0</version>
+ <jar>javax.servlet.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>aslibs</groupId>
+ <artifactId>javax.servlet.jsp</artifactId>
+ <version>1.0</version>
+ <jar>javax.servlet.jsp.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>tmate</groupId>
+ <artifactId>javasvn</artifactId>
+ <version>1.0</version>
+ <jar>javasvn.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>tmate</groupId>
+ <artifactId>jsch</artifactId>
+ <version>1.0</version>
+ <jar>jsch.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>activation</artifactId>
+ <version>1.0</version>
+ <jar>activation.jar</jar>
+ </dependency>
+ </dependencies>
<build>
<sourceDirectory>src/java</sourceDirectory>
@@ -54,6 +73,10 @@
<directory>src/etc/</directory>
<include>**/*.xml</include>
</resource>
+ <resource>
+ <directory>src/etc/</directory>
+ <include>**/*.types</include>
+ </resource>
</resources>
</build>
</project>
Added: trunk/forge/portal-extensions/forge-wiki/src/etc/org/jboss/wiki/fileaccess/mime.types
===================================================================
--- trunk/forge/portal-extensions/forge-wiki/src/etc/org/jboss/wiki/fileaccess/mime.types 2005-08-22 22:57:02 UTC (rev 919)
+++ trunk/forge/portal-extensions/forge-wiki/src/etc/org/jboss/wiki/fileaccess/mime.types 2005-08-23 09:08:00 UTC (rev 920)
@@ -0,0 +1,21 @@
+application/postscript ai eps ps
+application/rtf rtf
+application/slate
+application/x-tex tex
+application/x-texinfo texinfo texi
+application/x-troff t tr roff
+audio/basic au snd
+audio/x-aiff aif aiff aifc
+audio/x-wav wav
+image/gif gif
+image/ief ief
+image/png png
+image/jpeg jpeg jpg jpe
+image/tiff tiff tif
+image/x-xwindowdump xwd
+text/html html
+text/plain txt
+video/mpeg mpeg mpg mpe
+video/quicktime qt mov
+video/x-msvideo avi
+video/x-sgi-movie movie
Modified: trunk/forge/portal-extensions/forge-wiki/src/etc/org/jboss/wiki/filedatasource.properties
===================================================================
--- trunk/forge/portal-extensions/forge-wiki/src/etc/org/jboss/wiki/filedatasource.properties 2005-08-22 22:57:02 UTC (rev 919)
+++ trunk/forge/portal-extensions/forge-wiki/src/etc/org/jboss/wiki/filedatasource.properties 2005-08-23 09:08:00 UTC (rev 920)
@@ -2,3 +2,6 @@
# pathToMedia - points, where JSPWiki file structure is situated
pathToMedia = /usr/local/forge/wiki
+
+# pathToAttachements - points, where JSPWiki attachemets are situated
+pathToAttachements = /usr/local/forge/wiki
\ No newline at end of file
Added: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java
===================================================================
--- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java 2005-08-22 22:57:02 UTC (rev 919)
+++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java 2005-08-23 09:08:00 UTC (rev 920)
@@ -0,0 +1,129 @@
+/*****************************************
+ * *
+ * JBoss Portal: The OpenSource Portal *
+ * *
+ * Distributable under LGPL license. *
+ * See terms of license at gnu.org. *
+ * *
+ *****************************************/
+package org.jboss.wiki.fileaccess;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Properties;
+
+
+import javax.activation.MimetypesFileTypeMap;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.jboss.wiki.FileDataSource;
+
+// import org.jboss.forge.common.content.ContentManager;
+// import org.jboss.forge.common.ForgeHelper;
+
+/**
+ * A filter that enables to download files which are stored in a working copy of
+ * a content repository.
+ *
+ * @author adamw
+ */
+public class WikiFileAccessFilter implements Filter {
+ /**
+ * <code>BUF_SIZE</code> - size of a buffer, which is used while reading a
+ * file and sending it to the client.
+ */
+ private final int BUF_SIZE = 32768;
+
+ private String attachementsPath;
+
+ /*
+ * private ForgeHelper forgeHelper; private ContentManager contentManager;
+ */
+ private MimetypesFileTypeMap mimeTypes;
+
+
+ public void init(FilterConfig conf) {
+ // load mime types map
+
+ mimeTypes = new MimetypesFileTypeMap(WikiFileAccessFilter.class.getResourceAsStream("mime.types"));
+
+ // load path to attachements from filedatasource.properties
+
+ Properties props = new Properties();
+
+ try {
+ props.load(FileDataSource.class.getResourceAsStream("filedatasource.properties"));
+ }
+ catch (IOException e) {
+ System.err.println(e);
+ }
+
+ // get the apropriate property
+ attachementsPath = props.getProperty("pathToAttachements");
+
+ System.out.println("[WikiFileAccess]Loaded attachements path: "+attachementsPath);
+ }
+
+
+ public void doFilter(ServletRequest request, ServletResponse response,
+ FilterChain chain) throws IOException {
+
+ if (request instanceof HttpServletRequest) {
+ HttpServletRequest httpRequest = (HttpServletRequest) request;
+
+ String requestURI = httpRequest.getRequestURI();
+
+ // Parse URI to get filename and page name
+ String[] tokens = requestURI.split("[/]");
+
+ // get fileName of attachement and page which is connected to
+ String fileName = tokens[tokens.length - 1];
+ String pageName = tokens[tokens.length - 2];
+
+ System.out.println("[WikiFileAccess]Getting file: "+fileName+" of page: "+pageName);
+
+ tokens = fileName.split("\\.");
+
+ System.out.println(attachementsPath+"/"+pageName+"-att/"+fileName+"-dir/1."+tokens[tokens.length - 1]);
+
+ File file = new File(attachementsPath+"/"+pageName+"-att/"+fileName+"-dir/1."+tokens[tokens.length - 1]);
+
+ FileInputStream fileIS = new FileInputStream(file);
+
+ ServletOutputStream os = response.getOutputStream();
+
+ response.setContentType(mimeTypes.getContentType(file));
+ response.setContentLength((int) file.length());
+
+ // Transferring the bytes
+ try {
+ byte[] buffer = new byte[BUF_SIZE];
+ int read;
+ while ((read = fileIS.read(buffer)) != -1)
+ os.write(buffer, 0, read);
+ } catch (Exception e2) {
+ // Nothing that we can really do. Just send an incomplete
+ // file.
+ } finally {
+ os.close();
+ fileIS.close();
+ }
+
+ }
+ else {
+ throw new IOException("This servlet should be called as HTTPServletRequest");
+ }
+ }
+
+ public void destroy() {
+
+ }
+}
Modified: trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/web.xml
===================================================================
--- trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/web.xml 2005-08-22 22:57:02 UTC (rev 919)
+++ trunk/forge/portal-extensions/forge-wiki/src/web/WEB-INF/web.xml 2005-08-23 09:08:00 UTC (rev 920)
@@ -7,4 +7,14 @@
<web-app>
+ <filter>
+ <filter-name>wikiFileAccessFilter</filter-name>
+ <filter-class>org.jboss.wiki.fileaccess.WikiFileAccessFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>wikiFileAccessFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ <dispatcher>REQUEST</dispatcher>
+ </filter-mapping>
</web-app>
Modified: trunk/forge/portal-extensions/jspwiki/maven.xml
===================================================================
--- trunk/forge/portal-extensions/jspwiki/maven.xml 2005-08-22 22:57:02 UTC (rev 919)
+++ trunk/forge/portal-extensions/jspwiki/maven.xml 2005-08-23 09:08:00 UTC (rev 920)
@@ -9,11 +9,11 @@
</goal>
<goal name="deploy">
- <!--<ant:copy todir="${local.deploy.dir}" flatten="true">
+ <ant:copy todir="${local.deploy.dir}" flatten="true">
<ant:fileset dir=".">
<ant:filename name="releases/*.war" />
</ant:fileset>
- </ant:copy>-->
+ </ant:copy>
</goal>
<goal name="prj-install">
@@ -21,4 +21,4 @@
<ant:fileset dir="to-copy" />
</ant:copy>
</goal>
-</project>
\ No newline at end of file
+</project>
|