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

co.pishfa.accelerate.service.ServicesService Maven / Gradle / Ivy

The newest version!
/**
 * 
 */
package co.pishfa.accelerate.service;

import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;
import javax.inject.Inject;

import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import org.apache.cxf.frontend.ServerFactoryBean;
import org.apache.cxf.jaxb.JAXBDataBinding;
import org.apache.cxf.jaxrs.JAXRSBindingFactory;
import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

import co.pishfa.accelerate.cdi.CdiUtils;
import co.pishfa.accelerate.core.FrameworkStartedEvent;
import org.slf4j.Logger;

/**
 * @author Taha Ghasemi 
 * 
 */
@ApplicationScoped
public class ServicesService {

	@Inject
	Logger log;

	public void register(@Observes FrameworkStartedEvent event) {
		for (Class service : ServiceExtention.getWebServices()) {
			ServerFactoryBean serverFactory = new JaxWsServerFactoryBean();
			serverFactory.setServiceBean(CdiUtils.getInstance(service));
			serverFactory.setServiceClass(service);
			serverFactory.setAddress("/" + service.getSimpleName());
			serverFactory.setDataBinding(new JAXBDataBinding());
			serverFactory.setBus(AccelerateBusFactory.getDefaultBus());
			serverFactory.create();
		}

		for (Class resource : ServiceExtention.getResources()) {
			JAXRSServerFactoryBean serverFactory = new JAXRSServerFactoryBean();
			serverFactory.setResourceProvider(new CdiResourceProvider(resource));
			serverFactory.setBindingId(JAXRSBindingFactory.JAXRS_BINDING_ID);
			serverFactory.setAddress("/" + resource.getSimpleName());
			serverFactory.setProvider(new JacksonJsonProvider());
			serverFactory.setBus(AccelerateBusFactory.getDefaultBus());
			serverFactory.create();
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy