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/02/24 22:34:05 UTC
[isis] 06/07: ISIS 1880 replace URL with new LocalResourcePath
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
commit c9780e40d0058184bc8fba6c4f8d0ab8f05ca8f3
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Feb 24 23:31:54 2018 +0100
ISIS 1880 replace URL with new LocalResourcePath
---
.../applib/services/layout/Object_openRestApi.java | 16 ++++++++-----
.../services/swagger/SwaggerServiceMenu.java | 19 +++++-----------
.../services/swagger/SwaggerServiceDefault.java | 26 +++++++++-------------
3 files changed, 27 insertions(+), 34 deletions(-)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_openRestApi.java b/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_openRestApi.java
index 1c4e1ef..5576854 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_openRestApi.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/layout/Object_openRestApi.java
@@ -16,8 +16,6 @@
*/
package org.apache.isis.applib.services.layout;
-import java.net.MalformedURLException;
-
import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.Contributed;
@@ -25,8 +23,11 @@ import org.apache.isis.applib.annotation.MemberOrder;
import org.apache.isis.applib.annotation.Mixin;
import org.apache.isis.applib.annotation.RestrictTo;
import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.internal.resources._Resource;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.applib.services.bookmark.BookmarkService;
+import org.apache.isis.applib.services.swagger.SwaggerService;
+import org.apache.isis.applib.value.LocalResourcePath;
@Mixin(method="act")
public class Object_openRestApi {
@@ -50,15 +51,20 @@ public class Object_openRestApi {
position = ActionLayout.Position.PANEL_DROPDOWN
)
@MemberOrder(name = "datanucleusIdLong", sequence = "750.1")
- public java.net.URL act() throws MalformedURLException {
+ public LocalResourcePath act() {
Bookmark bookmark = bookmarkService.bookmarkFor(object);
- return new java.net.URL(String.format(
- "http:///restful/objects/%s/%s",
+
+ return new LocalResourcePath(String.format(
+ "/%s/objects/%s/%s",
+ _Resource.getRestfulPathIfAny(),
bookmark.getObjectType(),
bookmark.getIdentifier()));
}
@javax.inject.Inject
BookmarkService bookmarkService;
+
+ @javax.inject.Inject
+ SwaggerService swaggerService;
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java b/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java
index 8652226..8744aca 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java
@@ -16,9 +16,6 @@
*/
package org.apache.isis.applib.services.swagger;
-import java.net.MalformedURLException;
-import java.net.URL;
-
import org.apache.isis.applib.IsisApplibModule;
import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.ActionLayout;
@@ -29,7 +26,9 @@ import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.applib.annotation.RestrictTo;
import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.internal.resources._Resource;
import org.apache.isis.applib.value.Clob;
+import org.apache.isis.applib.value.LocalResourcePath;
@DomainService(
@@ -58,12 +57,10 @@ public class SwaggerServiceMenu {
cssClassFa = "fa-external-link"
)
@MemberOrder(sequence="500.600.1")
- public URL openSwaggerUi() throws MalformedURLException {
- return new java.net.URL("http:///swagger-ui/index.html");
+ public LocalResourcePath openSwaggerUi() {
+ return new LocalResourcePath("/swagger-ui/index.html");
}
-
-
public static class OpenRestApiDomainEvent extends ActionDomainEvent {}
@Action(
@@ -75,12 +72,10 @@ public class SwaggerServiceMenu {
cssClassFa = "fa-external-link"
)
@MemberOrder(sequence="500.600.2")
- public URL openRestApi() throws MalformedURLException {
- return new java.net.URL("http:///restful/");
+ public LocalResourcePath openRestApi() {
+ return new LocalResourcePath("/"+_Resource.getRestfulPathIfAny()+"/");
}
-
-
public static class DownloadSwaggerSpecDomainEvent extends ActionDomainEvent {}
@Action(
@@ -112,8 +107,6 @@ public class SwaggerServiceMenu {
return SwaggerService.Format.YAML;
}
-
-
@javax.inject.Inject
SwaggerService swaggerService;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/SwaggerServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/SwaggerServiceDefault.java
index 192b5f6..e0b4f9d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/SwaggerServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/SwaggerServiceDefault.java
@@ -25,10 +25,11 @@ import javax.annotation.PostConstruct;
import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.internal.base._NullSafe;
+import org.apache.isis.applib.internal.resources._Resource;
import org.apache.isis.applib.services.swagger.SwaggerService;
import org.apache.isis.core.metamodel.services.swagger.internal.SwaggerSpecGenerator;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.core.webapp.WebAppContextSupport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -49,21 +50,15 @@ public class SwaggerServiceDefault implements SwaggerService {
@PostConstruct
public void init(final Map<String,String> properties) {
- final String webappContextPath =
- getPropertyElse(properties, WebAppContextSupport.WEB_APP_CONTEXT_PATH, "/");
+ // ----------------------------------------------------------------------------------------------------------
+ // TODO [ahuber] this initialization must be done once before accessing _Resource.prependContextPathIfPresent
+ // could be done anywhere during bootstrapping
+ final String restfulPath =
+ _NullSafe.getOrDefault(properties, KEY_RESTFUL_BASE_PATH, KEY_RESTFUL_BASE_PATH_DEFAULT);
+ _Resource.putRestfulPath(restfulPath);
+ // ----------------------------------------------------------------------------------------------------------
- final String basePath =
- getPropertyElse(properties, KEY_RESTFUL_BASE_PATH, KEY_RESTFUL_BASE_PATH_DEFAULT);
-
- this.basePath = WebAppContextSupport.prependContextPathIfPresent(webappContextPath, basePath);
- }
-
- static String getPropertyElse(final Map<String, String> properties, final String key, final String dflt) {
- String basePath = properties.get(key);
- if(basePath == null) {
- basePath = dflt;
- }
- return basePath;
+ this.basePath = _Resource.prependContextPathIfPresent(restfulPath);
}
@Programmatic
@@ -77,7 +72,6 @@ public class SwaggerServiceDefault implements SwaggerService {
return swaggerSpec;
}
-
@javax.inject.Inject
SpecificationLoader specificationLoader;
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.