# HG changeset patch
# User IRI
# Date 1269053683 -3600
# Node ID 25dda14508ec3b9b90b4254a0183781db81621ce
# Parent 586a7e03cbb43ad46aa0b9411d0f73503da541fe
defined init and retrain
diff -r 586a7e03cbb4 -r 25dda14508ec .classpath
--- a/.classpath Fri Mar 19 18:35:15 2010 +0100
+++ b/.classpath Sat Mar 20 03:54:43 2010 +0100
@@ -1,17 +1,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 586a7e03cbb4 -r 25dda14508ec WebContent/WEB-INF/web.xml
--- a/WebContent/WEB-INF/web.xml Fri Mar 19 18:35:15 2010 +0100
+++ b/WebContent/WEB-INF/web.xml Sat Mar 20 03:54:43 2010 +0100
@@ -16,7 +16,7 @@
initDatabasePath
- /tmp/db
+ c:/tmp/db
1
diff -r 586a7e03cbb4 -r 25dda14508ec src/fr/iri/thd/sonyengine/MovieFragmentResource.java
--- a/src/fr/iri/thd/sonyengine/MovieFragmentResource.java Fri Mar 19 18:35:15 2010 +0100
+++ b/src/fr/iri/thd/sonyengine/MovieFragmentResource.java Sat Mar 20 03:54:43 2010 +0100
@@ -1,11 +1,31 @@
package fr.iri.thd.sonyengine;
+import javax.servlet.ServletContext;
+import javax.ws.rs.POST;
import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.core.Context;
+
+import thd.ThdEngine;
@Path ("segment")
public class MovieFragmentResource {
- public void create(String id) {
+ @POST
+ @Path("create/{id}")
+ public void create(@PathParam("id") String id, @Context ServletContext context) {
+
+ ThdEngine.getEngine().createMovieFragment(id);
+
+ DbEnv dbenv = (DbEnv)context.getAttribute(ServletContainer.DB_ENV_ATTRIBUTE);
+
+ DataAccessor da = new DataAccessor(dbenv.getEntityStore());
+
+ MovieFragment fragment = new MovieFragment(id);
+ da.movieFragmentById.put(fragment);
+
+ ThdEngine.getEngine().reTrain();
+
}
public void find(String id, String tag, Float separation, Boolean b) {
diff -r 586a7e03cbb4 -r 25dda14508ec src/fr/iri/thd/sonyengine/ServletContainer.java
--- a/src/fr/iri/thd/sonyengine/ServletContainer.java Fri Mar 19 18:35:15 2010 +0100
+++ b/src/fr/iri/thd/sonyengine/ServletContainer.java Sat Mar 20 03:54:43 2010 +0100
@@ -5,6 +5,10 @@
import javax.servlet.ServletException;
import javax.ws.rs.core.Application;
+import thd.ThdEngine;
+
+import com.sleepycat.persist.EntityCursor;
+
public class ServletContainer extends
com.sun.jersey.spi.container.servlet.ServletContainer {
@@ -13,6 +17,8 @@
*/
private static final long serialVersionUID = -447765110849619632L;
+ public static final String DB_ENV_ATTRIBUTE = "DB_ENV";
+
public ServletContainer() {
}
@@ -30,7 +36,55 @@
String databasePath = this.getInitParameter("initDatabasePath");
+ if(databasePath == null)
+ return;
+
+ File databasePathFile = new File(databasePath);
+
+ if(!databasePathFile.exists())
+ {
+ databasePathFile.mkdirs();
+ }
DbEnv env = new DbEnv();
- env.setup(new File(databasePath), true);
+ env.setup(databasePathFile, false);
+
+ // set DbEnv in servlet context
+ this.getServletContext().setAttribute(ServletContainer.DB_ENV_ATTRIBUTE, env);
+
+ //load all entities
+ DataAccessor da = new DataAccessor(env.getEntityStore());
+
+ EntityCursor movieFragmentItems = da.movieFragmentById.entities();
+
+ try {
+ for(MovieFragment item : movieFragmentItems) {
+ ThdEngine.getEngine().createMovieFragment(item.getId());
+ }
+ }
+ finally {
+ movieFragmentItems.close();
+ }
+
+ EntityCursor tagItems = da.tagById.entities();
+
+ try {
+ for(Tag item : tagItems) {
+ ThdEngine.getEngine().addTag(item.getName(), item.getSegment());
+ }
+ }
+ finally {
+ tagItems.close();
+ }
+
+ ThdEngine.getEngine().reTrain();
}
+
+ public void destroy() {
+ DbEnv env = (DbEnv)this.getServletContext().getAttribute(DB_ENV_ATTRIBUTE);
+
+ if(env != null) {
+ env.close();
+ }
+ }
+
}