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
Modifier and TypeClassDescriptionprotected class
Utility class for running paged queries. -
Field Summary
Modifier and TypeFieldDescriptionstatic final int
static final String
static final String
static final String
static final String
static final String
static final String
Fields inherited from interface org.apache.sling.resourceresolver.impl.mapping.MapEntriesHandler
EMPTY
Fields 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
ConstructorDescriptionMapEntries
(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 TypeMethodDescriptionvoid
dispose()
Cleans up this class.protected boolean
doInit()
Actual initializer.@NotNull Map<String,
Collection<String>> getAliasMap
(String parentPath) Returns all alias entries for children of the specifiedparentPath
Return 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 void
Actual vanity paths initializer.boolean
Whether alias resolution optimization is enabled.void
Log an error if alias optimization should be used but is currently disabledvoid
onChange
(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:
LoginException
IOException
-
-
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:MapEntriesHandler
Creates 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:
getResolveMaps
in interfaceMapEntriesHandler
- Returns:
- an unmodifiable, sorted, list of resolution map entries
-
getResolveMapsIterator
Description copied from interface:MapEntriesHandler
Creates 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:
getResolveMapsIterator
in interfaceMapEntriesHandler
- Parameters:
requestPath
- the requestPath- Returns:
- the map entry iterator
-
getMapMaps
Description copied from interface:MapEntriesHandler
Return 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:
getMapMaps
in interfaceMapEntriesHandler
- Returns:
- an unmodifiable collection of map entries
-
isOptimizeAliasResolutionEnabled
public boolean isOptimizeAliasResolutionEnabled()Description copied from interface:MapEntriesHandler
Whether alias resolution optimization is enabled. If it is enabledMapEntriesHandler.getAliasMap(String)
can be used.- Specified by:
isOptimizeAliasResolutionEnabled
in interfaceMapEntriesHandler
- Returns:
- true if the optimizedAliasResolution should be used, false otherwise
-
getAliasMap
Description copied from interface:MapEntriesHandler
Returns all alias entries for children of the specifiedparentPath
The returned map has resource names as keys and the assigned aliases as values.
- Specified by:
getAliasMap
in interfaceMapEntriesHandler
- Parameters:
parentPath
- the parent path- Returns:
- a map of all child alias entries, possibly empty
-
getVanityPathMappings
Description copied from interface:MapEntriesHandler
Returns vanity paths mappingsThe keys in the map are resource paths and the values are the vanity mappings.
- Specified by:
getVanityPathMappings
in 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:
onChange
in interfaceResourceChangeListener
- Parameters:
changes
- The changes list. This list is immutable.
-
logDisableAliasOptimization
public void logDisableAliasOptimization()Description copied from interface:MapEntriesHandler
Log an error if alias optimization should be used but is currently disabled- Specified by:
logDisableAliasOptimization
in interfaceMapEntriesHandler
-