removing gcore resource dependencies from smartgears
parent
4b619414a7
commit
961676484f
@ -1,71 +0,0 @@
|
||||
package org.gcube.smartgears.handlers.application.lifecycle;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.ServletRegistration;
|
||||
|
||||
import org.gcube.common.resources.gcore.GCoreEndpoint;
|
||||
import org.gcube.smartgears.configuration.application.ApplicationConfiguration;
|
||||
import org.gcube.smartgears.configuration.container.ContainerConfiguration;
|
||||
import org.gcube.smartgears.context.application.ApplicationContext;
|
||||
|
||||
public class ProfileBuilder {
|
||||
|
||||
private static List<String> 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));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -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.
|
||||
* <p>
|
||||
*Distinguishes publication in new scopes ({@link #addTo(List)} from publication updates in existing scopes ({@link #update()}.
|
||||
*
|
||||
*
|
||||
* @author Fabio Simeoni
|
||||
*
|
||||
*/
|
||||
public class ServicePublisher extends AbstractProfilePublisher<GCoreEndpoint> {
|
||||
|
||||
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<String> getAllowedContexts() {
|
||||
return context.container().configuration().authorizationProvider().getContexts();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
Loading…
Reference in New Issue