Package org.apache.juddi.portlets.client.service

Examples of org.apache.juddi.portlets.client.service.SubscriptionResponse


  private final static String UP = "Up";


  public SubscriptionResponse getSubscriptions()
  {
    SubscriptionResponse response = new SubscriptionResponse();
    response.setSuccess(true);
    HttpServletRequest request = getThreadLocalRequest();
    HttpSession session = request.getSession();
    String publisher = (String) session.getAttribute("UserName");
    Principal user = request.getUserPrincipal();
    if (publisher==null && user!=null) {
      logger.debug("UserPrincipal " + user);
      publisher = user.getName();
    }
    logger.debug("Publisher " + publisher + " sending getSubscription request..");
    try {
      boolean isMatchingClerk=false;
      UDDIClerk toClerk = null;
      UDDIClerkManager manager = WebHelper.getUDDIClerkManager(session.getServletContext());
      UDDINode homeNode = WebHelper.getUDDIHomeNode(session.getServletContext());
      Map<String, UDDIClerk> clerks = manager.getClientConfig().getUDDIClerks();
      for (UDDIClerk clerk : clerks.values()) {
        if (publisher.equals(clerk.getPublisher())
            && homeNode.getName().equals(clerk.getUDDINode().getName())) {
          toClerk = clerk;
        }
      }
      for (UDDIClerk clerk : clerks.values()) {
        if (publisher.equals(clerk.getPublisher())) {
          isMatchingClerk = true;
          Node modelNode = getSubscriptions(session, clerk, toClerk);
          modelNode.setClerkName(clerk.getName());
          response.getNodes().add(modelNode);
        }
      }
      if (! isMatchingClerk) {
        response.setMessage("This user is  not setup to own subscriptions");
      }
    } catch (Exception e) {
      response.setSuccess(false);
      response.setMessage(e.getMessage());
      response.setErrorCode("102");
    }
    return response;
  }
