common-smartgears/src/main/java/org/gcube/smartgears/configuration/application/BridgedApplicationConfigura...

150 lines
3.3 KiB
Java

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;
/**
*
* @author Fabio Simeoni
* @author Luca Frosini (ISTI - CNR)
*/
public class BridgedApplicationConfiguration implements ApplicationConfiguration {
private static Logger log = LoggerFactory.getLogger(ApplicationConfiguration.class);
private final ApplicationConfiguration application;
public BridgedApplicationConfiguration(ContainerConfiguration container, ApplicationConfiguration config) {
this.application=config;
if (application.persistence()==null) {
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());
}
if (application.proxable() && container.proxy()!=null)
application.proxyAddress(container.proxy());
}
public ApplicationConfiguration inner() {
return application;
}
@Override
public String context() {
return application.context();
}
@Override
public ApplicationConfiguration context(String context) {
return application.context(context);
}
public String name() {
return application.name();
}
public ApplicationConfiguration name(String name) {
return application.name(name);
}
public String serviceClass() {
return application.serviceClass();
}
public ApplicationConfiguration serviceClass(String group) {
return application.serviceClass(group);
}
public String version() {
return application.version();
}
public ApplicationConfiguration version(String version) {
return application.version(version);
}
public String description() {
return application.description();
}
public ApplicationConfiguration description(String description) {
return application.description(description);
}
public PersistenceWriter persistence() {
return application.persistence();
}
public ApplicationConfiguration persistence(PersistenceWriter manager) {
return application.persistence(manager);
}
public void validate() {
application.validate();
}
@Override
public Set<Exclude> excludes() {
return application.excludes();
}
@Override
public Set<Include> includes() {
return application.includes();
}
@Override
public void merge(ApplicationConfiguration config) {
application.merge(config);
}
@Override
public boolean proxable() {
return application.proxable();
}
@Override
public ApplicationConfiguration excludes(Exclude ... excludes) {
return application.excludes(excludes);
}
@Override
public ApplicationConfiguration includes(Include... includes) {
return application.includes(includes);
}
@Override
public ProxyAddress proxyAddress() {
return application.proxyAddress();
}
@Override
public ApplicationConfiguration proxyAddress(ProxyAddress proxy) {
return proxyAddress(proxy);
}
}