From d7596968cd5c7615e94950be5a913eb0c1e96359 Mon Sep 17 00:00:00 2001 From: Aharon Abadi <34122871+abadiwhitesource@users.noreply.github.com> Date: Thu, 28 Nov 2019 16:18:55 +0200 Subject: [PATCH] first commit --- .gitignore | 10 + .whitesource | 8 + LICENSE.txt | 202 + README.EUA.md | 9 + README.md | 40 + .../whitesource/update-request.txt | 1 + pom.xml | 537 + shiftleft.json | 5 + .../whitesource/agent/ConfigPropertyKeys.java | 252 + .../java/org/whitesource/agent/Constants.java | 124 + .../agent/DependencyCalculator.java | 79 + .../agent/DependencyInfoFactory.java | 424 + .../whitesource/agent/FileSystemScanner.java | 526 + .../agent/ProjectConfiguration.java | 69 + .../org/whitesource/agent/ProjectsSender.java | 479 + .../whitesource/agent/SingleFileScanner.java | 39 + .../org/whitesource/agent/TempFolders.java | 73 + .../org/whitesource/agent/ViaComponents.java | 37 + .../org/whitesource/agent/ViaLanguage.java | 19 + .../agent/archive/ArchiveExtractor.java | 600 + .../resolver/AbstractDependencyResolver.java | 113 + .../agent/dependency/resolver/BomFile.java | 172 + .../agent/dependency/resolver/BomParser.java | 64 + .../CocoaPodsDependencyCollector.java | 159 + .../CocoaPodsDependencyResolver.java | 142 + .../resolver/DependencyCollector.java | 44 + .../resolver/DependencyResolutionService.java | 389 + .../agent/dependency/resolver/IBomParser.java | 23 + .../dependency/resolver/ResolutionResult.java | 79 + .../dependency/resolver/ResolvedFolder.java | 47 + .../resolver/ViaMultiModuleAnalyzer.java | 121 + .../resolver/bower/BowerBomParser.java | 60 + .../bower/BowerDependencyResolver.java | 122 + .../bower/BowerLsJsonDependencyCollector.java | 138 + .../resolver/docker/AbstractParser.java | 60 + .../resolver/docker/AlpineParser.java | 100 + .../resolver/docker/ArchLinuxParser.java | 137 + .../resolver/docker/DebianParser.java | 121 + .../resolver/docker/DockerImage.java | 79 + .../resolver/docker/DockerResolver.java | 527 + .../dependency/resolver/docker/Package.java | 71 + .../dependency/resolver/docker/RpmParser.java | 98 + .../remotedocker/AbstractRemoteDocker.java | 389 + .../AbstractRemoteDockerImage.java | 83 + .../remotedocker/RemoteDockersManager.java | 56 + .../amazon/DockerImageAmazon.java | 59 + .../amazon/RemoteDockerAmazonECR.java | 366 + .../docker/remotedocker/azure/AzureCli.java | 64 + .../remotedocker/azure/AzureDockerImage.java | 33 + .../remotedocker/azure/AzureRemoteDocker.java | 249 + .../dotNet/DotNetDependencyResolver.java | 46 + .../dotNet/DotNetRestoreCollector.java | 28 + .../resolver/dotNet/RestoreCollector.java | 136 + .../resolver/go/GoDependencyManager.java | 30 + .../resolver/go/GoDependencyResolver.java | 1034 ++ .../dependency/resolver/gradle/GradleCli.java | 81 + .../gradle/GradleDependencyResolver.java | 405 + .../resolver/gradle/GradleLinesParser.java | 499 + .../resolver/gradle/GradleMvnCommand.java | 24 + .../resolver/hex/HexDependencyResolver.java | 447 + .../resolver/html/HtmlDependencyResolver.java | 223 + .../maven/MavenDependencyResolver.java | 200 + .../resolver/maven/MavenLinesParser.java | 94 + .../resolver/maven/MavenPomParser.java | 162 + .../maven/MavenTreeDependencyCollector.java | 324 + .../dependency/resolver/npm/NpmBomParser.java | 130 + .../resolver/npm/NpmDependencyResolver.java | 479 + .../npm/NpmLsJsonDependencyCollector.java | 320 + .../dependency/resolver/npm/RegistryType.java | 11 + .../resolver/npm/YarnDependencyCollector.java | 196 + .../nuget/NugetDependencyResolver.java | 158 + .../resolver/nuget/NugetRestoreCollector.java | 30 + .../packagesConfig/NugetConfigFileType.java | 9 + .../packagesConfig/NugetCsprojItemGroup.java | 49 + .../packagesConfig/NugetCsprojPackages.java | 28 + .../nuget/packagesConfig/NugetPackage.java | 61 + .../packagesConfig/NugetPackageInterface.java | 15 + .../nuget/packagesConfig/NugetPackages.java | 44 + .../NugetPackagesConfigXmlParser.java | 148 + .../packagesConfig/PackageReference.java | 46 + .../nuget/packagesConfig/ReferenceTag.java | 60 + .../packageManger/LinuxPkgManagerCommand.java | 19 + .../PackageManagerExtractor.java | 215 + .../resolver/php/PhpDependencyResolver.java | 298 + .../resolver/php/phpModel/PackageSource.java | 58 + .../resolver/php/phpModel/PhpModel.java | 70 + .../resolver/php/phpModel/PhpPackage.java | 94 + .../resolver/python/DependenciesFileType.java | 10 + .../python/PythonDependencyCollector.java | 702 + .../python/PythonDependencyResolver.java | 195 + .../dependency/resolver/ruby/RubyCli.java | 30 + .../resolver/ruby/RubyDependencyResolver.java | 658 + .../dependency/resolver/sbt/IvyReport.java | 156 + .../dependency/resolver/sbt/SbtBomParser.java | 33 + .../resolver/sbt/SbtDependencyResolver.java | 344 + .../AddDependencyFileRecursionHelper.java | 13 + .../java/org/whitesource/agent/utils/Cli.java | 59 + .../agent/utils/CommandLineProcess.java | 267 + .../whitesource/agent/utils/FilesScanner.java | 155 + .../whitesource/agent/utils/FilesUtils.java | 155 + .../whitesource/agent/utils/LogContext.java | 68 + .../org/whitesource/agent/utils/LoggerFS.java | 360 + .../agent/utils/LoggerFactory.java | 17 + .../agent/utils/MemoryUsageHelper.java | 102 + .../org/whitesource/agent/utils/Pair.java | 22 + .../agent/utils/UniqueNamesGenerator.java | 27 + .../agent/utils/WsStringUtils.java | 50 + .../org/whitesource/contracts/PluginInfo.java | 7 + .../org/whitesource/fs/CommandLineArgs.java | 180 + .../org/whitesource/fs/ComponentScan.java | 118 + .../org/whitesource/fs/ExtensionUtils.java | 87 + .../whitesource/fs/FSAConfigProperties.java | 153 + .../org/whitesource/fs/FSAConfigProperty.java | 11 + .../org/whitesource/fs/FSAConfiguration.java | 1291 ++ .../org/whitesource/fs/FileSystemAgent.java | 331 + .../whitesource/fs/FileSystemAgentInfo.java | 82 + .../org/whitesource/fs/LogMapAppender.java | 37 + .../org/whitesource/fs/LogMapDefiner.java | 31 + src/main/java/org/whitesource/fs/Main.java | 292 + .../org/whitesource/fs/OfflineReader.java | 110 + .../whitesource/fs/ProjectsCalculator.java | 63 + .../org/whitesource/fs/ProjectsDetails.java | 80 + .../java/org/whitesource/fs/StatusCode.java | 34 + .../java/org/whitesource/fs/WsSecret.java | 12 + .../fs/configuration/AgentConfiguration.java | 212 + .../ConfigurationSerializer.java | 133 + .../ConfigurationValidation.java | 76 + .../configuration/EndPointConfiguration.java | 67 + .../configuration/OfflineConfiguration.java | 71 + .../RemoteDockerAWSConfiguration.java | 42 + .../RemoteDockerConfiguration.java | 151 + .../configuration/RequestConfiguration.java | 184 + .../configuration/ResolverConfiguration.java | 884 ++ .../fs/configuration/ScmConfiguration.java | 126 + .../configuration/ScmRepositoriesParser.java | 71 + .../fs/configuration/SenderConfiguration.java | 180 + .../org/whitesource/scm/GitConnector.java | 114 + .../whitesource/scm/MercurialConnector.java | 48 + .../org/whitesource/scm/ScmConnector.java | 147 + .../java/org/whitesource/scm/ScmType.java | 33 + .../org/whitesource/scm/SvnConnector.java | 89 + .../scm/passphraseCredentialsProvider.java | 131 + .../java/org/whitesource/web/FsaVerticle.java | 206 + .../java/org/whitesource/web/ResultDto.java | 47 + src/main/resources/copyDependenciesTask.txt | 10 + src/main/resources/helpContent.txt | 62 + src/main/resources/logback-FSA.xml | 47 + src/main/resources/project.properties | 3 + .../.gradle/4.0/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../4.0/fileContent/annotation-processors.bin | Bin 0 -> 18533 bytes .../.gradle/4.0/fileContent/fileContent.lock | Bin 0 -> 17 bytes .../.gradle/4.0/fileHashes/fileHashes.bin | Bin 0 -> 20147 bytes .../.gradle/4.0/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../4.0/fileHashes/resourceHashesCache.bin | Bin 0 -> 18701 bytes .../.gradle/4.0/taskHistory/fileSnapshots.bin | Bin 0 -> 24635 bytes .../.gradle/4.0/taskHistory/taskHistory.bin | Bin 0 -> 28058 bytes .../.gradle/4.0/taskHistory/taskHistory.lock | Bin 0 -> 17 bytes .../.gradle/4.5.1/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../fileContent/annotation-processors.bin | Bin 0 -> 18533 bytes .../4.5.1/fileContent/fileContent.lock | Bin 0 -> 17 bytes .../.gradle/4.5.1/fileHashes/fileHashes.bin | Bin 0 -> 19347 bytes .../.gradle/4.5.1/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../4.5.1/fileHashes/resourceHashesCache.bin | Bin 0 -> 18701 bytes .../.gradle/4.5.1/taskHistory/taskHistory.bin | Bin 0 -> 23950 bytes .../4.5.1/taskHistory/taskHistory.lock | Bin 0 -> 17 bytes .../.gradle/4.8.1/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../.gradle/4.8.1/fileHashes/fileHashes.bin | Bin 0 -> 18597 bytes .../.gradle/4.8.1/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../.gradle/4.8.1/taskHistory/taskHistory.bin | Bin 0 -> 18722 bytes .../4.8.1/taskHistory/taskHistory.lock | Bin 0 -> 17 bytes .../.gradle/4.8/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../4.8/fileContent/annotation-processors.bin | Bin 0 -> 18633 bytes .../.gradle/4.8/fileContent/fileContent.lock | Bin 0 -> 17 bytes .../4.8/fileHashes/resourceHashesCache.bin | Bin 0 -> 18701 bytes .../.gradle/vcsWorkingDirs/gc.properties | 0 test_input/gradle/build.gradle | 16 + .../gradle/build/libs/elads-1.0-SNAPSHOT.jar | Bin 0 -> 1844 bytes test_input/gradle/build/tmp/jar/MANIFEST.MF | 2 + .../gradle/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54706 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + test_input/gradle/gradlew | 172 + test_input/gradle/gradlew.bat | 84 + test_input/gradle/settings.gradle | 2 + .../gradle/src/main/java/test/Hello.java | 5 + .../gradle/src/main/java/test/Hello2.java | 10 + .../gradle/src/main/java/test/Hello3.java | 8 + .../gradle/src/main/java/test/Main.java | 9 + test_input/ksa/.gitignore | 27 + test_input/ksa/LICENSE | 202 + test_input/ksa/README.md | 68 + test_input/ksa/doc/image/ksa.psd | Bin 0 -> 6567131 bytes test_input/ksa/doc/image/login-bg.jpg | Bin 0 -> 93868 bytes ...1\347\247\273\346\226\271\346\241\210.doc" | Bin 0 -> 29747 bytes test_input/ksa/ksa-core/pom.xml | 50 + .../com/ksa/context/ContextException.java | 57 + .../java/com/ksa/context/ServiceContext.java | 45 + .../com/ksa/context/ServiceContextUtils.java | 72 + .../context/spring/SpringServiceContext.java | 49 + .../java/com/ksa/dao/AbstractQueryClause.java | 95 + .../java/com/ksa/dao/DateQueryClause.java | 61 + .../java/com/ksa/dao/MultiIdsQueryClause.java | 31 + .../main/java/com/ksa/dao/QueryClause.java | 20 + .../java/com/ksa/dao/TextQueryClause.java | 29 + .../java/com/ksa/dao/bd/BasicDataDao.java | 23 + .../java/com/ksa/dao/bd/CurrencyRateDao.java | 121 + .../main/java/com/ksa/dao/bd/PartnerDao.java | 25 + .../dao/finance/AccountCurrencyRateDao.java | 21 + .../java/com/ksa/dao/finance/AccountDao.java | 28 + .../java/com/ksa/dao/finance/ChargeDao.java | 23 + .../java/com/ksa/dao/finance/InvoiceDao.java | 23 + .../logistics/AbstractLogisticsModelDao.java | 13 + .../com/ksa/dao/logistics/ArrivalNoteDao.java | 8 + .../ksa/dao/logistics/BillOfLadingDao.java | 8 + .../dao/logistics/BookingNoteCargoDao.java | 20 + .../com/ksa/dao/logistics/BookingNoteDao.java | 29 + .../com/ksa/dao/logistics/ManifestDao.java | 8 + .../dao/logistics/WarehouseBookingDao.java | 8 + .../ksa/dao/logistics/WarehouseNotingDao.java | 8 + .../com/ksa/dao/security/PermissionDao.java | 38 + .../java/com/ksa/dao/security/RoleDao.java | 72 + .../java/com/ksa/dao/security/UserDao.java | 72 + .../main/java/com/ksa/model/BaseModel.java | 41 + .../main/java/com/ksa/model/ModelState.java | 122 + .../main/java/com/ksa/model/ModelUtils.java | 88 + .../main/java/com/ksa/model/bd/BasicData.java | 104 + .../java/com/ksa/model/bd/BasicDataType.java | 104 + .../java/com/ksa/model/bd/ChargeType.java | 18 + .../main/java/com/ksa/model/bd/Currency.java | 61 + .../java/com/ksa/model/bd/CurrencyRate.java | 59 + .../main/java/com/ksa/model/bd/Partner.java | 145 + .../java/com/ksa/model/bd/PartnerType.java | 18 + .../ksa/model/business/DebitNoteCharge.java | 72 + .../ksa/model/business/RecordBillCharge.java | 195 + .../business/RecordBillChargeGather.java | 63 + .../ksa/model/business/RecordBillProfit.java | 77 + .../java/com/ksa/model/finance/Account.java | 137 + .../model/finance/AccountCurrencyRate.java | 19 + .../com/ksa/model/finance/AccountState.java | 47 + .../ksa/model/finance/BookingNoteCharge.java | 21 + .../model/finance/BookingNoteChargeState.java | 210 + .../ksa/model/finance/BookingNoteProfit.java | 84 + .../java/com/ksa/model/finance/Charge.java | 214 + .../com/ksa/model/finance/FinanceModel.java | 84 + .../java/com/ksa/model/finance/Invoice.java | 135 + .../com/ksa/model/logistics/ArrivalNote.java | 311 + .../model/logistics/BaseLogisticsModel.java | 49 + .../com/ksa/model/logistics/BillOfLading.java | 321 + .../com/ksa/model/logistics/BookingNote.java | 801 ++ .../ksa/model/logistics/BookingNoteCargo.java | 70 + .../ksa/model/logistics/BookingNoteState.java | 57 + .../com/ksa/model/logistics/Manifest.java | 258 + .../ksa/model/logistics/WarehouseBooking.java | 354 + .../ksa/model/logistics/WarehouseNoting.java | 342 + .../com/ksa/model/security/Permission.java | 39 + .../java/com/ksa/model/security/Role.java | 50 + .../java/com/ksa/model/security/User.java | 84 + .../com/ksa/service/bd/BasicDataService.java | 44 + .../ksa/service/bd/CurrencyRateService.java | 74 + .../com/ksa/service/bd/PartnerService.java | 53 + .../ksa/service/finance/AccountService.java | 62 + .../ksa/service/finance/ChargeService.java | 100 + .../ksa/service/finance/InvoiceService.java | 23 + .../service/logistics/BookingNoteService.java | 61 + .../ksa/service/security/SecurityService.java | 135 + .../src/main/java/com/ksa/util/Assert.java | 386 + .../main/java/com/ksa/util/ClassUtils.java | 1058 ++ .../java/com/ksa/util/CollectionUtils.java | 296 + .../main/java/com/ksa/util/ObjectUtils.java | 830 ++ .../java/com/ksa/util/ReflectionUtils.java | 605 + .../main/java/com/ksa/util/ResourceUtils.java | 351 + .../main/java/com/ksa/util/StringUtils.java | 1100 ++ .../main/java/com/ksa/util/codec/Base64.java | 1170 ++ .../java/com/ksa/util/codec/CharEncoding.java | 109 + test_input/ksa/ksa-dao-context/pom.xml | 40 + .../java/com/ksa/dao/AbstractMybatisDao.java | 24 + .../dao/mybatis/dialect/H2LimitDialect.java | 29 + .../ksa/dao/mybatis/dialect/LimitDialect.java | 28 + .../mybatis/dialect/MysqlLimitDialect.java | 32 + .../mybatis/dialect/OracleLimitDialect.java | 54 + .../dao/mybatis/plugin/PaginationPlugin.java | 184 + .../ksa/dao/mybatis/session/RowBounds.java | 8 + .../ksa/dao/mybatis/util/ReflectUtils.java | 99 + .../dao/mybatis/plugin/pagination.properties | 5 + .../main/resources/mybatis/mybatis-config.xml | 7 + .../main/resources/spring/dao/dao-config.xml | 30 + .../ksa/ksa-dao-root/ksa-bd-dao/pom.xml | 20 + .../dao/bd/mybatis/MybatisBasicDataDao.java | 48 + .../bd/mybatis/MybatisCurrencyRateDao.java | 132 + .../ksa/dao/bd/mybatis/MybatisPartnerDao.java | 77 + .../mybatis/mapper/bd-currency-rate.xml | 128 + .../resources/mybatis/mapper/bd-currency.xml | 27 + .../main/resources/mybatis/mapper/bd-data.xml | 103 + .../mybatis/mapper/bd-partner-extra.xml | 38 + .../mybatis/mapper/bd-partner-type.xml | 55 + .../resources/mybatis/mapper/bd-partner.xml | 132 + .../resources/spring/dao/bd-dao-context.xml | 17 + .../bd/mybatis/MybatisBasicDataDaoTest.java | 81 + .../mybatis/MybatisCurrencyRateDaoTest.java | 174 + .../dao/bd/mybatis/MybatisPartnerDaoTest.java | 138 + .../ksa-bd-dao/src/test/resources/init.sql | 509 + .../ksa/ksa-dao-root/ksa-finance-dao/pom.xml | 28 + .../MybatisAccountCurrencyRateDao.java | 37 + .../finance/mybatis/MybatisAccountDao.java | 79 + .../dao/finance/mybatis/MybatisChargeDao.java | 71 + .../finance/mybatis/MybatisInvoiceDao.java | 48 + .../mapper/finance-account-bookingnote.xml | 18 + .../mapper/finance-account-currency-rate.xml | 66 + .../mybatis/mapper/finance-account.xml | 147 + .../mybatis/mapper/finance-bookingnote.xml | 274 + .../mapper/finance-charge-bookingnote.xml | 11 + .../mybatis/mapper/finance-charge.xml | 197 + .../mybatis/mapper/finance-invoice.xml | 138 + .../mybatis/mapper/finance-profit-charge.xml | 54 + .../mybatis/mapper/finance-profit.xml | 194 + .../spring/dao/finance-dao-context.xml | 20 + .../MybatisAccountCurrencyRateDaoTest.java | 63 + .../mybatis/MybatisAccountDaoTest.java | 88 + .../finance/mybatis/MybatisChargeDaoTest.java | 106 + .../mybatis/MybatisInvoiceDaoTest.java | 98 + .../src/test/resources/init.sql | 220 + .../ksa-dao-root/ksa-logistics-dao/pom.xml | 20 + .../mybatis/MybatisArrivalNoteDao.java | 35 + .../mybatis/MybatisBillOfLadingDao.java | 35 + .../mybatis/MybatisBookingNoteCargoDao.java | 43 + .../mybatis/MybatisBookingNoteDao.java | 86 + .../logistics/mybatis/MybatisManifestDao.java | 35 + .../mybatis/MybatisWarehouseBookingDao.java | 35 + .../mybatis/MybatisWarehouseNotingDao.java | 35 + .../mybatis/mapper/logistics-arrivalnote.xml | 98 + .../mybatis/mapper/logistics-billoflading.xml | 95 + .../mapper/logistics-bookingnote-cargo.xml | 48 + .../mybatis/mapper/logistics-bookingnote.xml | 442 + .../mybatis/mapper/logistics-manifest.xml | 88 + .../mapper/logistics-warehouse-booking.xml | 108 + .../mapper/logistics-warehouse-noting.xml | 93 + .../spring/dao/logistics-dao-context.xml | 29 + .../mybatis/MybatisBillOfLadingDaoTest.java | 130 + .../mybatis/MybatisBookingNoteDaoTest.java | 354 + .../mybatis/MybatisManifestDaoTest.java | 109 + .../MybatisWarehouseBookingDaoTest.java | 146 + .../MybatisWarehouseNotingDaoTest.java | 117 + .../src/test/resources/init.sql | 352 + .../ksa/ksa-dao-root/ksa-security-dao/pom.xml | 20 + .../mybatis/MybatisPermissionDao.java | 32 + .../dao/security/mybatis/MybatisRoleDao.java | 61 + .../dao/security/mybatis/MybatisUserDao.java | 61 + .../mybatis/mapper/security-permission.xml | 69 + .../mybatis/mapper/security-role.xml | 109 + .../mybatis/mapper/security-user.xml | 112 + .../spring/dao/security-dao-context.xml | 17 + .../security/mybatis/MybatisRoleDaoTest.java | 81 + .../security/mybatis/MybatisUserDaoTest.java | 74 + .../src/test/resources/init.sql | 88 + test_input/ksa/ksa-dao-root/pom.xml | 47 + test_input/ksa/ksa-debug/pom.xml | 63 + .../main/java/com/ksa/dao/MybatisDaoTest.java | 19 + .../java/com/ksa/freemarker/TemplateTest.java | 33 + .../com/ksa/h2/H2DataSourceFactoryBean.java | 197 + .../src/main/resources/log4j.properties | 10 + .../src/main/resources/struts.properties | 2 + .../resources/test/mybatis-test-context.xml | 21 + .../ksa-service-root/ksa-bd-service/pom.xml | 24 + .../service/bd/impl/BasicDataServiceImpl.java | 69 + .../bd/impl/CurrencyRateServiceImpl.java | 207 + .../service/bd/impl/PartnerServiceImpl.java | 155 + .../ksa/service/bd/util/BasicDataUtils.java | 131 + .../spring/service/bd-service-context.xml | 20 + .../ksa-finance-service/pom.xml | 28 + .../finance/impl/AccountServiceImpl.java | 249 + .../finance/impl/ChargeServiceImpl.java | 448 + .../finance/impl/InvoiceServiceImpl.java | 114 + .../service/finance-service-context.xml | 26 + .../ksa-logistics-service/pom.xml | 24 + .../impl/BookingNoteServiceImpl.java | 299 + .../service/logistics-service-context.xml | 12 + .../ksa-security-service/pom.xml | 35 + .../security/impl/SecurityServiceImpl.java | 249 + .../security/shiro/PasswordMatcher.java | 24 + .../service/security/shiro/ShiroRealm.java | 63 + .../service/security/util/SecurityUtils.java | 87 + .../service/security-service-context.xml | 14 + test_input/ksa/ksa-service-root/pom.xml | 35 + test_input/ksa/ksa-web-core/pom.xml | 91 + .../ksa/context/web/RuntimeConfiguration.java | 38 + .../web/SpringServiceContextListener.java | 44 + .../shiro/freemarker/AuthenticatedTag.java | 45 + .../com/ksa/shiro/freemarker/GuestTag.java | 43 + .../freemarker/HasAnyPermissionsTag.java | 28 + .../ksa/shiro/freemarker/HasAnyRolesTag.java | 51 + .../shiro/freemarker/HasPermissionTag.java | 12 + .../com/ksa/shiro/freemarker/HasRoleTag.java | 10 + .../shiro/freemarker/LacksPermissionTag.java | 10 + .../ksa/shiro/freemarker/LacksRoleTag.java | 11 + .../shiro/freemarker/NotAuthenticatedTag.java | 33 + .../ksa/shiro/freemarker/PermissionTag.java | 45 + .../ksa/shiro/freemarker/PrincipalTag.java | 121 + .../com/ksa/shiro/freemarker/RoleTag.java | 28 + .../com/ksa/shiro/freemarker/SecureTag.java | 47 + .../com/ksa/shiro/freemarker/ShiroTags.java | 25 + .../com/ksa/shiro/freemarker/UserTag.java | 38 + .../ksa/shiro/web/tags/HasAnyPermissions.java | 31 + .../com/ksa/system/backup/BackupSchedule.java | 105 + .../com/ksa/system/backup/BackupTask.java | 107 + .../web/servlet/BackupScheduleListener.java | 29 + .../struts2/action/DefaultActionSupport.java | 37 + .../ksa/web/struts2/action/JsonAction.java | 12 + .../struts2/action/data/ComboDataAction.java | 12 + .../action/data/DataActionSupport.java | 32 + .../action/data/DefaultComboDataAction.java | 43 + .../action/data/DefaultGridDataAction.java | 63 + .../struts2/action/data/GridDataAction.java | 44 + .../action/data/GridDataActionSupport.java | 70 + .../struts2/action/model/GridDataModel.java | 62 + .../web/struts2/action/model/JsonResult.java | 64 + .../DataInitializedInterceptor.java | 33 + .../freemarker/FreemarkerStreamResult.java | 99 + .../freemarker/ShiroFreemarkerManager.java | 25 + .../web/wro4j/HttpServletRequestWrapper.java | 318 + .../web/wro4j/MultiXmlWroModelFactory.java | 82 + .../java/com/ksa/web/wro4j/WroFilter.java | 471 + .../web/wro4j/WroModelConfigurationCache.java | 54 + .../src/main/resources/META-INF/ksa-shiro.tld | 158 + .../src/main/resources/struts-default.xml | 65 + .../resources/struts2/struts-combodata.xml | 23 + .../resources/struts2/struts-griddata.xml | 23 + .../template/exception/service-exception.ftl | 13 + .../main/resources/template/no-permission.ftl | 11 + .../src/main/scripts/META-INF/ksa-shiro.tld | 158 + .../src/main/scripts/ksa-shiro.tld | 158 + .../ksa/ksa-web-root/ksa-bd-web/pom.xml | 33 + .../action/bd/currency/DateRateAction.java | 67 + .../action/bd/currency/PartnerRateAction.java | 26 + .../action/bd/currency/RateAction.java | 31 + .../action/bd/currency/RateSaveAction.java | 31 + .../currency/data/DateRateGridDataAction.java | 86 + .../data/PartnerRateGridDataAction.java | 55 + .../action/bd/data/BasicDataAction.java | 59 + .../action/bd/data/BasicDataDeleteAction.java | 42 + .../action/bd/data/BasicDataEditAction.java | 21 + .../action/bd/data/BasicDataInsertAction.java | 52 + .../action/bd/data/BasicDataUpdateAction.java | 56 + .../action/bd/partner/PartnerAction.java | 31 + .../bd/partner/PartnerDeleteAction.java | 42 + .../action/bd/partner/PartnerEditAction.java | 16 + .../action/bd/partner/PartnerExtraAction.java | 72 + .../bd/partner/PartnerInsertAction.java | 61 + .../bd/partner/PartnerUpdateAction.java | 65 + .../src/main/resources/js/bd/utils.js | 38 + .../src/main/resources/struts-plugin.xml | 9 + .../resources/struts2/struts-bd-component.xml | 27 + .../resources/struts2/struts-bd-currency.xml | 40 + .../main/resources/struts2/struts-bd-data.xml | 40 + .../resources/struts2/struts-bd-partner.xml | 40 + .../ui/bd/component/department-selection.ftl | 25 + .../ui/bd/component/department-selection.js | 42 + .../bd/component/partner-alias-selection.ftl | 34 + .../bd/component/partner-alias-selection.js | 120 + .../resources/ui/bd/currency/date/default.ftl | 26 + .../resources/ui/bd/currency/date/default.js | 76 + .../main/resources/ui/bd/currency/default.ftl | 15 + .../main/resources/ui/bd/currency/default.js | 8 + .../ui/bd/currency/partner/default.ftl | 24 + .../ui/bd/currency/partner/default.js | 75 + .../main/resources/ui/bd/data/create-data.ftl | 68 + .../src/main/resources/ui/bd/data/default.ftl | 39 + .../src/main/resources/ui/bd/data/default.js | 129 + .../main/resources/ui/bd/data/edit-data.ftl | 69 + .../ui/bd/partner/create-partner.ftl | 114 + .../main/resources/ui/bd/partner/default.ftl | 34 + .../main/resources/ui/bd/partner/default.js | 111 + .../resources/ui/bd/partner/edit-partner.ftl | 124 + .../main/resources/ui/bd/partner/partner.js | 104 + .../ksa-bd-web/src/main/resources/wro.xml | 10 + .../ksa/ksa-web-root/ksa-finance-web/pom.xml | 33 + .../action/finance/account/AccountAction.java | 84 + .../account/AccountCodeComputeAction.java | 55 + .../finance/account/AccountDeleteAction.java | 30 + .../account/AccountDownloadAction.java | 197 + .../finance/account/AccountEditAction.java | 49 + .../finance/account/AccountExcelAction.java | 228 + .../finance/account/AccountQueryAction.java | 95 + .../account/AccountRateGridDataAction.java | 39 + .../finance/account/AccountSaveAction.java | 38 + .../finance/account/AccountStateAction.java | 72 + .../finance/account/map/ValueGetter.java | 9 + .../AbstractBookingNoteValueGetter.java | 27 + .../map/bookingnote/AgentValueGetter.java | 21 + .../CargoContainerValueGetter.java | 18 + .../map/bookingnote/CargoNameValueGetter.java | 18 + .../bookingnote/CargoQuantityValueGetter.java | 29 + .../bookingnote/CargoVolumnValueGetter.java | 24 + .../bookingnote/CargoWeightValueGetter.java | 24 + .../map/bookingnote/CodeValueGetter.java | 18 + .../map/bookingnote/ConsigneeValueGetter.java | 21 + .../bookingnote/CreatedDateValueGetter.java | 21 + .../map/bookingnote/CreatorValueGetter.java | 21 + .../map/bookingnote/CustomerValueGetter.java | 21 + .../bookingnote/CustomsBrokerValueGetter.java | 21 + .../bookingnote/CustomsCodeValueGetter.java | 18 + .../bookingnote/CustomsDateValueGetter.java | 21 + .../bookingnote/DepartureDateValueGetter.java | 21 + .../bookingnote/DeparturePortValueGetter.java | 23 + .../DestinationDateValueGetter.java | 21 + .../DestinationPortValueGetter.java | 24 + .../map/bookingnote/InvoiceValueGetter.java | 18 + .../map/bookingnote/MawbValueGetter.java | 33 + .../map/bookingnote/RouteNameValueGetter.java | 30 + .../map/bookingnote/RouteValueGetter.java | 18 + .../map/bookingnote/SalerValueGetter.java | 21 + .../map/bookingnote/ShipperValueGetter.java | 21 + .../map/bookingnote/TypeValueGetter.java | 44 + .../finance/business/DebitNoteAction.java | 101 + .../finance/business/RecordBillAction.java | 233 + .../action/finance/charge/ChargeAction.java | 155 + .../finance/charge/ChargeEditAction.java | 75 + .../finance/charge/ChargeQueryAction.java | 179 + .../finance/charge/ChargeSaveAction.java | 27 + .../finance/charge/ChargeStateAction.java | 52 + .../charge/ForeignChargeQueryAction.java | 19 + .../charge/NativeChargeQueryAction.java | 19 + .../charge/single/ChargeSingleAction.java | 147 + .../charge/single/ChargeSingleEditAction.java | 50 + .../single/ChargeSingleQueryAction.java | 93 + .../charge/single/ChargeSingleSaveAction.java | 24 + .../single/ChargeSingleStateAction.java | 53 + .../component/FinanceSelectionAction.java | 40 + .../action/finance/invoice/InvoiceAction.java | 42 + .../finance/invoice/InvoiceAssignAction.java | 40 + .../finance/invoice/InvoiceDeleteAction.java | 33 + .../finance/invoice/InvoiceEditAction.java | 20 + .../finance/invoice/InvoiceQueryAction.java | 137 + .../finance/invoice/InvoiceSaveAction.java | 19 + .../finance/profit/ProfitQueryAction.java | 20 + .../query/AccountStateQueryClause.java | 60 + .../finance/query/ChargeStateQueryClause.java | 64 + .../query/FinanceDirectionQueryClause.java | 56 + .../query/InvoiceStateQueryClause.java | 62 + .../src/main/resources/js/finance/utils.js | 54 + .../portal/finance/account/default.ftl | 38 + .../portal/finance/account/default.js | 145 + .../portal/finance/charge/default.ftl | 23 + .../portal/finance/charge/default.js | 68 + .../src/main/resources/struts-plugin.xml | 12 + .../struts2/struts-finance-account.xml | 92 + .../struts2/struts-finance-charge-single.xml | 47 + .../struts2/struts-finance-charge.xml | 49 + .../struts2/struts-finance-component.xml | 22 + .../struts2/struts-finance-invoice.xml | 45 + .../struts2/struts-finance-profit.xml | 20 + .../struts2/struts-finance-recordbill.xml | 45 + .../ui/finance/account/account-detail.ftl | 109 + .../ui/finance/account/account-excel.ftl | 70 + .../ui/finance/account/account-excel.js | 91 + .../account/account-query-condition.js | 82 + .../finance/account/account-table-column.js | 118 + .../resources/ui/finance/account/account.css | 24 + .../resources/ui/finance/account/account.ftl | 30 + .../resources/ui/finance/account/account.js | 307 + .../resources/ui/finance/account/create.ftl | 34 + .../ui/finance/account/default-doinvoice.ftl | 46 + .../resources/ui/finance/account/default.ftl | 63 + .../resources/ui/finance/account/default.js | 267 + .../resources/ui/finance/account/edit.ftl | 27 + .../ui/finance/account/excel/account-1.ftl | 144 + .../ui/finance/account/excel/account.ftl | 60 + .../ui/finance/account/excel/account1.ftl | 223 + .../resources/ui/finance/account/invoice.ftl | 59 + .../resources/ui/finance/account/invoice.js | 101 + .../ui/finance/business/debitNote.ftl | 2400 ++++ .../ui/finance/business/recordbill-ex.ftl | 2594 ++++ .../ui/finance/business/recordbill-im.ftl | 2594 ++++ .../ui/finance/business/recordbill-ly.ftl | 2594 ++++ .../ui/finance/business/recordbill.ftl | 3794 +++++ ...215\225\350\277\233\345\217\243-3.5.2.xml" | 3320 +++++ ...215\225\350\277\233\345\217\243-3.5.3.xml" | 3203 +++++ .../charge-single/charge-single-column.js | 215 + .../charge-single/charge-single-condition.js | 78 + .../ui/finance/charge-single/checking.ftl | 39 + .../ui/finance/charge-single/checking.js | 122 + .../ui/finance/charge-single/default.ftl | 44 + .../ui/finance/charge-single/default.js | 120 + .../ui/finance/charge-single/view.css | 17 + .../ui/finance/charge-single/view.ftl | 227 + .../ui/finance/charge-single/view.js | 425 + .../charge/bookingnote-query-condition.js | 65 + .../charge/bookingnote-table-column.js | 116 + .../finance/charge/charge-query-condition.js | 102 + .../ui/finance/charge/charge-table-column.js | 185 + .../resources/ui/finance/charge/checking.ftl | 42 + .../resources/ui/finance/charge/checking.js | 130 + .../resources/ui/finance/charge/default.ftl | 47 + .../resources/ui/finance/charge/default.js | 134 + .../main/resources/ui/finance/charge/view.css | 19 + .../main/resources/ui/finance/charge/view.ftl | 256 + .../main/resources/ui/finance/charge/view.js | 601 + .../component/bookingnote-selection.ftl | 34 + .../component/bookingnote-selection.js | 71 + .../ui/finance/component/charge-selection.ftl | 32 + .../ui/finance/component/charge-selection.js | 115 + .../component/charge-template-selection.ftl | 32 + .../component/charge-template-selection.js | 71 + .../component/charge-treetable-column.js | 191 + .../finance/component/invoice-selection.ftl | 32 + .../ui/finance/component/invoice-selection.js | 75 + .../resources/ui/finance/invoice/default.ftl | 30 + .../resources/ui/finance/invoice/default.js | 93 + .../invoice/invoice-query-condition.js | 28 + .../finance/invoice/invoice-table-column.js | 80 + .../resources/ui/finance/invoice/view.css | 7 + .../resources/ui/finance/invoice/view.ftl | 130 + .../main/resources/ui/finance/invoice/view.js | 10 + .../finance/profit/profit-query-condition.js | 84 + .../ui/finance/profit/profit-table-column.js | 307 + .../ksa-web-root/ksa-logistics-web/pom.xml | 43 + .../action/logistics/DefaultAction.java | 69 + .../logistics/LogisticsModelAction.java | 48 + .../logistics/LogisticsModelDeleteAction.java | 23 + .../LogisticsModelDownloadAction.java | 58 + .../logistics/LogisticsModelSaveAction.java | 29 + .../arrivalnote/ArrivalNoteAction.java | 46 + .../arrivalnote/ArrivalNoteDeleteAction.java | 46 + .../ArrivalNoteDownloadAction.java | 53 + .../arrivalnote/ArrivalNoteSaveAction.java | 24 + .../billoflading/BillOfLadingAction.java | 64 + .../BillOfLadingCopyPoiDownloadAction.java | 12 + .../BillOfLadingDeleteAction.java | 65 + .../BillOfLadingDownloadAction.java | 70 + .../BillOfLadingPoiDownloadAction.java | 162 + .../billoflading/BillOfLadingSaveAction.java | 26 + .../bookingnote/BookingNoteAction.java | 27 + .../BookingNoteChangeTypeAction.java | 41 + .../bookingnote/BookingNoteDeleteAction.java | 41 + .../BookingNoteDownloadAction.java | 65 + .../bookingnote/BookingNoteQueryAction.java | 288 + .../BookingNoteReturnQueryAction.java | 73 + .../bookingnote/BookingNoteSaveAction.java | 86 + .../query/AccountStateQueryClause.java | 72 + .../query/BookingNoteStateQueryClause.java | 153 + .../logistics/manifest/ManifestAction.java | 45 + .../manifest/ManifestDeleteAction.java | 46 + .../manifest/ManifestSaveAction.java | 24 + .../WarehouseBookingAction.java | 47 + .../WarehouseBookingDeleteAction.java | 47 + .../WarehouseBookingSaveAction.java | 24 + .../WarehouseNotingAction.java | 24 + .../WarehouseNotingDeleteAction.java | 24 + .../WarehouseNotingDownloadAction.java | 36 + .../WarehouseNotingSaveAction.java | 24 + .../src/main/resources/js/logistics/utils.js | 18 + .../resources/portal/logistics/default.ftl | 55 + .../resources/portal/logistics/default.js | 80 + .../portal/logistics/return-notify.ftl | 25 + .../portal/logistics/return-notify.js | 52 + .../src/main/resources/struts-plugin.xml | 45 + .../resources/struts2/struts-arrivalnote.xml | 35 + .../resources/struts2/struts-billoflading.xml | 40 + .../resources/struts2/struts-bookingnote.xml | 70 + .../struts2/struts-logistics-component.xml | 12 + .../resources/struts2/struts-manifest.xml | 23 + .../struts2/struts-warehousebooking.xml | 23 + .../struts2/struts-warehousenoting.xml | 36 + .../ui/logistics/ae/arrivalnote-excel.ftl | 926 ++ .../resources/ui/logistics/ae/arrivalnote.ftl | 269 + .../resources/ui/logistics/ae/arrivalnote.js | 18 + .../logistics/ae/billoflading-copy-excel.ftl | 2413 ++++ .../ui/logistics/ae/billoflading-excel.ftl | 596 + .../ae/billoflading-original-excel.ftl | 2225 +++ .../ui/logistics/ae/billoflading.ftl | 207 + .../resources/ui/logistics/ae/billoflading.js | 49 + .../ui/logistics/ae/bookingnote-detail.ftl | 430 + .../resources/ui/logistics/ae/bookingnote.ftl | 18 + .../main/resources/ui/logistics/ae/create.ftl | 25 + .../main/resources/ui/logistics/ae/edit.ftl | 23 + .../resources/ui/logistics/ae/manifest.ftl | 110 + .../resources/ui/logistics/ae/manifest.js | 15 + .../ui/logistics/ae/warehouse-booking.ftl | 176 + .../ui/logistics/ae/warehouse-booking.js | 21 + .../logistics/ae/warehouse-noting-excel.ftl | 187 + .../ui/logistics/ae/warehouse-noting-word.ftl | 296 + .../ui/logistics/ae/warehouse-noting.ftl | 158 + .../ui/logistics/ae/warehouse-noting.js | 30 + .../ui/logistics/ai/arrivalnote-excel.ftl | 926 ++ .../resources/ui/logistics/ai/arrivalnote.ftl | 269 + .../resources/ui/logistics/ai/arrivalnote.js | 18 + .../ui/logistics/ai/bookingnote-detail.ftl | 423 + .../resources/ui/logistics/ai/bookingnote.ftl | 18 + .../main/resources/ui/logistics/ai/create.ftl | 25 + .../main/resources/ui/logistics/ai/edit.ftl | 19 + .../resources/ui/logistics/ai/manifest.ftl | 110 + .../resources/ui/logistics/ai/manifest.js | 15 + .../ui/logistics/bc/bookingnote-detail.ftl | 431 + .../resources/ui/logistics/bc/bookingnote.ftl | 18 + .../main/resources/ui/logistics/bc/create.ftl | 25 + .../main/resources/ui/logistics/bc/edit.ftl | 25 + .../logistics/bookingnote-query-condition.js | 77 + .../ui/logistics/bookingnote-table-column.js | 89 + .../resources/ui/logistics/bookingnote.css | 17 + .../resources/ui/logistics/bookingnote.js | 312 + .../ui/logistics/cc/bookingnote-detail.ftl | 431 + .../resources/ui/logistics/cc/bookingnote.ftl | 18 + .../main/resources/ui/logistics/cc/create.ftl | 25 + .../main/resources/ui/logistics/cc/edit.ftl | 25 + .../component/bookingnote-selection.ftl | 29 + .../component/bookingnote-selection.js | 71 + .../resources/ui/logistics/copy-template.js | 17 + .../main/resources/ui/logistics/default.ftl | 80 + .../main/resources/ui/logistics/default.js | 148 + .../logistics/excel/bookingnote-download.ftl | 177 + .../ui/logistics/gn/bookingnote-detail.ftl | 376 + .../resources/ui/logistics/gn/bookingnote.ftl | 18 + .../main/resources/ui/logistics/gn/create.ftl | 25 + .../main/resources/ui/logistics/gn/edit.ftl | 25 + .../ui/logistics/kb/bookingnote-detail.ftl | 431 + .../resources/ui/logistics/kb/bookingnote.ftl | 18 + .../main/resources/ui/logistics/kb/create.ftl | 25 + .../main/resources/ui/logistics/kb/edit.ftl | 25 + .../ui/logistics/ly/bookingnote-detail.ftl | 376 + .../resources/ui/logistics/ly/bookingnote.ftl | 18 + .../main/resources/ui/logistics/ly/create.ftl | 25 + .../main/resources/ui/logistics/ly/edit.ftl | 25 + .../return-notify-query-condition.js | 84 + .../logistics/return-notify-table-column.js | 115 + .../resources/ui/logistics/return-notify.ftl | 42 + .../resources/ui/logistics/return-notify.js | 83 + .../ui/logistics/rh/bookingnote-detail.ftl | 431 + .../resources/ui/logistics/rh/bookingnote.ftl | 18 + .../main/resources/ui/logistics/rh/create.ftl | 25 + .../main/resources/ui/logistics/rh/edit.ftl | 25 + .../ui/logistics/se/arrivalnote-excel.ftl | 926 ++ .../resources/ui/logistics/se/arrivalnote.ftl | 269 + .../resources/ui/logistics/se/arrivalnote.js | 18 + .../logistics/se/billoflading-copy-excel.ftl | 2413 ++++ .../ui/logistics/se/billoflading-excel.ftl | 596 + .../se/billoflading-original-excel.ftl | 2225 +++ .../ui/logistics/se/billoflading.ftl | 221 + .../resources/ui/logistics/se/billoflading.js | 55 + .../ui/logistics/se/bookingnote-detail.ftl | 439 + .../resources/ui/logistics/se/bookingnote.ftl | 18 + .../main/resources/ui/logistics/se/create.ftl | 25 + .../main/resources/ui/logistics/se/edit.ftl | 21 + .../ui/logistics/se/warehouse-booking.ftl | 174 + .../ui/logistics/se/warehouse-booking.js | 21 + .../logistics/se/warehouse-noting-excel.ftl | 187 + .../ui/logistics/se/warehouse-noting-word.ftl | 296 + .../ui/logistics/se/warehouse-noting.ftl | 158 + .../ui/logistics/se/warehouse-noting.js | 30 + .../ui/logistics/si/arrivalnote-excel.ftl | 926 ++ .../resources/ui/logistics/si/arrivalnote.ftl | 269 + .../resources/ui/logistics/si/arrivalnote.js | 18 + .../ui/logistics/si/bookingnote-detail.ftl | 439 + .../resources/ui/logistics/si/bookingnote.ftl | 18 + .../main/resources/ui/logistics/si/create.ftl | 25 + .../main/resources/ui/logistics/si/edit.ftl | 17 + .../ui/logistics/tl/bookingnote-detail.ftl | 431 + .../resources/ui/logistics/tl/bookingnote.ftl | 18 + .../main/resources/ui/logistics/tl/create.ftl | 25 + .../main/resources/ui/logistics/tl/edit.ftl | 25 + .../ui/logistics/tmpl/billoflading-copy.xls | Bin 0 -> 269824 bytes .../ui/logistics/tmpl/billoflading.xls | Bin 0 -> 267776 bytes .../ui/logistics/zj/arrivalnote-excel.ftl | 926 ++ .../resources/ui/logistics/zj/arrivalnote.ftl | 269 + .../resources/ui/logistics/zj/arrivalnote.js | 18 + .../ui/logistics/zj/bookingnote-detail.ftl | 423 + .../resources/ui/logistics/zj/bookingnote.ftl | 18 + .../main/resources/ui/logistics/zj/create.ftl | 25 + .../main/resources/ui/logistics/zj/edit.ftl | 21 + .../resources/ui/logistics/zj/manifest.ftl | 110 + .../resources/ui/logistics/zj/manifest.js | 15 + .../ksa/ksa-web-root/ksa-security-web/pom.xml | 28 + .../security/role/ClearRoleCacheAction.java | 46 + .../action/security/role/RoleAction.java | 59 + .../security/role/RoleDeleteAction.java | 41 + .../action/security/role/RoleEditAction.java | 18 + .../security/role/RoleInsertAction.java | 70 + .../role/RolePermissionDeleteAction.java | 59 + .../role/RolePermissionInsertAction.java | 59 + .../security/role/RoleUpdateAction.java | 41 + .../security/role/RoleUserDeleteAction.java | 76 + .../security/role/RoleUserInsertAction.java | 76 + .../security/user/ClearUserCacheAction.java | 24 + .../action/security/user/UserAction.java | 40 + .../security/user/UserDeleteAction.java | 42 + .../action/security/user/UserEditAction.java | 16 + .../security/user/UserInsertAction.java | 71 + .../action/security/user/UserLockAction.java | 52 + .../user/UserPasswordUpdateAction.java | 52 + .../security/user/UserRoleDeleteAction.java | 59 + .../security/user/UserRoleInsertAction.java | 59 + .../security/user/UserUpdateAction.java | 77 + .../src/main/resources/js/security/utils.js | 33 + .../src/main/resources/struts-plugin.xml | 8 + .../resources/struts2/struts-component.xml | 23 + .../main/resources/struts2/struts-role.xml | 62 + .../main/resources/struts2/struts-user.xml | 61 + .../component/permission-selection.ftl | 25 + .../component/permission-selection.js | 42 + .../ui/security/component/role-selection.ftl | 25 + .../ui/security/component/role-selection.js | 42 + .../ui/security/component/user-selection.ftl | 25 + .../ui/security/component/user-selection.js | 53 + .../ui/security/role/create-role.ftl | 48 + .../resources/ui/security/role/default.ftl | 34 + .../resources/ui/security/role/default.js | 230 + .../resources/ui/security/role/edit-role.ftl | 50 + .../resources/ui/security/role/role-action.js | 28 + .../main/resources/ui/security/role/role.js | 115 + .../ui/security/user/create-user.ftl | 85 + .../resources/ui/security/user/default.ftl | 29 + .../resources/ui/security/user/default.js | 189 + .../ui/security/user/edit-password.ftl | 44 + .../resources/ui/security/user/edit-user.ftl | 97 + .../resources/ui/security/user/user-action.js | 16 + .../main/resources/ui/security/user/user.js | 73 + .../src/main/resources/wro.xml | 10 + .../ksa-web-root/ksa-statistics-web/pom.xml | 33 + .../action/statistics/cargo/CargoAction.java | 19 + .../statistics/cargo/CargoQueryAction.java | 20 + .../action/statistics/profit/ChartAction.java | 23 + .../statistics/profit/ChartQueryAction.java | 99 + .../statistics/profit/ProfitAction.java | 19 + .../statistics/profit/model/Category.java | 26 + .../statistics/profit/model/DataSet.java | 25 + .../statistics/profit/model/DataValue.java | 26 + .../profit/model/FusionChartModel.java | 166 + .../FusionChartModelGroupByConsignee.java | 13 + .../model/FusionChartModelGroupByCreator.java | 13 + .../FusionChartModelGroupByCustomer.java | 13 + .../model/FusionChartModelGroupByDate.java | 18 + .../FusionChartModelGroupByDeparture.java | 13 + .../FusionChartModelGroupByDestination.java | 13 + .../model/FusionChartModelGroupBySaler.java | 13 + .../model/FusionChartModelGroupByShipper.java | 13 + .../model/FusionChartModelGroupByType.java | 27 + .../mybatis/mapper/statistics-cargo.xml | 167 + .../src/main/resources/struts-plugin.xml | 7 + .../struts2/struts-statistics-cargo.xml | 24 + .../struts2/struts-statistics-profit.xml | 26 + .../ui/statistics/cargo/cargo-table-column.js | 111 + .../resources/ui/statistics/cargo/default.ftl | 32 + .../resources/ui/statistics/cargo/default.js | 86 + .../resources/ui/statistics/profit/chart.ftl | 24 + .../ui/statistics/profit/data/Column2D.ftl | 3 + .../ui/statistics/profit/data/Doughnut2D.ftl | 3 + .../ui/statistics/profit/data/Error.ftl | 2 + .../ui/statistics/profit/data/Line.ftl | 3 + .../ui/statistics/profit/data/MSColumn2D.ftl | 3 + .../ui/statistics/profit/data/MSLine.ftl | 3 + .../ui/statistics/profit/data/Pie2D.ftl | 3 + .../profit/data/template/footer.ftl | 9 + .../profit/data/template/header.ftl | 4 + .../profit/data/template/multi-series.ftl | 16 + .../profit/data/template/single-series.ftl | 11 + .../ui/statistics/profit/default.ftl | 81 + .../resources/ui/statistics/profit/default.js | 168 + .../ksa/ksa-web-root/ksa-system-web/pom.xml | 43 + .../initialize/convert/BusinessConverter.java | 250 + .../initialize/convert/FinanceConverter.java | 125 + .../initialize/convert/PartnerConverter.java | 108 + .../initialize/convert/UserConverter.java | 93 + .../ksa/system/initialize/model/FeiYong.java | 106 + .../system/initialize/model/JieSuanDan.java | 78 + .../com/ksa/system/initialize/model/KeHu.java | 88 + .../ksa/system/initialize/model/TuoDan.java | 517 + .../ksa/system/initialize/model/YongHu.java | 67 + .../initialize/util/InitializeUtils.java | 37 + .../action/system/backup/BackupAction.java | 43 + .../action/system/backup/DeleteAction.java | 45 + .../action/system/backup/DownloadAction.java | 41 + .../action/system/backup/FileWrapper.java | 25 + .../action/system/backup/ManagerAction.java | 44 + .../backup/QueryBackupFileListAction.java | 75 + .../action/system/backup/RestoreAction.java | 96 + .../action/system/backup/StrategySave.java | 47 + .../action/system/backup/StrategyView.java | 66 + .../action/system/initialize/BaseAction.java | 89 + .../initialize/CheckConnectionAction.java | 29 + .../system/initialize/ExecuteSqlAction.java | 42 + .../system/initialize/InitializeAction.java | 46 + .../mybatis/initialize/init-feiyong.xml | 28 + .../resources/mybatis/initialize/init-jsd.xml | 20 + .../mybatis/initialize/init-kehu.xml | 28 + .../mybatis/initialize/init-tuodan.xml | 275 + .../mybatis/initialize/init-user.xml | 20 + .../mybatis/mapper/system-initialize.xml | 29 + .../src/main/resources/struts-plugin.xml | 7 + .../struts2/struts-system-backup.xml | 48 + .../struts2/struts-system-initialize.xml | 31 + .../resources/template/data-initialize.ftl | 110 + .../resources/ui/system/backup/default.ftl | 24 + .../resources/ui/system/backup/default.js | 105 + .../ui/system/backup/download-error.ftl | 11 + .../resources/ui/system/backup/strategy.ftl | 47 + test_input/ksa/ksa-web-root/ksa-web/pom.xml | 66 + .../src/main/resources/log4j.properties | 5 + .../src/main/resources/struts-plugin.xml | 16 + .../webapp/WEB-INF/applicationContext.xml | 39 + .../src/main/webapp/WEB-INF/decorators/bd.jsp | 35 + .../main/webapp/WEB-INF/decorators/chart.jsp | 27 + .../webapp/WEB-INF/decorators/component.jsp | 22 + .../main/webapp/WEB-INF/decorators/dialog.jsp | 23 + .../main/webapp/WEB-INF/decorators/main.jsp | 22 + .../main/webapp/WEB-INF/decorators/portal.jsp | 22 + .../main/webapp/WEB-INF/decorators/print.jsp | 46 + .../main/webapp/WEB-INF/decorators/system.jsp | 33 + .../main/webapp/WEB-INF/include/main-head.jsp | 18 + .../main/webapp/WEB-INF/include/main-nav.jsp | 174 + .../ksa-web/src/main/webapp/WEB-INF/index.jsp | 79 + .../main/webapp/WEB-INF/runtime.properties | 10 + .../ksa-web/src/main/webapp/WEB-INF/shiro.ini | 24 + .../src/main/webapp/WEB-INF/sitemesh3.xml | 44 + .../ksa-web/src/main/webapp/WEB-INF/web.xml | 79 + .../ksa-web/src/main/webapp/WEB-INF/wro.xml | 147 + .../ksa-web/src/main/webapp/favicon.ico | Bin 0 -> 65327 bytes .../ksa-web/src/main/webapp/index.jsp | 2 + .../ksa-web/src/main/webapp/init.sql | 1126 ++ .../ksa-web/src/main/webapp/login.jsp | 88 + .../ksa-web/src/main/webapp/logout.jsp | 5 + .../src/main/webapp/rs/bootstrap/LICENSE | 176 + .../src/main/webapp/rs/bootstrap/README.md | 139 + .../rs/bootstrap/css/bootstrap-responsive.css | 1040 ++ .../webapp/rs/bootstrap/css/bootstrap.css | 5624 ++++++++ .../img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes .../rs/bootstrap/img/glyphicons-halflings.png | Bin 0 -> 12799 bytes .../webapp/rs/bootstrap/js/bootstrap-affix.js | 104 + .../webapp/rs/bootstrap/js/bootstrap-alert.js | 90 + .../rs/bootstrap/js/bootstrap-button.js | 96 + .../rs/bootstrap/js/bootstrap-carousel.js | 176 + .../rs/bootstrap/js/bootstrap-collapse.js | 158 + .../rs/bootstrap/js/bootstrap-dropdown.js | 150 + .../webapp/rs/bootstrap/js/bootstrap-modal.js | 239 + .../rs/bootstrap/js/bootstrap-popover.js | 103 + .../rs/bootstrap/js/bootstrap-scrollspy.js | 151 + .../webapp/rs/bootstrap/js/bootstrap-tab.js | 135 + .../rs/bootstrap/js/bootstrap-tooltip.js | 275 + .../rs/bootstrap/js/bootstrap-transition.js | 60 + .../rs/bootstrap/js/bootstrap-typeahead.js | 300 + .../main/webapp/rs/bootstrap/js/bootstrap.js | 2027 +++ .../src/main/webapp/rs/bootstrap/package.json | 25 + .../src/main/webapp/rs/charts/Column2D.swf | Bin 0 -> 58330 bytes .../src/main/webapp/rs/charts/Doughnut2D.swf | Bin 0 -> 42950 bytes .../src/main/webapp/rs/charts/Line.swf | Bin 0 -> 57883 bytes .../src/main/webapp/rs/charts/MSColumn2D.swf | Bin 0 -> 61706 bytes .../src/main/webapp/rs/charts/MSLine.swf | Bin 0 -> 61404 bytes .../src/main/webapp/rs/charts/Pie2D.swf | Bin 0 -> 42521 bytes .../custom/component/css/compositequery.css | 36 + .../custom/component/jquery.compositequery.js | 150 + .../component/jquery.multipleselection.js | 179 + .../rs/custom/easyui/locale/easyui-lang-en.js | 52 + .../rs/custom/easyui/locale/easyui-lang-fr.js | 51 + .../custom/easyui/locale/easyui-lang-zh_CN.js | 75 + .../custom/easyui/plugins/jquery.accordion.js | 280 + .../custom/easyui/plugins/jquery.calendar.js | 305 + .../rs/custom/easyui/plugins/jquery.combo.js | 518 + .../custom/easyui/plugins/jquery.combobox.js | 416 + .../custom/easyui/plugins/jquery.combogrid.js | 247 + .../custom/easyui/plugins/jquery.combotree.js | 173 + .../custom/easyui/plugins/jquery.datagrid.js | 2538 ++++ .../custom/easyui/plugins/jquery.datebox.js | 122 + .../easyui/plugins/jquery.datetimebox.js | 152 + .../rs/custom/easyui/plugins/jquery.dialog.js | 176 + .../custom/easyui/plugins/jquery.draggable.js | 249 + .../custom/easyui/plugins/jquery.droppable.js | 51 + .../rs/custom/easyui/plugins/jquery.form.js | 215 + .../rs/custom/easyui/plugins/jquery.layout.js | 697 + .../easyui/plugins/jquery.linkbutton.js | 103 + .../rs/custom/easyui/plugins/jquery.menu.js | 369 + .../easyui/plugins/jquery.menubutton.js | 105 + .../custom/easyui/plugins/jquery.messager.js | 224 + .../custom/easyui/plugins/jquery.numberbox.js | 272 + .../easyui/plugins/jquery.numberspinner.js | 67 + .../easyui/plugins/jquery.pagination.js | 263 + .../rs/custom/easyui/plugins/jquery.panel.js | 662 + .../rs/custom/easyui/plugins/jquery.parser.js | 107 + .../rs/custom/easyui/plugins/jquery.portal.js | 327 + .../easyui/plugins/jquery.progressbar.js | 77 + .../easyui/plugins/jquery.propertygrid.js | 199 + .../custom/easyui/plugins/jquery.resizable.js | 168 + .../custom/easyui/plugins/jquery.searchbox.js | 175 + .../rs/custom/easyui/plugins/jquery.slider.js | 234 + .../custom/easyui/plugins/jquery.spinner.js | 195 + .../easyui/plugins/jquery.splitbutton.js | 106 + .../rs/custom/easyui/plugins/jquery.tabs.js | 588 + .../easyui/plugins/jquery.timespinner.js | 187 + .../rs/custom/easyui/plugins/jquery.tree.js | 996 ++ .../custom/easyui/plugins/jquery.treegrid.js | 1090 ++ .../easyui/plugins/jquery.validatebox.js | 240 + .../rs/custom/easyui/plugins/jquery.window.js | 441 + .../custom/easyui/themes/gray/accordion.css | 34 + .../rs/custom/easyui/themes/gray/calendar.css | 172 + .../rs/custom/easyui/themes/gray/combo.css | 39 + .../rs/custom/easyui/themes/gray/combobox.css | 25 + .../rs/custom/easyui/themes/gray/datagrid.css | 260 + .../rs/custom/easyui/themes/gray/datebox.css | 30 + .../rs/custom/easyui/themes/gray/dialog.css | 24 + .../rs/custom/easyui/themes/gray/easyui.css | 1685 +++ .../themes/gray/images/accordion_arrows.png | Bin 0 -> 3010 bytes .../easyui/themes/gray/images/blank.gif | Bin 0 -> 43 bytes .../easyui/themes/gray/images/button_a_bg.gif | Bin 0 -> 1194 bytes .../themes/gray/images/button_plain_hover.png | Bin 0 -> 144 bytes .../themes/gray/images/button_span_bg.gif | Bin 0 -> 2061 bytes .../themes/gray/images/calendar_nextmonth.gif | Bin 0 -> 64 bytes .../themes/gray/images/calendar_nextyear.gif | Bin 0 -> 75 bytes .../themes/gray/images/calendar_prevmonth.gif | Bin 0 -> 66 bytes .../themes/gray/images/calendar_prevyear.gif | Bin 0 -> 76 bytes .../easyui/themes/gray/images/combo_arrow.gif | Bin 0 -> 82 bytes .../themes/gray/images/datagrid_header_bg.gif | Bin 0 -> 97 bytes .../gray/images/datagrid_row_collapse.gif | Bin 0 -> 80 bytes .../gray/images/datagrid_row_expand.gif | Bin 0 -> 91 bytes .../themes/gray/images/datagrid_sort_asc.gif | Bin 0 -> 830 bytes .../themes/gray/images/datagrid_sort_desc.gif | Bin 0 -> 833 bytes .../themes/gray/images/datagrid_title_bg.gif | Bin 0 -> 229 bytes .../themes/gray/images/datebox_arrow.png | Bin 0 -> 626 bytes .../themes/gray/images/layout_arrows.png | Bin 0 -> 604 bytes .../custom/easyui/themes/gray/images/menu.gif | Bin 0 -> 834 bytes .../themes/gray/images/menu_downarrow.png | Bin 0 -> 173 bytes .../themes/gray/images/menu_rightarrow.png | Bin 0 -> 3617 bytes .../easyui/themes/gray/images/menu_sep.png | Bin 0 -> 92 bytes .../gray/images/menu_split_downarrow.png | Bin 0 -> 185 bytes .../themes/gray/images/messager-error.jpg | Bin 0 -> 22058 bytes .../themes/gray/images/messager-error.png | Bin 0 -> 5240 bytes .../themes/gray/images/messager-info.png | Bin 0 -> 3732 bytes .../themes/gray/images/messager-question.jpg | Bin 0 -> 22180 bytes .../themes/gray/images/messager-question.png | Bin 0 -> 6855 bytes .../themes/gray/images/messager-success.jpg | Bin 0 -> 22000 bytes .../themes/gray/images/messager-success.png | Bin 0 -> 5099 bytes .../themes/gray/images/messager-warning.jpg | Bin 0 -> 22218 bytes .../themes/gray/images/messager-warning.png | Bin 0 -> 5577 bytes .../themes/gray/images/messager_error.gif | Bin 0 -> 1669 bytes .../themes/gray/images/messager_info.gif | Bin 0 -> 1586 bytes .../themes/gray/images/messager_question.gif | Bin 0 -> 1607 bytes .../themes/gray/images/messager_warning.gif | Bin 0 -> 1483 bytes .../themes/gray/images/pagination_first.gif | Bin 0 -> 925 bytes .../themes/gray/images/pagination_last.gif | Bin 0 -> 923 bytes .../themes/gray/images/pagination_load.png | Bin 0 -> 827 bytes .../themes/gray/images/pagination_loading.gif | Bin 0 -> 1737 bytes .../themes/gray/images/pagination_next.gif | Bin 0 -> 875 bytes .../themes/gray/images/pagination_prev.gif | Bin 0 -> 879 bytes .../themes/gray/images/pagination_tools.png | Bin 0 -> 4758 bytes .../themes/gray/images/panel_loading.gif | Bin 0 -> 1737 bytes .../easyui/themes/gray/images/panel_title.gif | Bin 0 -> 229 bytes .../gray/images/panel_tool_collapse.gif | Bin 0 -> 246 bytes .../themes/gray/images/panel_tool_expand.gif | Bin 0 -> 247 bytes .../easyui/themes/gray/images/panel_tools.gif | Bin 0 -> 737 bytes .../themes/gray/images/searchbox_button.png | Bin 0 -> 813 bytes .../themes/gray/images/slider_handle.png | Bin 0 -> 863 bytes .../themes/gray/images/spinner_arrow_down.gif | Bin 0 -> 53 bytes .../themes/gray/images/spinner_arrow_up.gif | Bin 0 -> 53 bytes .../easyui/themes/gray/images/tabs_close.gif | Bin 0 -> 829 bytes .../themes/gray/images/tabs_enabled.gif | Bin 0 -> 229 bytes .../themes/gray/images/tabs_leftarrow.png | Bin 0 -> 389 bytes .../themes/gray/images/tabs_rightarrow.png | Bin 0 -> 395 bytes .../easyui/themes/gray/images/tree_arrows.gif | Bin 0 -> 617 bytes .../easyui/themes/gray/images/tree_bg.jpg | Bin 0 -> 331 bytes .../themes/gray/images/tree_checkbox.png | Bin 0 -> 4947 bytes .../themes/gray/images/tree_checkbox_0.png | Bin 0 -> 3244 bytes .../themes/gray/images/tree_checkbox_1.png | Bin 0 -> 3777 bytes .../themes/gray/images/tree_checkbox_2.png | Bin 0 -> 3611 bytes .../easyui/themes/gray/images/tree_dnd_no.png | Bin 0 -> 605 bytes .../themes/gray/images/tree_dnd_yes.png | Bin 0 -> 492 bytes .../easyui/themes/gray/images/tree_elbow.png | Bin 0 -> 3444 bytes .../easyui/themes/gray/images/tree_file.gif | Bin 0 -> 118 bytes .../easyui/themes/gray/images/tree_folder.gif | Bin 0 -> 952 bytes .../themes/gray/images/tree_folder_open.gif | Bin 0 -> 956 bytes .../themes/gray/images/tree_loading.gif | Bin 0 -> 1737 bytes .../gray/images/validatebox_pointer.gif | Bin 0 -> 82 bytes .../gray/images/validatebox_warning.png | Bin 0 -> 921 bytes .../rs/custom/easyui/themes/gray/layout.css | 98 + .../custom/easyui/themes/gray/linkbutton.css | 74 + .../rs/custom/easyui/themes/gray/menu.css | 72 + .../custom/easyui/themes/gray/menubutton.css | 22 + .../rs/custom/easyui/themes/gray/messager.css | 85 + .../custom/easyui/themes/gray/pagination.css | 81 + .../rs/custom/easyui/themes/gray/panel.css | 94 + .../rs/custom/easyui/themes/gray/portal.css | 33 + .../custom/easyui/themes/gray/progressbar.css | 15 + .../easyui/themes/gray/propertygrid.css | 21 + .../custom/easyui/themes/gray/searchbox.css | 61 + .../rs/custom/easyui/themes/gray/slider.css | 87 + .../rs/custom/easyui/themes/gray/spinner.css | 38 + .../custom/easyui/themes/gray/splitbutton.css | 32 + .../rs/custom/easyui/themes/gray/tabs.css | 209 + .../rs/custom/easyui/themes/gray/tree.css | 176 + .../custom/easyui/themes/gray/validatebox.css | 50 + .../rs/custom/easyui/themes/gray/window.css | 78 + ...6\346\224\271\350\257\264\346\230\216.txt" | 27 + .../src/main/webapp/rs/custom/icon.css | 68 + .../src/main/webapp/rs/custom/icons/back.png | Bin 0 -> 912 bytes .../src/main/webapp/rs/custom/icons/blank.gif | Bin 0 -> 43 bytes .../main/webapp/rs/custom/icons/cancel.png | Bin 0 -> 1133 bytes .../src/main/webapp/rs/custom/icons/cut.png | Bin 0 -> 1024 bytes .../main/webapp/rs/custom/icons/edit_add.png | Bin 0 -> 1088 bytes .../webapp/rs/custom/icons/edit_remove.png | Bin 0 -> 625 bytes .../main/webapp/rs/custom/icons/filesave.png | Bin 0 -> 898 bytes .../src/main/webapp/rs/custom/icons/help.png | Bin 0 -> 1187 bytes .../src/main/webapp/rs/custom/icons/logo.png | Bin 0 -> 809 bytes .../main/webapp/rs/custom/icons/mini_add.png | Bin 0 -> 244 bytes .../main/webapp/rs/custom/icons/mini_edit.png | Bin 0 -> 161 bytes .../webapp/rs/custom/icons/mini_refresh.png | Bin 0 -> 160 bytes .../src/main/webapp/rs/custom/icons/no.png | Bin 0 -> 922 bytes .../src/main/webapp/rs/custom/icons/ok.png | Bin 0 -> 883 bytes .../main/webapp/rs/custom/icons/pencil.png | Bin 0 -> 713 bytes .../src/main/webapp/rs/custom/icons/print.png | Bin 0 -> 1057 bytes .../src/main/webapp/rs/custom/icons/redo.png | Bin 0 -> 708 bytes .../main/webapp/rs/custom/icons/reload.png | Bin 0 -> 1045 bytes .../main/webapp/rs/custom/icons/search.png | Bin 0 -> 813 bytes .../src/main/webapp/rs/custom/icons/sum.png | Bin 0 -> 289 bytes .../src/main/webapp/rs/custom/icons/tip.png | Bin 0 -> 743 bytes .../src/main/webapp/rs/custom/icons/undo.png | Bin 0 -> 707 bytes .../custom/img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes .../src/main/webapp/rs/custom/img/loading.gif | Bin 0 -> 1436 bytes .../main/webapp/rs/custom/img/navbar-bg.png | Bin 0 -> 2848 bytes .../ksa-web/src/main/webapp/rs/custom/ksa.css | 235 + .../ksa-web/src/main/webapp/rs/custom/ksa.js | 138 + .../main/webapp/rs/custom/print/blueprint.css | 129 + .../main/webapp/rs/custom/print/custom.css | 51 + .../src/main/webapp/rs/fusion-charts.js | 301 + .../ksa-web/src/main/webapp/rs/html5.js | 3 + .../main/webapp/rs/images/checkbox-check.png | Bin 0 -> 3741 bytes .../src/main/webapp/rs/images/checkbox.png | Bin 0 -> 3161 bytes .../src/main/webapp/rs/images/login-bg.jpg | Bin 0 -> 96448 bytes .../src/main/webapp/rs/images/logo-banner.png | Bin 0 -> 16158 bytes .../rs/images/report-banner-arrival.png | Bin 0 -> 27982 bytes .../main/webapp/rs/images/report-banner.png | Bin 0 -> 20385 bytes .../src/main/webapp/rs/images/type/AE.png | Bin 0 -> 11966 bytes .../src/main/webapp/rs/images/type/AI.png | Bin 0 -> 11968 bytes .../src/main/webapp/rs/images/type/SE.png | Bin 0 -> 21283 bytes .../src/main/webapp/rs/images/type/SI.png | Bin 0 -> 21283 bytes .../main/webapp/rs/jquery/jquery-1.7.2.min.js | 4 + .../webapp/rs/jquery/jquery.easyui.min.js | 11500 ++++++++++++++++ .../main/webapp/rs/jquery/jquery.hotkeys.js | 99 + .../ksa-web/src/main/webapp/rs/kibo.js | 283 + .../ksa-web/src/main/webapp/rs/readme.txt | 16 + .../webapp/template/simple/actionerror.ftl | 35 + .../webapp/template/simple/actionmessage.ftl | 35 + test_input/ksa/ksa-web-root/pom.xml | 161 + test_input/ksa/mvn-update-version.sh | 7 + test_input/ksa/pom.xml | 255 + test_input/whitesource-fs-agent.config | 76 + 1138 files changed, 162632 insertions(+) create mode 100644 .gitignore create mode 100644 .whitesource create mode 100644 LICENSE.txt create mode 100644 README.EUA.md create mode 100644 README.md create mode 100644 folder-offline-test/whitesource/update-request.txt create mode 100644 pom.xml create mode 100644 shiftleft.json create mode 100644 src/main/java/org/whitesource/agent/ConfigPropertyKeys.java create mode 100644 src/main/java/org/whitesource/agent/Constants.java create mode 100644 src/main/java/org/whitesource/agent/DependencyCalculator.java create mode 100644 src/main/java/org/whitesource/agent/DependencyInfoFactory.java create mode 100644 src/main/java/org/whitesource/agent/FileSystemScanner.java create mode 100644 src/main/java/org/whitesource/agent/ProjectConfiguration.java create mode 100644 src/main/java/org/whitesource/agent/ProjectsSender.java create mode 100644 src/main/java/org/whitesource/agent/SingleFileScanner.java create mode 100644 src/main/java/org/whitesource/agent/TempFolders.java create mode 100644 src/main/java/org/whitesource/agent/ViaComponents.java create mode 100644 src/main/java/org/whitesource/agent/ViaLanguage.java create mode 100644 src/main/java/org/whitesource/agent/archive/ArchiveExtractor.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/AbstractDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/BomFile.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/BomParser.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/CocoaPods/CocoaPodsDependencyCollector.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/CocoaPods/CocoaPodsDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/DependencyCollector.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/DependencyResolutionService.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/IBomParser.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/ResolutionResult.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/ResolvedFolder.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/ViaMultiModuleAnalyzer.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/bower/BowerBomParser.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/bower/BowerDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/bower/BowerLsJsonDependencyCollector.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/AbstractParser.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/AlpineParser.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/ArchLinuxParser.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/DebianParser.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/DockerImage.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/DockerResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/Package.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/RpmParser.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/remotedocker/AbstractRemoteDocker.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/remotedocker/AbstractRemoteDockerImage.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/remotedocker/RemoteDockersManager.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/remotedocker/amazon/DockerImageAmazon.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/remotedocker/amazon/RemoteDockerAmazonECR.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/remotedocker/azure/AzureCli.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/remotedocker/azure/AzureDockerImage.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/docker/remotedocker/azure/AzureRemoteDocker.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/dotNet/DotNetDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/dotNet/DotNetRestoreCollector.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/dotNet/RestoreCollector.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/go/GoDependencyManager.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/go/GoDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/gradle/GradleCli.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/gradle/GradleDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/gradle/GradleLinesParser.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/gradle/GradleMvnCommand.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/hex/HexDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/html/HtmlDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/maven/MavenDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/maven/MavenLinesParser.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/maven/MavenPomParser.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/maven/MavenTreeDependencyCollector.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/npm/NpmBomParser.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/npm/NpmDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/npm/NpmLsJsonDependencyCollector.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/npm/RegistryType.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/npm/YarnDependencyCollector.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/nuget/NugetDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/nuget/NugetRestoreCollector.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/nuget/packagesConfig/NugetConfigFileType.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/nuget/packagesConfig/NugetCsprojItemGroup.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/nuget/packagesConfig/NugetCsprojPackages.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/nuget/packagesConfig/NugetPackage.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/nuget/packagesConfig/NugetPackageInterface.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/nuget/packagesConfig/NugetPackages.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/nuget/packagesConfig/NugetPackagesConfigXmlParser.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/nuget/packagesConfig/PackageReference.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/nuget/packagesConfig/ReferenceTag.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/packageManger/LinuxPkgManagerCommand.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/packageManger/PackageManagerExtractor.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/php/PhpDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/php/phpModel/PackageSource.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/php/phpModel/PhpModel.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/php/phpModel/PhpPackage.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/python/DependenciesFileType.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/python/PythonDependencyCollector.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/python/PythonDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/ruby/RubyCli.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/ruby/RubyDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/sbt/IvyReport.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/sbt/SbtBomParser.java create mode 100644 src/main/java/org/whitesource/agent/dependency/resolver/sbt/SbtDependencyResolver.java create mode 100644 src/main/java/org/whitesource/agent/utils/AddDependencyFileRecursionHelper.java create mode 100644 src/main/java/org/whitesource/agent/utils/Cli.java create mode 100644 src/main/java/org/whitesource/agent/utils/CommandLineProcess.java create mode 100644 src/main/java/org/whitesource/agent/utils/FilesScanner.java create mode 100644 src/main/java/org/whitesource/agent/utils/FilesUtils.java create mode 100644 src/main/java/org/whitesource/agent/utils/LogContext.java create mode 100644 src/main/java/org/whitesource/agent/utils/LoggerFS.java create mode 100644 src/main/java/org/whitesource/agent/utils/LoggerFactory.java create mode 100644 src/main/java/org/whitesource/agent/utils/MemoryUsageHelper.java create mode 100644 src/main/java/org/whitesource/agent/utils/Pair.java create mode 100644 src/main/java/org/whitesource/agent/utils/UniqueNamesGenerator.java create mode 100644 src/main/java/org/whitesource/agent/utils/WsStringUtils.java create mode 100644 src/main/java/org/whitesource/contracts/PluginInfo.java create mode 100644 src/main/java/org/whitesource/fs/CommandLineArgs.java create mode 100644 src/main/java/org/whitesource/fs/ComponentScan.java create mode 100644 src/main/java/org/whitesource/fs/ExtensionUtils.java create mode 100644 src/main/java/org/whitesource/fs/FSAConfigProperties.java create mode 100644 src/main/java/org/whitesource/fs/FSAConfigProperty.java create mode 100644 src/main/java/org/whitesource/fs/FSAConfiguration.java create mode 100644 src/main/java/org/whitesource/fs/FileSystemAgent.java create mode 100644 src/main/java/org/whitesource/fs/FileSystemAgentInfo.java create mode 100644 src/main/java/org/whitesource/fs/LogMapAppender.java create mode 100644 src/main/java/org/whitesource/fs/LogMapDefiner.java create mode 100644 src/main/java/org/whitesource/fs/Main.java create mode 100644 src/main/java/org/whitesource/fs/OfflineReader.java create mode 100644 src/main/java/org/whitesource/fs/ProjectsCalculator.java create mode 100644 src/main/java/org/whitesource/fs/ProjectsDetails.java create mode 100644 src/main/java/org/whitesource/fs/StatusCode.java create mode 100644 src/main/java/org/whitesource/fs/WsSecret.java create mode 100644 src/main/java/org/whitesource/fs/configuration/AgentConfiguration.java create mode 100644 src/main/java/org/whitesource/fs/configuration/ConfigurationSerializer.java create mode 100644 src/main/java/org/whitesource/fs/configuration/ConfigurationValidation.java create mode 100644 src/main/java/org/whitesource/fs/configuration/EndPointConfiguration.java create mode 100644 src/main/java/org/whitesource/fs/configuration/OfflineConfiguration.java create mode 100644 src/main/java/org/whitesource/fs/configuration/RemoteDockerAWSConfiguration.java create mode 100644 src/main/java/org/whitesource/fs/configuration/RemoteDockerConfiguration.java create mode 100644 src/main/java/org/whitesource/fs/configuration/RequestConfiguration.java create mode 100644 src/main/java/org/whitesource/fs/configuration/ResolverConfiguration.java create mode 100644 src/main/java/org/whitesource/fs/configuration/ScmConfiguration.java create mode 100644 src/main/java/org/whitesource/fs/configuration/ScmRepositoriesParser.java create mode 100644 src/main/java/org/whitesource/fs/configuration/SenderConfiguration.java create mode 100644 src/main/java/org/whitesource/scm/GitConnector.java create mode 100644 src/main/java/org/whitesource/scm/MercurialConnector.java create mode 100644 src/main/java/org/whitesource/scm/ScmConnector.java create mode 100644 src/main/java/org/whitesource/scm/ScmType.java create mode 100644 src/main/java/org/whitesource/scm/SvnConnector.java create mode 100644 src/main/java/org/whitesource/scm/passphraseCredentialsProvider.java create mode 100644 src/main/java/org/whitesource/web/FsaVerticle.java create mode 100644 src/main/java/org/whitesource/web/ResultDto.java create mode 100644 src/main/resources/copyDependenciesTask.txt create mode 100644 src/main/resources/helpContent.txt create mode 100644 src/main/resources/logback-FSA.xml create mode 100644 src/main/resources/project.properties create mode 100644 test_input/gradle/.gradle/4.0/fileChanges/last-build.bin create mode 100644 test_input/gradle/.gradle/4.0/fileContent/annotation-processors.bin create mode 100644 test_input/gradle/.gradle/4.0/fileContent/fileContent.lock create mode 100644 test_input/gradle/.gradle/4.0/fileHashes/fileHashes.bin create mode 100644 test_input/gradle/.gradle/4.0/fileHashes/fileHashes.lock create mode 100644 test_input/gradle/.gradle/4.0/fileHashes/resourceHashesCache.bin create mode 100644 test_input/gradle/.gradle/4.0/taskHistory/fileSnapshots.bin create mode 100644 test_input/gradle/.gradle/4.0/taskHistory/taskHistory.bin create mode 100644 test_input/gradle/.gradle/4.0/taskHistory/taskHistory.lock create mode 100644 test_input/gradle/.gradle/4.5.1/fileChanges/last-build.bin create mode 100644 test_input/gradle/.gradle/4.5.1/fileContent/annotation-processors.bin create mode 100644 test_input/gradle/.gradle/4.5.1/fileContent/fileContent.lock create mode 100644 test_input/gradle/.gradle/4.5.1/fileHashes/fileHashes.bin create mode 100644 test_input/gradle/.gradle/4.5.1/fileHashes/fileHashes.lock create mode 100644 test_input/gradle/.gradle/4.5.1/fileHashes/resourceHashesCache.bin create mode 100644 test_input/gradle/.gradle/4.5.1/taskHistory/taskHistory.bin create mode 100644 test_input/gradle/.gradle/4.5.1/taskHistory/taskHistory.lock create mode 100644 test_input/gradle/.gradle/4.8.1/fileChanges/last-build.bin create mode 100644 test_input/gradle/.gradle/4.8.1/fileHashes/fileHashes.bin create mode 100644 test_input/gradle/.gradle/4.8.1/fileHashes/fileHashes.lock create mode 100644 test_input/gradle/.gradle/4.8.1/taskHistory/taskHistory.bin create mode 100644 test_input/gradle/.gradle/4.8.1/taskHistory/taskHistory.lock create mode 100644 test_input/gradle/.gradle/4.8/fileChanges/last-build.bin create mode 100644 test_input/gradle/.gradle/4.8/fileContent/annotation-processors.bin create mode 100644 test_input/gradle/.gradle/4.8/fileContent/fileContent.lock create mode 100644 test_input/gradle/.gradle/4.8/fileHashes/resourceHashesCache.bin create mode 100644 test_input/gradle/.gradle/vcsWorkingDirs/gc.properties create mode 100644 test_input/gradle/build.gradle create mode 100644 test_input/gradle/build/libs/elads-1.0-SNAPSHOT.jar create mode 100644 test_input/gradle/build/tmp/jar/MANIFEST.MF create mode 100644 test_input/gradle/gradle/wrapper/gradle-wrapper.jar create mode 100644 test_input/gradle/gradle/wrapper/gradle-wrapper.properties create mode 100644 test_input/gradle/gradlew create mode 100644 test_input/gradle/gradlew.bat create mode 100644 test_input/gradle/settings.gradle create mode 100644 test_input/gradle/src/main/java/test/Hello.java create mode 100644 test_input/gradle/src/main/java/test/Hello2.java create mode 100644 test_input/gradle/src/main/java/test/Hello3.java create mode 100644 test_input/gradle/src/main/java/test/Main.java create mode 100644 test_input/ksa/.gitignore create mode 100644 test_input/ksa/LICENSE create mode 100644 test_input/ksa/README.md create mode 100644 test_input/ksa/doc/image/ksa.psd create mode 100644 test_input/ksa/doc/image/login-bg.jpg create mode 100644 "test_input/ksa/doc/\346\235\255\345\267\236\345\207\257\346\200\235\347\210\261\347\211\251\346\265\201\347\256\241\347\220\206\347\263\273\347\273\237\350\277\201\347\247\273\346\226\271\346\241\210.doc" create mode 100644 test_input/ksa/ksa-core/pom.xml create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/context/ContextException.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/context/ServiceContext.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/context/ServiceContextUtils.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/context/spring/SpringServiceContext.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/AbstractQueryClause.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/DateQueryClause.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/MultiIdsQueryClause.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/QueryClause.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/TextQueryClause.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/bd/BasicDataDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/bd/CurrencyRateDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/bd/PartnerDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/finance/AccountCurrencyRateDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/finance/AccountDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/finance/ChargeDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/finance/InvoiceDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/logistics/AbstractLogisticsModelDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/logistics/ArrivalNoteDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/logistics/BillOfLadingDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/logistics/BookingNoteCargoDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/logistics/BookingNoteDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/logistics/ManifestDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/logistics/WarehouseBookingDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/logistics/WarehouseNotingDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/security/PermissionDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/security/RoleDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/dao/security/UserDao.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/BaseModel.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/ModelState.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/ModelUtils.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/bd/BasicData.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/bd/BasicDataType.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/bd/ChargeType.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/bd/Currency.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/bd/CurrencyRate.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/bd/Partner.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/bd/PartnerType.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/business/DebitNoteCharge.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/business/RecordBillCharge.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/business/RecordBillChargeGather.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/business/RecordBillProfit.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/finance/Account.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/finance/AccountCurrencyRate.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/finance/AccountState.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/finance/BookingNoteCharge.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/finance/BookingNoteChargeState.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/finance/BookingNoteProfit.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/finance/Charge.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/finance/FinanceModel.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/finance/Invoice.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/logistics/ArrivalNote.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/logistics/BaseLogisticsModel.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/logistics/BillOfLading.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/logistics/BookingNote.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/logistics/BookingNoteCargo.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/logistics/BookingNoteState.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/logistics/Manifest.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/logistics/WarehouseBooking.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/logistics/WarehouseNoting.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/security/Permission.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/security/Role.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/model/security/User.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/service/bd/BasicDataService.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/service/bd/CurrencyRateService.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/service/bd/PartnerService.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/service/finance/AccountService.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/service/finance/ChargeService.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/service/finance/InvoiceService.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/service/logistics/BookingNoteService.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/service/security/SecurityService.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/util/Assert.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/util/ClassUtils.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/util/CollectionUtils.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/util/ObjectUtils.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/util/ReflectionUtils.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/util/ResourceUtils.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/util/StringUtils.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/util/codec/Base64.java create mode 100644 test_input/ksa/ksa-core/src/main/java/com/ksa/util/codec/CharEncoding.java create mode 100644 test_input/ksa/ksa-dao-context/pom.xml create mode 100644 test_input/ksa/ksa-dao-context/src/main/java/com/ksa/dao/AbstractMybatisDao.java create mode 100644 test_input/ksa/ksa-dao-context/src/main/java/com/ksa/dao/mybatis/dialect/H2LimitDialect.java create mode 100644 test_input/ksa/ksa-dao-context/src/main/java/com/ksa/dao/mybatis/dialect/LimitDialect.java create mode 100644 test_input/ksa/ksa-dao-context/src/main/java/com/ksa/dao/mybatis/dialect/MysqlLimitDialect.java create mode 100644 test_input/ksa/ksa-dao-context/src/main/java/com/ksa/dao/mybatis/dialect/OracleLimitDialect.java create mode 100644 test_input/ksa/ksa-dao-context/src/main/java/com/ksa/dao/mybatis/plugin/PaginationPlugin.java create mode 100644 test_input/ksa/ksa-dao-context/src/main/java/com/ksa/dao/mybatis/session/RowBounds.java create mode 100644 test_input/ksa/ksa-dao-context/src/main/java/com/ksa/dao/mybatis/util/ReflectUtils.java create mode 100644 test_input/ksa/ksa-dao-context/src/main/resources/com/ksa/dao/mybatis/plugin/pagination.properties create mode 100644 test_input/ksa/ksa-dao-context/src/main/resources/mybatis/mybatis-config.xml create mode 100644 test_input/ksa/ksa-dao-context/src/main/resources/spring/dao/dao-config.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/pom.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/src/main/java/com/ksa/dao/bd/mybatis/MybatisBasicDataDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/src/main/java/com/ksa/dao/bd/mybatis/MybatisCurrencyRateDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/src/main/java/com/ksa/dao/bd/mybatis/MybatisPartnerDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/src/main/resources/mybatis/mapper/bd-currency-rate.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/src/main/resources/mybatis/mapper/bd-currency.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/src/main/resources/mybatis/mapper/bd-data.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/src/main/resources/mybatis/mapper/bd-partner-extra.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/src/main/resources/mybatis/mapper/bd-partner-type.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/src/main/resources/mybatis/mapper/bd-partner.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/src/main/resources/spring/dao/bd-dao-context.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/src/test/java/com/ksa/dao/bd/mybatis/MybatisBasicDataDaoTest.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/src/test/java/com/ksa/dao/bd/mybatis/MybatisCurrencyRateDaoTest.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/src/test/java/com/ksa/dao/bd/mybatis/MybatisPartnerDaoTest.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-bd-dao/src/test/resources/init.sql create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/pom.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/main/java/com/ksa/dao/finance/mybatis/MybatisAccountCurrencyRateDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/main/java/com/ksa/dao/finance/mybatis/MybatisAccountDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/main/java/com/ksa/dao/finance/mybatis/MybatisChargeDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/main/java/com/ksa/dao/finance/mybatis/MybatisInvoiceDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/main/resources/mybatis/mapper/finance-account-bookingnote.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/main/resources/mybatis/mapper/finance-account-currency-rate.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/main/resources/mybatis/mapper/finance-account.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/main/resources/mybatis/mapper/finance-bookingnote.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/main/resources/mybatis/mapper/finance-charge-bookingnote.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/main/resources/mybatis/mapper/finance-charge.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/main/resources/mybatis/mapper/finance-invoice.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/main/resources/mybatis/mapper/finance-profit-charge.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/main/resources/mybatis/mapper/finance-profit.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/main/resources/spring/dao/finance-dao-context.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/test/java/com/ksa/dao/finance/mybatis/MybatisAccountCurrencyRateDaoTest.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/test/java/com/ksa/dao/finance/mybatis/MybatisAccountDaoTest.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/test/java/com/ksa/dao/finance/mybatis/MybatisChargeDaoTest.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/test/java/com/ksa/dao/finance/mybatis/MybatisInvoiceDaoTest.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-finance-dao/src/test/resources/init.sql create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/pom.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/java/com/ksa/dao/logistics/mybatis/MybatisArrivalNoteDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/java/com/ksa/dao/logistics/mybatis/MybatisBillOfLadingDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/java/com/ksa/dao/logistics/mybatis/MybatisBookingNoteCargoDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/java/com/ksa/dao/logistics/mybatis/MybatisBookingNoteDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/java/com/ksa/dao/logistics/mybatis/MybatisManifestDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/java/com/ksa/dao/logistics/mybatis/MybatisWarehouseBookingDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/java/com/ksa/dao/logistics/mybatis/MybatisWarehouseNotingDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/resources/mybatis/mapper/logistics-arrivalnote.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/resources/mybatis/mapper/logistics-billoflading.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/resources/mybatis/mapper/logistics-bookingnote-cargo.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/resources/mybatis/mapper/logistics-bookingnote.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/resources/mybatis/mapper/logistics-manifest.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/resources/mybatis/mapper/logistics-warehouse-booking.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/resources/mybatis/mapper/logistics-warehouse-noting.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/main/resources/spring/dao/logistics-dao-context.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/test/java/com/ksa/dao/logistics/mybatis/MybatisBillOfLadingDaoTest.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/test/java/com/ksa/dao/logistics/mybatis/MybatisBookingNoteDaoTest.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/test/java/com/ksa/dao/logistics/mybatis/MybatisManifestDaoTest.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/test/java/com/ksa/dao/logistics/mybatis/MybatisWarehouseBookingDaoTest.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/test/java/com/ksa/dao/logistics/mybatis/MybatisWarehouseNotingDaoTest.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-logistics-dao/src/test/resources/init.sql create mode 100644 test_input/ksa/ksa-dao-root/ksa-security-dao/pom.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-security-dao/src/main/java/com/ksa/dao/security/mybatis/MybatisPermissionDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-security-dao/src/main/java/com/ksa/dao/security/mybatis/MybatisRoleDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-security-dao/src/main/java/com/ksa/dao/security/mybatis/MybatisUserDao.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-security-dao/src/main/resources/mybatis/mapper/security-permission.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-security-dao/src/main/resources/mybatis/mapper/security-role.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-security-dao/src/main/resources/mybatis/mapper/security-user.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-security-dao/src/main/resources/spring/dao/security-dao-context.xml create mode 100644 test_input/ksa/ksa-dao-root/ksa-security-dao/src/test/java/com/ksa/dao/security/mybatis/MybatisRoleDaoTest.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-security-dao/src/test/java/com/ksa/dao/security/mybatis/MybatisUserDaoTest.java create mode 100644 test_input/ksa/ksa-dao-root/ksa-security-dao/src/test/resources/init.sql create mode 100644 test_input/ksa/ksa-dao-root/pom.xml create mode 100644 test_input/ksa/ksa-debug/pom.xml create mode 100644 test_input/ksa/ksa-debug/src/main/java/com/ksa/dao/MybatisDaoTest.java create mode 100644 test_input/ksa/ksa-debug/src/main/java/com/ksa/freemarker/TemplateTest.java create mode 100644 test_input/ksa/ksa-debug/src/main/java/com/ksa/h2/H2DataSourceFactoryBean.java create mode 100644 test_input/ksa/ksa-debug/src/main/resources/log4j.properties create mode 100644 test_input/ksa/ksa-debug/src/main/resources/struts.properties create mode 100644 test_input/ksa/ksa-debug/src/main/resources/test/mybatis-test-context.xml create mode 100644 test_input/ksa/ksa-service-root/ksa-bd-service/pom.xml create mode 100644 test_input/ksa/ksa-service-root/ksa-bd-service/src/main/java/com/ksa/service/bd/impl/BasicDataServiceImpl.java create mode 100644 test_input/ksa/ksa-service-root/ksa-bd-service/src/main/java/com/ksa/service/bd/impl/CurrencyRateServiceImpl.java create mode 100644 test_input/ksa/ksa-service-root/ksa-bd-service/src/main/java/com/ksa/service/bd/impl/PartnerServiceImpl.java create mode 100644 test_input/ksa/ksa-service-root/ksa-bd-service/src/main/java/com/ksa/service/bd/util/BasicDataUtils.java create mode 100644 test_input/ksa/ksa-service-root/ksa-bd-service/src/main/resources/spring/service/bd-service-context.xml create mode 100644 test_input/ksa/ksa-service-root/ksa-finance-service/pom.xml create mode 100644 test_input/ksa/ksa-service-root/ksa-finance-service/src/main/java/com/ksa/service/finance/impl/AccountServiceImpl.java create mode 100644 test_input/ksa/ksa-service-root/ksa-finance-service/src/main/java/com/ksa/service/finance/impl/ChargeServiceImpl.java create mode 100644 test_input/ksa/ksa-service-root/ksa-finance-service/src/main/java/com/ksa/service/finance/impl/InvoiceServiceImpl.java create mode 100644 test_input/ksa/ksa-service-root/ksa-finance-service/src/main/resources/spring/service/finance-service-context.xml create mode 100644 test_input/ksa/ksa-service-root/ksa-logistics-service/pom.xml create mode 100644 test_input/ksa/ksa-service-root/ksa-logistics-service/src/main/java/com/ksa/service/logistics/impl/BookingNoteServiceImpl.java create mode 100644 test_input/ksa/ksa-service-root/ksa-logistics-service/src/main/resources/spring/service/logistics-service-context.xml create mode 100644 test_input/ksa/ksa-service-root/ksa-security-service/pom.xml create mode 100644 test_input/ksa/ksa-service-root/ksa-security-service/src/main/java/com/ksa/service/security/impl/SecurityServiceImpl.java create mode 100644 test_input/ksa/ksa-service-root/ksa-security-service/src/main/java/com/ksa/service/security/shiro/PasswordMatcher.java create mode 100644 test_input/ksa/ksa-service-root/ksa-security-service/src/main/java/com/ksa/service/security/shiro/ShiroRealm.java create mode 100644 test_input/ksa/ksa-service-root/ksa-security-service/src/main/java/com/ksa/service/security/util/SecurityUtils.java create mode 100644 test_input/ksa/ksa-service-root/ksa-security-service/src/main/resources/spring/service/security-service-context.xml create mode 100644 test_input/ksa/ksa-service-root/pom.xml create mode 100644 test_input/ksa/ksa-web-core/pom.xml create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/context/web/RuntimeConfiguration.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/context/web/SpringServiceContextListener.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/AuthenticatedTag.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/GuestTag.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/HasAnyPermissionsTag.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/HasAnyRolesTag.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/HasPermissionTag.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/HasRoleTag.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/LacksPermissionTag.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/LacksRoleTag.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/NotAuthenticatedTag.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/PermissionTag.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/PrincipalTag.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/RoleTag.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/SecureTag.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/ShiroTags.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/freemarker/UserTag.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/shiro/web/tags/HasAnyPermissions.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/system/backup/BackupSchedule.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/system/backup/BackupTask.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/servlet/BackupScheduleListener.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/struts2/action/DefaultActionSupport.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/struts2/action/JsonAction.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/struts2/action/data/ComboDataAction.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/struts2/action/data/DataActionSupport.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/struts2/action/data/DefaultComboDataAction.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/struts2/action/data/DefaultGridDataAction.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/struts2/action/data/GridDataAction.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/struts2/action/data/GridDataActionSupport.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/struts2/action/model/GridDataModel.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/struts2/action/model/JsonResult.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/struts2/interceptor/DataInitializedInterceptor.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/struts2/views/freemarker/FreemarkerStreamResult.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/struts2/views/freemarker/ShiroFreemarkerManager.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/wro4j/HttpServletRequestWrapper.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/wro4j/MultiXmlWroModelFactory.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/wro4j/WroFilter.java create mode 100644 test_input/ksa/ksa-web-core/src/main/java/com/ksa/web/wro4j/WroModelConfigurationCache.java create mode 100644 test_input/ksa/ksa-web-core/src/main/resources/META-INF/ksa-shiro.tld create mode 100644 test_input/ksa/ksa-web-core/src/main/resources/struts-default.xml create mode 100644 test_input/ksa/ksa-web-core/src/main/resources/struts2/struts-combodata.xml create mode 100644 test_input/ksa/ksa-web-core/src/main/resources/struts2/struts-griddata.xml create mode 100644 test_input/ksa/ksa-web-core/src/main/resources/template/exception/service-exception.ftl create mode 100644 test_input/ksa/ksa-web-core/src/main/resources/template/no-permission.ftl create mode 100644 test_input/ksa/ksa-web-core/src/main/scripts/META-INF/ksa-shiro.tld create mode 100644 test_input/ksa/ksa-web-core/src/main/scripts/ksa-shiro.tld create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/pom.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/currency/DateRateAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/currency/PartnerRateAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/currency/RateAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/currency/RateSaveAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/currency/data/DateRateGridDataAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/currency/data/PartnerRateGridDataAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/data/BasicDataAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/data/BasicDataDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/data/BasicDataEditAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/data/BasicDataInsertAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/data/BasicDataUpdateAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/partner/PartnerAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/partner/PartnerDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/partner/PartnerEditAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/partner/PartnerExtraAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/partner/PartnerInsertAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/java/com/ksa/web/struts2/action/bd/partner/PartnerUpdateAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/js/bd/utils.js create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/struts-plugin.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/struts2/struts-bd-component.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/struts2/struts-bd-currency.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/struts2/struts-bd-data.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/struts2/struts-bd-partner.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/component/department-selection.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/component/department-selection.js create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/component/partner-alias-selection.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/component/partner-alias-selection.js create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/currency/date/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/currency/date/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/currency/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/currency/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/currency/partner/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/currency/partner/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/data/create-data.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/data/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/data/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/data/edit-data.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/partner/create-partner.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/partner/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/partner/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/partner/edit-partner.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/ui/bd/partner/partner.js create mode 100644 test_input/ksa/ksa-web-root/ksa-bd-web/src/main/resources/wro.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/pom.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/AccountAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/AccountCodeComputeAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/AccountDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/AccountDownloadAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/AccountEditAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/AccountExcelAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/AccountQueryAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/AccountRateGridDataAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/AccountSaveAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/AccountStateAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/ValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/AbstractBookingNoteValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/AgentValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/CargoContainerValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/CargoNameValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/CargoQuantityValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/CargoVolumnValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/CargoWeightValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/CodeValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/ConsigneeValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/CreatedDateValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/CreatorValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/CustomerValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/CustomsBrokerValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/CustomsCodeValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/CustomsDateValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/DepartureDateValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/DeparturePortValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/DestinationDateValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/DestinationPortValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/InvoiceValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/MawbValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/RouteNameValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/RouteValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/SalerValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/ShipperValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/account/map/bookingnote/TypeValueGetter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/business/DebitNoteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/business/RecordBillAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/charge/ChargeAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/charge/ChargeEditAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/charge/ChargeQueryAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/charge/ChargeSaveAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/charge/ChargeStateAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/charge/ForeignChargeQueryAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/charge/NativeChargeQueryAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/charge/single/ChargeSingleAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/charge/single/ChargeSingleEditAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/charge/single/ChargeSingleQueryAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/charge/single/ChargeSingleSaveAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/charge/single/ChargeSingleStateAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/component/FinanceSelectionAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/invoice/InvoiceAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/invoice/InvoiceAssignAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/invoice/InvoiceDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/invoice/InvoiceEditAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/invoice/InvoiceQueryAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/invoice/InvoiceSaveAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/profit/ProfitQueryAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/query/AccountStateQueryClause.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/query/ChargeStateQueryClause.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/query/FinanceDirectionQueryClause.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/java/com/ksa/web/struts2/action/finance/query/InvoiceStateQueryClause.java create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/js/finance/utils.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/portal/finance/account/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/portal/finance/account/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/portal/finance/charge/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/portal/finance/charge/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/struts-plugin.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/struts2/struts-finance-account.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/struts2/struts-finance-charge-single.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/struts2/struts-finance-charge.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/struts2/struts-finance-component.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/struts2/struts-finance-invoice.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/struts2/struts-finance-profit.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/struts2/struts-finance-recordbill.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/account-detail.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/account-excel.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/account-excel.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/account-query-condition.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/account-table-column.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/account.css create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/account.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/account.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/create.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/default-doinvoice.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/edit.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/excel/account-1.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/excel/account.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/excel/account1.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/invoice.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/account/invoice.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/business/debitNote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/business/recordbill-ex.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/business/recordbill-im.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/business/recordbill-ly.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/business/recordbill.ftl create mode 100644 "test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/business/\351\235\242\345\215\225\350\277\233\345\217\243-3.5.2.xml" create mode 100644 "test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/business/\351\235\242\345\215\225\350\277\233\345\217\243-3.5.3.xml" create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge-single/charge-single-column.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge-single/charge-single-condition.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge-single/checking.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge-single/checking.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge-single/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge-single/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge-single/view.css create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge-single/view.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge-single/view.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge/bookingnote-query-condition.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge/bookingnote-table-column.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge/charge-query-condition.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge/charge-table-column.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge/checking.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge/checking.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge/view.css create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge/view.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/charge/view.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/component/bookingnote-selection.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/component/bookingnote-selection.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/component/charge-selection.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/component/charge-selection.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/component/charge-template-selection.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/component/charge-template-selection.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/component/charge-treetable-column.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/component/invoice-selection.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/component/invoice-selection.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/invoice/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/invoice/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/invoice/invoice-query-condition.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/invoice/invoice-table-column.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/invoice/view.css create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/invoice/view.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/invoice/view.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/profit/profit-query-condition.js create mode 100644 test_input/ksa/ksa-web-root/ksa-finance-web/src/main/resources/ui/finance/profit/profit-table-column.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/pom.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/DefaultAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/LogisticsModelAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/LogisticsModelDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/LogisticsModelDownloadAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/LogisticsModelSaveAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/arrivalnote/ArrivalNoteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/arrivalnote/ArrivalNoteDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/arrivalnote/ArrivalNoteDownloadAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/arrivalnote/ArrivalNoteSaveAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/billoflading/BillOfLadingAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/billoflading/BillOfLadingCopyPoiDownloadAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/billoflading/BillOfLadingDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/billoflading/BillOfLadingDownloadAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/billoflading/BillOfLadingPoiDownloadAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/billoflading/BillOfLadingSaveAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/bookingnote/BookingNoteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/bookingnote/BookingNoteChangeTypeAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/bookingnote/BookingNoteDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/bookingnote/BookingNoteDownloadAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/bookingnote/BookingNoteQueryAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/bookingnote/BookingNoteReturnQueryAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/bookingnote/BookingNoteSaveAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/bookingnote/query/AccountStateQueryClause.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/bookingnote/query/BookingNoteStateQueryClause.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/manifest/ManifestAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/manifest/ManifestDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/manifest/ManifestSaveAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/warehousebooking/WarehouseBookingAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/warehousebooking/WarehouseBookingDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/warehousebooking/WarehouseBookingSaveAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/warehousenoting/WarehouseNotingAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/warehousenoting/WarehouseNotingDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/warehousenoting/WarehouseNotingDownloadAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/java/com/ksa/web/struts2/action/logistics/warehousenoting/WarehouseNotingSaveAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/js/logistics/utils.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/portal/logistics/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/portal/logistics/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/portal/logistics/return-notify.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/portal/logistics/return-notify.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/struts-plugin.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/struts2/struts-arrivalnote.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/struts2/struts-billoflading.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/struts2/struts-bookingnote.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/struts2/struts-logistics-component.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/struts2/struts-manifest.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/struts2/struts-warehousebooking.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/struts2/struts-warehousenoting.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/arrivalnote-excel.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/arrivalnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/arrivalnote.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/billoflading-copy-excel.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/billoflading-excel.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/billoflading-original-excel.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/billoflading.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/billoflading.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/bookingnote-detail.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/bookingnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/create.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/edit.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/manifest.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/manifest.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/warehouse-booking.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/warehouse-booking.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/warehouse-noting-excel.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/warehouse-noting-word.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/warehouse-noting.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ae/warehouse-noting.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ai/arrivalnote-excel.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ai/arrivalnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ai/arrivalnote.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ai/bookingnote-detail.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ai/bookingnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ai/create.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ai/edit.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ai/manifest.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ai/manifest.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/bc/bookingnote-detail.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/bc/bookingnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/bc/create.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/bc/edit.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/bookingnote-query-condition.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/bookingnote-table-column.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/bookingnote.css create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/bookingnote.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/cc/bookingnote-detail.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/cc/bookingnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/cc/create.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/cc/edit.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/component/bookingnote-selection.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/component/bookingnote-selection.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/copy-template.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/excel/bookingnote-download.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/gn/bookingnote-detail.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/gn/bookingnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/gn/create.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/gn/edit.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/kb/bookingnote-detail.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/kb/bookingnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/kb/create.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/kb/edit.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ly/bookingnote-detail.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ly/bookingnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ly/create.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/ly/edit.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/return-notify-query-condition.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/return-notify-table-column.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/return-notify.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/return-notify.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/rh/bookingnote-detail.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/rh/bookingnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/rh/create.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/rh/edit.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/arrivalnote-excel.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/arrivalnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/arrivalnote.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/billoflading-copy-excel.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/billoflading-excel.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/billoflading-original-excel.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/billoflading.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/billoflading.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/bookingnote-detail.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/bookingnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/create.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/edit.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/warehouse-booking.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/warehouse-booking.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/warehouse-noting-excel.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/warehouse-noting-word.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/warehouse-noting.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/se/warehouse-noting.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/si/arrivalnote-excel.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/si/arrivalnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/si/arrivalnote.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/si/bookingnote-detail.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/si/bookingnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/si/create.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/si/edit.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/tl/bookingnote-detail.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/tl/bookingnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/tl/create.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/tl/edit.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/tmpl/billoflading-copy.xls create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/tmpl/billoflading.xls create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/zj/arrivalnote-excel.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/zj/arrivalnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/zj/arrivalnote.js create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/zj/bookingnote-detail.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/zj/bookingnote.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/zj/create.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/zj/edit.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/zj/manifest.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-logistics-web/src/main/resources/ui/logistics/zj/manifest.js create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/pom.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/role/ClearRoleCacheAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/role/RoleAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/role/RoleDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/role/RoleEditAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/role/RoleInsertAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/role/RolePermissionDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/role/RolePermissionInsertAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/role/RoleUpdateAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/role/RoleUserDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/role/RoleUserInsertAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/user/ClearUserCacheAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/user/UserAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/user/UserDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/user/UserEditAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/user/UserInsertAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/user/UserLockAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/user/UserPasswordUpdateAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/user/UserRoleDeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/user/UserRoleInsertAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/java/com/ksa/web/struts2/action/security/user/UserUpdateAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/js/security/utils.js create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/struts-plugin.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/struts2/struts-component.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/struts2/struts-role.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/struts2/struts-user.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/component/permission-selection.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/component/permission-selection.js create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/component/role-selection.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/component/role-selection.js create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/component/user-selection.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/component/user-selection.js create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/role/create-role.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/role/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/role/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/role/edit-role.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/role/role-action.js create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/role/role.js create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/user/create-user.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/user/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/user/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/user/edit-password.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/user/edit-user.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/user/user-action.js create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/ui/security/user/user.js create mode 100644 test_input/ksa/ksa-web-root/ksa-security-web/src/main/resources/wro.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/pom.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/cargo/CargoAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/cargo/CargoQueryAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/ChartAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/ChartQueryAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/ProfitAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/model/Category.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/model/DataSet.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/model/DataValue.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/model/FusionChartModel.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/model/FusionChartModelGroupByConsignee.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/model/FusionChartModelGroupByCreator.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/model/FusionChartModelGroupByCustomer.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/model/FusionChartModelGroupByDate.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/model/FusionChartModelGroupByDeparture.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/model/FusionChartModelGroupByDestination.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/model/FusionChartModelGroupBySaler.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/model/FusionChartModelGroupByShipper.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/java/com/ksa/web/struts2/action/statistics/profit/model/FusionChartModelGroupByType.java create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/mybatis/mapper/statistics-cargo.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/struts-plugin.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/struts2/struts-statistics-cargo.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/struts2/struts-statistics-profit.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/cargo/cargo-table-column.js create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/cargo/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/cargo/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/profit/chart.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/profit/data/Column2D.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/profit/data/Doughnut2D.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/profit/data/Error.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/profit/data/Line.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/profit/data/MSColumn2D.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/profit/data/MSLine.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/profit/data/Pie2D.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/profit/data/template/footer.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/profit/data/template/header.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/profit/data/template/multi-series.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/profit/data/template/single-series.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/profit/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-statistics-web/src/main/resources/ui/statistics/profit/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/pom.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/system/initialize/convert/BusinessConverter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/system/initialize/convert/FinanceConverter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/system/initialize/convert/PartnerConverter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/system/initialize/convert/UserConverter.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/system/initialize/model/FeiYong.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/system/initialize/model/JieSuanDan.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/system/initialize/model/KeHu.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/system/initialize/model/TuoDan.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/system/initialize/model/YongHu.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/system/initialize/util/InitializeUtils.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/web/struts2/action/system/backup/BackupAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/web/struts2/action/system/backup/DeleteAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/web/struts2/action/system/backup/DownloadAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/web/struts2/action/system/backup/FileWrapper.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/web/struts2/action/system/backup/ManagerAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/web/struts2/action/system/backup/QueryBackupFileListAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/web/struts2/action/system/backup/RestoreAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/web/struts2/action/system/backup/StrategySave.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/web/struts2/action/system/backup/StrategyView.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/web/struts2/action/system/initialize/BaseAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/web/struts2/action/system/initialize/CheckConnectionAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/web/struts2/action/system/initialize/ExecuteSqlAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/java/com/ksa/web/struts2/action/system/initialize/InitializeAction.java create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/resources/mybatis/initialize/init-feiyong.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/resources/mybatis/initialize/init-jsd.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/resources/mybatis/initialize/init-kehu.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/resources/mybatis/initialize/init-tuodan.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/resources/mybatis/initialize/init-user.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/resources/mybatis/mapper/system-initialize.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/resources/struts-plugin.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/resources/struts2/struts-system-backup.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/resources/struts2/struts-system-initialize.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/resources/template/data-initialize.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/resources/ui/system/backup/default.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/resources/ui/system/backup/default.js create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/resources/ui/system/backup/download-error.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-system-web/src/main/resources/ui/system/backup/strategy.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-web/pom.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/resources/log4j.properties create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/resources/struts-plugin.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/applicationContext.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/decorators/bd.jsp create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/decorators/chart.jsp create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/decorators/component.jsp create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/decorators/dialog.jsp create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/decorators/main.jsp create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/decorators/portal.jsp create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/decorators/print.jsp create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/decorators/system.jsp create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/include/main-head.jsp create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/include/main-nav.jsp create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/index.jsp create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/runtime.properties create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/shiro.ini create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/sitemesh3.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/web.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/WEB-INF/wro.xml create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/favicon.ico create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/index.jsp create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/init.sql create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/login.jsp create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/logout.jsp create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/LICENSE create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/README.md create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/css/bootstrap-responsive.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/css/bootstrap.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/img/glyphicons-halflings-white.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/img/glyphicons-halflings.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/js/bootstrap-affix.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/js/bootstrap-alert.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/js/bootstrap-button.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/js/bootstrap-carousel.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/js/bootstrap-collapse.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/js/bootstrap-dropdown.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/js/bootstrap-modal.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/js/bootstrap-popover.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/js/bootstrap-scrollspy.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/js/bootstrap-tab.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/js/bootstrap-tooltip.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/js/bootstrap-transition.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/js/bootstrap-typeahead.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/js/bootstrap.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/bootstrap/package.json create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/charts/Column2D.swf create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/charts/Doughnut2D.swf create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/charts/Line.swf create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/charts/MSColumn2D.swf create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/charts/MSLine.swf create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/charts/Pie2D.swf create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/component/css/compositequery.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/component/jquery.compositequery.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/component/jquery.multipleselection.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/locale/easyui-lang-en.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/locale/easyui-lang-fr.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/locale/easyui-lang-zh_CN.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.accordion.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.calendar.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.combo.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.combobox.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.combogrid.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.combotree.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.datagrid.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.datebox.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.datetimebox.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.dialog.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.draggable.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.droppable.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.form.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.layout.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.linkbutton.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.menu.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.menubutton.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.messager.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.numberbox.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.numberspinner.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.pagination.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.panel.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.parser.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.portal.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.progressbar.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.propertygrid.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.resizable.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.searchbox.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.slider.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.spinner.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.splitbutton.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.tabs.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.timespinner.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.tree.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.treegrid.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.validatebox.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/plugins/jquery.window.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/accordion.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/calendar.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/combo.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/combobox.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/datagrid.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/datebox.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/dialog.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/easyui.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/accordion_arrows.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/blank.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/button_a_bg.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/button_plain_hover.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/button_span_bg.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/calendar_nextmonth.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/calendar_nextyear.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/calendar_prevmonth.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/calendar_prevyear.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/combo_arrow.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/datagrid_header_bg.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/datagrid_row_collapse.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/datagrid_row_expand.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/datagrid_sort_asc.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/datagrid_sort_desc.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/datagrid_title_bg.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/datebox_arrow.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/layout_arrows.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/menu.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/menu_downarrow.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/menu_rightarrow.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/menu_sep.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/menu_split_downarrow.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/messager-error.jpg create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/messager-error.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/messager-info.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/messager-question.jpg create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/messager-question.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/messager-success.jpg create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/messager-success.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/messager-warning.jpg create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/messager-warning.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/messager_error.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/messager_info.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/messager_question.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/messager_warning.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/pagination_first.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/pagination_last.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/pagination_load.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/pagination_loading.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/pagination_next.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/pagination_prev.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/pagination_tools.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/panel_loading.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/panel_title.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/panel_tool_collapse.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/panel_tool_expand.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/panel_tools.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/searchbox_button.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/slider_handle.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/spinner_arrow_down.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/spinner_arrow_up.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tabs_close.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tabs_enabled.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tabs_leftarrow.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tabs_rightarrow.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tree_arrows.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tree_bg.jpg create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tree_checkbox.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tree_checkbox_0.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tree_checkbox_1.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tree_checkbox_2.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tree_dnd_no.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tree_dnd_yes.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tree_elbow.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tree_file.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tree_folder.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tree_folder_open.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/tree_loading.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/validatebox_pointer.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/images/validatebox_warning.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/layout.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/linkbutton.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/menu.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/menubutton.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/messager.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/pagination.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/panel.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/portal.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/progressbar.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/propertygrid.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/searchbox.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/slider.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/spinner.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/splitbutton.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/tabs.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/tree.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/validatebox.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/themes/gray/window.css create mode 100644 "test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/easyui/\344\277\256\346\224\271\350\257\264\346\230\216.txt" create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icon.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/back.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/blank.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/cancel.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/cut.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/edit_add.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/edit_remove.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/filesave.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/help.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/logo.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/mini_add.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/mini_edit.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/mini_refresh.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/no.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/ok.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/pencil.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/print.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/redo.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/reload.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/search.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/sum.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/tip.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/icons/undo.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/img/glyphicons-halflings-white.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/img/loading.gif create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/img/navbar-bg.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/ksa.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/ksa.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/print/blueprint.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/custom/print/custom.css create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/fusion-charts.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/html5.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/images/checkbox-check.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/images/checkbox.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/images/login-bg.jpg create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/images/logo-banner.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/images/report-banner-arrival.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/images/report-banner.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/images/type/AE.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/images/type/AI.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/images/type/SE.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/images/type/SI.png create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/jquery/jquery-1.7.2.min.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/jquery/jquery.easyui.min.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/jquery/jquery.hotkeys.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/kibo.js create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/rs/readme.txt create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/template/simple/actionerror.ftl create mode 100644 test_input/ksa/ksa-web-root/ksa-web/src/main/webapp/template/simple/actionmessage.ftl create mode 100644 test_input/ksa/ksa-web-root/pom.xml create mode 100644 test_input/ksa/mvn-update-version.sh create mode 100644 test_input/ksa/pom.xml create mode 100644 test_input/whitesource-fs-agent.config diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..17fe345 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +target/ +*.iml +.idea/ +/whitesource-fs-agent.config +/whitesource/ +dots/ +out.txt +out/ +src/test/resources/resolver/npm/sample/node_modules/ +src/test/resources/resolver/npm/sample/package-lock.json \ No newline at end of file diff --git a/.whitesource b/.whitesource new file mode 100644 index 0000000..f340c5d --- /dev/null +++ b/.whitesource @@ -0,0 +1,8 @@ +########################################################## +#### WhiteSource Integration configuration file #### +########################################################## + +# Configuration # +#---------------# +ws.repo.scan=true +vulnerable.check.run.conclusion.level=failure diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..7a4a3ea --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/README.EUA.md b/README.EUA.md new file mode 100644 index 0000000..1051ca4 --- /dev/null +++ b/README.EUA.md @@ -0,0 +1,9 @@ +WhiteSource File System Agent +============================== +## Begin of readme.eua.md + +The WhiteSource File System Agent is distributed together with a modified version +of T.J. Watson Libraries for Analysis http://wala.sourceforge.net. The modified source code is available upon request. +For more details please contact oss@whitesourcesoftware.com + +## End of readme.eua.md \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..a513edb --- /dev/null +++ b/README.md @@ -0,0 +1,40 @@ +WhiteSource File System Agent +============================== + +**As part of WhiteSource's [Unified Agent](https://whitesource.atlassian.net/wiki/spaces/WD/pages/33718339/Unified+Agent) strategy and roadmap, we have updated the latest versions of the Unified Agent (v18.12.2 and above) with a WhiteSource commercial license. A separate private GitHub repository was created for this purpose and it contains versions 18.12.2 and above of the Unified Agent. The Unified Agent distribution repository can be found [here](https://github.com/whitesource/unified-agent-distribution). For more information on these changes, click [here](https://whitesource.atlassian.net/wiki/spaces/WD/pages/718405635/WhiteSource+Unified+Agent+Updates+January+2019).** + +An [external update agent][1] for projects. + +The agent looks for open source usage in your projects and update your [White Source][2] account. + +### Getting Started +Setup and configuration along with comprehensive documentation could be found [here][3]. +Technical information about the plugin could be found [here][4]. + +### Support +You can always create an issue or tell our support team what you think [here][5]. + +### License +The project is licensed under the [Apache 2.0][6] license. +
+Copyright (C) 2015 WhiteSource Ltd. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. ++ +[1]: http://www.github.com/whitesource/agents +[2]: http://www.whitesourcesoftware.com +[3]: https://whitesource.atlassian.net/wiki/spaces/WD/pages/33718339/File+System+Agent +[4]: https://github.com/whitesource/fs-agent +[5]: mailto:support@whitesourcesoftware.com +[6]: http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/folder-offline-test/whitesource/update-request.txt b/folder-offline-test/whitesource/update-request.txt new file mode 100644 index 0000000..03c2624 --- /dev/null +++ b/folder-offline-test/whitesource/update-request.txt @@ -0,0 +1 @@ +{"updateType":"OVERRIDE","type":"UPDATE","agent":"fs-agent","agentVersion":"2.7.7","pluginVersion":"18.7.2-SNAPSHOT","orgToken":"token","product":"fsAgentMain","productVersion":"","timeStamp":1532939765748,"projects":[{"coordinates":{"artifactId":"npm","version":""},"dependencies":[{"groupId":"request","artifactId":"request-2.83.0.tgz","version":"2.83.0","sha1":"ca0b65da02ed62935887808e6f510381034e3356","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\request\\package.json","optional":false,"children":[{"groupId":"aws-sign2","artifactId":"aws-sign2-0.7.0.tgz","version":"0.7.0","sha1":"b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\aws-sign2\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\aws-sign2\\package.json","dependencyType":"NPM","checksums":{"SHA1":"b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"}},{"groupId":"aws4","artifactId":"aws4-1.7.0.tgz","version":"1.7.0","sha1":"d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\aws4\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\aws4\\package.json","dependencyType":"NPM","checksums":{"SHA1":"d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289"}},{"groupId":"caseless","artifactId":"caseless-0.12.0.tgz","version":"0.12.0","sha1":"1b681c21ff84033c826543090689420d187151dc","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\caseless\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\caseless\\package.json","dependencyType":"NPM","checksums":{"SHA1":"1b681c21ff84033c826543090689420d187151dc"}},{"groupId":"combined-stream","artifactId":"combined-stream-1.0.6.tgz","version":"1.0.6","sha1":"723e7df6e801ac5613113a7e445a9b69cb632818","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\combined-stream\\package.json","optional":false,"children":[{"groupId":"delayed-stream","artifactId":"delayed-stream-1.0.0.tgz","version":"1.0.0","sha1":"df3ae199acadfb7d440aaae0b29e2272b24ec619","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\delayed-stream\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\delayed-stream\\package.json","dependencyType":"NPM","checksums":{"SHA1":"df3ae199acadfb7d440aaae0b29e2272b24ec619"}}],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\combined-stream\\package.json","dependencyType":"NPM","checksums":{"SHA1":"723e7df6e801ac5613113a7e445a9b69cb632818"}},{"groupId":"extend","artifactId":"extend-3.0.2.tgz","version":"3.0.2","sha1":"f8b1136b4071fbd8eb140aff858b1019ec2915fa","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\extend\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\extend\\package.json","dependencyType":"NPM","checksums":{"SHA1":"f8b1136b4071fbd8eb140aff858b1019ec2915fa"}},{"groupId":"forever-agent","artifactId":"forever-agent-0.6.1.tgz","version":"0.6.1","sha1":"fbc71f0c41adeb37f96c577ad1ed42d8fdacca91","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\forever-agent\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\forever-agent\\package.json","dependencyType":"NPM","checksums":{"SHA1":"fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"}},{"groupId":"form-data","artifactId":"form-data-2.3.2.tgz","version":"2.3.2","sha1":"4970498be604c20c005d4f5c23aecd21d6b49099","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\form-data\\package.json","optional":false,"children":[{"groupId":"asynckit","artifactId":"asynckit-0.4.0.tgz","version":"0.4.0","sha1":"c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\asynckit\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\asynckit\\package.json","dependencyType":"NPM","checksums":{"SHA1":"c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"}}],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\form-data\\package.json","dependencyType":"NPM","checksums":{"SHA1":"4970498be604c20c005d4f5c23aecd21d6b49099"}},{"groupId":"har-validator","artifactId":"har-validator-5.0.3.tgz","version":"5.0.3","sha1":"ba402c266194f15956ef15e0fcf242993f6a7dfd","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\har-validator\\package.json","optional":false,"children":[{"groupId":"ajv","artifactId":"ajv-5.5.2.tgz","version":"5.5.2","sha1":"73b5eeca3fab653e3d3f9422b341ad42205dc965","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\ajv\\package.json","optional":false,"children":[{"groupId":"co","artifactId":"co-4.6.0.tgz","version":"4.6.0","sha1":"6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\co\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\co\\package.json","dependencyType":"NPM","checksums":{"SHA1":"6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"}},{"groupId":"fast-deep-equal","artifactId":"fast-deep-equal-1.1.0.tgz","version":"1.1.0","sha1":"c053477817c86b51daa853c81e059b733d023614","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\fast-deep-equal\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\fast-deep-equal\\package.json","dependencyType":"NPM","checksums":{"SHA1":"c053477817c86b51daa853c81e059b733d023614"}},{"groupId":"fast-json-stable-stringify","artifactId":"fast-json-stable-stringify-2.0.0.tgz","version":"2.0.0","sha1":"d5142c0caee6b1189f87d3a76111064f86c8bbf2","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\fast-json-stable-stringify\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\fast-json-stable-stringify\\package.json","dependencyType":"NPM","checksums":{"SHA1":"d5142c0caee6b1189f87d3a76111064f86c8bbf2"}},{"groupId":"json-schema-traverse","artifactId":"json-schema-traverse-0.3.1.tgz","version":"0.3.1","sha1":"349a6d44c53a51de89b40805c5d5e59b417d3340","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\json-schema-traverse\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\json-schema-traverse\\package.json","dependencyType":"NPM","checksums":{"SHA1":"349a6d44c53a51de89b40805c5d5e59b417d3340"}}],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\ajv\\package.json","dependencyType":"NPM","checksums":{"SHA1":"73b5eeca3fab653e3d3f9422b341ad42205dc965"}},{"groupId":"har-schema","artifactId":"har-schema-2.0.0.tgz","version":"2.0.0","sha1":"a94c2224ebcac04782a0d9035521f24735b7ec92","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\har-schema\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\har-schema\\package.json","dependencyType":"NPM","checksums":{"SHA1":"a94c2224ebcac04782a0d9035521f24735b7ec92"}}],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\har-validator\\package.json","dependencyType":"NPM","checksums":{"SHA1":"ba402c266194f15956ef15e0fcf242993f6a7dfd"}},{"groupId":"hawk","artifactId":"hawk-6.0.2.tgz","version":"6.0.2","sha1":"af4d914eb065f9b5ce4d9d11c1cb2126eecc3038","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\hawk\\package.json","optional":false,"children":[{"groupId":"boom","artifactId":"boom-4.3.1.tgz","version":"4.3.1","sha1":"4f8a3005cb4a7e3889f749030fd25b96e01d2e31","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\boom\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\boom\\package.json","dependencyType":"NPM","checksums":{"SHA1":"4f8a3005cb4a7e3889f749030fd25b96e01d2e31"}},{"groupId":"cryptiles","artifactId":"cryptiles-3.1.2.tgz","version":"3.1.2","sha1":"a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\cryptiles\\package.json","optional":false,"children":[{"groupId":"boom","artifactId":"boom-5.2.0.tgz","version":"5.2.0","sha1":"5dd9da6ee3a5f302077436290cb717d3f4a54e02","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\cryptiles\\node_modules\\boom\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\cryptiles\\node_modules\\boom\\package.json","dependencyType":"NPM","checksums":{"SHA1":"5dd9da6ee3a5f302077436290cb717d3f4a54e02"}}],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\cryptiles\\package.json","dependencyType":"NPM","checksums":{"SHA1":"a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"}},{"groupId":"hoek","artifactId":"hoek-4.2.1.tgz","version":"4.2.1","sha1":"9634502aa12c445dd5a7c5734b572bb8738aacbb","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\hoek\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\hoek\\package.json","dependencyType":"NPM","checksums":{"SHA1":"9634502aa12c445dd5a7c5734b572bb8738aacbb"}},{"groupId":"sntp","artifactId":"sntp-2.1.0.tgz","version":"2.1.0","sha1":"2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\sntp\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\sntp\\package.json","dependencyType":"NPM","checksums":{"SHA1":"2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"}}],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\hawk\\package.json","dependencyType":"NPM","checksums":{"SHA1":"af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"}},{"groupId":"http-signature","artifactId":"http-signature-1.2.0.tgz","version":"1.2.0","sha1":"9aecd925114772f3d95b65a60abb8f7c18fbace1","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\http-signature\\package.json","optional":false,"children":[{"groupId":"assert-plus","artifactId":"assert-plus-1.0.0.tgz","version":"1.0.0","sha1":"f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\assert-plus\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\assert-plus\\package.json","dependencyType":"NPM","checksums":{"SHA1":"f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"}},{"groupId":"jsprim","artifactId":"jsprim-1.4.1.tgz","version":"1.4.1","sha1":"313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\jsprim\\package.json","optional":false,"children":[{"groupId":"extsprintf","artifactId":"extsprintf-1.3.0.tgz","version":"1.3.0","sha1":"96918440e3041a7a414f8c52e3c574eb3c3e1e05","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\extsprintf\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\extsprintf\\package.json","dependencyType":"NPM","checksums":{"SHA1":"96918440e3041a7a414f8c52e3c574eb3c3e1e05"}},{"groupId":"json-schema","artifactId":"json-schema-0.2.3.tgz","version":"0.2.3","sha1":"b480c892e59a2f05954ce727bd3f2a4e882f9e13","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\json-schema\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\json-schema\\package.json","dependencyType":"NPM","checksums":{"SHA1":"b480c892e59a2f05954ce727bd3f2a4e882f9e13"}},{"groupId":"verror","artifactId":"verror-1.10.0.tgz","version":"1.10.0","sha1":"3a105ca17053af55d6e270c1f8288682e18da400","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\verror\\package.json","optional":false,"children":[{"groupId":"core-util-is","artifactId":"core-util-is-1.0.2.tgz","version":"1.0.2","sha1":"b5fd54220aa2bc5ab57aab7140c940754503c1a7","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\core-util-is\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\core-util-is\\package.json","dependencyType":"NPM","checksums":{"SHA1":"b5fd54220aa2bc5ab57aab7140c940754503c1a7"}}],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\verror\\package.json","dependencyType":"NPM","checksums":{"SHA1":"3a105ca17053af55d6e270c1f8288682e18da400"}}],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\jsprim\\package.json","dependencyType":"NPM","checksums":{"SHA1":"313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"}},{"groupId":"sshpk","artifactId":"sshpk-1.14.2.tgz","version":"1.14.2","sha1":"c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\sshpk\\package.json","optional":false,"children":[{"groupId":"asn1","artifactId":"asn1-0.2.3.tgz","version":"0.2.3","sha1":"dac8787713c9966849fc8180777ebe9c1ddf3b86","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\asn1\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\asn1\\package.json","dependencyType":"NPM","checksums":{"SHA1":"dac8787713c9966849fc8180777ebe9c1ddf3b86"}},{"groupId":"bcrypt-pbkdf","artifactId":"bcrypt-pbkdf-1.0.2.tgz","version":"1.0.2","sha1":"a4301d389b6a43f9b67ff3ca11a3f6637e360e9e","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\bcrypt-pbkdf\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\bcrypt-pbkdf\\package.json","dependencyType":"NPM","checksums":{"SHA1":"a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"}},{"groupId":"dashdash","artifactId":"dashdash-1.14.1.tgz","version":"1.14.1","sha1":"853cfa0f7cbe2fed5de20326b8dd581035f6e2f0","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\dashdash\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\dashdash\\package.json","dependencyType":"NPM","checksums":{"SHA1":"853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"}},{"groupId":"ecc-jsbn","artifactId":"ecc-jsbn-0.1.2.tgz","version":"0.1.2","sha1":"3a83a904e54353287874c564b7549386849a98c9","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\ecc-jsbn\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\ecc-jsbn\\package.json","dependencyType":"NPM","checksums":{"SHA1":"3a83a904e54353287874c564b7549386849a98c9"}},{"groupId":"getpass","artifactId":"getpass-0.1.7.tgz","version":"0.1.7","sha1":"5eff8e3e684d569ae4cb2b1282604e8ba62149fa","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\getpass\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\getpass\\package.json","dependencyType":"NPM","checksums":{"SHA1":"5eff8e3e684d569ae4cb2b1282604e8ba62149fa"}},{"groupId":"jsbn","artifactId":"jsbn-0.1.1.tgz","version":"0.1.1","sha1":"a5e654c2e5a2deb5f201d96cefbca80c0ef2f513","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\jsbn\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\jsbn\\package.json","dependencyType":"NPM","checksums":{"SHA1":"a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"}},{"groupId":"safer-buffer","artifactId":"safer-buffer-2.1.2.tgz","version":"2.1.2","sha1":"44fa161b0187b9549dd84bb91802f9bd8385cd6a","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\safer-buffer\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\safer-buffer\\package.json","dependencyType":"NPM","checksums":{"SHA1":"44fa161b0187b9549dd84bb91802f9bd8385cd6a"}},{"groupId":"tweetnacl","artifactId":"tweetnacl-0.14.5.tgz","version":"0.14.5","sha1":"5ae68177f192d4456269d108afa93ff8743f4f64","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\tweetnacl\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\tweetnacl\\package.json","dependencyType":"NPM","checksums":{"SHA1":"5ae68177f192d4456269d108afa93ff8743f4f64"}}],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\sshpk\\package.json","dependencyType":"NPM","checksums":{"SHA1":"c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98"}}],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\http-signature\\package.json","dependencyType":"NPM","checksums":{"SHA1":"9aecd925114772f3d95b65a60abb8f7c18fbace1"}},{"groupId":"is-typedarray","artifactId":"is-typedarray-1.0.0.tgz","version":"1.0.0","sha1":"e479c80858df0c1b11ddda6940f96011fcda4a9a","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\is-typedarray\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\is-typedarray\\package.json","dependencyType":"NPM","checksums":{"SHA1":"e479c80858df0c1b11ddda6940f96011fcda4a9a"}},{"groupId":"isstream","artifactId":"isstream-0.1.2.tgz","version":"0.1.2","sha1":"47e63f7af55afa6f92e1500e690eb8b8529c099a","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\isstream\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\isstream\\package.json","dependencyType":"NPM","checksums":{"SHA1":"47e63f7af55afa6f92e1500e690eb8b8529c099a"}},{"groupId":"json-stringify-safe","artifactId":"json-stringify-safe-5.0.1.tgz","version":"5.0.1","sha1":"1296a2d58fd45f19a0f6ce01d65701e2c735b6eb","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\json-stringify-safe\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\json-stringify-safe\\package.json","dependencyType":"NPM","checksums":{"SHA1":"1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"}},{"groupId":"mime-types","artifactId":"mime-types-2.1.19.tgz","version":"2.1.19","sha1":"71e464537a7ef81c15f2db9d97e913fc0ff606f0","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\mime-types\\package.json","optional":false,"children":[{"groupId":"mime-db","artifactId":"mime-db-1.35.0.tgz","version":"1.35.0","sha1":"0569d657466491283709663ad379a99b90d9ab47","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\mime-db\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\mime-db\\package.json","dependencyType":"NPM","checksums":{"SHA1":"0569d657466491283709663ad379a99b90d9ab47"}}],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\mime-types\\package.json","dependencyType":"NPM","checksums":{"SHA1":"71e464537a7ef81c15f2db9d97e913fc0ff606f0"}},{"groupId":"oauth-sign","artifactId":"oauth-sign-0.8.2.tgz","version":"0.8.2","sha1":"46a6ab7f0aead8deae9ec0565780b7d4efeb9d43","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\oauth-sign\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\oauth-sign\\package.json","dependencyType":"NPM","checksums":{"SHA1":"46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"}},{"groupId":"performance-now","artifactId":"performance-now-2.1.0.tgz","version":"2.1.0","sha1":"6309f4e0e5fa913ec1c69307ae364b4b377c9e7b","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\performance-now\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\performance-now\\package.json","dependencyType":"NPM","checksums":{"SHA1":"6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"}},{"groupId":"qs","artifactId":"qs-6.5.2.tgz","version":"6.5.2","sha1":"cb3ae806e8740444584ef154ce8ee98d403f3e36","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\qs\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\qs\\package.json","dependencyType":"NPM","checksums":{"SHA1":"cb3ae806e8740444584ef154ce8ee98d403f3e36"}},{"groupId":"safe-buffer","artifactId":"safe-buffer-5.1.2.tgz","version":"5.1.2","sha1":"991ec69d296e0313747d59bdfd2b745c35f8828d","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\safe-buffer\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\safe-buffer\\package.json","dependencyType":"NPM","checksums":{"SHA1":"991ec69d296e0313747d59bdfd2b745c35f8828d"}},{"groupId":"stringstream","artifactId":"stringstream-0.0.6.tgz","version":"0.0.6","sha1":"7880225b0d4ad10e30927d167a1d6f2fd3b33a72","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\stringstream\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\stringstream\\package.json","dependencyType":"NPM","checksums":{"SHA1":"7880225b0d4ad10e30927d167a1d6f2fd3b33a72"}},{"groupId":"tough-cookie","artifactId":"tough-cookie-2.3.4.tgz","version":"2.3.4","sha1":"ec60cee38ac675063ffc97a5c18970578ee83655","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\tough-cookie\\package.json","optional":false,"children":[{"groupId":"punycode","artifactId":"punycode-1.4.1.tgz","version":"1.4.1","sha1":"c0d5a63b2718800ad8e1eb0fa5269c84dd41845e","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\punycode\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\punycode\\package.json","dependencyType":"NPM","checksums":{"SHA1":"c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"}}],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\tough-cookie\\package.json","dependencyType":"NPM","checksums":{"SHA1":"ec60cee38ac675063ffc97a5c18970578ee83655"}},{"groupId":"tunnel-agent","artifactId":"tunnel-agent-0.6.0.tgz","version":"0.6.0","sha1":"27a5dea06b36b04a0a9966774b290868f0fc40fd","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\tunnel-agent\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\tunnel-agent\\package.json","dependencyType":"NPM","checksums":{"SHA1":"27a5dea06b36b04a0a9966774b290868f0fc40fd"}}],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\request\\package.json","dependencyType":"NPM","checksums":{"SHA1":"ca0b65da02ed62935887808e6f510381034e3356"}},{"groupId":"uuid","artifactId":"uuid-3.1.0.tgz","version":"3.1.0","sha1":"3dd3d3e790abc24d7b0d3a034ffababe28ebbc04","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\uuid\\package.json","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample\\node_modules\\uuid\\package.json","dependencyType":"NPM","checksums":{"SHA1":"3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"}},{"artifactId":"sample.js","sha1":"60639b7e53e467dadcbd6bf00a6daaf5738b278e","fullHash":"1660f12ea5e40066471ee989dd3a4b393eb908b4","mostSigBitsHash":"dc25a8c05c41be6d828d0bd404c172ada6b5fd6e","leastSigBitsHash":"7ccfad2d66f476830cccdb173950a64c81006f4d","otherPlatformSha1":"33dbd00f8459b279344daefbf7118f2eea001504","systemPath":"C:\\Gitub-Projects\\fs-agent\\target\\test-classes\\resolver\\npm\\sample.js","optional":false,"children":[],"exclusions":[],"licenses":[],"copyrights":[],"filename":"sample.js","checksums":{"SHA1":"60639b7e53e467dadcbd6bf00a6daaf5738b278e","SHA1_SUPER_HASH":"1660f12ea5e40066471ee989dd3a4b393eb908b4","SHA1_SUPER_HASH_MSB":"dc25a8c05c41be6d828d0bd404c172ada6b5fd6e","SHA1_SUPER_HASH_LSB":"7ccfad2d66f476830cccdb173950a64c81006f4d","SHA1_NO_HEADER":"e489eba188497f066442d3890943d68b5a0ed7f4","SHA1_NO_COMMENTS_SUPER_HASH":"0376304b0fd59234ca5e336dd83d580c7579b299","SHA1_OTHER_PLATFORM":"33dbd00f8459b279344daefbf7118f2eea001504"}}]}],"aggregateModules":false,"preserveModuleStructure":false} \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..29e0c31 --- /dev/null +++ b/pom.xml @@ -0,0 +1,537 @@ + +
+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *
+ * http://www.apache.org/licenses/LICENSE-2.0 + *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent;
+
+/**
+ * Property keys for the whitesource-docker-agent.configuration file.
+ *
+ * @author annarozin
+ */
+public final class Constants {
+
+ public static final String NEW_LINE = System.lineSeparator();
+ public static final String JAVA_NETWORKING = "java.net";
+ public static final String FILE_SEPARATOR = "file.separator";
+ public static final String FALSE = "false";
+ public static final String TRUE = "true";
+ public static final String TAG = "tag";
+ public static final String VERSION = "version";
+ public static final String RESOLUTION = "_resolution";
+ public static final String NAME = "name";
+ public static final String MISSING = "missing";
+ public static final String DEPENDENCIES = "dependencies";
+ public static final String SRC = "src";
+ public static final String CMD = "cmd";
+ public static final String OS_NAME = "os.name";
+ public static final String WIN = "win";
+ public static final String JS_EXTENSION = ".js";
+ public static final String PACKAGES = "packages";
+ public static final String INSTALL = "install";
+ public static final String MAVEN = "maven";
+ public static final String HTML = "html";
+ public static final String HTM = "htm";
+ public static final String SHTML = "shtml";
+ public static final String XHTML = "xhtml";
+ public static final String JSP = "jsp";
+ public static final String ASP = "asp";
+ public static final String DO = "do";
+ public static final String ASPX = "aspx";
+ public static final String WINDOWS = "Windows";
+ public static final String GRADLE_WRAPPER = "wrapper";
+ public static final String GRADLE = "gradle";
+ public static final String POM = "pom";
+ public static final String JAR = "jar";
+ public static final String DOT = ".";
+ public static final String DIRECTORY = "d";
+ public static final String BACK_SLASH = "\\";
+ public static final String FORWARD_SLASH = "/";
+ public static final String WHITESPACE = " ";
+ public static final String EMPTY_STRING = "";
+ public static final String COLON = ":";
+ public static final String AT = "@";
+ public static final String PLUS = "+";
+ public static final String DASH = "-";
+ public static final String PATTERN = "**/*";
+ public static final String COMMA = ",";
+ public static final String PIPE = "|";
+ public static final String REGEX_PATTERN_PREFIX = ".*\\.";
+ public static final String GLOB_PATTERN_PREFIX = "**/*";
+ public static final String GLOB_PATTERN = ".*.*";
+ public static final String EQUALS = "=";
+ public static final String POUND = "#";
+ public static final String QUOTATION_MARK = "\"";
+ public static final String APOSTROPHE = "'";
+ public static final String HTTP = "http";
+ public static final String HTTPS = "https";
+ public static final String UTF8 = "UTF-8";
+ public static final String DLL = ".dll";
+ public static final String EXE = ".exe";
+ public static final String NUPKG = ".nupkg";
+ public static final String CS = ".cs";
+ public static final String VAR = "var";
+ public static final String LIB = "lib";
+ public static final String YUM_DB = "yumdb";
+ public static final String YUM = "yum";
+ public static final String PYTHON_REQUIREMENTS = "requirements.txt";
+ public static final String PIPFILE = "Pipfile";
+ public static final String TXT_EXTENSION = ".txt";
+ public static final String SETUP_PY = "setup.py";
+ public static final String JAR_EXTENSION = ".jar";
+ public static final int MAX_EXTRACTION_DEPTH = 7;
+ public static final int COMMENT_MAX_LENGTH = 1000;
+ public static final int ZERO = 0;
+ public static final int ONE = 1;
+ public static final String BUILD_GRADLE = "build.gradle";
+ public static final String COPY_DEPENDENCIES = "copyDependencies";
+ public static final String UNDERSCORE = "_";
+ public static final char QUESTION_MARK = '?';
+ public static final char WHITESPACE_CHAR = ' ';
+ public static final char OPEN_BRACKET = '(';
+ public static final char CLOSE_BRACKET = ')';
+ public static final char EQUALS_CHAR = '=';
+ public static final char OPEN_SQUARE_BRACKET = '[';
+ public static final char CLOSE_SQUARE_BRACKET = ']';
+ public static final String DOUBLE_EQUALS = "==";
+ public static final char SEMI_COLON = ';';
+ public static final String DOLLAR = "$";
+ public static final String OPEN_CURLY_BRACKET = "{";
+ public static final String CLOSE_CURLY_BRACKET = "}";
+
+ public static final int MAX_NUMBER_OF_DEPENDENCIES = 1000000;
+
+ public static final String MAP_LOG_NAME = "org.whitesource";
+ public static final String MAP_APPENDER_NAME = "collectToMap";
+ public static final String HELP_ARG1 = "-help";
+ public static final String HELP_ARG2 = "-h";
+ public static final String TARGET = "target";
+ public static final String BUILD = "build";
+ public static final String NONE = "None";
+ public static final String LIBS = "libs";
+ public static final String USER_HOME = "user.home";
+}
\ No newline at end of file
diff --git a/src/main/java/org/whitesource/agent/DependencyCalculator.java b/src/main/java/org/whitesource/agent/DependencyCalculator.java
new file mode 100644
index 0000000..310242b
--- /dev/null
+++ b/src/main/java/org/whitesource/agent/DependencyCalculator.java
@@ -0,0 +1,79 @@
+package org.whitesource.agent;
+
+import org.whitesource.agent.api.model.DependencyInfo;
+
+import java.io.File;
+import java.text.MessageFormat;
+import java.util.*;
+
+public class DependencyCalculator {
+
+ private static final List
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.whitesource.agent.api.model.ChecksumType;
+import org.whitesource.agent.api.model.CopyrightInfo;
+import org.whitesource.agent.api.model.DependencyHintsInfo;
+import org.whitesource.agent.api.model.DependencyInfo;
+import org.whitesource.agent.hash.ChecksumUtils;
+import org.whitesource.agent.hash.HashAlgorithm;
+import org.whitesource.agent.hash.HashCalculator;
+import org.whitesource.agent.hash.HintUtils;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.*;
+
+/**
+ * Factory class for {@link org.whitesource.agent.api.model.DependencyInfo}.
+ *
+ * @author tom.shapira
+ */
+public class DependencyInfoFactory {
+
+ /* --- Static members --- */
+
+ private final Logger logger = LoggerFactory.getLogger(DependencyInfoFactory.class);
+
+ private static final String COPYRIGHT = "copyright";
+ private static final String COPYRIGHT_SYMBOL = "(c)";
+ private static final String COPYRIGHT_ASCII_SYMBOL = "©";
+ private static final List
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent;
+
+import org.apache.commons.io.FileUtils;
+import org.slf4j.Logger;
+import org.whitesource.agent.api.model.AgentProjectInfo;
+import org.whitesource.agent.api.model.Coordinates;
+import org.whitesource.agent.api.model.DependencyInfo;
+import org.whitesource.agent.api.model.DependencyType;
+import org.whitesource.agent.archive.ArchiveExtractor;
+import org.whitesource.agent.dependency.resolver.AbstractDependencyResolver;
+import org.whitesource.agent.dependency.resolver.DependencyResolutionService;
+import org.whitesource.agent.dependency.resolver.ResolutionResult;
+import org.whitesource.agent.utils.FilesUtils;
+import org.whitesource.agent.utils.LoggerFactory;
+import org.whitesource.agent.utils.MemoryUsageHelper;
+import org.whitesource.fs.FSAConfiguration;
+import org.whitesource.fs.FileSystemAgent;
+import org.whitesource.fs.Main;
+import org.whitesource.fs.StatusCode;
+import org.whitesource.fs.configuration.AgentConfiguration;
+import org.whitesource.fs.configuration.ResolverConfiguration;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Path;
+import java.text.MessageFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * This class does the actual directory scanning, creates {@link DependencyInfo}s.
+ *
+ * @author tom.shapira
+ * @author anna.rozin
+ */
+public class FileSystemScanner {
+
+ /* --- Static members --- */
+
+ private final Logger logger = LoggerFactory.getLogger(FileSystemAgent.class);
+ private String FSA_FILE = "**/*whitesource-fs-agent-*.*jar";
+
+ /* --- Private Members --- */
+
+ private final boolean isSeparateProjects;
+ private final AgentConfiguration agent;
+ private final boolean showProgressBar;
+ private boolean enableImpactAnalysis;
+ private ViaLanguage iaLanguage;
+ private DependencyResolutionService dependencyResolutionService;
+ private String sha1;
+
+ /* --- Constructors --- */
+
+ public FileSystemScanner(ResolverConfiguration resolver, AgentConfiguration agentConfiguration, boolean enableImpactAnalysis) {
+ this.dependencyResolutionService = new DependencyResolutionService(resolver);
+ this.isSeparateProjects = dependencyResolutionService.isSeparateProjects();
+ this.agent = agentConfiguration;
+ this.showProgressBar = agentConfiguration.isShowProgressBar();
+ this.enableImpactAnalysis = enableImpactAnalysis;
+ }
+
+ public FileSystemScanner(ResolverConfiguration resolver, AgentConfiguration agentConfiguration, boolean enableImpactAnalysis, ViaLanguage iaLanguage) {
+ this(resolver, agentConfiguration, enableImpactAnalysis);
+ this.iaLanguage = iaLanguage;
+ }
+
+ /* --- Public methods --- */
+
+ /**
+ * This method is usually called from outside by different other tools
+ *
+ * @param scannerBaseDirs folders to scan
+ * @param scmConnector use scmConnector
+ * @param includes includes glob patterns
+ * @param excludes excludes glob patterns
+ * @param globCaseSensitive global case sensitive
+ * @param archiveExtractionDepth depth of recursive extraction
+ * @param archiveIncludes includes glob patterns for extraction
+ * @param archiveExcludes exclude glob patterns for extraction
+ * @param archiveFastUnpack use fast extraction
+ * @param followSymlinks use followSymlinks
+ * @param excludedCopyrights use excludedCopyrights
+ * @param partialSha1Match use partialSha1Match
+ * @return list of all the dependencies for project
+ */
+
+ @Deprecated
+ public List
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent;
+
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import com.google.common.collect.Lists;
+import com.google.gson.Gson;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.whitesource.agent.api.dispatch.*;
+import org.whitesource.agent.api.model.AgentProjectInfo;
+import org.whitesource.agent.api.model.Coordinates;
+import org.whitesource.agent.api.model.DependencyInfo;
+import org.whitesource.agent.client.WhitesourceService;
+import org.whitesource.agent.client.WssServiceException;
+import org.whitesource.agent.report.OfflineUpdateRequest;
+import org.whitesource.agent.report.PolicyCheckReport;
+import org.whitesource.agent.utils.LoggerFactory;
+import org.whitesource.agent.utils.Pair;
+import org.whitesource.contracts.PluginInfo;
+import org.whitesource.fs.LogMapAppender;
+import org.whitesource.fs.Main;
+import org.whitesource.fs.ProjectsDetails;
+import org.whitesource.fs.StatusCode;
+import org.whitesource.fs.configuration.OfflineConfiguration;
+import org.whitesource.fs.configuration.RequestConfiguration;
+import org.whitesource.fs.configuration.SenderConfiguration;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.concurrent.ConcurrentSkipListMap;
+import java.util.stream.Collectors;
+
+/**
+ * Class for sending projects for all WhiteSource command line agents.
+ *
+ * @author Itai Marko
+ * @author tom.shapira
+ * @author anna.rozin
+ */
+public class ProjectsSender {
+ /* --- Static members --- */
+ private static final String DATE_FORMAT = "HH:mm:ss";
+ public static final String PROJECT_URL_PREFIX = "Wss/WSS.html#!project;id=";
+ protected static final int MAX_LOG_EVENTS = 1000;
+ /* --- Members --- */
+ private final Logger logger = LoggerFactory.getLogger(ProjectsSender.class);
+ private final SenderConfiguration senderConfig;
+ private final OfflineConfiguration offlineConfig;
+ private final RequestConfiguration requestConfig;
+ private final PluginInfo pluginInfo;
+ protected StatusCode prepStepStatusCode = StatusCode.SUCCESS;
+
+ /* --- Constructors --- */
+
+ public ProjectsSender(SenderConfiguration senderConfig, OfflineConfiguration offlineConfig, RequestConfiguration requestConfig, PluginInfo pluginInfo) {
+ this.senderConfig = senderConfig;
+ this.offlineConfig = offlineConfig;
+ this.requestConfig = requestConfig;
+ this.pluginInfo = pluginInfo;
+ }
+
+ /* --- Public methods --- */
+
+ public Pair
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent;
+
+import org.apache.tools.ant.DirectoryScanner;
+
+import java.io.File;
+
+/**
+ * A {@link org.apache.tools.ant.DirectoryScanner} for a single file.
+ *
+ * @author tom.shapira
+ */
+public class SingleFileScanner extends DirectoryScanner {
+
+ /**
+ * Exposes the {@link DirectoryScanner#isIncluded(String)} method to check if a single file should be included
+ * in the scan.
+ *
+ * @param file for scanning
+ * @return weather the file should be included or not
+ */
+ public boolean isIncluded(File file) {
+ return isIncluded(file.getAbsolutePath());
+ }
+}
diff --git a/src/main/java/org/whitesource/agent/TempFolders.java b/src/main/java/org/whitesource/agent/TempFolders.java
new file mode 100644
index 0000000..faa0705
--- /dev/null
+++ b/src/main/java/org/whitesource/agent/TempFolders.java
@@ -0,0 +1,73 @@
+package org.whitesource.agent;
+
+import org.whitesource.agent.utils.FilesUtils;
+import org.whitesource.agent.utils.UniqueNamesGenerator;
+
+import java.io.File;
+import java.nio.file.Paths;
+
+
+public class TempFolders {
+
+ /* --- Static members --- */
+
+ private static final String PATH_TO_TEMP_DIR = System.getProperty("java.io.tmpdir");
+ private static final String WHITESOURCE_ARCHIVE_EXTRACTOR = "WhiteSource-ArchiveExtractor";
+ private static final String WHITE_BUILD_GRADLE_FOLDER = "WhiteSource-Build-Gradle";
+ private static final String WHITESOURCE_HTML_RESOLVER = "WhiteSource-html-resolver";
+ private static final String WHITESOURCE_DOTNET_RESOLVER = "WhiteSource-DotnetRestore";
+ private static final String WHITESOURCE_DOCKER = "WhiteSource-Docker";
+ private static final String WHITESOURCE_SCM_CONNECTOR_TMP_DIRECTORY = "WhiteSource-ScmConnector";
+ private static final String WHITESOURCE_PLATFORM_DEPENDENT_TMP_DIR = "WhiteSource-PlatformDependentFiles";
+ private static final String WHITESOURCE_PYTHON_TEMP_FOLDER = "Whitesource_python_resolver";
+
+ public static final String UNIQUE_HTML_TEMP_FOLDER = UniqueNamesGenerator.createUniqueName(WHITESOURCE_HTML_RESOLVER, Constants.EMPTY_STRING);
+ public static final String UNIQUE_GRADLE_TEMP_FOLDER = UniqueNamesGenerator.createUniqueName(WHITE_BUILD_GRADLE_FOLDER, Constants.EMPTY_STRING);
+ public static final String UNIQUE_DOTNET_TEMP_FOLDER = UniqueNamesGenerator.createUniqueName(WHITESOURCE_DOTNET_RESOLVER, Constants.EMPTY_STRING);
+ public static final String UNIQUE_PYTHON_TEMP_FOLDER = UniqueNamesGenerator.createUniqueName(WHITESOURCE_PYTHON_TEMP_FOLDER, Constants.EMPTY_STRING);
+ public static final String UNIQUE_DOCKER_TEMP_FOLDER = UniqueNamesGenerator.createUniqueName(WHITESOURCE_DOCKER, Constants.EMPTY_STRING);
+ public static final String UNIQUE_SCM_TEMP_FOLDER = UniqueNamesGenerator.createUniqueName(WHITESOURCE_SCM_CONNECTOR_TMP_DIRECTORY, Constants.EMPTY_STRING);
+ public static final String UNIQUE_PLATFORM_DEPENDENT_TEMP_FOLDER = UniqueNamesGenerator.createUniqueName(WHITESOURCE_PLATFORM_DEPENDENT_TMP_DIR, Constants.EMPTY_STRING);
+ public static final String UNIQUE_WHITESOURCE_ARCHIVE_EXTRACTOR_TEMP_FOLDER = UniqueNamesGenerator.createUniqueName(WHITESOURCE_ARCHIVE_EXTRACTOR, Constants.EMPTY_STRING);
+
+ private static final String PATH_TO_UNIQUE_HTML_TEMP_FOLDER = Paths.get(PATH_TO_TEMP_DIR, UNIQUE_HTML_TEMP_FOLDER).toString();
+ private static final String PATH_TO_UNIQUE_GRADLE_TEMP_FOLDER = Paths.get(PATH_TO_TEMP_DIR, UNIQUE_GRADLE_TEMP_FOLDER).toString();
+ private static final String PATH_TO_UNIQUE_DOTNET_TEMP_FOLDER = Paths.get(PATH_TO_TEMP_DIR, UNIQUE_DOTNET_TEMP_FOLDER).toString();
+ private static final String PATH_TO_UNIQUE_PYTHON_TEMP_FOLDER = Paths.get(PATH_TO_TEMP_DIR, UNIQUE_PYTHON_TEMP_FOLDER).toString();
+ private static final String PATH_TO_UNIQUE_DOCKER_TEMP_FOLDER = Paths.get(PATH_TO_TEMP_DIR, UNIQUE_DOCKER_TEMP_FOLDER).toString();
+ private static final String PATH_TO_SCM_CONNECTOR_TMP_DIRECTORY = Paths.get(PATH_TO_TEMP_DIR, UNIQUE_SCM_TEMP_FOLDER).toString();
+ private static final String PATH_TO_UNIQUE_ARCHIVE_EXTRACTOR_TEMP_FOLDER = Paths.get(PATH_TO_TEMP_DIR, UNIQUE_WHITESOURCE_ARCHIVE_EXTRACTOR_TEMP_FOLDER).toString();
+
+ // Agents api temp folder - CheckSumUtils folder :: calculateOtherPlatformSha1 method
+ private static final String PATH_TO_PLATFORM_DEPENDENT_TMP_DIR = Paths.get(PATH_TO_TEMP_DIR, UNIQUE_PLATFORM_DEPENDENT_TEMP_FOLDER).toString();
+
+ /* --- Constructors --- */
+
+ public TempFolders() {
+
+ }
+
+ /* --- Methods --- */
+
+ public void deleteTempFolders() {
+ deleteTempFoldersHelper(PATH_TO_UNIQUE_HTML_TEMP_FOLDER);
+ deleteTempFoldersHelper(PATH_TO_UNIQUE_GRADLE_TEMP_FOLDER);
+ deleteTempFoldersHelper(PATH_TO_UNIQUE_DOTNET_TEMP_FOLDER);
+ deleteTempFoldersHelper(PATH_TO_UNIQUE_PYTHON_TEMP_FOLDER);
+ deleteTempFoldersHelper(PATH_TO_UNIQUE_DOCKER_TEMP_FOLDER);
+ deleteTempFoldersHelper(PATH_TO_SCM_CONNECTOR_TMP_DIRECTORY);
+ deleteTempFoldersHelper(PATH_TO_PLATFORM_DEPENDENT_TMP_DIR);
+ deleteTempFoldersHelper(PATH_TO_UNIQUE_ARCHIVE_EXTRACTOR_TEMP_FOLDER);
+ }
+
+ public void deleteTempFoldersHelper(String path) {
+ if (path != null) {
+ File file = new File(path);
+ if (file != null) {
+ FilesUtils.deleteDirectory(file);
+ }
+ }
+ }
+
+
+}
diff --git a/src/main/java/org/whitesource/agent/ViaComponents.java b/src/main/java/org/whitesource/agent/ViaComponents.java
new file mode 100644
index 0000000..4508a99
--- /dev/null
+++ b/src/main/java/org/whitesource/agent/ViaComponents.java
@@ -0,0 +1,37 @@
+package org.whitesource.agent;
+
+import org.whitesource.agent.api.model.DependencyInfo;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author raz.nitzan
+ */
+public class ViaComponents {
+
+ /* --- Members --- */
+
+ private String appPath;
+ private ViaLanguage language;
+ private List
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent.archive;
+
+import com.github.junrar.testutil.ExtractArchive;
+import net.lingala.zip4j.core.ZipFile;
+import net.lingala.zip4j.exception.ZipException;
+import net.lingala.zip4j.model.FileHeader;
+import org.apache.commons.compress.archivers.cpio.CpioArchiveEntry;
+import org.apache.commons.compress.archivers.cpio.CpioArchiveInputStream;
+import org.apache.commons.compress.compressors.lzma.LZMACompressorInputStream;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.StringUtils;
+import org.codehaus.plexus.archiver.tar.TarBZip2UnArchiver;
+import org.codehaus.plexus.archiver.tar.TarGZipUnArchiver;
+import org.codehaus.plexus.archiver.tar.TarUnArchiver;
+import org.codehaus.plexus.archiver.xz.XZUnArchiver;
+import org.codehaus.plexus.logging.console.ConsoleLogger;
+import org.redline_rpm.ReadableChannelWrapper;
+import org.redline_rpm.Util;
+import org.redline_rpm.header.AbstractHeader;
+import org.redline_rpm.header.Format;
+import org.redline_rpm.header.Header;
+import org.slf4j.Logger;
+import org.whitesource.agent.utils.LoggerFactory;
+import org.whitesource.agent.Constants;
+import org.whitesource.agent.utils.FilesScanner;
+import org.whitesource.agent.utils.Pair;
+import org.whitesource.agent.TempFolders;
+
+import java.io.*;
+import java.nio.channels.Channels;
+import java.nio.channels.ReadableByteChannel;
+import java.nio.file.FileSystems;
+import java.nio.file.PathMatcher;
+import java.nio.file.Paths;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
+
+/**
+ * @author anna.rozin
+ */
+public class ArchiveExtractor {
+ public static final String LAYER_TAR = "**/*layer.tar";
+
+ /* --- Static members --- */
+
+ private final Logger logger = LoggerFactory.getLogger(ArchiveExtractor.class);
+ public static final int LONG_BOUND = 100000;
+ public static final String DEPTH = "_depth_";
+ public static final String DEPTH_REGEX = DEPTH + "[0-9]";
+ public static final String GLOB_PREFIX = "glob:";
+ public static final String NULL_HEADER = "mainheader is null";
+
+ private final String JAVA_TEMP_DIR = System.getProperty("java.io.tmpdir");
+
+
+ public static final List
+ * The archiveExtractionDepth default value is 0 - no archive scanning, the max value is 3.
+ * By default the method scans jar/war/ear.
+ * If archiveIncludes/archiveExcludes params are defined the method will act accordingly.
+ *
+ * @param scannerBaseDir - directory for scanning.
+ * @param archiveExtractionDepth - drill down hierarchy level in archive files
+ * @param archiveDirectories list of directories
+ * @return the temp directory for the extracted files.
+ */
+ public String extractArchives(String scannerBaseDir, int archiveExtractionDepth, List
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent.dependency.resolver;
+
+import org.apache.commons.lang.StringUtils;
+import org.whitesource.agent.Constants;
+import org.whitesource.agent.api.model.DependencyType;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.util.*;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * @author eugen.horovitz
+ */
+public abstract class AbstractDependencyResolver {
+
+ /* --- Static Members --- */
+
+ protected static final String GLOB_PATTERN = "**/";
+ protected static final String fileSeparator = System.getProperty(Constants.FILE_SEPARATOR);
+ protected IBomParser bomParser;
+
+ /* --- Abstract methods --- */
+
+ protected abstract ResolutionResult resolveDependencies(String projectFolder, String topLevelFolder, Set
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent.dependency.resolver;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.whitesource.agent.dependency.resolver.npm.RegistryType;
+import org.whitesource.agent.utils.LoggerFactory;
+import org.whitesource.agent.Constants;
+
+import java.util.Map;
+
+/**
+ * @author eugen.horovitz
+ */
+public class BomFile {
+
+ /* --- Members --- */
+
+ private final String name;
+ private final String version;
+ private String groupId;
+ private String sha1;
+ private String fileName;
+ private final String localFileName;
+ private final Map
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent.dependency.resolver;
+
+import org.apache.commons.io.IOUtils;
+import org.slf4j.Logger;
+import org.whitesource.agent.utils.LoggerFactory;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * @author eugen.horovitz
+ */
+public abstract class BomParser implements IBomParser{
+
+ /* --- Static members --- */
+
+ private final Logger logger = LoggerFactory.getLogger(BomParser.class);
+
+ /* --- Public methods --- */
+
+ public BomFile parseBomFile(String bomPath) {
+ BomFile bomFile = null;
+ String json = null;
+ try (InputStream is = new FileInputStream(bomPath)) {
+ json = IOUtils.toString(is);
+ } catch (FileNotFoundException e) {
+ logger.error("file Not Found: {}", bomPath);
+ } catch (IOException e) {
+ logger.error("error getting file : {}", e.getMessage());
+ }
+
+ if (json != null) {
+ try {
+ bomFile = parseBomFile(json, bomPath);
+ } catch (Exception e) {
+ logger.debug("Invalid file {}", bomPath);
+ }
+ }
+ return bomFile;
+ }
+
+ /* --- Abstract methods --- */
+
+ protected abstract BomFile parseBomFile(String jsonText, String localFileName);
+
+ protected abstract String getFilename(String name, String version);
+}
\ No newline at end of file
diff --git a/src/main/java/org/whitesource/agent/dependency/resolver/CocoaPods/CocoaPodsDependencyCollector.java b/src/main/java/org/whitesource/agent/dependency/resolver/CocoaPods/CocoaPodsDependencyCollector.java
new file mode 100644
index 0000000..6001213
--- /dev/null
+++ b/src/main/java/org/whitesource/agent/dependency/resolver/CocoaPods/CocoaPodsDependencyCollector.java
@@ -0,0 +1,159 @@
+package org.whitesource.agent.dependency.resolver.CocoaPods;
+
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.whitesource.agent.Constants;
+import org.whitesource.agent.api.model.AgentProjectInfo;
+import org.whitesource.agent.api.model.DependencyInfo;
+import org.whitesource.agent.api.model.DependencyType;
+import org.whitesource.agent.dependency.resolver.DependencyCollector;
+import org.whitesource.agent.hash.HashCalculator;
+import org.whitesource.agent.utils.LoggerFactory;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * @author raz.nitzan
+ */
+public class CocoaPodsDependencyCollector extends DependencyCollector {
+
+ /* --- Static Members --- */
+
+ private static final String PODS = "PODS";
+ private static final String DEPENDENCIES = "DEPENDENCIES";
+ private static final String PATTERN_DIRECT_LINE = " -";
+ private static final String PATTERN_TRANSITIVE_DEPENDENCY = " -";
+
+ /* --- Members --- */
+
+ private final Logger logger = LoggerFactory.getLogger(CocoaPodsDependencyCollector.class);
+ private HashCalculator hashCalculator = new HashCalculator();
+
+ /* --- public methods --- */
+
+ public Collection
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent.dependency.resolver;
+
+import org.whitesource.agent.Constants;
+import org.whitesource.agent.api.model.AgentProjectInfo;
+import org.whitesource.agent.api.model.DependencyInfo;
+
+import java.util.ArrayList;
+import java.util.Collection;
+/**
+ * @author eugen.horovitz
+ */
+public abstract class DependencyCollector {
+
+ public static final String C_CHAR_WINDOWS = "/c";
+
+ protected abstract Collection
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent.dependency.resolver;
+
+import org.slf4j.Logger;
+import org.whitesource.agent.Constants;
+import org.whitesource.agent.api.model.AgentProjectInfo;
+import org.whitesource.agent.api.model.DependencyType;
+import org.whitesource.agent.dependency.resolver.CocoaPods.CocoaPodsDependencyResolver;
+import org.whitesource.agent.dependency.resolver.bower.BowerDependencyResolver;
+import org.whitesource.agent.dependency.resolver.dotNet.DotNetDependencyResolver;
+import org.whitesource.agent.dependency.resolver.go.GoDependencyResolver;
+import org.whitesource.agent.dependency.resolver.gradle.GradleDependencyResolver;
+import org.whitesource.agent.dependency.resolver.hex.HexDependencyResolver;
+import org.whitesource.agent.dependency.resolver.html.HtmlDependencyResolver;
+import org.whitesource.agent.dependency.resolver.maven.MavenDependencyResolver;
+import org.whitesource.agent.dependency.resolver.npm.NpmDependencyResolver;
+import org.whitesource.agent.dependency.resolver.nuget.NugetDependencyResolver;
+import org.whitesource.agent.dependency.resolver.nuget.packagesConfig.NugetConfigFileType;
+import org.whitesource.agent.dependency.resolver.php.PhpDependencyResolver;
+import org.whitesource.agent.dependency.resolver.python.PythonDependencyResolver;
+import org.whitesource.agent.dependency.resolver.ruby.RubyDependencyResolver;
+import org.whitesource.agent.dependency.resolver.sbt.SbtDependencyResolver;
+import org.whitesource.agent.utils.FilesScanner;
+import org.whitesource.agent.utils.LoggerFactory;
+import org.whitesource.fs.configuration.ResolverConfiguration;
+
+import java.nio.file.Path;
+import java.util.*;
+
+/**
+ * Holds and initiates all {@link AbstractDependencyResolver}s.
+ *
+ * @author eugen.horovitz
+ */
+public class DependencyResolutionService {
+
+ /* --- Members --- */
+
+ private final Logger logger = LoggerFactory.getLogger(DependencyResolutionService.class);
+
+ private final FilesScanner fileScanner;
+ private final Collection
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent.dependency.resolver;
+
+/**
+ * @author eugen.horovitz
+ */
+public interface IBomParser {
+ BomFile parseBomFile(String bomPath);
+}
diff --git a/src/main/java/org/whitesource/agent/dependency/resolver/ResolutionResult.java b/src/main/java/org/whitesource/agent/dependency/resolver/ResolutionResult.java
new file mode 100644
index 0000000..ebfc148
--- /dev/null
+++ b/src/main/java/org/whitesource/agent/dependency/resolver/ResolutionResult.java
@@ -0,0 +1,79 @@
+/**
+ * Copyright (C) 2017 WhiteSource Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent.dependency.resolver;
+
+import org.whitesource.agent.api.model.AgentProjectInfo;
+import org.whitesource.agent.api.model.DependencyInfo;
+import org.whitesource.agent.api.model.DependencyType;
+
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by eugen on 6/21/2017.
+ */
+public class ResolutionResult {
+
+ /* --- Members --- */
+
+ private Map
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent.dependency.resolver;
+
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @author eugen.horovitz
+ */
+public class ResolvedFolder {
+
+ /* --- Members --- */
+
+ private final String originalScanFolder;
+ private final Map
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent.dependency.resolver.bower;
+
+import org.json.JSONObject;
+import org.slf4j.Logger;
+import org.whitesource.agent.utils.LoggerFactory;
+import org.whitesource.agent.Constants;
+import org.whitesource.agent.dependency.resolver.npm.NpmBomParser;
+
+import java.text.MessageFormat;
+
+/**
+ * This class represents an Bower .bower.json file .
+ * When missing bower.json is parsed
+ *
+ * @author eugen.horovitz
+ */
+public class BowerBomParser extends NpmBomParser {
+
+ /* --- Static members --- */
+
+ public static final String RESOLUTION = "_resolution";
+ public static final String BOWER_PACKAGE_FILENAME_FORMAT = "{0}-{1}";
+ private final Logger logger = LoggerFactory.getLogger(NpmBomParser.class);
+
+ /* --- Overridden methods --- */
+
+ @Override
+ protected String getVersion(JSONObject json, String fileName) {
+ String version = Constants.EMPTY_STRING;
+ if (json.has(RESOLUTION)) {
+ JSONObject jObj = json.getJSONObject(RESOLUTION);
+ if (jObj.has(Constants.TAG)) {
+ return jObj.getString(Constants.TAG);
+ }
+ logger.debug("version not found in file {}", fileName);
+ return Constants.EMPTY_STRING;
+ }
+ return version;
+ }
+
+ @Override
+ protected String getFilename(String name, String version) {
+ return MessageFormat.format(BOWER_PACKAGE_FILENAME_FORMAT, name, version);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/whitesource/agent/dependency/resolver/bower/BowerDependencyResolver.java b/src/main/java/org/whitesource/agent/dependency/resolver/bower/BowerDependencyResolver.java
new file mode 100644
index 0000000..38e17c9
--- /dev/null
+++ b/src/main/java/org/whitesource/agent/dependency/resolver/bower/BowerDependencyResolver.java
@@ -0,0 +1,122 @@
+/**
+ * Copyright (C) 2017 WhiteSource Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent.dependency.resolver.bower;
+import org.whitesource.agent.Constants;
+import org.whitesource.agent.api.model.DependencyInfo;
+import org.whitesource.agent.api.model.DependencyType;
+import org.whitesource.agent.dependency.resolver.BomFile;
+import org.whitesource.agent.dependency.resolver.npm.NpmDependencyResolver;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+
+/**
+ * Dependency Resolver for BOWER projects.
+ *
+ * @author eugen.horovitz
+ */
+public class BowerDependencyResolver extends NpmDependencyResolver {
+
+ /* --- Static Members --- */
+
+ private static final String BOWER_JSON = "bower.json";
+ public static final String WS_BOWER_FILE2 = Constants.PATTERN + "ws_bower.json";
+ public static final String WS_BOWER_FILE1 = Constants.PATTERN + "ws-log-response-bower.json";
+
+ /* --- Members --- */
+
+ private final BowerBomParser bomParser;
+ private final BowerLsJsonDependencyCollector bomCollector;
+
+ /* --- Constructor --- */
+
+ public BowerDependencyResolver(long npmTimeoutDependenciesCollector, boolean runPreStep, boolean ignoreSourceFiles) {
+ super(runPreStep, null, ignoreSourceFiles);
+ bomParser = new BowerBomParser();
+ bomCollector = new BowerLsJsonDependencyCollector(npmTimeoutDependenciesCollector);
+ }
+
+ /* --- Overridden methods --- */
+
+ @Override
+ protected BowerLsJsonDependencyCollector getDependencyCollector() {
+ return bomCollector;
+ }
+
+ @Override
+ public String[] getBomPattern() {
+ return new String[]{Constants.PATTERN + BOWER_JSON};
+ }
+
+ @Override
+ public Collection
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.whitesource.agent.dependency.resolver.bower;
+
+import org.json.JSONObject;
+import org.slf4j.Logger;
+import org.whitesource.agent.utils.LoggerFactory;
+import org.whitesource.agent.Constants;
+import org.whitesource.agent.api.model.DependencyInfo;
+import org.whitesource.agent.api.model.DependencyType;
+import org.whitesource.agent.dependency.resolver.npm.NpmLsJsonDependencyCollector;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+/**
+ * Collect dependencies using 'bower ls' command.
+ *
+ * @author eugen.horovitz
+ */
+public class BowerLsJsonDependencyCollector extends NpmLsJsonDependencyCollector {
+
+ /* --- Statics Members --- */
+
+ private final Logger logger = LoggerFactory.getLogger(BowerLsJsonDependencyCollector.class);
+ private static final String BOWER_COMMAND = NpmLsJsonDependencyCollector.isWindows() ? "bower.cmd" : "bower";
+ private static final String PKG_META = "pkgMeta";
+ private static final String TYPE = "type";
+
+ /* --- Constructors --- */
+
+ public BowerLsJsonDependencyCollector(long npmTimeoutDependenciesCollector) {
+ super(false, npmTimeoutDependenciesCollector, false, false);
+ }
+
+ /* --- Overridden methods --- */
+
+ @Override
+ protected String[] getInstallParams() {
+ return new String[]{BOWER_COMMAND, Constants.INSTALL};
+ }
+
+ @Override
+ protected String[] getLsCommandParamsJson() {
+ return new String[]{BOWER_COMMAND, NpmLsJsonDependencyCollector.LS_COMMAND, NpmLsJsonDependencyCollector.LS_PARAMETER_JSON};
+ }
+
+ @Override
+ protected DependencyInfo getDependency(String dependencyAlias, JSONObject jsonObject) {
+ String version = Constants.EMPTY_STRING;
+ String name = Constants.EMPTY_STRING;
+ boolean unmetDependency = false;
+
+ if (jsonObject.has(Constants.MISSING) && jsonObject.getBoolean(Constants.MISSING)) {
+ unmetDependencyLog(dependencyAlias);
+ return null;
+ }
+ if (jsonObject.has(PKG_META)) {
+ JSONObject metaData = jsonObject.getJSONObject(PKG_META);
+ if (metaData.has(Constants.RESOLUTION)) {
+ JSONObject resolution = metaData.getJSONObject(Constants.RESOLUTION);
+ String resolutionType = resolution.getString(TYPE);
+ if (metaData.has(Constants.NAME)) {
+ name = metaData.getString(Constants.NAME);
+ } else {
+ unmetDependency = true;
+ }
+ if (resolutionType.equals(Constants.TAG) || resolutionType.equals(Constants.VERSION)) {
+ version = metaData.getString(Constants.VERSION);
+ } else {
+ logger.warn("We were not able to allocate the bower version for '{}' in you bower.json file." +
+ "At the moment we only support tag, so please modify your bower.json " +
+ "accordingly and run the plugin again.", name);
+ return null;
+ }
+ } else {
+ unmetDependency = true;
+ }
+ } else {
+ unmetDependency = true;
+ }
+
+ if (unmetDependency) {
+ unmetDependencyLog(dependencyAlias);
+ return null;
+ }
+
+ DependencyInfo dependency = new DependencyInfo();
+ dependency.setGroupId(name);
+ dependency.setArtifactId(name);
+ dependency.setVersion(version);
+ dependency.setDependencyType(DependencyType.BOWER);
+ return dependency;
+ }
+
+ @Override
+ protected void getDependencies(JSONObject jsonObject, String rootDirectory, Collection