Search in sources :

Example 1 with MetricsFeature

use of org.apache.cxf.metrics.MetricsFeature in project cxf by apache.

the class ServerMisc method run.

protected void run() {
    Factory factory = new PerRequestFactory(DocLitWrappedCodeFirstServiceImpl.class);
    factory = new PooledFactory(factory, 4);
    JAXWSMethodInvoker invoker = new JAXWSMethodInvoker(factory);
    JaxWsServerFactoryBean factoryBean;
    Map<String, Object> properties = new HashMap<>();
    properties.put("bus.jmx.usePlatformMBeanServer", Boolean.TRUE);
    properties.put("bus.jmx.enabled", Boolean.TRUE);
    Bus b = new CXFBusFactory().createBus(null, properties);
    setBus(b);
    MetricRegistry registry = new MetricRegistry();
    CodahaleMetricsProvider.setupJMXReporter(b, registry);
    b.setExtension(registry, MetricRegistry.class);
    factoryBean = new JaxWsServerFactoryBean();
    factoryBean.setBus(b);
    factoryBean.setAddress(DOCLIT_CODEFIRST_URL);
    factoryBean.setServiceClass(DocLitWrappedCodeFirstServiceImpl.class);
    factoryBean.setFeatures(Arrays.asList(new MetricsFeature()));
    factoryBean.setInvoker(invoker);
    servers.add(factoryBean.create());
    factoryBean = new JaxWsServerFactoryBean();
    factoryBean.setBus(b);
    factoryBean.setAddress(DOCLIT_CODEFIRST_URL_XMLBINDING);
    factoryBean.setServiceClass(DocLitWrappedCodeFirstServiceImpl.class);
    factoryBean.setFeatures(Arrays.asList(new MetricsFeature()));
    factoryBean.setInvoker(invoker);
    factoryBean.setBindingId("http://cxf.apache.org/bindings/xformat");
    factoryBean.setWsdlURL("cxf6866.wsdl");
    servers.add(factoryBean.create());
    factoryBean = new JaxWsServerFactoryBean();
    factoryBean.setAddress(DOCLIT_CODEFIRST_SETTINGS_URL);
    factoryBean.setServiceClass(DocLitWrappedCodeFirstServiceImpl.class);
    factoryBean.setInvoker(invoker);
    factoryBean.getServiceFactory().setAnonymousWrapperTypes(true);
    factoryBean.getServiceFactory().getServiceConfigurations().add(0, new AbstractServiceConfiguration() {

        public Boolean isWrapperPartNillable(MessagePartInfo mpi) {
            return Boolean.TRUE;
        }

        public Long getWrapperPartMinOccurs(MessagePartInfo mpi) {
            return Long.valueOf(1L);
        }
    });
    servers.add(factoryBean.create());
    // Object implementor4 = new DocLitWrappedCodeFirstServiceImpl();
    // endpoints.add(Endpoint.publish(DOCLIT_CODEFIRST_URL, implementor4));
    Object implementor7 = new DocLitBareCodeFirstServiceImpl();
    EndpointImpl ep = (EndpointImpl) Endpoint.publish(DOCLITBARE_CODEFIRST_URL, implementor7);
    ep.getServer().getEndpoint().getInInterceptors().add(new SAAJInInterceptor());
    endpoints.add(ep);
    Object implementor6 = new InterfaceInheritTestImpl();
    endpoints.add(Endpoint.publish(DOCLIT_CODEFIRST_BASE_URL, implementor6));
    Object implementor1 = new AnonymousComplexTypeImpl();
    String address = "http://localhost:" + PORT + "/anonymous_complex_typeSOAP";
    endpoints.add(Endpoint.publish(address, implementor1));
    Object implementor2 = new JaxbElementTestImpl();
    address = "http://localhost:" + PORT + "/jaxb_element_test";
    endpoints.add(Endpoint.publish(address, implementor2));
    Object implementor3 = new OrderedParamHolderImpl();
    address = "http://localhost:" + PORT + "/ordered_param_holder/";
    endpoints.add(Endpoint.publish(address, implementor3));
    // Object implementor4 = new DocLitWrappedCodeFirstServiceImpl();
    // endpoints.add(Endpoint.publish(DOCLIT_CODEFIRST_URL, implementor4));
    Object implementor5 = new RpcLitCodeFirstServiceImpl();
    endpoints.add(Endpoint.publish(RPCLIT_CODEFIRST_URL, implementor5));
    endpoints.add(Endpoint.publish("http://localhost:" + PORT + "/InheritContext/InheritPort", new InheritImpl()));
    endpoints.add(Endpoint.publish(CXF_5064_URL, new SOAPHeaderServiceImpl()));
}
Also used : HashMap(java.util.HashMap) MetricsFeature(org.apache.cxf.metrics.MetricsFeature) Factory(org.apache.cxf.service.invoker.Factory) PooledFactory(org.apache.cxf.service.invoker.PooledFactory) PerRequestFactory(org.apache.cxf.service.invoker.PerRequestFactory) CXFBusFactory(org.apache.cxf.bus.CXFBusFactory) MessagePartInfo(org.apache.cxf.service.model.MessagePartInfo) PooledFactory(org.apache.cxf.service.invoker.PooledFactory) JaxWsServerFactoryBean(org.apache.cxf.jaxws.JaxWsServerFactoryBean) CXFBusFactory(org.apache.cxf.bus.CXFBusFactory) JaxbElementTestImpl(org.apache.cxf.jaxb_element_test.JaxbElementTestImpl) Bus(org.apache.cxf.Bus) SOAPHeaderServiceImpl(org.apache.cxf.systest.jaxws.cxf5064.SOAPHeaderServiceImpl) MetricRegistry(com.codahale.metrics.MetricRegistry) EndpointImpl(org.apache.cxf.jaxws.EndpointImpl) JAXWSMethodInvoker(org.apache.cxf.jaxws.JAXWSMethodInvoker) SAAJInInterceptor(org.apache.cxf.binding.soap.saaj.SAAJInInterceptor) AbstractServiceConfiguration(org.apache.cxf.wsdl.service.factory.AbstractServiceConfiguration) AnonymousComplexTypeImpl(org.apache.cxf.anonymous_complex_type.AnonymousComplexTypeImpl) OrderedParamHolderImpl(org.apache.cxf.ordered_param_holder.OrderedParamHolderImpl) PerRequestFactory(org.apache.cxf.service.invoker.PerRequestFactory)

