001/* 002 GRANITE DATA SERVICES 003 Copyright (C) 2011 GRANITE DATA SERVICES S.A.S. 004 005 This file is part of Granite Data Services. 006 007 Granite Data Services is free software; you can redistribute it and/or modify 008 it under the terms of the GNU Library General Public License as published by 009 the Free Software Foundation; either version 2 of the License, or (at your 010 option) any later version. 011 012 Granite Data Services is distributed in the hope that it will be useful, but 013 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 014 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License 015 for more details. 016 017 You should have received a copy of the GNU Library General Public License 018 along with this library; if not, see <http://www.gnu.org/licenses/>. 019*/ 020 021package org.granite.gravity; 022 023import javax.servlet.ServletContext; 024 025import org.granite.config.GraniteConfig; 026import org.granite.config.flex.ServicesConfig; 027import org.granite.context.GraniteContext; 028import org.granite.gravity.adapters.ServiceAdapter; 029 030import flex.messaging.messages.AsyncMessage; 031import flex.messaging.messages.Message; 032 033/** 034 * @author William DRAI 035 */ 036public class GravityProxy implements Gravity { 037 038 private ServletContext servletContext; 039 040 public GravityProxy(ServletContext servletContext) { 041 this.servletContext = servletContext; 042 } 043 044 private Gravity getGravity() { 045 return GravityManager.getGravity(servletContext); 046 } 047 048 /////////////////////////////////////////////////////////////////////////// 049 // Granite/Services configs access. 050 051 public GravityConfig getGravityConfig() { 052 return getGravity().getGravityConfig(); 053 } 054 public ServicesConfig getServicesConfig() { 055 return getGravity().getServicesConfig(); 056 } 057 public GraniteConfig getGraniteConfig() { 058 return getGravity().getGraniteConfig(); 059 } 060 061 /////////////////////////////////////////////////////////////////////////// 062 // Properties. 063 064 public boolean isStarted() { 065 return getGravity().isStarted(); 066 } 067 068 /////////////////////////////////////////////////////////////////////////// 069 // Operations. 070 071 public GraniteContext initThread(String sessionId, String clientType) { 072 return getGravity().initThread(sessionId, clientType); 073 } 074 public void releaseThread() { 075 getGravity().releaseThread(); 076 } 077 078 public ServiceAdapter getServiceAdapter(String messageType, String destinationId) { 079 return getGravity().getServiceAdapter(messageType, destinationId); 080 } 081 082 public void start() throws Exception { 083 getGravity().start(); 084 } 085 public void reconfigure(GravityConfig gravityConfig, GraniteConfig graniteConfig) { 086 getGravity().reconfigure(gravityConfig, graniteConfig); 087 } 088 public void stop() throws Exception { 089 getGravity().stop(); 090 } 091 public void stop(boolean now) throws Exception { 092 getGravity().stop(now); 093 } 094 095 public <C extends Channel> C getChannel(ChannelFactory<C> channelFactory, String channelId) { 096 return getGravity().getChannel(channelFactory, channelId); 097 } 098 public Channel removeChannel(String channelId) { 099 return getGravity().removeChannel(channelId); 100 } 101 public boolean access(String channelId) { 102 return getGravity().access(channelId); 103 } 104 public void execute(AsyncChannelRunner runnable) { 105 getGravity().execute(runnable); 106 } 107 public boolean cancel(AsyncChannelRunner runnable) { 108 return getGravity().cancel(runnable); 109 } 110 111 public Message handleMessage(ChannelFactory<?> channelFactory, Message message) { 112 return getGravity().handleMessage(channelFactory, message); 113 } 114 public Message handleMessage(ChannelFactory<?> channelFactory, Message message, boolean skipInterceptor) { 115 return getGravity().handleMessage(channelFactory, message, skipInterceptor); 116 } 117 public Message publishMessage(AsyncMessage message) { 118 return getGravity().publishMessage(message); 119 } 120 public Message publishMessage(Channel fromChannel, AsyncMessage message) { 121 return getGravity().publishMessage(fromChannel, message); 122 } 123}