src/main/java/js/net/HttpRmiServlet.java
private static String className(String classPath) {
		StringBuilder className = new StringBuilder();
		char separator = '.';
		char c = classPath.charAt(1);
		// i = 1 to skip leading path separator
		for (int i = 1;;) {
			if (c == '/') {
				c = separator;
			}
			className.append(c);

			if (++i == classPath.length()) {
				break;
			}

			c = classPath.charAt(i);
			// after first class detected change separator to dollar since rest are inner classes
			// this solution copes well with not restricted inner level
			if (Character.isUpperCase(c)) {
				separator = '$';
			}
		}
		return className.toString();
	}
private static String className(String classPath) {
		StringBuilder className = new StringBuilder();
		char separator = '.';
		char c = classPath.charAt(1);
		// i = 1 to skip leading path separator
		for (int i = 1;;) {
			if (c == '/') {
				c = separator;
			}
			className.append(c);

			if (++i == classPath.length()) {
				break;
			}

			c = classPath.charAt(i);
			// after first class detected change separator to dollar since rest are inner classes
			// this solution copes well with not restricted inner level
			if (Character.isUpperCase(c)) {
				separator = '$';
			}
		}
		return className.toString();
	}
Extract qualified class name, including inner classes, from class path part of the request path. Class path parameter is
the class name but with slash as separator, e.g. <code>/sixqs/site/controller/ParticipantController</code>. This helper
handles inner classes using standard notation with '$' separator; for example
<code>/js/test/net/RmiController/Query</code> is converted to <code>js.test.net.RmiController$Query</code>.
<p>
Class nesting is not restricted to a single level. For example <code>/js/test/net/RmiController/Query/Item</code> is
converted to <code>js.test.net.RmiController$Query$Item</code>.
<p>
It is expected that class path argument to be well formed. If class path argument is not valid this method behavior is
not defined.

@param classPath qualified class name using slash as separator and with leading path separator.
@return qualified class name using dollar notation for inner classes.