Proxy management improved

master
Lucio Lelii 2 years ago
parent 08781a5f3a
commit 710e8ef242

@ -2,6 +2,7 @@ package org.gcube.smartgears.configuration.application;
import java.util.Set;
import org.gcube.smartgears.configuration.ProxyAddress;
import org.gcube.smartgears.persistence.PersistenceWriter;
/**
@ -19,7 +20,11 @@ public interface ApplicationConfiguration {
*/
String context();
boolean proxied();
boolean proxable();
ProxyAddress proxyAddress();
ApplicationConfiguration proxyAddress(ProxyAddress proxy);
/**
* Sets the context path of the application

@ -1,8 +1,11 @@
package org.gcube.smartgears.configuration.application;
import java.io.File;
import java.util.Set;
import org.gcube.smartgears.configuration.ProxyAddress;
import org.gcube.smartgears.configuration.container.ContainerConfiguration;
import org.gcube.smartgears.persistence.LocalPersistence;
import org.gcube.smartgears.persistence.PersistenceWriter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -25,11 +28,20 @@ public class BridgedApplicationConfiguration implements ApplicationConfiguration
if (application.persistence()==null) {
application.persistence(container.persistence());
String location = container.persistence().getLocation()+"/"+application.name();
File dir = new File(location);
if (!dir.exists())
dir.mkdirs();
application.persistence(new LocalPersistence(location));
log.trace("setting persistence location for {} @ {}",application.name(), dir.getAbsolutePath());
log.trace("setting persistence location for {} the same as the container persistence",application.name());
}
if (application.proxable() && container.proxy()!=null)
application.proxyAddress(container.proxy());
}
public ApplicationConfiguration inner() {
@ -110,8 +122,8 @@ public class BridgedApplicationConfiguration implements ApplicationConfiguration
@Override
public boolean proxied() {
return application.proxied();
public boolean proxable() {
return application.proxable();
}
@Override
@ -124,4 +136,14 @@ public class BridgedApplicationConfiguration implements ApplicationConfiguration
return application.includes(includes);
}
@Override
public ProxyAddress proxyAddress() {
return application.proxyAddress();
}
@Override
public ApplicationConfiguration proxyAddress(ProxyAddress proxy) {
return proxyAddress(proxy);
}
}

@ -18,6 +18,7 @@ import org.gcube.common.validator.ValidatorFactory;
import org.gcube.common.validator.annotations.IsValid;
import org.gcube.common.validator.annotations.NotNull;
import org.gcube.smartgears.configuration.ProxyAddress;
import org.gcube.smartgears.persistence.LocalPersistence;
import org.gcube.smartgears.persistence.PersistenceWriter;
/**
@ -34,8 +35,8 @@ public class DefaultApplicationConfiguration implements ApplicationConfiguration
String context;
@XmlAttribute(name = "proxied")
private boolean proxied = true;
@XmlAttribute(name = "proxable")
private boolean proxable = true;
@XmlElement(name="name" , required=true)
@NotNull
@ -58,9 +59,13 @@ public class DefaultApplicationConfiguration implements ApplicationConfiguration
@XmlElementRef
Set<Include> includes= new LinkedHashSet<Include>();
@XmlElementRef(type=LocalPersistence.class)
@NotNull @IsValid
private PersistenceWriter persistenceManager;
@IsValid
ProxyAddress proxyAddress;
@Override
public Set<Exclude> excludes() {
return excludes;
@ -144,10 +149,21 @@ public class DefaultApplicationConfiguration implements ApplicationConfiguration
}
@Override
public boolean proxied() {
return proxied;
public boolean proxable() {
return proxable;
}
public ProxyAddress proxyAddress() {
return proxyAddress;
}
public ApplicationConfiguration proxyAddress(ProxyAddress proxyAddress) {
this.proxyAddress = proxyAddress;
return this;
}
@Override
public PersistenceWriter persistence() {
return persistenceManager;

@ -207,8 +207,10 @@ public class ApplicationProfileManager extends ApplicationLifecycleHandler {
context.events().fire(context,changed);
}
};
periodicUpdates = Utils.scheduledServicePool.scheduleAtFixedRate(updateTask, Constants.application_republish_frequency_in_minutes, Constants.application_republish_frequency_in_minutes , TimeUnit.MINUTES);
periodicUpdates = Utils.scheduledServicePool.scheduleAtFixedRate(updateTask,
Constants.application_republish_frequency_in_minutes,
Constants.application_republish_frequency_in_minutes , TimeUnit.MINUTES);
}

@ -8,12 +8,19 @@ import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import org.gcube.common.validator.annotations.NotEmpty;
import org.gcube.common.validator.annotations.NotNull;
@XmlRootElement(name="persistence")
@XmlAccessorType(XmlAccessType.FIELD)
public class LocalPersistence implements PersistenceWriter {
@NotNull @NotEmpty
@XmlAttribute(name="location") @NotNull @NotEmpty
private String location;
protected LocalPersistence() {}

Loading…
Cancel
Save