@@ -524,9 +524,12 @@ private static class MvcClass implements Route.Props<MvcClass> {
524524
525525 private Mapper <?> mapper ;
526526
527- public MvcClass (final Class <?> routeClass , final String path ) {
527+ private String prefix ;
528+
529+ public MvcClass (final Class <?> routeClass , final String path , final String prefix ) {
528530 this .routeClass = routeClass ;
529531 this .path = path ;
532+ this .prefix = prefix ;
530533 }
531534
532535 @ Override
@@ -570,6 +573,9 @@ public Route.Definition apply(final Route.Definition route) {
570573 if (name != null ) {
571574 route .name (name );
572575 }
576+ if (prefix != null ) {
577+ route .name (prefix + "/" + route .name ());
578+ }
573579 if (consumes != null ) {
574580 route .consumes (consumes );
575581 }
@@ -710,7 +716,7 @@ private Jooby use(final Optional<String> path, final Jooby app) {
710716 } else if (it instanceof Route .Group ) {
711717 ((Route .Group ) it ).routes ().forEach (r -> this .bag .add (rewrite .apply (r )));
712718 } else if (it instanceof MvcClass ) {
713- Object routes = path .<Object > map (p -> new MvcClass (((MvcClass ) it ).routeClass , p ))
719+ Object routes = path .<Object > map (p -> new MvcClass (((MvcClass ) it ).routeClass , p , prefix ))
714720 .orElse (it );
715721 this .bag .add (routes );
716722 } else {
@@ -3235,7 +3241,7 @@ public Route.Definition assets(final String path, final AssetHandler handler) {
32353241 @ Override
32363242 public Route .Collection use (final Class <?> routeClass ) {
32373243 requireNonNull (routeClass , "Route class is required." );
3238- MvcClass mvc = new MvcClass (routeClass , "" );
3244+ MvcClass mvc = new MvcClass (routeClass , "" , prefix );
32393245 bag .add (mvc );
32403246 return new Route .Collection (mvc );
32413247 }
@@ -3247,9 +3253,9 @@ public Route.Collection use(final Class<?> routeClass) {
32473253 * @return The same route definition.
32483254 */
32493255 private Route .Definition appendDefinition (final Route .Definition route ) {
3250- if ( prefix != null ) {
3251- route . name ( prefix + "/" + route . name ());
3252- }
3256+ route . prefix = prefix ;
3257+ // reset name will update the name if prefix != null
3258+ route . name ( route . name ());
32533259 bag .add (route );
32543260 return route ;
32553261 }
@@ -3745,13 +3751,8 @@ private static List<Object> normalize(final List<Object> services, final Env env
37453751 MvcClass mvcRoute = ((MvcClass ) candidate );
37463752 Class <?> mvcClass = mvcRoute .routeClass ;
37473753 String path = ((MvcClass ) candidate ).path ;
3748- MvcRoutes .routes (env , classInfo , path , mvcClass ).forEach (route -> {
3749- mvcRoute .apply (route );
3750- if (prefix != null ) {
3751- route .name (prefix + "/" + route .name ());
3752- }
3753- result .add (route );
3754- });
3754+ MvcRoutes .routes (env , classInfo , path , mvcClass )
3755+ .forEach (route -> result .add (mvcRoute .apply (route )));
37553756 } else {
37563757 result .add (candidate );
37573758 }
0 commit comments