(→AHPSCRIPTS-103)
|
(→AHPSCRIPTS-111)
|
Line 2124: | |||
} | } | ||
}</pre> | }</pre> | ||
+ | = Export Project Configuration to XML Using Beanshell or Remoting Script = | ||
+ | ==== AHPSCRIPTS-9 ==== | ||
+ | <pre>import org.w3c.dom.Document; | ||
+ | import com.urbancode.anthill3.domain.project.Project; | ||
+ | import com.urbancode.anthill3.domain.project.ProjectFactory; | ||
+ | import com.urbancode.anthill3.domain.xml.XMLImporterExporter; | ||
+ | import com.urbancode.commons.xml.DOMUtils; | ||
+ | String PROJECT_NAME = "....."; | ||
+ | Project project = ProjectFactory.getInstance().restoreForName(PROJECT_NAME); | ||
+ | Document doc = XMLImporterExporter.exportXML(project, "project"); | ||
+ | String xmlString = DOMUtils.documentToString(doc);</pre> | ||
+ | * A working case that is based off of having a workflow property entered at run-time which the user can specify a project name to export. Needs thrown in an evaluate step: | ||
+ | <pre>/*------------------------------------------------------*/ | ||
+ | /* Set this script up as an an evaluate script step in */ | ||
+ | /* an operational workflow within an operational */ | ||
+ | /* project. You will then need to set up a property on */ | ||
+ | /* the workflow called 'ProjectName' to pass in the */ | ||
+ | /* project you would like to export. Finally, this */ | ||
+ | /* script's output will be placed in the */ | ||
+ | /* %SERVER_HOME%\bin directory unless otherwise noted */ | ||
+ | /* by setting a working directory */ | ||
+ | /*------------------------------------------------------*/ | ||
+ | import org.w3c.dom.Document; | ||
+ | import com.urbancode.anthill3.runtime.scripting.helpers.*; | ||
+ | import com.urbancode.anthill3.domain.project.Project; | ||
+ | import com.urbancode.anthill3.domain.project.ProjectFactory; | ||
+ | import com.urbancode.anthill3.domain.xml.XMLImporterExporter; | ||
+ | import com.urbancode.commons.xml.DOMUtils; | ||
+ | import java.io.*; | ||
+ | //Set a property on the operational workflow called 'ProjectName' | ||
+ | //so that you can input which project name you want to run this | ||
+ | //script on. Alternatively, you could remove the references to | ||
+ | //a property and just substitute in a string. | ||
+ | String PROJECT_NAME = PropertyLookup.getValue("ProjectName"); | ||
+ | //Restores the property and writes to a string | ||
+ | Project project = ProjectFactory.getInstance().restoreForName(PROJECT_NAME); | ||
+ | Document doc = XMLImporterExporter.exportXML(project, "project"); | ||
+ | String xmlString = DOMUtils.documentToString(doc); | ||
+ | //Writes the xmlString to a file determined by the project name | ||
+ | //and appends '.xml' to the export. | ||
+ | FileWriter outFile = new FileWriter(PathHelper.makeSafe(PropertyLookup.getValue("ProjectName"))+".xml"); | ||
+ | BufferedWriter buffer = new BufferedWriter(outFile); | ||
+ | PrintWriter out = new PrintWriter(buffer); | ||
+ | out.println(xmlString); | ||
+ | out.flush(); | ||
+ | out.close();</pre> | ||
+ | * This should export the dependencies to an XML file. | ||
+ | <pre>/*------------------------------------------------------*/ | ||
+ | /* Set this script up as an an evaluate script step in */ | ||
+ | /* an operational workflow within an operational */ | ||
+ | /* project. You will then need to set up a property on */ | ||
+ | /* the workflow called 'ProjectName' to pass in the */ | ||
+ | /* project you would like to export. Finally, this */ | ||
+ | /* script's output will be placed in the */ | ||
+ | /* %SERVER_HOME%\bin directory unless otherwise noted */ | ||
+ | /* by setting a working directory. This script will */ | ||
+ | /* export the dependency configuration on the current */ | ||
+ | /* project. */ | ||
+ | /*------------------------------------------------------*/ | ||
+ | import org.w3c.dom.Document; | ||
+ | import com.urbancode.anthill3.runtime.scripting.helpers.*; | ||
+ | import com.urbancode.anthill3.domain.project.*; | ||
+ | import com.urbancode.anthill3.domain.xml.XMLImporterExporter; | ||
+ | import com.urbancode.anthill3.domain.xml.*; | ||
+ | import com.urbancode.commons.xml.*; | ||
+ | import com.urbancode.anthill3.domain.profile.*; | ||
+ | import com.urbancode.anthill3.domain.workflow.*; | ||
+ | import java.io.*; | ||
+ | //Set a property on the operational workflow called 'ProjectName' | ||
+ | //so that you can input which project name you want to run this | ||
+ | //script on. Alternatively, you could remove the references to | ||
+ | //a property and just substitute in a string. | ||
+ | String PROJECT_NAME = PropertyLookup.getValue("ProjectName"); | ||
+ | //Restores the property and writes to a string | ||
+ | Project project = ProjectFactory.getInstance().restoreForName(PROJECT_NAME); | ||
+ | Document doc = XMLImporterExporter.exportXML(project, "project"); | ||
+ | String xmlString = DOMUtils.documentToString(doc); | ||
+ | //Writes the xmlString to a file determined by the project name | ||
+ | //and appends '.xml' to the export. | ||
+ | DependencyXml depXml = new DependencyXml(); | ||
+ | String pDep = depXml.exportDependencies(project); | ||
+ | FileWriter outFile = new FileWriter(PathHelper.makeSafe(PropertyLookup.getValue("ProjectName"))+"_dependencies.xml"); | ||
+ | BufferedWriter buffer = new BufferedWriter(outFile); | ||
+ | PrintWriter out = new PrintWriter(buffer); | ||
+ | out.println(pDep); | ||
+ | out.flush(); | ||
+ | out.close();</pre> |