List of usage examples for org.w3c.dom Document getElementsByTagName
public NodeList getElementsByTagName(String tagname);
NodeList
of all the Elements
in document order with a given tag name and are contained in the document. From source file:com.twinsoft.convertigo.beans.CheckBeans.java
public static void main(String[] args) { Engine.logBeans = Logger.getLogger(BeansDoc.class); srcBase = args[0];/*from ww w . ja va 2s. com*/ System.out.println("Loading database objects XML DB in " + srcBase); try { defaultDocumentBuilderFactory = DocumentBuilderFactory.newInstance(); defaultDocumentBuilder = defaultDocumentBuilderFactory.newDocumentBuilder(); dboXmlDeclaredDatabaseObjects = new ArrayList<String>(); Document dboXmlDocument = defaultDocumentBuilder.parse( new FileInputStream(new File(srcBase + "/com/twinsoft/convertigo/beans/database_objects.xml"))); NodeList beanList = dboXmlDocument.getElementsByTagName("bean"); int n = beanList.getLength(); for (int i = 0; i < n; i++) { Element element = (Element) beanList.item(i); dboXmlDeclaredDatabaseObjects.add(element.getAttribute("classname")); } } catch (Exception e) { System.out.println("Error while loading DBO XML DB"); e.printStackTrace(); System.exit(-1); } System.out.println("Browsing sources in " + srcBase); browsePackages(srcBase + "com/twinsoft/convertigo/beans"); System.out.println(); System.out.println("Found " + javaClassNames.size() + " classes"); for (String javaClassName : javaClassNames) { analyzeJavaClass(javaClassName); } for (String icon : icons) { Error.BEAN_ICON_NOT_USED.add(icon); } System.out.println(); for (Error error : Error.values()) { List<String> errorList = errors.get(error); if (errorList == null) continue; int nError = errorList.size(); System.out.println(error + " (" + nError + ")"); for (String errorMessage : errorList) { System.out.println(" " + errorMessage); } System.out.println(); } System.out.println(); System.out.println("======="); System.out.println("Summary"); System.out.println("======="); System.out.println(); System.out.println("Found " + nBeanClass + " bean classes (including abstract classes)"); System.out.println("Found " + nBeanClassNotAbstract + " instantiable bean classes"); System.out.println(); int nTotalError = 0; for (Error error : Error.values()) { List<String> errorList = errors.get(error); int nError = 0; if (errorList != null) nError = errorList.size(); nTotalError += nError; System.out.println(error + ": found " + nError + " error(s)"); } System.out.println(); System.out.println("Found " + nTotalError + " error(s)"); System.out.println(); System.out.println("Beans check finished!"); System.exit(nTotalError); }
From source file:com.adobe.aem.demomachine.gui.AemDemo.java
public static void main(String[] args) { String demoMachineRootFolder = null; // Command line options for this tool Options options = new Options(); options.addOption("f", true, "Path to Demo Machine root folder"); CommandLineParser parser = new BasicParser(); try {//w w w. ja v a 2s .com CommandLine cmd = parser.parse(options, args); if (cmd.hasOption("f")) { demoMachineRootFolder = cmd.getOptionValue("f"); } } catch (ParseException ex) { logger.error(ex.getMessage()); } // Let's grab the version number for the core Maven file String mavenFilePath = (demoMachineRootFolder != null ? demoMachineRootFolder : System.getProperty("user.dir")) + File.separator + "java" + File.separator + "core" + File.separator + "pom.xml"; File mavenFile = new File(mavenFilePath); if (mavenFile.exists() && !mavenFile.isDirectory()) { try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document; document = builder.parse(mavenFile); NodeList list = document.getElementsByTagName("version"); if (list != null && list.getLength() > 0) { aemDemoMachineVersion = list.item(0).getFirstChild().getNodeValue(); } } catch (Exception e) { logger.error("Can't parse Maven pom.xml file"); } } // Let's check if we have a valid build.xml file to work with... String buildFilePath = (demoMachineRootFolder != null ? demoMachineRootFolder : System.getProperty("user.dir")) + File.separator + "build.xml"; logger.debug("Trying to load build file from " + buildFilePath); buildFile = new File(buildFilePath); if (buildFile.exists() && !buildFile.isDirectory()) { // Launching the main window EventQueue.invokeLater(new Runnable() { public void run() { try { UIManager.getLookAndFeelDefaults().put("defaultFont", new Font("Arial", Font.BOLD, 14)); AemDemo window = new AemDemo(); window.frameMain.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } else { logger.error("No valid build.xml file to work with"); System.exit(-1); } }
From source file:ch.kostceco.tools.kostsimy.KOSTSimy.java
/** Die Eingabe besteht aus 2 Parameter: [0] Original-Ordner [1] Replica-Ordner * /* ww w . jav a2 s . c om*/ * @param args * @throws IOException */ public static void main(String[] args) throws IOException { ApplicationContext context = new ClassPathXmlApplicationContext("classpath:config/applicationContext.xml"); // Zeitstempel Start java.util.Date nowStart = new java.util.Date(); java.text.SimpleDateFormat sdfStart = new java.text.SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); String ausgabeStart = sdfStart.format(nowStart); KOSTSimy kostsimy = (KOSTSimy) context.getBean("kostsimy"); File configFile = new File("configuration" + File.separator + "kostsimy.conf.xml"); // Ueberprfung des Parameters (Log-Verzeichnis) String pathToLogfile = kostsimy.getConfigurationService().getPathToLogfile(); File directoryOfLogfile = new File(pathToLogfile); if (!directoryOfLogfile.exists()) { directoryOfLogfile.mkdir(); } // Im Logverzeichnis besteht kein Schreibrecht if (!directoryOfLogfile.canWrite()) { System.out.println( kostsimy.getTextResourceService().getText(ERROR_LOGDIRECTORY_NOTWRITABLE, directoryOfLogfile)); System.exit(1); } if (!directoryOfLogfile.isDirectory()) { System.out.println(kostsimy.getTextResourceService().getText(ERROR_LOGDIRECTORY_NODIRECTORY)); System.exit(1); } // Ist die Anzahl Parameter (2) korrekt? if (args.length > 3) { System.out.println(kostsimy.getTextResourceService().getText(ERROR_PARAMETER_USAGE)); System.exit(1); } File origDir = new File(args[0]); File repDir = new File(args[1]); File logDatei = null; logDatei = origDir; // Informationen zum Arbeitsverzeichnis holen String pathToWorkDir = kostsimy.getConfigurationService().getPathToWorkDir(); /* Nicht vergessen in "src/main/resources/config/applicationContext-services.xml" beim * entsprechenden Modul die property anzugeben: <property name="configurationService" * ref="configurationService" /> */ // Konfiguration des Loggings, ein File Logger wird zustzlich erstellt LogConfigurator logConfigurator = (LogConfigurator) context.getBean("logconfigurator"); String logFileName = logConfigurator.configure(directoryOfLogfile.getAbsolutePath(), logDatei.getName()); File logFile = new File(logFileName); // Ab hier kann ins log geschrieben werden... LOGGER.logError(kostsimy.getTextResourceService().getText(MESSAGE_XML_HEADER)); LOGGER.logError(kostsimy.getTextResourceService().getText(MESSAGE_XML_START, ausgabeStart)); LOGGER.logError(kostsimy.getTextResourceService().getText(MESSAGE_XML_END)); LOGGER.logError(kostsimy.getTextResourceService().getText(MESSAGE_XML_INFO)); System.out.println("KOST-Simy"); System.out.println(""); if (!origDir.exists()) { // Das Original-Verzeichnis existiert nicht LOGGER.logError(kostsimy.getTextResourceService().getText(ERROR_IOE, kostsimy.getTextResourceService().getText(ERROR_NOORIGDIR, origDir.getAbsolutePath()))); System.out .println(kostsimy.getTextResourceService().getText(ERROR_NOORIGDIR, origDir.getAbsolutePath())); System.exit(1); } if (!repDir.exists()) { // Das Replica-Verzeichnis existiert nicht LOGGER.logError(kostsimy.getTextResourceService().getText(ERROR_IOE, kostsimy.getTextResourceService().getText(ERROR_NOREPDIR1, repDir.getAbsolutePath()))); System.out .println(kostsimy.getTextResourceService().getText(ERROR_NOREPDIR1, repDir.getAbsolutePath())); System.exit(1); } File xslOrig = new File("resources" + File.separator + "kost-simy.xsl"); File xslCopy = new File(directoryOfLogfile.getAbsolutePath() + File.separator + "kost-simy.xsl"); if (!xslCopy.exists()) { Util.copyFile(xslOrig, xslCopy); } // Informationen zur prozentualen Stichprobe holen String randomTest = kostsimy.getConfigurationService().getRandomTest(); /* Nicht vergessen in "src/main/resources/config/applicationContext-services.xml" beim * entsprechenden Modul die property anzugeben: <property name="configurationService" * ref="configurationService" /> */ int iRandomTest = 100; try { iRandomTest = Integer.parseInt(randomTest); } catch (Exception ex) { // unzulaessige Eingabe --> 50 wird gesetzt iRandomTest = 50; } if (iRandomTest > 100 || iRandomTest < 1) { // unzulaessige Eingabe --> 50 wird gesetzt iRandomTest = 50; } File tmpDir = new File(pathToWorkDir); /* bestehendes Workverzeichnis Abbruch wenn nicht leer, da am Schluss das Workverzeichnis * gelscht wird und entsprechend bestehende Dateien gelscht werden knnen */ if (tmpDir.exists()) { if (tmpDir.isDirectory()) { // Get list of file in the directory. When its length is not zero the folder is not empty. String[] files = tmpDir.list(); if (files.length > 0) { LOGGER.logError(kostsimy.getTextResourceService().getText(ERROR_IOE, kostsimy.getTextResourceService().getText(ERROR_WORKDIRECTORY_EXISTS, pathToWorkDir))); System.out.println( kostsimy.getTextResourceService().getText(ERROR_WORKDIRECTORY_EXISTS, pathToWorkDir)); System.exit(1); } } } // Im Pfad keine Sonderzeichen Programme knnen evtl abstrzen String patternStr = "[^!#\\$%\\(\\)\\+,\\-_\\.=@\\[\\]\\{\\}\\~:\\\\a-zA-Z0-9 ]"; Pattern pattern = Pattern.compile(patternStr); String name = tmpDir.getAbsolutePath(); String[] pathElements = name.split("/"); for (int i = 0; i < pathElements.length; i++) { String element = pathElements[i]; Matcher matcher = pattern.matcher(element); boolean matchFound = matcher.find(); if (matchFound) { LOGGER.logError(kostsimy.getTextResourceService().getText(ERROR_IOE, kostsimy.getTextResourceService().getText(ERROR_SPECIAL_CHARACTER, name))); System.out.println(kostsimy.getTextResourceService().getText(ERROR_SPECIAL_CHARACTER, name)); System.exit(1); } } // die Anwendung muss mindestens unter Java 6 laufen String javaRuntimeVersion = System.getProperty("java.vm.version"); if (javaRuntimeVersion.compareTo("1.6.0") < 0) { LOGGER.logError(kostsimy.getTextResourceService().getText(ERROR_IOE, kostsimy.getTextResourceService().getText(ERROR_WRONG_JRE))); System.out.println(kostsimy.getTextResourceService().getText(ERROR_WRONG_JRE)); System.exit(1); } // bestehendes Workverzeichnis wieder anlegen if (!tmpDir.exists()) { tmpDir.mkdir(); File origDirTmp = new File(tmpDir.getAbsolutePath() + File.separator + "orig"); File repDirTmp = new File(tmpDir.getAbsolutePath() + File.separator + "rep"); origDirTmp.mkdir(); repDirTmp.mkdir(); } // Im workverzeichnis besteht kein Schreibrecht if (!tmpDir.canWrite()) { LOGGER.logError(kostsimy.getTextResourceService().getText(ERROR_IOE, kostsimy.getTextResourceService().getText(ERROR_WORKDIRECTORY_NOTWRITABLE, tmpDir))); System.out.println(kostsimy.getTextResourceService().getText(ERROR_WORKDIRECTORY_NOTWRITABLE, tmpDir)); System.exit(1); } // Im Pfad keine Sonderzeichen --> Absturzgefahr name = origDir.getAbsolutePath(); pathElements = name.split("/"); for (int i = 0; i < pathElements.length; i++) { String element = pathElements[i]; Matcher matcher = pattern.matcher(element); boolean matchFound = matcher.find(); if (matchFound) { LOGGER.logError(kostsimy.getTextResourceService().getText(ERROR_IOE, kostsimy.getTextResourceService().getText(ERROR_SPECIAL_CHARACTER, name))); System.out.println(kostsimy.getTextResourceService().getText(ERROR_SPECIAL_CHARACTER, name)); System.exit(1); } } name = repDir.getAbsolutePath(); pathElements = name.split("/"); for (int i = 0; i < pathElements.length; i++) { String element = pathElements[i]; Matcher matcher = pattern.matcher(element); boolean matchFound = matcher.find(); if (matchFound) { LOGGER.logError(kostsimy.getTextResourceService().getText(ERROR_IOE, kostsimy.getTextResourceService().getText(ERROR_SPECIAL_CHARACTER, name))); System.out.println(kostsimy.getTextResourceService().getText(ERROR_SPECIAL_CHARACTER, name)); System.exit(1); } } LOGGER.logError(kostsimy.getTextResourceService().getText(MESSAGE_XML_IMAGE1)); float count = 0; int countNio = 0; int countIo = 0; float countVal = 0; int countNotVal = 0; float percentage = (float) 0.0; if (!origDir.isDirectory()) { // TODO: Bildervergleich zweier Dateien --> erledigt --> nur Marker if (repDir.isDirectory()) { // Das Replica-ist ein Verzeichnis, aber Original eine Datei LOGGER.logError(kostsimy.getTextResourceService().getText(ERROR_IOE, kostsimy.getTextResourceService().getText(ERROR_NOREPDIR2, repDir.getAbsolutePath()))); System.out.println( kostsimy.getTextResourceService().getText(ERROR_NOREPDIR2, repDir.getAbsolutePath())); System.exit(1); } boolean compFile = compFile(origDir, logFileName, directoryOfLogfile, repDir, tmpDir); float statIo = 0; int statNio = 0; float statUn = 0; if (compFile) { statIo = 100; } else { statNio = 100; } LOGGER.logError(kostsimy.getTextResourceService().getText(MESSAGE_XML_IMAGE2)); LOGGER.logError( kostsimy.getTextResourceService().getText(MESSAGE_XML_STATISTICS, statIo, statNio, statUn)); LOGGER.logError(kostsimy.getTextResourceService().getText(MESSAGE_XML_LOGEND)); // Zeitstempel End java.util.Date nowEnd = new java.util.Date(); java.text.SimpleDateFormat sdfEnd = new java.text.SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); String ausgabeEnd = sdfEnd.format(nowEnd); ausgabeEnd = "<End>" + ausgabeEnd + "</End>"; Util.valEnd(ausgabeEnd, logFile); Util.amp(logFile); // Die Konfiguration hereinkopieren try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(false); factory.setExpandEntityReferences(false); Document docConfig = factory.newDocumentBuilder().parse(configFile); NodeList list = docConfig.getElementsByTagName("configuration"); Element element = (Element) list.item(0); Document docLog = factory.newDocumentBuilder().parse(logFile); Node dup = docLog.importNode(element, true); docLog.getDocumentElement().appendChild(dup); FileWriter writer = new FileWriter(logFile); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ElementToStream(docLog.getDocumentElement(), baos); String stringDoc2 = new String(baos.toByteArray()); writer.write(stringDoc2); writer.close(); // Der Header wird dabei leider verschossen, wieder zurck ndern String newstring = kostsimy.getTextResourceService().getText(MESSAGE_XML_HEADER); String oldstring = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><KOSTSimyLog>"; Util.oldnewstring(oldstring, newstring, logFile); } catch (Exception e) { LOGGER.logError( "<Error>" + kostsimy.getTextResourceService().getText(ERROR_XML_UNKNOWN, e.getMessage())); System.out.println("Exception: " + e.getMessage()); } if (compFile) { // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } // Validierte Datei valide System.exit(0); } else { // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } // Fehler in Validierte Datei --> invalide System.exit(2); } } else { // TODO: Bildervergleich zweier Verzeichnisse --> in Arbeit --> nur Marker if (!repDir.isDirectory()) { // Das Replica-ist eine Datei, aber Original ein Ordner LOGGER.logError(kostsimy.getTextResourceService().getText(ERROR_IOE, kostsimy.getTextResourceService().getText(ERROR_NOREPDIR3, repDir.getAbsolutePath()))); System.out.println( kostsimy.getTextResourceService().getText(ERROR_NOREPDIR3, repDir.getAbsolutePath())); System.exit(1); } Map<String, File> fileMap = Util.getFileMap(origDir, false); Set<String> fileMapKeys = fileMap.keySet(); boolean other = false; for (Iterator<String> iterator = fileMapKeys.iterator(); iterator.hasNext();) { String entryName = iterator.next(); File newFile = fileMap.get(entryName); if (!newFile.isDirectory()) { origDir = newFile; count = count + 1; if ((origDir.getAbsolutePath().toLowerCase().endsWith(".pdf") || origDir.getAbsolutePath().toLowerCase().endsWith(".pdfa") || origDir.getAbsolutePath().toLowerCase().endsWith(".tif") || origDir.getAbsolutePath().toLowerCase().endsWith(".tiff") || origDir.getAbsolutePath().toLowerCase().endsWith(".jpeg") || origDir.getAbsolutePath().toLowerCase().endsWith(".jpg") || origDir.getAbsolutePath().toLowerCase().endsWith(".jpe") || origDir.getAbsolutePath().toLowerCase().endsWith(".jp2") || origDir.getAbsolutePath().toLowerCase().endsWith(".gif") || origDir.getAbsolutePath().toLowerCase().endsWith(".png") || origDir.getAbsolutePath().toLowerCase().endsWith(".bmp"))) { percentage = 100 / count * countVal; if (percentage < iRandomTest) { // if ( 100 / count * (countVal + 1) <= iRandomTest ) { countVal = countVal + 1; String origWithOutExt = FilenameUtils.removeExtension(origDir.getName()); File repFile = new File( repDir.getAbsolutePath() + File.separator + origWithOutExt + ".pdf"); if (!repFile.exists()) { repFile = new File( repDir.getAbsolutePath() + File.separator + origWithOutExt + ".pdfa"); if (!repFile.exists()) { repFile = new File( repDir.getAbsolutePath() + File.separator + origWithOutExt + ".tif"); if (!repFile.exists()) { repFile = new File(repDir.getAbsolutePath() + File.separator + origWithOutExt + ".tiff"); if (!repFile.exists()) { repFile = new File(repDir.getAbsolutePath() + File.separator + origWithOutExt + ".jpeg"); if (!repFile.exists()) { repFile = new File(repDir.getAbsolutePath() + File.separator + origWithOutExt + ".jpg"); if (!repFile.exists()) { repFile = new File(repDir.getAbsolutePath() + File.separator + origWithOutExt + ".jpe"); if (!repFile.exists()) { repFile = new File(repDir.getAbsolutePath() + File.separator + origWithOutExt + ".jp2"); if (!repFile.exists()) { repFile = new File(repDir.getAbsolutePath() + File.separator + origWithOutExt + ".gif"); if (!repFile.exists()) { repFile = new File(repDir.getAbsolutePath() + File.separator + origWithOutExt + ".png"); if (!repFile.exists()) { repFile = new File(repDir.getAbsolutePath() + File.separator + origWithOutExt + ".bmp"); if (!repFile.exists()) { other = true; LOGGER.logError(kostsimy .getTextResourceService() .getText(MESSAGE_XML_VALERGEBNIS)); LOGGER.logError(kostsimy .getTextResourceService() .getText(MESSAGE_XML_COMPFILE, origDir)); LOGGER.logError(kostsimy .getTextResourceService().getText( MESSAGE_XML_VALERGEBNIS_NOTVALIDATED)); LOGGER.logError( kostsimy.getTextResourceService() .getText(ERROR_NOREP, origDir.getName())); LOGGER.logError(kostsimy .getTextResourceService().getText( MESSAGE_XML_VALERGEBNIS_CLOSE)); } } } } } } } } } } } if (!other) { boolean compFile = compFile(origDir, logFileName, directoryOfLogfile, repFile, tmpDir); if (compFile) { // Vergleich bestanden countIo = countIo + 1; } else { // Vergleich nicht bestanden countNio = countNio + 1; } } } else { countNotVal = countNotVal + 1; LOGGER.logError(kostsimy.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS)); LOGGER.logError( kostsimy.getTextResourceService().getText(MESSAGE_XML_COMPFILE, origDir)); LOGGER.logError(kostsimy.getTextResourceService() .getText(MESSAGE_XML_VALERGEBNIS_NOTVALIDATED)); LOGGER.logError( kostsimy.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS_CLOSE)); } } else { countNotVal = countNotVal + 1; LOGGER.logError(kostsimy.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS)); LOGGER.logError(kostsimy.getTextResourceService().getText(MESSAGE_XML_COMPFILE, origDir)); LOGGER.logError( kostsimy.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS_NOTVALIDATED)); LOGGER.logError( kostsimy.getTextResourceService().getText(ERROR_INCORRECTFILEENDING, origDir)); LOGGER.logError(kostsimy.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS_CLOSE)); } } } if (countNio == 0 && countIo == 0) { // keine Dateien verglichen LOGGER.logError(kostsimy.getTextResourceService().getText(ERROR_INCORRECTFILEENDINGS)); System.out.println(kostsimy.getTextResourceService().getText(ERROR_INCORRECTFILEENDINGS)); } float statIo = 100 / (float) count * (float) countIo; float statNio = 100 / (float) count * (float) countNio; float statUn = 100 - statIo - statNio; LOGGER.logError(kostsimy.getTextResourceService().getText(MESSAGE_XML_IMAGE2)); LOGGER.logError( kostsimy.getTextResourceService().getText(MESSAGE_XML_STATISTICS, statIo, statNio, statUn)); LOGGER.logError(kostsimy.getTextResourceService().getText(MESSAGE_XML_LOGEND)); // Zeitstempel End java.util.Date nowEnd = new java.util.Date(); java.text.SimpleDateFormat sdfEnd = new java.text.SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); String ausgabeEnd = sdfEnd.format(nowEnd); ausgabeEnd = "<End>" + ausgabeEnd + "</End>"; Util.valEnd(ausgabeEnd, logFile); Util.amp(logFile); // Die Konfiguration hereinkopieren try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(false); factory.setExpandEntityReferences(false); Document docConfig = factory.newDocumentBuilder().parse(configFile); NodeList list = docConfig.getElementsByTagName("configuration"); Element element = (Element) list.item(0); Document docLog = factory.newDocumentBuilder().parse(logFile); Node dup = docLog.importNode(element, true); docLog.getDocumentElement().appendChild(dup); FileWriter writer = new FileWriter(logFile); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ElementToStream(docLog.getDocumentElement(), baos); String stringDoc2 = new String(baos.toByteArray()); writer.write(stringDoc2); writer.close(); // Der Header wird dabei leider verschossen, wieder zurck ndern String newstring = kostsimy.getTextResourceService().getText(MESSAGE_XML_HEADER); String oldstring = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><KOSTSimyLog>"; Util.oldnewstring(oldstring, newstring, logFile); } catch (Exception e) { LOGGER.logError( "<Error>" + kostsimy.getTextResourceService().getText(ERROR_XML_UNKNOWN, e.getMessage())); System.out.println("Exception: " + e.getMessage()); } if (countNio == 0 && countIo == 0) { // keine Dateien verglichen bestehendes Workverzeichnis ggf. lschen if (tmpDir.exists()) { Util.deleteDir(tmpDir); } System.exit(1); } else if (countNio == 0) { // bestehendes Workverzeichnis ggf. lschen if (tmpDir.exists()) { Util.deleteDir(tmpDir); } // alle Validierten Dateien valide System.exit(0); } else { // bestehendes Workverzeichnis ggf. lschen if (tmpDir.exists()) { Util.deleteDir(tmpDir); } // Fehler in Validierten Dateien --> invalide System.exit(2); } if (tmpDir.exists()) { Util.deleteDir(tmpDir); tmpDir.deleteOnExit(); } } }
From source file:AndroidUninstallStock.java
@SuppressWarnings("static-access") public static void main(String[] args) { try {/*from ww w . ja v a 2 s . co m*/ String lang = Locale.getDefault().getLanguage(); GnuParser cmdparser = new GnuParser(); Options cmdopts = new Options(); for (String fld : Arrays.asList("shortOpts", "longOpts", "optionGroups")) { // hack for printOptions java.lang.reflect.Field fieldopt = cmdopts.getClass().getDeclaredField(fld); fieldopt.setAccessible(true); fieldopt.set(cmdopts, new LinkedHashMap<>()); } cmdopts.addOption("h", "help", false, "Help"); cmdopts.addOption("t", "test", false, "Show only report"); cmdopts.addOption(OptionBuilder.withLongOpt("adb").withArgName("file").hasArg() .withDescription("Path to ADB from Android SDK").create("a")); cmdopts.addOption(OptionBuilder.withLongOpt("dev").withArgName("device").hasArg() .withDescription("Select device (\"adb devices\")").create("d")); cmdopts.addOption(null, "restore", false, "If packages have not yet removed and are disabled, " + "you can activate them again"); cmdopts.addOption(null, "google", false, "Delete packages are in the Google section"); cmdopts.addOption(null, "unapk", false, "Delete /system/app/ *.apk *.odex *.dex" + System.lineSeparator() + "(It is required to repeat command execution)"); cmdopts.addOption(null, "unlib", false, "Delete /system/lib/[libs in apk]"); //cmdopts.addOption(null, "unfrw", false, "Delete /system/framework/ (special list)"); cmdopts.addOption(null, "scanlibs", false, "(Dangerous!) Include all the libraries of selected packages." + " Use with --unlib"); cmdopts.addOptionGroup(new OptionGroup() { { addOption(OptionBuilder.withLongOpt("genfile").withArgName("file").hasArg().isRequired() .withDescription("Create file with list packages").create()); addOption(OptionBuilder.withLongOpt("lang").withArgName("ISO 639").hasArg().create()); } }); cmdopts.getOption("lang").setDescription( "See hl= in Google URL (default: " + lang + ") " + "for description from Google Play Market"); CommandLine cmd = cmdparser.parse(cmdopts, args); if (args.length == 0 || cmd.hasOption("help")) { PrintWriter console = new PrintWriter(System.out); HelpFormatter cmdhelp = new HelpFormatter(); cmdhelp.setOptionComparator(new Comparator<Option>() { @Override public int compare(Option o1, Option o2) { return 0; } }); console.println("WARNING: Before use make a backup with ClockworkMod Recovery!"); console.println(); console.println("AndroidUninstallStock [options] [AndroidListSoft.xml]"); cmdhelp.printOptions(console, 80, cmdopts, 3, 2); console.flush(); return; } String adb = cmd.getOptionValue("adb", "adb"); try { run(adb, "start-server"); } catch (IOException e) { System.out.println("Error: Not found ADB! Use -a or --adb"); return; } final boolean NotTest = !cmd.hasOption("test"); String deverror = getDeviceStatus(adb, cmd.getOptionValue("dev")); if (!deverror.isEmpty()) { System.out.println(deverror); return; } System.out.println("Getting list packages:"); LinkedHashMap<String, String> apklist = new LinkedHashMap<String, String>(); for (String ln : run(adb, "-s", lastdevice, "shell", "pm list packages -s -f")) { // "pm list packages" give list sorted by packages ;) String pckg = ln.substring("package:".length()); String pckgname = ln.substring(ln.lastIndexOf('=') + 1); pckg = pckg.substring(0, pckg.length() - pckgname.length() - 1); if (!pckgname.equals("android") && !pckgname.equals("com.android.vending")/*Google Play Market*/) { apklist.put(pckg, pckgname); } } for (String ln : run(adb, "-s", lastdevice, "shell", "ls /system/app/")) { String path = "/system/app/" + ln.replace(".odex", ".apk").replace(".dex", ".apk"); if (!apklist.containsKey(path)) { apklist.put(path, ""); } } apklist.remove("/system/app/mcRegistry"); for (Map.Entry<String, String> info : sortByValues(apklist).entrySet()) { System.out.println(info.getValue() + " = " + info.getKey()); } String genfile = cmd.getOptionValue("genfile"); if (genfile != null) { Path genpath = Paths.get(genfile); try (BufferedWriter gen = Files.newBufferedWriter(genpath, StandardCharsets.UTF_8, new StandardOpenOption[] { StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE })) { if (cmd.getOptionValue("lang") != null) { lang = cmd.getOptionValue("lang"); } LinkedHashSet<String> listsystem = new LinkedHashSet<String>() { { add("com.android"); add("com.google.android"); //add("com.sec.android.app"); add("com.monotype.android"); add("eu.chainfire.supersu"); } }; // \r\n for Windows Notepad gen.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"); gen.write("<!-- & raplace with & or use <![CDATA[ ]]> -->\r\n"); gen.write("<AndroidUninstallStock>\r\n\r\n"); gen.write("<Normal>\r\n"); System.out.println(); System.out.println("\tNormal:"); writeInfo(gen, apklist, lang, listsystem, true); gen.write("\t<apk name=\"Exclude Google and etc\">\r\n"); for (String exc : listsystem) { gen.write("\t\t<exclude global=\"true\" in=\"package\" pattern=\"" + exc + "\" />\r\n"); } gen.write("\t</apk>\r\n"); gen.write("</Normal>\r\n\r\n"); gen.write("<Google>\r\n"); System.out.println(); System.out.println("\tGoogle:"); writeInfo(gen, apklist, lang, listsystem, false); gen.write("</Google>\r\n\r\n"); gen.write("</AndroidUninstallStock>\r\n"); System.out.println("File " + genpath.toAbsolutePath() + " created."); } return; } String[] FileName = cmd.getArgs(); if (!(FileName.length > 0 && Files.isReadable(Paths.get(FileName[0])))) { System.out.println("Error: File " + FileName[0] + " not found!"); return; } DocumentBuilderFactory xmlfactory = getXmlDocFactory(); // DocumentBuilder.setErrorHandler() for print errors Document xml = xmlfactory.newDocumentBuilder().parse(new File(FileName[0])); LinkedList<AusInfo> Normal = new LinkedList<AusInfo>(); LinkedList<AusInfo> Google = new LinkedList<AusInfo>(); NodeList ndaus = xml.getElementsByTagName("AndroidUninstallStock").item(0).getChildNodes(); for (int ndausx = 0, ndausc = ndaus.getLength(); ndausx < ndausc; ndausx++) { Node ndnow = ndaus.item(ndausx); NodeList nd = ndnow.getChildNodes(); String ndname = ndnow.getNodeName(); for (int ndx = 0, ndc = nd.getLength(); ndx < ndc; ndx++) { if (!nd.item(ndx).getNodeName().equalsIgnoreCase("apk")) { continue; } if (ndname.equalsIgnoreCase("Normal")) { Normal.add(getApkInfo(nd.item(ndx))); } else if (ndname.equalsIgnoreCase("Google")) { Google.add(getApkInfo(nd.item(ndx))); } } } // FIXME This part must be repeated until the "pm uninstall" will not issue "Failure" on all packages. // Now requires a restart. System.out.println(); System.out.println("Include and Exclude packages (Normal):"); LinkedHashMap<String, String> apkNormal = getApkFromPattern(apklist, Normal, false); System.out.println(); System.out.println("Global Exclude packages (Normal):"); apkNormal = getApkFromPattern(apkNormal, Normal, true); System.out.println(); System.out.println("Final list packages (Normal):"); for (Map.Entry<String, String> info : sortByValues(apkNormal).entrySet()) { System.out.println(info.getValue() + " = " + info.getKey()); } LinkedHashMap<String, String> apkGoogle = new LinkedHashMap<String, String>(); if (cmd.hasOption("google")) { System.out.println(); System.out.println("Include and Exclude packages (Google):"); apkGoogle = getApkFromPattern(apklist, Google, false); System.out.println(); System.out.println("Global Exclude packages (Google):"); apkGoogle = getApkFromPattern(apkGoogle, Google, true); System.out.println(); System.out.println("Final list packages (Google):"); for (Map.Entry<String, String> info : sortByValues(apkGoogle).entrySet()) { System.out.println(info.getValue() + " = " + info.getKey()); } } if (NotTest) { if (!hasRoot(adb)) { System.out.println("No Root"); System.out.println(); System.out.println("FINISH :)"); return; } } if (cmd.hasOption("restore")) { System.out.println(); System.out.println("Enable (Restore) packages (Normal):"); damage(adb, "pm enable ", NotTest, apkNormal, 2); if (cmd.hasOption("google")) { System.out.println(); System.out.println("Enable (Restore) packages (Google):"); damage(adb, "pm enable ", NotTest, apkGoogle, 2); } System.out.println(); System.out.println("FINISH :)"); return; } else { System.out.println(); System.out.println("Disable packages (Normal):"); damage(adb, "pm disable ", NotTest, apkNormal, 2); if (cmd.hasOption("google")) { System.out.println(); System.out.println("Disable packages (Google):"); damage(adb, "pm disable ", NotTest, apkGoogle, 2); } } if (!cmd.hasOption("unapk") && !cmd.hasOption("unlib")) { System.out.println(); System.out.println("FINISH :)"); return; } // Reboot now not needed /*if (NotTest) { reboot(adb, "-s", lastdevice, "reboot"); if (!hasRoot(adb)) { System.out.println("No Root"); System.out.println(); System.out.println("FINISH :)"); return; } }*/ if (cmd.hasOption("unlib")) { // "find" not found System.out.println(); System.out.println("Getting list libraries:"); LinkedList<String> liblist = new LinkedList<String>(); liblist.addAll(run(adb, "-s", lastdevice, "shell", "ls -l /system/lib/")); String dircur = "/system/lib/"; for (int x = 0; x < liblist.size(); x++) { if (liblist.get(x).startsWith("scan:")) { dircur = liblist.get(x).substring("scan:".length()); liblist.remove(x); x--; } else if (liblist.get(x).startsWith("d")) { String dir = liblist.get(x).substring(liblist.get(x).lastIndexOf(':') + 4) + "/"; liblist.remove(x); x--; liblist.add("scan:/system/lib/" + dir); liblist.addAll(run(adb, "-s", lastdevice, "shell", "ls -l /system/lib/" + dir)); continue; } liblist.set(x, dircur + liblist.get(x).substring(liblist.get(x).lastIndexOf(':') + 4)); System.out.println(liblist.get(x)); } final boolean scanlibs = cmd.hasOption("scanlibs"); LinkedHashMap<String, String> libNormal = getLibFromPatternInclude(adb, liblist, apkNormal, Normal, "Normal", scanlibs); libNormal = getLibFromPatternGlobalExclude(libNormal, Normal, "Normal"); System.out.println(); System.out.println("Final list libraries (Normal):"); for (Map.Entry<String, String> info : sortByValues(libNormal).entrySet()) { System.out.println(info.getKey() + " = " + info.getValue()); } LinkedHashMap<String, String> libGoogle = new LinkedHashMap<String, String>(); if (cmd.hasOption("google")) { libGoogle = getLibFromPatternInclude(adb, liblist, apkGoogle, Google, "Google", scanlibs); libGoogle = getLibFromPatternGlobalExclude(libGoogle, Google, "Google"); System.out.println(); System.out.println("Final list libraries (Google):"); for (Map.Entry<String, String> info : sortByValues(libGoogle).entrySet()) { System.out.println(info.getKey() + " = " + info.getValue()); } } LinkedHashMap<String, String> apkExclude = new LinkedHashMap<String, String>(apklist); for (String key : apkNormal.keySet()) { apkExclude.remove(key); } for (String key : apkGoogle.keySet()) { apkExclude.remove(key); } System.out.println(); System.out.println("Include libraries from Exclude packages:"); LinkedHashMap<String, String> libExclude = getLibFromPackage(adb, liblist, apkExclude); System.out.println(); System.out.println("Enclude libraries from Exclude packages (Normal):"); for (Map.Entry<String, String> info : sortByValues(libNormal).entrySet()) { if (libExclude.containsKey(info.getKey())) { System.out.println("exclude: " + info.getKey() + " = " + libExclude.get(info.getKey())); libNormal.remove(info.getKey()); } } System.out.println(); System.out.println("Enclude libraries from Exclude packages (Google):"); for (Map.Entry<String, String> info : sortByValues(libGoogle).entrySet()) { if (libExclude.containsKey(info.getKey())) { System.out.println("exclude: " + info.getKey() + " = " + libExclude.get(info.getKey())); libGoogle.remove(info.getKey()); } } System.out.println(); System.out.println("Delete libraries (Normal):"); damage(adb, "rm ", NotTest, libNormal, 1); if (cmd.hasOption("google")) { System.out.println(); System.out.println("Delete libraries (Google):"); damage(adb, "rm ", NotTest, libGoogle, 1); } } if (cmd.hasOption("unapk")) { System.out.println(); System.out.println("Cleaning data packages (Normal):"); damage(adb, "pm clear ", NotTest, apkNormal, 2); if (cmd.hasOption("google")) { System.out.println(); System.out.println("Cleaning data packages (Google):"); damage(adb, "pm clear ", NotTest, apkGoogle, 2); } System.out.println(); System.out.println("Uninstall packages (Normal):"); damage(adb, "pm uninstall ", NotTest, apkNormal, 2); if (cmd.hasOption("google")) { System.out.println(); System.out.println("Uninstall packages (Google):"); damage(adb, "pm uninstall ", NotTest, apkGoogle, 2); } } if (cmd.hasOption("unapk")) { System.out.println(); System.out.println("Delete packages (Normal):"); LinkedHashMap<String, String> dexNormal = new LinkedHashMap<String, String>(); for (Map.Entry<String, String> apk : apkNormal.entrySet()) { dexNormal.put(apk.getKey(), apk.getValue()); dexNormal.put(apk.getKey().replace(".apk", ".dex"), apk.getValue()); dexNormal.put(apk.getKey().replace(".apk", ".odex"), apk.getValue()); } damage(adb, "rm ", NotTest, dexNormal, 1); if (cmd.hasOption("google")) { System.out.println(); System.out.println("Delete packages (Google):"); LinkedHashMap<String, String> dexGoogle = new LinkedHashMap<String, String>(); for (Map.Entry<String, String> apk : apkGoogle.entrySet()) { dexGoogle.put(apk.getKey(), apk.getValue()); dexGoogle.put(apk.getKey().replace(".apk", ".dex"), apk.getValue()); dexGoogle.put(apk.getKey().replace(".apk", ".odex"), apk.getValue()); } damage(adb, "rm ", NotTest, dexGoogle, 1); } } if (NotTest) { run(adb, "-s", lastdevice, "reboot"); } System.out.println(); System.out.println("FINISH :)"); } catch (SAXException e) { System.out.println("Error parsing list: " + e); } catch (Throwable e) { e.printStackTrace(); } }
From source file:ch.kostceco.tools.kostval.KOSTVal.java
/** Die Eingabe besteht aus 2 oder 3 Parameter: [0] Validierungstyp [1] Pfad zur Val-File [2] * option: Verbose/*from w ww. j a va2 s. c om*/ * * @param args * @throws IOException */ @SuppressWarnings("unused") public static void main(String[] args) throws IOException { ApplicationContext context = new ClassPathXmlApplicationContext("classpath:config/applicationContext.xml"); // Zeitstempel Start java.util.Date nowStart = new java.util.Date(); java.text.SimpleDateFormat sdfStart = new java.text.SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); String ausgabeStart = sdfStart.format(nowStart); /* TODO: siehe Bemerkung im applicationContext-services.xml bezglich Injection in der * Superklasse aller Impl-Klassen ValidationModuleImpl validationModuleImpl = * (ValidationModuleImpl) context.getBean("validationmoduleimpl"); */ KOSTVal kostval = (KOSTVal) context.getBean("kostval"); File configFile = new File("configuration" + File.separator + "kostval.conf.xml"); // Ueberprfung des Parameters (Log-Verzeichnis) String pathToLogfile = kostval.getConfigurationService().getPathToLogfile(); File directoryOfLogfile = new File(pathToLogfile); if (!directoryOfLogfile.exists()) { directoryOfLogfile.mkdir(); } // Im Logverzeichnis besteht kein Schreibrecht if (!directoryOfLogfile.canWrite()) { System.out.println( kostval.getTextResourceService().getText(ERROR_LOGDIRECTORY_NOTWRITABLE, directoryOfLogfile)); System.exit(1); } if (!directoryOfLogfile.isDirectory()) { System.out.println(kostval.getTextResourceService().getText(ERROR_LOGDIRECTORY_NODIRECTORY)); System.exit(1); } // Ist die Anzahl Parameter (mind. 2) korrekt? if (args.length < 2) { System.out.println(kostval.getTextResourceService().getText(ERROR_PARAMETER_USAGE)); System.exit(1); } File valDatei = new File(args[1]); File logDatei = null; logDatei = valDatei; // Informationen zum Arbeitsverzeichnis holen String pathToWorkDir = kostval.getConfigurationService().getPathToWorkDir(); /* Nicht vergessen in "src/main/resources/config/applicationContext-services.xml" beim * entsprechenden Modul die property anzugeben: <property name="configurationService" * ref="configurationService" /> */ // Informationen holen, welche Formate validiert werden sollen String pdfaValidation = kostval.getConfigurationService().pdfaValidation(); String siardValidation = kostval.getConfigurationService().siardValidation(); String tiffValidation = kostval.getConfigurationService().tiffValidation(); String jp2Validation = kostval.getConfigurationService().jp2Validation(); // Konfiguration des Loggings, ein File Logger wird zustzlich erstellt LogConfigurator logConfigurator = (LogConfigurator) context.getBean("logconfigurator"); String logFileName = logConfigurator.configure(directoryOfLogfile.getAbsolutePath(), logDatei.getName()); File logFile = new File(logFileName); // Ab hier kann ins log geschrieben werden... String formatValOn = ""; // ermitteln welche Formate validiert werden knnen respektive eingeschaltet sind if (pdfaValidation.equals("yes")) { formatValOn = "PDF/A"; if (tiffValidation.equals("yes")) { formatValOn = formatValOn + ", TIFF"; } if (jp2Validation.equals("yes")) { formatValOn = formatValOn + ", JP2"; } if (siardValidation.equals("yes")) { formatValOn = formatValOn + ", SIARD"; } } else if (tiffValidation.equals("yes")) { formatValOn = "TIFF"; if (jp2Validation.equals("yes")) { formatValOn = formatValOn + ", JP2"; } if (siardValidation.equals("yes")) { formatValOn = formatValOn + ", SIARD"; } } else if (jp2Validation.equals("yes")) { formatValOn = "JP2"; if (siardValidation.equals("yes")) { formatValOn = formatValOn + ", SIARD"; } } else if (siardValidation.equals("yes")) { formatValOn = "SIARD"; } LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_HEADER)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_START, ausgabeStart)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_END)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_FORMATON, formatValOn)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_INFO)); System.out.println("KOST-Val"); System.out.println(""); if (args[0].equals("--format") && formatValOn.equals("")) { // Formatvalidierung aber alle Formate ausgeschlossen LOGGER.logError(kostval.getTextResourceService().getText(ERROR_IOE, kostval.getTextResourceService().getText(ERROR_NOFILEENDINGS))); System.out.println(kostval.getTextResourceService().getText(ERROR_NOFILEENDINGS)); System.exit(1); } File xslOrig = new File("resources" + File.separator + "kost-val.xsl"); File xslCopy = new File(directoryOfLogfile.getAbsolutePath() + File.separator + "kost-val.xsl"); if (!xslCopy.exists()) { Util.copyFile(xslOrig, xslCopy); } File tmpDir = new File(pathToWorkDir); /* bestehendes Workverzeichnis Abbruch wenn nicht leer, da am Schluss das Workverzeichnis * gelscht wird und entsprechend bestehende Dateien gelscht werden knnen */ if (tmpDir.exists()) { if (tmpDir.isDirectory()) { // Get list of file in the directory. When its length is not zero the folder is not empty. String[] files = tmpDir.list(); if (files.length > 0) { LOGGER.logError(kostval.getTextResourceService().getText(ERROR_IOE, kostval.getTextResourceService().getText(ERROR_WORKDIRECTORY_EXISTS, pathToWorkDir))); System.out.println( kostval.getTextResourceService().getText(ERROR_WORKDIRECTORY_EXISTS, pathToWorkDir)); System.exit(1); } } } // Im Pfad keine Sonderzeichen xml-Validierung SIP 1d und SIARD C strzen ab String patternStr = "[^!#\\$%\\(\\)\\+,\\-_\\.=@\\[\\]\\{\\}\\~:\\\\a-zA-Z0-9 ]"; Pattern pattern = Pattern.compile(patternStr); String name = tmpDir.getAbsolutePath(); String[] pathElements = name.split("/"); for (int i = 0; i < pathElements.length; i++) { String element = pathElements[i]; Matcher matcher = pattern.matcher(element); boolean matchFound = matcher.find(); if (matchFound) { LOGGER.logError(kostval.getTextResourceService().getText(ERROR_IOE, kostval.getTextResourceService().getText(ERROR_SPECIAL_CHARACTER, name))); System.out.println(kostval.getTextResourceService().getText(ERROR_SPECIAL_CHARACTER, name)); System.exit(1); } } // die Anwendung muss mindestens unter Java 6 laufen String javaRuntimeVersion = System.getProperty("java.vm.version"); if (javaRuntimeVersion.compareTo("1.6.0") < 0) { LOGGER.logError(kostval.getTextResourceService().getText(ERROR_IOE, kostval.getTextResourceService().getText(ERROR_WRONG_JRE))); System.out.println(kostval.getTextResourceService().getText(ERROR_WRONG_JRE)); System.exit(1); } // bestehendes Workverzeichnis wieder anlegen if (!tmpDir.exists()) { tmpDir.mkdir(); } // Im workverzeichnis besteht kein Schreibrecht if (!tmpDir.canWrite()) { LOGGER.logError(kostval.getTextResourceService().getText(ERROR_IOE, kostval.getTextResourceService().getText(ERROR_WORKDIRECTORY_NOTWRITABLE, tmpDir))); System.out.println(kostval.getTextResourceService().getText(ERROR_WORKDIRECTORY_NOTWRITABLE, tmpDir)); System.exit(1); } /* Vorberitung fr eine allfllige Festhaltung bei unterschiedlichen PDFA-Validierungsresultaten * in einer PDF_Diagnosedatei sowie Zhler der SIP-Dateiformate */ String diaPath = kostval.getConfigurationService().getPathToDiagnose(); // Im diaverzeichnis besteht kein Schreibrecht File diaDir = new File(diaPath); if (!diaDir.exists()) { diaDir.mkdir(); } if (!diaDir.canWrite()) { LOGGER.logError(kostval.getTextResourceService().getText(ERROR_IOE, kostval.getTextResourceService().getText(ERROR_DIADIRECTORY_NOTWRITABLE, diaDir))); System.out.println(kostval.getTextResourceService().getText(ERROR_DIADIRECTORY_NOTWRITABLE, diaDir)); System.exit(1); } File xmlDiaOrig = new File("resources" + File.separator + "KaD-Diagnosedaten.kost-val.xml"); File xmlDiaCopy = new File(diaPath + File.separator + "KaD-Diagnosedaten.kost-val.xml"); if (!xmlDiaCopy.exists()) { Util.copyFile(xmlDiaOrig, xmlDiaCopy); } File xslDiaOrig = new File("resources" + File.separator + "kost-val_KaDdia.xsl"); File xslDiaCopy = new File(diaPath + File.separator + "kost-val_KaDdia.xsl"); if (!xslDiaCopy.exists()) { Util.copyFile(xslDiaOrig, xslDiaCopy); } /* Ueberprfung des optionalen Parameters (2 -v --> im Verbose-mode werden die originalen Logs * nicht gelscht (PDFTron, Jhove & Co.) */ boolean verbose = false; if (args.length > 2) { if (!(args[2].equals("-v"))) { LOGGER.logError(kostval.getTextResourceService().getText(ERROR_IOE, kostval.getTextResourceService().getText(ERROR_PARAMETER_OPTIONAL_1))); System.out.println(kostval.getTextResourceService().getText(ERROR_PARAMETER_OPTIONAL_1)); System.exit(1); } else { verbose = true; } } /* Initialisierung TIFF-Modul B (JHove-Validierung) berprfen der Konfiguration: existiert die * jhove.conf am angebenen Ort? */ String jhoveConf = kostval.getConfigurationService().getPathToJhoveConfiguration(); File fJhoveConf = new File(jhoveConf); if (!fJhoveConf.exists() || !fJhoveConf.getName().equals("jhove.conf")) { LOGGER.logError(kostval.getTextResourceService().getText(ERROR_IOE, kostval.getTextResourceService().getText(ERROR_JHOVECONF_MISSING))); System.out.println(kostval.getTextResourceService().getText(ERROR_JHOVECONF_MISSING)); System.exit(1); } // Im Pfad keine Sonderzeichen xml-Validierung SIP 1d und SIARD C strzen ab name = valDatei.getAbsolutePath(); pathElements = name.split("/"); for (int i = 0; i < pathElements.length; i++) { String element = pathElements[i]; Matcher matcher = pattern.matcher(element); boolean matchFound = matcher.find(); if (matchFound) { LOGGER.logError(kostval.getTextResourceService().getText(ERROR_IOE, kostval.getTextResourceService().getText(ERROR_SPECIAL_CHARACTER, name))); System.out.println(kostval.getTextResourceService().getText(ERROR_SPECIAL_CHARACTER, name)); System.exit(1); } } // Ueberprfung des Parameters (Val-Datei): existiert die Datei? if (!valDatei.exists()) { LOGGER.logError(kostval.getTextResourceService().getText(ERROR_IOE, kostval.getTextResourceService().getText(ERROR_VALFILE_FILENOTEXISTING))); System.out.println(kostval.getTextResourceService().getText(ERROR_VALFILE_FILENOTEXISTING)); System.exit(1); } if (args[0].equals("--format")) { LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_FORMAT1)); Integer countNio = 0; Integer countSummaryNio = 0; Integer count = 0; Integer pdfaCountIo = 0; Integer pdfaCountNio = 0; Integer siardCountIo = 0; Integer siardCountNio = 0; Integer tiffCountIo = 0; Integer tiffCountNio = 0; Integer jp2CountIo = 0; Integer jp2CountNio = 0; // TODO: Formatvalidierung an einer Datei --> erledigt --> nur Marker if (!valDatei.isDirectory()) { boolean valFile = valFile(valDatei, logFileName, directoryOfLogfile, verbose); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_FORMAT2)); // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_LOGEND)); // Zeitstempel End java.util.Date nowEnd = new java.util.Date(); java.text.SimpleDateFormat sdfEnd = new java.text.SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); String ausgabeEnd = sdfEnd.format(nowEnd); ausgabeEnd = "<End>" + ausgabeEnd + "</End>"; Util.valEnd(ausgabeEnd, logFile); Util.amp(logFile); // Die Konfiguration hereinkopieren try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(false); factory.setExpandEntityReferences(false); Document docConfig = factory.newDocumentBuilder().parse(configFile); NodeList list = docConfig.getElementsByTagName("configuration"); Element element = (Element) list.item(0); Document docLog = factory.newDocumentBuilder().parse(logFile); Node dup = docLog.importNode(element, true); docLog.getDocumentElement().appendChild(dup); FileWriter writer = new FileWriter(logFile); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ElementToStream(docLog.getDocumentElement(), baos); String stringDoc2 = new String(baos.toByteArray()); writer.write(stringDoc2); writer.close(); // Der Header wird dabei leider verschossen, wieder zurck ndern String newstring = kostval.getTextResourceService().getText(MESSAGE_XML_HEADER); String oldstring = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><KOSTValLog>"; Util.oldnewstring(oldstring, newstring, logFile); } catch (Exception e) { LOGGER.logError("<Error>" + kostval.getTextResourceService().getText(ERROR_XML_UNKNOWN, e.getMessage())); System.out.println("Exception: " + e.getMessage()); } if (valFile) { // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } // Validierte Datei valide System.exit(0); } else { // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } // Fehler in Validierte Datei --> invalide System.exit(2); } } else { // TODO: Formatvalidierung ber ein Ordner --> erledigt --> nur Marker Map<String, File> fileMap = Util.getFileMap(valDatei, false); Set<String> fileMapKeys = fileMap.keySet(); for (Iterator<String> iterator = fileMapKeys.iterator(); iterator.hasNext();) { String entryName = iterator.next(); File newFile = fileMap.get(entryName); if (!newFile.isDirectory()) { valDatei = newFile; count = count + 1; // Ausgabe Dateizhler Ersichtlich das KOST-Val Dateien durchsucht System.out.print(count + " "); System.out.print("\r"); if (((valDatei.getAbsolutePath().toLowerCase().endsWith(".jp2"))) && jp2Validation.equals("yes")) { boolean valFile = valFile(valDatei, logFileName, directoryOfLogfile, verbose); // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } if (valFile) { jp2CountIo = jp2CountIo + 1; // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } } else { jp2CountNio = jp2CountNio + 1; // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } } } else if (((valDatei.getAbsolutePath().toLowerCase().endsWith(".tiff") || valDatei.getAbsolutePath().toLowerCase().endsWith(".tif"))) && tiffValidation.equals("yes")) { boolean valFile = valFile(valDatei, logFileName, directoryOfLogfile, verbose); // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } if (valFile) { tiffCountIo = tiffCountIo + 1; // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } } else { tiffCountNio = tiffCountNio + 1; // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } } } else if ((valDatei.getAbsolutePath().toLowerCase().endsWith(".siard")) && siardValidation.equals("yes")) { boolean valFile = valFile(valDatei, logFileName, directoryOfLogfile, verbose); // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } if (valFile) { siardCountIo = siardCountIo + 1; // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } } else { siardCountNio = siardCountNio + 1; // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } } } else if (((valDatei.getAbsolutePath().toLowerCase().endsWith(".pdf") || valDatei.getAbsolutePath().toLowerCase().endsWith(".pdfa"))) && pdfaValidation.equals("yes")) { boolean valFile = valFile(valDatei, logFileName, directoryOfLogfile, verbose); // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } if (valFile) { pdfaCountIo = pdfaCountIo + 1; // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } } else { pdfaCountNio = pdfaCountNio + 1; // Lschen des Arbeitsverzeichnisses, falls eines angelegt wurde if (tmpDir.exists()) { Util.deleteDir(tmpDir); } } } else { countNio = countNio + 1; } } } System.out.print(" "); System.out.print("\r"); if (countNio.equals(count)) { // keine Dateien Validiert LOGGER.logError( kostval.getTextResourceService().getText(ERROR_INCORRECTFILEENDINGS, formatValOn)); System.out.println( kostval.getTextResourceService().getText(ERROR_INCORRECTFILEENDINGS, formatValOn)); } LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_FORMAT2)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_LOGEND)); // Zeitstempel End java.util.Date nowEnd = new java.util.Date(); java.text.SimpleDateFormat sdfEnd = new java.text.SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); String ausgabeEnd = sdfEnd.format(nowEnd); ausgabeEnd = "<End>" + ausgabeEnd + "</End>"; Util.valEnd(ausgabeEnd, logFile); Util.amp(logFile); // Die Konfiguration hereinkopieren try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(false); factory.setExpandEntityReferences(false); Document docConfig = factory.newDocumentBuilder().parse(configFile); NodeList list = docConfig.getElementsByTagName("configuration"); Element element = (Element) list.item(0); Document docLog = factory.newDocumentBuilder().parse(logFile); Node dup = docLog.importNode(element, true); docLog.getDocumentElement().appendChild(dup); FileWriter writer = new FileWriter(logFile); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ElementToStream(docLog.getDocumentElement(), baos); String stringDoc2 = new String(baos.toByteArray()); writer.write(stringDoc2); writer.close(); // Der Header wird dabei leider verschossen, wieder zurck ndern String newstring = kostval.getTextResourceService().getText(MESSAGE_XML_HEADER); String oldstring = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><KOSTValLog>"; Util.oldnewstring(oldstring, newstring, logFile); } catch (Exception e) { LOGGER.logError("<Error>" + kostval.getTextResourceService().getText(ERROR_XML_UNKNOWN, e.getMessage())); System.out.println("Exception: " + e.getMessage()); } countSummaryNio = pdfaCountNio + siardCountNio + tiffCountNio + jp2CountNio; if (countNio.equals(count)) { // keine Dateien Validiert bestehendes Workverzeichnis ggf. lschen if (tmpDir.exists()) { Util.deleteDir(tmpDir); } System.exit(1); } else if (countSummaryNio == 0) { // bestehendes Workverzeichnis ggf. lschen if (tmpDir.exists()) { Util.deleteDir(tmpDir); } // alle Validierten Dateien valide System.exit(0); } else { // bestehendes Workverzeichnis ggf. lschen if (tmpDir.exists()) { Util.deleteDir(tmpDir); } // Fehler in Validierten Dateien --> invalide System.exit(2); } if (tmpDir.exists()) { Util.deleteDir(tmpDir); tmpDir.deleteOnExit(); } } LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_FORMAT2)); } else if (args[0].equals("--sip")) { LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_FORMAT1)); // TODO: Sipvalidierung --> erledigt --> nur Marker boolean validFormat = false; File originalSipFile = valDatei; File unSipFile = valDatei; File outputFile3c = null; String fileName3c = null; File tmpDirZip = null; // zuerst eine Formatvalidierung ber den Content dies ist analog aufgebaut wie --format Integer countNio = 0; Integer countSummaryNio = 0; Integer countSummaryIo = 0; Integer count = 0; Integer pdfaCountIo = 0; Integer pdfaCountNio = 0; Integer siardCountIo = 0; Integer siardCountNio = 0; Integer tiffCountIo = 0; Integer tiffCountNio = 0; Integer jp2CountIo = 0; Integer jp2CountNio = 0; if (!valDatei.isDirectory()) { Boolean zip = false; // Eine ZIP Datei muss mit PK.. beginnen if ((valDatei.getAbsolutePath().toLowerCase().endsWith(".zip") || valDatei.getAbsolutePath().toLowerCase().endsWith(".zip64"))) { FileReader fr = null; try { fr = new FileReader(valDatei); BufferedReader read = new BufferedReader(fr); // Hex 03 in Char umwandeln String str3 = "03"; int i3 = Integer.parseInt(str3, 16); char c3 = (char) i3; // Hex 04 in Char umwandeln String str4 = "04"; int i4 = Integer.parseInt(str4, 16); char c4 = (char) i4; // auslesen der ersten 4 Zeichen der Datei int length; int i; char[] buffer = new char[4]; length = read.read(buffer); for (i = 0; i != length; i++) ; // die beiden charArrays (soll und ist) mit einander vergleichen char[] charArray1 = buffer; char[] charArray2 = new char[] { 'P', 'K', c3, c4 }; if (Arrays.equals(charArray1, charArray2)) { // hchstwahrscheinlich ein ZIP da es mit 504B0304 respektive PK.. beginnt zip = true; } } catch (Exception e) { LOGGER.logError("<Error>" + kostval.getTextResourceService().getText(ERROR_XML_UNKNOWN, e.getMessage())); System.out.println("Exception: " + e.getMessage()); } } // wenn die Datei kein Directory ist, muss sie mit zip oder zip64 enden if ((!(valDatei.getAbsolutePath().toLowerCase().endsWith(".zip") || valDatei.getAbsolutePath().toLowerCase().endsWith(".zip64"))) || zip == false) { // Abbruch! D.h. Sip message beginnen, Meldung und Beenden ab hier bis System.exit( 1 ); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_FORMAT2)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_SIP1)); valDatei = originalSipFile; LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALTYPE, kostval.getTextResourceService().getText(MESSAGE_SIPVALIDATION))); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALFILE, valDatei.getAbsolutePath())); System.out.println(kostval.getTextResourceService().getText(MESSAGE_SIPVALIDATION)); System.out.println(valDatei.getAbsolutePath()); // die eigentliche Fehlermeldung LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_MODUL_Aa_SIP) + kostval.getTextResourceService().getText(ERROR_XML_AA_INCORRECTFILEENDING)); System.out.println(kostval.getTextResourceService().getText(ERROR_XML_AA_INCORRECTFILEENDING)); // Fehler im Validierten SIP --> invalide & Abbruch LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS_INVALID)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS_CLOSE)); System.out.println("Invalid"); System.out.println(""); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_SIP2)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_LOGEND)); // Zeitstempel End java.util.Date nowEnd = new java.util.Date(); java.text.SimpleDateFormat sdfEnd = new java.text.SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); String ausgabeEnd = sdfEnd.format(nowEnd); ausgabeEnd = "<End>" + ausgabeEnd + "</End>"; Util.valEnd(ausgabeEnd, logFile); Util.amp(logFile); // Die Konfiguration hereinkopieren try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(false); factory.setExpandEntityReferences(false); Document docConfig = factory.newDocumentBuilder().parse(configFile); NodeList list = docConfig.getElementsByTagName("configuration"); Element element = (Element) list.item(0); Document docLog = factory.newDocumentBuilder().parse(logFile); Node dup = docLog.importNode(element, true); docLog.getDocumentElement().appendChild(dup); FileWriter writer = new FileWriter(logFile); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ElementToStream(docLog.getDocumentElement(), baos); String stringDoc2 = new String(baos.toByteArray()); writer.write(stringDoc2); writer.close(); // Der Header wird dabei leider verschossen, wieder zurck ndern String newstring = kostval.getTextResourceService().getText(MESSAGE_XML_HEADER); String oldstring = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><KOSTValLog>"; Util.oldnewstring(oldstring, newstring, logFile); } catch (Exception e) { LOGGER.logError("<Error>" + kostval.getTextResourceService().getText(ERROR_XML_UNKNOWN, e.getMessage())); System.out.println("Exception: " + e.getMessage()); } // bestehendes Workverzeichnis ggf. lschen if (tmpDir.exists()) { Util.deleteDir(tmpDir); } System.exit(1); } else { // geziptes SIP --> in temp dir entzipen String toplevelDir = valDatei.getName(); int lastDotIdx = toplevelDir.lastIndexOf("."); toplevelDir = toplevelDir.substring(0, lastDotIdx); tmpDirZip = new File( tmpDir.getAbsolutePath() + File.separator + "ZIP" + File.separator + toplevelDir); try { Zip64Archiver.unzip(valDatei.getAbsolutePath(), tmpDirZip.getAbsolutePath()); } catch (Exception e) { try { Zip64Archiver.unzip64(valDatei, tmpDirZip); } catch (Exception e1) { // Abbruch! D.h. Sip message beginnen, Meldung und Beenden ab hier bis System.exit LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_FORMAT2)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_SIP1)); valDatei = originalSipFile; LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALTYPE, kostval.getTextResourceService().getText(MESSAGE_SIPVALIDATION))); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALFILE, valDatei.getAbsolutePath())); System.out.println(kostval.getTextResourceService().getText(MESSAGE_SIPVALIDATION)); System.out.println(valDatei.getAbsolutePath()); // die eigentliche Fehlermeldung LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_MODUL_Aa_SIP) + kostval.getTextResourceService().getText(ERROR_XML_AA_CANNOTEXTRACTZIP)); System.out.println( kostval.getTextResourceService().getText(ERROR_XML_AA_CANNOTEXTRACTZIP)); // Fehler im Validierten SIP --> invalide & Abbruch LOGGER.logError( kostval.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS_INVALID)); LOGGER.logError( kostval.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS_CLOSE)); System.out.println("Invalid"); System.out.println(""); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_SIP2)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_LOGEND)); // Zeitstempel End java.util.Date nowEnd = new java.util.Date(); java.text.SimpleDateFormat sdfEnd = new java.text.SimpleDateFormat( "dd.MM.yyyy HH:mm:ss"); String ausgabeEnd = sdfEnd.format(nowEnd); ausgabeEnd = "<End>" + ausgabeEnd + "</End>"; Util.valEnd(ausgabeEnd, logFile); Util.amp(logFile); // Die Konfiguration hereinkopieren try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(false); factory.setExpandEntityReferences(false); Document docConfig = factory.newDocumentBuilder().parse(configFile); NodeList list = docConfig.getElementsByTagName("configuration"); Element element = (Element) list.item(0); Document docLog = factory.newDocumentBuilder().parse(logFile); Node dup = docLog.importNode(element, true); docLog.getDocumentElement().appendChild(dup); FileWriter writer = new FileWriter(logFile); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ElementToStream(docLog.getDocumentElement(), baos); String stringDoc2 = new String(baos.toByteArray()); writer.write(stringDoc2); writer.close(); // Der Header wird dabei leider verschossen, wieder zurck ndern String newstring = kostval.getTextResourceService().getText(MESSAGE_XML_HEADER); String oldstring = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><KOSTValLog>"; Util.oldnewstring(oldstring, newstring, logFile); } catch (Exception e2) { LOGGER.logError("<Error>" + kostval.getTextResourceService() .getText(ERROR_XML_UNKNOWN, e2.getMessage())); System.out.println("Exception: " + e2.getMessage()); } // bestehendes Workverzeichnis ggf. lschen if (tmpDir.exists()) { Util.deleteDir(tmpDir); } System.exit(1); } } valDatei = tmpDirZip; File toplevelfolder = new File( valDatei.getAbsolutePath() + File.separator + valDatei.getName()); if (toplevelfolder.exists()) { valDatei = toplevelfolder; } unSipFile = valDatei; } } else { // SIP ist ein Ordner valDatei bleibt unverndert } // Vorgngige Formatvalidierung (Schritt 3c) Map<String, File> fileMap = Util.getFileMap(valDatei, false); Set<String> fileMapKeys = fileMap.keySet(); int pdf = 0; int tiff = 0; int siard = 0; int txt = 0; int csv = 0; int xml = 0; int xsd = 0; int wave = 0; int mp3 = 0; int jp2 = 0; int jpx = 0; int jpeg = 0; int png = 0; int dng = 0; int svg = 0; int mpeg2 = 0; int mp4 = 0; int xls = 0; int odt = 0; int ods = 0; int odp = 0; int other = 0; for (Iterator<String> iterator = fileMapKeys.iterator(); iterator.hasNext();) { String entryName = iterator.next(); File newFile = fileMap.get(entryName); if (!newFile.isDirectory() && newFile.getAbsolutePath().contains(File.separator + "content" + File.separator)) { valDatei = newFile; count = count + 1; // Ausgabe Dateizhler Ersichtlich das KOST-Val Dateien durchsucht System.out.print(count + " "); System.out.print("\r"); String extension = valDatei.getName(); int lastIndexOf = extension.lastIndexOf("."); if (lastIndexOf == -1) { // empty extension extension = "other"; } else { extension = extension.substring(lastIndexOf); } if (extension.equalsIgnoreCase(".pdf") || extension.equalsIgnoreCase(".pdfa")) { pdf = pdf + 1; } else if (extension.equalsIgnoreCase(".tiff") || extension.equalsIgnoreCase(".tif")) { tiff = tiff + 1; } else if (extension.equalsIgnoreCase(".siard")) { siard = siard + 1; } else if (extension.equalsIgnoreCase(".txt")) { txt = txt + 1; } else if (extension.equalsIgnoreCase(".csv")) { csv = csv + 1; } else if (extension.equalsIgnoreCase(".xml")) { xml = xml + 1; } else if (extension.equalsIgnoreCase(".xsd")) { xsd = xsd + 1; } else if (extension.equalsIgnoreCase(".wav")) { wave = wave + 1; } else if (extension.equalsIgnoreCase(".mp3")) { mp3 = mp3 + 1; } else if (extension.equalsIgnoreCase(".jp2")) { jp2 = jp2 + 1; } else if (extension.equalsIgnoreCase(".jpx") || extension.equalsIgnoreCase(".jpf")) { jpx = jpx + 1; } else if (extension.equalsIgnoreCase(".jpe") || extension.equalsIgnoreCase(".jpeg") || extension.equalsIgnoreCase(".jpg")) { jpeg = jpeg + 1; } else if (extension.equalsIgnoreCase(".png")) { png = png + 1; } else if (extension.equalsIgnoreCase(".dng")) { dng = dng + 1; } else if (extension.equalsIgnoreCase(".svg")) { svg = svg + 1; } else if (extension.equalsIgnoreCase(".mpeg") || extension.equalsIgnoreCase(".mpg")) { mpeg2 = mpeg2 + 1; } else if (extension.equalsIgnoreCase(".f4a") || extension.equalsIgnoreCase(".f4v") || extension.equalsIgnoreCase(".m4a") || extension.equalsIgnoreCase(".m4v") || extension.equalsIgnoreCase(".mp4")) { mp4 = mp4 + 1; } else if (extension.equalsIgnoreCase(".xls") || extension.equalsIgnoreCase(".xlw") || extension.equalsIgnoreCase(".xlsx")) { xls = xls + 1; } else if (extension.equalsIgnoreCase(".odt") || extension.equalsIgnoreCase(".ott")) { odt = odt + 1; } else if (extension.equalsIgnoreCase(".ods") || extension.equalsIgnoreCase(".ots")) { ods = ods + 1; } else if (extension.equalsIgnoreCase(".odp") || extension.equalsIgnoreCase(".otp")) { odp = odp + 1; } else { other = other + 1; } if (((valDatei.getAbsolutePath().toLowerCase().endsWith(".jp2"))) && jp2Validation.equals("yes")) { boolean valFile = valFile(valDatei, logFileName, directoryOfLogfile, verbose); if (valFile) { jp2CountIo = jp2CountIo + 1; } else { jp2CountNio = jp2CountNio + 1; } } else if (((valDatei.getAbsolutePath().toLowerCase().endsWith(".tiff") || valDatei.getAbsolutePath().toLowerCase().endsWith(".tif"))) && tiffValidation.equals("yes")) { boolean valFile = valFile(valDatei, logFileName, directoryOfLogfile, verbose); if (valFile) { tiffCountIo = tiffCountIo + 1; } else { tiffCountNio = tiffCountNio + 1; } } else if ((valDatei.getAbsolutePath().toLowerCase().endsWith(".siard")) && siardValidation.equals("yes")) { // Arbeitsverzeichnis zum Entpacken des Archivs erstellen String pathToWorkDirSiard = kostval.getConfigurationService().getPathToWorkDir(); File tmpDirSiard = new File(pathToWorkDirSiard + File.separator + "SIARD"); if (tmpDirSiard.exists()) { Util.deleteDir(tmpDirSiard); } if (!tmpDirSiard.exists()) { tmpDirSiard.mkdir(); } boolean valFile = valFile(valDatei, logFileName, directoryOfLogfile, verbose); if (valFile) { siardCountIo = siardCountIo + 1; } else { siardCountNio = siardCountNio + 1; } } else if (((valDatei.getAbsolutePath().toLowerCase().endsWith(".pdf") || valDatei.getAbsolutePath().toLowerCase().endsWith(".pdfa"))) && pdfaValidation.equals("yes")) { boolean valFile = valFile(valDatei, logFileName, directoryOfLogfile, verbose); if (valFile) { pdfaCountIo = pdfaCountIo + 1; } else { pdfaCountNio = pdfaCountNio + 1; } } else { countNio = countNio + 1; } } } countSummaryNio = pdfaCountNio + siardCountNio + tiffCountNio + jp2CountNio; countSummaryIo = pdfaCountIo + siardCountIo + tiffCountIo + jp2CountIo; int countSummaryIoP = 100 / count * countSummaryIo; int countSummaryNioP = 100 / count * countSummaryNio; int countNioP = 100 / count * countNio; String summary3c = kostval.getTextResourceService().getText(MESSAGE_XML_SUMMARY_3C, count, countSummaryIo, countSummaryNio, countNio, countSummaryIoP, countSummaryNioP, countNioP); if (countSummaryNio == 0) { // alle Validierten Dateien valide validFormat = true; fileName3c = "3c_Valide.txt"; } else { // Fehler in Validierten Dateien --> invalide validFormat = false; fileName3c = "3c_Invalide.txt"; } // outputFile3c = new File( directoryOfLogfile + fileName3c ); outputFile3c = new File(pathToWorkDir + File.separator + fileName3c); try { outputFile3c.createNewFile(); } catch (IOException e) { e.printStackTrace(); } if (countNio == count) { // keine Dateien Validiert LOGGER.logError(kostval.getTextResourceService().getText(ERROR_INCORRECTFILEENDINGS, formatValOn)); System.out .println(kostval.getTextResourceService().getText(ERROR_INCORRECTFILEENDINGS, formatValOn)); } LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_FORMAT2)); // Start Normale SIP-Validierung mit auswertung Format-Val. im 3c LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_SIP1)); valDatei = unSipFile; LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALTYPE, kostval.getTextResourceService().getText(MESSAGE_SIPVALIDATION))); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALFILE, originalSipFile.getAbsolutePath())); System.out.println(kostval.getTextResourceService().getText(MESSAGE_SIPVALIDATION)); System.out.println(originalSipFile.getAbsolutePath()); Controllersip controller = (Controllersip) context.getBean("controllersip"); boolean okMandatory = false; okMandatory = controller.executeMandatory(valDatei, directoryOfLogfile); boolean ok = false; /* die Validierungen 1a - 1d sind obligatorisch, wenn sie bestanden wurden, knnen die * restlichen Validierungen, welche nicht zum Abbruch der Applikation fhren, ausgefhrt * werden. * * 1a wurde bereits getestet (vor der Formatvalidierung entsprechend fngt der Controller mit * 1b an */ if (okMandatory) { ok = controller.executeOptional(valDatei, directoryOfLogfile); } // Formatvalidierung validFormat ok = (ok && okMandatory && validFormat); if (ok) { // Validiertes SIP valide LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS_VALID)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS_CLOSE)); System.out.println("Valid"); System.out.println(""); } else { // Fehler im Validierten SIP --> invalide LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS_INVALID)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_VALERGEBNIS_CLOSE)); System.out.println("Invalid"); System.out.println(""); } // ggf. Fehlermeldung 3c ergnzen Util.val3c(summary3c, logFile ); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_SIP2)); LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_LOGEND)); // Zeitstempel End java.util.Date nowEnd = new java.util.Date(); java.text.SimpleDateFormat sdfEnd = new java.text.SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); String ausgabeEnd = sdfEnd.format(nowEnd); ausgabeEnd = "<End>" + ausgabeEnd + "</End>"; Util.valEnd(ausgabeEnd, logFile); Util.val3c(summary3c, logFile); Util.amp(logFile); // Die Konfiguration hereinkopieren try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(false); factory.setExpandEntityReferences(false); Document docConfig = factory.newDocumentBuilder().parse(configFile); NodeList list = docConfig.getElementsByTagName("configuration"); Element element = (Element) list.item(0); Document docLog = factory.newDocumentBuilder().parse(logFile); Node dup = docLog.importNode(element, true); docLog.getDocumentElement().appendChild(dup); FileWriter writer = new FileWriter(logFile); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ElementToStream(docLog.getDocumentElement(), baos); String stringDoc2 = new String(baos.toByteArray()); writer.write(stringDoc2); writer.close(); // Der Header wird dabei leider verschossen, wieder zurck ndern String newstring = kostval.getTextResourceService().getText(MESSAGE_XML_HEADER); String oldstring = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><KOSTValLog>"; Util.oldnewstring(oldstring, newstring, logFile); } catch (Exception e) { LOGGER.logError( "<Error>" + kostval.getTextResourceService().getText(ERROR_XML_UNKNOWN, e.getMessage())); System.out.println("Exception: " + e.getMessage()); } // bestehendes Workverzeichnis ggf. lschen if (tmpDir.exists()) { Util.deleteDir(tmpDir); } StringBuffer command = new StringBuffer("rd " + tmpDir.getAbsolutePath() + " /s /q"); try { // KaD-Diagnose-Datei mit den neusten Anzahl Dateien pro KaD-Format Updaten DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(xmlDiaCopy); doc.getDocumentElement().normalize(); NodeList nList = doc.getElementsByTagName("KOSTVal_FFCounter"); for (int temp = 0; temp < nList.getLength(); temp++) { Node nNode = nList.item(temp); if (nNode.getNodeType() == Node.ELEMENT_NODE) { Element eElement = (Element) nNode; if (pdf > 0) { String pdfNodeString = eElement.getElementsByTagName("pdf").item(0).getTextContent(); int pdfNodeValue = Integer.parseInt(pdfNodeString); pdf = pdf + pdfNodeValue; Util.kadDia("<pdf>" + pdfNodeValue + "</pdf>", "<pdf>" + pdf + "</pdf>", xmlDiaCopy); } if (tiff > 0) { String tiffNodeString = eElement.getElementsByTagName("tiff").item(0).getTextContent(); int tiffNodeValue = Integer.parseInt(tiffNodeString); tiff = tiff + tiffNodeValue; Util.kadDia("<tiff>" + tiffNodeValue + "</tiff>", "<tiff>" + tiff + "</tiff>", xmlDiaCopy); } if (siard > 0) { String siardNodeString = eElement.getElementsByTagName("siard").item(0) .getTextContent(); int siardNodeValue = Integer.parseInt(siardNodeString); siard = siard + siardNodeValue; Util.kadDia("<siard>" + siardNodeValue + "</siard>", "<siard>" + siard + "</siard>", xmlDiaCopy); } if (txt > 0) { String txtNodeString = eElement.getElementsByTagName("txt").item(0).getTextContent(); int txtNodeValue = Integer.parseInt(txtNodeString); txt = txt + txtNodeValue; Util.kadDia("<txt>" + txtNodeValue + "</txt>", "<txt>" + txt + "</txt>", xmlDiaCopy); } if (csv > 0) { String csvNodeString = eElement.getElementsByTagName("csv").item(0).getTextContent(); int csvNodeValue = Integer.parseInt(csvNodeString); csv = csv + csvNodeValue; Util.kadDia("<csv>" + csvNodeValue + "</csv>", "<csv>" + csv + "</csv>", xmlDiaCopy); } if (xml > 0) { String xmlNodeString = eElement.getElementsByTagName("xml").item(0).getTextContent(); int xmlNodeValue = Integer.parseInt(xmlNodeString); xml = xml + xmlNodeValue; Util.kadDia("<xml>" + xmlNodeValue + "</xml>", "<xml>" + xml + "</xml>", xmlDiaCopy); } if (xsd > 0) { String xsdNodeString = eElement.getElementsByTagName("xsd").item(0).getTextContent(); int xsdNodeValue = Integer.parseInt(xsdNodeString); xsd = xsd + xsdNodeValue; Util.kadDia("<xsd>" + xsdNodeValue + "</xsd>", "<xsd>" + xsd + "</xsd>", xmlDiaCopy); } if (wave > 0) { String waveNodeString = eElement.getElementsByTagName("wave").item(0).getTextContent(); int waveNodeValue = Integer.parseInt(waveNodeString); wave = wave + waveNodeValue; Util.kadDia("<wave>" + waveNodeValue + "</wave>", "<wave>" + wave + "</wave>", xmlDiaCopy); } if (mp3 > 0) { String mp3NodeString = eElement.getElementsByTagName("mp3").item(0).getTextContent(); int mp3NodeValue = Integer.parseInt(mp3NodeString); mp3 = mp3 + mp3NodeValue; Util.kadDia("<mp3>" + mp3NodeValue + "</mp3>", "<mp3>" + mp3 + "</mp3>", xmlDiaCopy); } if (jp2 > 0) { String jp2NodeString = eElement.getElementsByTagName("jp2").item(0).getTextContent(); int jp2NodeValue = Integer.parseInt(jp2NodeString); jp2 = jp2 + jp2NodeValue; Util.kadDia("<jp2>" + jp2NodeValue + "</jp2>", "<jp2>" + jp2 + "</jp2>", xmlDiaCopy); } if (jpx > 0) { String jpxNodeString = eElement.getElementsByTagName("jpx").item(0).getTextContent(); int jpxNodeValue = Integer.parseInt(jpxNodeString); jpx = jpx + jpxNodeValue; Util.kadDia("<jpx>" + jpxNodeValue + "</jpx>", "<jpx>" + jpx + "</jpx>", xmlDiaCopy); } if (jpeg > 0) { String jpegNodeString = eElement.getElementsByTagName("jpeg").item(0).getTextContent(); int jpegNodeValue = Integer.parseInt(jpegNodeString); jpeg = jpeg + jpegNodeValue; Util.kadDia("<jpeg>" + jpegNodeValue + "</jpeg>", "<jpeg>" + jpeg + "</jpeg>", xmlDiaCopy); } if (png > 0) { String pngNodeString = eElement.getElementsByTagName("png").item(0).getTextContent(); int pngNodeValue = Integer.parseInt(pngNodeString); png = png + pngNodeValue; Util.kadDia("<png>" + pngNodeValue + "</png>", "<png>" + png + "</png>", xmlDiaCopy); } if (dng > 0) { String dngNodeString = eElement.getElementsByTagName("dng").item(0).getTextContent(); int dngNodeValue = Integer.parseInt(dngNodeString); dng = dng + dngNodeValue; Util.kadDia("<dng>" + dngNodeValue + "</dng>", "<dng>" + dng + "</dng>", xmlDiaCopy); } if (svg > 0) { String svgNodeString = eElement.getElementsByTagName("svg").item(0).getTextContent(); int svgNodeValue = Integer.parseInt(svgNodeString); svg = svg + svgNodeValue; Util.kadDia("<svg>" + svgNodeValue + "</svg>", "<svg>" + svg + "</svg>", xmlDiaCopy); } if (mpeg2 > 0) { String mpeg2NodeString = eElement.getElementsByTagName("mpeg2").item(0) .getTextContent(); int mpeg2NodeValue = Integer.parseInt(mpeg2NodeString); mpeg2 = mpeg2 + mpeg2NodeValue; Util.kadDia("<mpeg2>" + mpeg2NodeValue + "</mpeg2>", "<mpeg2>" + mpeg2 + "</mpeg2>", xmlDiaCopy); } if (mp4 > 0) { String mp4NodeString = eElement.getElementsByTagName("mp4").item(0).getTextContent(); int mp4NodeValue = Integer.parseInt(mp4NodeString); mp4 = mp4 + mp4NodeValue; Util.kadDia("<mp4>" + mp4NodeValue + "</mp4>", "<mp4>" + mp4 + "</mp4>", xmlDiaCopy); } if (xls > 0) { String xlsNodeString = eElement.getElementsByTagName("xls").item(0).getTextContent(); int xlsNodeValue = Integer.parseInt(xlsNodeString); xls = xls + xlsNodeValue; Util.kadDia("<xls>" + xlsNodeValue + "</xls>", "<xls>" + xls + "</xls>", xmlDiaCopy); } if (odt > 0) { String odtNodeString = eElement.getElementsByTagName("odt").item(0).getTextContent(); int odtNodeValue = Integer.parseInt(odtNodeString); odt = odt + odtNodeValue; Util.kadDia("<odt>" + odtNodeValue + "</odt>", "<odt>" + odt + "</odt>", xmlDiaCopy); } if (ods > 0) { String odsNodeString = eElement.getElementsByTagName("ods").item(0).getTextContent(); int odsNodeValue = Integer.parseInt(odsNodeString); ods = ods + odsNodeValue; Util.kadDia("<ods>" + odsNodeValue + "</ods>", "<ods>" + ods + "</ods>", xmlDiaCopy); } if (odp > 0) { String odpNodeString = eElement.getElementsByTagName("odp").item(0).getTextContent(); int odpNodeValue = Integer.parseInt(odpNodeString); odp = odp + odpNodeValue; Util.kadDia("<odp>" + odpNodeValue + "</odp>", "<odp>" + odp + "</odp>", xmlDiaCopy); } if (other > 0) { String otherNodeString = eElement.getElementsByTagName("other").item(0) .getTextContent(); int otherNodeValue = Integer.parseInt(otherNodeString); other = other + otherNodeValue; Util.kadDia("<other>" + otherNodeValue + "</other>", "<other>" + other + "</other>", xmlDiaCopy); } } } } catch (Exception e) { e.printStackTrace(); } if (ok) { // bestehendes Workverzeichnis ggf. lschen if (tmpDir.exists()) { Util.deleteDir(tmpDir); } if (tmpDir.exists()) { Runtime rt = Runtime.getRuntime(); Process proc = rt.exec(command.toString()); } System.exit(0); } else { // bestehendes Workverzeichnis ggf. lschen if (tmpDir.exists()) { Util.deleteDir(tmpDir); } if (tmpDir.exists()) { Runtime rt = Runtime.getRuntime(); Process proc = rt.exec(command.toString()); } System.exit(2); } LOGGER.logError(kostval.getTextResourceService().getText(MESSAGE_XML_SIP2)); } else { /* Ueberprfung des Parameters (Val-Typ): format / sip args[0] ist nicht "--format" oder * "--sip" --> INVALIDE */ LOGGER.logError(kostval.getTextResourceService().getText(ERROR_IOE, kostval.getTextResourceService().getText(ERROR_PARAMETER_USAGE))); System.out.println(kostval.getTextResourceService().getText(ERROR_PARAMETER_USAGE)); if (tmpDir.exists()) { Util.deleteDir(tmpDir); tmpDir.deleteOnExit(); } System.exit(1); } }
From source file:Pathway2RDFv2.java
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException, ServiceException, ClassNotFoundException, IDMapperException, ParseException { int softwareVersion = 0; int schemaVersion = 0; int latestRevision = 0; BioDataSource.init();/*from www .j a v a 2s.co m*/ Class.forName("org.bridgedb.rdb.IDMapperRdb"); File dir = new File("/Users/andra/Downloads/bridge"); File[] bridgeDbFiles = dir.listFiles(); IDMapperStack mapper = new IDMapperStack(); for (File bridgeDbFile : bridgeDbFiles) { System.out.println(bridgeDbFile.getAbsolutePath()); mapper.addIDMapper("idmapper-pgdb:" + bridgeDbFile.getAbsolutePath()); } Model bridgeDbmodel = ModelFactory.createDefaultModel(); InputStream in = new FileInputStream("/tmp/BioDataSource.ttl"); bridgeDbmodel.read(in, "", "TURTLE"); WikiPathwaysClient client = new WikiPathwaysClient( new URL("http://www.wikipathways.org/wpi/webservice/webservice.php")); basicCalls.printMemoryStatus(); //Map wikipathway organisms to NCBI organisms HashMap<String, String> organismTaxonomy = wpRelatedCalls.getOrganismsTaxonomyMapping(); //HashMap<String, String> miriamSources = new HashMap<String, String>(); // HashMap<String, Str ing> miriamLinks = basicCalls.getMiriamUriBridgeDb(); //Document wikiPathwaysDom = basicCalls.openXmlFile(args[0]); Document wikiPathwaysDom = basicCalls.openXmlFile("/tmp/WpGPML.xml"); //initiate the Jena model to be populated Model model = ModelFactory.createDefaultModel(); Model voidModel = ModelFactory.createDefaultModel(); voidModel.setNsPrefix("xsd", XSD.getURI()); voidModel.setNsPrefix("void", Void.getURI()); voidModel.setNsPrefix("wprdf", "http://rdf.wikipathways.org/"); voidModel.setNsPrefix("pav", Pav.getURI()); voidModel.setNsPrefix("prov", Prov.getURI()); voidModel.setNsPrefix("dcterms", DCTerms.getURI()); voidModel.setNsPrefix("biopax", Biopax_level3.getURI()); voidModel.setNsPrefix("gpml", Gpml.getURI()); voidModel.setNsPrefix("wp", Wp.getURI()); voidModel.setNsPrefix("foaf", FOAF.getURI()); voidModel.setNsPrefix("hmdb", "http://identifiers.org/hmdb/"); voidModel.setNsPrefix("freq", Freq.getURI()); voidModel.setNsPrefix("dc", DC.getURI()); setModelPrefix(model); //Populate void.ttl Calendar now = Calendar.getInstance(); Literal nowLiteral = voidModel.createTypedLiteral(now); Literal titleLiteral = voidModel.createLiteral("WikiPathways-RDF VoID Description", "en"); Literal descriptionLiteral = voidModel .createLiteral("This is the VoID description for a WikiPathwyas-RDF dataset.", "en"); Resource voidBase = voidModel.createResource("http://rdf.wikipathways.org/"); Resource identifiersOrg = voidModel.createResource("http://identifiers.org"); Resource wpHomeBase = voidModel.createResource("http://www.wikipathways.org/"); Resource authorResource = voidModel .createResource("http://semantics.bigcat.unimaas.nl/figshare/search_author.php?author=waagmeester"); Resource apiResource = voidModel .createResource("http://www.wikipathways.org/wpi/webservice/webservice.php"); Resource mainDatadump = voidModel.createResource("http://rdf.wikipathways.org/wpContent.ttl.gz"); Resource license = voidModel.createResource("http://creativecommons.org/licenses/by/3.0/"); Resource instituteResource = voidModel.createResource("http://dbpedia.org/page/Maastricht_University"); voidBase.addProperty(RDF.type, Void.Dataset); voidBase.addProperty(DCTerms.title, titleLiteral); voidBase.addProperty(DCTerms.description, descriptionLiteral); voidBase.addProperty(FOAF.homepage, wpHomeBase); voidBase.addProperty(DCTerms.license, license); voidBase.addProperty(Void.uriSpace, voidBase); voidBase.addProperty(Void.uriSpace, identifiersOrg); voidBase.addProperty(Pav.importedBy, authorResource); voidBase.addProperty(Pav.importedFrom, apiResource); voidBase.addProperty(Pav.importedOn, nowLiteral); voidBase.addProperty(Void.dataDump, mainDatadump); voidBase.addProperty(Voag.frequencyOfChange, Freq.Irregular); voidBase.addProperty(Pav.createdBy, authorResource); voidBase.addProperty(Pav.createdAt, instituteResource); voidBase.addLiteral(Pav.createdOn, nowLiteral); voidBase.addProperty(DCTerms.subject, Biopax_level3.Pathway); voidBase.addProperty(Void.exampleResource, voidModel.createResource("http://identifiers.org/ncbigene/2678")); voidBase.addProperty(Void.exampleResource, voidModel.createResource("http://identifiers.org/pubmed/15215856")); voidBase.addProperty(Void.exampleResource, voidModel.createResource("http://identifiers.org/hmdb/HMDB02005")); voidBase.addProperty(Void.exampleResource, voidModel.createResource("http://rdf.wikipathways.org/WP15")); voidBase.addProperty(Void.exampleResource, voidModel.createResource("http://identifiers.org/obo.chebi/17242")); for (String organism : organismTaxonomy.values()) { voidBase.addProperty(DCTerms.subject, voidModel.createResource("http://dbpedia.org/page/" + organism.replace(" ", "_"))); } voidBase.addProperty(Void.vocabulary, Biopax_level3.NAMESPACE); voidBase.addProperty(Void.vocabulary, voidModel.createResource(Wp.getURI())); voidBase.addProperty(Void.vocabulary, voidModel.createResource(Gpml.getURI())); voidBase.addProperty(Void.vocabulary, FOAF.NAMESPACE); voidBase.addProperty(Void.vocabulary, Pav.NAMESPACE); //Custom Properties String baseUri = "http://rdf.wikipathways.org/"; NodeList pathwayElements = wikiPathwaysDom.getElementsByTagName("Pathway"); //BioDataSource.init(); for (int i = 0; i < pathwayElements.getLength(); i++) { Model pathwayModel = createPathwayModel(); String wpId = pathwayElements.item(i).getAttributes().getNamedItem("identifier").getTextContent(); String revision = pathwayElements.item(i).getAttributes().getNamedItem("revision").getTextContent(); String pathwayOrganism = ""; if (pathwayElements.item(i).getAttributes().getNamedItem("Organism") != null) pathwayOrganism = pathwayElements.item(i).getAttributes().getNamedItem("Organism").getTextContent() .trim(); if (Integer.valueOf(revision) > latestRevision) { latestRevision = Integer.valueOf(revision); } File f = new File("/tmp/" + args[0] + "/" + wpId + "_r" + revision + ".ttl"); System.out.println(f.getName()); if (!f.exists()) { Resource voidPwResource = wpRelatedCalls.addVoidTriples(voidModel, voidBase, pathwayElements.item(i), client); Resource pwResource = wpRelatedCalls.addPathwayLevelTriple(pathwayModel, pathwayElements.item(i), organismTaxonomy); // Get the comments NodeList commentElements = ((Element) pathwayElements.item(i)).getElementsByTagName("Comment"); wpRelatedCalls.addCommentTriples(pathwayModel, pwResource, commentElements, wpId, revision); // Get the Groups NodeList groupElements = ((Element) pathwayElements.item(i)).getElementsByTagName("Group"); for (int n = 0; n < groupElements.getLength(); n++) { wpRelatedCalls.addGroupTriples(pathwayModel, pwResource, groupElements.item(n), wpId, revision); } // Get all the Datanodes NodeList dataNodesElement = ((Element) pathwayElements.item(i)).getElementsByTagName("DataNode"); for (int j = 0; j < dataNodesElement.getLength(); j++) { wpRelatedCalls.addDataNodeTriples(pathwayModel, pwResource, dataNodesElement.item(j), wpId, revision, bridgeDbmodel, mapper); } // Get all the lines NodeList linesElement = ((Element) pathwayElements.item(i)).getElementsByTagName("Line"); for (int k = 0; k < linesElement.getLength(); k++) { wpRelatedCalls.addLineTriples(pathwayModel, pwResource, linesElement.item(k), wpId, revision); } //Get all the labels NodeList labelsElement = ((Element) pathwayElements.item(i)).getElementsByTagName("Label"); for (int l = 0; l < labelsElement.getLength(); l++) { wpRelatedCalls.addLabelTriples(pathwayModel, pwResource, labelsElement.item(l), wpId, revision); } NodeList referenceElements = ((Element) pathwayElements.item(i)) .getElementsByTagName("bp:PublicationXref"); for (int m = 0; m < referenceElements.getLength(); m++) { wpRelatedCalls.addReferenceTriples(pathwayModel, pwResource, referenceElements.item(m), wpId, revision); } NodeList referenceElements2 = ((Element) pathwayElements.item(i)) .getElementsByTagName("bp:publicationXref"); for (int m = 0; m < referenceElements2.getLength(); m++) { wpRelatedCalls.addReferenceTriples(pathwayModel, pwResource, referenceElements2.item(m), wpId, revision); } NodeList referenceElements3 = ((Element) pathwayElements.item(i)) .getElementsByTagName("bp:PublicationXRef"); for (int m = 0; m < referenceElements3.getLength(); m++) { wpRelatedCalls.addReferenceTriples(pathwayModel, pwResource, referenceElements3.item(m), wpId, revision); } NodeList ontologyElements = ((Element) pathwayElements.item(i)) .getElementsByTagName("bp:openControlledVocabulary"); for (int n = 0; n < ontologyElements.getLength(); n++) { wpRelatedCalls.addPathwayOntologyTriples(pathwayModel, pwResource, ontologyElements.item(n)); } System.out.println(wpId); basicCalls.saveRDF2File(pathwayModel, "/tmp/" + args[0] + "/" + wpId + "_r" + revision + ".ttl", "TURTLE"); model.add(pathwayModel); pathwayModel.removeAll(); } } Date myDate = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String myDateString = sdf.format(myDate); FileUtils.writeStringToFile(new File("latestVersion.txt"), "v" + schemaVersion + "." + softwareVersion + "." + latestRevision + "_" + myDateString); basicCalls.saveRDF2File(model, "/tmp/wpContent_v" + schemaVersion + "." + softwareVersion + "." + latestRevision + "_" + myDateString + ".ttl", "TURTLE"); basicCalls.saveRDF2File(voidModel, "/tmp/void.ttl", "TURTLE"); }
From source file:Main.java
public static void edit(Document doc) { NodeList list = doc.getElementsByTagName("name"); Element element = (Element) list.item(0); Element dup = (Element) element.cloneNode(true); element.getParentNode().insertBefore(dup, element.getNextSibling()); }
From source file:Main.java
public static void sendXml(String result, int operationN) throws Exception { String filepath = "file.xml"; DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); Document doc = docBuilder.parse(filepath); Node tonode = doc.getElementsByTagName("command").item(0); Element res = doc.createElement("result"); res.setTextContent(result);//from w w w . j av a 2 s.co m tonode.appendChild(res); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result1 = new StreamResult(new File("file2.xml")); StreamResult result3 = new StreamResult(System.out); transformer.transform(source, result1); }
From source file:Main.java
public static String getValue(String xmlPath, String key) throws Exception { File file = new File(xmlPath); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(file); return doc.getElementsByTagName(key).item(0).getFirstChild().getNodeValue(); }
From source file:Main.java
public static Node getNode(Document dom, String key) { Node node = dom.getElementsByTagName(key).item(0); if (node == null) { return null; }/*ww w . j ava2 s . c om*/ return node; }