public UserdataUpdater() {

       plPort = Configuration.getConfig(Configuration.CONFIG_PIPELINE_PORT);
       plUser = Configuration.getConfig(Configuration.CONFIG_PIPELINE_USER);

       String pipeHome = Constants.pipelineHome(plUser, plPort);

       userdataFile = new File( pipeHome + "userdata.xml");

       if (userdataFile.exists() && userdataFile.isFile()) {
            try {
                SAXBuilder builder = new SAXBuilder();
                document = builder.build(userdataFile);
                root = document.getRootElement();
                XMLOutputter xout = new XMLOutputter();
            } catch (Exception e) {
                System.err.println("Unable to create the Userdata object (by loading)");
                e.printStackTrace();
                root = new Element("userdata");
                document = new Document(root);
            }
        } else {
            // let's create the pipeline home directory
            try {
                Process p = Runtime.getRuntime().exec("sudo -u " + plUser + " mkdir -p " + pipeHome);
                try {
                    p.waitFor();
                } catch (Exception ex) {
                }
                if ( p != null )
                    NativeCalls.releaseProcess(p);


            } catch (IOException e) {
                e.printStackTrace();
            }
            
            try {
                root = new Element("userdata");
                document = new Document(root);
            } catch (Exception e) {
                System.err.println("Unable to create the Userdata object (from scratch)");
                e.printStackTrace();
            }
        }
        
    }