001    package org.shiftone.jrat.core.spi;
002    
003    
004    import org.shiftone.jrat.core.shutdown.ShutdownListener;
005    
006    import java.io.OutputStream;
007    import java.io.PrintWriter;
008    import java.io.Serializable;
009    import java.io.Writer;
010    import java.util.Properties;
011    
012    
013    /**
014     * @author jeff@shiftone.org (Jeff Drost)
015     */
016    public interface RuntimeContext {
017    
018        void writeSerializable(String fileName, Serializable serializable);
019    
020        OutputStream createOutputStream(String fileName);
021    
022        PrintWriter createPrintWriter(String fileName);
023    
024        Writer createWriter(String fileName);
025    
026        void registerMBean(Object mbean);
027    
028        void registerMBean(Object mbean, String objectNameText);
029    
030        void register(Commandlet commandlet);
031    
032        long uniqNumber();
033    
034        void registerShutdownListener(ShutdownListener listener);
035    
036        long getStartTimeMs();
037    
038        Properties getSystemPropertiesAtStartup();
039    
040        String getHostAddress();
041    
042        String getHostName();
043    }