View Full Code Here


  public SubscriptionResponse saveSubscription(String userAuthToken, Subscription modelSubscription) {

    HttpServletRequest request = getThreadLocalRequest();
    HttpSession session = request.getSession();
    SubscriptionResponse response = new SubscriptionResponse();

    logger.info("Sending saveSubscriptions request..");
    try {
      //before sending this we need to ready the listener node
      UDDIClerkManager manager = WebHelper.getUDDIClerkManager(session.getServletContext());
      UDDINode homeNode = WebHelper.getUDDIHomeNode(session.getServletContext());
      UDDIClerk clerk = manager.getClientConfig().getUDDIClerks().get(modelSubscription.getFromClerkName());
      UDDIClerk toClerk = manager.getClientConfig().getUDDIClerks().get(modelSubscription.getToClerkName());
      if (toClerk==null) {
        String publisher = (String) session.getAttribute("UserName");
        Map<String, UDDIClerk> clerks = manager.getClientConfig().getUDDIClerks();
        for (UDDIClerk uddiClerk : clerks.values()) {
          if (publisher.equals(uddiClerk.getPublisher())
              && homeNode.getName().equals(uddiClerk.getUDDINode().getName())) {
            toClerk = uddiClerk;
          }
        }
      }
     
      logger.info("Updating homeNode server using jUDDI specific API..");
      Transport defaultTransport = WebHelper.getTransport(session.getServletContext());
      JUDDIApiPortType juddiApiService = defaultTransport.getJUDDIApiService();
     
      //making sure our node info is there and up to date.
      SaveNode saveNode = new SaveNode();
      saveNode.setAuthInfo(userAuthToken);
      saveNode.getNode().add(clerk.getApiClerk().getNode());
      juddiApiService.saveNode(saveNode);
      //making sure our clerk info is there and up to date
      SaveClerk saveClerk = new SaveClerk();
      saveClerk.setAuthInfo(userAuthToken);
      saveClerk.getClerk().add(clerk.getApiClerk());
      juddiApiService.saveClerk(saveClerk);
      //making sure our node info is there and up to date.
      SaveNode saveToNode = new SaveNode();
      saveToNode.setAuthInfo(userAuthToken);
      saveToNode.getNode().add(toClerk.getApiClerk().getNode());
      juddiApiService.saveNode(saveToNode);
      //making sure our clerk info is there and up to date
      SaveClerk saveToClerk = new SaveClerk();
      saveToClerk.setAuthInfo(userAuthToken);
      saveToClerk.getClerk().add(toClerk.getApiClerk());
      juddiApiService.saveClerk(saveToClerk);
      logger.debug("Updating default UDDI server completed.");
     
      SaveClientSubscriptionInfo saveClientSubscriptionInfo = new SaveClientSubscriptionInfo();
      saveClientSubscriptionInfo.setAuthInfo(userAuthToken);
      ClientSubscriptionInfo clientSubscriptionInfo = new ClientSubscriptionInfo();
      clientSubscriptionInfo.setSubscriptionKey(modelSubscription.getSubscriptionKey());
      clientSubscriptionInfo.setFromClerk(clerk.getApiClerk());
      clientSubscriptionInfo.setToClerk(toClerk.getApiClerk());
     
      saveClientSubscriptionInfo.getClientSubscriptionInfo().add(clientSubscriptionInfo);
      //save clientSubscription to the listening UDDI default server.
      juddiApiService.saveClientSubscriptionInfo(saveClientSubscriptionInfo);
      logger.debug("Saved ClientSubscriptionInfo to the default UDDI server");
     
      //the listening server is ready; now add the subscription
      Transport transport = WebHelper.getTransport(session.getServletContext(), clerk.getUDDINode());
      UDDISubscriptionPortType subscriptionService = transport.getUDDISubscriptionService();
      List<org.uddi.sub_v3.Subscription> subscriptionList = new ArrayList<org.uddi.sub_v3.Subscription>();
      org.uddi.sub_v3.Subscription subscription = new org.uddi.sub_v3.Subscription();
      if (!"".equals(modelSubscription.getBindingKey())) {
        subscription.setBindingKey(modelSubscription.getBindingKey());
      }
     
      subscription.setBrief(modelSubscription.getBrief());
      if (!"".equals(modelSubscription.getExpiresAfter())) {
        XMLGregorianCalendar calendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(modelSubscription.getExpiresAfter());
        subscription.setExpiresAfter(calendar);
      }
      subscription.setMaxEntities(modelSubscription.getMaxEntities());
      if (!"".equals(modelSubscription.getNotificationInterval())) {
        Duration duration = DatatypeFactory.newInstance().newDuration(modelSubscription.getNotificationInterval());
        subscription.setNotificationInterval(duration);
      }
      if (!"".equals(modelSubscription.getSubscriptionFilter())) {
        SubscriptionFilter subscriptionFilter = (SubscriptionFilter)JAXBMarshaller.unmarshallFromString(modelSubscription.getSubscriptionFilter(), JAXBMarshaller.PACKAGE_SUBSCRIPTION);
        subscription.setSubscriptionFilter(subscriptionFilter);
      }
      subscription.setSubscriptionKey(modelSubscription.getSubscriptionKey());
      subscriptionList.add(subscription);
      Holder<List<org.uddi.sub_v3.Subscription>> subscriptionHolder = new Holder<List<org.uddi.sub_v3.Subscription>>();
      subscriptionHolder.value = subscriptionList;
      String authToken = (String) session.getAttribute("token-" + clerk.getName());
      subscriptionService.saveSubscription(authToken, subscriptionHolder);
      subscription = subscriptionHolder.value.get(0);
      String expiresAfter = null;
      if (subscription.getExpiresAfter()!=null) expiresAfter = subscription.getExpiresAfter().toString();
      String rawFilter = JAXBMarshaller.marshallToString(new ObjectFactory().createSubscriptionFilter(subscription.getSubscriptionFilter()), "org.uddi.sub_v3");
      Subscription savedModelSubscription = new Subscription(
          (subscription.getBindingKey()==null)?"":subscription.getBindingKey(),
          subscription.isBrief(),
          expiresAfter,
          subscription.getMaxEntities(),
          (subscription.getNotificationInterval()==null)?"":subscription.getNotificationInterval().toString(),
          rawFilter,
          subscription.getSubscriptionKey());
      savedModelSubscription.setNode(modelSubscription.getNode());
      response.setSubscription(savedModelSubscription);

      response.setSuccess(true);
    } catch (Exception e) {
      logger.error("Could not save subscription. " + e.getMessage(), e);
      response.setSuccess(false);
      response.setMessage(e.getMessage());
      response.setErrorCode("102");
    } catch (Throwable t) {
      logger.error("Could not save subscription. " + t.getMessage(), t);
      response.setSuccess(false);
      response.setMessage(t.getMessage());
      response.setErrorCode("102");
    }

    return response;
  }
