diff --git a/scm-core/src/main/java/sonia/scm/repository/RepositoryContentInitializer.java b/scm-core/src/main/java/sonia/scm/repository/RepositoryContentInitializer.java index 6d89a65e5d..ffd3689ebc 100644 --- a/scm-core/src/main/java/sonia/scm/repository/RepositoryContentInitializer.java +++ b/scm-core/src/main/java/sonia/scm/repository/RepositoryContentInitializer.java @@ -64,14 +64,15 @@ public interface RepositoryContentInitializer { CreateFile create(String path); /** - * Find the the context object with the given key and unmarshalls it to the given type. + * Returns the the context entry with the given key and unmarshalls it to the given type. + * It no entry with the given key is available an empty optional is returned. * * @param key key of the context object * @param type type of the context object - * @return context object or empty optional + * @return context entry or empty optional * @since 2.5.0 */ - default Optional oneByType(String key, Class type) { + default Optional getEntry(String key, Class type) { return Optional.empty(); } } diff --git a/scm-ui/ui-types/src/Repositories.ts b/scm-ui/ui-types/src/Repositories.ts index 68b7d5113a..7b9d54a3a8 100644 --- a/scm-ui/ui-types/src/Repositories.ts +++ b/scm-ui/ui-types/src/Repositories.ts @@ -36,7 +36,7 @@ export type Repository = { }; export type RepositoryCreation = Repository & { - creationContext: { [key: string]: any }; + contextEntries: { [key: string]: any }; }; export type RepositoryCollection = PagedCollection & { diff --git a/scm-ui/ui-webapp/src/repos/components/form/RepositoryForm.tsx b/scm-ui/ui-webapp/src/repos/components/form/RepositoryForm.tsx index c036cca608..091bfdeee8 100644 --- a/scm-ui/ui-webapp/src/repos/components/form/RepositoryForm.tsx +++ b/scm-ui/ui-webapp/src/repos/components/form/RepositoryForm.tsx @@ -72,7 +72,7 @@ class RepositoryForm extends React.Component { type: "", contact: "", description: "", - creationContext: {}, + contextEntries: {}, _links: {} }, initRepository: false, @@ -88,7 +88,7 @@ class RepositoryForm extends React.Component { this.setState({ repository: { ...repository, - creationContext: {} + contextEntries: {} } }); } @@ -135,8 +135,8 @@ class RepositoryForm extends React.Component { this.setState({ repository: { ...this.state.repository, - creationContext: { - ...this.state.repository.creationContext, + contextEntries: { + ...this.state.repository.contextEntries, [key]: value } } diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCollectionResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCollectionResource.java index 274999d401..6abbef5ceb 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCollectionResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCollectionResource.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.api.v2.resources; import io.swagger.v3.oas.annotations.Operation; @@ -156,7 +156,7 @@ public class RepositoryCollectionResource { return resourceLinks.repository().self(r.getNamespace(), r.getName()); }); if (initialize) { - repositoryInitializer.initialize(reference.get(), repository.getCreationContext()); + repositoryInitializer.initialize(reference.get(), repository.getContextEntries()); } return response; } diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCreationDto.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCreationDto.java index 05dedab873..7e5125ab8e 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCreationDto.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCreationDto.java @@ -36,12 +36,12 @@ import java.util.Map; @Getter @Setter public class RepositoryCreationDto extends RepositoryDto { - private Map creationContext; + private Map contextEntries; - public Map getCreationContext() { - if (creationContext == null) { + public Map getContextEntries() { + if (contextEntries == null) { return Collections.emptyMap(); } - return creationContext; + return contextEntries; } } diff --git a/scm-webapp/src/main/java/sonia/scm/repository/RepositoryInitializer.java b/scm-webapp/src/main/java/sonia/scm/repository/RepositoryInitializer.java index 59380a0539..250f20566f 100644 --- a/scm-webapp/src/main/java/sonia/scm/repository/RepositoryInitializer.java +++ b/scm-webapp/src/main/java/sonia/scm/repository/RepositoryInitializer.java @@ -58,11 +58,11 @@ public class RepositoryInitializer { this.contentInitializers = Priorities.sortInstances(contentInitializerSet); } - public void initialize(Repository repository, Map creationContext) { + public void initialize(Repository repository, Map contextEntries) { try (RepositoryService service = serviceFactory.create(repository)) { ModifyCommandBuilder modifyCommandBuilder = service.getModifyCommand(); - InitializerContextImpl initializerContext = new InitializerContextImpl(repository, modifyCommandBuilder, creationContext); + InitializerContextImpl initializerContext = new InitializerContextImpl(repository, modifyCommandBuilder, contextEntries); for (RepositoryContentInitializer initializer : contentInitializers) { initializer.initialize(initializerContext); @@ -81,14 +81,14 @@ public class RepositoryInitializer { private final Repository repository; private final ModifyCommandBuilder builder; - private final Map creationContext; + private final Map contextEntries; private static final ObjectMapper mapper = new ObjectMapper(); - InitializerContextImpl(Repository repository, ModifyCommandBuilder builder, Map creationContext) { + InitializerContextImpl(Repository repository, ModifyCommandBuilder builder, Map contextEntries) { this.repository = repository; this.builder = builder; - this.creationContext = creationContext; + this.contextEntries = contextEntries; } @Override @@ -97,8 +97,8 @@ public class RepositoryInitializer { } @Override - public Optional oneByType(String key, Class type) { - JsonNode node = creationContext.get(key); + public Optional getEntry(String key, Class type) { + JsonNode node = contextEntries.get(key); if (node != null) { return Optional.of(mapper.convertValue(node, type)); } diff --git a/scm-webapp/src/test/java/sonia/scm/repository/RepositoryInitializerTest.java b/scm-webapp/src/test/java/sonia/scm/repository/RepositoryInitializerTest.java index ba97478bdc..d0cc9cdd29 100644 --- a/scm-webapp/src/test/java/sonia/scm/repository/RepositoryInitializerTest.java +++ b/scm-webapp/src/test/java/sonia/scm/repository/RepositoryInitializerTest.java @@ -151,8 +151,8 @@ class RepositoryInitializerTest { doThrow(new IOException("epic fail")).when(contentLoader).withData(any(ByteSource.class)); RepositoryInitializer initializer = new RepositoryInitializer(repositoryServiceFactory, ImmutableSet.of(new ReadmeContentInitializer())); - Map creationContext = Collections.emptyMap(); - assertThrows(InternalRepositoryException.class, () -> initializer.initialize(repository, creationContext)); + Map contextEntries = Collections.emptyMap(); + assertThrows(InternalRepositoryException.class, () -> initializer.initialize(repository, contextEntries)); verify(repositoryService).close(); } @@ -219,7 +219,7 @@ class RepositoryInitializerTest { @Override public void initialize(InitializerContext context) throws IOException { - Optional named = context.oneByType("named", Named.class); + Optional named = context.getEntry("named", Named.class); if (named.isPresent()) { context.create(named.get().getName() + ".md").from("# Named file"); }