Package com.ibm.sbt.services.client.connections.activities

Source Code of com.ibm.sbt.services.client.connections.activities.ActivityClient

/*
* © Copyright IBM Corp. 2014
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package com.ibm.sbt.services.client.connections.activities;

import java.io.ByteArrayInputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;

import com.ibm.sbt.services.client.ClientServicesException;
import com.ibm.sbt.services.client.connections.common.Member;
import com.ibm.sbt.services.endpoints.BasicEndpoint;
import com.ibm.sbt.services.endpoints.Endpoint;

/**
* @author mwallace
*
*/
public class ActivityClient {

  private String user;
  private String password;
  private String id;
  private Endpoint endpoint;
  private ActivityService activityService;
 
  static final String sourceClass = ActivityClient.class.getName();
  static final Logger logger = Logger.getLogger(sourceClass);
 
  static public ActivityClient[] createClients(String url, String[][] users) {
    ActivityClient[] clients = new ActivityClient[users.length];
    for (int i=0; i<users.length; i++) {
      clients[i] = new ActivityClient(url, users[i][0], users[i][1], users[i][2]);
    }
    return clients;
  }

  ActivityClient(String url, String user, String password, String id) {
    this.user = user;
    this.password = password;
    this.id = id;
   
    this.endpoint = createEndpoint(url, user, password);
    this.activityService = new ActivityService(this.endpoint);
  }
 
  /**
   * @return the user
   */
  public String getUser() {
    return user;
  }
 
  /**
   * @return the password
   */
  public String getPassword() {
    return password;
  }
 
  public String getId() {
    return id;
  }
 
  /**
   * @return the endpoint
   */
  public Endpoint getEndpoint() {
    return endpoint;
  }
 
  /**
   * @return the activityService
   */
  public ActivityService getActivityService() {
    return activityService;
  }
 
  /**
   *
   */
  public Endpoint createEndpoint(String url, String user, String password) {
    BasicEndpoint basicEndpoint = null;
    basicEndpoint = new BasicEndpoint();         
    basicEndpoint.setUrl(url);
    basicEndpoint.setForceTrustSSLCertificate(true);
    basicEndpoint.setUser(user);
    basicEndpoint.setPassword(password);
   
    // proxy support
    //basicEndpoint.setHttpProxy("127.0.0.1:8888");
    //basicEndpoint.setUseProxy(true);
   
    // cookie handling
    basicEndpoint.setClientServiceClass("com.ibm.sbt.services.client.CookieStoreClientService");
       
    return basicEndpoint;
  }
 
    public Activity getActivity(String activityUuid) throws ClientServicesException {
      ActivityService activityService = getActivityService();
      return activityService.getActivity(activityUuid);
    }
   
    public Activity createActivity(ActivityClient[] participants) throws ClientServicesException {
      long start = System.currentTimeMillis();
     
      String user = getUser();
      String title = "Activity["+user+"-"+System.currentTimeMillis()+"]";
     
      ActivityService activityService = getActivityService();
      Activity activity = new Activity(activityService);
      activity.setTitle(title);

      Map<String, String> params = new HashMap<String, String>();
      params.put("nodescap", "unlimited");

      activity = activityService.createActivity(activity, params);

    long duration = System.currentTimeMillis() - start;
    logger.fine("Created activity: "+duration+"(ms)");
   
    System.out.println(user+" created activity "+activity.getActivityUuid()+" duration:"+duration+"(ms)");
     
      for (ActivityClient participant : participants) {
        if (!participant.getUser().equals(user)) {
          activity.addMember(Member.TYPE_PERSON, participant.getId(), Member.ROLE_OWNER);

          System.out.println("Added member "+participant.getUser());
        }
      }
   
    return activity;
    }
   
  public Thread createActivityNodes(final Activity activity, final int count) throws InterruptedException {
    Thread thread = new Thread() {
      @Override
      public void run() {
        for (int i=0; i<count; i++) {
          try {
              long start = System.currentTimeMillis();

              ActivityService activityService = getActivityService();
           
            String title = "ActivityNode["+user+"-"+System.currentTimeMillis()+"]";
              ActivityNode activityNode = new ActivityNode(activityService);
              activityNode.setActivityUuid(activity.getActivityUuid());
              activityNode.setTitle(title);
           
              activityService.createActivityNode(activityNode);

            long duration = System.currentTimeMillis() - start;
            logger.fine("Created activity node: "+duration+"(ms)");
             
            System.out.println(user+" created activity node "+activityNode.getActivityNodeUuid()+" duration:"+duration+"(ms)");
           
          } catch (Exception e) {
            System.err.println("Error creating activity node for: "+user+" caused by: "+e.getMessage());
            //e.printStackTrace();
          }
        }
      }
    };

    thread.start();
   
    return thread;
  }
 
  public Thread uploadFiles(final Activity activity, final int count) throws InterruptedException {
    Thread thread = new Thread() {
      @Override
      public void run() {
        ByteArrayInputStream fileContent = new ByteArrayInputStream("MyFileContent".getBytes());
        for (int i=0; i<count; i++) {
          try {
              long start = System.currentTimeMillis();

              ActivityService activityService = getActivityService();
           
            String fileName = "MyFile"+i;
            activity.uploadFile(fileName, fileContent, "text/plain");

            long duration = System.currentTimeMillis() - start;
            logger.fine("Uploaded activity file: "+duration+"(ms)");
             
            System.out.println(user+" uploaded file "+fileName+" duration:"+duration+"(ms)");
           
          } catch (Exception e) {
            System.err.println("Error uploading file for: "+user+" caused by: "+e.getMessage());
            //e.printStackTrace();
          }
        }
      }
    };

    thread.start();
   
    return thread;
  }

  public Thread createActivities(final int count, final ActivityClient[] participants) throws InterruptedException {
    Thread thread = new Thread() {
      @Override
      public void run() {
        ByteArrayInputStream fileContent = new ByteArrayInputStream("MyFileContent".getBytes());
        for (int i=0; i<count; i++) {
          try {
              long start = System.currentTimeMillis();
             
              String user = getUser();
              String title = "Activity["+user+"-"+i+"-"+System.currentTimeMillis()+"]";
             
              ActivityService activityService = getActivityService();
              Activity activity = new Activity(activityService);
              activity.setTitle(title);

              activity = activityService.createActivity(activity);

            long duration = System.currentTimeMillis() - start;
            logger.fine("Created activity: "+duration+"(ms)");
           
            System.out.println(user+" created activity "+activity.getActivityUuid()+" duration:"+duration+"(ms)");
             
              for (ActivityClient participant : participants) {
                if (!participant.getUser().equals(user)) {
                  activity.addMember(Member.TYPE_PERSON, participant.getId(), Member.ROLE_OWNER);

                  System.out.println("Added member "+participant.getUser());
                }
              }
          } catch (Exception e) {
            System.err.println("Error creating activity for: "+user+" caused by: "+e.getMessage());
            //e.printStackTrace();
          }
        }
      }
    };

    thread.start();
   
    return thread;
  }

}
TOP

Related Classes of com.ibm.sbt.services.client.connections.activities.ActivityClient

TOP
Copyright © 2018 www.massapi.com. 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.