[
https://issues.apache.org/jira/browse/NPANDAY-322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13143094#comment-13143094
]
Stoyan Damov edited comment on NPANDAY-322 at 11/3/11 1:06 PM:
---------------------------------------------------------------
h3. NPANDAY-322 fix
h4. Added {{ArtifactUtils}} helper class with the following methods:
{code}
bool IsSnapshot(Artifact.Artifact artifact)
{code}
Checks whether the artifact is a snapshot one, implementation checks whether
artifact's version ends on {{-SNAPSHOT}}.
{code}
bool Exists(Artifact.Artifact artifact)
{code}
Checks whether the artifact exists in the local repository (impl. in terms of
{{artifact.FileInfo.Exists}})
{code}
bool DownloadFromRemoteRepository(Artifact.Artifact artifact,
NPanday.Logging.Logger logger)
{code}
Downloads the artifact from the remote repository. Same as
{{NPanday.ProjectImporter.Digest.Model.Reference.DownloadArtifact(artifact,
logger)}}.
{code}
string GetArtifactReferenceFolder(Artifact.Artifact artifact, string
referenceFolder)
{code}
Returns the reference folder for the artifact, modified to match the .dll
searched in {{NPanday.ProjectImporter.Digest.Model.Reference.cs}}. The format
is {{referenceFolder\groupId\artifactId-version}}, e.g.
{{SomeFolder\.references\com.company.something\artifact-1.0-SNAPSHOT}}
{code}
string GetArtifactReferenceFilePath(Artifact.Artifact artifact, string
referenceFolder)
{code}
Returns path to the artifact's file in the local reference folder in the format
{{GetArtifactReferenceFolder()\artifactId.extension}}, e.g.
{{SomeFolder\.references\com.company.something\artifact-1.0-SNAPSHOT\artifact.dll}}.
{code}
DateTime GetArtifactTimestamp(Artifact.Artifact artifact)
{code}
Returs the artifact's timestamp in the local repository. Attempts to get the
timestamp off {{maven-metadata-repoId.xml}} or {{maven-metadata-local.xml}},
falls back to file's {{LastWriteStampUtc}}.
{code}
bool IsEarlierArtifactTimestamp(DateTime value, DateTime comparand)
{code}
Compares two timestamps disregarding the milliseconds (timestamps in
{{maven-metadata-*.xml}} do not have milliseconds).
{note}I should have added the above documentation in the class. Let me know if
I should do it and then re-attach the diff.{note}
h4. *TODO:* Describe the fix.
h3. Implemented NPANDAY-476
I know it's wrong to put that in this ticket, but this is a placeholder until I
get myself to update the other ticket.
In {{Connect.cs}} refactored a bit so that methods dealing with resync
solution/project references have appropriate names.
Extracted the resync logic into implementation methods and refactored button
click event handlers to call these.
In the implementation methods added a boolean flag whether to resync from the
remote or local repositories and then just delegated to the appropriate
{{ReferenceManager.ResyncXxx}} call.
In {{ReferenceManager.cs}}'s {{IReferenceManager}} added
{{ResyncArtifactsFromLocalRepository}} method.
Refactored {{ResyncArtifacts}} and {{ResyncArtifactsFromLocalRepository}} to
call an implementation method, passing whether the resync should be done from
the remote or local repository.
was (Author: stoyan):
h3. Added {{ArtifactUtils}} helper class with the following methods:
{code}
bool IsSnapshot(Artifact.Artifact artifact)
{code}
Checks whether the artifact is a snapshot one, implementation checks whether
artifact's version ends on {{-SNAPSHOT}}.
{code}
bool Exists(Artifact.Artifact artifact)
{code}
Checks whether the artifact exists in the local repository (impl. in terms of
{{artifact.FileInfo.Exists}})
{code}
bool DownloadFromRemoteRepository(Artifact.Artifact artifact,
NPanday.Logging.Logger logger)
{code}
Downloads the artifact from the remote repository. Same as
{{NPanday.ProjectImporter.Digest.Model.Reference.DownloadArtifact(artifact,
logger)}}.
{code}
string GetArtifactReferenceFolder(Artifact.Artifact artifact, string
referenceFolder)
{code}
Returns the reference folder for the artifact, modified to match the .dll
searched in {{NPanday.ProjectImporter.Digest.Model.Reference.cs}}. The format
is {{referenceFolder\groupId\artifactId-version}}, e.g.
{{SomeFolder\.references\com.company.something\artifact-1.0-SNAPSHOT}}
{code}
string GetArtifactReferenceFilePath(Artifact.Artifact artifact, string
referenceFolder)
{code}
Returns path to the artifact's file in the local reference folder in the format
{{GetArtifactReferenceFolder()\artifactId.extension}}, e.g.
{{SomeFolder\.references\com.company.something\artifact-1.0-SNAPSHOT\artifact.dll}}.
{code}
DateTime GetArtifactTimestamp(Artifact.Artifact artifact)
{code}
Returs the artifact's timestamp in the local repository. Attempts to get the
timestamp off {{maven-metadata-repoId.xml}} or {{maven-metadata-local.xml}},
falls back to file's {{LastWriteStampUtc}}.
{code}
bool IsEarlierArtifactTimestamp(DateTime value, DateTime comparand)
{code}
Compares two timestamps disregarding the milliseconds (timestamps in
{{maven-metadata-*.xml}} do not have milliseconds).
{note}I should have added the above documentation in the class. Let me know if
I should do it and then re-attach the diff.{note}
> Resync Reference doesn't update SNAPSHOT artifact from local repository that
> already exist in .references folder
> ----------------------------------------------------------------------------------------------------------------
>
> Key: NPANDAY-322
> URL: https://issues.apache.org/jira/browse/NPANDAY-322
> Project: NPanday
> Issue Type: Bug
> Components: Visual Studio Add-in
> Affects Versions: 1.4-incubating
> Reporter: Dmitry L
> Assignee: Lars Corneliussen
> Priority: Minor
> Fix For: 1.2.1, 1.4.1-incubating
>
> Attachments: ArtifactUtils.cs, Connect.cs,
> NPANDAY-322_and_NPANDAY-476.diff, ReferenceManager.cs
>
>
> Steps:
> 1. Install Library1 into local maven repo
> 2. Add Library1 as dependency using Resync Reference to ProjectA (it will be
> copied into .references folder)
> 3. Update and reinstall Library1 into local maven repo
> 4. Invoke Resync Reference for ProjectA
> 5. Error: Library1 won't be updated in .references folder
> Expected: newer version (in terms of file timestamp) of Library1 (if any)
> should be copied into .references folder from local maven repo during Resync
> Reference
> Issue exist in trunk r59731
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira