diff --git a/src/main/java/li/strolch/service/AbstractService.java b/src/main/java/li/strolch/service/AbstractService.java index e2d296e48..bef92cdf4 100644 --- a/src/main/java/li/strolch/service/AbstractService.java +++ b/src/main/java/li/strolch/service/AbstractService.java @@ -17,18 +17,33 @@ package li.strolch.service; import java.text.MessageFormat; +import li.strolch.runtime.agent.api.ComponentContainer; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author Robert von Burg - * */ public abstract class AbstractService implements Service { protected static final Logger logger = LoggerFactory.getLogger(AbstractService.class); private static final long serialVersionUID = 1L; + private ComponentContainer container; + + /** + * @return the container + */ + protected ComponentContainer getContainer() { + return this.container; + } + + @Override + public void setContainer(ComponentContainer container) { + this.container = container; + } + @Override public final U doService(T argument) { diff --git a/src/main/java/li/strolch/service/DefaultServiceHandler.java b/src/main/java/li/strolch/service/DefaultServiceHandler.java index 6cb211047..0ff6c98c3 100644 --- a/src/main/java/li/strolch/service/DefaultServiceHandler.java +++ b/src/main/java/li/strolch/service/DefaultServiceHandler.java @@ -42,6 +42,13 @@ public class DefaultServiceHandler extends StrolchComponent implements ServiceHa super(container, componentName); } + @Override + public void initialize(ComponentConfiguration configuration) { + if (getContainer().hasComponent(StrolchPrivilegeHandler.class)) + this.privilegeHandler = getContainer().getComponent(StrolchPrivilegeHandler.class); + super.initialize(configuration); + } + @Override public U doService(Certificate certificate, Service service) { return doService(certificate, service, null); @@ -67,6 +74,7 @@ public class DefaultServiceHandler extends StrolchComponent implements ServiceHa try { // then perform the service + service.setContainer(getContainer()); U serviceResult = service.doService(argument); // log the result @@ -90,11 +98,4 @@ public class DefaultServiceHandler extends StrolchComponent implements ServiceHa throw new StrolchException(msg, e); } } - - @Override - public void initialize(ComponentConfiguration configuration) { - if (getContainer().hasComponent(StrolchPrivilegeHandler.class)) - this.privilegeHandler = getContainer().getComponent(StrolchPrivilegeHandler.class); - super.initialize(configuration); - } } diff --git a/src/main/java/li/strolch/service/Service.java b/src/main/java/li/strolch/service/Service.java index 174d8d26e..03c76703e 100644 --- a/src/main/java/li/strolch/service/Service.java +++ b/src/main/java/li/strolch/service/Service.java @@ -17,13 +17,15 @@ package li.strolch.service; import java.io.Serializable; +import li.strolch.runtime.agent.api.ComponentContainer; import ch.eitchnet.privilege.model.Restrictable; /** * @author Robert von Burg - * */ public interface Service extends Serializable, Restrictable { public U doService(T argument); + + public void setContainer(ComponentContainer container); }