/** * Creates a new {@link ResolverSystem} instance of the specified user view type using the {@link Thread} Context * {@link ClassLoader}. Will consult a configuration file visible to the {@link Thread} Context {@link ClassLoader} named * "META-INF/services/$fullyQualfiedClassName" which should contain a key=value format with the key * {@link ResolverSystemFactory#KEY_IMPL_CLASS_NAME}. The implementation class name must have a no-arg constructor. * * @param userViewClass The user view type * @return The new {@link ResolverSystem} instance of the specified user view type created by using the {@link Thread} * Context {@link ClassLoader}. * @throws IllegalArgumentException * If the user view class was not specified */ static <RESOLVERSYSTEMTYPE extends ResolverSystem> RESOLVERSYSTEMTYPE createFromUserView( final Class<RESOLVERSYSTEMTYPE> userViewClass) throws IllegalArgumentException { return createFromUserView(userViewClass, SecurityActions.getThreadContextClassLoader()); }