View Full Code Here

  public SubscriptionResponse deleteSubscription(String userAuthToken, Subscription modelSubscription) {

    HttpServletRequest request = getThreadLocalRequest();
    HttpSession session = request.getSession();
    SubscriptionResponse response = new SubscriptionResponse();

    logger.info("Sending deleteSubscriptions request for subscriptionKey="
        + modelSubscription.getSubscriptionKey());
   
    String error = null;
    try {
   
      try {
        UDDIClerkManager manager = WebHelper.getUDDIClerkManager(session.getServletContext());
        UDDIClerk clerk = manager.getClientConfig().getUDDIClerks().get(modelSubscription.getFromClerkName());
        Transport transport = WebHelper.getTransport(session.getServletContext(), clerk.getUDDINode());
        UDDISubscriptionPortType subscriptionService = transport.getUDDISubscriptionService();
        DeleteSubscription deleteSubscription = new DeleteSubscription();
        String authToken = (String) session.getAttribute("token-" + clerk.getName());
        deleteSubscription.setAuthInfo(authToken);
        deleteSubscription.getSubscriptionKey().add(modelSubscription.getSubscriptionKey());
        subscriptionService.deleteSubscription(deleteSubscription);
        logger.info("Deleted Subscription " + modelSubscription.getSubscriptionKey()
            + " from UDDI server " + clerk.getUDDINode().getName());
      } catch (Exception e) {
        error = "Could not delete subscription. Reason: " + e.getMessage();
        logger.error(error, e);
      }
      try {
        //now remove it from the listener UDDI server too
        Transport transport = WebHelper.getTransport(session.getServletContext());
        JUDDIApiPortType juddiApiService = transport.getJUDDIApiService();
       
        DeleteClientSubscriptionInfo deleteClientSubscriptionInfo = new DeleteClientSubscriptionInfo();
        deleteClientSubscriptionInfo.setAuthInfo(userAuthToken);
        deleteClientSubscriptionInfo.getSubscriptionKey().add(modelSubscription.getSubscriptionKey());
        //remove the clientSubscription to the listening UDDI default server.
        juddiApiService.deleteClientSubscriptionInfo(deleteClientSubscriptionInfo);
        logger.info("Deleted ClientSubscriptionInfo to the default UDDI server");
       
        response.setSuccess(true);
      } catch (Exception e) {
        if (error==null) {
          error = "Could not delete clientSubscriptionInfo. Reason: " + e.getMessage();
        } else {
          error += " Could not delete clientSubscriptionInfo. Reason: " + e.getMessage();
        }
        logger.error(error, e);
      }
      if (error!=null) {
        throw new Exception(error);
      }
    } catch (Exception e) {
      logger.error("Could not delete subscription. " + e.getMessage(), e);
      response.setSuccess(false);
      response.setMessage(e.getMessage());
      response.setErrorCode("102");
    } catch (Throwable t) {
      logger.error("Could not delete subscription. " + t.getMessage(), t);
      response.setSuccess(false);
      response.setMessage(t.getMessage());
      response.setErrorCode("102");
    }

    return response;
  }
View Full Code Here

 
  public SubscriptionResponse invokeSyncSubscription(String userAuthToken, Subscription modelSubscription) {

    HttpServletRequest request = getThreadLocalRequest();
    HttpSession session = request.getSession();
    SubscriptionResponse response = new SubscriptionResponse();
 
    try {
      //Send a request to the listener serverNode
      GetSubscriptionResults getSubscriptionResults = new GetSubscriptionResults();
      getSubscriptionResults.setAuthInfo(userAuthToken);
      getSubscriptionResults.setSubscriptionKey(modelSubscription.getSubscriptionKey());
     
      XMLGregorianCalendar calendarStart = DatatypeFactory.newInstance().newXMLGregorianCalendar(modelSubscription.getCoverageStart());
      XMLGregorianCalendar calendarEnd = DatatypeFactory.newInstance().newXMLGregorianCalendar(modelSubscription.getCoverageEnd());
      CoveragePeriod coverage = new CoveragePeriod();
      coverage.setStartPoint(calendarStart);
      coverage.setEndPoint(calendarEnd);
      getSubscriptionResults.setCoveragePeriod(coverage);
     
      String authToken = (String) session.getAttribute("token-" + modelSubscription.getFromClerkName());
      getSubscriptionResults.setAuthInfo(authToken);
            SyncSubscription syncSubscription = new SyncSubscription();
            syncSubscription.getGetSubscriptionResultsList().add(getSubscriptionResults);
     
          Transport transport = WebHelper.getTransport(session.getServletContext());
             JUDDIApiPortType apiService = transport.getJUDDIApiService();
     
             syncSubscription.setAuthInfo(userAuthToken);
             SyncSubscriptionDetail detail = apiService.invokeSyncSubscription(syncSubscription);
      SubscriptionResultsList list = detail.getSubscriptionResultsList().get(0);
      System.out.println("list=" + list);
     
      response.setSuccess(true);
    } catch (Exception e) {
      logger.error("Could not save subscription. " + e.getMessage(), e);
      response.setSuccess(false);
      response.setMessage(e.getMessage());
      response.setErrorCode("102");
    } catch (Throwable t) {
      logger.error("Could not save subscription. " + t.getMessage(), t);
      response.setSuccess(false);
      response.setMessage(t.getMessage());
      response.setErrorCode("102");
    }
   
   
    return response;
  }
View Full Code Here

TOP

Related Classes of org.apache.juddi.portlets.client.service.SubscriptionResponse

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.