You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2018/05/14 18:01:16 UTC
[isis] branch master updated: ISIS-1946 minor cleanup,
adding java-doc to clarify path-resource usage
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 64ce6ad ISIS-1946 minor cleanup, adding java-doc to clarify path-resource usage
64ce6ad is described below
commit 64ce6adfc7dc957b9af951f72809f2bca11cc610
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon May 14 20:01:06 2018 +0200
ISIS-1946 minor cleanup, adding java-doc to clarify path-resource usage
---
.../isis/applib/internal/resources/_Resource.java | 29 +++++++++++----
.../applib/internal/resources/_Resource_Path.java | 42 ++++++++--------------
.../wicket/viewer/IsisWicketApplication.java | 2 +-
3 files changed, 39 insertions(+), 34 deletions(-)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/resources/_Resource.java b/core/applib/src/main/java/org/apache/isis/applib/internal/resources/_Resource.java
index 74ab7bb..193f78d 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/resources/_Resource.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/internal/resources/_Resource.java
@@ -57,21 +57,29 @@ public final class _Resource {
public static String loadAsString(Class<?> contextClass, String resourceName, Charset charset) throws IOException {
final InputStream is = load(contextClass, resourceName);
return _Strings.ofBytes(_Bytes.of(is), charset);
-
- // legacy of guava
-// final URL url = Resources.getResource(contextClass, resourceName);
-// return Resources.toString(url, charset);
}
// -- CONTEXT PATH RESOURCE
+ /**
+ * @return context-path resource (if any) as stored previously by {@link #putContextPathIfPresent(String)}
+ */
public final static String getContextPathIfAny() {
final _Resource_ContextPath resource = _Context.getIfAny(_Resource_ContextPath.class);
return resource!=null ? resource.getContextPath() : null;
}
- public final static void putContextPath(String contextPath) {
- _Context.put(_Resource_ContextPath.class, new _Resource_ContextPath(contextPath), false);
+ /**
+ * Stores the {@code contextPath} as an application scoped resource-object.
+ * If {@code contextPath} is null or an empty String, no path-resource object is stored.
+ * @param contextPath
+ * @throws IllegalArgumentException if an non-empty contextPath evaluates to being
+ * equivalent to the root-path '/'
+ */
+ public final static void putContextPathIfPresent(String contextPath) {
+ if(!_Strings.isEmpty(contextPath)) {
+ _Context.put(_Resource_ContextPath.class, new _Resource_ContextPath(contextPath), false);
+ }
}
public final static String prependContextPathIfPresent(String path) {
@@ -95,11 +103,19 @@ public final class _Resource {
// -- RESTFUL PATH RESOURCE
+ /**
+ * @return restful-path resource (if any) as stored previously by {@link #putRestfulPath(String)}
+ */
public final static String getRestfulPathIfAny() {
final _Resource_RestfulPath resource = _Context.getIfAny(_Resource_RestfulPath.class);
return resource!=null ? resource.getRestfulPath() : null;
}
+ /**
+ * Stores the {@code restfulPath} as an application scoped resource-object.
+ * @param restfulPath
+ * @throws IllegalArgumentException if the restfulPath is empty or is the root-path.
+ */
public final static void putRestfulPath(String restfulPath) {
_Context.put(_Resource_RestfulPath.class, new _Resource_RestfulPath(restfulPath), false);
}
@@ -131,4 +147,5 @@ public final class _Resource {
return name;
}
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/resources/_Resource_Path.java b/core/applib/src/main/java/org/apache/isis/applib/internal/resources/_Resource_Path.java
index fd047d6..3b2a183 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/resources/_Resource_Path.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/internal/resources/_Resource_Path.java
@@ -25,6 +25,11 @@ import org.apache.isis.applib.internal.base._Strings;
/**
*
* package private abstract helper class to store application scoped path objects
+ * <br/><br/>
+ *
+ * Implementation Note: Empty paths are represented by absence of this resource,
+ * hence empty paths are not allowed (will throw an IllegalArgumentException on
+ * attempted construction)
*
*/
abstract class _Resource_Path {
@@ -34,21 +39,15 @@ abstract class _Resource_Path {
protected abstract String resourceName();
public _Resource_Path(String contextPath) {
-
-// as it stands, this code fails when running under org.apache.isis.WebServer, because the contextPath passed in is just ""
-// But it's not obvious to me why an empty contextPath is not allowed; a value of "/" would be trimmed down to "" anyway.
-// Therefore relaxing the logic.
-//
-// if(_Strings.isEmpty(contextPath))
-// throw new IllegalArgumentException(resourceName()+" can not be empty");
-//
-// contextPath = contextPath.trim();
-//
-// if(_Strings.isEmpty(contextPath))
-// throw new IllegalArgumentException(resourceName()+" can not be empty");
-
- contextPath = defaultIfEmpty(contextPath);
-
+
+ if(_Strings.isEmpty(contextPath))
+ throw new IllegalArgumentException(resourceName()+" can not be empty");
+
+ contextPath = contextPath.trim();
+
+ if(_Strings.isEmpty(contextPath))
+ throw new IllegalArgumentException(resourceName()+" can not be empty");
+
while(contextPath.startsWith("/")) {
contextPath = contextPath.substring(1);
}
@@ -64,16 +63,5 @@ abstract class _Resource_Path {
this.path = contextPath;
}
-
- private static String defaultIfEmpty(final String contextPath) {
- if(contextPath == null) {
- return "/";
- }
- final String trimmedContextPath = contextPath.trim();
- if(_Strings.isEmpty(trimmedContextPath)) {
- return "/";
- }
- return trimmedContextPath;
- }
-
+
}
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 5da7cc6..9cc168b 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -352,7 +352,7 @@ public class IsisWicketApplication
final IsisConfigurationBuilder isisConfigurationBuilder = obtainConfigBuilder();
isisConfigurationBuilder.addDefaultConfigurationResourcesAndPrimers();
- _Resource.putContextPath(getServletContext().getContextPath());
+ _Resource.putContextPathIfPresent(getServletContext().getContextPath());
final IsisConfigurationDefault configuration = isisConfigurationBuilder.getConfiguration();
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.