mirror of
				https://github.com/scm-manager/scm-manager.git
				synced 2025-10-31 18:46:07 +01:00 
			
		
		
		
	create lookup command
This commit is contained in:
		| @@ -0,0 +1,55 @@ | ||||
| /* | ||||
|  * MIT License | ||||
|  * | ||||
|  * Copyright (c) 2020-present Cloudogu GmbH and Contributors | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|  * of this software and associated documentation files (the "Software"), to deal | ||||
|  * in the Software without restriction, including without limitation the rights | ||||
|  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|  * copies of the Software, and to permit persons to whom the Software is | ||||
|  * furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included in all | ||||
|  * copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
|  * SOFTWARE. | ||||
|  */ | ||||
|  | ||||
| package sonia.scm.repository.spi; | ||||
|  | ||||
| import lombok.extern.slf4j.Slf4j; | ||||
| import org.tmatesoft.svn.core.SVNException; | ||||
| import org.tmatesoft.svn.core.io.SVNRepository; | ||||
|  | ||||
| import java.util.Arrays; | ||||
|  | ||||
| @Slf4j | ||||
| public class SvnLookupCommand extends AbstractSvnCommand implements LookupCommand { | ||||
|  | ||||
|   protected SvnLookupCommand(SvnContext context) { | ||||
|     super(context); | ||||
|   } | ||||
|  | ||||
|   @Override | ||||
|   public <T> T lookup(LookupCommandRequest request) { | ||||
|     try { | ||||
|       SVNRepository repository = context.open(); | ||||
|       if (request.getArgs()[0].equalsIgnoreCase("props")) { | ||||
|         if (Arrays.stream(request.getArgs()).anyMatch(a -> a.equalsIgnoreCase("uuid"))) { | ||||
|           return (T) repository.getRepositoryUUID(false); | ||||
|         } | ||||
|       } | ||||
|     } catch (SVNException | ClassCastException e) { | ||||
|       log.error("Invalid lookup request", e); | ||||
|     } | ||||
|  | ||||
|     return null; | ||||
|   } | ||||
| } | ||||
| @@ -46,7 +46,7 @@ public class SvnRepositoryServiceProvider extends RepositoryServiceProvider | ||||
|   //J- | ||||
|   public static final Set<Command> COMMANDS = ImmutableSet.of( | ||||
|     Command.BLAME, Command.BROWSE, Command.CAT, Command.DIFF, | ||||
|     Command.LOG, Command.BUNDLE, Command.UNBUNDLE, Command.MODIFY | ||||
|     Command.LOG, Command.BUNDLE, Command.UNBUNDLE, Command.MODIFY, Command.LOOKUP | ||||
|   ); | ||||
|   //J+ | ||||
|  | ||||
| @@ -156,6 +156,8 @@ public class SvnRepositoryServiceProvider extends RepositoryServiceProvider | ||||
|     return new SvnModifyCommand(context, workingCopyFactory); | ||||
|   } | ||||
|  | ||||
|   public LookupCommand getLookupCommand() { return new SvnLookupCommand(context);} | ||||
|  | ||||
|   /** | ||||
|    * Method description | ||||
|    * | ||||
|   | ||||
		Reference in New Issue
	
	Block a user