private void updateProjectReference( String repoId, String namespace, String projectId, String projectVersion,
ProjectVersionReference reference )
{
try
{
Path directory = getDirectory( repoId ).resolve( namespace + "/" + projectId + "/" + projectVersion );
Properties properties = readOrCreateProperties( directory, PROJECT_VERSION_METADATA_KEY );
int i = Integer.parseInt( properties.getProperty( "ref:lastReferenceNum", "-1" ) ) + 1;
setProperty( properties, "ref:lastReferenceNum", Integer.toString( i ) );
setProperty( properties, "ref:reference." + i + ".namespace", reference.getNamespace() );
setProperty( properties, "ref:reference." + i + ".projectId", reference.getProjectId() );
setProperty( properties, "ref:reference." + i + ".projectVersion", reference.getProjectVersion() );
setProperty( properties, "ref:reference." + i + ".referenceType", reference.getReferenceType().toString() );
writeProperties( properties, directory, PROJECT_VERSION_METADATA_KEY );
}
catch ( IOException e )
{
log.error( "Could not update project reference {}, {}, {}, {}: {}", repoId, namespace, projectId, projectVersion, e.getMessage(), e );
}
}