Ignore:
Timestamp:
Mar 21, 2013, 12:33:53 PM (12 years ago)
Author:
alloc
Message:

AEI2: Looooots of refactorings for breaking out independent features into libraries

Location:
AE/installer2/src/net/oni2/aeinstaller/backend/oni
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • AE/installer2/src/net/oni2/aeinstaller/backend/oni/Installer.java

    r708 r720  
    2121import java.util.regex.Pattern;
    2222
     23import net.oni2.SettingsManager;
    2324import net.oni2.aeinstaller.AEInstaller2;
    2425import net.oni2.aeinstaller.backend.CaseInsensitiveFile;
     
    2728import net.oni2.aeinstaller.backend.packages.Package;
    2829import net.oni2.aeinstaller.backend.packages.PackageManager;
    29 import net.oni2.applicationinvoker.AppExecutionResult;
    30 import net.oni2.settingsmanager.Settings;
    31 import net.oni2.settingsmanager.Settings.Platform;
     30import net.oni2.platformtools.PlatformInformation;
     31import net.oni2.platformtools.PlatformInformation.Platform;
     32import net.oni2.platformtools.applicationinvoker.ApplicationInvocationResult;
    3233
    3334import org.apache.commons.io.FileUtils;
     
    134135                                                        copyRemoveToolsFiles(plainCommon,
    135136                                                                        Paths.getEditionBasePath(), uninstall);
    136                                                 if (Settings.getPlatform() == Platform.MACOS
     137                                                if (PlatformInformation.getPlatform() == Platform.MACOS
    137138                                                                && plainMac.exists())
    138139                                                        copyRemoveToolsFiles(plainMac,
     
    225226                                                || s.endsWith(".raw")
    226227                                                || s.endsWith(".sep")
    227                                                 || (s.equals("intro.bik") && !Settings.getInstance()
     228                                                || (s.equals("intro.bik") && !SettingsManager.getInstance()
    228229                                                                .get("copyintro", false))
    229                                                 || (s.equals("outro.bik") && !Settings.getInstance()
     230                                                || (s.equals("outro.bik") && !SettingsManager.getInstance()
    230231                                                                .get("copyoutro", false));
    231232                        }
     
    279280                                        if (oniCommon.exists())
    280281                                                foldersOni.add(oniCommon);
    281                                         if (Settings.getPlatform() == Platform.MACOS
     282                                        if (PlatformInformation.getPlatform() == Platform.MACOS
    282283                                                        && oniMac.exists())
    283284                                                foldersOni.add(oniMac);
     
    301302                                        if (patchesCommon.exists())
    302303                                                foldersPatches.add(patchesCommon);
    303                                         if (Settings.getPlatform() == Platform.MACOS
     304                                        if (PlatformInformation.getPlatform() == Platform.MACOS
    304305                                                        && patchesMac.exists())
    305306                                                foldersPatches.add(patchesMac);
     
    369370                                        File bslWin = CaseInsensitiveFile.getCaseInsensitiveFile(
    370371                                                        bsl, "win_only");
    371                                         if ((Settings.getPlatform() == Platform.MACOS && bslMac
     372                                        if ((PlatformInformation.getPlatform() == Platform.MACOS && bslMac
    372373                                                        .exists())
    373                                                         || ((Settings.getPlatform() == Platform.WIN || Settings
     374                                                        || ((PlatformInformation.getPlatform() == Platform.WIN || PlatformInformation
    374375                                                                        .getPlatform() == Platform.LINUX) && bslWin
    375376                                                                        .exists()) || bslCommon.exists()) {
     
    406407                        File bslWin = CaseInsensitiveFile.getCaseInsensitiveFile(bsl,
    407408                                        "win_only");
    408                         if (Settings.getPlatform() == Platform.MACOS && bslMac.exists()) {
     409                        if (PlatformInformation.getPlatform() == Platform.MACOS && bslMac.exists()) {
    409410                                for (File f : bslMac.listFiles(dirFileFilter)) {
    410411                                        File targetBSL = new File(targetBaseFolder, f.getName());
     
    413414                                }
    414415                        }
    415                         if ((Settings.getPlatform() == Platform.WIN || Settings
     416                        if ((PlatformInformation.getPlatform() == Platform.WIN || PlatformInformation
    416417                                        .getPlatform() == Platform.LINUX) && bslWin.exists()) {
    417418                                for (File f : bslWin.listFiles(dirFileFilter)) {
     
    508509                                        if (srcFolder.getPath().toLowerCase().contains("vanilla")) {
    509510                                                // Extract from .dat
    510                                                 AppExecutionResult res = OniSplit.export(levelFolder,
     511                                                ApplicationInvocationResult res = OniSplit.export(levelFolder,
    511512                                                                srcFolder, exportPatterns);
    512513                                                logAppOutput(res, log);
     
    533534                                                                .contains("vanilla")) {
    534535                                                        // Extract from .dat
    535                                                         AppExecutionResult res = OniSplit.export(
     536                                                        ApplicationInvocationResult res = OniSplit.export(
    536537                                                                        levelFolder, srcFolder, patterns);
    537538                                                        logAppOutput(res, log);
     
    556557                        Vector<File> files = new Vector<File>();
    557558                        files.add(new File(levelFolder, "*.oni"));
    558                         AppExecutionResult res = OniSplit.convertOniToXML(levelFolderXML,
     559                        ApplicationInvocationResult res = OniSplit.convertOniToXML(levelFolderXML,
    559560                                        files);
    560561                        logAppOutput(res, log);
     
    613614                                        "Installing level " + l);
    614615
    615                         AppExecutionResult res = OniSplit.packLevel(oniLevelFolders.get(l),
     616                        ApplicationInvocationResult res = OniSplit.packLevel(oniLevelFolders.get(l),
    616617                                        new File(Paths.getEditionGDF(), sanitizeLevelName(l)
    617618                                                        + ".dat"));
     
    627628
    628629        private static void copyVideos(PrintWriter log) {
    629                 if (Settings.getInstance().get("copyintro", false)) {
     630                if (SettingsManager.getInstance().get("copyintro", false)) {
    630631                        File src = new File(Paths.getVanillaGDF(), "intro.bik");
    631632                        log.println("Copying intro");
     
    640641                        log.println("NOT copying intro");
    641642                }
    642                 if (Settings.getInstance().get("copyoutro", true)) {
     643                if (SettingsManager.getInstance().get("copyoutro", true)) {
    643644                        File src = new File(Paths.getVanillaGDF(), "outro.bik");
    644645                        log.println("Copying outro");
     
    741742
    742743                                // Export Vanilla-Level-Dat -> Temp/Level
    743                                 AppExecutionResult res = OniSplit.export(tempLevelFolder, f);
     744                                ApplicationInvocationResult res = OniSplit.export(tempLevelFolder, f);
    744745                                logAppOutput(res, log);
    745746
     
    763764                                folders.add(f);
    764765
    765                                 AppExecutionResult res = OniSplit
     766                                ApplicationInvocationResult res = OniSplit
    766767                                                .importLevel(folders,
    767768                                                                new File(Paths.getVanillaOnisPath(), levelName
     
    922923        }
    923924
    924         private static void logAppOutput(AppExecutionResult result, PrintWriter log) {
     925        private static void logAppOutput(ApplicationInvocationResult result, PrintWriter log) {
    925926                if (result != null) {
    926927                        log.println("\t\t\tCalled:");
  • AE/installer2/src/net/oni2/aeinstaller/backend/oni/OniSplit.java

    r708 r720  
    66
    77import net.oni2.aeinstaller.backend.CaseInsensitiveFile;
    8 import net.oni2.aeinstaller.backend.DotNet;
    98import net.oni2.aeinstaller.backend.Paths;
    10 import net.oni2.applicationinvoker.AppExecution;
    11 import net.oni2.applicationinvoker.AppExecutionResult;
    12 import net.oni2.settingsmanager.Settings;
    13 import net.oni2.settingsmanager.Settings.Platform;
     9import net.oni2.platformtools.PlatformInformation;
     10import net.oni2.platformtools.PlatformInformation.Platform;
     11import net.oni2.platformtools.applicationinvoker.ApplicationInvoker;
     12import net.oni2.platformtools.applicationinvoker.ApplicationInvocationResult;
     13import net.oni2.platformtools.applicationinvoker.EExeType;
     14import net.oni2.platformtools.applicationinvoker.ERuntimeNotInstalledException;
    1415
    1516/**
     
    3435         * @return OniSplit output
    3536         */
    36         public static AppExecutionResult export(File targetFolder, File input) {
     37        public static ApplicationInvocationResult export(File targetFolder, File input) {
    3738                return export(targetFolder, input, null);
    3839        }
     
    4950         * @return OniSplit output
    5051         */
    51         public static AppExecutionResult export(File targetFolder, File input,
     52        public static ApplicationInvocationResult export(File targetFolder, File input,
    5253                        Vector<String> patterns) {
    5354                if (!targetFolder.exists())
    5455                        targetFolder.mkdir();
    5556
    56                 Vector<String> cmdLine = getProgramInvocation();
     57                Vector<String> params = new Vector<String>();
    5758                if (patterns == null)
    58                         cmdLine.add("-export");
     59                        params.add("-export");
    5960                else {
    6061                        for (String p : patterns)
    61                                 cmdLine.add("-export:" + p);
    62                 }
    63                 cmdLine.add(targetFolder.getPath());
    64                 cmdLine.add(input.getPath());
    65                 AppExecutionResult res = null;
    66                 try {
    67                         res = AppExecution.executeAndWait(cmdLine);
    68                 } catch (IOException e) {
     62                                params.add("-export:" + p);
     63                }
     64                params.add(targetFolder.getPath());
     65                params.add(input.getPath());
     66                ApplicationInvocationResult res = null;
     67                try {
     68                        res = ApplicationInvoker.executeAndWait(EExeType.DOTNET, null, getProgramFile(), params);
     69                } catch (IOException e) {
     70                        e.printStackTrace();
     71                } catch (ERuntimeNotInstalledException e) {
    6972                        e.printStackTrace();
    7073                }
     
    8184         * @return OniSplit output
    8285         */
    83         public static AppExecutionResult importLevel(Vector<File> sourceFolders,
     86        public static ApplicationInvocationResult importLevel(Vector<File> sourceFolders,
    8487                        File targetFile) {
    85                 Vector<String> cmdLine = getProgramInvocation();
    86                 cmdLine.add(getImportParam());
     88                Vector<String> params = new Vector<String>();
     89                params.add(getImportParam());
    8790                for (File f : sourceFolders)
    88                         cmdLine.add(f.getPath());
    89                 cmdLine.add(targetFile.getPath());
    90                 AppExecutionResult res = null;
    91                 try {
    92                         res = AppExecution.executeAndWait(cmdLine);
    93                 } catch (IOException e) {
     91                        params.add(f.getPath());
     92                params.add(targetFile.getPath());
     93                ApplicationInvocationResult res = null;
     94                try {
     95                        res = ApplicationInvoker.executeAndWait(EExeType.DOTNET, null, getProgramFile(), params);
     96                } catch (IOException e) {
     97                        e.printStackTrace();
     98                } catch (ERuntimeNotInstalledException e) {
    9499                        e.printStackTrace();
    95100                }
     
    108113         * @return OniSplit output
    109114         */
    110         public static AppExecutionResult packLevel(Vector<File> sourceFoldersFiles,
     115        public static ApplicationInvocationResult packLevel(Vector<File> sourceFoldersFiles,
    111116                        File targetFile) {
    112                 Vector<String> cmdLine = getProgramInvocation();
    113                 cmdLine.add(getPackParam());
    114                 cmdLine.add(getPackTypeParam());
    115                 cmdLine.add("-out");
    116                 cmdLine.add(targetFile.getPath());
     117                Vector<String> params = new Vector<String>();
     118                params.add(getPackParam());
     119                params.add(getPackTypeParam());
     120                params.add("-out");
     121                params.add(targetFile.getPath());
    117122                for (File f : sourceFoldersFiles)
    118                         cmdLine.add(f.getPath());
    119                 AppExecutionResult res = null;
    120                 try {
    121                         res = AppExecution.executeAndWait(cmdLine);
    122                 } catch (IOException e) {
     123                        params.add(f.getPath());
     124                ApplicationInvocationResult res = null;
     125                try {
     126                        res = ApplicationInvoker.executeAndWait(EExeType.DOTNET, null, getProgramFile(), params);
     127                } catch (IOException e) {
     128                        e.printStackTrace();
     129                } catch (ERuntimeNotInstalledException e) {
    123130                        e.printStackTrace();
    124131                }
     
    138145         * @return OniSplit output
    139146         */
    140         public static AppExecutionResult move(File targetFolder, String input,
     147        public static ApplicationInvocationResult move(File targetFolder, String input,
    141148                        String moveParameter) {
    142149                if (!targetFolder.exists())
    143150                        targetFolder.mkdir();
    144151
    145                 Vector<String> cmdLine = getProgramInvocation();
    146                 cmdLine.add("-move"
     152                Vector<String> params = new Vector<String>();
     153                params.add("-move"
    147154                                + (moveParameter != null ? ":" + moveParameter : ""));
    148                 cmdLine.add(targetFolder.getPath());
    149                 cmdLine.add(input);
    150                 AppExecutionResult res = null;
    151                 try {
    152                         res = AppExecution.executeAndWait(cmdLine);
    153                 } catch (IOException e) {
     155                params.add(targetFolder.getPath());
     156                params.add(input);
     157                ApplicationInvocationResult res = null;
     158                try {
     159                        res = ApplicationInvoker.executeAndWait(EExeType.DOTNET, null, getProgramFile(), params);
     160                } catch (IOException e) {
     161                        e.printStackTrace();
     162                } catch (ERuntimeNotInstalledException e) {
    154163                        e.printStackTrace();
    155164                }
     
    166175         * @return OniSplit output
    167176         */
    168         public static AppExecutionResult convertOniToXML(File targetFolder,
     177        public static ApplicationInvocationResult convertOniToXML(File targetFolder,
    169178                        Vector<File> inputFiles) {
    170179                if (!targetFolder.exists())
    171180                        targetFolder.mkdirs();
    172181
    173                 Vector<String> cmdLine = getProgramInvocation();
    174                 cmdLine.add("-extract:xml");
    175                 cmdLine.add(targetFolder.getPath());
     182                Vector<String> params = new Vector<String>();
     183                params.add("-extract:xml");
     184                params.add(targetFolder.getPath());
    176185                for (File f : inputFiles) {
    177                         cmdLine.add(f.getPath());
    178                 }
    179                 AppExecutionResult res = null;
    180                 try {
    181                         res = AppExecution.executeAndWait(cmdLine);
    182                 } catch (IOException e) {
     186                        params.add(f.getPath());
     187                }
     188                ApplicationInvocationResult res = null;
     189                try {
     190                        res = ApplicationInvoker.executeAndWait(EExeType.DOTNET, null, getProgramFile(), params);
     191                } catch (IOException e) {
     192                        e.printStackTrace();
     193                } catch (ERuntimeNotInstalledException e) {
    183194                        e.printStackTrace();
    184195                }
     
    195206         * @return OniSplit output
    196207         */
    197         public static AppExecutionResult convertXMLtoOni(File targetFolder,
     208        public static ApplicationInvocationResult convertXMLtoOni(File targetFolder,
    198209                        Vector<File> inputFiles) {
    199210                if (!targetFolder.exists())
    200211                        targetFolder.mkdirs();
    201212
    202                 Vector<String> cmdLine = getProgramInvocation();
    203                 cmdLine.add("-create");
    204                 cmdLine.add(targetFolder.getPath());
     213                Vector<String> params = new Vector<String>();
     214                params.add("-create");
     215                params.add(targetFolder.getPath());
    205216                for (File f : inputFiles) {
    206                         cmdLine.add(f.getPath());
    207                 }
    208                 AppExecutionResult res = null;
    209                 try {
    210                         res = AppExecution.executeAndWait(cmdLine);
    211                 } catch (IOException e) {
     217                        params.add(f.getPath());
     218                }
     219                ApplicationInvocationResult res = null;
     220                try {
     221                        res = ApplicationInvoker.executeAndWait(EExeType.DOTNET, null, getProgramFile(), params);
     222                } catch (IOException e) {
     223                        e.printStackTrace();
     224                } catch (ERuntimeNotInstalledException e) {
    212225                        e.printStackTrace();
    213226                }
     
    216229
    217230        private static String getImportParam() {
    218                 if (Settings.getPlatform() == Platform.MACOS)
     231                if (PlatformInformation.getPlatform() == Platform.MACOS)
    219232                        return "-import:sep";
    220233                else
     
    227240
    228241        private static String getPackTypeParam() {
    229                 if (Settings.getPlatform() == Platform.MACOS)
     242                if (PlatformInformation.getPlatform() == Platform.MACOS)
    230243                        return "-type:macintel";
    231244                else
    232245                        return "-type:pc";
    233         }
    234 
    235         private static Vector<String> getProgramInvocation() {
    236                 Vector<String> res = new Vector<String>();
    237                 if (DotNet.getRuntimeExe().length() > 0)
    238                         res.add(DotNet.getRuntimeExe());
    239                 res.add(getProgramFile().getPath());
    240                 return res;
    241246        }
    242247
  • AE/installer2/src/net/oni2/aeinstaller/backend/oni/XMLTools.java

    r708 r720  
    66
    77import net.oni2.aeinstaller.backend.CaseInsensitiveFile;
    8 import net.oni2.aeinstaller.backend.DotNet;
    98import net.oni2.aeinstaller.backend.Paths;
    10 import net.oni2.applicationinvoker.AppExecution;
    11 import net.oni2.applicationinvoker.AppExecutionResult;
     9import net.oni2.platformtools.applicationinvoker.ApplicationInvoker;
     10import net.oni2.platformtools.applicationinvoker.ApplicationInvocationResult;
     11import net.oni2.platformtools.applicationinvoker.EExeType;
     12import net.oni2.platformtools.applicationinvoker.ERuntimeNotInstalledException;
    1213
    1314/**
     
    2627         * @return XMLTools output
    2728         */
    28         public static AppExecutionResult patch(File patch, File source) {
    29                 Vector<String> cmdLine = getProgramInvocation();
     29        public static ApplicationInvocationResult patch(File patch, File source) {
     30                Vector<String> params = new Vector<String>();
    3031                // xmlTools.exe patchfile -filename:PATCH -forceinfiles:TOPATCH
    31                 cmdLine.add("patchfile");
    32                 cmdLine.add("-filename:" + patch.getPath());
    33                 cmdLine.add("-forceinfiles:" + source.getPath());
    34                 AppExecutionResult res = null;
     32                params.add("patchfile");
     33                params.add("-filename:" + patch.getPath());
     34                params.add("-forceinfiles:" + source.getPath());
     35                ApplicationInvocationResult res = null;
    3536                try {
    36                         res = AppExecution.executeAndWait(cmdLine);
     37                        res = ApplicationInvoker.executeAndWait(EExeType.DOTNET, null,
     38                                        getProgramFile(), params);
    3739                } catch (IOException e) {
     40                        e.printStackTrace();
     41                } catch (ERuntimeNotInstalledException e) {
    3842                        e.printStackTrace();
    3943                }
     
    4145        }
    4246
    43         private static Vector<String> getProgramInvocation() {
    44                 Vector<String> res = new Vector<String>();
    45                 if (DotNet.getRuntimeExe().length() > 0)
    46                         res.add(DotNet.getRuntimeExe());
    47                 res.add(getProgramFile().getPath());
    48                 return res;
    49         }
    50 
    5147        private static File getProgramFile() {
    52                 File toolsPath = CaseInsensitiveFile.getCaseInsensitiveFile(Paths.getEditionBasePath(), "Tools");
    53                 return CaseInsensitiveFile.getCaseInsensitiveFile(toolsPath, "xmlTools.exe");
     48                File toolsPath = CaseInsensitiveFile.getCaseInsensitiveFile(
     49                                Paths.getEditionBasePath(), "Tools");
     50                return CaseInsensitiveFile.getCaseInsensitiveFile(toolsPath,
     51                                "xmlTools.exe");
    5452        }
    5553}
Note: See TracChangeset for help on using the changeset viewer.