Author: bfoster
Date: Thu Jun 21 20:59:09 2012
New Revision: 1352682
URL: http://svn.apache.org/viewvc?rev=1352682&view=rev
Log:
Change SciPgeConfigFileWriter to DynamicConfigFileWriter
-----------------
OODT-467
Added:
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/DynamicConfigFileWriter.java
(with props)
oodt/trunk/pge/src/test/org/apache/oodt/cas/pge/writers/MockDynamicConfigFileWriter.java
(with props)
Removed:
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/SciPgeConfigFileWriter.java
oodt/trunk/pge/src/test/org/apache/oodt/cas/pge/writers/MockSciPgeConfigFileWriter.java
Modified:
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/PGETaskInstance.java
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/util/GenericPgeObjectFactory.java
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/CsvConfigFileWriter.java
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/TextConfigFileWriter.java
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/XslTransformWriter.java
oodt/trunk/pge/src/test/org/apache/oodt/cas/pge/TestPGETaskInstance.java
Modified:
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/PGETaskInstance.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/PGETaskInstance.java?rev=1352682&r1=1352681&r2=1352682&view=diff
==============================================================================
--- oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/PGETaskInstance.java
(original)
+++ oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/PGETaskInstance.java
Thu Jun 21 20:59:09 2012
@@ -40,7 +40,7 @@ import static org.apache.oodt.cas.pge.me
import static
org.apache.oodt.cas.pge.util.GenericPgeObjectFactory.createConfigFilePropertyAdder;
import static
org.apache.oodt.cas.pge.util.GenericPgeObjectFactory.createFileStager;
import static
org.apache.oodt.cas.pge.util.GenericPgeObjectFactory.createPgeConfigBuilder;
-import static
org.apache.oodt.cas.pge.util.GenericPgeObjectFactory.createSciPgeConfigFileWriter;
+import static
org.apache.oodt.cas.pge.util.GenericPgeObjectFactory.createDynamicConfigFileWriter;
//JDK imports
import java.io.File;
@@ -71,7 +71,7 @@ import org.apache.oodt.cas.pge.metadata.
import org.apache.oodt.cas.pge.metadata.PgeTaskMetKeys;
import org.apache.oodt.cas.pge.staging.FileManagerFileStager;
import org.apache.oodt.cas.pge.staging.FileStager;
-import org.apache.oodt.cas.pge.writers.SciPgeConfigFileWriter;
+import org.apache.oodt.cas.pge.writers.DynamicConfigFileWriter;
import org.apache.oodt.cas.workflow.metadata.CoreMetKeys;
import org.apache.oodt.cas.workflow.structs.WorkflowTaskConfiguration;
import org.apache.oodt.cas.workflow.structs.WorkflowTaskInstance;
@@ -91,7 +91,7 @@ import com.google.common.collect.Lists;
/**
* Runs a CAS-style Product Generation Executive based on the PCS Wrapper
* Architecture from mattmann et al. on OCO.
- *
+ *
* @author mattmann (Chris Mattmann)
* @author bfoster (Brian Foster)
*/
@@ -105,6 +105,7 @@ public class PGETaskInstance implements
protected PGETaskInstance() {}
+ @Override
public void run(Metadata metadata, WorkflowTaskConfiguration config)
throws WorkflowTaskInstanceException {
try {
@@ -123,7 +124,7 @@ public class PGETaskInstance implements
createExeDir();
createOuputDirsIfRequested();
updateStatus(CONF_FILE_BUILD.getWorkflowStatusName());
- createSciPgeConfigFiles();
+ createDynamicConfigFiles();
stageFiles();
// Run the PGE.
@@ -274,7 +275,7 @@ public class PGETaskInstance implements
new SerializableMetadata(pgeMetadata.asMetadata())
.writeMetadataToXmlStream(new FileOutputStream(
getDumpMetadataPath()));
- }
+ }
}
protected String getDumpMetadataPath() throws Exception {
@@ -333,41 +334,41 @@ public class PGETaskInstance implements
}
}
- protected void createSciPgeConfigFiles() throws Exception {
- logger.info("Starting creation of science PGE files...");
+ protected void createDynamicConfigFiles() throws Exception {
+ logger.info("Starting creation of dynamic config files...");
for (DynamicConfigFile dynamicConfigFile : pgeConfig
.getDynamicConfigFiles()) {
- createSciPgeConfigFile(dynamicConfigFile);
+ createDynamicConfigFile(dynamicConfigFile);
}
- logger.info("Successfully wrote all science PGE files!");
+ logger.info("Successfully wrote all dynamic config files!");
}
- protected void createSciPgeConfigFile(DynamicConfigFile dynamicConfigFile)
+ protected void createDynamicConfigFile(DynamicConfigFile dynamicConfigFile)
throws Exception {
Validate.notNull(dynamicConfigFile, "dynamicConfigFile cannot be null");
- logger.fine("Starting creation of science PGE file ["
+ logger.fine("Starting creation of dynamic config file ["
+ dynamicConfigFile.getFilePath() + "]...");
// Create parent directory if it doesn't exist.
File parentDir = new File(dynamicConfigFile.getFilePath())
.getParentFile();
if (!(parentDir.exists() || parentDir.mkdirs())) {
- throw new Exception("Failed to create directory where science PGE
file ["
+ throw new Exception("Failed to create directory where dynamic config
file ["
+ dynamicConfigFile.getFilePath() + "] was to be written");
}
// Load writer and write file.
- logger.fine("Loading writer class for science PGE file ["
+ logger.fine("Loading writer class for dynamic config file ["
+ dynamicConfigFile.getFilePath() + "]...");
- SciPgeConfigFileWriter writer = createSciPgeConfigFileWriter(
+ DynamicConfigFileWriter writer = createDynamicConfigFileWriter(
dynamicConfigFile.getWriterClass(), logger);
logger.fine("Loaded writer [" + writer.getClass().getCanonicalName()
- + "] for science PGE file [" + dynamicConfigFile.getFilePath()
+ + "] for dynamic config file [" + dynamicConfigFile.getFilePath()
+ "]...");
- logger.info("Writing science PGE file [" +
dynamicConfigFile.getFilePath()
+ logger.info("Writing dynamic config file [" +
dynamicConfigFile.getFilePath()
+ "]...");
- File configFile =
writer.createConfigFile(dynamicConfigFile.getFilePath(),
- pgeMetadata.asMetadata(), dynamicConfigFile.getArgs());
+ File configFile = writer.generateFile(dynamicConfigFile.getFilePath(),
+ pgeMetadata.asMetadata(), logger, dynamicConfigFile.getArgs());
if (!configFile.exists()) {
throw new Exception("Writer failed to create config file ["
+ configFile + "], exists returned false");
Modified:
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/util/GenericPgeObjectFactory.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/util/GenericPgeObjectFactory.java?rev=1352682&r1=1352681&r2=1352682&view=diff
==============================================================================
---
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/util/GenericPgeObjectFactory.java
(original)
+++
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/util/GenericPgeObjectFactory.java
Thu Jun 21 20:59:09 2012
@@ -25,7 +25,7 @@ import org.apache.oodt.cas.pge.ConfigFil
import org.apache.oodt.cas.pge.PGETaskInstance;
import org.apache.oodt.cas.pge.config.PgeConfigBuilder;
import org.apache.oodt.cas.pge.staging.FileStager;
-import org.apache.oodt.cas.pge.writers.SciPgeConfigFileWriter;
+import org.apache.oodt.cas.pge.writers.DynamicConfigFileWriter;
/**
* Factory for creating {@link Object}s.
@@ -80,12 +80,12 @@ public class GenericPgeObjectFactory {
}
}
- public static SciPgeConfigFileWriter createSciPgeConfigFileWriter(
+ public static DynamicConfigFileWriter createDynamicConfigFileWriter(
String clazz, Logger logger) {
try {
- return (SciPgeConfigFileWriter) Class.forName(clazz).newInstance();
+ return (DynamicConfigFileWriter) Class.forName(clazz).newInstance();
} catch (Exception e) {
- logger.log(Level.SEVERE, "Failed to create SciPgeConfigFileWriter ["
+ logger.log(Level.SEVERE, "Failed to create DynamicConfigFileWriter ["
+ clazz + "] : " + e.getMessage(), e);
return null;
}
Modified:
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/CsvConfigFileWriter.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/CsvConfigFileWriter.java?rev=1352682&r1=1352681&r2=1352682&view=diff
==============================================================================
---
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/CsvConfigFileWriter.java
(original)
+++
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/CsvConfigFileWriter.java
Thu Jun 21 20:59:09 2012
@@ -26,6 +26,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.List;
+import java.util.logging.Logger;
//Google imports
import com.google.common.annotations.VisibleForTesting;
@@ -64,7 +65,7 @@ import org.apache.oodt.cas.metadata.Meta
*
* @author bfoster (Brian Foster)
*/
-public class CsvConfigFileWriter implements SciPgeConfigFileWriter {
+public class CsvConfigFileWriter implements DynamicConfigFileWriter {
private static final int HEADER_INDEX = 0;
private static final int DELIM_INDEX = 0;
@@ -72,8 +73,8 @@ public class CsvConfigFileWriter impleme
private static final String DEFAULT_DELIM = ",";
@Override
- public File createConfigFile(String sciPgeConfigFilePath,
- Metadata inputMetadata, Object... customArgs) throws IOException {
+ public File generateFile(String filePath, Metadata metadata, Logger logger,
+ Object... customArgs) throws Exception {
checkArgument(customArgs.length > 0,
CsvConfigFileWriter.class.getCanonicalName()
+ " has no args specified");
@@ -86,8 +87,8 @@ public class CsvConfigFileWriter impleme
delim = (String) customArgs[DELIM_INDEX];
}
- return writeCsvFile(sciPgeConfigFilePath, header,
- generateRows(header, inputMetadata), delim);
+ return writeCsvFile(filePath, header, generateRows(header, metadata),
+ delim);
}
@VisibleForTesting
Added:
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/DynamicConfigFileWriter.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/DynamicConfigFileWriter.java?rev=1352682&view=auto
==============================================================================
---
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/DynamicConfigFileWriter.java
(added)
+++
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/DynamicConfigFileWriter.java
Thu Jun 21 20:59:09 2012
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.oodt.cas.pge.writers;
+
+//JDK imports
+import java.io.File;
+import java.util.logging.Logger;
+
+//OODT imports
+import org.apache.oodt.cas.metadata.Metadata;
+
+/**
+ * Abstract interface for generating PGE config input files defining the input
+ * necessary to run the underlying PGE.
+ *
+ * @author bfoster (Brian Foster)
+ */
+public interface DynamicConfigFileWriter {
+
+ public File generateFile(String filePath, Metadata metadata, Logger logger,
+ Object... args) throws Exception;
+}
Propchange:
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/DynamicConfigFileWriter.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/TextConfigFileWriter.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/TextConfigFileWriter.java?rev=1352682&r1=1352681&r2=1352682&view=diff
==============================================================================
---
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/TextConfigFileWriter.java
(original)
+++
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/TextConfigFileWriter.java
Thu Jun 21 20:59:09 2012
@@ -28,6 +28,7 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
+import java.util.logging.Logger;
//Google imports
import com.google.common.annotations.VisibleForTesting;
@@ -41,13 +42,13 @@ import org.apache.oodt.cas.metadata.Meta
*
* @author bfoster (Brian Foster)
*/
-public class TextConfigFileWriter implements SciPgeConfigFileWriter {
+public class TextConfigFileWriter implements DynamicConfigFileWriter {
private static final int TEMPLATE_INDEX = 0;
@Override
- public File createConfigFile(String sciPgeConfigFilePath,
- Metadata inputMetadata, Object... customArgs) throws IOException {
+ public File generateFile(String filePath, Metadata metadata, Logger logger,
+ Object... customArgs) throws Exception {
checkArgument(customArgs.length > 0,
TextConfigFileWriter.class.getCanonicalName()
+ " has no args specified");
@@ -56,7 +57,7 @@ public class TextConfigFileWriter implem
+ TEMPLATE_INDEX + "'");
try {
- return writeTextFile(sciPgeConfigFilePath, fillIn(template,
inputMetadata));
+ return writeTextFile(filePath, fillIn(template, metadata));
} catch (Exception e) {
throw new IOException(e);
}
Modified:
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/XslTransformWriter.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/XslTransformWriter.java?rev=1352682&r1=1352681&r2=1352682&view=diff
==============================================================================
---
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/XslTransformWriter.java
(original)
+++
oodt/trunk/pge/src/main/java/org/apache/oodt/cas/pge/writers/XslTransformWriter.java
Thu Jun 21 20:59:09 2012
@@ -17,8 +17,11 @@
package org.apache.oodt.cas.pge.writers;
//JDK imports
+import static java.lang.Boolean.parseBoolean;
+
+//JDK imports
import java.io.File;
-import java.io.IOException;
+import java.util.logging.Logger;
//JavaX imports.
import javax.xml.transform.OutputKeys;
@@ -40,34 +43,27 @@ import org.apache.oodt.cas.metadata.Seri
*
* @author bfoster (Brian Foster)
*/
-public class XslTransformWriter implements SciPgeConfigFileWriter {
+public class XslTransformWriter implements DynamicConfigFileWriter {
@Override
- public File createConfigFile(String sciPgeConfigFilePath,
- Metadata inputMetadata, Object... customArgs) throws IOException {
- try {
- File sciPgeConfigFile = new File(sciPgeConfigFilePath);
-
- String xsltFilePath = (String) customArgs[0];
- Source xsltSource = new StreamSource(new File(xsltFilePath));
- Result result = new StreamResult(sciPgeConfigFile);
-
- TransformerFactory transFact = TransformerFactory.newInstance();
- Transformer trans = transFact.newTransformer(xsltSource);
- boolean useCDATA = customArgs.length > 1 ? ((String) customArgs[1])
- .toLowerCase().equals("true") : false;
- Source xmlSource = new DOMSource((new SerializableMetadata(
- inputMetadata, trans.getOutputProperty(OutputKeys.ENCODING),
- useCDATA)).toXML());
-
- trans.setOutputProperty(OutputKeys.INDENT, "yes");
- trans.transform(xmlSource, result);
-
- return sciPgeConfigFile;
- } catch (Exception e) {
- e.printStackTrace();
- throw new IOException("Failed to create science PGE config file '"
- + sciPgeConfigFilePath + "' : " + e.getMessage());
- }
+ public File generateFile(String filePath, Metadata metadata, Logger logger,
+ Object... args) throws Exception {
+ File file = new File(filePath);
+
+ String xsltFilePath = (String) args[0];
+ Source xsltSource = new StreamSource(new File(xsltFilePath));
+ Result result = new StreamResult(file);
+
+ TransformerFactory transFact = TransformerFactory.newInstance();
+ Transformer trans = transFact.newTransformer(xsltSource);
+ boolean useCDATA = args.length > 1 ? parseBoolean((String) args[1])
+ : false;
+ Source xmlSource = new DOMSource((new SerializableMetadata(metadata,
+ trans.getOutputProperty(OutputKeys.ENCODING), useCDATA)).toXML());
+
+ trans.setOutputProperty(OutputKeys.INDENT, "yes");
+ trans.transform(xmlSource, result);
+
+ return file;
}
}
Modified:
oodt/trunk/pge/src/test/org/apache/oodt/cas/pge/TestPGETaskInstance.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/pge/src/test/org/apache/oodt/cas/pge/TestPGETaskInstance.java?rev=1352682&r1=1352681&r2=1352682&view=diff
==============================================================================
--- oodt/trunk/pge/src/test/org/apache/oodt/cas/pge/TestPGETaskInstance.java
(original)
+++ oodt/trunk/pge/src/test/org/apache/oodt/cas/pge/TestPGETaskInstance.java
Thu Jun 21 20:59:09 2012
@@ -71,7 +71,7 @@ import org.apache.oodt.cas.pge.config.Pg
import org.apache.oodt.cas.pge.metadata.PgeMetadata;
import org.apache.oodt.cas.pge.metadata.PgeTaskMetKeys;
import org.apache.oodt.cas.pge.metadata.PgeTaskStatus;
-import org.apache.oodt.cas.pge.writers.MockSciPgeConfigFileWriter;
+import org.apache.oodt.cas.pge.writers.MockDynamicConfigFileWriter;
import org.apache.oodt.cas.workflow.metadata.CoreMetKeys;
import org.apache.oodt.cas.workflow.structs.WorkflowTaskConfiguration;
import org.apache.oodt.cas.workflow.system.XmlRpcWorkflowManagerClient;
@@ -312,17 +312,17 @@ public class TestPGETaskInstance extends
assertFalse(outputDir3.exists());
}
- public void testCreateSciPgeConfigFile() throws Exception {
+ public void testCreateDynamicConfigFile() throws Exception {
File tmpDir = createTmpDir();
FileUtils.forceDelete(tmpDir);
assertFalse(tmpDir.exists());
PGETaskInstance pgeTask = createTestInstance();
- File sciPgeConfigFile = new File(tmpDir, "SciPgeConfig.xml");
- assertFalse(sciPgeConfigFile.exists());
- pgeTask.createSciPgeConfigFile(new
DynamicConfigFile(sciPgeConfigFile.getAbsolutePath(),
- MockSciPgeConfigFileWriter.class.getCanonicalName(),
+ File dynamicConfigFile = new File(tmpDir, "DynamicConfig.xml");
+ assertFalse(dynamicConfigFile.exists());
+ pgeTask.createDynamicConfigFile(new
DynamicConfigFile(dynamicConfigFile.getAbsolutePath(),
+ MockDynamicConfigFileWriter.class.getCanonicalName(),
new Object[] {}));
- assertTrue(sciPgeConfigFile.exists());
+ assertTrue(dynamicConfigFile.exists());
}
public void testDumpMetadataIfRequested() throws Exception {
Added:
oodt/trunk/pge/src/test/org/apache/oodt/cas/pge/writers/MockDynamicConfigFileWriter.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/pge/src/test/org/apache/oodt/cas/pge/writers/MockDynamicConfigFileWriter.java?rev=1352682&view=auto
==============================================================================
---
oodt/trunk/pge/src/test/org/apache/oodt/cas/pge/writers/MockDynamicConfigFileWriter.java
(added)
+++
oodt/trunk/pge/src/test/org/apache/oodt/cas/pge/writers/MockDynamicConfigFileWriter.java
Thu Jun 21 20:59:09 2012
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.oodt.cas.pge.writers;
+
+//JDK imports
+import java.io.File;
+import java.io.IOException;
+import java.util.logging.Logger;
+
+//Apache imports
+import org.apache.commons.io.FileUtils;
+
+//OODT imports
+import org.apache.oodt.cas.metadata.Metadata;
+
+/**
+ * Mock implementation of {@link DynamicConfigFileWriter}.
+ *
+ * @author bfoster (Brian Foster)
+ */
+public class MockDynamicConfigFileWriter implements DynamicConfigFileWriter {
+
+ @Override
+ public File generateFile(String filePath, Metadata metadata, Logger logger,
+ Object... customArgs) throws IOException {
+ File configFile = new File(filePath);
+ configFile.getParentFile().mkdirs();
+ FileUtils.touch(configFile);
+ return configFile;
+ }
+}
Propchange:
oodt/trunk/pge/src/test/org/apache/oodt/cas/pge/writers/MockDynamicConfigFileWriter.java
------------------------------------------------------------------------------
svn:mime-type = text/plain