Adopt to Gerrit Core 3.3.x Switch source and target to Java 11 to match Gerrit 3.3.x build requirements. Reuse DelegateRepository to avoid code duplication. Bump version to 3.3.0-rc0 Also bump maven-javadoc-plugin to version 3.2.0. Feature: Issue 13429 Change-Id: I60e840657f88eb1978849f3e58b82f93f06a2538
diff --git a/Jenkinsfile b/Jenkinsfile index a090baf..deb1d46 100644 --- a/Jenkinsfile +++ b/Jenkinsfile
@@ -19,7 +19,7 @@ stage('build') { steps { gerritReview labels: [Verified: 0], message: "Build started: ${env.BUILD_URL}" - sh 'mvn test' + sh "bash -c '. set-java.sh 11 && mvn test'" } } }
diff --git a/pom.xml b/pom.xml index 844c33c..c67aee8 100644 --- a/pom.xml +++ b/pom.xml
@@ -4,7 +4,7 @@ <groupId>com.gerritforge</groupId> <artifactId>global-refdb</artifactId> - <version>3.2.0-rc0</version> + <version>3.3.0-rc1</version> <packaging>jar</packaging> <name>global-refdb</name> @@ -38,7 +38,7 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <gerrit.version>3.2.3</gerrit.version> + <gerrit.version>3.3.0-rc1</gerrit.version> </properties> <dependencies> @@ -75,8 +75,8 @@ <artifactId>maven-compiler-plugin</artifactId> <version>3.6.1</version> <configuration> - <source>1.8</source> - <target>1.8</target> + <source>11</source> + <target>11</target> </configuration> </plugin> <plugin> @@ -95,7 +95,7 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> - <version>3.1.1</version> + <version>3.2.0</version> <executions> <execution> <id>attach-javadocs</id>
diff --git a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbRepository.java b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbRepository.java index 8758a14..cdb65da 100644 --- a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbRepository.java +++ b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbRepository.java
@@ -14,48 +14,17 @@ package com.gerritforge.gerrit.globalrefdb.validation; +import com.google.gerrit.server.git.DelegateRepository; import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; -import java.io.File; import java.io.IOException; -import java.util.List; -import java.util.Map; -import java.util.Set; -import org.eclipse.jgit.attributes.AttributesNodeProvider; -import org.eclipse.jgit.dircache.DirCache; -import org.eclipse.jgit.errors.AmbiguousObjectException; -import org.eclipse.jgit.errors.CorruptObjectException; -import org.eclipse.jgit.errors.IncorrectObjectTypeException; -import org.eclipse.jgit.errors.MissingObjectException; -import org.eclipse.jgit.errors.NoWorkTreeException; -import org.eclipse.jgit.errors.RevisionSyntaxException; -import org.eclipse.jgit.events.ListenerList; -import org.eclipse.jgit.events.RepositoryEvent; -import org.eclipse.jgit.lib.AnyObjectId; -import org.eclipse.jgit.lib.BaseRepositoryBuilder; -import org.eclipse.jgit.lib.ObjectDatabase; -import org.eclipse.jgit.lib.ObjectId; -import org.eclipse.jgit.lib.ObjectInserter; -import org.eclipse.jgit.lib.ObjectLoader; -import org.eclipse.jgit.lib.ObjectReader; -import org.eclipse.jgit.lib.ProgressMonitor; -import org.eclipse.jgit.lib.RebaseTodoLine; -import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.lib.RefDatabase; -import org.eclipse.jgit.lib.RefRename; import org.eclipse.jgit.lib.RefUpdate; -import org.eclipse.jgit.lib.ReflogReader; import org.eclipse.jgit.lib.Repository; -import org.eclipse.jgit.lib.RepositoryState; -import org.eclipse.jgit.lib.StoredConfig; -import org.eclipse.jgit.revwalk.RevCommit; -import org.eclipse.jgit.util.FS; -public class SharedRefDbRepository extends Repository { +public class SharedRefDbRepository extends DelegateRepository { - private final Repository repository; - private final RefDatabase refDatabase; - private final SharedRefDbRefDatabase sharedRefDbRefDatabase; + private final SharedRefDbRefDatabase sharedRefDatabase; public interface Factory { public SharedRefDbRepository create(String projectName, Repository repository); @@ -63,345 +32,25 @@ @Inject public SharedRefDbRepository( - SharedRefDbRefDatabase.Factory sharedRefDbRefDbFactory, + SharedRefDbRefDatabase.Factory refDbFactory, @Assisted String projectName, @Assisted Repository repository) { - super(new BaseRepositoryBuilder()); - this.repository = repository; - this.refDatabase = repository.getRefDatabase(); - this.sharedRefDbRefDatabase = sharedRefDbRefDbFactory.create(projectName, refDatabase); - } - - @Override - public void create(boolean b) throws IOException {} - - @Override - public ObjectDatabase getObjectDatabase() { - return repository.getObjectDatabase(); + super(repository); + this.sharedRefDatabase = refDbFactory.create(projectName, repository.getRefDatabase()); } @Override public RefDatabase getRefDatabase() { - return sharedRefDbRefDatabase; - } - - @Override - public StoredConfig getConfig() { - return repository.getConfig(); - } - - @Override - public AttributesNodeProvider createAttributesNodeProvider() { - return repository.createAttributesNodeProvider(); - } - - @Override - public void scanForRepoChanges() throws IOException { - repository.scanForRepoChanges(); - } - - @Override - public void notifyIndexChanged(boolean b) { - repository.notifyIndexChanged(b); - } - - @Override - public ReflogReader getReflogReader(String s) throws IOException { - return repository.getReflogReader(s); - } - - @Override - public int hashCode() { - return repository.hashCode(); - } - - @Override - public boolean equals(Object obj) { - return repository.equals(obj); - } - - @Override - public ListenerList getListenerList() { - return repository.getListenerList(); - } - - @Override - public void fireEvent(RepositoryEvent<?> event) { - repository.fireEvent(event); - } - - @Override - public void create() throws IOException { - repository.create(); - } - - @Override - public File getDirectory() { - return repository.getDirectory(); - } - - @Override - public ObjectInserter newObjectInserter() { - return repository.newObjectInserter(); - } - - @Override - public ObjectReader newObjectReader() { - return repository.newObjectReader(); - } - - @Override - public FS getFS() { - return repository.getFS(); - } - - @SuppressWarnings("deprecation") - @Override - public boolean hasObject(AnyObjectId objectId) { - return repository.hasObject(objectId); - } - - @Override - public ObjectLoader open(AnyObjectId objectId) throws MissingObjectException, IOException { - return repository.open(objectId); - } - - @Override - public ObjectLoader open(AnyObjectId objectId, int typeHint) - throws MissingObjectException, IncorrectObjectTypeException, IOException { - return repository.open(objectId, typeHint); + return sharedRefDatabase; } @Override public RefUpdate updateRef(String ref) throws IOException { - return sharedRefDbRefDatabase.wrapRefUpdate(repository.updateRef(ref)); + return sharedRefDatabase.wrapRefUpdate(delegate.updateRef(ref)); } @Override public RefUpdate updateRef(String ref, boolean detach) throws IOException { - return sharedRefDbRefDatabase.wrapRefUpdate(repository.updateRef(ref, detach)); - } - - @Override - public RefRename renameRef(String fromRef, String toRef) throws IOException { - return repository.renameRef(fromRef, toRef); - } - - @Override - public ObjectId resolve(String revstr) - throws AmbiguousObjectException, IncorrectObjectTypeException, RevisionSyntaxException, - IOException { - return repository.resolve(revstr); - } - - @Override - public String simplify(String revstr) throws AmbiguousObjectException, IOException { - return repository.simplify(revstr); - } - - @Override - public void incrementOpen() { - repository.incrementOpen(); - } - - @Override - public void close() { - repository.close(); - } - - @Override - public String toString() { - return repository.toString(); - } - - @Override - public String getFullBranch() throws IOException { - return repository.getFullBranch(); - } - - @Override - public String getBranch() throws IOException { - return repository.getBranch(); - } - - @Override - public Set<ObjectId> getAdditionalHaves() { - return repository.getAdditionalHaves(); - } - - @SuppressWarnings("deprecation") - @Override - public Map<String, Ref> getAllRefs() { - return repository.getAllRefs(); - } - - @SuppressWarnings("deprecation") - @Override - public Map<String, Ref> getTags() { - return repository.getTags(); - } - - @SuppressWarnings("deprecation") - @Override - public Ref peel(Ref ref) { - return repository.peel(ref); - } - - @Override - public Map<AnyObjectId, Set<Ref>> getAllRefsByPeeledObjectId() { - return repository.getAllRefsByPeeledObjectId(); - } - - @Override - public File getIndexFile() throws NoWorkTreeException { - return repository.getIndexFile(); - } - - @Override - public RevCommit parseCommit(AnyObjectId id) - throws IncorrectObjectTypeException, IOException, MissingObjectException { - return repository.parseCommit(id); - } - - @Override - public DirCache readDirCache() throws NoWorkTreeException, CorruptObjectException, IOException { - return repository.readDirCache(); - } - - @Override - public DirCache lockDirCache() throws NoWorkTreeException, CorruptObjectException, IOException { - return repository.lockDirCache(); - } - - @Override - public RepositoryState getRepositoryState() { - return repository.getRepositoryState(); - } - - @Override - public boolean isBare() { - return repository.isBare(); - } - - @Override - public File getWorkTree() throws NoWorkTreeException { - return repository.getWorkTree(); - } - - @Override - public String shortenRemoteBranchName(String refName) { - return repository.shortenRemoteBranchName(refName); - } - - @Override - public String getRemoteName(String refName) { - return repository.getRemoteName(refName); - } - - @Override - public String getGitwebDescription() throws IOException { - return repository.getGitwebDescription(); - } - - @Override - public void setGitwebDescription(String description) throws IOException { - repository.setGitwebDescription(description); - } - - @Override - public String readMergeCommitMsg() throws IOException, NoWorkTreeException { - return repository.readMergeCommitMsg(); - } - - @Override - public void writeMergeCommitMsg(String msg) throws IOException { - repository.writeMergeCommitMsg(msg); - } - - @Override - public String readCommitEditMsg() throws IOException, NoWorkTreeException { - return repository.readCommitEditMsg(); - } - - @Override - public void writeCommitEditMsg(String msg) throws IOException { - repository.writeCommitEditMsg(msg); - } - - @Override - public List<ObjectId> readMergeHeads() throws IOException, NoWorkTreeException { - return repository.readMergeHeads(); - } - - @Override - public void writeMergeHeads(List<? extends ObjectId> heads) throws IOException { - repository.writeMergeHeads(heads); - } - - @Override - public ObjectId readCherryPickHead() throws IOException, NoWorkTreeException { - return repository.readCherryPickHead(); - } - - @Override - public ObjectId readRevertHead() throws IOException, NoWorkTreeException { - return repository.readRevertHead(); - } - - @Override - public void writeCherryPickHead(ObjectId head) throws IOException { - repository.writeCherryPickHead(head); - } - - @Override - public void writeRevertHead(ObjectId head) throws IOException { - repository.writeRevertHead(head); - } - - @Override - public void writeOrigHead(ObjectId head) throws IOException { - repository.writeOrigHead(head); - } - - @Override - public ObjectId readOrigHead() throws IOException, NoWorkTreeException { - return repository.readOrigHead(); - } - - @Override - public String readSquashCommitMsg() throws IOException { - return repository.readSquashCommitMsg(); - } - - @Override - public void writeSquashCommitMsg(String msg) throws IOException { - repository.writeSquashCommitMsg(msg); - } - - @Override - public List<RebaseTodoLine> readRebaseTodo(String path, boolean includeComments) - throws IOException { - return repository.readRebaseTodo(path, includeComments); - } - - @Override - public void writeRebaseTodoFile(String path, List<RebaseTodoLine> steps, boolean append) - throws IOException { - repository.writeRebaseTodoFile(path, steps, append); - } - - @Override - public Set<String> getRemoteNames() { - return repository.getRemoteNames(); - } - - @Override - public void autoGC(ProgressMonitor monitor) { - repository.autoGC(monitor); - } - - @Override - public String getIdentifier() { - return repository.getIdentifier(); + return sharedRefDatabase.wrapRefUpdate(delegate.updateRef(ref, detach)); } }
diff --git a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbRepositoryTest.java b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbRepositoryTest.java index 7cb4c83..5bb4fb4 100644 --- a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbRepositoryTest.java +++ b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbRepositoryTest.java
@@ -20,6 +20,7 @@ import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.RefFixture; import java.io.IOException; +import org.eclipse.jgit.lib.ObjectDatabase; import org.eclipse.jgit.lib.RefDatabase; import org.eclipse.jgit.lib.RefUpdate.Result; import org.eclipse.jgit.lib.Repository; @@ -34,6 +35,7 @@ @Mock SharedRefDbRefDatabase.Factory sharedRefDbRefDbFactory; @Mock SharedRefDbRefDatabase sharedRefDb; @Mock RefDatabase genericRefDb; + @Mock ObjectDatabase objectDatabase; @Mock SharedRefDbRefUpdate sharedRefDbRefUpdate; @@ -48,7 +50,9 @@ } private void setMockitoCommon() { + doReturn(true).when(repository).isBare(); doReturn(genericRefDb).when(repository).getRefDatabase(); + doReturn(objectDatabase).when(repository).getObjectDatabase(); doReturn(sharedRefDb).when(sharedRefDbRefDbFactory).create(PROJECT_NAME, genericRefDb); }