@SuppressWarnings("unchecked") public static void reset() throws NoSuchFieldException, SecurityException, IllegalAccessException { Field initializedScannerField = BaseApiListingResource.class.getDeclaredField("initializedScanner"); Field initializedConfigField = BaseApiListingResource.class.getDeclaredField("initializedConfig"); boolean initializedScannerFieldAccessible = initializedScannerField.isAccessible(); boolean initializedConfigFieldAccessible = initializedScannerField.isAccessible(); Field swaggerMapField = SwaggerConfigLocator.class.getDeclaredField("swaggerMap"); boolean swaggerMapFieldAccessible = swaggerMapField.isAccessible(); try { swaggerMapField.setAccessible(true); ConcurrentMap<String, Swagger> swaggerMap = (ConcurrentMap<String, Swagger>) swaggerMapField.get(SwaggerConfigLocator.getInstance()); swaggerMap.clear(); initializedScannerField.setAccessible(true); ConcurrentMap<String, Boolean> initializedScanner = (ConcurrentMap<String, Boolean>) initializedScannerField.get(null); initializedScanner.clear(); initializedConfigField.setAccessible(true); ConcurrentMap<String, Boolean> initializedConfig = (ConcurrentMap<String, Boolean>) initializedConfigField.get(null); initializedConfig.clear(); } finally { initializedConfigField.setAccessible(initializedConfigFieldAccessible); initializedScannerField.setAccessible(initializedScannerFieldAccessible); swaggerMapField.setAccessible(swaggerMapFieldAccessible); } } }
@SuppressWarnings("unchecked") public static void reset() throws NoSuchFieldException, SecurityException, IllegalAccessException { Field initializedScannerField = BaseApiListingResource.class.getDeclaredField("initializedScanner"); Field initializedConfigField = BaseApiListingResource.class.getDeclaredField("initializedConfig"); boolean initializedScannerFieldAccessible = initializedScannerField.isAccessible(); boolean initializedConfigFieldAccessible = initializedScannerField.isAccessible(); Field swaggerMapField = SwaggerConfigLocator.class.getDeclaredField("swaggerMap"); boolean swaggerMapFieldAccessible = swaggerMapField.isAccessible(); try { swaggerMapField.setAccessible(true); ConcurrentMap<String, Swagger> swaggerMap = (ConcurrentMap<String, Swagger>) swaggerMapField.get(SwaggerConfigLocator.getInstance()); swaggerMap.clear(); initializedScannerField.setAccessible(true); ConcurrentMap<String, Boolean> initializedScanner = (ConcurrentMap<String, Boolean>) initializedScannerField.get(null); initializedScanner.clear(); initializedConfigField.setAccessible(true); ConcurrentMap<String, Boolean> initializedConfig = (ConcurrentMap<String, Boolean>) initializedConfigField.get(null); initializedConfig.clear(); } finally { initializedConfigField.setAccessible(initializedConfigFieldAccessible); initializedScannerField.setAccessible(initializedScannerFieldAccessible); swaggerMapField.setAccessible(swaggerMapFieldAccessible); } } }
private Object getConfigOrSwagger(boolean returnSwagger) { String configIdKey; if (configId != null) { configIdKey = CONFIG_ID_PREFIX + configId; } else if (contextId != null) { configIdKey = CONFIG_ID_PREFIX + contextId; } else { if (isServletConfigAvailable(sc)) { configIdKey = (sc.getInitParameter(CONFIG_ID_KEY) != null) ? CONFIG_ID_PREFIX + sc.getInitParameter(CONFIG_ID_KEY) : null; if (configIdKey == null) { boolean usePathBasedConfig = Boolean.valueOf(sc.getInitParameter(USE_PATH_BASED_CONFIG)); if (usePathBasedConfig && StringUtils.isNotBlank(basePath)) { configIdKey = CONFIG_ID_PREFIX + basePath; } else { configIdKey = (sc.getInitParameter(CONTEXT_ID_KEY) != null) ? CONFIG_ID_PREFIX + sc.getInitParameter(CONTEXT_ID_KEY) : CONFIG_ID_DEFAULT; } } } else { configIdKey = CONFIG_ID_DEFAULT; } } if (returnSwagger) { return SwaggerConfigLocator.getInstance().getSwagger(configIdKey); } else { return SwaggerConfigLocator.getInstance().getConfig(configIdKey); } }
public SwaggerContextService updateSwagger(Swagger swagger) { String configIdKey; if (configId != null) { configIdKey = CONFIG_ID_PREFIX + configId; } else if (contextId != null) { configIdKey = CONFIG_ID_PREFIX + contextId; } else { if (isServletConfigAvailable(sc)) { configIdKey = (sc.getInitParameter(CONFIG_ID_KEY) != null) ? CONFIG_ID_PREFIX + sc.getInitParameter(CONFIG_ID_KEY) : null; if (configIdKey == null) { boolean usePathBasedConfig = Boolean.valueOf(sc.getInitParameter(USE_PATH_BASED_CONFIG)); if (usePathBasedConfig && StringUtils.isNotBlank(basePath)) { configIdKey = CONFIG_ID_PREFIX + basePath; } else { configIdKey = (sc.getInitParameter(CONTEXT_ID_KEY) != null) ? CONFIG_ID_PREFIX + sc.getInitParameter(CONTEXT_ID_KEY) : CONFIG_ID_DEFAULT; } } } else { if (isUsePathBasedConfig() && StringUtils.isNotBlank(basePath)) { configIdKey = CONFIG_ID_PREFIX + basePath; } else { configIdKey = CONFIG_ID_DEFAULT; } } } if (swagger != null) { SwaggerConfigLocator.getInstance().putSwagger(configIdKey, swagger); } return this; }
private void resetSwaggerConfig(String configId) throws Exception { SwaggerConfigLocator swaggerConfigLocator = SwaggerConfigLocator.getInstance(); Field configMapField = SwaggerConfigLocator.class.getDeclaredField("configMap"); configMapField.setAccessible(true); ConcurrentMap<String, SwaggerConfig> configMap = (ConcurrentMap<String, SwaggerConfig>) configMapField.get(swaggerConfigLocator); configMap.remove(SwaggerContextService.CONFIG_ID_DEFAULT); }
@Override public Swagger read() { // check cached Swagger api = SwaggerConfigLocator.getInstance().getSwagger(getContextId()); if (api == null) { api = initAndRegister(); } return api; }
SwaggerConfigLocator.getInstance().putConfig(configIdKey, value); SwaggerConfigLocator.getInstance().putSwagger(configIdKey, swagger);
UriInfo uriInfo) throws Exception { Swagger api = SwaggerConfigLocator.getInstance().getSwagger(contextId); final SwaggerConfig config = SwaggerConfigLocator.getInstance().getConfig(contextId);
SwaggerConfigLocator.getInstance().putSwagger(contextId, swagger); SwaggerConfigLocator.getInstance().putConfig(contextId, config); return swagger; } catch (Exception e) {
@Test public void testInitWithEmptyContextRoot() throws Exception { resetSwaggerConfig(SwaggerContextService.CONFIG_ID_DEFAULT); KieServerEnvironment.setContextRoot(""); SwaggerKieServerExtension extension = new SwaggerKieServerExtension(); extension.init(null, null); BeanConfig config = (BeanConfig) SwaggerConfigLocator.getInstance().getConfig(SwaggerContextService.CONFIG_ID_DEFAULT); assertEquals("/services/rest", config.getBasePath()); }
@Test public void testInit() throws Exception { resetSwaggerConfig(SwaggerContextService.CONFIG_ID_DEFAULT); KieServerEnvironment.setContextRoot("kie-server"); SwaggerKieServerExtension extension = new SwaggerKieServerExtension(); extension.init(null, null); BeanConfig config = (BeanConfig) SwaggerConfigLocator.getInstance().getConfig(SwaggerContextService.CONFIG_ID_DEFAULT); assertEquals("/kie-server/services/rest", config.getBasePath()); }