Example #1
0
  @RequestMapping
  public @ResponseBody String dispatch(HttpServletRequest request) throws Exception {
    String path = request.getRequestURI();
    if (path.indexOf(request.getContextPath()) > -1) {
      path = path.substring(request.getContextPath().length());
    }
    List<Service> services = serviceRepository.findAll();
    for (Service service : services) {
      if (service.getUrl().matches(path)) {
        System.out.println("MATCH: " + service.getUrl());
        SoapService soap = new SoapService();
        soap.setBody(request.getInputStream());
        System.out.println(soap.dispatch());
      }
    }
    System.out.println("PATH " + request.getServletPath());
    System.out.println("QUERY " + request.getQueryString());
    System.out.println("URL " + request.getRequestURL());

    System.out.println("CONTEXT " + request.getContextPath());
    System.out.println("URI " + request.getRequestURI());

    System.out.println(serviceRepository.count());

    return "RESPONSE: " + request;
  }
 @Override
 public void saveWsdl(SubsystemId subsystemId, ServiceId serviceId, String wsdlString) {
   Assert.notNull(subsystemId);
   Assert.notNull(serviceId);
   Service oldService;
   // bit ugly this one, would be a little cleaner if
   // https://jira.spring.io/browse/DATAJPA-209 was resolved
   if (serviceId.getServiceVersion() == null) {
     oldService =
         serviceRepository.findActiveNullVersionByNaturalKey(
             subsystemId.getXRoadInstance(),
             subsystemId.getMemberClass(),
             subsystemId.getMemberCode(),
             subsystemId.getSubsystemCode(),
             serviceId.getServiceCode());
   } else {
     oldService =
         serviceRepository.findActiveByNaturalKey(
             subsystemId.getXRoadInstance(),
             subsystemId.getMemberClass(),
             subsystemId.getMemberCode(),
             subsystemId.getSubsystemCode(),
             serviceId.getServiceCode(),
             serviceId.getServiceVersion());
   }
   if (oldService == null) {
     throw new IllegalStateException("service " + serviceId + " not found!");
   }
   LocalDateTime now = LocalDateTime.now();
   Wsdl wsdl = new Wsdl();
   wsdl.setData(wsdlString);
   Wsdl oldWsdl = oldService.getWsdl();
   if (oldWsdl == null) {
     wsdl.initializeExternalId();
     wsdl.getStatusInfo().setTimestampsForNew(now);
     oldService.setWsdl(wsdl);
     wsdl.setService(oldService);
     wsdlRepository.save(wsdl);
   } else {
     if (oldWsdl.getStatusInfo().isRemoved()) {
       // resurrect
       oldWsdl.setData(wsdl.getData());
       oldWsdl.getStatusInfo().setChanged(now);
       oldWsdl.getStatusInfo().setRemoved(null);
       oldWsdl.getStatusInfo().setFetched(now);
     } else {
       // update existing
       boolean wsdlChanged = !oldWsdl.getData().equals(wsdl.getData());
       if (wsdlChanged) {
         oldWsdl.getStatusInfo().setChanged(now);
         oldWsdl.setData(wsdl.getData());
       }
       oldWsdl.getStatusInfo().setFetched(now);
     }
   }
 }