001
014
015 package com.liferay.portal.kernel.resiliency.spi;
016
017 import com.liferay.portal.kernel.process.ProcessExecutor;
018
019 import java.util.concurrent.ConcurrentMap;
020
021
024 public class SPIUtil {
025
026 public static SPI getSPI() {
027 if (_spi == null) {
028 throw new IllegalStateException(
029 "Current process is not an SPI instance");
030 }
031
032 return _spi;
033 }
034
035 public static boolean isSPI() {
036 if (_spi == null) {
037 return false;
038 }
039 else {
040 return true;
041 }
042 }
043
044 private static final SPI _spi;
045
046 static {
047 ConcurrentMap<String, Object> attributes =
048 ProcessExecutor.ProcessContext.getAttributes();
049
050 _spi = (SPI)attributes.remove(SPI.SPI_INSTANCE_PUBLICATION_KEY);
051 }
052
053 }