@@ -0,0 +1,1304 @@
+package com.github.aureliano.achmed.os.service;%0A%0Aimport com.github.aureliano.achmed.command.CommandResponse;%0Aimport com.github.aureliano.achmed.exception.ServiceResourceException;%0Aimport com.github.aureliano.achmed.helper.StringHelper;%0Aimport com.github.aureliano.achmed.resources.properties.ServiceProperties;%0A%0Apublic abstract class BaseService implements IService %7B%0A%0A%09private ServiceProperties properties;%0A%09%0A%09public BaseService() %7B%0A%09%09super();%0A%09%7D%0A%0A%09public CommandResponse start() %7B%0A%09%09throw new UnsupportedOperationException(%22Not implemented yet.%22);%0A%09%7D%0A%0A%09public CommandResponse stop() %7B%0A%09%09throw new UnsupportedOperationException(%22Not implemented yet.%22);%0A%09%7D%0A%0A%09public CommandResponse restart() %7B%0A%09%09throw new UnsupportedOperationException(%22Not implemented yet.%22);%0A%09%7D%0A%0A%09public boolean isRunning() %7B%0A%09%09throw new UnsupportedOperationException(%22Not implemented yet.%22);%0A%09%7D%0A%0A%09public void setServiceProperties(ServiceProperties properties) %7B%0A%09%09this.properties = properties;%0A%09%7D%0A%0A%09public ServiceProperties getServiceProperties() %7B%0A%09%09return this.properties;%0A%09%7D%0A%09%0A%09protected Integer getPid() %7B%0A%09%09if (StringHelper.isEmpty(this.properties.getPattern())) %7B%0A%09%09%09throw new ServiceResourceException(%22Cannot get process id. No pattern provided.%22);%0A%09%09%7D%0A%09%09%0A%09%09throw new UnsupportedOperationException(%22Not implemented yet.%22);%0A%09%7D%0A%7D

Create abstract base class to service implementations.