All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.objectweb.petals.engine.pojo.PojoSE Maven / Gradle / Ivy

There is a newer version: 1.4
Show newest version
/**
 * PETALS - PETALS Services Platform.
 * Copyright (c) 2005 EBM Websourcing, http://www.ebmwebsourcing.com/
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 * -------------------------------------------------------------------------
 * $Id: PojoSE.java 676 2006-06-27 15:44:03Z alouis $
 * -------------------------------------------------------------------------
 */

package org.objectweb.petals.engine.pojo;

import java.util.HashMap;
import java.util.Map;

import javax.jbi.JBIException;
import javax.jbi.component.ComponentContext;
import javax.jbi.servicedesc.ServiceEndpoint;

import org.objectweb.petals.component.common.HandlingException;
import org.objectweb.petals.component.common.se.AbstractServiceEngine;
import org.objectweb.petals.component.common.su.ServiceUnitDataHandler;
import org.objectweb.petals.component.common.su.SimpleServiceUnitManager;
import org.objectweb.petals.component.common.util.MessageExchangeWrapper;
import org.objectweb.petals.tools.jbicommon.descriptor.Extensions;

public class PojoSE extends AbstractServiceEngine {

	private Map pojos;

	public void init(final ComponentContext compContext) throws JBIException {
		super.init(compContext);

		pojos = new HashMap();

		// set the SU listener that will perform extra process on SU deployment
		PojoServiceUnitListener suListener = new PojoServiceUnitListener(this,
				pojos);
		setServiceUnitListener(suListener);
	}

	@Override
	protected boolean onExchange(MessageExchangeWrapper exchangeWrapper, Extensions extensions)
			throws HandlingException {
		ServiceEndpoint ep = exchangeWrapper.getEndpoint();

		ServiceUnitDataHandler suData = ((SimpleServiceUnitManager) getServiceUnitManager())
				.getSuDataHandlerForEp(ep);

		if (suData == null) {
			throw new HandlingException("No POJO is found for service "
					+ ep.getServiceName());
		}
		Pojo pojo = pojos.get(suData.getName());
		return pojo.callOnExchangeMethod(exchangeWrapper);
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy