Changeset 11


Ignore:
Timestamp:
05/17/13 15:41:11 (12 years ago)
Author:
gguerrero
Message:

Fixed dynamic Serializer (by default is JavaImp?).
Added compression parameter (by default is false).

Location:
trunk/objectmq/src/omq
Files:
1 added
4 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/objectmq/src/omq/common/broker/Broker.java

    r9 r11  
    77import omq.client.remote.response.ResponseListener;
    88import omq.common.remote.OmqConnectionFactory;
     9import omq.common.util.Environment;
     10import omq.exception.EnvironmentException;
    911import omq.exception.RemoteException;
    1012import omq.server.remote.request.RemoteObject;
     
    1618        private static Connection connection;
    1719        private static Channel channel;
    18         private static Properties environment;
    1920
    2021        public static void initBroker(Properties env) throws Exception {
    21                 if (environment == null) {
    22                         environment = env;
     22                try {
     23                        Environment.getEnvironment();
     24                } catch (EnvironmentException ex) { // environment not set.
     25                        Environment.setEnvironment(env);
    2326                        connection = OmqConnectionFactory.getConnection(env);
    2427                        channel = connection.createChannel();
     
    3740        public static Remote lookup(String reference, Class<?> contract) throws RemoteException {
    3841                try {
     42                        Properties environment = Environment.getEnvironment();
     43
    3944                        if (ResponseListener.isVoid()) {
    4045                                ResponseListener.init(environment);
     
    5459        public static void bind(String reference, RemoteObject remote) throws RemoteException {
    5560                try {
     61                        Properties environment = Environment.getEnvironment();
    5662                        remote.start(reference, environment);
    5763                } catch (Exception e) {
  • trunk/objectmq/src/omq/common/util/Environment.java

    r10 r11  
    1111 *
    1212 */
    13 public class RevoEnvironment {
     13public class Environment {
    1414        private static Properties env;
    1515
  • trunk/objectmq/src/omq/common/util/ParameterQueue.java

    r9 r11  
    1212         */
    1313
     14        public static String SERIALIZERNAME = "revo.serializer";
     15        public static String ENABLECOMPRESSION = "revo.compression";
     16       
    1417        public static String SERVER_HOST = "revo.host";
    1518        public static String SERVER_PORT = "revo.port";
  • trunk/objectmq/src/omq/common/util/Serializer.java

    r10 r11  
    11package omq.common.util;
     2
     3import java.io.IOException;
     4import java.util.Properties;
    25
    36import omq.common.message.Request;
    47import omq.common.message.Response;
    5 import omq.common.util.Serializers.GsonImp;
    68import omq.common.util.Serializers.ISerializer;
     9import omq.exception.EnvironmentException;
    710import omq.exception.SerializerException;
    811import omq.server.remote.request.RemoteObject;
     
    1619        public static ISerializer serializer;
    1720
    18         public static ISerializer getInstance() {
     21        private static Boolean getEnableCompression(){
     22                Boolean enableCompression = false;
     23                try {
     24                        Properties env = Environment.getEnvironment();
     25                        enableCompression = Boolean.valueOf(env.getProperty(ParameterQueue.ENABLECOMPRESSION, "false"));
     26                } catch (EnvironmentException e) { }
     27               
     28                return enableCompression;
     29        }
     30       
     31        public static ISerializer getInstance() throws SerializerException {           
    1932                if (serializer == null) {
    20                         serializer = new GsonImp();
    21                         // serializer = new JavaImp();
    22                         // serializer = new KryoImp();
     33                        try{
     34                                Properties env = Environment.getEnvironment();                         
     35                                String className = env.getProperty(ParameterQueue.SERIALIZERNAME, "omq.common.util.Serializers.JavaImp");
     36                               
     37                                serializer = (ISerializer) Class.forName(className).newInstance();
     38                        } catch (Exception ex){
     39                                throw new SerializerException(ex.getMessage(), ex);
     40                        }
    2341                }
     42               
    2443                return serializer;
    2544        }
     
    2746        public static byte[] serialize(Object obj) throws SerializerException {
    2847                ISerializer instance = getInstance();
    29                 return instance.serialize(obj);
     48               
     49                Boolean enableCompression = getEnableCompression();             
     50                if(enableCompression){
     51                        byte[] objSerialized = instance.serialize(obj);
     52                        try {
     53                                return Zipper.zip(objSerialized);
     54                        } catch (IOException e) {
     55                                throw new SerializerException(e.getMessage(), e);
     56                        }                       
     57                } else{
     58                        return instance.serialize(obj);
     59                }               
    3060        }
    3161
    3262        public static Request deserializeRequest(byte[] bytes, RemoteObject obj) throws SerializerException {
    3363                ISerializer instance = getInstance();
    34                 return instance.deserializeRequest(bytes, obj);
     64                               
     65                Boolean enableCompression = getEnableCompression();
     66                if(enableCompression){
     67                        try {
     68                                byte[] unZippedBytes = Zipper.unzip(bytes);
     69                                return instance.deserializeRequest(unZippedBytes, obj);
     70                        } catch (IOException e) {
     71                                throw new SerializerException(e.getMessage(), e);
     72                        }
     73                } else{
     74                        return instance.deserializeRequest(bytes, obj);
     75                }                       
    3576        }
    3677
    3778        public static Response deserializeResponse(byte[] bytes, Class<?> type) throws SerializerException {
    3879                ISerializer instance = getInstance();
    39                 return instance.deserializeResponse(bytes, type);
     80               
     81                Boolean enableCompression = getEnableCompression();
     82                if(enableCompression){
     83                        try {
     84                                byte[] unZippedBytes = Zipper.unzip(bytes);
     85                                return instance.deserializeResponse(unZippedBytes, type);
     86                        } catch (IOException e) {
     87                                throw new SerializerException(e.getMessage(), e);
     88                        }
     89                } else{
     90                        return instance.deserializeResponse(bytes, type);
     91                }                       
    4092        }
    4193}
  • trunk/objectmq/src/omq/ztest/calculator/CalculatorTest.java

    r9 r11  
    2222
    2323                // Get host info of rabbimq (where it is)
    24                 env.setProperty(ParameterQueue.SERVER_HOST, "127.0.0.1");
     24                env.setProperty(ParameterQueue.SERVER_HOST, "10.30.239.228");
    2525                env.setProperty(ParameterQueue.SERVER_PORT, "5672");
     26                env.setProperty(ParameterQueue.SERIALIZERNAME, "omq.common.util.Serializers.KryoImp");
     27                env.setProperty(ParameterQueue.ENABLECOMPRESSION, "true");
    2628
    2729                // Get info about the queue & the exchange where the RemoteListener will
     
    4446
    4547                // Set host info of rabbimq (where it is)
    46                 env.setProperty(ParameterQueue.SERVER_HOST, "127.0.0.1");
     48                env.setProperty(ParameterQueue.SERVER_HOST, "10.30.239.228");
    4749                env.setProperty(ParameterQueue.SERVER_PORT, "5672");
    48 
     50                env.setProperty(ParameterQueue.SERIALIZERNAME, "omq.common.util.Serializers.KryoImp");
     51                env.setProperty(ParameterQueue.ENABLECOMPRESSION, "true");
     52               
    4953                // Set info about where the message will be sent
    5054                env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange");
     
    5761
    5862                Broker.initBroker(env);
    59 
    6063                remoteCalc = (Calculator) Broker.lookup(Calculator.class.getSimpleName(), Calculator.class);
    6164        }
Note: See TracChangeset for help on using the changeset viewer.