servletExcludes = Arrays.asList("default","jsp");
-
- // private static final Logger log = LoggerFactory.getLogger(ProfileBuilder.class);
-
- private ApplicationContext context;
-
- public ProfileBuilder(ApplicationContext context) {
- this.context = context;
- }
-
- public void fill(GCoreEndpoint endpoint) {
-
-
- ApplicationConfiguration configuration = context.configuration();
- ContainerConfiguration container = context.container().configuration();
-
-
- endpoint.profile()
- .description(configuration.description())
- .serviceName(configuration.name())
- .serviceClass(configuration.serviceClass())
- .version(configuration.version())
- .serviceId(configuration.name() + configuration.serviceClass() + configuration.version())
- .ghnId(context.container().profile().id());
-
- endpoint.profile().newDeploymentData()
- .activationTime(Calendar.getInstance())
- .status((context.lifecycle().state().remoteForm()));
-
- endpoint.profile().endpoints().clear();
-
- String baseAddress;
- if (configuration.proxied()){
- String protocol = configuration.proxyAddress().getProtocol();
- String port = configuration.proxyAddress().getPort()!=null?":"+configuration.proxyAddress().getPort():"";
-
- baseAddress=String.format("%s://%s%s%s", protocol , configuration.proxyAddress().getHostname(), port,context.application().getContextPath());
- } else {
- String protocol = container.protocol();
- int port = container.port();
-
- baseAddress=String.format("%s://%s:%d%s", protocol , container.hostname(), port,context.application().getContextPath());
- }
-
- for (ServletRegistration servlet : context.application().getServletRegistrations().values())
- if (!servletExcludes.contains(servlet.getName()))
- for (String mapping : servlet.getMappings()) {
- String address = baseAddress+(mapping.endsWith("*")?mapping.substring(0,mapping.length()-2):mapping);
- endpoint.profile().endpoints().add().nameAndAddress(servlet.getName(),URI.create(address));
- }
-
-
- }
-
-}
diff --git a/src/main/java/org/gcube/smartgears/handlers/application/lifecycle/ProfileManager.java b/src/main/java/org/gcube/smartgears/handlers/application/lifecycle/ProfileManager.java
index 2418054..dcff68e 100644
--- a/src/main/java/org/gcube/smartgears/handlers/application/lifecycle/ProfileManager.java
+++ b/src/main/java/org/gcube/smartgears/handlers/application/lifecycle/ProfileManager.java
@@ -109,8 +109,6 @@ public class ProfileManager extends ApplicationLifecycleHandler {
@Observes({ activation, stop, failure })
void onChanged(ApplicationLifecycle lc) {
- GCoreEndpoint profile = context.profile();
-
profile.profile().deploymentData().status(lc.state().remoteForm());
log.debug("moving app {} to {}",context.name(), lc.state().remoteForm());
diff --git a/src/main/java/org/gcube/smartgears/handlers/application/lifecycle/ServicePublisher.java b/src/main/java/org/gcube/smartgears/handlers/application/lifecycle/ServicePublisher.java
deleted file mode 100644
index 1aad5e3..0000000
--- a/src/main/java/org/gcube/smartgears/handlers/application/lifecycle/ServicePublisher.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.gcube.smartgears.handlers.application.lifecycle;
-
-import java.util.List;
-import java.util.Set;
-
-import org.gcube.common.resources.gcore.GCoreEndpoint;
-import org.gcube.common.resources.gcore.HostingNode;
-import org.gcube.smartgears.configuration.Mode;
-import org.gcube.smartgears.context.application.ApplicationContext;
-import org.gcube.smartgears.handlers.AbstractProfilePublisher;
-import org.gcube.smartgears.handlers.ProfileEvents;
-
-/**
- * Publishes the current resource profile of the application.
- *
- *Distinguishes publication in new scopes ({@link #addTo(List)} from publication updates in existing scopes ({@link #update()}.
- *
- *
- * @author Fabio Simeoni
- *
- */
-public class ServicePublisher extends AbstractProfilePublisher {
-
- private final ApplicationContext context;
-
- public ServicePublisher(ApplicationContext context) {
- super();
- this.context = context;
- }
-
-
- protected void sharePublished(HostingNode profile) {
- context.events().fire(profile,ProfileEvents.published);
- }
-
-
- @Override
- protected GCoreEndpoint getProfile() {
- return context.profile();
- }
-
-
- @Override
- protected boolean isRoot() {
- return context.container().configuration().mode()!=Mode.root;
- }
-
-
- @Override
- protected void sharePublished(GCoreEndpoint profile) {
- context.events().fire(profile,ProfileEvents.published);
- }
-
-
- @Override
- protected Set getAllowedContexts() {
- return context.container().configuration().authorizationProvider().getContexts();
- }
-}
-
-
diff --git a/src/main/java/org/gcube/smartgears/handlers/application/request/RequestValidator.java b/src/main/java/org/gcube/smartgears/handlers/application/request/RequestValidator.java
index 3766cdd..09bd236 100644
--- a/src/main/java/org/gcube/smartgears/handlers/application/request/RequestValidator.java
+++ b/src/main/java/org/gcube/smartgears/handlers/application/request/RequestValidator.java
@@ -7,8 +7,8 @@ import static org.gcube.smartgears.handlers.application.request.RequestError.inv
import javax.xml.bind.annotation.XmlRootElement;
-import org.gcube.common.scope.impl.ScopeBean;
-import org.gcube.common.scope.impl.ScopeBean.Type;
+import org.gcube.common.security.ContextBean;
+import org.gcube.common.security.ContextBean.Type;
import org.gcube.common.security.providers.SecretManagerProvider;
import org.gcube.common.security.secrets.AccessTokenSecret;
import org.gcube.common.security.secrets.GCubeSecret;
@@ -89,7 +89,7 @@ public class RequestValidator extends RequestHandler {
invalid_request_error.fire("call is unscoped");
}
- ScopeBean bean = new ScopeBean(context);
+ ContextBean bean = new ContextBean(context);
ContainerConfiguration conf = appContext.container().configuration();
if (!conf.allowedContexts().contains(context) &&
diff --git a/src/main/java/org/gcube/smartgears/publishing/Publisher.java b/src/main/java/org/gcube/smartgears/publishing/Publisher.java
new file mode 100644
index 0000000..6d30126
--- /dev/null
+++ b/src/main/java/org/gcube/smartgears/publishing/Publisher.java
@@ -0,0 +1,15 @@
+package org.gcube.smartgears.publishing;
+
+import org.gcube.smartgears.configuration.application.ApplicationConfiguration;
+import org.gcube.smartgears.configuration.container.ContainerConfiguration;
+
+public interface Publisher {
+
+ boolean publishContainer(ContainerConfiguration container, String ... contexts);
+
+ boolean publishApplication(ApplicationConfiguration application, String ... contexts);
+
+ boolean unpublishContainer(ContainerConfiguration container, String ... contexts);
+
+ boolean unpublishApplication(ApplicationConfiguration application, String ... contexts);
+}