Adding packingIndexDir and event

This commit is contained in:
Martin Stockhammer 2018-03-29 23:46:16 +02:00
parent 8b790550b2
commit f18aa86c68
2 changed files with 90 additions and 11 deletions

View File

@ -27,10 +27,22 @@ import java.net.URI;
public class IndexCreationEvent extends RepositoryEvent<URI> {
public enum Index implements EventType {
URI_CHANGE
INDEX_URI_CHANGE, PACKED_INDEX_URI_CHANGE
}
IndexCreationEvent(Repository repo, URI oldValue, URI value) {
super(Index.URI_CHANGE, repo, oldValue, value);
super(Index.INDEX_URI_CHANGE, repo, oldValue, value);
}
IndexCreationEvent(Index type, Repository repo, URI oldValue, URI value) {
super(type, repo, oldValue, value);
}
public static final IndexCreationEvent indexUriChange(Repository repo, URI oldValue, URI newValue) {
return new IndexCreationEvent(Index.INDEX_URI_CHANGE, repo, oldValue, newValue);
}
public static final IndexCreationEvent packedIndexUriChange(Repository repo, URI oldValue, URI newValue) {
return new IndexCreationEvent(Index.PACKED_INDEX_URI_CHANGE, repo, oldValue, newValue);
}
}

View File

@ -38,31 +38,42 @@ import java.util.List;
*/
public class IndexCreationFeature extends AbstractFeature implements RepositoryFeature<IndexCreationFeature>{
public static final String DEFAULT_INDEX_PATH = ".indexer";
public static final String DEFAULT_PACKED_INDEX_PATH = ".index";
private boolean skipPackedIndexCreation = false;
private URI indexPath;
private URI packedIndexPath;
private Path localIndexPath;
private Path localPackedIndexPath;
private Repository repo;
public IndexCreationFeature(Repository repoId, RepositoryEventListener listener) {
super(listener);
this.repo = repoId;
try
{
setIndexPath(new URI(".indexer"));
}
catch ( URISyntaxException e )
{
// This may not happen.
e.printStackTrace( );
try {
this.indexPath = new URI(DEFAULT_INDEX_PATH);
this.packedIndexPath = new URI(DEFAULT_PACKED_INDEX_PATH);
} catch (URISyntaxException e) {
// Does not happen
e.printStackTrace();
}
}
public IndexCreationFeature(boolean skipPackedIndexCreation) {
this.skipPackedIndexCreation = skipPackedIndexCreation;
try {
this.indexPath = new URI(DEFAULT_INDEX_PATH);
this.packedIndexPath = new URI(DEFAULT_PACKED_INDEX_PATH);
} catch (URISyntaxException e) {
// Does not happen
e.printStackTrace();
}
}
@Override
@ -104,7 +115,7 @@ public class IndexCreationFeature extends AbstractFeature implements RepositoryF
{
URI oldVal = this.indexPath;
this.indexPath = indexPath;
raiseEvent(new IndexCreationEvent(repo, oldVal, this.indexPath));
raiseEvent(IndexCreationEvent.indexUriChange(repo, oldVal, this.indexPath));
}
@ -113,11 +124,67 @@ public class IndexCreationFeature extends AbstractFeature implements RepositoryF
return this.indexPath!=null && !StringUtils.isEmpty( this.indexPath.getPath() );
}
/**
* Returns the path where the index is stored physically.
*
* @return
*/
public Path getLocalIndexPath() {
return localIndexPath;
}
/**
* Sets the path where the index is stored physically. This method should only be used by the
* MavenIndexProvider implementations.
*
* @param localIndexPath
*/
public void setLocalIndexPath(Path localIndexPath) {
this.localIndexPath = localIndexPath;
}
/**
* Returns the path of the packed index.
* @return
*/
public URI getPackedIndexPath() {
return packedIndexPath;
}
/**
* Sets the path (relative or absolute) of the packed index.
* @param packedIndexPath
*/
public void setPackedIndexPath(URI packedIndexPath) {
URI oldVal = this.packedIndexPath;
this.packedIndexPath = packedIndexPath;
raiseEvent(IndexCreationEvent.packedIndexUriChange(repo, oldVal, this.packedIndexPath));
}
/**
* Returns the directory where the packed index is stored.
* @return
*/
public Path getLocalPackedIndexPath() {
return localPackedIndexPath;
}
/**
* Sets the path where the packed index is stored physically. This method should only be used by the
* MavenIndexProvider implementations.
*
* @param localPackedIndexPath
*/
public void setLocalPackedIndexPath(Path localPackedIndexPath) {
this.localPackedIndexPath = localPackedIndexPath;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("IndexCreationFeature:{").append("skipPackedIndexCreation=").append(skipPackedIndexCreation)
.append(",indexPath=").append(indexPath).append(",packedIndexPath=").append(packedIndexPath).append("}");
return sb.toString();
}
}