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 Object
implements UpdateCheckManager, Service
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final String
private static final String
private static final org.slf4j.Logger
private static final String
(package private) static final Object
private static final int
private static final int
private static final int
private TrackingFileManager
private static final long
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 final long
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 final String
private UpdatePolicyAnalyzer
-
Constructor Summary
ConstructorsConstructorDescriptionDeprecated.DefaultUpdateCheckManager
(TrackingFileManager trackingFileManager, UpdatePolicyAnalyzer updatePolicyAnalyzer) -
Method Summary
Modifier and TypeMethodDescriptionvoid
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 File
getArtifactTouchFile
(File artifactFile) private static int
getCacheFlag
(String error) private String
getDataKey
(File metadataFile) private String
getDataKey
(RemoteRepository repository) private String
getError
(Properties props, String key) private long
getLastUpdated
(Properties props, String key) private File
getMetadataTouchFile
(File metadataFile) private String
getRepoKey
(RepositorySystemSession session, RemoteRepository repository) private int
getSessionState
(RepositorySystemSession session) private String
getTransferKey
(RepositorySystemSession session, File metadataFile, RemoteRepository repository) private String
getTransferKey
(RepositorySystemSession session, RemoteRepository repository) private String
getUpdateKey
(RepositorySystemSession session, File file, RemoteRepository repository) private boolean
hasErrors
(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, Object updateKey) private boolean
isUpdatedRequired
(RepositorySystemSession session, long lastModified, String policy) private ArtifactTransferException
newException
(String error, Artifact artifact, RemoteRepository repository) private MetadataTransferException
newException
(String error, Metadata metadata, RemoteRepository repository) private String
normalizeRepoUrl
(String url) private Properties
setTrackingFileManager
(TrackingFileManager trackingFileManager) private void
setUpdated
(RepositorySystemSession session, Object updateKey) 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 Properties
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
trackingFileManager
-
updatePolicyAnalyzer
-
UPDATED_KEY_SUFFIX
- See Also:
-
ERROR_KEY_SUFFIX
- See Also:
-
NOT_FOUND
- See Also:
-
SESSION_CHECKS
-
CONFIG_PROP_SESSION_STATE
- See Also:
-
STATE_ENABLED
private static final int STATE_ENABLED- See Also:
-
STATE_BYPASS
private static final int STATE_BYPASS- See Also:
-
STATE_DISABLED
private static final int STATE_DISABLED- See Also:
-
TS_NEVER
private static final long TS_NEVERThis "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:
-
TS_UNKNOWN
private static final long TS_UNKNOWNThis "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:
-
-
Constructor Details
-
DefaultUpdateCheckManager
Deprecated. -
DefaultUpdateCheckManager
@Inject public DefaultUpdateCheckManager(TrackingFileManager trackingFileManager, UpdatePolicyAnalyzer updatePolicyAnalyzer)
-
-
Method Details
-
initService
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
-
setUpdatePolicyAnalyzer
-
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
-
newException
private ArtifactTransferException newException(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(String error, Metadata metadata, RemoteRepository repository) -
getLastUpdated
-
getError
-
getArtifactTouchFile
-
getMetadataTouchFile
-
getDataKey
-
getTransferKey
-
getDataKey
-
getTransferKey
private String getTransferKey(RepositorySystemSession session, File metadataFile, RemoteRepository repository) -
getRepoKey
-
normalizeRepoUrl
-
getUpdateKey
private String getUpdateKey(RepositorySystemSession session, File file, RemoteRepository repository) -
getSessionState
-
isAlreadyUpdated
-
setUpdated
-
isUpdatedRequired
private boolean isUpdatedRequired(RepositorySystemSession session, long lastModified, String policy) -
read
-
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
-
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
-