summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrei Aiordachioaie <a.aiordachioaie@jacobs-university.de>2009-08-07 12:08:24 +0200
committerAndrei Aiordachioaie <a.aiordachioaie@jacobs-university.de>2009-08-07 11:48:15 +0200
commit6809f0681ce452f25651237ab4923b0baa1337d5 (patch)
treee02a5e7e01171cfd7d9f5296de9a107f10e0f81a /src
parent1aa535dc28010b39b4c2b916b56c94c8c6002e8b (diff)
PetaScope usability improvements
- WCPS and WCS-T now both use the ConfigManager for reading settings - Now we have a unique settings file: settings.properties (dbparams.properties has been removed) - The HTML templates were moved to a different folder
Diffstat (limited to 'src')
-rw-r--r--src/wcps/server/servlet/WCPSServlet.java4
-rw-r--r--src/wcst/server/ConfigManager.java30
-rw-r--r--src/wcst/server/wcstServlet.java12
-rw-r--r--src/wcst/transaction/executeTransaction.java10
-rw-r--r--src/wcst/transaction/tools/RasdamanUtils.java63
-rw-r--r--src/wcst/transaction/tools/TestRasdamanUtils.java11
6 files changed, 98 insertions, 32 deletions
diff --git a/src/wcps/server/servlet/WCPSServlet.java b/src/wcps/server/servlet/WCPSServlet.java
index f791215..b1abaa0 100644
--- a/src/wcps/server/servlet/WCPSServlet.java
+++ b/src/wcps/server/servlet/WCPSServlet.java
@@ -67,7 +67,7 @@ public class WCPSServlet extends HttpServlet
private String rasdamanUrl;
private WCPS wcps;
// path to the default HTML response of the servlet
- private String servletHtmlPath = "/misc/wcps-servlet.html";
+ private String servletHtmlPath = "/templates/wcps-servlet.html";
// String containing the HTML code for the default response
private String defaultHtmlResponse;
@@ -79,7 +79,7 @@ public class WCPSServlet extends HttpServlet
System.out.println("WCPS: loading database properties");
dbParams.load(
new FileInputStream(
- getServletContext().getRealPath("/dbparams.properties")));
+ getServletContext().getRealPath("/settings.properties")));
rasdamanUrl = dbParams.getProperty("rasdaman_url");
rasdamanDatabase = dbParams.getProperty("rasdaman_database");
diff --git a/src/wcst/server/ConfigManager.java b/src/wcst/server/ConfigManager.java
index 5e6091e..07cd631 100644
--- a/src/wcst/server/ConfigManager.java
+++ b/src/wcst/server/ConfigManager.java
@@ -43,6 +43,9 @@ public class ConfigManager
public static boolean PRINT_LOG;
public static String SERVLET_INFO;
public static String VERSION;
+ public static String RASDAMAN_URL;
+ public static String RASDAMAN_DATABASE;
+
/* Singleton instance */
private static ConfigManager instance;
private static Properties props;
@@ -57,12 +60,14 @@ public class ConfigManager
props = new Properties();
try
{
+ log("Loading settings from file: " + settingsPath);
props.load(new FileInputStream(settingsPath));
initSettings();
}
catch (IOException e)
{
e.printStackTrace();
+ log("Failed to load settings.");
}
}
@@ -99,9 +104,26 @@ public class ConfigManager
private void initSettings()
{
- LANGUAGE = get("WCST_LANGUAGE");
- VERSION = get("WCST_VERSION");
- PRINT_LOG = Boolean.parseBoolean(get("PRINT_LOG"));
- SERVLET_INFO = get("SERVLET_INFO");
+ LANGUAGE = get("wcst_language");
+ VERSION = get("wcst_version");
+ PRINT_LOG = Boolean.parseBoolean(get("wcst_print_log"));
+ SERVLET_INFO = get("wcst_servlet_info");
+ RASDAMAN_DATABASE = get("rasdaman_database");
+ RASDAMAN_URL = get("rasdaman_url");
+
+ log("---------------------------");
+ log("WCS-T Language: " + LANGUAGE);
+ log("WCS-T Version: " + VERSION);
+ log("WCS-T Print Log: " + PRINT_LOG);
+ log("WCS-T Servlet Info: " + SERVLET_INFO);
+ log("Rasdaman URL: " + RASDAMAN_URL);
+ log("Rasdaman DB: " + RASDAMAN_DATABASE);
+ log("---------------------------");
}
+
+ private void log(String msg)
+ {
+// if (PRINT_LOG)
+ System.out.println(msg);
+ }
}
diff --git a/src/wcst/server/wcstServlet.java b/src/wcst/server/wcstServlet.java
index 8fb0410..1500fc5 100644
--- a/src/wcst/server/wcstServlet.java
+++ b/src/wcst/server/wcstServlet.java
@@ -45,24 +45,24 @@ import javax.servlet.http.HttpServletResponse;
*/
public class wcstServlet extends HttpServlet
{
- private static final long serialVersionUID = 84786549L;
private String defaultHtmlResponse;
+ private String relativeServletHtmlPath = "/templates/wcst-servlet.html";
private String servletHtmlPath;
+ private String relativeSettingsPath = "/settings.properties";
private wcstServer server;
@Override
public void init() throws ServletException
{
- // Initialize the configuration manager
- String settingsPath = getServletContext().getRealPath("/settings.properties");
+ // Initialize the configuration manager. Now all classes can read the settings.
+ String settingsPath = getServletContext().getRealPath(relativeSettingsPath);
ConfigManager config = ConfigManager.getInstance(settingsPath);
// Initialize the WCS-T server with proper metadata
- String metadataDbPath = getServletContext().getRealPath("/dbparams.properties");
- server = new wcstServer(metadataDbPath);
+ server = new wcstServer(settingsPath);
// Load the servlet HTML response
- servletHtmlPath = getServletContext().getRealPath("/misc/wcst-servlet.html");
+ servletHtmlPath = getServletContext().getRealPath(relativeServletHtmlPath);
try
{
defaultHtmlResponse = FileUtils.readFileToString(new File(servletHtmlPath));
diff --git a/src/wcst/transaction/executeTransaction.java b/src/wcst/transaction/executeTransaction.java
index 53428b4..e708c17 100644
--- a/src/wcst/transaction/executeTransaction.java
+++ b/src/wcst/transaction/executeTransaction.java
@@ -76,6 +76,7 @@ import javax.xml.bind.JAXBElement;
import javax.xml.bind.Unmarshaller;
import org.odmg.ODMGException;
import wcps.server.core.Metadata;
+import wcst.server.ConfigManager;
import wcst.transaction.tools.RasdamanUtils;
/**
@@ -87,9 +88,6 @@ import wcst.transaction.tools.RasdamanUtils;
public class executeTransaction
{
private static boolean printLog = true;
- public final String ACCEPTED_LANGUAGE = "en";
- public final static String DEFAULT_RASSERVER = "http://kahlua.eecs.jacobs-university.de:7001";
- public final static String DEFAULT_RASDATABASE = "RASBASE";
private boolean finished;
private TransactionType input;
private MetadataDb meta;
@@ -111,8 +109,8 @@ public class executeTransaction
metadataSettingsPath = metadataDbPath;
meta = new MetadataDb(metadataSettingsPath);
- String server = DEFAULT_RASSERVER;
- String db = DEFAULT_RASDATABASE;
+ String server = ConfigManager.RASDAMAN_URL;
+ String db = ConfigManager.RASDAMAN_DATABASE;
rasUtils = new RasdamanUtils(server, db);
rasUtils.init();
@@ -571,7 +569,7 @@ public class executeTransaction
{
LanguageStringType a = (LanguageStringType) i.next();
- if ( a.getLang().equals(ACCEPTED_LANGUAGE) )
+ if ( a.getLang().equals(ConfigManager.LANGUAGE) )
result = a.getValue();
}
diff --git a/src/wcst/transaction/tools/RasdamanUtils.java b/src/wcst/transaction/tools/RasdamanUtils.java
index adcd52a..8eefbba 100644
--- a/src/wcst/transaction/tools/RasdamanUtils.java
+++ b/src/wcst/transaction/tools/RasdamanUtils.java
@@ -108,8 +108,9 @@ public class RasdamanUtils
}
catch (Exception e)
{
-// e.printStackTrace();
- throw new WCSTException("RasdamanUnavailable", "Could not connect to the Rasdaman server !");
+// e.printStackTrace();
+ throw new WCSTException("RasdamanUnavailable",
+ "Could not connect to the Rasdaman server !");
}
}
@@ -167,7 +168,8 @@ public class RasdamanUtils
RasGMArray result = (RasGMArray) iter.next();
byte[] ba = result.getArray();
ByteArrayInputStream bas = new ByteArrayInputStream(ba);
- com.sun.image.codec.jpeg.JPEGImageDecoder decoder = com.sun.image.codec.jpeg.JPEGCodec.createJPEGDecoder(bas);
+ com.sun.image.codec.jpeg.JPEGImageDecoder decoder = com.sun.image.codec.jpeg
+ .JPEGCodec.createJPEGDecoder(bas);
BufferedImage bufImg = null;
try
@@ -249,7 +251,8 @@ public class RasdamanUtils
}
}
- public void updateGrayImageWithArray(String name, BufferedImage img, int x1, int y1, int x2, int y2)
+ public void updateGrayImageWithArray(String name, BufferedImage img, int x1, int y1, int x2,
+ int y2)
{
try
{
@@ -260,11 +263,14 @@ public class RasdamanUtils
// set up query object for collection creation:
OQLQuery myQu = myApp.newOQLQuery();
// Where to insert new image
- String interval = String.valueOf(x1) + ":" + String.valueOf(x2) + "," + String.valueOf(y1) + ":" + String.valueOf(y2);
+ String interval = String.valueOf(x1) + ":" + String.valueOf(x2) + ","
+ + String.valueOf(y1) + ":" + String.valueOf(y2);
// Size of new image
- String interval2 = String.valueOf(0) + ":" + String.valueOf(x2 - x1) + "," + String.valueOf(0) + ":" + String.valueOf(y2 - y1);
+ String interval2 = String.valueOf(0) + ":" + String.valueOf(x2 - x1) + ","
+ + String.valueOf(0) + ":" + String.valueOf(y2 - y1);
- myQu.create("update " + name + " AS c SET c[" + interval + "] " + "assign maaray x in [" + interval2 + "] values $1");
+ myQu.create("update " + name + " AS c SET c[" + interval + "] "
+ + "assign maaray x in [" + interval2 + "] values $1");
// let the server generate a new OID for the object to be
// inserted, and remember this OID locally:
String myNewOID = myApp.getObjectId(myMDD);
@@ -316,6 +322,40 @@ public class RasdamanUtils
}
}
+ public void insertColorImageAsArray(String name, BufferedImage img) throws ODMGException
+ {
+ try
+ {
+ log("Creating grey image ...");
+ RasGMArray myMDD = createMddFromImage(img);
+ // set up query object for collection creation:
+ OQLQuery myQu = myApp.newOQLQuery();
+
+ myQu.create("create collection " + name + " RGBSet");
+ // set the object type name (used for server type checking):
+ myMDD.setObjectTypeName("RGBImage");
+ // finally, execute “create collection” statement:
+ log("Creating collection '" + name + "'");
+ myQu.execute();
+ // now create the insert statement:
+ myQu.create("insert into " + name + " values $1");
+ // let the server generate a new OID for the object to be
+ // inserted, and remember this OID locally:
+ String myNewOID = myApp.getObjectId(myMDD);
+
+ // bind the MDD value which substitutes formal parameter $1:
+ myQu.bind(myMDD);
+ // …and ship the complete statement to the server:
+ log("Inserting data into the collection");
+ myQu.execute();
+ log("Done !");
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
public void insertImageAsJpeg(String name, byte[] img, int maxX, int maxY) throws ODMGException
{
try
@@ -357,7 +397,8 @@ public class RasdamanUtils
}
}
- private RasGMArray createRasArrayFromBytes(byte[] bytes, int maxX, int maxY) throws RasResultIsNoIntervalException
+ private RasGMArray createRasArrayFromBytes(byte[] bytes, int maxX, int maxY)
+ throws RasResultIsNoIntervalException
{
// create 2-D MDD with cell length 1, i.e., type “byte”:
String strX = String.valueOf(maxX), strY = String.valueOf(maxY);
@@ -373,7 +414,8 @@ public class RasdamanUtils
return myMDD;
}
- public void deleteCollection(String name) throws ODMGException, ODMGException, ODMGException, Exception
+ public void deleteCollection(String name)
+ throws ODMGException, ODMGException, ODMGException, Exception
{
try
{
@@ -471,7 +513,8 @@ public class RasdamanUtils
public BufferedImage convertImageToGray(BufferedImage img)
{
- BufferedImage image = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
+ BufferedImage image = new BufferedImage(img.getWidth(), img.getHeight(),
+ BufferedImage.TYPE_BYTE_GRAY);
Graphics g = image.getGraphics();
g.drawImage(img, 0, 0, null);
diff --git a/src/wcst/transaction/tools/TestRasdamanUtils.java b/src/wcst/transaction/tools/TestRasdamanUtils.java
index 4fefeae..965e9b7 100644
--- a/src/wcst/transaction/tools/TestRasdamanUtils.java
+++ b/src/wcst/transaction/tools/TestRasdamanUtils.java
@@ -63,17 +63,19 @@ public class TestRasdamanUtils
// myUtils.loadCoverage("mr");
// myUtils.printAllCollections();
// testLoadRasdaman("rgb");
- testLoadRasdaman("andreiWedding1");
+// testLoadRasdaman("andreiFlickrColor");
// insertImageFromInternet("andreiFlickr1", "http://farm4.static.flickr.com/3347/3500129555_137c537e75_m.jpg");
// myUtils.deleteCollection("andreiFlickr1");
// myUtils.commitAndClose();
// myUtils.deleteCollection("flickr1");
-// updateImageFromInternet("andreiFlickr1", "http://localhost/peta/car.jpeg");
+ updateImageFromInternet("andreiFlickr1", "http://localhost/peta/car.jpeg");
+
+// insertImageFromInternet("andreiFlickrColor", "http://localhost/peta/flickr1.jpg");
// try
// {
-// myUtils.deleteCollection("andreiFlickr1");
+// myUtils.deleteCollection("andreiFlickrColor");
// myUtils.commitAndClose();
// }
// catch (Exception e)
@@ -99,7 +101,7 @@ public class TestRasdamanUtils
myUtils.abortAndClose();
}
- understandColorImage("http://localhost/peta/flickr1.jpg");
+// understandColorImage("http://localhost/peta/flickr1.jpg");
}
private static void insertImageFromInternet(String identifier, String href)
@@ -116,6 +118,7 @@ public class TestRasdamanUtils
// Step 2: Insert image into rasdaman
myUtils.insertGrayImageAsArray(identifier, img);
+// myUtils.insertColorImageAsArray(identifier, img);
}
catch (Exception e)
{