public static void convertAllArgs(MethodCallRequest request) { convertAllArgs(request.getMethodCall()); }
private MethodCallRequest parseMethodCall(Document input) throws JAXBException { MethodCallRequest request = unmarshaller.unmarshal(input, MethodCallRequest.class).getValue(); MethodCall result = request.getMethodCall(); List<String> classNames = result.getClasses(); Class<?>[] clazzes = new Class<?>[classNames.size()]; ClassLoader cl = this.getClass().getClassLoader(); for (int i = 0; i < classNames.size(); i++) { try { clazzes[i] = cl.loadClass(classNames.get(i)); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } } JAXBContext jaxbContext = JAXBContext.newInstance(clazzes); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); Object[] args = result.getArgs(); for (int i = 0; i < args.length; i++) { args[i] = unmarshaller.unmarshal((Node) args[i], clazzes[i]).getValue(); } return request; }
private Document serializeRequest(MethodCallRequest result) { DOMResult domResult = new DOMResult(); try { @SuppressWarnings("unchecked") List<Class<?>> classes = ClassUtils.convertClassNamesToClasses(result.getMethodCall().getClasses()); if (classes.contains(null)) { throw new FilterException("Could not load all required classes. Require: " + result.getMethodCall().getClasses() + " got: " + classes); } classes.add(MethodCallRequest.class); JAXBContext jaxbContext = JAXBContext.newInstance(classes.toArray(new Class<?>[classes.size()])); Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.marshal(new JAXBElement<MethodCallRequest>(new QName(MethodCallRequest.class.getSimpleName()), MethodCallRequest.class, result), domResult); } catch (JAXBException e) { throw new FilterException(e); } return (Document) domResult.getNode(); }
@Override protected MethodResultMessage doFilter(MethodCallRequest input, Map<String, Object> metadata) { metadata.put("callId", input.getCallId()); metadata.put("answer", input.isAnswer()); MethodResult result = requestHandler.handleCall(input.getMethodCall()); return new MethodResultMessage(result, input.getCallId()); }
@Override public MethodResultMessage doFilter(MethodCallRequest input, Map<String, Object> metadata) throws FilterException { Object[] parameters = input.getMethodCall().getArgs(); LOGGER.debug("entered EKBProxyIncomingFilter"); if (parameters != null) { List<String> classes = input.getMethodCall().getClasses(); List<String> newClasses = new ArrayList<String>(); input.getMethodCall().setArgs(parameters); input.getMethodCall().setClasses(newClasses);
@Override public MethodResultMessage doFilter(MethodCallRequest input, Map<String, Object> metadata) throws FilterException { LOGGER.debug("entered EKBProxyOutgoingFilter"); Object[] parameters = input.getMethodCall().getArgs(); if (parameters != null) { List<String> classes = input.getMethodCall().getClasses(); List<String> newClasses = new ArrayList<String>(); input.getMethodCall().setArgs(parameters); input.getMethodCall().setClasses(newClasses);