1 21 package com.izforge.izpack.event; 22 23 import java.io.File ; 24 import java.io.InputStream ; 25 import java.io.ObjectInputStream ; 26 import java.util.ArrayList ; 27 import java.util.Iterator ; 28 import java.util.List ; 29 30 import com.izforge.izpack.util.AbstractUIProgressHandler; 31 import com.izforge.izpack.util.IoHelper; 32 33 43 public class AntActionUninstallerListener extends SimpleUninstallerListener 44 { 45 46 47 private List antActions = null; 48 49 52 public AntActionUninstallerListener() 53 { 54 super(); 55 } 57 58 64 public void beforeDeletion(List files, AbstractUIProgressHandler handler) throws Exception 65 { 66 InputStream in = getClass().getResourceAsStream("/antActions"); 68 if (in == null) 69 { return; 71 } 72 ObjectInputStream objIn = new ObjectInputStream (in); 73 List allActions = (List ) objIn.readObject(); 77 objIn.close(); 78 in.close(); 79 ArrayList befDel = new ArrayList (); 80 antActions = new ArrayList (); 81 Iterator iter = allActions.iterator(); 82 while (iter.hasNext()) 91 { 92 AntAction action = (AntAction) iter.next(); 93 if (action.getUninstallOrder().equals(ActionBase.BEFOREDELETION)) 95 befDel.add(action); 96 else 97 { File tmpFile = IoHelper.copyToTempFile(action.getBuildFile(), ".xml"); 100 action.setBuildFile(tmpFile.getCanonicalPath()); 101 List props = action.getPropertyFiles(); 102 if (props != null) 103 { 104 Iterator iter2 = props.iterator(); 105 ArrayList newProps = new ArrayList (); 106 while (iter2.hasNext()) 107 { 108 String propName = (String ) iter2.next(); 109 File propFile = IoHelper.copyToTempFile(propName, ".properties"); 110 newProps.add(propFile.getCanonicalPath()); 111 } 112 action.setPropertyFiles(newProps); 113 } 114 antActions.add(action); 115 } 116 } 117 if (befDel.size() > 0) 119 { 120 for (int i = 0; i < befDel.size(); i++) 121 { 122 AntAction act = (AntAction) befDel.get(i); 123 act.performUninstallAction(); 124 } 125 } 126 127 } 128 129 135 public void afterDeletion(List files, AbstractUIProgressHandler handler) throws Exception 136 { 137 if (antActions != null && antActions.size() > 0) 138 { for (int i = 0; i < antActions.size(); i++) 140 { 141 AntAction act = (AntAction) antActions.get(i); 142 act.performUninstallAction(); 143 } 144 145 } 146 } 147 148 } 149 | Popular Tags |