From ff1f13453e2bba4b1d35231af1f7576521a9400a Mon Sep 17 00:00:00 2001 From: Rui Han Date: Mon, 2 Dec 2019 12:17:48 +0800 Subject: [PATCH] Add query param limit to pathmapresource.list --- .../pathmapped/common/PathMappedController.java | 9 +++++++-- .../indy/pathmapped/jaxrs/PathMappedResource.java | 6 ++++-- .../indy/pathmapped/model/PathMappedListResult.java | 13 +++++++++++++ 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/addons/path-mapped/common/src/main/java/org/commonjava/indy/pathmapped/common/PathMappedController.java b/addons/path-mapped/common/src/main/java/org/commonjava/indy/pathmapped/common/PathMappedController.java index 2119149f27..b4f0f9a633 100644 --- a/addons/path-mapped/common/src/main/java/org/commonjava/indy/pathmapped/common/PathMappedController.java +++ b/addons/path-mapped/common/src/main/java/org/commonjava/indy/pathmapped/common/PathMappedController.java @@ -53,13 +53,18 @@ public PathMappedDeleteResult delete( String packageType, String type, String na return new PathMappedDeleteResult( packageType, type, name, path, result ); } - public PathMappedListResult list( String packageType, String type, String name, String path, boolean recursive ) + public PathMappedListResult list( String packageType, String type, String name, String path, boolean recursive, int limit ) { String[] list; StoreKey storeKey = new StoreKey( packageType, StoreType.get( type ), name ); if ( recursive ) { - list = fileManager.list( storeKey.toString(), path, true, DEFAULT_RECURSIVE_LIST_LIMIT ); + int lmt = DEFAULT_RECURSIVE_LIST_LIMIT; + if ( limit > 0 ) + { + lmt = limit; + } + list = fileManager.list( storeKey.toString(), path, true, lmt ); } else { diff --git a/addons/path-mapped/jaxrs/src/main/java/org/commonjava/indy/pathmapped/jaxrs/PathMappedResource.java b/addons/path-mapped/jaxrs/src/main/java/org/commonjava/indy/pathmapped/jaxrs/PathMappedResource.java index 19cef68a03..36d6800cef 100644 --- a/addons/path-mapped/jaxrs/src/main/java/org/commonjava/indy/pathmapped/jaxrs/PathMappedResource.java +++ b/addons/path-mapped/jaxrs/src/main/java/org/commonjava/indy/pathmapped/jaxrs/PathMappedResource.java @@ -81,11 +81,12 @@ public PathMappedListResult listRoot( final @ApiParam( required = true ) @PathPa final @ApiParam( allowableValues = "hosted,group,remote", required = true ) @PathParam( "type" ) String type, final @ApiParam( required = true ) @PathParam( "name" ) String name, final @QueryParam( "recursive" ) boolean recursive, + final @QueryParam( "limit" ) int limit, final @Context HttpServletRequest request, final @Context SecurityContext securityContext ) { logger.debug( "List, packageType:{}, type:{}, name:{}, recursive:{}", packageType, type, name, recursive ); - return controller.list( packageType, type, name, ROOT_DIR, recursive ); + return controller.list( packageType, type, name, ROOT_DIR, recursive, limit ); } @ApiOperation( "List specified path." ) @@ -98,12 +99,13 @@ public PathMappedListResult list( final @ApiParam( required = true ) @PathParam( final @ApiParam( required = true ) @PathParam( "name" ) String name, final @PathParam( "path" ) String path, final @QueryParam( "recursive" ) boolean recursive, + final @QueryParam( "limit" ) int limit, final @Context HttpServletRequest request, final @Context SecurityContext securityContext ) { logger.debug( "List, packageType:{}, type:{}, name:{}, path:{}, recursive:{}", packageType, type, name, path, recursive ); - return controller.list( packageType, type, name, path, recursive ); + return controller.list( packageType, type, name, path, recursive, limit ); } @ApiOperation( "Get specified path." ) diff --git a/addons/path-mapped/model-java/src/main/java/org/commonjava/indy/pathmapped/model/PathMappedListResult.java b/addons/path-mapped/model-java/src/main/java/org/commonjava/indy/pathmapped/model/PathMappedListResult.java index 5a79b732b0..cc664597c8 100644 --- a/addons/path-mapped/model-java/src/main/java/org/commonjava/indy/pathmapped/model/PathMappedListResult.java +++ b/addons/path-mapped/model-java/src/main/java/org/commonjava/indy/pathmapped/model/PathMappedListResult.java @@ -10,6 +10,8 @@ public class PathMappedListResult private String path; + private int size; + private String[] list; public PathMappedListResult( String packageType, String type, String name, String path, String[] list ) @@ -19,6 +21,7 @@ public PathMappedListResult( String packageType, String type, String name, Strin this.name = name; this.path = path; this.list = list; + this.size = list != null ? list.length : 0; } public String getPackageType() @@ -70,4 +73,14 @@ public void setList( String[] list ) { this.list = list; } + + public int getSize() + { + return size; + } + + public void setSize( int size ) + { + this.size = size; + } }