Proxy management improved
This commit is contained in:
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…
Reference in New Issue