Example 2 with MetricsFeature

use of org.apache.cxf.metrics.MetricsFeature in project cxf by apache.

the class Client method run.

@Override
public void run() {
    long start = System.currentTimeMillis();
    int x = 0;
    boolean exceeded = false;
    try (Greeter port = service.getSoapPort(new MetricsFeature())) {
        port.getRequestContext().put(MetricsProvider.CLIENT_ID, username);
        port.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, username);
        port.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password");
        try {
            do {
                if (doStop) {
                    break;
                }
                port.greetMe(username + "-" + x);
                x++;
            } while (x < 10000);
        } catch (javax.xml.ws.WebServiceException wse) {
            if (wse.getCause().getMessage().contains("429")) {
                // exceeded are allowable number of requests
                exceeded = true;
            } else {
                wse.printStackTrace();
            }
        }
        long end = System.currentTimeMillis();
        double rate = x * 1000 / (end - start);
        System.out.println(username + " finished " + x + " invocations: " + rate + " req/sec " + (exceeded ? "(exceeded max)" : ""));
        try {
            // sleep for a few seconds before the client is closed so things can be seen in JMX
            Thread.sleep(10000);
        } catch (InterruptedException e) {
        // ignore
        }
    } catch (Exception e1) {
        e1.printStackTrace();
    }
}
Also used : MetricsFeature(org.apache.cxf.metrics.MetricsFeature) Greeter(org.apache.hello_world_soap_http.Greeter)

Aggregations

MetricsFeature (org.apache.cxf.metrics.MetricsFeature)2 MetricRegistry (com.codahale.metrics.MetricRegistry)1 HashMap (java.util.HashMap)1 Bus (org.apache.cxf.Bus)1 AnonymousComplexTypeImpl (org.apache.cxf.anonymous_complex_type.AnonymousComplexTypeImpl)1 SAAJInInterceptor (org.apache.cxf.binding.soap.saaj.SAAJInInterceptor)1 CXFBusFactory (org.apache.cxf.bus.CXFBusFactory)1 JaxbElementTestImpl (org.apache.cxf.jaxb_element_test.JaxbElementTestImpl)1 EndpointImpl (org.apache.cxf.jaxws.EndpointImpl)1 JAXWSMethodInvoker (org.apache.cxf.jaxws.JAXWSMethodInvoker)1 JaxWsServerFactoryBean (org.apache.cxf.jaxws.JaxWsServerFactoryBean)1 OrderedParamHolderImpl (org.apache.cxf.ordered_param_holder.OrderedParamHolderImpl)1 Factory (org.apache.cxf.service.invoker.Factory)1 PerRequestFactory (org.apache.cxf.service.invoker.PerRequestFactory)1 PooledFactory (org.apache.cxf.service.invoker.PooledFactory)1 MessagePartInfo (org.apache.cxf.service.model.MessagePartInfo)1 SOAPHeaderServiceImpl (org.apache.cxf.systest.jaxws.cxf5064.SOAPHeaderServiceImpl)1 AbstractServiceConfiguration (org.apache.cxf.wsdl.service.factory.AbstractServiceConfiguration)1 Greeter (org.apache.hello_world_soap_http.Greeter)1