src/main/java/js/mvc/ResourceServlet.java
private static String key(ManagedMethodSPI resourceMethod) {
		StringBuilder key = new StringBuilder();
		if (resourceMethod.getDeclaringClass().getRequestPath() != null) {
			key.append('/');
			key.append(resourceMethod.getDeclaringClass().getRequestPath());
		}
		key.append('/');
		key.append(resourceMethod.getRequestPath());
		return key.toString();
	}
private static String key(ManagedMethodSPI resourceMethod) {
		StringBuilder key = new StringBuilder();
		if (resourceMethod.getDeclaringClass().getRequestPath() != null) {
			key.append('/');
			key.append(resourceMethod.getDeclaringClass().getRequestPath());
		}
		key.append('/');
		key.append(resourceMethod.getRequestPath());
		return key.toString();
	}
Generate storage key for resource methods cache. This key is create from controller and resource method request paths and
is used on cache initialization. It is paired with {@link #key(String)} created from request path on actual method
invocation.
<p>
Here is storage key syntax that should be identical with retrieval key. Key has optional controller path - missing if use
default controller and resource method path. Controller path is the declaring class request path,
{@link ManagedClassSPI#getRequestPath()} and resource path is managed method request path,
{@link ManagedMethodSPI#getRequestPath()}.

<pre>
key = ["/" controller-path ] "/" resource-path
controller-path = declaring class request path
resource-path = managed method request path
</pre>

@param resourceMethod resource method.
@return resource method key.