URL getConfigSource(final String configFile, final String[] args) throws MalformedURLException {
		if (configFile.startsWith("http:") || configFile.startsWith("https:")
				|| configFile.startsWith("file:")) {
			return new URL(configFile);
		}
		if (configFile.equals("--")) {
			final Charset ISO = Charset.forName("ISO-8859-1");
			final long mtime = System.currentTimeMillis();
			final StringBuilder sb = new StringBuilder();
			final ByteArrayInputStream baos;
			for (final String a : args) {
				if (a == null || a.isEmpty() || a.equals("--") || a.startsWith("#")) {
					continue;
				}
				sb.append(a).append("\r\n");
			}
			baos = new ByteArrayInputStream(sb.toString().getBytes(ISO));
			return new URL(null, "mem://.", new URLStreamHandler() {
				@Override
				protected URLConnection openConnection(final URL u) throws IOException {
					return new URLConnection(u) {
						@Override
						public void connect() throws IOException {
						}

						@Override
						public InputStream getInputStream() throws IOException {
							baos.reset();
							return baos;
						}

						@Override
						public long getLastModified() {
							return mtime;
						}
					};
				}
			});
		}
		return getClass().getResource("/" + configFile);
	}