@Override protected void doFullTaskAction() throws IOException { // this is full run, clean the previous output File destinationDir = getOutputDir(); FileUtils.cleanOutputDir(destinationDir); List<AssetSet> assetSets = getInputDirectorySets(); // create a new merger and populate it with the sets. AssetMerger merger = new AssetMerger(); try { for (AssetSet assetSet : assetSets) { // set needs to be loaded. assetSet.loadFromFiles(getILogger()); merger.addDataSet(assetSet); } // get the merged set and write it down. MergedAssetWriter writer = new MergedAssetWriter(destinationDir); merger.mergeData(writer, false /*doCleanUp*/); // No exception? Write the known state. merger.writeBlobTo(getIncrementalFolder(), writer, false); } catch (MergingException e) { getLogger().error("Could not merge source set folders: ", e); merger.cleanBlob(getIncrementalFolder()); throw new ResourceException(e.getMessage(), e); } }
@Override protected void doIncrementalTaskAction(Map<File, FileStatus> changedInputs) throws IOException { AssetMerger merger = new AssetMerger(); try { if (!merger.loadFromBlob(getIncrementalFolder(), true /*incrementalState*/)) { doFullTaskAction(); return; if (!merger.checkValidUpdate(assetSets)) { getLogger().info("Changed Asset sets: full task run!"); doFullTaskAction(); merger.findDataSetContaining(changedFile, fileValidity); if (fileValidity.getStatus() == FileValidity.FileStatus.UNKNOWN_FILE) { doFullTaskAction(); merger.mergeData(writer, false /*doCleanUp*/); merger.writeBlobTo(getIncrementalFolder(), writer, false); } catch (MergingException e) { getLogger().error("Could not merge source set folders: ", e); merger.cleanBlob(getIncrementalFolder()); throw new ResourceException(e.getMessage(), e); } finally {