diff --git a/build.gradle b/build.gradle index 1953268ae33357833e89e86768ea28e89baa36f7..3bb5537ed81d0f016effe1845acec75a3721c42c 100644 --- a/build.gradle +++ b/build.gradle @@ -153,7 +153,7 @@ task zipAssets(dependsOn: [prepareSoundAssets, prepareGraphicAssets]) { if (!dir.name.equals('common')) { task("${name}_${dir.name}", type: Zip) { - archiveName = dir.getName() + ".zip" + archiveName = dir.getName() + "_SNAPSHOT.zip" destinationDir = rootProject.ext.assetsPackDir from "${buildDir}/${assetsDirName}/${assetsDestinationDirName}/${dir.name}" }.execute() @@ -162,26 +162,30 @@ task zipAssets(dependsOn: [prepareSoundAssets, prepareGraphicAssets]) { } } -task uploadAssets(dependsOn: [':util:checksum:runChecksum', ':util:checksum:runAssetsArchivesChecksum', 'zipAssets']) { +task processAssets(dependsOn: [':util:checksum:runChecksum', ':util:checksum:runAssetsArchivesChecksum']) { doLast { - def data = new URL(ASSETS_DOWNLOAD_URL).getText() - rootProject.ext.assetsPackDir.eachFile() { file -> - String fileName = file.getName() - String[] fileNameParts = fileName.split("\\."); - String packageName = "${fileNameParts[0]}_${assetsChecksum[fileNameParts[0]]}.${fileNameParts[1]}"; - - if (!data.contains(packageName)) { - println "AssetsUploader: FILE: ${packageName} DO NOT EXISTS ON SERVER -> UPLOADING FILE" - task ("${name}_${fileName}", type:Exec) { - workingDir "${rootProject.projectDir}" - commandLine './util/script/assetsUpload.sh', file, TABLEXIA_ASSETS_SERVER_USER, TABLEXIA_ASSETS_SERVER_URL, packageName - standardOutput = new ByteArrayOutputStream() - ext.output = { - return standardOutput.toString() - } - }.execute() - } else { - println "AssetsUploader: FILE: ${packageName} EXISTS ON SERVER -> SKIPPING UPLOAD" + if (project.hasProperty('TABLEXIA_ASSETS_SERVER_USER') && project.hasProperty('TABLEXIA_ASSETS_SERVER_URL')) { + def data = new URL(ASSETS_DOWNLOAD_URL).getText() + rootProject.ext.assetsPackDir.eachFile() { file -> + String fileName = file.getName() + String[] fileNameParts = fileName.split("_SNAPSHOT\\."); + String packageName = "${fileNameParts[0]}_${assetsChecksum[fileNameParts[0]]}.${fileNameParts[1]}"; + + boolean isProductionVersion = project.hasProperty('TABLEXIA_ASSETS_UPLOAD_PRODUCTION') && Boolean.valueOf(TABLEXIA_ASSETS_UPLOAD_PRODUCTION).booleanValue() + String uploadFileName = isProductionVersion ? packageName : fileName + if (!isProductionVersion || !data.contains(packageName)) { + println "AssetsUploader: UPLOADING FILE: ${uploadFileName}" + task ("${name}_${packageName}", type:Exec) { + workingDir "${rootProject.projectDir}" + commandLine './util/script/assetsUpload.sh', file, TABLEXIA_ASSETS_SERVER_USER, TABLEXIA_ASSETS_SERVER_URL, uploadFileName + standardOutput = new ByteArrayOutputStream() + ext.output = { + return standardOutput.toString() + } + }.execute() + } else { + println "AssetsUploader: FILE: ${packageName} EXISTS ON SERVER -> SKIPPING UPLOAD" + } } } } @@ -296,7 +300,7 @@ project(":core") { apply plugin: "java" sourceSets.test.java.srcDirs = ["test/"] - tasks.processResources.dependsOn ':util:checksum:runChecksum' + tasks.processResources.dependsOn processAssets dependencies { compile project(":util:checksum") diff --git a/core/src/cz/nic/tablexia/TablexiaSettings.java b/core/src/cz/nic/tablexia/TablexiaSettings.java index c9ac4c10eba207cbf50ed35cef562c4ff7d78589..bee116b912a4faf294f71f517c702cf06d4ec6ac 100644 --- a/core/src/cz/nic/tablexia/TablexiaSettings.java +++ b/core/src/cz/nic/tablexia/TablexiaSettings.java @@ -27,7 +27,8 @@ public class TablexiaSettings { private static final String PREFERENCES_KEY = "cz.nic.tablexia."; public static final String LOCALE_KEY = "locale"; - private static final String IDE_BUILD_VERSION_NAME = "DEVEL"; + private static final String IDE_BUILD_VERSION_NAME = "DEVEL"; + public static final String DEV_VERSION_TYPE = "-DEV-"; private final BuildType BUILD_TYPE; diff --git a/core/src/cz/nic/tablexia/loader/zip/ZipAssetLoader.java b/core/src/cz/nic/tablexia/loader/zip/ZipAssetLoader.java index 3659e4bd03266316c9a20fd2deb32e144382b429..a5468a95288b8344d217900a33fd4331f85f4754 100644 --- a/core/src/cz/nic/tablexia/loader/zip/ZipAssetLoader.java +++ b/core/src/cz/nic/tablexia/loader/zip/ZipAssetLoader.java @@ -43,8 +43,9 @@ public class ZipAssetLoader extends TablexiaDataManager<Void> implements IApplic private static final int TABLEXIA_ASSETS_DOWNLOAD_TIMEOUT = 2500; private static final String TABLEXIA_TRUST_KEYSTORE_NAME = "tablexiaTrustKeystore"; private static final String TABLEXIA_TRUST_KEYSTORE_PASSWORD = "tablexia"; - public static final int DOWNLOAD_TRY_COUNT = 3; + private static final String SNAPSHOT_PACKAGE_NAME = "SNAPSHOT"; + public static final int DOWNLOAD_TRY_COUNT = 3; private static final Object LOCK = new Object(); @@ -108,8 +109,20 @@ public class ZipAssetLoader extends TablexiaDataManager<Void> implements IApplic FileHandle assetsPackageFileHandle = TablexiaAbstractFileManager.getFileStoragePathFileHandle(ZIP_FILES_STORAGE_TYPE, zipAssetsPackageName); // check current package file and download it if it is necessary + boolean usedSnapshot = false; prepareKeyStore(); - if (!checkAndDownload(assetsPackageName)) { + if (TablexiaSettings.getInstance().getVersionName().contains(TablexiaSettings.DEV_VERSION_TYPE) || TablexiaSettings.getInstance().getBuildType() == TablexiaSettings.BuildType.DEVEL) { + Log.info(ZipAssetLoader.class, "Devel mode --> try to use SNAPSHOT assets package"); + String snapshotAssetsPackageName = language + "_" + SNAPSHOT_PACKAGE_NAME; + String snapshotZipAssetsPackageName = snapshotAssetsPackageName + ZIP_FILE_EXTENSION; + if (checkAndDownload(snapshotAssetsPackageName)) { + usedSnapshot = true; + assetsPackageFileHandle = TablexiaAbstractFileManager.getFileStoragePathFileHandle(ZIP_FILES_STORAGE_TYPE, snapshotZipAssetsPackageName); + } else { + Log.err(getClass(), String.format("Cannot download assets package: %s", snapshotZipAssetsPackageName)); + } + } + if (!usedSnapshot && !checkAndDownload(assetsPackageName)) { error(getClass(), String.format("Cannot download assets package: %s", zipAssetsPackageName)); return null; } diff --git a/desktop/src/cz/nic/tablexia/desktop/DesktopLauncher.java b/desktop/src/cz/nic/tablexia/desktop/DesktopLauncher.java index cc54dcaa48c3a9c098e7544c9bcb5579212cd8b3..058304682a11666ababfa9b9ec76db14ba8ce463 100644 --- a/desktop/src/cz/nic/tablexia/desktop/DesktopLauncher.java +++ b/desktop/src/cz/nic/tablexia/desktop/DesktopLauncher.java @@ -1,6 +1,5 @@ package cz.nic.tablexia.desktop; -import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Files; import com.badlogic.gdx.backends.lwjgl.LwjglApplication; import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration; diff --git a/util/checksum/build.gradle b/util/checksum/build.gradle index 049cd141f67c8f79c97d1dba5cbf2cc8852608d5..a5498f48f6ffb1c428c6db00831d374b8c0a3443 100644 --- a/util/checksum/build.gradle +++ b/util/checksum/build.gradle @@ -39,7 +39,7 @@ task runAssetsArchivesChecksum(dependsOn: [classes, rootProject.tasks.zipAssets] standardOutput = stdout doLast { - (new File("${assetsPackDir.getAbsolutePath()}${fileName.split("\\.")[0]}.checksum")).write(stdout.toString().trim()); + (new File("${assetsPackDir.getAbsolutePath()}/${fileName.split("\\.")[0]}.checksum")).write(stdout.toString().trim()); } }.execute() }