Package org.eclipse.aether.internal.impl
Class DefaultUpdateCheckManager
- java.lang.Object
-
- org.eclipse.aether.internal.impl.DefaultUpdateCheckManager
-
- All Implemented Interfaces:
UpdateCheckManager
,Service
@Singleton @Named public class DefaultUpdateCheckManager extends java.lang.Object implements UpdateCheckManager, Service
-
-
Field Summary
Fields Modifier and Type Field Description (package private) static java.lang.String
CONFIG_PROP_SESSION_STATE
private static java.lang.String
ERROR_KEY_SUFFIX
private static org.slf4j.Logger
LOGGER
private static java.lang.String
NOT_FOUND
(package private) static java.lang.Object
SESSION_CHECKS
private static int
STATE_BYPASS
private static int
STATE_DISABLED
private static int
STATE_ENABLED
private TrackingFileManager
trackingFileManager
private static long
TS_NEVER
This "last modified" timestamp is used when no local file is present, signaling "first attempt" to cache a file, but as it is not present, outcome is simply always "go get it".private static long
TS_UNKNOWN
This "last modified" timestamp is returned bygetLastUpdated(Properties, String)
method when the timestamp entry is not found (due properties file not present or key not present in properties file, irrelevant).private static java.lang.String
UPDATED_KEY_SUFFIX
private UpdatePolicyAnalyzer
updatePolicyAnalyzer
-
Constructor Summary
Constructors Constructor Description DefaultUpdateCheckManager()
Deprecated.DefaultUpdateCheckManager(TrackingFileManager trackingFileManager, UpdatePolicyAnalyzer updatePolicyAnalyzer)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
checkArtifact(RepositorySystemSession session, UpdateCheck<Artifact,ArtifactTransferException> check)
Checks whether an artifact has to be updated from a remote repository.void
checkMetadata(RepositorySystemSession session, UpdateCheck<Metadata,MetadataTransferException> check)
Checks whether metadata has to be updated from a remote repository.private java.io.File
getArtifactTouchFile(java.io.File artifactFile)
private static int
getCacheFlag(java.lang.String error)
private java.lang.String
getDataKey(java.io.File metadataFile)
private java.lang.String
getDataKey(RemoteRepository repository)
private java.lang.String
getError(java.util.Properties props, java.lang.String key)
private long
getLastUpdated(java.util.Properties props, java.lang.String key)
private java.io.File
getMetadataTouchFile(java.io.File metadataFile)
private java.lang.String
getRepoKey(RepositorySystemSession session, RemoteRepository repository)
private int
getSessionState(RepositorySystemSession session)
private java.lang.String
getTransferKey(RepositorySystemSession session, java.io.File metadataFile, RemoteRepository repository)
private java.lang.String
getTransferKey(RepositorySystemSession session, RemoteRepository repository)
private java.lang.String
getUpdateKey(RepositorySystemSession session, java.io.File file, RemoteRepository repository)
private boolean
hasErrors(java.util.Properties props)
void
initService(ServiceLocator locator)
Provides the opportunity to initialize this service and to acquire other services for its operation from the locator.private boolean
isAlreadyUpdated(RepositorySystemSession session, java.lang.Object updateKey)
private boolean
isUpdatedRequired(RepositorySystemSession session, long lastModified, java.lang.String policy)
private ArtifactTransferException
newException(java.lang.String error, Artifact artifact, RemoteRepository repository)
private MetadataTransferException
newException(java.lang.String error, Metadata metadata, RemoteRepository repository)
private java.lang.String
normalizeRepoUrl(java.lang.String url)
private java.util.Properties
read(java.io.File touchFile)
DefaultUpdateCheckManager
setTrackingFileManager(TrackingFileManager trackingFileManager)
private void
setUpdated(RepositorySystemSession session, java.lang.Object updateKey)
DefaultUpdateCheckManager
setUpdatePolicyAnalyzer(UpdatePolicyAnalyzer updatePolicyAnalyzer)
void
touchArtifact(RepositorySystemSession session, UpdateCheck<Artifact,ArtifactTransferException> check)
Updates the timestamp for the artifact contained in the update check.void
touchMetadata(RepositorySystemSession session, UpdateCheck<Metadata,MetadataTransferException> check)
Updates the timestamp for the metadata contained in the update check.private java.util.Properties
write(java.io.File touchFile, java.lang.String dataKey, java.lang.String transferKey, java.lang.Exception error)
-
-
-
Field Detail
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
trackingFileManager
private TrackingFileManager trackingFileManager
-
updatePolicyAnalyzer
private UpdatePolicyAnalyzer updatePolicyAnalyzer
-
UPDATED_KEY_SUFFIX
private static final java.lang.String UPDATED_KEY_SUFFIX
- See Also:
- Constant Field Values
-
ERROR_KEY_SUFFIX
private static final java.lang.String ERROR_KEY_SUFFIX
- See Also:
- Constant Field Values
-
NOT_FOUND
private static final java.lang.String NOT_FOUND
- See Also:
- Constant Field Values
-
SESSION_CHECKS
static final java.lang.Object SESSION_CHECKS
-
CONFIG_PROP_SESSION_STATE
static final java.lang.String CONFIG_PROP_SESSION_STATE
- See Also:
- Constant Field Values
-
STATE_ENABLED
private static final int STATE_ENABLED
- See Also:
- Constant Field Values
-
STATE_BYPASS
private static final int STATE_BYPASS
- See Also:
- Constant Field Values
-
STATE_DISABLED
private static final int STATE_DISABLED
- See Also:
- Constant Field Values
-
TS_NEVER
private static final long TS_NEVER
This "last modified" timestamp is used when no local file is present, signaling "first attempt" to cache a file, but as it is not present, outcome is simply always "go get it".Its meaning is "we never downloaded it", so go grab it.
- See Also:
- Constant Field Values
-
TS_UNKNOWN
private static final long TS_UNKNOWN
This "last modified" timestamp is returned bygetLastUpdated(Properties, String)
method when the timestamp entry is not found (due properties file not present or key not present in properties file, irrelevant). It means that the cached file (artifact or metadata) is present, but we cannot tell when was it downloaded. In this case, it isUpdatePolicyAnalyzer
applying in-effect policy, that decide is update (re-download) needed or not. For example, if policy is "never", we should not re-download the file.Its meaning is "we downloaded it, but have no idea when", so let the policy decide its fate.
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DefaultUpdateCheckManager
@Deprecated public DefaultUpdateCheckManager()
Deprecated.
-
DefaultUpdateCheckManager
@Inject public DefaultUpdateCheckManager(TrackingFileManager trackingFileManager, UpdatePolicyAnalyzer updatePolicyAnalyzer)
-
-
Method Detail
-
initService
public void initService(ServiceLocator locator)
Description copied from interface:Service
Provides the opportunity to initialize this service and to acquire other services for its operation from the locator. A service must not save the reference to the provided service locator.- Specified by:
initService
in interfaceService
- Parameters:
locator
- The service locator, must not benull
.
-
setTrackingFileManager
public DefaultUpdateCheckManager setTrackingFileManager(TrackingFileManager trackingFileManager)
-
setUpdatePolicyAnalyzer
public DefaultUpdateCheckManager setUpdatePolicyAnalyzer(UpdatePolicyAnalyzer updatePolicyAnalyzer)
-
checkArtifact
public void checkArtifact(RepositorySystemSession session, UpdateCheck<Artifact,ArtifactTransferException> check)
Description copied from interface:UpdateCheckManager
Checks whether an artifact has to be updated from a remote repository.- Specified by:
checkArtifact
in interfaceUpdateCheckManager
- Parameters:
session
- The repository system session during which the request is made, must not benull
.check
- The update check request, must not benull
.
-
getCacheFlag
private static int getCacheFlag(java.lang.String error)
-
newException
private ArtifactTransferException newException(java.lang.String error, Artifact artifact, RemoteRepository repository)
-
checkMetadata
public void checkMetadata(RepositorySystemSession session, UpdateCheck<Metadata,MetadataTransferException> check)
Description copied from interface:UpdateCheckManager
Checks whether metadata has to be updated from a remote repository.- Specified by:
checkMetadata
in interfaceUpdateCheckManager
- Parameters:
session
- The repository system session during which the request is made, must not benull
.check
- The update check request, must not benull
.
-
newException
private MetadataTransferException newException(java.lang.String error, Metadata metadata, RemoteRepository repository)
-
getLastUpdated
private long getLastUpdated(java.util.Properties props, java.lang.String key)
-
getError
private java.lang.String getError(java.util.Properties props, java.lang.String key)
-
getArtifactTouchFile
private java.io.File getArtifactTouchFile(java.io.File artifactFile)
-
getMetadataTouchFile
private java.io.File getMetadataTouchFile(java.io.File metadataFile)
-
getDataKey
private java.lang.String getDataKey(RemoteRepository repository)
-
getTransferKey
private java.lang.String getTransferKey(RepositorySystemSession session, RemoteRepository repository)
-
getDataKey
private java.lang.String getDataKey(java.io.File metadataFile)
-
getTransferKey
private java.lang.String getTransferKey(RepositorySystemSession session, java.io.File metadataFile, RemoteRepository repository)
-
getRepoKey
private java.lang.String getRepoKey(RepositorySystemSession session, RemoteRepository repository)
-
normalizeRepoUrl
private java.lang.String normalizeRepoUrl(java.lang.String url)
-
getUpdateKey
private java.lang.String getUpdateKey(RepositorySystemSession session, java.io.File file, RemoteRepository repository)
-
getSessionState
private int getSessionState(RepositorySystemSession session)
-
isAlreadyUpdated
private boolean isAlreadyUpdated(RepositorySystemSession session, java.lang.Object updateKey)
-
setUpdated
private void setUpdated(RepositorySystemSession session, java.lang.Object updateKey)
-
isUpdatedRequired
private boolean isUpdatedRequired(RepositorySystemSession session, long lastModified, java.lang.String policy)
-
read
private java.util.Properties read(java.io.File touchFile)
-
touchArtifact
public void touchArtifact(RepositorySystemSession session, UpdateCheck<Artifact,ArtifactTransferException> check)
Description copied from interface:UpdateCheckManager
Updates the timestamp for the artifact contained in the update check.- Specified by:
touchArtifact
in interfaceUpdateCheckManager
- Parameters:
session
- The repository system session during which the request is made, must not benull
.check
- The update check request, must not benull
.
-
hasErrors
private boolean hasErrors(java.util.Properties props)
-
touchMetadata
public void touchMetadata(RepositorySystemSession session, UpdateCheck<Metadata,MetadataTransferException> check)
Description copied from interface:UpdateCheckManager
Updates the timestamp for the metadata contained in the update check.- Specified by:
touchMetadata
in interfaceUpdateCheckManager
- Parameters:
session
- The repository system session during which the request is made, must not benull
.check
- The update check request, must not benull
.
-
write
private java.util.Properties write(java.io.File touchFile, java.lang.String dataKey, java.lang.String transferKey, java.lang.Exception error)
-
-