diff --git a/nuxeo-platform-url-core/src/main/java/org/nuxeo/ecm/platform/url/codec/DocumentPathCodec.java b/nuxeo-platform-url-core/src/main/java/org/nuxeo/ecm/platform/url/codec/DocumentPathCodec.java --- a/nuxeo-platform-url-core/src/main/java/org/nuxeo/ecm/platform/url/codec/DocumentPathCodec.java +++ b/nuxeo-platform-url-core/src/main/java/org/nuxeo/ecm/platform/url/codec/DocumentPathCodec.java @@ -50,13 +50,15 @@ public static final String PREFIX = "nxpath"; + public static final String DEFAULT_DOCUMENT_VIEW_ID = "document_view_dispatch"; + // nxpath/server/path/to/doc@view_id?requestParams public static final String URL_PATTERN = "/" // slash + "([\\w\\.]+)" // server name (group 1) + "(?:/(.*))?" // path (group 2) (optional) - + "@([\\w\\-\\.]+)" // view id (group 3) + + "(@([\\w\\-\\.]+))?" // view id (group 4) (optional) + "/?" // final slash (optional) - + "(?:\\?(.*)?)?"; // query (group 4) (optional) + + "(?:\\?(.*)?)?"; // query (group 5) (optional) private static final Log log = LogFactory.getLog(DocumentPathCodec.class); @@ -150,10 +152,13 @@ path = "/"; } final DocumentRef docRef = new PathRef(path); - final String viewId = m.group(3); + String viewId = m.group(4); + if (viewId == null) { + viewId = DEFAULT_DOCUMENT_VIEW_ID; + } // get other parameters - String query = m.group(4); + String query = m.group(5); Map params = URIUtils.getRequestParameters(query); final DocumentLocation docLoc = new DocumentLocationImpl(server,