Changing time parameter

This commit is contained in:
Martin Stockhammer 2019-08-20 20:08:49 +02:00
parent 7a5bc65de4
commit 379a72c3b7
12 changed files with 69 additions and 50 deletions

View File

@ -46,6 +46,8 @@ import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -69,7 +71,7 @@ public class ArchivaMetadataCreationConsumer
@Inject
private FileTypes filetypes;
private Date whenGathered;
private ZonedDateTime whenGathered;
private List<String> includes = new ArrayList<>( 0 );
@ -120,7 +122,7 @@ public class ArchivaMetadataCreationConsumer
throws ConsumerException
{
repoId = repo.getId();
this.whenGathered = whenGathered;
this.whenGathered = ZonedDateTime.ofInstant(whenGathered.toInstant(), ZoneId.of("GMT"));
}
@Override

View File

@ -64,6 +64,8 @@ import java.io.Reader;
import java.nio.channels.Channels;
import java.nio.charset.Charset;
import java.nio.file.NoSuchFileException;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.*;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@ -740,7 +742,7 @@ public class Maven2RepositoryStorage
}
private static void populateArtifactMetadataFromFile(ArtifactMetadata metadata, StorageAsset file) throws IOException {
metadata.setWhenGathered(new Date());
metadata.setWhenGathered(ZonedDateTime.now(ZoneId.of("GMT")));
metadata.setFileLastModified(file.getModificationTime().toEpochMilli());
ChecksummedFile checksummedFile = new ChecksummedFile(file.getFilePath());
try {

View File

@ -97,7 +97,7 @@ public class NewArtifactsRssFeedProcessor
throws FeedException
{
ZonedDateTime greaterThanThisDate = ZonedDateTime.of(LocalDateTime.now(), GMT_TIME_ZONE.toZoneId()).minusDays(
ZonedDateTime greaterThanThisDate = ZonedDateTime.now(GMT_TIME_ZONE.toZoneId()).minusDays(
getNumberOfDaysBeforeNow()
).truncatedTo(ChronoUnit.SECONDS);
List<ArtifactMetadata> artifacts;
@ -118,7 +118,7 @@ public class NewArtifactsRssFeedProcessor
int idx = 0;
for ( ArtifactMetadata artifact : artifacts )
{
long whenGathered = artifact.getWhenGathered().getTime();
long whenGathered = artifact.getWhenGathered().toInstant().toEpochMilli();
String id = artifact.getNamespace() + "/" + artifact.getProject() + "/" + artifact.getId();
if ( tmp != whenGathered )
@ -133,7 +133,7 @@ public class NewArtifactsRssFeedProcessor
String repoId1 = artifact.getRepositoryId();
entry = new RssFeedEntry( this.getTitle() + "\'" + repoId1 + "\'" + " as of " + new Date(
whenGathered ) );
entry.setPublishedDate( artifact.getWhenGathered() );
entry.setPublishedDate( Date.from(artifact.getWhenGathered().toInstant()) );
description = this.getDescription() + "\'" + repoId1 + "\'" + ": \n" + id + " | ";
}
else

View File

@ -32,6 +32,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.inject.Inject;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
@ -116,7 +117,7 @@ public class NewVersionsOfArtifactRssFeedProcessor
int idx = 0;
for ( ArtifactMetadata artifact : artifacts )
{
long whenGathered = artifact.getWhenGathered().getTime();
long whenGathered = artifact.getWhenGathered().toInstant().toEpochMilli();
if ( tmp != whenGathered )
{
@ -129,7 +130,7 @@ public class NewVersionsOfArtifactRssFeedProcessor
entry = new RssFeedEntry(
this.getTitle() + "\'" + groupId + ":" + artifactId + "\'" + " as of " + new Date( whenGathered ) );
entry.setPublishedDate( artifact.getWhenGathered() );
entry.setPublishedDate( Date.from(artifact.getWhenGathered().toInstant()) );
description =
this.getDescription() + "\'" + groupId + ":" + artifactId + "\'" + ": \n" + artifact.getId() +
" | ";

View File

@ -34,6 +34,8 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
@ -95,7 +97,7 @@ public class NewArtifactsRssFeedProcessorTest
throws Exception
{
List<ArtifactMetadata> newArtifacts = new ArrayList<>();
Date whenGathered = Calendar.getInstance().getTime();
ZonedDateTime whenGathered = ZonedDateTime.of(LocalDateTime.now(), ZoneId.systemDefault());
newArtifacts.add( createArtifact( "artifact-one", "1.0", whenGathered ) );
newArtifacts.add( createArtifact( "artifact-one", "1.1", whenGathered ) );
@ -115,9 +117,8 @@ public class NewArtifactsRssFeedProcessorTest
SyndFeed feed = newArtifactsProcessor.process( reqParams );
// check that the date used in the call is close to the one passed (5 seconds difference at most)
Calendar cal = Calendar.getInstance( TimeZone.getTimeZone( "GMT" ) );
cal.add( Calendar.DATE, -30 );
assertTrue( metadataRepository.getFrom().minus(cal.getTimeInMillis(), ChronoUnit.MILLIS).toInstant().toEpochMilli() < 1000 * 5 );
ZonedDateTime cal = ZonedDateTime.of(LocalDateTime.now(), ZoneId.systemDefault()).minusDays(30);
assertTrue(ChronoUnit.SECONDS.between(cal.toInstant(), metadataRepository.getFrom().toInstant())<5);
assertEquals( null, metadataRepository.getTo() );
assertEquals( TEST_REPO, metadataRepository.getRepoId() );
@ -125,16 +126,16 @@ public class NewArtifactsRssFeedProcessorTest
assertTrue(
feed.getDescription().equals( "New artifacts found in repository 'test-repo' during repository scan." ) );
assertTrue( feed.getLanguage().equals( "en-us" ) );
assertTrue( feed.getPublishedDate().equals( whenGathered ) );
assertTrue( feed.getPublishedDate().toInstant().equals( whenGathered.toInstant() ) );
List<SyndEntry> entries = feed.getEntries();
assertEquals( entries.size(), 1 );
assertTrue(
entries.get( 0 ).getTitle().equals( "New Artifacts in Repository 'test-repo' as of " + whenGathered ) );
assertTrue( entries.get( 0 ).getPublishedDate().equals( whenGathered ) );
entries.get( 0 ).getTitle().contains( "New Artifacts in Repository 'test-repo' as of " ));
assertTrue( entries.get( 0 ).getPublishedDate().toInstant().equals( whenGathered.toInstant() ) );
}
private ArtifactMetadata createArtifact( String artifactId, String version, Date whenGathered )
private ArtifactMetadata createArtifact( String artifactId, String version, ZonedDateTime whenGathered )
{
ArtifactMetadata artifact = new ArtifactMetadata();
artifact.setNamespace( "org.apache.archiva" );

View File

@ -40,6 +40,9 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import java.nio.file.Paths;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.temporal.TemporalAccessor;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@ -119,12 +122,14 @@ public class NewVersionsOfArtifactRssFeedProcessorTest
public void testProcess()
throws Exception
{
Date whenGathered = new Date( 123456789 );
Date whenGatheredDate = new Date( 123456789 );
ZonedDateTime whenGathered = ZonedDateTime.ofInstant(whenGatheredDate.toInstant(), ZoneId.systemDefault());
ArtifactMetadata artifact1 = createArtifact( whenGathered, "1.0.1" );
ArtifactMetadata artifact2 = createArtifact( whenGathered, "1.0.2" );
Date whenGatheredNext = new Date( 345678912 );
Date whenGatheredNextDate = new Date( 345678912 );
ZonedDateTime whenGatheredNext = ZonedDateTime.ofInstant(whenGatheredNextDate.toInstant(), ZoneId.systemDefault());
ArtifactMetadata artifact3 = createArtifact( whenGatheredNext, "1.0.3-SNAPSHOT" );
@ -148,24 +153,23 @@ public class NewVersionsOfArtifactRssFeedProcessorTest
assertEquals( "New versions of artifact 'org.apache.archiva:artifact-two' found during repository scan.",
feed.getDescription() );
assertEquals( "en-us", feed.getLanguage() );
assertEquals( whenGatheredNext, feed.getPublishedDate() );
assertEquals( whenGatheredNext.toInstant(), ZonedDateTime.ofInstant(feed.getPublishedDate().toInstant(), ZoneId.systemDefault()).toInstant() );
List<SyndEntry> entries = feed.getEntries();
assertEquals( 2, entries.size() );
assertEquals( "New Versions of Artifact 'org.apache.archiva:artifact-two' as of " + whenGathered,
entries.get( 0 ).getTitle() );
assertEquals( whenGathered, entries.get( 0 ).getPublishedDate() );
assertTrue( entries.get(0).getTitle().contains("New Versions of Artifact 'org.apache.archiva:artifact-two' as of "));
assertEquals( whenGathered.toInstant(), entries.get( 0 ).getPublishedDate().toInstant() );
assertEquals( "New Versions of Artifact 'org.apache.archiva:artifact-two' as of " + whenGatheredNext,
entries.get( 1 ).getTitle() );
assertEquals( whenGatheredNext, entries.get( 1 ).getPublishedDate() );
assertTrue(entries.get(1).getTitle().contains("New Versions of Artifact 'org.apache.archiva:artifact-two' as of "));
assertEquals( whenGatheredNext.toInstant(), entries.get( 1 ).getPublishedDate().toInstant() );
metadataRepositoryControl.verify();
}
private ArtifactMetadata createArtifact( Date whenGathered, String version )
private ArtifactMetadata createArtifact(ZonedDateTime whenGathered, String version )
{
ArtifactMetadata artifact = new ArtifactMetadata();
artifact.setNamespace( GROUP_ID );

View File

@ -23,6 +23,7 @@ import org.apache.archiva.metadata.model.ArtifactMetadata;
import org.apache.archiva.metadata.repository.AbstractMetadataRepository;
import org.apache.archiva.metadata.repository.RepositorySession;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.Collection;
@ -43,7 +44,8 @@ public class TestMetadataRepository
public TestMetadataRepository()
{
Date whenGathered = new Date( 123456789 );
Date whenGatheredDate = new Date( 123456789 );
ZonedDateTime whenGathered = ZonedDateTime.ofInstant(whenGatheredDate.toInstant(), ZoneId.systemDefault());
addArtifact( "artifact-one", "1.0", whenGathered );
addArtifact( "artifact-one", "1.1", whenGathered );
@ -55,7 +57,7 @@ public class TestMetadataRepository
addArtifact( "artifact-four", "1.1-beta-2", whenGathered );
}
private void addArtifact( String projectId, String projectVersion, Date whenGathered )
private void addArtifact( String projectId, String projectVersion, ZonedDateTime whenGathered )
{
ArtifactMetadata artifact = new ArtifactMetadata();
artifact.setFileLastModified( System.currentTimeMillis() );

View File

@ -20,6 +20,7 @@ package org.apache.archiva.metadata.model;
*/
import javax.xml.bind.annotation.XmlRootElement;
import java.time.ZonedDateTime;
import java.util.Date;
/**
@ -96,7 +97,7 @@ public class ArtifactMetadata
/**
* When the artifact was found in the repository storage and added to the metadata content repository.
*/
private Date whenGathered;
private ZonedDateTime whenGathered;
public String getId()
{
@ -143,7 +144,7 @@ public class ArtifactMetadata
this.fileLastModified = new Date( fileLastModified );
}
public void setWhenGathered( Date whenGathered )
public void setWhenGathered( ZonedDateTime whenGathered )
{
this.whenGathered = whenGathered;
}
@ -158,7 +159,7 @@ public class ArtifactMetadata
this.sha1 = sha1;
}
public Date getWhenGathered()
public ZonedDateTime getWhenGathered()
{
return whenGathered;
}
@ -269,7 +270,7 @@ public class ArtifactMetadata
{
return false;
}
if ( whenGathered != null ? !whenGathered.equals( that.whenGathered ) : that.whenGathered != null )
if ( whenGathered != null ? !whenGathered.toInstant().equals( that.whenGathered.toInstant() ) : that.whenGathered != null )
{
return false;
}

View File

@ -35,6 +35,7 @@ import org.springframework.format.annotation.NumberFormat;
import org.springframework.test.context.ContextConfiguration;
import java.text.SimpleDateFormat;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.temporal.TemporalUnit;
import java.util.*;
@ -1224,7 +1225,7 @@ public abstract class AbstractMetadataRepositoryTest
getRepository( ).updateArtifact( session, TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
session.save( );
ZonedDateTime date = ZonedDateTime.from(artifact.getWhenGathered().toInstant()).minusSeconds(10);
ZonedDateTime date = ZonedDateTime.from(artifact.getWhenGathered().toInstant().atZone(ZoneId.systemDefault())).minusSeconds(10);
tryAssert( ( ) -> {
List<ArtifactMetadata> artifacts = getRepository( ).getArtifactsByDateRange( session, TEST_REPO_ID, date, null );
@ -1243,7 +1244,7 @@ public abstract class AbstractMetadataRepositoryTest
ArtifactMetadata artifact = createArtifact( );
getRepository( ).updateArtifact( session, TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
ZonedDateTime date = ZonedDateTime.from(artifact.getWhenGathered().toInstant()).plusSeconds(10);
ZonedDateTime date = ZonedDateTime.from(artifact.getWhenGathered().toInstant().atZone(ZoneId.systemDefault())).plusSeconds(10);
tryAssert( ( ) -> {
List<ArtifactMetadata> artifacts = getRepository( ).getArtifactsByDateRange( session, TEST_REPO_ID, date, null );
@ -1263,8 +1264,8 @@ public abstract class AbstractMetadataRepositoryTest
getRepository( ).updateArtifact( session, TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
session.save( );
ZonedDateTime lower = ZonedDateTime.from(artifact.getWhenGathered().toInstant()).minusSeconds(10);
ZonedDateTime upper = ZonedDateTime.from(artifact.getWhenGathered().toInstant()).plusSeconds(10);
ZonedDateTime lower = ZonedDateTime.from(artifact.getWhenGathered().toInstant().atZone(ZoneId.systemDefault())).minusSeconds(10);
ZonedDateTime upper = ZonedDateTime.from(artifact.getWhenGathered().toInstant().atZone(ZoneId.systemDefault())).plusSeconds(10);
tryAssert( ( ) -> {
List<ArtifactMetadata> artifacts = getRepository( ).getArtifactsByDateRange( session, TEST_REPO_ID, lower, upper );
@ -1284,7 +1285,7 @@ public abstract class AbstractMetadataRepositoryTest
getRepository( ).updateArtifact( session, TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
session.save( );
ZonedDateTime upper = ZonedDateTime.from(artifact.getWhenGathered().toInstant()).plusSeconds(10);
ZonedDateTime upper = ZonedDateTime.from(artifact.getWhenGathered().toInstant().atZone(ZoneId.systemDefault())).plusSeconds(10);
tryAssert( ( ) -> {
List<ArtifactMetadata> artifacts = getRepository( ).getArtifactsByDateRange( session, TEST_REPO_ID, null, upper );
@ -1304,7 +1305,7 @@ public abstract class AbstractMetadataRepositoryTest
getRepository( ).updateArtifact( session, TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact );
session.save( );
ZonedDateTime upper = ZonedDateTime.from(artifact.getWhenGathered().toInstant()).minusSeconds(10);
ZonedDateTime upper = ZonedDateTime.from(artifact.getWhenGathered().toInstant().atZone(ZoneId.systemDefault())).minusSeconds(10);
tryAssert( ( ) -> {
List<ArtifactMetadata> artifacts = getRepository( ).getArtifactsByDateRange( session, TEST_REPO_ID, null, upper );
@ -2208,7 +2209,7 @@ public abstract class AbstractMetadataRepositoryTest
{
ArtifactMetadata artifact = new ArtifactMetadata( );
artifact.setId( TEST_PROJECT + "-" + TEST_PROJECT_VERSION + "." + type );
artifact.setWhenGathered( new Date( ) );
artifact.setWhenGathered( ZonedDateTime.now() );
artifact.setNamespace( TEST_NAMESPACE );
artifact.setProject( TEST_PROJECT );
artifact.setRepositoryId( TEST_REPO_ID );

View File

@ -69,6 +69,8 @@ import org.modelmapper.ModelMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.Collection;
@ -1335,7 +1337,7 @@ public class CassandraMetadataRepository
// updater
ColumnFamilyUpdater<String, String> updater = this.artifactMetadataTemplate.createUpdater( key );
updater.setLong( FILE_LAST_MODIFIED.toString(), artifactMeta.getFileLastModified().getTime() );
updater.setLong( WHEN_GATHERED.toString(), artifactMeta.getWhenGathered().getTime() );
updater.setLong( WHEN_GATHERED.toString(), artifactMeta.getWhenGathered().toInstant().toEpochMilli() );
updater.setLong( SIZE.toString(), artifactMeta.getSize() );
addUpdateStringValue( updater, MD5.toString(), artifactMeta.getMd5() );
addUpdateStringValue( updater, SHA1.toString(), artifactMeta.getSha1() );
@ -1357,7 +1359,7 @@ public class CassandraMetadataRepository
.addInsertion( key, cf, column( SIZE.toString(), artifactMeta.getSize() ) ) //
.addInsertion( key, cf, column( MD5.toString(), artifactMeta.getMd5() ) ) //
.addInsertion( key, cf, column( SHA1.toString(), artifactMeta.getSha1() ) ) //
.addInsertion( key, cf, column( WHEN_GATHERED.toString(), artifactMeta.getWhenGathered().getTime() ) )//
.addInsertion( key, cf, column( WHEN_GATHERED.toString(), artifactMeta.getWhenGathered().toInstant().toEpochMilli() ) )//
.execute();
}
@ -1807,7 +1809,7 @@ public class CassandraMetadataRepository
Long whenGathered = getLongValue( columnSlice, WHEN_GATHERED.toString() );
if ( whenGathered != null )
{
artifactMetadata.setWhenGathered( new Date( whenGathered ) );
artifactMetadata.setWhenGathered(ZonedDateTime.ofInstant(Instant.ofEpochMilli(whenGathered), ZoneId.of("GMT")));
}
return artifactMetadata;
}
@ -1828,7 +1830,7 @@ public class CassandraMetadataRepository
Long whenGathered = getAsLongValue( columnSlice, WHEN_GATHERED.toString() );
if ( whenGathered != null )
{
artifactMetadata.setWhenGathered( new Date( whenGathered ) );
artifactMetadata.setWhenGathered(ZonedDateTime.ofInstant(Instant.ofEpochMilli(whenGathered), ZoneId.of("GMT")));
}
return artifactMetadata;
}

View File

@ -52,6 +52,8 @@ import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.Arrays;
@ -537,9 +539,9 @@ public class FileMetadataRepository
{
for ( ArtifactMetadata artifact : getArtifacts( session, repoId, ns, project, version ) )
{
if ( startTime == null || startTime.isBefore( ZonedDateTime.from(artifact.getWhenGathered().toInstant()) ) )
if ( startTime == null || startTime.isBefore( ZonedDateTime.from(artifact.getWhenGathered().toInstant().atZone(ZoneId.systemDefault())) ) )
{
if ( endTime == null || endTime.isAfter( ZonedDateTime.from(artifact.getWhenGathered().toInstant()) ) )
if ( endTime == null || endTime.isAfter( ZonedDateTime.from(artifact.getWhenGathered().toInstant().atZone(ZoneId.systemDefault())) ) )
{
artifacts.add( artifact );
}
@ -600,7 +602,7 @@ public class FileMetadataRepository
}
else if ( "whenGathered".equals( field ) )
{
artifact.setWhenGathered( new Date( Long.parseLong( value ) ) );
artifact.setWhenGathered( ZonedDateTime.ofInstant(Instant.ofEpochMilli(Long.parseLong( value )), ZoneId.of("GMT") ) );
}
else if ( "version".equals( field ) )
{
@ -951,7 +953,7 @@ public class FileMetadataRepository
properties.setProperty( "artifact:updated:" + id,
Long.toString( artifact.getFileLastModified().getTime() ) );
properties.setProperty( "artifact:whenGathered:" + id,
Long.toString( artifact.getWhenGathered().getTime() ) );
Long.toString( artifact.getWhenGathered().toInstant().toEpochMilli()) );
properties.setProperty( "artifact:size:" + id, Long.toString( artifact.getSize() ) );
if ( artifact.getMd5() != null )
{

View File

@ -72,6 +72,7 @@ import javax.jcr.query.RowIterator;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.*;
import java.util.Map.Entry;
@ -206,8 +207,7 @@ public class JcrMetadataRepository
cal.setTime( artifactMeta.getFileLastModified() );
node.setProperty( JCR_LAST_MODIFIED, cal );
cal = Calendar.getInstance();
cal.setTime( artifactMeta.getWhenGathered() );
cal = GregorianCalendar.from(artifactMeta.getWhenGathered());
node.setProperty( "whenGathered", cal );
node.setProperty( "size", artifactMeta.getSize() );
@ -1671,7 +1671,8 @@ public class JcrMetadataRepository
if ( artifactNode.hasProperty( "whenGathered" ) )
{
artifact.setWhenGathered( artifactNode.getProperty( "whenGathered" ).getDate().getTime() );
Calendar cal = artifactNode.getProperty("whenGathered").getDate();
artifact.setWhenGathered( ZonedDateTime.ofInstant(cal.toInstant(), cal.getTimeZone().toZoneId()));
}
if ( artifactNode.hasProperty( "size" ) )