Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.wicketstuff.cdi.glassfish;
 
Allows for Glassfish Proxy objects to be serialized and de-serialized when using CDI Works with GF 3.1 GF 3.1.2 GF 4.0 Must include glassfish-embedded-all for compile only it is provided in app server so don't add to the war Example Usage:
 
 protected void init()
 {
  super.init();
  try
  {
   BeanManager beanManager = (BeanManager)new InitialContext().lookup("java:comp/BeanManager");
 
   new CdiConfiguration(beanManager).setPropagation(ConversationPropagation.NONBOOKMARKABLE)
    .configure(this);
   getFrameworkSettings().setSerializer(
    new GlassfishSerializer(getFrameworkSettings().getSerializer()));
  }
  catch (NamingException ne)
  {
   throw new RuntimeException(ne);
  }
 }
 

Author(s):
jsarman
 
 public class GlassfishSerializer implements ISerializer
 {
 
 	private static final Logger LOG = LoggerFactory.getLogger(GlassfishSerializer.class);
 	private ISerializer fallback;
 
 	public GlassfishSerializer(ISerializer fallback)
 	{
 		Args.notNull(fallback"Fallback Serializer");
 		this. = fallback;
 	}
 
 	public Object deserialize(byte[] data) {
 		try {
 			handlers.add(getHandler());
 					getClass().getClassLoader(), truehandlers);
 			return q.readObject();
 		} catch (Exception e) {
 					"Caught Exception attempting to deserialize. Falling Back\n {} ",
 					e);
 			return .deserialize(data);
 		}
 	}
 
 	public byte[] serialize(Object object) {
 		try {
 			handlers.add(getHandler());
 					truehandlers);
 			oos.writeObject(object);
 			return baos.toByteArray();
catch (Exception e) {
					"Caught Exception attempting to serialize. Falling Back\n {} ",
					e);
			return .serialize(object);
		}
	}
	{
		return new GlassfishStreamHandler();
	}
	public static class GlassfishStreamHandler implements JavaEEObjectStreamHandler
	{
		{
			try
			{
				 = Class.forName("com.sun.ejb.spi.io.IndirectlySerializable");
				 = Class.forName("com.sun.ejb.spi.io.SerializableObjectFactory");
			}
			{
				 = Class.forName("com.sun.enterprise.container.common.spi.util.IndirectlySerializable");
				 = Class.forName("com.sun.enterprise.container.common.spi.util.SerializableObjectFactory");
			}
		}
		public Object replaceObject(Object objthrows IOException {
			Object result = obj;
			try {
							"getSerializableObjectFactory"new Class[] {})
							.invoke(objnew Object[] {}); 
				}
				.error("Caught Exception in replaceObject"e);
			}
			return result;
		}
		public Object resolveObject(Object objthrows IOException {
			Object result = obj;
			try {
						.getClass())) {
							"createObject"new Class[] {}).invoke(obj,
							new Object[] {});												
				}
				.error("Caught Exception in resolveObject"e);
			}
			return result;
		}
	}
New to GrepCode? Check out our FAQ X