public static Collection<FieldConnectionEntry> parseEntries(Element entries) throws XMLException, CipherException, IOException { if (!entries.getTagName().equals("jdbc-entries")) { throw new XMLException("Outer tag must be <jdbc-entries>"); } String base64Key = entries.getAttribute("key"); if (base64Key == null) { throw new XMLException("Cipher key attribute missing."); } Key key = KeyGeneratorTool.makeKey(Base64.decode(base64Key)); Collection<FieldConnectionEntry> result = new LinkedList<FieldConnectionEntry>(); NodeList children = entries.getElementsByTagName(FieldConnectionEntry.XML_TAG_NAME); for (int i = 0; i < children.getLength(); i++) { result.add(new FieldConnectionEntry((Element) children.item(i), key)); } return result; }
public static void writeXMLConnectionsEntries( Collection<FieldConnectionEntry> connectionEntries, File connectionEntriesFile) { Key key; try { key = KeyGeneratorTool.getUserKey(); } catch (IOException e) { // LogService.getRoot().log(Level.WARNING, "Cannot retrieve key, probably no one was created: // "+e, e); LogService.getRoot() .log( Level.WARNING, I18N.getMessage( LogService.getRoot().getResourceBundle(), "com.rapidminer.tools.jdbc.connection.DatabaseConnectionService.retrieving_key_error", e), e); return; } try { XMLTools.stream( toXML(connectionEntries, key, null, false), connectionEntriesFile, Charset.forName("UTF-8")); } catch (Exception e) { // LogService.getRoot().log(Level.WARNING, "Failed to write database connections file: "+e, // e); LogService.getRoot() .log( Level.WARNING, I18N.getMessage( LogService.getRoot().getResourceBundle(), "com.rapidminer.tools.jdbc.connection.DatabaseConnectionService.writing_database_connection_error", e), e); } }