001    package railo.loader.engine;
002    
003    import java.io.IOException;
004    import java.net.URL;
005    
006    import javax.servlet.ServletConfig;
007    import javax.servlet.ServletContext;
008    import javax.servlet.ServletException;
009    import javax.servlet.http.HttpServlet;
010    import javax.servlet.http.HttpServletRequest;
011    import javax.servlet.http.HttpServletResponse;
012    
013    import railo.runtime.CFMLFactory;
014    import railo.runtime.PageContext;
015    import railo.runtime.util.Cast;
016    import railo.runtime.util.Creation;
017    import railo.runtime.util.Decision;
018    import railo.runtime.util.Excepton;
019    import railo.runtime.util.HTTPUtil;
020    import railo.runtime.util.Operation;
021    import railo.runtime.util.ResourceUtil;
022    import railo.runtime.util.ZipUtil;
023    import railo.runtime.video.VideoUtil;
024    
025    /**
026     * wrapper for a CFMlEngine
027     */
028    public class CFMLEngineWrapper implements CFMLEngine, EngineChangeListener {
029        
030        private CFMLEngine engine;
031    
032        /**
033         * constructor of the class
034         * @param engine
035         */
036        public CFMLEngineWrapper(CFMLEngine engine) {
037            this.engine=engine;
038        }
039        
040        /**
041         * @see railo.loader.engine.CFMLEngine#addServletConfig(javax.servlet.ServletConfig)
042         */
043        public void addServletConfig(ServletConfig config) throws ServletException {
044            engine.addServletConfig(config);
045        }
046    
047        /**
048         * @see railo.loader.engine.CFMLEngine#serviceCFML(javax.servlet.http.HttpServlet, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
049         */
050        public void serviceCFML(HttpServlet servlet, HttpServletRequest req,
051                HttpServletResponse rsp) throws ServletException, IOException {
052            engine.serviceCFML(servlet,req,rsp);
053        }
054    
055        /**
056         * @see railo.loader.engine.CFMLEngine#serviceAMF(javax.servlet.http.HttpServlet, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
057         */
058        public void serviceAMF(HttpServlet servlet, HttpServletRequest req,
059                HttpServletResponse rsp) throws ServletException, IOException {
060            engine.serviceAMF(servlet,req,rsp);
061        }
062        
063        public void serviceFile(HttpServlet servlet, HttpServletRequest req,
064                HttpServletResponse rsp) throws ServletException, IOException {
065            engine.serviceFile(servlet,req,rsp);
066        }
067    
068        /**
069         * @see railo.loader.engine.CFMLEngine#getVersion()
070         */
071        public String getVersion() {
072            return engine.getVersion();
073        }
074    
075        /**
076         * @see railo.loader.engine.CFMLEngine#getUpdateType()
077         */
078        public String getUpdateType() {
079            return engine.getUpdateType();
080        }
081    
082        /**
083         * @see railo.loader.engine.CFMLEngine#getUpdateLocation()
084         */
085        public URL getUpdateLocation() {
086            return engine.getUpdateLocation();
087        }
088    
089        /**
090         * @see railo.loader.engine.CFMLEngine#can(int, java.lang.String)
091         */
092        public boolean can(int type, String password) {
093            return engine.can(type,password);
094        }
095    
096        /**
097         * @see railo.loader.engine.CFMLEngine#getCFMLEngineFactory()
098         */
099        public CFMLEngineFactory getCFMLEngineFactory() {
100            return engine.getCFMLEngineFactory();
101        }
102    
103        /**
104         * @see railo.loader.engine.CFMLEngine#reset()
105         */
106        public void reset() {
107            engine.reset();
108        }
109    
110        /**
111         * @see railo.loader.engine.CFMLEngine#reset(String)
112         */
113        public void reset(String configId) {
114            engine.reset(configId);
115        }
116    
117        /**
118         * @see railo.loader.engine.EngineChangeListener#onUpdate(railo.loader.engine.CFMLEngine)
119         */
120        public void onUpdate(CFMLEngine newEngine) {
121            this.engine=newEngine;
122        }
123    
124        /**
125         * @see railo.loader.engine.CFMLEngine#getCastUtil()
126         */
127        public Cast getCastUtil() {
128            return engine.getCastUtil();
129        }
130    
131        /**
132         * @see railo.loader.engine.CFMLEngine#getOperatonUtil()
133         */
134        public Operation getOperatonUtil() {
135            return engine.getOperatonUtil();
136        }
137    
138        /**
139         * @see railo.loader.engine.CFMLEngine#getDecisionUtil()
140         */
141        public Decision getDecisionUtil() {
142            return engine.getDecisionUtil();
143        }
144    
145        /**
146         * @see railo.loader.engine.CFMLEngine#getExceptionUtil()
147         */
148        public Excepton getExceptionUtil() {
149            return engine.getExceptionUtil();
150        }
151    
152        /**
153         * @see railo.loader.engine.CFMLEngine#getCreationUtil()
154         */
155        public Creation getCreationUtil() {
156            return engine.getCreationUtil();
157        }
158    
159            /**
160             *
161             * @see railo.loader.engine.CFMLEngine#getCFMLFactory(javax.servlet.ServletContext, javax.servlet.ServletConfig, javax.servlet.http.HttpServletRequest)
162             */
163            public CFMLFactory getCFMLFactory(ServletContext srvContext, ServletConfig srvConfig, HttpServletRequest req) throws ServletException {
164                    System.out.println(engine);
165                    return engine.getCFMLFactory(srvContext, srvConfig, req);
166            }
167    
168            /**
169             * @see railo.loader.engine.CFMLEngine#getBlazeDSUtil()
170             */
171            public Object getBlazeDSUtil() {
172                    return engine.getBlazeDSUtil();
173            }
174    
175            /**
176             * @see railo.loader.engine.CFMLEngine#getFDController()
177             */
178            public Object getFDController() {
179                    return engine.getFDController();
180            }
181    
182            /**
183             * @see railo.loader.engine.CFMLEngine#getHTTPUtil()
184             */
185            public HTTPUtil getHTTPUtil() {
186                    return engine.getHTTPUtil();
187            }
188    
189            /**
190             * @see railo.loader.engine.CFMLEngine#getResourceUtil()
191             */
192            public ResourceUtil getResourceUtil() {
193                    return engine.getResourceUtil();
194            }
195    
196            /**
197             * @see railo.loader.engine.CFMLEngine#getThreadPageContext()
198             */
199            public PageContext getThreadPageContext() {
200                    return engine.getThreadPageContext();
201            }
202    
203            /**
204             * @see railo.loader.engine.CFMLEngine#getVideoUtil()
205             */
206            public VideoUtil getVideoUtil() {
207                    return engine.getVideoUtil();
208            }
209    
210            /**
211             * @see railo.loader.engine.CFMLEngine#getZipUtil()
212             */
213            public ZipUtil getZipUtil() {
214                    return engine.getZipUtil();
215            }
216    
217            /**
218             * @see railo.loader.engine.CFMLEngine#getState()
219             */
220            public String getState() {
221                    return engine.getState();
222            }
223            
224            /**
225             * this interface is new to this class and not offically part of Railo 3.x, do not use outside the loader
226             * @param other
227             * @param checkReferenceEqualityOnly
228             * @return
229             */
230            public boolean equalTo(CFMLEngine other, boolean checkReferenceEqualityOnly) {
231                    while(other instanceof CFMLEngineWrapper)
232                            other=((CFMLEngineWrapper)other).engine;
233                    if(checkReferenceEqualityOnly) return engine==other;
234                    return engine.equals(other);
235            }
236    }