test_class.file: adapters/oidc/osgi-adapter/src/test/java/org/keycloak/adapters/osgi/PathBasedKeycloakConfigResolverTest.java
test_class.identifier: PathBasedKeycloakConfigResolverTest
test_case.body: @Test
      public void relativeURIsAndContexts() throws Exception {
          PathBasedKeycloakConfigResolver resolver = new PathBasedKeycloakConfigResolver();
  
          assertNotNull(populate(resolver, "test")
                  .resolve(new MockRequest("http://localhost/test/a/b/c?d=e", "/a/b/c")));
  
          assertNotNull(populate(resolver, "test")
                  .resolve(new MockRequest("http://localhost/test/a/b/c?d=e", "/a/b")));
  
          // means default context and actually we use first segment
          assertNotNull(populate(resolver, "test")
                  .resolve(new MockRequest("http://localhost/test/a/b/c?d=e", "/test/a/b/c")));
  
          assertNotNull(populate(resolver, "test/a")
                  .resolve(new MockRequest("http://localhost/test/a/b/c?d=e", "/b/c")));
  
          assertNotNull(populate(resolver, "")
                  .resolve(new MockRequest("http://localhost/", "/")));
      }
test_case.class_method_signature: PathBasedKeycloakConfigResolverTest.relativeURIsAndContexts()
test_case.full_signature: @Test public void relativeURIsAndContexts()
test_case.identifier: relativeURIsAndContexts
test_case.invocations: assertNotNull resolve populate assertNotNull resolve populate assertNotNull resolve populate assertNotNull resolve populate assertNotNull resolve populate
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void relativeURIsAndContexts()
focal_class.declarator: log = Logger.getLogger(PathBasedKeycloakConfigResolver.class)
focal_class.modifier: protected static final
focal_class.original_string: protected static final Logger log = Logger.getLogger(PathBasedKeycloakConfigResolver.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: cache = new ConcurrentHashMap<String, KeycloakDeployment>()
focal_class.modifier: private final
focal_class.original_string: private final Map<String, KeycloakDeployment> cache = new ConcurrentHashMap<String, KeycloakDeployment>();
focal_class.type: Map<String, KeycloakDeployment>
focal_class.var_name: cache
focal_class.declarator: keycloakConfigLocation = null
focal_class.modifier: private
focal_class.original_string: private File keycloakConfigLocation = null;
focal_class.type: File
focal_class.var_name: keycloakConfigLocation
focal_class.file: adapters/oidc/osgi-adapter/src/main/java/org/keycloak/adapters/osgi/PathBasedKeycloakConfigResolver.java
focal_class.identifier: PathBasedKeycloakConfigResolver
focal_class.interfaces: implements KeycloakConfigResolver
focal_class.class_method_signature: PathBasedKeycloakConfigResolver.PathBasedKeycloakConfigResolver()
focal_class.full_signature: public  PathBasedKeycloakConfigResolver()
focal_class.identifier: PathBasedKeycloakConfigResolver
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  PathBasedKeycloakConfigResolver()
focal_class.class_method_signature: PathBasedKeycloakConfigResolver.resolve(OIDCHttpFacade.Request request)
focal_class.full_signature: @Override public KeycloakDeployment resolve(OIDCHttpFacade.Request request)
focal_class.identifier: resolve
focal_class.modifiers: @Override public
focal_class.parameters: (OIDCHttpFacade.Request request)
focal_class.return: KeycloakDeployment
focal_class.signature: KeycloakDeployment resolve(OIDCHttpFacade.Request request)
focal_class.class_method_signature: PathBasedKeycloakConfigResolver.getOrCreateDeployment(String pathFragment)
focal_class.full_signature: protected synchronized KeycloakDeployment getOrCreateDeployment(String pathFragment)
focal_class.identifier: getOrCreateDeployment
focal_class.modifiers: protected synchronized
focal_class.parameters: (String pathFragment)
focal_class.return: KeycloakDeployment
focal_class.signature: KeycloakDeployment getOrCreateDeployment(String pathFragment)
focal_class.class_method_signature: PathBasedKeycloakConfigResolver.getCachedDeployment(String pathFragment)
focal_class.full_signature: protected synchronized KeycloakDeployment getCachedDeployment(String pathFragment)
focal_class.identifier: getCachedDeployment
focal_class.modifiers: protected synchronized
focal_class.parameters: (String pathFragment)
focal_class.return: KeycloakDeployment
focal_class.signature: KeycloakDeployment getCachedDeployment(String pathFragment)
focal_class.class_method_signature: PathBasedKeycloakConfigResolver.prepopulateCache()
focal_class.full_signature: protected void prepopulateCache()
focal_class.identifier: prepopulateCache
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void prepopulateCache()
focal_class.class_method_signature: PathBasedKeycloakConfigResolver.cacheConfiguration(String key, File config)
focal_class.full_signature: private boolean cacheConfiguration(String key, File config)
focal_class.identifier: cacheConfiguration
focal_class.modifiers: private
focal_class.parameters: (String key, File config)
focal_class.return: boolean
focal_class.signature: boolean cacheConfiguration(String key, File config)
focal_class.class_method_signature: PathBasedKeycloakConfigResolver.getDeploymentKeyForURI(HttpFacade.Request request)
focal_class.full_signature: private String getDeploymentKeyForURI(HttpFacade.Request request)
focal_class.identifier: getDeploymentKeyForURI
focal_class.modifiers: private
focal_class.parameters: (HttpFacade.Request request)
focal_class.return: String
focal_class.signature: String getDeploymentKeyForURI(HttpFacade.Request request)
focal_method.body: @Override
      public KeycloakDeployment resolve(OIDCHttpFacade.Request request) {
          String webContext = getDeploymentKeyForURI(request);
  
          return getOrCreateDeployment(webContext);
      }
focal_method.class_method_signature: PathBasedKeycloakConfigResolver.resolve(OIDCHttpFacade.Request request)
focal_method.full_signature: @Override public KeycloakDeployment resolve(OIDCHttpFacade.Request request)
focal_method.identifier: resolve
focal_method.invocations: getDeploymentKeyForURI getOrCreateDeployment
focal_method.modifiers: @Override public
focal_method.parameters: (OIDCHttpFacade.Request request)
focal_method.return: KeycloakDeployment
focal_method.signature: KeycloakDeployment resolve(OIDCHttpFacade.Request request)