Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/**
* SCA4J
* Copyright (c) 2009 - 2099 Service Symphony Ltd
*
* Licensed to you under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. A copy of the license
* is included in this distrubtion or you may obtain a copy at
*
* http://www.opensource.org/licenses/apache2.0.php
*
* 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.
*
* This project contains code licensed from the Apache Software Foundation under
* the Apache License, Version 2.0 and original code from project contributors.
*
*
* Original Codehaus Header
*
* Copyright (c) 2007 - 2008 fabric3 project contributors
*
* Licensed to you under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. A copy of the license
* is included in this distrubtion or you may obtain a copy at
*
* http://www.opensource.org/licenses/apache2.0.php
*
* 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.
*
* This project contains code licensed from the Apache Software Foundation under
* the Apache License, Version 2.0 and original code from project contributors.
*
* Original Apache Header
*
* Copyright (c) 2005 - 2006 The Apache Software Foundation
*
* Apache Tuscany is an effort undergoing incubation at The Apache Software
* Foundation (ASF), sponsored by the Apache Web Services PMC. Incubation is
* required of all newly accepted projects until a further review indicates that
* the infrastructure, communications, and decision making process have stabilized
* in a manner consistent with other successful ASF projects. While incubation
* status is not necessarily a reflection of the completeness or stability of the
* code, it does indicate that the project has yet to be fully endorsed by the ASF.
*
* This product includes software developed by
* The Apache Software Foundation (http://www.apache.org/).
*/
package org.sca4j.jmx.runtime;
import java.util.Map;
import javax.management.Attribute;
import javax.management.AttributeNotFoundException;
import javax.management.InvalidAttributeValueException;
import javax.management.MBeanException;
import javax.management.MBeanInfo;
import javax.management.ReflectionException;
import org.sca4j.spi.invocation.CallFrame;
import org.sca4j.spi.invocation.Message;
import org.sca4j.spi.invocation.MessageImpl;
import org.sca4j.spi.invocation.WorkContext;
import org.sca4j.spi.wire.Interceptor;
/**
* @version $Rev: 4100 $ $Date: 2008-05-03 10:20:03 +0100 (Sat, 03 May 2008) $
*/
public class UnoptimizedMBean extends AbstractMBean {
private final Map getters;
private final Map setters;
private final Map operations;
public UnoptimizedMBean(MBeanInfo mbeanInfo,
Map getters,
Map setters,
Map operations) {
super(mbeanInfo);
this.getters = getters;
this.setters = setters;
this.operations = operations;
}
public Object getAttribute(String s) throws AttributeNotFoundException, MBeanException, ReflectionException {
Interceptor interceptor = getters.get(s);
if (interceptor == null) {
throw new AttributeNotFoundException(s);
}
return invoke(interceptor, null);
}
public void setAttribute(Attribute attribute)
throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException {
Interceptor interceptor = setters.get(attribute.getName());
if (interceptor == null) {
throw new AttributeNotFoundException(attribute.getName());
}
invoke(interceptor, new Object[]{attribute.getValue()});
}
public Object invoke(String s, Object[] objects, String[] strings) throws MBeanException, ReflectionException {
OperationKey operation = new OperationKey(s, strings);
Interceptor interceptor = operations.get(operation);
if (interceptor == null) {
throw new ReflectionException(new NoSuchMethodException(operation.toString()));
}
return invoke(interceptor, objects);
}
Object invoke(Interceptor interceptor, Object[] args) throws MBeanException, ReflectionException {
WorkContext workContext = new WorkContext();
workContext.addCallFrame(new CallFrame());
Message message = new MessageImpl(args, false, workContext);
message = interceptor.invoke(message);
if (message.isFault()) {
throw new MBeanException((Exception) message.getBody());
} else {
return message.getBody();
}
}
}