|
From: <ian...@us...> - 2007-07-23 02:22:24
|
Revision: 230
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=230&view=rev
Author: iansmith
Date: 2007-07-22 19:22:26 -0700 (Sun, 22 Jul 2007)
Log Message:
-----------
Pretty simple little implementation of getAllNames for
web-based media storage.
Modified Paths:
--------------
spaces/trunk/src/com/ogoglio/PrepareDatabase.java
spaces/trunk/src/com/ogoglio/client/ClientTests.java
spaces/trunk/src/com/ogoglio/media/WebStore.java
spaces/trunk/src/com/ogoglio/media/site/MediaServlet.java
spaces/trunk/src/com/ogoglio/site/AccountServlet.java
Modified: spaces/trunk/src/com/ogoglio/PrepareDatabase.java
===================================================================
--- spaces/trunk/src/com/ogoglio/PrepareDatabase.java 2007-07-23 00:41:29 UTC (rev 229)
+++ spaces/trunk/src/com/ogoglio/PrepareDatabase.java 2007-07-23 02:22:26 UTC (rev 230)
@@ -5,9 +5,11 @@
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
+import com.ogoglio.media.MediaStore;
+import com.ogoglio.persist.HibernateBase;
import com.ogoglio.persist.ServiceInitializationPersistTasks;
-public class PrepareDatabase {
+public class PrepareDatabase extends HibernateBase {
/*
* This is the beginning of a utility program to allow you be sure that your database is ready to
@@ -23,20 +25,24 @@
* @param args IGNORED
*/
public static void main(String[] args) {
- Configuration configuration = new Configuration();
- configuration.addResource("com/ogoglio/persist/Persist.hbm.xml");
- configuration.setProperty("hibernate.hbm2ddl.auto", "create");
- configuration.setProperty("hibernate.show_sql", "true");
- configuration.setProperty("hibernate.connection.driver_class","org.hsqldb.jdbcDriver");
- configuration.setProperty("hibernate.connection.url","jdbc:hsqldb:db/ogoglio");
- configuration.setProperty("hibernate.connection.username","sa");
- configuration.setProperty("hibernate.connection.password","");
- configuration.setProperty("hibernate.connection.pool_size","1");
- configuration.setProperty("hibernate.dialect","org.hibernate.dialect.HSQLDialect");
- configuration.setProperty("hibernate.connection.shutdown","true");
+ if (args.length!=2) {
+ System.out.println("Need to pass the username and password on the command line!");
+ System.exit(1);
+ }
+ new PrepareDatabase().start(args[0], args[1]);
+ }
+ public void start(String user, String pass) {
+ setupSessionFactory("com/ogoglio/persist/Persist.hbm.xml",
+ "create",
+ "org.hibernate.dialect.MySQLDialect",
+ "com.mysql.jdbc.Driver",
+ "jdbc:mysql://127.0.0.1/og?autoReconnect=true",
+ user, pass,
+ "5");
+ config.setProperty("hibernate.connection.shutdown","true");
String host = "10.0.1.198"; //best choice: 127.0.0.1
String siteInfo = "http://"+host+":8080/og"; //configured in server.xml
- SessionFactory sessionFactory = configuration.buildSessionFactory();
+ SessionFactory sessionFactory = getSessionFactory();
try {
//new SchemaUpdate(configuration).execute(true,true);
ServiceInitializationPersistTasks.initializeLocalSim(new URI(siteInfo), sessionFactory);
Modified: spaces/trunk/src/com/ogoglio/client/ClientTests.java
===================================================================
--- spaces/trunk/src/com/ogoglio/client/ClientTests.java 2007-07-23 00:41:29 UTC (rev 229)
+++ spaces/trunk/src/com/ogoglio/client/ClientTests.java 2007-07-23 02:22:26 UTC (rev 230)
@@ -71,7 +71,7 @@
public void setUp() {
try {
- serviceURI1 = new URI("http://127.0.0.1:8080/og/");
+ serviceURI1 = new URI("http://127.0.0.1:8080/og/"); //best choice: 127.0.0.1 for tests
linkURI1 = new URI("http://ogoglio.com/");
} catch (Throwable e) {
e.printStackTrace();
@@ -487,7 +487,6 @@
//get a new version of the template document reflecting updated files
baseDoc = webClient1.getTemplateDocument(newTemplateDoc.getTemplateID());
//make sure the sequence right above didn't take more than 1 sec
- System.out.println("BASE DOC FART:"+baseDoc);
verifyLastChangedTimes(baseDoc.getScriptModifiedTime(),baseDoc.getGeometryModifiedTime(0),1000, false, false);
verifyLastChangedTimes(baseDoc.getScriptModifiedTime(),baseDoc.getSupportFileModifiedTime(CUBE_GIF),1000, false, false);
verifyLastChangedTimes(baseDoc.getScriptModifiedTime(),baseDoc.getSupportFileModifiedTime(CUBE_MATERIAL),1000, false, false);
Modified: spaces/trunk/src/com/ogoglio/media/WebStore.java
===================================================================
--- spaces/trunk/src/com/ogoglio/media/WebStore.java 2007-07-23 00:41:29 UTC (rev 229)
+++ spaces/trunk/src/com/ogoglio/media/WebStore.java 2007-07-23 02:22:26 UTC (rev 230)
@@ -13,10 +13,14 @@
limitations under the License. */
package com.ogoglio.media;
+import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.InputStreamReader;
import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
import com.ogoglio.client.DecoratedInputStream;
import com.ogoglio.client.WebAPIClient;
@@ -70,8 +74,29 @@
return false;
}
}
- //NOT YET IMPLEMENTED
+ //This is really expensive and probably shouldn't be used except in the most rare of circumstances
public String[] getAllNames() {
- return new String[0];
+ try {
+ DecoratedInputStream dis=WebAPIClient.performGET(WebAPIUtil.appendToURI(mediaURI, "?list=true"), null, false);
+ InputStreamReader isr=new InputStreamReader(dis);
+ BufferedReader reader=new BufferedReader(isr);
+ List result = new ArrayList();
+
+ String line;
+ do {
+ line=reader.readLine();
+ if (line==null) {
+ continue;
+ } else {
+ result.add(line);
+ }
+ } while (line!=null);
+ reader.close();
+
+ return (String[])result.toArray(new String[0]);
+
+ } catch (IOException e) {
+ return null;
+ }
}
}
Modified: spaces/trunk/src/com/ogoglio/media/site/MediaServlet.java
===================================================================
--- spaces/trunk/src/com/ogoglio/media/site/MediaServlet.java 2007-07-23 00:41:29 UTC (rev 229)
+++ spaces/trunk/src/com/ogoglio/media/site/MediaServlet.java 2007-07-23 02:22:26 UTC (rev 230)
@@ -2,6 +2,8 @@
import java.io.File;
import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
import java.util.Date;
import javax.servlet.ServletConfig;
@@ -44,8 +46,28 @@
}
public void doGet(HttpServletRequest request, HttpServletResponse response, String[] pathElements) throws ServletException, IOException {
+ if ((request.getQueryString()!=null) && (request.getQueryString().startsWith("list"))) {
+ doList(request,response);
+ return;
+ }
sendStringResponse("I'm a media servlet (" + (fileStore == null ? "inactive" : "active") + ")", "text/plain", response);
}
+ public void doList(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ if (fileStore == null) {
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ return;
+ }
+ OutputStream str=response.getOutputStream();
+ OutputStreamWriter wr=new OutputStreamWriter(str);
+ String[] allNames= fileStore.getAllNames();
+ for (int i=0; i<allNames.length;++i) {
+ wr.write(allNames[i]+"\n");
+ }
+ wr.flush();
+ wr.close();
+ response.setContentType("text/plain");
+ response.setStatus(HttpServletResponse.SC_OK);
+ }
}
private class DataResource extends SiteResource {
Modified: spaces/trunk/src/com/ogoglio/site/AccountServlet.java
===================================================================
--- spaces/trunk/src/com/ogoglio/site/AccountServlet.java 2007-07-23 00:41:29 UTC (rev 229)
+++ spaces/trunk/src/com/ogoglio/site/AccountServlet.java 2007-07-23 02:22:26 UTC (rev 230)
@@ -865,6 +865,7 @@
}
TemplateDocument result = new TemplateDocument(record);
sendStringResponse(result.toString(), "text/xml", response);
+
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|