private static Application unwrapCustomRootApplication(ResourceConfig resourceConfig) { Application app = null; while (resourceConfig != null) { app = resourceConfig.getApplication(); if (app == resourceConfig) { // resource config is the root application - return null return null; } else if (app instanceof ResourceConfig) { resourceConfig = (ResourceConfig) app; } else { break; } } return app; }
this.applicationClass = resourceConfig.getApplication().getClass().getName(); this.configurationProperties = new HashMap<>(); for (final Map.Entry<String, Object> entry : resourceConfig.getProperties().entrySet()) {
private static Application unwrapCustomRootApplication(ResourceConfig resourceConfig) { Application app = null; while (resourceConfig != null) { app = resourceConfig.getApplication(); if (app == resourceConfig) { // resource config is the root application - return null return null; } else if (app instanceof ResourceConfig) { resourceConfig = (ResourceConfig) app; } else { break; } } return app; }
this.applicationClass = resourceConfig.getApplication().getClass().getName(); this.configurationProperties = new HashMap<>(); for (final Map.Entry<String, Object> entry : resourceConfig.getProperties().entrySet()) {
/** * Get the most internal wrapped {@link Application application} class. * <p> * This method is similar to {@link ResourceConfig#getApplication()} except if provided application was * created by wrapping multiple {@code ResourceConfig} instances, this method will return the original (inner-most) * JAX-RS {@code Application} sub-class rather than a potentially intermediate {@code ResourceConfig} wrapper. * </p> * * @param application application that is potentially wrapped. * @return the original, inner-most {@link Application} subclass. May return the same instance directly, * in case the supplied {@code application} instance is not a wrapper {@code ResourceConfig} instance. */ static Application unwrapApplication(Application application) { while (application instanceof ResourceConfig) { final Application wrappedApplication = ((ResourceConfig) application).getApplication(); if (wrappedApplication == application) { break; } application = wrappedApplication; } return application; }
this.applicationClass = resourceConfig.getApplication().getClass().getName(); this.configurationProperties = new HashMap<>(); for (final Map.Entry<String, Object> entry : resourceConfig.getProperties().entrySet()) {
/** * Get the most internal wrapped {@link Application application} class. * <p> * This method is similar to {@link ResourceConfig#getApplication()} except if provided application was * created by wrapping multiple {@code ResourceConfig} instances, this method will return the original (inner-most) * JAX-RS {@code Application} sub-class rather than a potentially intermediate {@code ResourceConfig} wrapper. * </p> * * @param application application that is potentially wrapped. * @return the original, inner-most {@link Application} subclass. May return the same instance directly, * in case the supplied {@code application} instance is not a wrapper {@code ResourceConfig} instance. */ static Application unwrapApplication(Application application) { while (application instanceof ResourceConfig) { final Application wrappedApplication = ((ResourceConfig) application).getApplication(); if (wrappedApplication == application) { break; } application = wrappedApplication; } return application; }
private Application getOriginalApplication() { // Unfortunately the following logic is very "implementation aware". We need the original instance of // javax.ws.rs.core.Application to get the @Authenticated annotation instance if present. // Jersey server configuration is immutable and a defensive copy is done with every change. // However, the original Application instance is always present and hidden deep in the ServerConfig implementation. // ResourceConfig is always the implementation of ServerConfig if (!(serverConfig instanceof ResourceConfig)) { throw new IllegalStateException("Could not get Application instance. Incompatible version of Jersey?"); } ResourceConfig resourceConfig = (ResourceConfig) serverConfig; Application application = resourceConfig.getApplication(); while (application instanceof ResourceConfig) { Application wrappedApplication = ((ResourceConfig) application).getApplication(); //noinspection ObjectEquality if (wrappedApplication == application) { break; } application = wrappedApplication; } return application; }
private static Application unwrapCustomRootApplication(ResourceConfig resourceConfig) { Application app = null; while (resourceConfig != null) { app = resourceConfig.getApplication(); if (app == resourceConfig) { // resource config is the root application - return null return null; } else if (app instanceof ResourceConfig) { resourceConfig = (ResourceConfig) app; } else { break; } } return app; }
/** * Get the most internal wrapped {@link Application application} class. * <p> * This method is similar to {@link ResourceConfig#getApplication()} except if provided application was * created by wrapping multiple {@code ResourceConfig} instances, this method will return the original (inner-most) * JAX-RS {@code Application} sub-class rather than a potentially intermediate {@code ResourceConfig} wrapper. * </p> * * @param application application that is potentially wrapped. * @return the original, inner-most {@link Application} subclass. May return the same instance directly, * in case the supplied {@code application} instance is not a wrapper {@code ResourceConfig} instance. */ static Application unwrapApplication(Application application) { while (application instanceof ResourceConfig) { final Application wrappedApplication = ((ResourceConfig) application).getApplication(); if (wrappedApplication == application) { break; } application = wrappedApplication; } return application; }
public static Application getJAXRSApplication(Application application) { Application result = application; if (application instanceof ResourceConfig) { ResourceConfig resourceConfig = (ResourceConfig) application; result = resourceConfig.getApplication(); } return result; }
public static Application getJAXRSApplication(Application application) { Application result = application; if (application instanceof ResourceConfig) { ResourceConfig resourceConfig = (ResourceConfig) application; result = resourceConfig.getApplication(); } return result; }
private static Application unwrapCustomRootApplication(ResourceConfig resourceConfig) { Application app = null; while (resourceConfig != null) { app = resourceConfig.getApplication(); if (app == resourceConfig) { // resource config is the root application - return null return null; } else if (app instanceof ResourceConfig) { resourceConfig = (ResourceConfig) app; } else { break; } } return app; }
private static Application unwrapCustomRootApplication(ResourceConfig resourceConfig) { Application app = null; while (resourceConfig != null) { app = resourceConfig.getApplication(); if (app == resourceConfig) { // resource config is the root application - return null return null; } else if (app instanceof ResourceConfig) { resourceConfig = (ResourceConfig) app; } else { break; } } return app; }
private static Application unwrapCustomRootApplication(ResourceConfig resourceConfig) { Application app = null; while (resourceConfig != null) { app = resourceConfig.getApplication(); if (app == resourceConfig) { // resource config is the root application - return null return null; } else if (app instanceof ResourceConfig) { resourceConfig = (ResourceConfig) app; } else { break; } } return app; }
private static Application unwrapCustomRootApplication(ResourceConfig resourceConfig) { Application app = null; while (resourceConfig != null) { app = resourceConfig.getApplication(); if (app == resourceConfig) { // resource config is the root application - return null return null; } else if (app instanceof ResourceConfig) { resourceConfig = (ResourceConfig) app; } else { break; } } return app; }
/** * Gets the most internal wrapped {@link Application application} class. This method is similar to * {@link org.glassfish.jersey.server.ResourceConfig#getApplication()} except if provided application was created by wrapping multiple * {@link org.glassfish.jersey.server.ResourceConfig} instances this method returns the original application and not a resource config wrapper. * * @param app jax-rs application * @return the original {@link javax.ws.rs.core.Application} subclass. */ public static Application getWrappedApplication(Application app) { while (app instanceof ResourceConfig) { final Application wrappedApplication = ((ResourceConfig) app).getApplication(); if (wrappedApplication == app) { break; } app = wrappedApplication; } return app; }
/** * Get the most internal wrapped {@link Application application} class. * <p> * This method is similar to {@link ResourceConfig#getApplication()} except if provided application was * created by wrapping multiple {@code ResourceConfig} instances, this method will return the original (inner-most) * JAX-RS {@code Application} sub-class rather than a potentially intermediate {@code ResourceConfig} wrapper. * </p> * * @param application application that is potentially wrapped. * @return the original, inner-most {@link Application} subclass. May return the same instance directly, * in case the supplied {@code application} instance is not a wrapper {@code ResourceConfig} instance. */ static Application unwrapApplication(Application application) { while (application instanceof ResourceConfig) { final Application wrappedApplication = ((ResourceConfig) application).getApplication(); if (wrappedApplication == application) { break; } application = wrappedApplication; } return application; }
private Application getOriginalApplication() { // Unfortunately the following logic is very "implementation aware". We need the original instance of // javax.ws.rs.core.Application to get the @Authenticated annotation instance if present. // Jersey server configuration is immutable and a defensive copy is done with every change. // However, the original Application instance is always present and hidden deep in the ServerConfig implementation. // ResourceConfig is always the implementation of ServerConfig if (!(serverConfig instanceof ResourceConfig)) { throw new IllegalStateException("Could not get Application instance. Incompatible version of Jersey?"); } ResourceConfig resourceConfig = (ResourceConfig) serverConfig; Application application = resourceConfig.getApplication(); while (application instanceof ResourceConfig) { Application wrappedApplication = ((ResourceConfig) application).getApplication(); //noinspection ObjectEquality if (wrappedApplication == application) { break; } application = wrappedApplication; } return application; }
private void addJerseyHandler(ResourceConfig resourceConfig, String mapping) { HttpHandler handler = ContainerFactory.createContainer(HttpHandler.class, resourceConfig); httpServer.getServerConfiguration().addHttpHandler(handler, HttpHandlerRegistration.bulder().contextPath(mapping).build()); LOG.log(Level.INFO, I18NBundle.getBundle().getMessage( LocalStringKeys.HTTP_REST_REGISTER_APPLICATION, resourceConfig.getApplication().getClass().getName(), mapping)); }