@Override
			public void saveTool(PluginTool saveTool) {
				Element toolElement = saveTool.saveToXml(true);
				Element dataStateElement = saveTool.saveDataStateToXml(false);
				Element rootElement = new Element("Root");
				rootElement.addContent(toolElement);
				rootElement.addContent(dataStateElement);
				File savedToolFile =
					new File(Application.getUserSettingsDirectory(), SAVED_TOOL_FILE);
				OutputStream os = null;
				try {
					os = new FileOutputStream(savedToolFile);
					Document doc = new Document(rootElement);
					XMLOutputter xmlout = new GenericXMLOutputter();
					xmlout.output(doc, os);
					os.close();
				}
				catch (Exception e) {
					Msg.error(this, "Error saving tool", e);
					try {
						if (os != null) {
							os.close();
						}
						savedToolFile.delete();
					}
					catch (Exception exc) {
						// cleanup, don't care
					}
				}

			}
Read {@link ApplicationProperties} from the specified file path relative
to the current working directory.
<p>
<b>The given properties file is expected to have the
{@link ApplicationProperties#APPLICATION_NAME_PROPERTY} and
{@link ApplicationProperties#APPLICATION_VERSION_PROPERTY} properties
set.</b>
@param propertiesFilename the name of the properties file.
@return application properties
@throws IOException if file read error occurs
Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/StandAloneApplication.java