Skip to content
Snippets Groups Projects
Commit ecaf873d authored by Robert Butora's avatar Robert Butora
Browse files

eliminates DataLink useage in MCutout and Merge

parent 244816c6
No related branches found
No related tags found
No related merge requests found
...@@ -17,6 +17,8 @@ AUTHFILTERS = $(wildcard $(AUTH_DIR)/src/main/java/*Filter.java) $(AUTH_DIR)/sr ...@@ -17,6 +17,8 @@ AUTHFILTERS = $(wildcard $(AUTH_DIR)/src/main/java/*Filter.java) $(AUTH_DIR)/sr
FILTERS = $(wildcard src/main/java/webapi/*Filter.java) FILTERS = $(wildcard src/main/java/webapi/*Filter.java)
FILTERS += $(wildcard src/main/java/authz/*Filter.java) FILTERS += $(wildcard src/main/java/authz/*Filter.java)
SERVLETS = $(wildcard src/main/java/webapi/Servlet*.java) SERVLETS = $(wildcard src/main/java/webapi/Servlet*.java)
UWS = $(wildcard src/main/java/webapi/UWSMCutout.java)
UWS += $(wildcard src/main/java/webapi/UWSMerge.java)
#SERVLETS = $(wildcard src/main/java/webapi/*Servlet.java) #SERVLETS = $(wildcard src/main/java/webapi/*Servlet.java)
#=============================================================================== #===============================================================================
JFLAGS = -g JFLAGS = -g
...@@ -26,7 +28,7 @@ CLASSPATH = $(LIB_DIR)/* ...@@ -26,7 +28,7 @@ CLASSPATH = $(LIB_DIR)/*
.PHONY: build .PHONY: build
build: build:
echo "class Version { static String asString = \"$(VERSION)\";}" > src/main/java/Version.java echo "class Version { static String asString = \"$(VERSION)\";}" > src/main/java/Version.java
javac $(JFLAGS) -cp :$(CLASSPATH) -sourcepath $(SRC_DIR) -d $(CLASS_DIR) $(SERVLETS) $(FILTERS) $(AUTHFILTERS) $(VOSI) javac $(JFLAGS) -cp :$(CLASSPATH) -sourcepath $(SRC_DIR) -d $(CLASS_DIR) $(SERVLETS) $(FILTERS) $(AUTHFILTERS) $(VOSI) $(UWS)
.PHONY: clean .PHONY: clean
clean : clean :
......
...@@ -154,10 +154,11 @@ class DatasetsImpl implements Datasets ...@@ -154,10 +154,11 @@ class DatasetsImpl implements Datasets
String publisherDid, Coord coord, String publisherDid, Coord coord,
boolean countNullValues) boolean countNullValues)
{ {
ResolverByObsCore rsl = new ResolverByObsCore(settings.dbConn, subsurveys); // ResolverByObsCore rsl = new ResolverByObsCore(settings.dbConn, subsurveys);
Resolver rsl = new ResolverFromId();//settings.dbConn, subsurveys);
rsl.resolve(publisherDid); rsl.resolve(publisherDid);
FitsCard[] extraCards = Subsurvey.subsurveysFindCards(subsurveys, rsl.obsCollection());//rsl.subsurveyId); FitsCard[] extraCards = null;//Subsurvey.subsurveysFindCards(subsurveys, rsl.obsCollection());//rsl.subsurveyId);
String absSubimgPathname = settings.fitsPaths.cutouts() + "/" + generateSubimgPathname(rsl.relPathname(), rsl.hdunum()); String absSubimgPathname = settings.fitsPaths.cutouts() + "/" + generateSubimgPathname(rsl.relPathname(), rsl.hdunum());
LOGGER.info("absSubimgPathname: " + absSubimgPathname); LOGGER.info("absSubimgPathname: " + absSubimgPathname);
......
...@@ -32,10 +32,11 @@ public class JdlMCutout ...@@ -32,10 +32,11 @@ public class JdlMCutout
FitsCard[] extraCards = null; FitsCard[] extraCards = null;
ResolverByObsCore rsl = new ResolverByObsCore(settings.dbConn, subsurveys); Resolver rsl = new ResolverFromId();//settings.dbConn, subsurveys);
//ResolverByObsCore rsl = new ResolverByObsCore(settings.dbConn, subsurveys);
rsl.resolve(publisherDid); rsl.resolve(publisherDid);
extraCards = Subsurvey.subsurveysFindCards(subsurveys, rsl.obsCollection());//subsurveyId); extraCards = null;// Subsurvey.subsurveysFindCards(subsurveys, rsl.obsCollection());//subsurveyId);
/* add resolved info to json */ /* add resolved info to json */
......
...@@ -96,8 +96,8 @@ public class ServletMCutout extends javax.servlet.http.HttpServlet ...@@ -96,8 +96,8 @@ public class ServletMCutout extends javax.servlet.http.HttpServlet
OutputStream respOutputStream = response.getOutputStream(); OutputStream respOutputStream = response.getOutputStream();
MCutResult mCutRes = datasets.doMCutout(reqJsonString); MCutResult result = datasets.doMCutout(reqJsonString);
DataLink dlk = new DataLink(mCutRes); // DataLink dlk = new DataLink(mCutRes);
final String contentType = "text/xml"; // FIXME final String contentType = "text/xml"; // FIXME
final String respEncoding = "utf-8"; // FIXME final String respEncoding = "utf-8"; // FIXME
...@@ -105,7 +105,19 @@ public class ServletMCutout extends javax.servlet.http.HttpServlet ...@@ -105,7 +105,19 @@ public class ServletMCutout extends javax.servlet.http.HttpServlet
{ {
//LOGGER.info("writing xml"); //LOGGER.info("writing xml");
PrintWriter writer = new PrintWriter(new OutputStreamWriter(respOutputStream, respEncoding)); PrintWriter writer = new PrintWriter(new OutputStreamWriter(respOutputStream, respEncoding));
XmlSerializer.serializeToLegacyCutResults(writer, respEncoding, dlk, showDuration, startTime_msec); // XmlSerializer.serializeToLegacyCutResults(writer, respEncoding, dlk, showDuration, startTime_msec);
String accessUrl = convertLocalPathnameToRemoteUrl(result.fileName,
settings.fitsPaths.cutouts(),
settings.fitsPaths.cutoutsUrl());
XmlSerializer.serializeToLegacyCutResult(writer, respEncoding,
result, accessUrl,
//id, pos, band, time, pol, pixels, countNullValues,
showDuration, startTime_msec);
writer.close(); writer.close();
} }
else if(contentType.equals("application/tar.gz")) // FIXME mime for tgz ? else if(contentType.equals("application/tar.gz")) // FIXME mime for tgz ?
...@@ -133,5 +145,17 @@ public class ServletMCutout extends javax.servlet.http.HttpServlet ...@@ -133,5 +145,17 @@ public class ServletMCutout extends javax.servlet.http.HttpServlet
} }
} }
private String convertLocalPathnameToRemoteUrl(String localPathname,
String FITScutpath, String FITSRemoteUrlCutouts)
{
LOGGER.info("trace " + localPathname);
String fileName = localPathname.replaceAll(FITScutpath + "/", "");
LOGGER.info("local filename: " + fileName);
String remotefname = FITSRemoteUrlCutouts + "/" + fileName;
LOGGER.info("remote url : " + remotefname);
return remotefname;
}
} }
...@@ -35,7 +35,7 @@ import org.json.simple.parser.ParseException; ...@@ -35,7 +35,7 @@ import org.json.simple.parser.ParseException;
public class UWSMCutoutWork extends JobThread public class UWSMCutoutWork extends JobThread
{ {
final String RESP_ENCODING = "utf-8"; final String RESPONSE_ENCODING = "utf-8";
private Settings settings = UWSMCutout.settings; private Settings settings = UWSMCutout.settings;
...@@ -83,13 +83,24 @@ public class UWSMCutoutWork extends JobThread ...@@ -83,13 +83,24 @@ public class UWSMCutoutWork extends JobThread
/* SODA -> Implementation */ /* SODA -> Implementation */
MCutResult mCutResults = datasets.doMCutout(reqJsonString); MCutResult mresult = datasets.doMCutout(reqJsonString);
DataLink dlk = new DataLink(mCutResults); //DataLink dlk = new DataLink(mCutResults);
/* Implement -> SODA */ /* Implement -> SODA */
PrintWriter writer = new PrintWriter(new OutputStreamWriter(respOutputStream, RESP_ENCODING)); PrintWriter writer = new PrintWriter(new OutputStreamWriter(respOutputStream, RESPONSE_ENCODING));
XmlSerializer.serializeToLegacyCutResults(writer, RESP_ENCODING, dlk, showDuration, startTime_msec);
//XmlSerializer.serializeToLegacyCutResults(writer, RESPONSE_ENCODING, dlk, showDuration, startTime_msec);
String accessUrl = convertLocalPathnameToRemoteUrl(mresult.fileName,
settings.fitsPaths.cutouts(),
settings.fitsPaths.cutoutsUrl());
XmlSerializer.serializeToLegacyCutResult(writer, RESPONSE_ENCODING,
mresult, accessUrl,
//id, pos, band, time, pol, pixels, countNullValues,
showDuration, startTime_msec);
writer.close(); writer.close();
/* SODA -> UWS */ /* SODA -> UWS */
...@@ -109,4 +120,16 @@ public class UWSMCutoutWork extends JobThread ...@@ -109,4 +120,16 @@ public class UWSMCutoutWork extends JobThread
} }
} }
private String convertLocalPathnameToRemoteUrl(String localPathname,
String FITScutpath, String FITSRemoteUrlCutouts)
{
//LOGGER.info("trace " + localPathname);
String fileName = localPathname.replaceAll(FITScutpath + "/", "");
//LOGGER.info("local filename: " + fileName);
String remotefname = FITSRemoteUrlCutouts + "/" + fileName;
//LOGGER.info("remote url : " + remotefname);
return remotefname;
}
} }
...@@ -23,6 +23,8 @@ import java.util.Set; ...@@ -23,6 +23,8 @@ import java.util.Set;
import java.util.List; import java.util.List;
import java.util.ArrayList; import java.util.ArrayList;
import vo.parameter.*;
public class UWSMergeWork extends JobThread public class UWSMergeWork extends JobThread
{ {
private Settings settings = UWSMerge.settings; private Settings settings = UWSMerge.settings;
...@@ -31,7 +33,7 @@ public class UWSMergeWork extends JobThread ...@@ -31,7 +33,7 @@ public class UWSMergeWork extends JobThread
final String DEFAULT_RESPONSEFORMAT = settings.defaults.responseFormat; final String DEFAULT_RESPONSEFORMAT = settings.defaults.responseFormat;
final String DEFAULT_SKY_SYSTEM = settings.defaults.skySystem; final String DEFAULT_SKY_SYSTEM = settings.defaults.skySystem;
final String DEFAULT_SPEC_SYSTEM = settings.defaults.specSystem; final String DEFAULT_SPEC_SYSTEM = settings.defaults.specSystem;
final String DEFAULT_TIME_SYSTEM = "MJD_UTC";
Datasets datasets = new DatasetsImpl(settings); Datasets datasets = new DatasetsImpl(settings);
...@@ -56,17 +58,16 @@ public class UWSMergeWork extends JobThread ...@@ -56,17 +58,16 @@ public class UWSMergeWork extends JobThread
long startTime_msec = System.currentTimeMillis(); long startTime_msec = System.currentTimeMillis();
boolean showDuration = true; boolean showDuration = true;
Map<SodaParam, String[]> params = collectSodaParams(job); Map<String, String[]> params = collectSodaParams(job);
SodaParser parser = new SodaParser(params);
String id = null; String id = SingleStringParam.parseSingleStringParam(params, "ID");
Pos pos = null; Pos pos = Pos.parsePos(params, DEFAULT_SKY_SYSTEM);
Band band = null; Band band = Band.parseBand(params, DEFAULT_SPEC_SYSTEM);
Time time = null; Time time = Time.parseTime(params, DEFAULT_TIME_SYSTEM);
Pol pol = null; Pol pol = Pol.parsePol(params);
String pixels = null; String pixels = SingleStringParam.parseSingleStringParam(params, "PIXELS");
if(parser.sodaReq_hasSodaId()) /* if(parser.sodaReq_hasSodaId())
{ {
id = parser.sodaReq_getId(); id = parser.sodaReq_getId();
pos = parser.sodaReq_getPosCirclePolygon(); pos = parser.sodaReq_getPosCirclePolygon();
...@@ -80,8 +81,8 @@ public class UWSMergeWork extends JobThread ...@@ -80,8 +81,8 @@ public class UWSMergeWork extends JobThread
pos = parser.vlkbReq_getCircleRect(); pos = parser.vlkbReq_getCircleRect();
band = parser.vlkbReq_getVelocity(); band = parser.vlkbReq_getVelocity();
} }
*/
Coord coord = new Coord(pos, band, time, pol); Coord coord = new Coord(pos, band, time, pol, pixels);
CutResult cutResult = datasets.doMerge(parseLegacyPubdidArr(id), coord, false);//countNullValues); CutResult cutResult = datasets.doMerge(parseLegacyPubdidArr(id), coord, false);//countNullValues);
...@@ -146,11 +147,11 @@ public class UWSMergeWork extends JobThread ...@@ -146,11 +147,11 @@ public class UWSMergeWork extends JobThread
private String convertLocalPathnameToRemoteUrl(String localPathname, private String convertLocalPathnameToRemoteUrl(String localPathname,
String FITScutpath, String FITSRemoteUrlCutouts) String FITScutpath, String FITSRemoteUrlCutouts)
{ {
LOGGER.info("trace " + localPathname); //LOGGER.info("trace " + localPathname);
String fileName = localPathname.replaceAll(FITScutpath + "/", ""); String fileName = localPathname.replaceAll(FITScutpath + "/", "");
LOGGER.info("local filename: " + fileName); //LOGGER.info("local filename: " + fileName);
String remotefname = FITSRemoteUrlCutouts + "/" + fileName; String remotefname = FITSRemoteUrlCutouts + "/" + fileName;
LOGGER.info("remote url : " + remotefname); //LOGGER.info("remote url : " + remotefname);
return remotefname; return remotefname;
} }
...@@ -170,12 +171,13 @@ public class UWSMergeWork extends JobThread ...@@ -170,12 +171,13 @@ public class UWSMergeWork extends JobThread
return pubdidList.toArray(pubdidArr); return pubdidList.toArray(pubdidArr);
} }
private Map<SodaParam, String[]> collectSodaParams(UWSJob job) private Map<String, String[]> collectSodaParams(UWSJob job)
{ {
Map<SodaParam, String[]> params = new HashMap<SodaParam, String[]>(); Map<String, String[]> params = new HashMap<String, String[]>();
for(SodaParam paramToken : SodaParam.values()) String[] paraTokens = {"POS", "BAND", "TIME", "POL", "PIXELS"};
for(String paramToken : paraTokens)
{ {
String[] paramValue = (String[])job.getAdditionalParameterValue(paramToken.toString()); String[] paramValue = (String[])job.getAdditionalParameterValue(paramToken);
params.put(paramToken, paramValue); params.put(paramToken, paramValue);
} }
return params; return params;
......
...@@ -11,7 +11,7 @@ public final class XmlSerializer ...@@ -11,7 +11,7 @@ public final class XmlSerializer
private XmlSerializer() {} // disables instatiation private XmlSerializer() {} // disables instatiation
public static void serializeToLegacyCutResults(PrintWriter writer, String charEncoding, DataLink dataLink, /* public static void serializeToLegacyCutResults(PrintWriter writer, String charEncoding, DataLink dataLink,
boolean showDuration, long startTime_msec) boolean showDuration, long startTime_msec)
{ {
LOGGER.info("trace"); LOGGER.info("trace");
...@@ -40,7 +40,7 @@ public final class XmlSerializer ...@@ -40,7 +40,7 @@ public final class XmlSerializer
writer.println("</results>"); writer.println("</results>");
} }
*/
public static void serializeToLegacyCutResult(PrintWriter writer, String charEncoding, public static void serializeToLegacyCutResult(PrintWriter writer, String charEncoding,
CutResult cutResult, String accessUrl, CutResult cutResult, String accessUrl,
...@@ -82,6 +82,60 @@ public final class XmlSerializer ...@@ -82,6 +82,60 @@ public final class XmlSerializer
} }
public static void serializeToLegacyCutResult(PrintWriter writer, String charEncoding,
MCutResult result, String accessUrl,
//String id, Pos pos, Band band, Time time, Pol pol, String pixels, boolean countNullValues,
boolean showDuration, long startTime_msec)
{
LOGGER.info("trace serialize for accessUrl: " + ((accessUrl==null)? "null":accessUrl));
writer.println("<?xml version=\"1.0\" encoding=\"" + charEncoding + "\" standalone=\"yes\"?>");
writer.println("<results>");
writer.println("<description> SODA mcutout </description>");
//Coord coord = new Coord(pos, band, time, pol, pixels);// pixels-input
//Inputs inputs = new Inputs(id, null, false);//countNullValues);
//serialize(writer, inputs);
// pixels-output
// if(cutResult.pixels != null)
// writer.println("<CUT> " + result.pixels + " </CUT>");
if(accessUrl != null)
{
writer.println("<URL> " + accessUrl + " </URL>");
writer.println("<cutoutSize> " + result.fileSize + " </cutoutSize>");
}
if(result.cutResArr != null)
{
writer.println("<URL_CONTENT> ");
for(MCutResult.Cut cut : result.cutResArr)
{
writer.println("<ITEM>");
writer.println("<INDEX> " + cut.index + " </INDEX>");
writer.println("<CONTENT_CODE> " + cut.contentType.toString() + " </CONTENT_CODE>");
writer.println("<CONTENT> " + cut.content + " </CONTENT>");
writer.println("</ITEM>");
}
writer.println("</URL_CONTENT>");
}
// if(cutResult.nullValueCount != null)
// writer.println(serialize(cutResult.nullValueCount ));
writer.println("<msg> " + Version.asString + " </msg>");
// writer.println("<DatacubeCount> " + result.cuts.length + " </DatacubeCount>");
if(showDuration)
writer.println("<duration unit=\"msec\">"+(System.currentTimeMillis() - startTime_msec)+"</duration>");
writer.println("</results>");
}
public static String serialize(NullValueCount nullVals) public static String serialize(NullValueCount nullVals)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment