This is an automated email from the ASF dual-hosted git repository. diru pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git
commit 89d39f4b3e79ccbc73fe983ccde112f2aa1fc78f Author: Dirk Rudolph <d...@apache.org> AuthorDate: Fri Jun 11 11:55:40 2021 +0200 moved SitemapGeneratorManager and SitemapUtil to exported packages --- .../sitemap/{impl => common}/SitemapUtil.java | 47 ++++++++++++- .../generator/ResourceTreeSitemapGenerator.java | 2 +- .../sling/sitemap/generator/SitemapGenerator.java | 6 +- .../sitemap/generator/SitemapGeneratorManager.java | 76 ++++++++++++++++++++++ .../sitemap/impl/SitemapGeneratorExecutor.java | 3 +- ...nager.java => SitemapGeneratorManagerImpl.java} | 33 +++++----- .../sling/sitemap/impl/SitemapScheduler.java | 10 ++- .../sling/sitemap/impl/SitemapServiceImpl.java | 4 +- .../apache/sling/sitemap/impl/SitemapServlet.java | 5 +- .../apache/sling/sitemap/impl/SitemapStorage.java | 6 +- .../impl/console/SitemapInventoryPlugin.java | 3 +- .../sitemap/TestResourceTreeSitemapGenerator.java | 1 + .../sitemap/{impl => common}/SitemapUtilTest.java | 2 +- .../ResourceTreeSitemapGeneratorTest.java | 4 +- .../sitemap/impl/SitemapGeneratorExecutorTest.java | 2 +- ...t.java => SitemapGeneratorManagerImplTest.java} | 6 +- .../sling/sitemap/impl/SitemapSchedulerTest.java | 11 ++-- .../impl/SitemapServiceImplSchedulingTest.java | 8 ++- .../sling/sitemap/impl/SitemapServiceImplTest.java | 11 ++-- .../sling/sitemap/impl/SitemapServletTest.java | 2 +- .../sling/sitemap/impl/SitemapStorageTest.java | 2 +- 21 files changed, 191 insertions(+), 53 deletions(-) diff --git a/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapUtil.java b/sitemap/src/main/java/org/apache/sling/sitemap/common/SitemapUtil.java similarity index 84% rename from sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapUtil.java rename to sitemap/src/main/java/org/apache/sling/sitemap/common/SitemapUtil.java index 7ee438e..06ba855 100644 --- a/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapUtil.java +++ b/sitemap/src/main/java/org/apache/sling/sitemap/common/SitemapUtil.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.sling.sitemap.impl; +package org.apache.sling.sitemap.common; import org.apache.jackrabbit.JcrConstants; import org.apache.jackrabbit.util.ISO9075; @@ -60,6 +60,13 @@ public class SitemapUtil { return topLevelSitemapRoot; } + /** + * Returns the parent of the given {@link Resource} when the {@link Resource}'s name is + * {@link JcrConstants#JCR_CONTENT}. + * + * @param resource + * @return + */ @Nullable public static Resource normalizeSitemapRoot(@Nullable Resource resource) { if (!isSitemapRoot(resource)) { @@ -72,6 +79,12 @@ public class SitemapUtil { } } + /** + * Returns true when the given {@link Resource} is a sitemap root. + * + * @param resource + * @return + */ public static boolean isSitemapRoot(@Nullable Resource resource) { if (resource == null) { return false; @@ -89,15 +102,36 @@ public class SitemapUtil { return sitemapRoot; } + /** + * Returns true when the given {@link Resource} is a top level sitemap root. + * + * @param resource + * @return + */ public static boolean isTopLevelSitemapRoot(@Nullable Resource resource) { return isSitemapRoot(resource) && getTopLevelSitemapRoot(resource).getPath().equals(resource.getPath()); } + /** + * Returns the selector for the given sitemap root {@link Resource} and the given name. + * + * @param sitemapRoot + * @param name + * @return + */ @NotNull public static String getSitemapSelector(@NotNull Resource sitemapRoot, @NotNull String name) { return getSitemapSelector(sitemapRoot, getTopLevelSitemapRoot(sitemapRoot), name); } + /** + * Returns the selector for the given sitemap root {@link Resource} and the given name. + * + * @param sitemapRoot + * @param topLevelSitemapRoot + * @param name + * @return + */ @NotNull public static String getSitemapSelector(@NotNull Resource sitemapRoot, @NotNull Resource topLevelSitemapRoot, @NotNull String name) { name = SitemapGenerator.DEFAULT_SITEMAP.equals(name) ? "sitemap" : name + "-sitemap"; @@ -110,6 +144,14 @@ public class SitemapUtil { return name; } + /** + * Resolves all sitemap root {@link Resource}s for the given selector within the given sitemap root + * {@link Resource}. The given sitemap root {@link Resource} should usually be a top level sitemap root. + * + * @param sitemapRoot + * @param sitemapSelector + * @return + */ @NotNull public static Map<Resource, String> resolveSitemapRoots(@NotNull Resource sitemapRoot, @NotNull String sitemapSelector) { if (sitemapSelector.equals("sitemap")) { @@ -146,7 +188,7 @@ public class SitemapUtil { } /** - * Returns + * Returns all sitemap root {@link Resource}s within the given search path. * * @param resolver * @param searchPath @@ -161,6 +203,7 @@ public class SitemapUtil { query.append('/'); } query.append("/*[@").append(SitemapService.PROPERTY_SITEMAP_ROOT).append('=').append(Boolean.TRUE).append(']'); + query.append(" option(index tag slingSitemaps)"); return new Iterator<Resource>() { private final Iterator<Resource> hits = resolver.findResources(query.toString(), Query.XPATH); diff --git a/sitemap/src/main/java/org/apache/sling/sitemap/generator/ResourceTreeSitemapGenerator.java b/sitemap/src/main/java/org/apache/sling/sitemap/generator/ResourceTreeSitemapGenerator.java index 1986e40..88190c4 100644 --- a/sitemap/src/main/java/org/apache/sling/sitemap/generator/ResourceTreeSitemapGenerator.java +++ b/sitemap/src/main/java/org/apache/sling/sitemap/generator/ResourceTreeSitemapGenerator.java @@ -30,7 +30,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Stream; import java.util.stream.StreamSupport; -import static org.apache.sling.sitemap.impl.SitemapUtil.isSitemapRoot; +import static org.apache.sling.sitemap.common.SitemapUtil.isSitemapRoot; /** * A default implementation of {@link SitemapGenerator} that traverses a resource tree. diff --git a/sitemap/src/main/java/org/apache/sling/sitemap/generator/SitemapGenerator.java b/sitemap/src/main/java/org/apache/sling/sitemap/generator/SitemapGenerator.java index 51e84f3..6d4f98b 100644 --- a/sitemap/src/main/java/org/apache/sling/sitemap/generator/SitemapGenerator.java +++ b/sitemap/src/main/java/org/apache/sling/sitemap/generator/SitemapGenerator.java @@ -33,12 +33,10 @@ import java.util.Set; * their names using {@link SitemapGenerator#getNames(Resource)} (Resource)}. * <p> * {@link SitemapGenerator#generate(Resource, String, Sitemap, GenerationContext)} may be called for each name and - * each sitemap root {@link Resource}, the {@link SitemapGenerator} returned an non-empty {@link Set} of names. - * </p> + * each sitemap root {@link Resource}, the {@link SitemapGenerator} returned an non-empty {@link Set} of names for. * <p> * It is possible to register multiple {@link SitemapGenerator}s for a single name. In this case the one with the - * highest ranking according to the OSGI specification is taken. - * </p> + * highest ranking according to the OSGI specification is used. */ @ConsumerType public interface SitemapGenerator { diff --git a/sitemap/src/main/java/org/apache/sling/sitemap/generator/SitemapGeneratorManager.java b/sitemap/src/main/java/org/apache/sling/sitemap/generator/SitemapGeneratorManager.java new file mode 100644 index 0000000..cc05fdd --- /dev/null +++ b/sitemap/src/main/java/org/apache/sling/sitemap/generator/SitemapGeneratorManager.java @@ -0,0 +1,76 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.sling.sitemap.generator; + +import org.apache.sling.api.resource.Resource; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.osgi.annotation.versioning.ProviderType; + +import java.util.Collection; +import java.util.Map; +import java.util.Set; + +/** + * A service that manages all registered {@link SitemapGenerator}. + */ +@ProviderType +public interface SitemapGeneratorManager { + + /** + * Returns the {@link SitemapGenerator} for the given sitemap root {@link Resource} and name. This may be null + * when no {@link SitemapGenerator} service exists that can generate a sitemap with the name for the given root. + * + * @param sitemapRoot + * @param name + * @return + */ + @Nullable + SitemapGenerator getGenerator(@NotNull Resource sitemapRoot, @NotNull String name); + + /** + * Returns all names produced by all {@link SitemapGenerator}s for the given sitemap root. + * + * @param sitemapRoot + * @return + */ + Set<String> getNames(@NotNull Resource sitemapRoot); + + /** + * Returns the names of all {@link SitemapGenerator}s for the given resource but only retains those in the given + * {@link Collection} of names. The result {@link Set} will be less or equal in size then the given + * {@link Collection}. + * + * @param sitemapRoot + * @param retainOnly + * @return + */ + @NotNull + Set<String> getNames(@NotNull Resource sitemapRoot, @NotNull Collection<String> retainOnly); + + /** + * Returns a {@link Map} of {@link SitemapGenerator}s for each name returned by + * {@link SitemapGeneratorManager#getNames(Resource)}. + * + * @param sitemapRoot + * @return + */ + @NotNull + Map<String, SitemapGenerator> getGenerators(@Nullable Resource sitemapRoot); +} diff --git a/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapGeneratorExecutor.java b/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapGeneratorExecutor.java index 2c31f74..5452c7f 100644 --- a/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapGeneratorExecutor.java +++ b/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapGeneratorExecutor.java @@ -30,6 +30,7 @@ import org.apache.sling.serviceusermapping.ServiceUserMapped; import org.apache.sling.sitemap.SitemapException; import org.apache.sling.sitemap.builder.Url; import org.apache.sling.sitemap.generator.SitemapGenerator; +import org.apache.sling.sitemap.generator.SitemapGeneratorManager; import org.apache.sling.sitemap.impl.builder.SitemapImpl; import org.apache.sling.sitemap.impl.builder.extensions.ExtensionProviderManager; import org.jetbrains.annotations.NotNull; @@ -53,7 +54,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; -import static org.apache.sling.sitemap.impl.SitemapUtil.normalizeSitemapRoot; +import static org.apache.sling.sitemap.common.SitemapUtil.normalizeSitemapRoot; @Component( service = JobExecutor.class, diff --git a/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapGeneratorManager.java b/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapGeneratorManagerImpl.java similarity index 80% rename from sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapGeneratorManager.java rename to sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapGeneratorManagerImpl.java index d710062..74c9511 100644 --- a/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapGeneratorManager.java +++ b/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapGeneratorManagerImpl.java @@ -20,6 +20,7 @@ package org.apache.sling.sitemap.impl; import org.apache.sling.api.resource.Resource; import org.apache.sling.sitemap.generator.SitemapGenerator; +import org.apache.sling.sitemap.generator.SitemapGeneratorManager; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.osgi.service.component.annotations.*; @@ -29,9 +30,9 @@ import org.slf4j.LoggerFactory; import java.util.*; @Component(service = SitemapGeneratorManager.class) -public class SitemapGeneratorManager { +public class SitemapGeneratorManagerImpl implements SitemapGeneratorManager { - private static final Logger LOG = LoggerFactory.getLogger(SitemapGeneratorManager.class); + private static final Logger LOG = LoggerFactory.getLogger(SitemapGeneratorManagerImpl.class); @Reference(service = SitemapGenerator.class, cardinality = ReferenceCardinality.AT_LEAST_ONE, policyOption = ReferencePolicyOption.GREEDY) @@ -43,8 +44,9 @@ public class SitemapGeneratorManager { Collections.reverse(generators); } + @Override @Nullable - public SitemapGenerator getGenerator(Resource sitemapRoot, String name) { + public SitemapGenerator getGenerator(@NotNull Resource sitemapRoot, @NotNull String name) { for (SitemapGenerator generator : this.generators) { Set<String> providedNames = generator.getNames(sitemapRoot); @@ -56,23 +58,20 @@ public class SitemapGeneratorManager { return null; } + @Override + public Set<String> getNames(@NotNull Resource sitemapRoot) { + return getGenerators(sitemapRoot).keySet(); + } + + @Override @NotNull - public Set<String> getApplicableNames(Resource sitemapRoot, Collection<String> candidates) { - Set<String> result = new HashSet<>(candidates.size()); - for (SitemapGenerator generator : this.generators) { - for (String providedName : generator.getNames(sitemapRoot)) { - if (candidates.contains(providedName)) { - result.add(providedName); - } - if (candidates.size() == result.size()) { - // early exit - return result; - } - } - } - return result; + public Set<String> getNames(@NotNull Resource sitemapRoot, @NotNull Collection<String> retainOnly) { + Set<String> allNames = new HashSet<>(getNames(sitemapRoot)); + allNames.retainAll(retainOnly); + return allNames; } + @Override @NotNull public Map<String, SitemapGenerator> getGenerators(@Nullable Resource sitemapRoot) { Map<String, SitemapGenerator> consolidatedGenerators = new HashMap<>(); diff --git a/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapScheduler.java b/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapScheduler.java index 313af60..8bce19e 100644 --- a/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapScheduler.java +++ b/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapScheduler.java @@ -26,6 +26,7 @@ import org.apache.sling.commons.scheduler.Scheduler; import org.apache.sling.event.jobs.Job; import org.apache.sling.event.jobs.JobManager; import org.apache.sling.serviceusermapping.ServiceUserMapped; +import org.apache.sling.sitemap.generator.SitemapGeneratorManager; import org.jetbrains.annotations.Nullable; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; @@ -40,7 +41,7 @@ import org.slf4j.LoggerFactory; import java.util.*; import java.util.stream.Collectors; -import static org.apache.sling.sitemap.impl.SitemapUtil.findSitemapRoots; +import static org.apache.sling.sitemap.common.SitemapUtil.findSitemapRoots; @Component( service = {SitemapScheduler.class, Runnable.class}, @@ -93,7 +94,12 @@ public class SitemapScheduler implements Runnable { protected void activate(Configuration configuration) { String[] configuredGenerators = configuration.generators(); if (configuredGenerators != null && configuredGenerators.length > 0) { - generators = new HashSet<>(Arrays.asList(configuredGenerators)); + generators = Arrays.stream(configuredGenerators) + .filter(configuredGenerator -> !"".equals(configuredGenerator.trim())) + .collect(Collectors.toSet()); + if (generators.isEmpty()) { + generators = null; + } } else { generators = null; } diff --git a/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapServiceImpl.java b/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapServiceImpl.java index 1641b8b..e9ae3b8 100644 --- a/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapServiceImpl.java +++ b/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapServiceImpl.java @@ -24,6 +24,8 @@ import org.apache.sling.event.jobs.JobManager; import org.apache.sling.sitemap.SitemapInfo; import org.apache.sling.sitemap.SitemapService; import org.apache.sling.sitemap.common.SitemapLinkExternalizer; +import org.apache.sling.sitemap.common.SitemapUtil; +import org.apache.sling.sitemap.generator.SitemapGeneratorManager; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.osgi.framework.BundleContext; @@ -39,7 +41,7 @@ import org.slf4j.LoggerFactory; import java.util.*; import java.util.stream.Collectors; -import static org.apache.sling.sitemap.impl.SitemapUtil.*; +import static org.apache.sling.sitemap.common.SitemapUtil.*; @Component(service = {SitemapServiceImpl.class, SitemapService.class}) @Designate(ocd = SitemapServiceImpl.Configuration.class) diff --git a/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapServlet.java b/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapServlet.java index a7828b1..e8adc6f 100644 --- a/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapServlet.java +++ b/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapServlet.java @@ -26,6 +26,7 @@ import org.apache.sling.api.servlets.SlingSafeMethodsServlet; import org.apache.sling.sitemap.common.SitemapLinkExternalizer; import org.apache.sling.sitemap.SitemapException; import org.apache.sling.sitemap.generator.SitemapGenerator; +import org.apache.sling.sitemap.generator.SitemapGeneratorManager; import org.apache.sling.sitemap.impl.builder.extensions.ExtensionProviderManager; import org.apache.sling.sitemap.impl.builder.SitemapImpl; import org.apache.sling.sitemap.impl.builder.SitemapIndexImpl; @@ -42,7 +43,7 @@ import java.io.IOException; import java.util.*; import static org.apache.sling.sitemap.impl.SitemapServlet.*; -import static org.apache.sling.sitemap.impl.SitemapUtil.*; +import static org.apache.sling.sitemap.common.SitemapUtil.*; @Component( service = Servlet.class, @@ -205,7 +206,7 @@ public class SitemapServlet extends SlingSafeMethodsServlet { } while (sitemapRoots.hasNext()) { Resource sitemapRoot = sitemapRoots.next(); - Set<String> applicableNames = generatorManager.getApplicableNames(sitemapRoot, onDemandSitemaps); + Set<String> applicableNames = generatorManager.getNames(sitemapRoot, onDemandSitemaps); // applicable names we may serve directly, not applicable names, if any, we have to serve from storage for (String applicableName : applicableNames) { String sitemapSelector = getSitemapSelector(sitemapRoot, sitemapRoot, applicableName); diff --git a/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapStorage.java b/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapStorage.java index f368de5..0308b21 100644 --- a/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapStorage.java +++ b/sitemap/src/main/java/org/apache/sling/sitemap/impl/SitemapStorage.java @@ -25,7 +25,9 @@ import org.apache.sling.api.resource.*; import org.apache.sling.api.wrappers.ValueMapDecorator; import org.apache.sling.commons.scheduler.Scheduler; import org.apache.sling.serviceusermapping.ServiceUserMapped; +import org.apache.sling.sitemap.common.SitemapUtil; import org.apache.sling.sitemap.generator.SitemapGenerator; +import org.apache.sling.sitemap.generator.SitemapGeneratorManager; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.osgi.service.component.annotations.Activate; @@ -49,7 +51,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import java.util.stream.StreamSupport; -import static org.apache.sling.sitemap.impl.SitemapUtil.*; +import static org.apache.sling.sitemap.common.SitemapUtil.*; @Component( service = {SitemapStorage.class, Runnable.class}, @@ -348,7 +350,7 @@ public class SitemapStorage implements Runnable { Map<Resource, String> candidates = SitemapUtil.resolveSitemapRoots(sitemapRoot, name.substring(0, lastDot)); // check if for any of the candidate resource roots a generator with the name exists return candidates.entrySet().stream() - .map(entry -> generatorManager.getApplicableNames(entry.getKey(), Collections.singleton(entry.getValue()))) + .map(entry -> generatorManager.getNames(entry.getKey(), Collections.singleton(entry.getValue()))) .anyMatch(names -> names.size() > 0); } diff --git a/sitemap/src/main/java/org/apache/sling/sitemap/impl/console/SitemapInventoryPlugin.java b/sitemap/src/main/java/org/apache/sling/sitemap/impl/console/SitemapInventoryPlugin.java index 8feb7bd..e26483b 100644 --- a/sitemap/src/main/java/org/apache/sling/sitemap/impl/console/SitemapInventoryPlugin.java +++ b/sitemap/src/main/java/org/apache/sling/sitemap/impl/console/SitemapInventoryPlugin.java @@ -27,7 +27,7 @@ import org.apache.sling.api.resource.ResourceResolverFactory; import org.apache.sling.commons.scheduler.Scheduler; import org.apache.sling.sitemap.SitemapInfo; import org.apache.sling.sitemap.SitemapService; -import org.apache.sling.sitemap.impl.SitemapUtil; +import org.apache.sling.sitemap.common.SitemapUtil; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; import org.osgi.service.component.annotations.Activate; @@ -37,7 +37,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.PrintWriter; -import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import java.util.Map; diff --git a/sitemap/src/test/java/org/apache/sling/sitemap/TestResourceTreeSitemapGenerator.java b/sitemap/src/test/java/org/apache/sling/sitemap/TestResourceTreeSitemapGenerator.java index 0f38ce8..90e446c 100644 --- a/sitemap/src/test/java/org/apache/sling/sitemap/TestResourceTreeSitemapGenerator.java +++ b/sitemap/src/test/java/org/apache/sling/sitemap/TestResourceTreeSitemapGenerator.java @@ -19,6 +19,7 @@ package org.apache.sling.sitemap; import org.apache.sling.api.resource.Resource; +import org.apache.sling.sitemap.SitemapException; import org.apache.sling.sitemap.builder.Sitemap; import org.apache.sling.sitemap.generator.ResourceTreeSitemapGenerator; import org.apache.sling.sitemap.generator.SitemapGenerator; diff --git a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapUtilTest.java b/sitemap/src/test/java/org/apache/sling/sitemap/common/SitemapUtilTest.java similarity index 99% rename from sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapUtilTest.java rename to sitemap/src/test/java/org/apache/sling/sitemap/common/SitemapUtilTest.java index df6130b..ded2966 100644 --- a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapUtilTest.java +++ b/sitemap/src/test/java/org/apache/sling/sitemap/common/SitemapUtilTest.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.sling.sitemap.impl; +package org.apache.sling.sitemap.common; import com.google.common.collect.ImmutableMap; import org.apache.sling.api.resource.Resource; diff --git a/sitemap/src/test/java/org/apache/sling/sitemap/ResourceTreeSitemapGeneratorTest.java b/sitemap/src/test/java/org/apache/sling/sitemap/generator/ResourceTreeSitemapGeneratorTest.java similarity index 97% rename from sitemap/src/test/java/org/apache/sling/sitemap/ResourceTreeSitemapGeneratorTest.java rename to sitemap/src/test/java/org/apache/sling/sitemap/generator/ResourceTreeSitemapGeneratorTest.java index 70928c1..9cb3e2b 100644 --- a/sitemap/src/test/java/org/apache/sling/sitemap/ResourceTreeSitemapGeneratorTest.java +++ b/sitemap/src/test/java/org/apache/sling/sitemap/generator/ResourceTreeSitemapGeneratorTest.java @@ -16,9 +16,11 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.sling.sitemap; +package org.apache.sling.sitemap.generator; import org.apache.sling.api.resource.Resource; +import org.apache.sling.sitemap.SitemapException; +import org.apache.sling.sitemap.TestResourceTreeSitemapGenerator; import org.apache.sling.sitemap.generator.SitemapGenerator; import org.apache.sling.sitemap.impl.builder.extensions.ExtensionProviderManager; import org.apache.sling.sitemap.impl.builder.SitemapImpl; diff --git a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapGeneratorExecutorTest.java b/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapGeneratorExecutorTest.java index 7c2c123..3492eb1 100644 --- a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapGeneratorExecutorTest.java +++ b/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapGeneratorExecutorTest.java @@ -59,7 +59,7 @@ public class SitemapGeneratorExecutorTest { public final SlingContext context = new SlingContext(ResourceResolverType.JCR_MOCK); private final SitemapGeneratorExecutor subject = new SitemapGeneratorExecutor(); - private final SitemapGeneratorManager generatorManager = new SitemapGeneratorManager(); + private final SitemapGeneratorManagerImpl generatorManager = new SitemapGeneratorManagerImpl(); private final ExtensionProviderManager extensionProviderManager = new ExtensionProviderManager(); private final SitemapStorage storage = spy(new SitemapStorage()); private final SitemapServiceImpl sitemapService = new SitemapServiceImpl(); diff --git a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapGeneratorManagerTest.java b/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapGeneratorManagerImplTest.java similarity index 95% rename from sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapGeneratorManagerTest.java rename to sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapGeneratorManagerImplTest.java index 0e9c068..dbc3117 100644 --- a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapGeneratorManagerTest.java +++ b/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapGeneratorManagerImplTest.java @@ -39,11 +39,11 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; @ExtendWith({SlingContextExtension.class, MockitoExtension.class}) -public class SitemapGeneratorManagerTest { +public class SitemapGeneratorManagerImplTest { public final SlingContext context = new SlingContext(); - private final SitemapGeneratorManager subject = new SitemapGeneratorManager(); + private final SitemapGeneratorManagerImpl subject = new SitemapGeneratorManagerImpl(); @Mock private SitemapGenerator generator1; @@ -96,7 +96,7 @@ public class SitemapGeneratorManagerTest { Map<String, SitemapGenerator> generators = subject.getGenerators(context.currentResource("/")); SitemapGenerator sitemap3Generator = subject.getGenerator(context.currentResource(), "sitemap3"); SitemapGenerator defaultSitemapGenerator = subject.getGenerator(context.currentResource(), SitemapGenerator.DEFAULT_SITEMAP); - Set<String> applicableNames = subject.getApplicableNames(context.currentResource(), Arrays.asList( + Set<String> applicableNames = subject.getNames(context.currentResource(), Arrays.asList( "sitemap1", "sitemap2", "sitemap3", SitemapGenerator.DEFAULT_SITEMAP )); diff --git a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapSchedulerTest.java b/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapSchedulerTest.java index db4efe6..050b055 100644 --- a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapSchedulerTest.java +++ b/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapSchedulerTest.java @@ -61,7 +61,7 @@ public class SitemapSchedulerTest { public final SlingContext context = new SlingContext(ResourceResolverType.JCR_MOCK); private final SitemapScheduler subject = new SitemapScheduler(); - private final SitemapGeneratorManager generatorManager = new SitemapGeneratorManager(); + private final SitemapGeneratorManagerImpl generatorManager = new SitemapGeneratorManagerImpl(); private final TestGenerator generator1 = new TestGenerator() {}; private final TestGenerator generator2 = new TestGenerator() {}; @@ -104,7 +104,8 @@ public class SitemapSchedulerTest { context.registerInjectActivateService(subject); initResourceResolver(subject, resolver -> MockJcr.setQueryResult( resolver.adaptTo(Session.class), - "/jcr:root/content//*[@" + SitemapService.PROPERTY_SITEMAP_ROOT + "=true]", + "/jcr:root/content//*[@" + SitemapService.PROPERTY_SITEMAP_ROOT + "=true]" + + " option(index tag slingSitemaps)", Query.XPATH, ImmutableList.of( rootDe.adaptTo(Node.class), @@ -134,7 +135,8 @@ public class SitemapSchedulerTest { context.registerInjectActivateService(subject); initResourceResolver(subject, resolver -> MockJcr.setQueryResult( resolver.adaptTo(Session.class), - "/jcr:root/content//*[@" + SitemapService.PROPERTY_SITEMAP_ROOT + "=true]", + "/jcr:root/content//*[@" + SitemapService.PROPERTY_SITEMAP_ROOT + "=true]" + + " option(index tag slingSitemaps)", Query.XPATH, Collections.singletonList(rootDe.adaptTo(Node.class)) )); @@ -167,7 +169,8 @@ public class SitemapSchedulerTest { }); initResourceResolver(subject, resolver -> MockJcr.setQueryResult( resolver.adaptTo(Session.class), - "/jcr:root/content//*[@" + SitemapService.PROPERTY_SITEMAP_ROOT + "=true]", + "/jcr:root/content//*[@" + SitemapService.PROPERTY_SITEMAP_ROOT + "=true]" + + " option(index tag slingSitemaps)", Query.XPATH, Collections.singletonList(rootDe.adaptTo(Node.class)) )); diff --git a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapServiceImplSchedulingTest.java b/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapServiceImplSchedulingTest.java index e3950e9..1dfd9fa 100644 --- a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapServiceImplSchedulingTest.java +++ b/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapServiceImplSchedulingTest.java @@ -56,7 +56,7 @@ public class SitemapServiceImplSchedulingTest { private final SitemapServiceImpl subject = new SitemapServiceImpl(); private final SitemapStorage storage = new SitemapStorage(); - private final SitemapGeneratorManager generatorManager = new SitemapGeneratorManager(); + private final SitemapGeneratorManagerImpl generatorManager = new SitemapGeneratorManagerImpl(); @Mock private ServiceUserMapped serviceUser; @@ -122,13 +122,15 @@ public class SitemapServiceImplSchedulingTest { private void setupResourceResolver(ResourceResolver resolver) { MockJcr.setQueryResult( resolver.adaptTo(Session.class), - "/jcr:root/content/site//*[@sling:sitemapRoot=true]", + "/jcr:root/content/site//*[@sling:sitemapRoot=true]" + + " option(index tag slingSitemaps)", Query.XPATH, Collections.singletonList(siteRoot.adaptTo(Node.class)) ); MockJcr.setQueryResult( resolver.adaptTo(Session.class), - "/jcr:root/content/microsite//*[@sling:sitemapRoot=true]", + "/jcr:root/content/microsite//*[@sling:sitemapRoot=true]" + + " option(index tag slingSitemaps)", Query.XPATH, Collections.singletonList(micrositeRoot.adaptTo(Node.class)) ); diff --git a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapServiceImplTest.java b/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapServiceImplTest.java index 100d376..8bc8e15 100644 --- a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapServiceImplTest.java +++ b/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapServiceImplTest.java @@ -66,7 +66,7 @@ public class SitemapServiceImplTest { private final SitemapServiceImpl subject = new SitemapServiceImpl(); private final SitemapStorage storage = new SitemapStorage(); - private final SitemapGeneratorManager generatorManager = new SitemapGeneratorManager(); + private final SitemapGeneratorManagerImpl generatorManager = new SitemapGeneratorManagerImpl(); @Mock private ServiceUserMapped serviceUser; @@ -148,7 +148,8 @@ public class SitemapServiceImplTest { MockJcr.setQueryResult( context.resourceResolver().adaptTo(Session.class), - "/jcr:root/content/site/en//*[@" + SitemapService.PROPERTY_SITEMAP_ROOT + "=true]", + "/jcr:root/content/site/en//*[@" + SitemapService.PROPERTY_SITEMAP_ROOT + "=true]" + + " option(index tag slingSitemaps)", Query.XPATH, Arrays.asList(enRoot.adaptTo(Node.class), enFaqs.adaptTo(Node.class)) ); @@ -174,7 +175,8 @@ public class SitemapServiceImplTest { MockJcr.setQueryResult( context.resourceResolver().adaptTo(Session.class), - "/jcr:root/content/site/en//*[@" + SitemapService.PROPERTY_SITEMAP_ROOT + "=true]", + "/jcr:root/content/site/en//*[@" + SitemapService.PROPERTY_SITEMAP_ROOT + "=true]" + + " option(index tag slingSitemaps)", Query.XPATH, Arrays.asList(enRoot.adaptTo(Node.class), enFaqs.adaptTo(Node.class)) ); @@ -222,7 +224,8 @@ public class SitemapServiceImplTest { MockJcr.setQueryResult( context.resourceResolver().adaptTo(Session.class), - "/jcr:root/content/site/en//*[@" + SitemapService.PROPERTY_SITEMAP_ROOT + "=true]", + "/jcr:root/content/site/en//*[@" + SitemapService.PROPERTY_SITEMAP_ROOT + "=true]" + + " option(index tag slingSitemaps)", Query.XPATH, Arrays.asList(enRoot.adaptTo(Node.class), enNews.adaptTo(Node.class)) ); diff --git a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapServletTest.java b/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapServletTest.java index 5b6543c..60464a6 100644 --- a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapServletTest.java +++ b/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapServletTest.java @@ -66,7 +66,7 @@ public class SitemapServletTest { private final SitemapServlet subject = new SitemapServlet(); private final SitemapStorage storage = spy(new SitemapStorage()); private final SitemapServiceImpl sitemapService = new SitemapServiceImpl(); - private final SitemapGeneratorManager generatorManager = new SitemapGeneratorManager(); + private final SitemapGeneratorManagerImpl generatorManager = new SitemapGeneratorManagerImpl(); private final ExtensionProviderManager extensionProviderManager = new ExtensionProviderManager(); private SitemapGenerator generator = new TestResourceTreeSitemapGenerator() { diff --git a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapStorageTest.java b/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapStorageTest.java index 57264e9..5b83b15 100644 --- a/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapStorageTest.java +++ b/sitemap/src/test/java/org/apache/sling/sitemap/impl/SitemapStorageTest.java @@ -57,7 +57,7 @@ public class SitemapStorageTest { public final SlingContext context = new SlingContext(); private final SitemapStorage subject = new SitemapStorage(); - private final SitemapGeneratorManager generatorManager = new SitemapGeneratorManager(); + private final SitemapGeneratorManagerImpl generatorManager = new SitemapGeneratorManagerImpl(); @Mock(lenient = true) private SitemapGenerator generator;