Class MapEntries
java.lang.Object
org.apache.sling.resourceresolver.impl.mapping.MapEntries
- All Implemented Interfaces:
ExternalResourceChangeListener,ResourceChangeListener,MapEntriesHandler
public class MapEntries
extends Object
implements MapEntriesHandler, ResourceChangeListener, ExternalResourceChangeListener
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected classUtility class for running paged queries. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringFields inherited from interface org.apache.sling.resourceresolver.impl.mapping.MapEntriesHandler
EMPTYFields inherited from interface org.apache.sling.api.resource.observation.ResourceChangeListener
CHANGE_ADDED, CHANGE_CHANGED, CHANGE_PROVIDER_ADDED, CHANGE_PROVIDER_REMOVED, CHANGE_REMOVED, CHANGES, PATHS, PROPERTY_NAMES_HINT -
Constructor Summary
ConstructorsConstructorDescriptionMapEntries(MapConfigurationProvider factory, org.osgi.framework.BundleContext bundleContext, org.osgi.service.event.EventAdmin eventAdmin, StringInterpolationProvider stringInterpolationProvider, Optional<org.apache.sling.resourceresolver.impl.ResourceResolverMetrics> metrics) -
Method Summary
Modifier and TypeMethodDescriptionvoiddispose()Cleans up this class.protected booleandoInit()Actual initializer.@NotNull Map<String,Collection<String>> getAliasMap(String parentPath) Returns all alias entries for children of the specifiedparentPathReturn a flat listing of map entries used for mapping resources to URLsCreates a flat listing of all the map entries used for resolving URLs to resourcesgetResolveMapsIterator(String requestPath) Creates an iterator over the possibly applicable mapping entries for resolving a resourceReturns vanity paths mappingsprotected voidActual vanity paths initializer.booleanWhether alias resolution optimization is enabled.voidLog an error if alias optimization should be used but is currently disabledvoidonChange(List<ResourceChange> changes) Handles the change to any of the node properties relevant for vanity URL mappings.
-
Field Details
-
PROP_REDIRECT_EXTERNAL
- See Also:
-
PROP_REDIRECT_EXTERNAL_STATUS
- See Also:
-
PROP_REDIRECT_EXTERNAL_REDIRECT_STATUS
- See Also:
-
PROP_VANITY_PATH
- See Also:
-
PROP_VANITY_ORDER
- See Also:
-
DEFAULT_MAP_ROOT
- See Also:
-
DEFAULT_DEFAULT_VANITY_PATH_REDIRECT_STATUS
public static final int DEFAULT_DEFAULT_VANITY_PATH_REDIRECT_STATUS- See Also:
-
-
Constructor Details
-
MapEntries
public MapEntries(MapConfigurationProvider factory, org.osgi.framework.BundleContext bundleContext, org.osgi.service.event.EventAdmin eventAdmin, StringInterpolationProvider stringInterpolationProvider, Optional<org.apache.sling.resourceresolver.impl.ResourceResolverMetrics> metrics) throws LoginException, IOException - Throws:
LoginExceptionIOException
-
-
Method Details
-
doInit
protected boolean doInit()Actual initializer. Guards itself against concurrent use by using a ReentrantLock. Does nothing if the resource resolver has already been null-ed.- Returns:
- true if the optimizedAliasResolution is enabled, false otherwise
-
initializeVanityPaths
Actual vanity paths initializer. Guards itself against concurrent use by using a ReentrantLock. Does nothing if the resource resolver has already been null-ed.- Throws:
IOException- in case of problems
-
dispose
public void dispose()Cleans up this class. -
getResolveMaps
Description copied from interface:MapEntriesHandlerCreates a flat listing of all the map entries used for resolving URLs to resourcesThis method returns information about all resolve rules, such as vanity paths, mapping entries, virtual URLs and URL mappings.
This list is computed on-demand and therefore should not be used in performance-critical code.
- Specified by:
getResolveMapsin interfaceMapEntriesHandler- Returns:
- an unmodifiable, sorted, list of resolution map entries
-
getResolveMapsIterator
Description copied from interface:MapEntriesHandlerCreates an iterator over the possibly applicable mapping entries for resolving a resourceThis method uses the request path to filter out any unapplicable mapping entries and is therefore preferrable over
MapEntriesHandler.getResolveMaps().The iterator will iterate over the mapping entries in the order of the pattern length.
- Specified by:
getResolveMapsIteratorin interfaceMapEntriesHandler- Parameters:
requestPath- the requestPath- Returns:
- the map entry iterator
-
getMapMaps
Description copied from interface:MapEntriesHandlerReturn a flat listing of map entries used for mapping resources to URLsThis method returns information about all mapping rules. Note that vanity paths are excluded.
- Specified by:
getMapMapsin interfaceMapEntriesHandler- Returns:
- an unmodifiable collection of map entries
-
isOptimizeAliasResolutionEnabled
public boolean isOptimizeAliasResolutionEnabled()Description copied from interface:MapEntriesHandlerWhether alias resolution optimization is enabled. If it is enabledMapEntriesHandler.getAliasMap(String)can be used.- Specified by:
isOptimizeAliasResolutionEnabledin interfaceMapEntriesHandler- Returns:
- true if the optimizedAliasResolution should be used, false otherwise
-
getAliasMap
Description copied from interface:MapEntriesHandlerReturns all alias entries for children of the specifiedparentPathThe returned map has resource names as keys and the assigned aliases as values.
- Specified by:
getAliasMapin interfaceMapEntriesHandler- Parameters:
parentPath- the parent path- Returns:
- a map of all child alias entries, possibly empty
-
getVanityPathMappings
Description copied from interface:MapEntriesHandlerReturns vanity paths mappingsThe keys in the map are resource paths and the values are the vanity mappings.
- Specified by:
getVanityPathMappingsin interfaceMapEntriesHandler- Returns:
- an unmodifiable list of vanity path mappings
-
onChange
Handles the change to any of the node properties relevant for vanity URL mappings. TheMapEntries(MapConfigurationProvider, BundleContext, EventAdmin, StringInterpolationProvider, Optional)constructor makes sure the event listener is registered to only get appropriate events.- Specified by:
onChangein interfaceResourceChangeListener- Parameters:
changes- The changes list. This list is immutable.
-
logDisableAliasOptimization
public void logDisableAliasOptimization()Description copied from interface:MapEntriesHandlerLog an error if alias optimization should be used but is currently disabled- Specified by:
logDisableAliasOptimizationin interfaceMapEntriesHandler
-