/******************************************************************************************************************* * * If relativeUri doesn't end with a trailing slash, send a redirect to the proper Uri. * FIXME: could be dropped and replaced with a configurable redirect? * ******************************************************************************************************************/ private void enforceTrailingSlash (final @Nonnull String relativeUri, final @Nonnull Site site) throws HttpStatusException { final String originalRelativeUri = requestHolder.get().getOriginalRelativeUri(); if (!relativeUri.contains(".") && !originalRelativeUri.endsWith("/")) { throw HttpStatusException.temporaryRedirect(site, relativeUri); // TODO: temporary or permanent? } } }
/******************************************************************************************************************* * * {@inheritDoc} * ******************************************************************************************************************/ @Override @Nonnull public String createLink (final @Nonnull ResourcePath relativeUri) { final ResourcePath link = new ResourcePath(contextPath).appendedWith(relativeUri); String linkAsString = requestHolder.get().getBaseUrl() + link.asString(); for (final LinkPostProcessor linkPostProcessor : linkPostProcessors) { linkAsString = linkPostProcessor.postProcess(linkAsString); } return linkAsString; }
throws IOException, NotFoundException, HttpStatusException final String pathParams = requestHolder.get().getPathParams(siteNode).replaceFirst("^/", ""); final boolean index = siteNodeProperties.getBooleanProperty(PROPERTY_INDEX, false); final List<Content> allPosts = findAllPosts(siteNodeProperties);
HttpStatusException final String pathParams = requestHolder.get().getPathParams(siteNode); final int currentYear = getCurrentYear(pathParams);
/******************************************************************************************************************* * ******************************************************************************************************************/ @BeforeMethod public void setupFixture() throws Exception { context = new ClassPathXmlApplicationContext("DefaultSiteTestBeans.xml"); modelFactory = context.getBean(MockModelFactory.class); final Request request = mock(Request.class); when(request.getBaseUrl()).thenReturn("/baseUrl"); requestHolder = context.getBean(RequestHolder.class); when(requestHolder.get()).thenReturn(request); resourceFileSystemProvider = context.getBean(ResourceFileSystemProvider.class); resourceFileSystem = mock(ResourceFileSystem.class); when(resourceFileSystemProvider.getFileSystem()).thenReturn(resourceFileSystem); final Site.Builder.CallBack callback = mock(Site.Builder.CallBack.class); siteBuilder = new Site.Builder(modelFactory, callback) .withContextPath("/contextpath") // TODO: should also test "" .withDocumentPath("/content/document") .withMediaPath("/content/media") .withLibraryPath("/content/library") .withNodePath("/structure") .withLogConfigurationEnabled(true) .withConfiguredLocales(Arrays.asList(new Locale("en"), new Locale("it"), new Locale("fr"))) .withIgnoredFolders(Arrays.asList("ignored1", "ignored2")); }