From: <yo...@us...> - 2010-07-13 16:38:10
|
Revision: 731 http://treebase.svn.sourceforge.net/treebase/?rev=731&view=rev Author: youjun Date: 2010-07-13 16:38:00 +0000 (Tue, 13 Jul 2010) Log Message: ----------- Modified Paths: -------------- trunk/treebase-web/pom.xml trunk/treebase-web/src/main/webapp/WEB-INF/web.xml Added Paths: ----------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/UnTarTool.java trunk/treebase-web/src/main/java/org/cipres/treebase/web/webservices/DryadImportor.java Modified: trunk/treebase-web/pom.xml =================================================================== --- trunk/treebase-web/pom.xml 2010-07-07 19:32:38 UTC (rev 730) +++ trunk/treebase-web/pom.xml 2010-07-13 16:38:00 UTC (rev 731) @@ -21,6 +21,9 @@ </resource> </resources> <finalName>treebase-web</finalName> + + + <plugins> <!-- Ant Task plugin--> @@ -80,26 +83,20 @@ <repository> <id>org.tuckey.urlrewritefilter</id> <url>http://repository.jboss.org/maven2/org/tuckey/urlrewritefilter/</url> - </repository> - + </repository> + <repository> + <id>java.net</id> + <url>http://download.java.net/maven/2</url> + </repository> + + </repositories> + - <pluginRepositories> - <pluginRepository> - <id>Maven Snapshots</id> - <url>http://snapshots.maven.codehaus.org/maven2</url> - <snapshots> - <enabled>true</enabled> - </snapshots> - <releases> - <enabled>false</enabled> - </releases> - </pluginRepository> - </pluginRepositories> - <dependencies> - - + + + <dependencies> <dependency> <groupId>org.nexml.model</groupId> @@ -341,5 +338,36 @@ <artifactId>velocity-tools-view</artifactId> <version>1.1</version> </dependency> - </dependencies> + +<dependency> +<groupId>com.sun.jersey</groupId> +<artifactId>jersey-client</artifactId> +<version>1.1.5</version> +</dependency> + +<dependency> +<groupId>com.sun.jersey</groupId> +<artifactId>jersey-server</artifactId> +<version>1.1.5</version> +</dependency> + +<dependency> +<groupId>com.sun.jersey.contribs</groupId> +<artifactId>jersey-multipart</artifactId> +<version>1.1.5</version> +</dependency> + +<dependency> +<groupId>com.sun.jersey</groupId> +<artifactId>jersey-bundle</artifactId> +<version>1.1.5</version> +</dependency> + +<dependency> +<groupId>javax.ws.rs</groupId> +<artifactId>jsr311-api</artifactId> +<version>1.0</version> +</dependency> +</dependencies> + </project> Added: trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/UnTarTool.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/UnTarTool.java (rev 0) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/UnTarTool.java 2010-07-13 16:38:00 UTC (rev 731) @@ -0,0 +1,69 @@ +package org.cipres.treebase.web.util; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.zip.GZIPInputStream; + +import org.apache.tools.tar.TarEntry; +import org.apache.tools.tar.TarInputStream; + +public class UnTarTool +{ + + public static void unTarGz(File file,File outDir) throws IOException{ + + TarInputStream tarIn = null; + + try{ + + tarIn = new TarInputStream(new GZIPInputStream( + new BufferedInputStream(new FileInputStream(file))), + 1024); + + TarEntry entry = null; + //tarIn.getNextEntry(); + //File outputDir = new File(outDir, "myBag"); + //outputDir.mkdirs(); + while( (entry = tarIn.getNextEntry()) != null ){ + File f = new File(outDir,entry.getName()); + if(entry.isDirectory()){ + f.mkdirs(); + }else{ + f.getParentFile().mkdirs(); + f.createNewFile(); + OutputStream out = null; + try{ + out = new FileOutputStream(f); + int length = 0; + byte[] b = new byte[1024]; + while((length = tarIn.read(b)) != -1){ + out.write(b, 0, length); + } + + }catch(IOException ex){ + throw ex; + }finally{ + if(out!=null) + out.close(); + } + } + } + }catch(IOException ex){ + throw ex; + } finally{ + try{ + if(tarIn != null){ + tarIn.close(); + } + }catch(IOException ex){ + throw ex; + } + } + + } + +} Added: trunk/treebase-web/src/main/java/org/cipres/treebase/web/webservices/DryadImportor.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/webservices/DryadImportor.java (rev 0) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/webservices/DryadImportor.java 2010-07-13 16:38:00 UTC (rev 731) @@ -0,0 +1,104 @@ +package org.cipres.treebase.web.webservices; + + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.io.StringWriter; + +import com.sun.jersey.multipart.*; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.Consumes; +//import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.core.Context; + +import org.cipres.treebase.TreebaseUtil; +import org.cipres.treebase.web.util.UnTarTool; + + + +@Path("/dryadImport") + +public class DryadImportor { + + @Context + HttpServletRequest httpRequest; + + @PUT + //@POST + //@GET + + @Consumes("multipart/mixed") + +public String processMultiparts(MultiPart multiPart) { + + String ip = httpRequest.getRemoteAddr(); + if(!AllowIP.isAllowIP(ip))return "not authorized"; + + BodyPartEntity bpe = (BodyPartEntity) multiPart.getBodyParts().get(0).getEntity(); + File unzipFold; + String systemTime; + + do{ + systemTime = "" + System.currentTimeMillis(); + String uploadDir = httpRequest.getSession().getServletContext() + .getRealPath(TreebaseUtil.FILESEP + "DryadFileUpload") + + TreebaseUtil.FILESEP + systemTime; + unzipFold = new File(uploadDir); + }while(unzipFold.exists()); + + + File zipfile = new File(unzipFold,"data.tar.gz"); + + try { + unzipFold.mkdirs(); + zipfile.createNewFile(); + InputStream in = bpe.getInputStream(); + OutputStream out=new FileOutputStream(zipfile); + + byte[] buf = new byte[1024]; + int len; + while ((len = in.read(buf)) > 0){ + out.write(buf, 0, len); + } + in.close(); + out.close(); + UnTarTool.unTarGz(zipfile,unzipFold); + + } catch (IOException e) { + // TODO Auto-generated catch block + StringWriter sw = new StringWriter(); + e.printStackTrace(new PrintWriter(sw)); + return sw.getBuffer().toString(); + } + String[] baseURL=httpRequest.getRequestURL().toString().split("handshaking"); + String importURL= baseURL[0] + "login.jsp?importKey=" + systemTime; + + return importURL; + + } + +} + +class AllowIP{ + private static final String dryad1 = "152.1.24.8"; + private static final String dryad2 = "152.3.105.16"; + private static final String yale1 = "130.132.27.141"; + private static final String yale2 = "130.132.27.212"; + + static boolean isAllowIP(String ip){ + + if (ip.compareTo(dryad1)==0) return true; + if (ip.compareTo(dryad2)==0) return true; + if (ip.compareTo(yale1)==0)return true; + if (ip.compareTo(yale2)==0)return true; + + return false; + } + +} Modified: trunk/treebase-web/src/main/webapp/WEB-INF/web.xml =================================================================== --- trunk/treebase-web/src/main/webapp/WEB-INF/web.xml 2010-07-07 19:32:38 UTC (rev 730) +++ trunk/treebase-web/src/main/webapp/WEB-INF/web.xml 2010-07-13 16:38:00 UTC (rev 731) @@ -120,13 +120,67 @@ <!-- ========================================================== --> <filter-mapping> <filter-name>securityFilter</filter-name> - <url-pattern>/*</url-pattern> + <url-pattern>/*</url-pattern> </filter-mapping> - <filter-mapping> + + <filter-mapping> <filter-name>sitemesh</filter-name> - <url-pattern>/*</url-pattern> + <url-pattern>*.html</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> + </filter-mapping> + + <filter-mapping> + <filter-name>sitemesh</filter-name> + <url-pattern>*.jsp</url-pattern> + <dispatcher>REQUEST</dispatcher> + <dispatcher>FORWARD</dispatcher> + </filter-mapping> + + <filter-mapping> + <filter-name>sitemesh</filter-name> + <url-pattern>*.htm</url-pattern> + <dispatcher>REQUEST</dispatcher> + <dispatcher>FORWARD</dispatcher> + </filter-mapping> + + <filter-mapping> + <filter-name>sitemesh</filter-name> + <url-pattern>*.rdf</url-pattern> + <dispatcher>REQUEST</dispatcher> + <dispatcher>FORWARD</dispatcher> + </filter-mapping> + + <filter-mapping> + <filter-name>sitemesh</filter-name> + <url-pattern>/</url-pattern> + <dispatcher>REQUEST</dispatcher> + <dispatcher>FORWARD</dispatcher> + </filter-mapping> + <filter-mapping> + <filter-name>sitemesh</filter-name> + <url-pattern>/phylows/*</url-pattern> + <dispatcher>REQUEST</dispatcher> + <dispatcher>FORWARD</dispatcher> + </filter-mapping> + + <filter-mapping> + <filter-name>sitemesh</filter-name> + <url-pattern>/top/*</url-pattern> + <dispatcher>REQUEST</dispatcher> + <dispatcher>FORWARD</dispatcher> + </filter-mapping> + + <filter-mapping> + <filter-name>sitemesh</filter-name> + <url-pattern>/services/*</url-pattern> + <dispatcher>REQUEST</dispatcher> + <dispatcher>FORWARD</dispatcher> + </filter-mapping> + + <filter-mapping> + <filter-name>hibernateFilter</filter-name> + <url-pattern>*.html</url-pattern> </filter-mapping> <filter-mapping> <filter-name>hibernateFilter</filter-name> @@ -197,8 +251,22 @@ </servlet-class> </servlet> - + <!-- ========================================================== --> + <!-- Processed by Jersey --> + <!-- ========================================================== --> + <servlet> + <servlet-name>HandshakingServlet</servlet-name> + <servlet-class> + com.sun.jersey.spi.container.servlet.ServletContainer + </servlet-class> + <init-param> + <param-name>com.sun.jersey.config.property.packages</param-name> + <param-value>org.cipres.treebase.web.webservices</param-value> + </init-param> + <load-on-startup>1</load-on-startup> + </servlet> + <!-- ========================================================== --> <!-- url pattern that will be processed by DispatcherServlet --> <!-- ========================================================== --> @@ -239,6 +307,14 @@ <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/services/*</url-pattern> + </servlet-mapping> + + <!-- ========================================================== --> + <!-- url pattern that will be processed by CXFServlet --> + <!-- ========================================================== --> + <servlet-mapping> + <servlet-name>HandshakingServlet</servlet-name> + <url-pattern>/handshaking/*</url-pattern> </servlet-mapping> <!-- ========================================================== --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |