user3033862
user3033862

Reputation: 1

Importing files in java

package com.teamsite.client;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.Hashtable;
import com.interwoven.cssdk.common.CSClient;
import org.apache.commons.lang.StringUtils;
import com.interwoven.cssdk.access.CSUser;
import com.interwoven.cssdk.common.CSClient;
import com.interwoven.cssdk.common.CSException;
import com.interwoven.cssdk.filesys.CSAreaRelativePath;
import com.interwoven.cssdk.workflow.CSExternalTask;
import com.interwoven.cssdk.workflow.CSTask;
import com.interwoven.cssdk.workflow.CSURLExternalTask;
import com.interwoven.cssdk.workflow.CSWorkflow;
import java.util.logging.*;

public class ApplicationEdition implements CSURLExternalTask{

private static String userid;
private static String cssdkconfigfile;
private String applicationName;
private String applicationEditionPath;
private static CSClient csClient;

public static final String KEY_TARGET_TASK_NAME = "target_task_name";
private String transitionComment = "Auditing for deployed files ";
private String transition = "";

public static String getCssdkconfigfile() {
    return cssdkconfigfile;
}

public static void setCssdkconfigfile(String cssdkconfigfile) {
    ApplicationEdition.cssdkconfigfile = cssdkconfigfile;
}

private static CSClient getCsClient() {
    return csClient;
}

private static void setCsClient(CSClient csClient) {
    ApplicationEdition.csClient = csClient;
}
private static String getUserid() {
    return userid;
}

private static void setUserid(String userid) {
    ApplicationEdition.userid = userid;
}

private String getApplicationName() {
    return applicationName;
}

private void setApplicationName(String applicationName) {
    this.applicationName = applicationName;
}

private String getApplicationEditionPath() {
    return applicationEditionPath;
}

private void setApplicationEditionPath(String applicationEditionPath) {
    this.applicationEditionPath = applicationEditionPath;
}

@Override
 public void execute(CSClient client, CSExternalTask currentTask, Hashtable params) throws     CSException {

    String userId = client.toString();
    String cssdkconfigfile = "D:\\iw-home\\TeamSite\\cssdk\\cssdk.cfg";
    setUserid(userId);
    setCssdkconfigfile(cssdkconfigfile);
    String targetTaskName = currentTask.getVariable(KEY_TARGET_TASK_NAME);

    CSUser thisTaskOwner = currentTask.getOwner();
   String thisTaskOwnerAddress = thisTaskOwner.getEmailAddress();

  String branchName = currentTask.getArea().getBranch().getName();
  CSAreaRelativePath[] files = currentTask.getFiles();
  String Area = currentTask.getArea().getName();
  System.err.println("*********************************************************");
  System.err.println("Target task name"+targetTaskName);
  System.err.println("Task owner's address"+thisTaskOwnerAddress);
  System.err.println("Area name"+Area);
  System.err.println("*********************************************************");
    }  private static CSTask getTaskByName(CSWorkflow job, String name) throws CSException {
        if (name == null) {
            return null;
        }
        CSTask[] tasks = job.getTasks();
        for (int i=0; i<tasks.length; i++) {
            if (name.equals(tasks[i].getName())) {
                return tasks[i];
            }
        }
        return null;        
    }

 public static void showFiles(String string1,String string2,String string3 ) {
    try {
            File filename = new File     ("C:\\temp\\ApplicationEditions_dynamic.txt");

                 BufferedWriter writer = new BufferedWriter(new FileWriter(filename,true));
                 writer.write(string1+"\n");
                 writer.write(string2+"\n");
                 writer.write(string3+"\n");
                 writer.newLine();
                 writer.close();
         } 


     catch (Exception e)
            {
                System.out.println("Error occurred due to branch, refer output file");
            }
    finally {


            }
    }   }    

In this code, following files are imported in this source file

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.Hashtable;
import com.interwoven.cssdk.common.CSClient;
import org.apache.commons.lang.StringUtils;
import com.interwoven.cssdk.access.CSUser;
import com.interwoven.cssdk.common.CSClient;
import com.interwoven.cssdk.common.CSException;
import com.interwoven.cssdk.filesys.CSAreaRelativePath;
import com.interwoven.cssdk.workflow.CSExternalTask;
import com.interwoven.cssdk.workflow.CSTask;
import com.interwoven.cssdk.workflow.CSURLExternalTask;
import com.interwoven.cssdk.workflow.CSWorkflow;      

Here source file is in location "package com.teamsite.client". So other files that are being imported from location com.interwoven.cssdk.common.CSClient, should have common path upto "com" folder and within "com" dir there should be dir "interwoven" and within this dir there should be other dir.
But when I check dir on server, I don't see any other dir than teamsite. This code workd fine without any problem.
So, how are these other files are getting imported in here ? Our environment is bit complex, but still files need to be in the path for being imported. We have repositories where jar is kept.

Thanks

Upvotes: 0

Views: 1723

Answers (2)

Andrei Nicusan
Andrei Nicusan

Reputation: 4623

When the class loader looks for a class e.g. com.interwoven.cssdk.workflow.CSExternalTask, it scans the entire classpath, looking for a directory branch like com/intervowen/cssdk/workflow. The above statement covers also the exploded jars that may be on the classpath.

The classpath usually contains more directories than your runnable jar file. Obviously, your jar is not expected to contain all classes contained in packages starting with com.*, so these can be imported from any location on the classpath.

Upvotes: 1

ljgw
ljgw

Reputation: 2771

You probably have a .jar file with the com.interwoven.cssdk. packages on your classpath somewhere.

.jar files behave like a zip file with it's own directory structure in it.

Upvotes: 0

Related Questions