From: Vladimir G. <vla...@du...> - 2010-09-09 20:26:58
|
Begin forwarded message: > From: yo...@us... > Date: July 13, 2010 12:38:00 PM EDT > To: tre...@li... > Subject: [Treebase-guts] SF.net SVN: treebase:[731] trunk/treebase-web > > 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. > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > _______________________________________________ > Treebase-guts mailing list > Tre...@li... > https://lists.sourceforge.net/lists/listinfo/treebase-guts |