protected AbstractInitializrController(InitializrMetadataProvider metadataProvider, ResourceUrlProvider resourceUrlProvider) { this.metadataProvider = metadataProvider; this.linkTo = link -> { String result = resourceUrlProvider.getForLookupPath(link); return result == null ? link : result; }; }
private void registerUrlProvider(ParserContext parserContext, Object source) { if (!parserContext.getRegistry().containsBeanDefinition(RESOURCE_URL_PROVIDER)) { RootBeanDefinition urlProvider = new RootBeanDefinition(ResourceUrlProvider.class); urlProvider.setSource(source); urlProvider.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); parserContext.getRegistry().registerBeanDefinition(RESOURCE_URL_PROVIDER, urlProvider); parserContext.registerComponent(new BeanComponentDefinition(urlProvider, RESOURCE_URL_PROVIDER)); RootBeanDefinition interceptor = new RootBeanDefinition(ResourceUrlProviderExposingInterceptor.class); interceptor.setSource(source); interceptor.getConstructorArgumentValues().addIndexedArgumentValue(0, urlProvider); RootBeanDefinition mappedInterceptor = new RootBeanDefinition(MappedInterceptor.class); mappedInterceptor.setSource(source); mappedInterceptor.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); mappedInterceptor.getConstructorArgumentValues().addIndexedArgumentValue(0, (Object) null); mappedInterceptor.getConstructorArgumentValues().addIndexedArgumentValue(1, interceptor); String mappedInterceptorName = parserContext.getReaderContext().registerWithGeneratedName(mappedInterceptor); parserContext.registerComponent(new BeanComponentDefinition(mappedInterceptor, mappedInterceptorName)); } }
private void initLookupPath(ResourceUrlProvider urlProvider) { if (this.indexLookupPath == null) { UrlPathHelper pathHelper = urlProvider.getUrlPathHelper(); String requestUri = pathHelper.getRequestUri(this.request); String lookupPath = pathHelper.getLookupPathForRequest(this.request); this.indexLookupPath = requestUri.lastIndexOf(lookupPath); this.prefixLookupPath = requestUri.substring(0, this.indexLookupPath); if ("/".equals(lookupPath) && !"/".equals(requestUri)) { String contextPath = pathHelper.getContextPath(this.request); if (requestUri.equals(contextPath)) { this.indexLookupPath = requestUri.length(); this.prefixLookupPath = requestUri; } } } }
public MainController(InitializrMetadataProvider metadataProvider, ResourceUrlProvider resourceUrlProvider, ProjectGenerator projectGenerator, DependencyMetadataProvider dependencyMetadataProvider) { super(metadataProvider, resourceUrlProvider); this.projectGenerator = projectGenerator; this.dependencyMetadataProvider = dependencyMetadataProvider; }
@Bean @ConditionalOnMissingBean public MainController initializrMainController( InitializrMetadataProvider metadataProvider, ResourceUrlProvider resourceUrlProvider, ProjectGenerator projectGenerator, DependencyMetadataProvider dependencyMetadataProvider) { return new MainController(metadataProvider, resourceUrlProvider , projectGenerator, dependencyMetadataProvider); }
@Bean public ResourceUrlProvider mvcResourceUrlProvider() { ResourceUrlProvider urlProvider = new ResourceUrlProvider(); UrlPathHelper pathHelper = getPathMatchConfigurer().getUrlPathHelper(); if (pathHelper != null) { urlProvider.setUrlPathHelper(pathHelper); } PathMatcher pathMatcher = getPathMatchConfigurer().getPathMatcher(); if (pathMatcher != null) { urlProvider.setPathMatcher(pathMatcher); } return urlProvider; }
@Test public void testResources() throws Exception { loadBeanDefinitions("mvc-config-resources.xml", 10); HttpRequestHandlerAdapter adapter = appContext.getBean(HttpRequestHandlerAdapter.class); assertNotNull(adapter); ResourceHttpRequestHandler handler = appContext.getBean(ResourceHttpRequestHandler.class); assertNotNull(handler); SimpleUrlHandlerMapping mapping = appContext.getBean(SimpleUrlHandlerMapping.class); assertNotNull(mapping); assertEquals(Ordered.LOWEST_PRECEDENCE - 1, mapping.getOrder()); BeanNameUrlHandlerMapping beanNameMapping = appContext.getBean(BeanNameUrlHandlerMapping.class); assertNotNull(beanNameMapping); assertEquals(2, beanNameMapping.getOrder()); ResourceUrlProvider urlProvider = appContext.getBean(ResourceUrlProvider.class); assertNotNull(urlProvider); MappedInterceptor mappedInterceptor = appContext.getBean(MappedInterceptor.class); assertNotNull(urlProvider); assertEquals(ResourceUrlProviderExposingInterceptor.class, mappedInterceptor.getInterceptor().getClass()); MockHttpServletRequest request = new MockHttpServletRequest(); request.setRequestURI("/resources/foo.css"); request.setMethod("GET"); HandlerExecutionChain chain = mapping.getHandler(request); assertTrue(chain.getHandler() instanceof ResourceHttpRequestHandler); MockHttpServletResponse response = new MockHttpServletResponse(); for (HandlerInterceptor interceptor : chain.getInterceptors()) { interceptor.preHandle(request, response, chain.getHandler()); } ModelAndView mv = adapter.handle(request, response, chain.getHandler()); assertNull(mv); }
@Override public String encodeURL(String url) { String value = resolveCache.get(url); if (value != null) { return value; } if (encTargetPrefixWithContextPath == null || url.startsWith(encTargetPrefixWithContextPath)) { ResourceUrlProvider resourceUrlProvider = getResourceUrlProvider(); if (resourceUrlProvider == null) { logger.debug("Request attribute exposing ResourceUrlProvider not found"); return super.encodeURL(url); } initLookupPath(resourceUrlProvider); if (url.startsWith(this.prefixLookupPath)) { int suffixIndex = getQueryParamsIndex(url); String suffix = url.substring(suffixIndex); String lookupPath = url.substring(this.indexLookupPath, suffixIndex); lookupPath = resourceUrlProvider.getForLookupPath(lookupPath); if (lookupPath != null) { value = super.encodeURL(this.prefixLookupPath + lookupPath + suffix); if (value != null) { resolveCache.put(url, value); } return value; } } } return super.encodeURL(url); }
public MainController(InitializrMetadataProvider metadataProvider, TemplateRenderer templateRenderer, ResourceUrlProvider resourceUrlProvider, ProjectGenerator projectGenerator, DependencyMetadataProvider dependencyMetadataProvider) { super(metadataProvider, resourceUrlProvider); this.projectGenerator = projectGenerator; this.dependencyMetadataProvider = dependencyMetadataProvider; this.commandLineHelpGenerator = new CommandLineHelpGenerator(templateRenderer); }
@Bean @ConditionalOnMissingBean public MainController initializrMainController( InitializrMetadataProvider metadataProvider, TemplateRenderer templateRenderer, ResourceUrlProvider resourceUrlProvider, ProjectGenerator projectGenerator, DependencyMetadataProvider dependencyMetadataProvider) { return new MainController(metadataProvider, templateRenderer, resourceUrlProvider , projectGenerator, dependencyMetadataProvider); }
private ResourceUrlProvider getResourceUrlProvider() { return (ResourceUrlProvider) this.request .getAttribute(ResourceUrlProviderExposingInterceptor.RESOURCE_URL_PROVIDER_ATTR); }
@Bean @Override public ResourceUrlProvider mvcResourceUrlProvider() { return super.mvcResourceUrlProvider(); }
public LegacyStsController(InitializrMetadataProvider metadataProvider, ResourceUrlProvider resourceUrlProvider) { super(metadataProvider, resourceUrlProvider); }
@Bean public LegacyStsController legacyStsController( InitializrMetadataProvider metadataProvider, ResourceUrlProvider resourceUrlProvider) { return new LegacyStsController(metadataProvider, resourceUrlProvider); }
@Bean @SuppressWarnings("deprecation") public LegacyStsController legacyStsController(InitializrMetadataProvider metadataProvider, ResourceUrlProvider resourceUrlProvider) { return new LegacyStsController(metadataProvider, resourceUrlProvider); }