Commit dcf31f94 authored by duminil's avatar duminil
Browse files

Removing hard coded usernames.

parent 405be881
......@@ -32,11 +32,12 @@ public class ExportJobFromJavaFXRegionChooser implements JobStatusListener
public void processJob(Geometry poly, String productName, JSObject novaFactoryOpenLayer) throws InterruptedException {
this.novaFactoryOpenLayer = novaFactoryOpenLayer;
ExportJobDescription description = ExportJobDescription.getDefaultDescriptor();
description.setInitiator("2758");
description.setAccount("Bruse");
description.setInitiator(String.valueOf((int) (Math.random() * 9999)));
String userName = System.getProperty("user.name");
description.setAccount(userName);
// description.setProduct("WU3");
description.setProduct(productName);
description.setJobnumber("Bruse_0815");
description.setJobnumber(userName);
//FIXME: Zipped GMLs coming from nF don't have any defined srsName
......@@ -88,7 +89,7 @@ public void jobStatusChanged(JobStatusEvent event) {
try {
File file = job.getResult();
novaFactoryOpenLayer.call("updateStatus", "DOWNLOADED AS ZIP");
novaFactoryOpenLayer.call("selectSaveFile", file.toString());
// novaFactoryOpenLayer.call("selectSaveFile", file.toString());
// System.out.println("CityGML at " + file.getAbsolutePath());
//TODO: Call downloadFinished if FAILED
novaFactoryOpenLayer.call("downloadFinished");
......
......@@ -12,7 +12,6 @@
import java.util.Objects;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
......@@ -22,30 +21,30 @@
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.osgeo.proj4j.BasicCoordinateTransform;
import org.osgeo.proj4j.CRSFactory;
import org.osgeo.proj4j.CoordinateReferenceSystem;
import org.osgeo.proj4j.ProjCoordinate;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import eu.simstadt.nf4j.InvalidJobDescriptorException;
/**
* Builds nF import and export jobs using nF's XML job format. Please read the nF manual if you want more
* details about the numerous job attributes listed below.
*
* Builds nF import and export jobs using nF's XML job format. Please read the nF manual if you want more details about
* the numerous job attributes listed below.
*
* @author Marcel Bruse
*/
public class JobFileBuilderImpl implements JobFileBuilder<ImportJobDescription, ExportJobDescription> {
public class JobFileBuilderImpl implements JobFileBuilder<ImportJobDescription, ExportJobDescription>
{
/** Supported version of the novaFACTORY. */
public static final String NOVA_FACTORY_VERSION = "6.3.1.1";
/** The version of the XML export job format. */
public static final String EXPORT_JOB_VERSION = "1.0.0";
/**
* @return Returns the supported novaFACTORY version.
*/
......@@ -69,14 +68,14 @@ public String supportsExportJobVersion() {
public String supportsImportJobVersion() {
return null;
}
/**
* This is an intermediate prototype.
*
* @param jobDescriptor A job descriptor which describes the export job with all its attributes according to
* a valid nF export job DTD.
* @param jobDescriptor A job descriptor which describes the export job with all its attributes according to a valid
* nF export job DTD.
* @return Returns a string representation of the nF export job.
* @throws FailedJobTransmissionException
* @throws FailedJobTransmissionException
*/
@Override
public File buildExportJobFile(ExportJobDescription jobDescriptor) throws InvalidJobDescriptorException {
......@@ -85,31 +84,31 @@ public File buildExportJobFile(ExportJobDescription jobDescriptor) throws Invali
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();
Element root = doc.createElement("EXPORT_JOB");
root.setAttribute("version", supportsExportJobVersion());
doc.appendChild(root);
Element job = doc.createElement("job");
root.appendChild(job);
Element initiator = doc.createElement("initiator");
initiator.appendChild(doc.createTextNode(jobDescriptor.getInitiator()));
job.appendChild(initiator);
Element jobnumber = doc.createElement("jobnumber");
jobnumber.appendChild(doc.createTextNode(jobDescriptor.getJobnumber()));
job.appendChild(jobnumber);
Element account = doc.createElement("account");
account.appendChild(doc.createTextNode("Habib"));
account.appendChild(doc.createTextNode(System.getProperty("user.name")));
job.appendChild(account);
Element product = doc.createElement("product");
product.appendChild(doc.createTextNode(jobDescriptor.getProduct()));
root.appendChild(product);
Element layers = doc.createElement("layers");
layers.setAttribute("color", jobDescriptor.getColor());
layers.setAttribute("mono", jobDescriptor.getMono());
......@@ -117,17 +116,17 @@ public File buildExportJobFile(ExportJobDescription jobDescriptor) throws Invali
layers.setAttribute("plotframe", jobDescriptor.getPlotframe());
layers.setAttribute("single", jobDescriptor.getSingle());
root.appendChild(layers);
appendLayers(doc, layers, jobDescriptor.getLayerList());
Element srs = doc.createElement("srs");
srs.appendChild(doc.createTextNode(jobDescriptor.getSrs()));
root.appendChild(srs);
Element extent = doc.createElement("extent");
extent.setAttribute("merge_mapsheets", jobDescriptor.getMergeMapsheets());
root.appendChild(extent);
if (!jobDescriptor.getUnitList().isEmpty()) {
extent.setAttribute("tile1asgn", jobDescriptor.getTile1asgn());
for (Unit unit : jobDescriptor.getUnitList()) {
......@@ -137,23 +136,23 @@ public File buildExportJobFile(ExportJobDescription jobDescriptor) throws Invali
unitElement.setAttribute("select_mapsheets", unit.getSelectMapsheets());
unitElement.setAttribute("subdivision", unit.getSubdivision());
unitElement.appendChild(doc.createTextNode(unit.getValue()));
extent.appendChild(unitElement);
extent.appendChild(unitElement);
}
} else {
Element polygon = createRegionPolygonElement(doc, jobDescriptor.regionPolygon);
extent.appendChild(polygon);
extent.appendChild(polygon);
}
Element resolution = doc.createElement("resolution");
resolution.appendChild(doc.createTextNode(jobDescriptor.getResolution()));
root.appendChild(resolution);
Element scale = doc.createElement("scale");
scale.appendChild(doc.createTextNode(jobDescriptor.getScale()));
root.appendChild(scale);
Element format = doc.createElement("format");
format.setAttribute("alphalinscale", "0.0");
format.setAttribute("alphascale", "1.0");
format.setAttribute("citygml_actfunc", "undef");
......@@ -178,52 +177,52 @@ public File buildExportJobFile(ExportJobDescription jobDescriptor) throws Invali
format.setAttribute("xyz", "false");
format.appendChild(doc.createTextNode("CityGML"));
root.appendChild(format);
Element exportmetadata = doc.createElement("exportmetadata");
exportmetadata.setAttribute("calibration", jobDescriptor.getCalibration());
exportmetadata.setAttribute("xmetadata", jobDescriptor.getXmetadata());
exportmetadata.appendChild(doc.createTextNode(jobDescriptor.getExportmetadata()));
root.appendChild(exportmetadata);
Element addfile = doc.createElement("addfile");
addfile.setAttribute("col", jobDescriptor.getCol());
addfile.setAttribute("eck", jobDescriptor.getEck());
root.appendChild(addfile);
Element usenodatamask = doc.createElement("usenodatamask");
usenodatamask.appendChild(doc.createTextNode(jobDescriptor.getUsenodatamask()));
root.appendChild(usenodatamask);
Element usepdctborderpoly = doc.createElement("usepdctborderpoly");
usepdctborderpoly.appendChild(doc.createTextNode(jobDescriptor.getUsepdctborderpoly()));
root.appendChild(usepdctborderpoly);
Element dhkresolvereferences = doc.createElement("dhkresolvereferences");
dhkresolvereferences.appendChild(doc.createTextNode(jobDescriptor.getDhkresolvereferences()));
root.appendChild(dhkresolvereferences);
Element zipresult = doc.createElement("zipresult");
zipresult.appendChild(doc.createTextNode(jobDescriptor.getZipresult()));
root.appendChild(zipresult);
Element userdescription = doc.createElement("userdescription");
root.appendChild(userdescription);
Element namingpattern = doc.createElement("namingpattern");
root.appendChild(namingpattern);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
StringWriter writer = new StringWriter();
StreamResult streamResult = new StreamResult(writer);
transformer.transform(new DOMSource(doc), streamResult);
File tempfile = File.createTempFile(jobDescriptor.getProduct() + "_", ".xml");
PrintWriter printWriter = new PrintWriter(tempfile);
printWriter.print(writer.toString());
printWriter.close();
return tempfile;
} catch (ParserConfigurationException ex) {
// TODO Auto-generated catch block
......@@ -246,7 +245,7 @@ public File buildExportJobFile(ExportJobDescription jobDescriptor) throws Invali
}
return result;
}
/**
* Appends layers to the XML job document.
*
......@@ -261,24 +260,24 @@ private void appendLayers(Document doc, Element layers,
layerElement.setAttribute("name", layer.getName());
String product = layer.getProduct();
if (Objects.nonNull(product) && !product.isEmpty()) {
layerElement.setAttribute("product", product);
layerElement.setAttribute("product", product);
}
String style = layer.getStyle();
if (Objects.nonNull(style) && !style.isEmpty()) {
layerElement.setAttribute("style", style);
layerElement.setAttribute("style", style);
}
layers.appendChild(layerElement);
layers.appendChild(layerElement);
}
}
/**
* Transforms a global WGS 84 position into a coordinate of the given target SRS.
*
*
* @param wgs84Position The WGS 84 position to be transformed to a position within the target SRS.
* @param targetCRS The target SRS for the transformation.
* @return The transformed target position within the target SRS.
*/
public static ProjCoordinate transformCoordinate(ProjCoordinate wgs84Position,
public static ProjCoordinate transformCoordinate(ProjCoordinate wgs84Position,
CoordinateReferenceSystem targetCRS) {
ProjCoordinate result = new ProjCoordinate();
CRSFactory f = new CRSFactory();
......@@ -287,10 +286,10 @@ public static ProjCoordinate transformCoordinate(ProjCoordinate wgs84Position,
transform.transform(wgs84Position, result);
return result;
}
/**
* Appends the region polygon to the XML export job document. In order to do this, the given WGS 84 region
* polygon will be transformed into a DHDN Gauss-Kruger zone 3 polygon.
* Appends the region polygon to the XML export job document. In order to do this, the given WGS 84 region polygon
* will be transformed into a DHDN Gauss-Kruger zone 3 polygon.
*
* @param doc The XML export job document.
* @param regionPolygon The polygon of the region which has been selected to be exported.
......@@ -315,22 +314,22 @@ private static Element createRegionPolygonElement(Document doc, List<Coord> regi
/**
* Builds a zipped import job file. This file can be sent to a nF server instance by the caller afterwards.
*
* @param jobDescriptor A job descriptor which describes the import job with all its attributes according to
* a valid nF import job DTD.
* @param jobDescriptor A job descriptor which describes the import job with all its attributes according to a valid
* nF import job DTD.
* @return Returns a XML import job document.
*/
@Override
public File buildImportJobFile(ImportJobDescription jobDescriptor)
public File buildImportJobFile(ImportJobDescription jobDescriptor)
throws InvalidJobDescriptorException {
if (Objects.nonNull(jobDescriptor) && jobDescriptor.isValid()) {
try {
// Write the nF start file which triggers and controls the processing of the CityGML file.
String startFilename = jobDescriptor.getProduct() + "_" + jobDescriptor.getLeaf() + ".start";
String startFilename = jobDescriptor.getProduct() + "_" + jobDescriptor.getLeaf() + ".start";
File startfile = new File(System.getProperty("java.io.tmpdir"), startFilename);
PrintWriter writer = new PrintWriter(startfile);
writer.print(jobDescriptor.getLevel());
writer.close();
// Zip start file, CityGML file and ADE schemata
File zippedCityGMLFile = File.createTempFile("nF_Import_", ".zip");
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zippedCityGMLFile));
......@@ -344,10 +343,10 @@ public File buildImportJobFile(ImportJobDescription jobDescriptor)
writeBytesToZipFile(new FileInputStream(cityGMLFile), zos, zipFileName);
writeBytesToZipFile(new FileInputStream(startfile), zos, startFilename);
for (File adeSchemaFile : jobDescriptor.getADESchemaFileList()) {
writeBytesToZipFile(new FileInputStream(adeSchemaFile), zos, adeSchemaFile.getName());
writeBytesToZipFile(new FileInputStream(adeSchemaFile), zos, adeSchemaFile.getName());
}
zos.close();
return zippedCityGMLFile;
} catch (FileNotFoundException ex) {
// TODO Auto-generated catch block
......@@ -361,16 +360,16 @@ public File buildImportJobFile(ImportJobDescription jobDescriptor)
}
return null;
}
/**
* Writes a file to the given ZipOutputStream which compresses the file.
*
*
* @param fis The file input stream to be compressed.
* @param zos The zip output stream.
* @param zos The zip output stream.
* @param zipEntry The new zip entry for the file to be compressed.
* @throws IOException You will get some of this, if your streams point to nirvana.
*/
private void writeBytesToZipFile(FileInputStream fis, ZipOutputStream zos, String zipEntry)
private void writeBytesToZipFile(FileInputStream fis, ZipOutputStream zos, String zipEntry)
throws IOException {
zos.putNextEntry(new ZipEntry(zipEntry));
byte[] b = new byte[1024];
......
......@@ -30,10 +30,11 @@ public class SuccessfulExportJob implements JobStatusListener
@Test
public void processJob() throws InterruptedException {
ExportJobDescription description = ExportJobDescription.getDefaultDescriptor();
description.setInitiator("2758");
description.setAccount("Bruse");
description.setInitiator(String.valueOf((int) (Math.random() * 9999)));
String userName = System.getProperty("user.name");
description.setAccount(userName);
description.setProduct("WU3");
description.setJobnumber("Bruse_0815");
description.setJobnumber(userName);
//FIXME: Zipped GMLs coming from nF don't have any defined srsName
//FIXME: Save files somewhere else
......@@ -140,7 +141,7 @@ public void jobStatusChanged(JobStatusEvent event) {
try {
File file = job.getResult();
assertTrue(file.canRead());
// System.out.println("CityGML at " + file.getAbsolutePath());
// System.out.println("CityGML at " + file.getAbsolutePath());
} catch (FailedTransmissionException ex) {
ex.printStackTrace();
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment