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 java.util.Set;
|
||||||
|
|
||||||
|
import org.gcube.smartgears.configuration.ProxyAddress;
|
||||||
import org.gcube.smartgears.persistence.PersistenceWriter;
|
import org.gcube.smartgears.persistence.PersistenceWriter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -19,7 +20,11 @@ public interface ApplicationConfiguration {
|
||||||
*/
|
*/
|
||||||
String context();
|
String context();
|
||||||
|
|
||||||
boolean proxied();
|
boolean proxable();
|
||||||
|
|
||||||
|
ProxyAddress proxyAddress();
|
||||||
|
|
||||||
|
ApplicationConfiguration proxyAddress(ProxyAddress proxy);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the context path of the application
|
* Sets the context path of the application
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
package org.gcube.smartgears.configuration.application;
|
package org.gcube.smartgears.configuration.application;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.gcube.smartgears.configuration.ProxyAddress;
|
||||||
import org.gcube.smartgears.configuration.container.ContainerConfiguration;
|
import org.gcube.smartgears.configuration.container.ContainerConfiguration;
|
||||||
|
import org.gcube.smartgears.persistence.LocalPersistence;
|
||||||
import org.gcube.smartgears.persistence.PersistenceWriter;
|
import org.gcube.smartgears.persistence.PersistenceWriter;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -25,11 +28,20 @@ public class BridgedApplicationConfiguration implements ApplicationConfiguration
|
||||||
|
|
||||||
if (application.persistence()==null) {
|
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() {
|
public ApplicationConfiguration inner() {
|
||||||
|
@ -110,8 +122,8 @@ public class BridgedApplicationConfiguration implements ApplicationConfiguration
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean proxied() {
|
public boolean proxable() {
|
||||||
return application.proxied();
|
return application.proxable();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -124,4 +136,14 @@ public class BridgedApplicationConfiguration implements ApplicationConfiguration
|
||||||
return application.includes(includes);
|
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.IsValid;
|
||||||
import org.gcube.common.validator.annotations.NotNull;
|
import org.gcube.common.validator.annotations.NotNull;
|
||||||
import org.gcube.smartgears.configuration.ProxyAddress;
|
import org.gcube.smartgears.configuration.ProxyAddress;
|
||||||
|
import org.gcube.smartgears.persistence.LocalPersistence;
|
||||||
import org.gcube.smartgears.persistence.PersistenceWriter;
|
import org.gcube.smartgears.persistence.PersistenceWriter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -34,8 +35,8 @@ public class DefaultApplicationConfiguration implements ApplicationConfiguration
|
||||||
|
|
||||||
String context;
|
String context;
|
||||||
|
|
||||||
@XmlAttribute(name = "proxied")
|
@XmlAttribute(name = "proxable")
|
||||||
private boolean proxied = true;
|
private boolean proxable = true;
|
||||||
|
|
||||||
@XmlElement(name="name" , required=true)
|
@XmlElement(name="name" , required=true)
|
||||||
@NotNull
|
@NotNull
|
||||||
|
@ -58,9 +59,13 @@ public class DefaultApplicationConfiguration implements ApplicationConfiguration
|
||||||
@XmlElementRef
|
@XmlElementRef
|
||||||
Set<Include> includes= new LinkedHashSet<Include>();
|
Set<Include> includes= new LinkedHashSet<Include>();
|
||||||
|
|
||||||
|
@XmlElementRef(type=LocalPersistence.class)
|
||||||
@NotNull @IsValid
|
@NotNull @IsValid
|
||||||
private PersistenceWriter persistenceManager;
|
private PersistenceWriter persistenceManager;
|
||||||
|
|
||||||
|
@IsValid
|
||||||
|
ProxyAddress proxyAddress;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Set<Exclude> excludes() {
|
public Set<Exclude> excludes() {
|
||||||
return excludes;
|
return excludes;
|
||||||
|
@ -144,10 +149,21 @@ public class DefaultApplicationConfiguration implements ApplicationConfiguration
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean proxied() {
|
public boolean proxable() {
|
||||||
return proxied;
|
return proxable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ProxyAddress proxyAddress() {
|
||||||
|
return proxyAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public ApplicationConfiguration proxyAddress(ProxyAddress proxyAddress) {
|
||||||
|
this.proxyAddress = proxyAddress;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PersistenceWriter persistence() {
|
public PersistenceWriter persistence() {
|
||||||
return persistenceManager;
|
return persistenceManager;
|
||||||
|
|
|
@ -207,8 +207,10 @@ public class ApplicationProfileManager extends ApplicationLifecycleHandler {
|
||||||
context.events().fire(context,changed);
|
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.Files;
|
||||||
import java.nio.file.Paths;
|
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.NotEmpty;
|
||||||
import org.gcube.common.validator.annotations.NotNull;
|
import org.gcube.common.validator.annotations.NotNull;
|
||||||
|
|
||||||
|
@XmlRootElement(name="persistence")
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
public class LocalPersistence implements PersistenceWriter {
|
public class LocalPersistence implements PersistenceWriter {
|
||||||
|
|
||||||
@NotNull @NotEmpty
|
@XmlAttribute(name="location") @NotNull @NotEmpty
|
||||||
private String location;
|
private String location;
|
||||||
|
|
||||||
protected LocalPersistence() {}
|
protected LocalPersistence() {}
|
||||||
|
|
Loading…
Reference in New Issue