From 2b14abe26e05418cb9bfe6a2ec12aad8b7f1bee7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Lesaint?= Date: Mon, 18 Jun 2018 10:55:55 +0200 Subject: [PATCH] move ITs code to private directory --- run-integration-tests.sh | 4 +- settings.gradle | 36 - tests/build.gradle | 158 - .../access-secured-props-plugin/build.gradle | 19 - .../main/java/AccessSecuredPropsPlugin.java | 31 - .../main/java/AccessSecuredPropsSensor.java | 50 - .../java/AccessSecuredPropsTaskExtension.java | 47 - .../backdating-customplugin/build.gradle | 31 - .../backdating/custom/BackdatingPlugin.java | 38 - .../sonar/backdating/custom/package-info.java | 23 - .../custom/rule/CustomRulesDefinition.java | 44 - .../custom/rule/MyCustomProcessor.java | 40 - .../backdating/custom/rule/package-info.java | 23 - .../plugins/backdating-plugin-v1/build.gradle | 29 - .../plugins/backdating/BackdatingPlugin.java | 38 - .../backdating/api/CustomProcessor.java | 31 - .../plugins/backdating/package-info.java | 23 - .../backdating/rule/BackRulesDefinition.java | 44 - .../plugins/backdating/rule/BackSensorV1.java | 63 - .../plugins/backdating/rule/package-info.java | 23 - .../plugins/backdating-plugin-v2/build.gradle | 29 - .../plugins/backdating/BackdatingPlugin.java | 38 - .../backdating/api/CustomProcessor.java | 31 - .../plugins/backdating/package-info.java | 23 - .../backdating/rule/BackRulesDefinition.java | 44 - .../plugins/backdating/rule/BackSensorV2.java | 77 - .../plugins/backdating/rule/package-info.java | 23 - tests/plugins/base-auth-plugin/build.gradle | 25 - .../src/main/java/FakeBaseAuthPlugin.java | 32 - .../src/main/java/FakeBaseIdProvider.java | 121 - .../src/main/resources/static/base.png | Bin 3112 -> 0 bytes .../src/resources/static/base.png | Bin 3112 -> 0 bytes tests/plugins/batch-plugin/build.gradle | 18 - .../java/com/sonarsource/BatchPlugin.java | 47 - .../sonarsource/DumpSettingsInitializer.java | 68 - .../sonarsource/RaiseMessageException.java | 45 - .../com/sonarsource/TempFolderExtension.java | 60 - .../java/com/sonarsource/WaitingSensor.java | 48 - .../DecimalScaleMeasureComputer.java | 53 - .../DecimalScaleMetric.java | 44 - .../DecimalScaleProperty.java | 32 - .../DecimalScaleSensor.java | 55 - .../plugins/blue-green-plugin-v1/build.gradle | 26 - .../qa/bluegreen/BlueGreenPlugin.java | 36 - .../qa/bluegreen/BuiltInProfilesV1.java | 37 - .../qa/bluegreen/MetricsDefinitionV1.java | 34 - .../qa/bluegreen/PageDefinitionV1.java | 32 - .../qa/bluegreen/RulesDefinitionV1.java | 44 - .../org/sonarqube/qa/bluegreen/SensorV1.java | 73 - .../sonarqube/qa/bluegreen/package-info.java | 23 - .../src/main/resources/static/global_page.js | 23 - .../plugins/blue-green-plugin-v2/build.gradle | 26 - .../qa/bluegreen/BlueGreenPlugin.java | 36 - .../qa/bluegreen/BuiltInProfilesV2.java | 36 - .../qa/bluegreen/MetricsDefinitionV2.java | 35 - .../qa/bluegreen/PageDefinitionV2.java | 32 - .../qa/bluegreen/RulesDefinitionV2.java | 45 - .../org/sonarqube/qa/bluegreen/SensorV2.java | 73 - .../sonarqube/qa/bluegreen/package-info.java | 23 - .../src/main/resources/static/global_page.js | 23 - tests/plugins/blue-green-plugin/build.gradle | 29 - .../qa/bluegreen/BlueGreenPlugin.java | 41 - .../qa/bluegreen/BuiltInProfilesV1.java | 4 - .../qa/bluegreen/BuiltInProfilesV2.java | 15 - .../sonarqube/qa/bluegreen/RuleSensorV1.java | 64 - .../sonarqube/qa/bluegreen/RuleSensorV2.java | 55 - .../qa/bluegreen/RulesDefinitionV1.java | 4 - .../qa/bluegreen/RulesDefinitionV2.java | 14 - .../sonarqube/qa/bluegreen/package-info.java | 23 - .../core-extension-fake-billing/build.gradle | 4 - .../main/java/FakeBillingCoreExtension.java | 42 - .../src/main/java/FakeBillingValidations.java | 65 - .../org.sonar.core.extension.CoreExtension | 1 - .../org/sonar/l10n/billing.properties | 2 - .../core-extension-it-tests/build.gradle | 4 - .../src/main/java/ItTestsCoreExtension.java | 73 - .../src/main/java/ce/BombConfig.java | 102 - ...ntBombReportAnalysisComponentProvider.java | 109 - .../src/main/java/ce/IseTaskProcessor.java | 38 - .../src/main/java/ce/OOMGenerator.java | 36 - .../src/main/java/ce/OkTaskProcessor.java | 41 - .../src/main/java/ce/OomTaskProcessor.java | 39 - .../main/java/ce/ws/BombActivatorAction.java | 82 - .../src/main/java/ce/ws/FakeGoVWsAction.java | 25 - .../src/main/java/ce/ws/FakeGovWs.java | 38 - .../src/main/java/ce/ws/SubmitAction.java | 58 - .../SystemPasscodeWebService.java | 49 - .../FakeWorkerCountProviderImpl.java | 40 - .../workerCount/RefreshWorkerCountAction.java | 67 - .../LatchControllerWorkerMeasureComputer.java | 120 - .../java/workerlatch/WorkerLatchMetrics.java | 37 - .../org.sonar.core.extension.CoreExtension | 1 - .../org/sonar/l10n/billing.properties | 2 - .../extension-lifecycle-plugin/build.gradle | 18 - .../src/main/java/BatchService.java | 72 - .../main/java/ExtensionLifecyclePlugin.java | 29 - .../src/main/java/ProjectService.java | 58 - .../src/main/java/ServerService.java | 23 - tests/plugins/foo-plugin-v1/build.gradle | 29 - .../src/main/java/org/sonar/foo/Foo.java | 43 - .../main/java/org/sonar/foo/FooPlugin.java | 41 - .../main/java/org/sonar/foo/package-info.java | 23 - .../org/sonar/foo/rule/FooBasicProfile.java | 61 - .../sonar/foo/rule/FooRulesDefinition.java | 53 - .../sonar/foo/rule/RekeyingRulesSensor.java | 54 - .../java/org/sonar/foo/rule/package-info.java | 23 - tests/plugins/foo-plugin-v2/build.gradle | 29 - .../src/main/java/org/sonar/foo/Foo.java | 43 - .../main/java/org/sonar/foo/FooPlugin.java | 41 - .../main/java/org/sonar/foo/package-info.java | 23 - .../org/sonar/foo/rule/FooBasicProfile.java | 64 - .../sonar/foo/rule/FooRulesDefinition.java | 58 - .../sonar/foo/rule/RekeyingRulesSensor.java | 55 - .../java/org/sonar/foo/rule/package-info.java | 23 - tests/plugins/foo-plugin-v3/build.gradle | 29 - .../src/main/java/org/sonar/foo/Foo.java | 43 - .../main/java/org/sonar/foo/FooPlugin.java | 39 - .../main/java/org/sonar/foo/package-info.java | 23 - .../org/sonar/foo/rule/FooBasicProfile.java | 52 - .../sonar/foo/rule/FooRulesDefinition.java | 44 - .../java/org/sonar/foo/rule/package-info.java | 23 - .../foo-plugin-without-qprofile/build.gradle | 23 - .../src/main/java/org/sonar/foo/Foo.java | 43 - .../main/java/org/sonar/foo/FooPlugin.java | 35 - .../main/java/org/sonar/foo/package-info.java | 23 - .../build.gradle | 18 - .../main/java/FakeGlobalPropertyChange.java | 32 - .../main/java/GlobalPropertyChangePlugin.java | 28 - .../plugins/issue-filter-plugin/build.gradle | 18 - .../src/main/java/IssueFilterBeforeLine5.java | 55 - .../src/main/java/IssueFilterPlugin.java | 36 - .../src/main/java/ModuleIssueFilter.java | 59 - tests/plugins/l10n-fr-pack/build.gradle | 18 - .../src/main/java/SimpleFrenchPackPlugin.java | 28 - .../org/sonar/l10n/core_fr.properties | 6 - tests/plugins/license-plugin/build.gradle | 18 - .../src/main/java/LicensePlugin.java | 43 - tests/plugins/oauth2-auth-plugin/build.gradle | 18 - .../src/main/java/FakeOAuth2AuthPlugin.java | 32 - .../src/main/java/FakeOAuth2IdProvider.java | 116 - .../src/main/resources/static/oauth2.png | Bin 2087 -> 0 bytes tests/plugins/posttask-plugin/build.gradle | 18 - .../main/java/AddScannerContextSensor.java | 35 - .../main/java/LogScannerContextPostTask.java | 36 - .../java/PostProjectAnalysisTaskImpl.java | 42 - .../src/main/java/PostTaskPlugin.java | 29 - .../project-builder-plugin/build.gradle | 18 - .../src/main/java/CreateSubProjects.java | 74 - .../src/main/java/ProjectBuilderPlugin.java | 29 - .../src/main/java/RenameProject.java | 46 - .../property-relocation-plugin/build.gradle | 18 - .../src/main/java/CheckProperties.java | 35 - .../main/java/PropertyRelocationPlugin.java | 33 - .../plugins/property-sets-plugin/build.gradle | 18 - .../src/main/java/PropertySetsPlugin.java | 114 - .../build.gradle | 19 - .../sonar/measure/ModuleMeasureSensor.java | 68 - .../measure/SaveMeasureOnModulePlugin.java | 34 - tests/plugins/security-plugin/build.gradle | 29 - .../src/main/java/FakeAuthenticator.java | 157 - .../src/main/java/FakeGroupsProvider.java | 36 - .../src/main/java/FakeRealm.java | 49 - .../src/main/java/FakeUsersProvider.java | 36 - .../src/main/java/SecurityPlugin.java | 30 - .../src/test/java/FakeAuthenticatorTest.java | 127 - tests/plugins/server-plugin/build.gradle | 18 - .../src/main/java/ServerPlugin.java | 72 - .../src/main/java/ServerStartupLock.java | 77 - .../src/main/java/StartupCrash.java | 44 - .../src/main/java/TempFolderExtension.java | 59 - .../src/main/java/ce/CePauseStep.java | 63 - .../src/main/java/ce/PauseMetric.java | 35 - .../settings-encryption-plugin/build.gradle | 18 - .../src/main/java/EncryptionVerifier.java | 42 - .../main/java/SettingsEncryptionPlugin.java | 29 - tests/plugins/settings-plugin/build.gradle | 18 - .../src/main/java/PropertyTypes.java | 35 - .../java/ServerExtensionWithProperties.java | 43 - .../src/main/java/SettingsPlugin.java | 28 - tests/plugins/sonar-fake-plugin/build.gradle | 19 - .../src/main/java/FakePlugin.java | 31 - .../sonar-subcategories-plugin/build.gradle | 18 - .../src/main/java/SubCategoriesPlugin.java | 80 - .../org/sonar/l10n/subcategories.properties | 3 - .../plugins/ui-extensions-plugin/build.gradle | 18 - .../src/main/java/UiExtensionsPlugin.java | 28 - .../src/main/java/UiPageDefinition.java | 39 - .../src/main/resources/static/cute.jpg | Bin 23245 -> 0 bytes .../src/main/resources/static/extension.js | 21 - .../src/main/resources/static/file.html | 6 - .../resources/static/global_admin_page.js | 23 - .../src/main/resources/static/global_page.js | 23 - .../static/organization_admin_page.js | 23 - .../resources/static/organization_page.js | 23 - .../resources/static/project_admin_page.js | 23 - .../src/main/resources/static/project_page.js | 23 - .../build.gradle | 18 - .../main/java/WaitAtPlaformLevel4Plugin.java | 32 - .../src/main/java/WaitAtPlatformLevel4.java | 64 - tests/plugins/ws-plugin/build.gradle | 22 - .../src/main/java/LocalCallWebService.java | 84 - .../ws-plugin/src/main/java/WsPlugin.java | 29 - .../sonar-project.properties | 5 - .../src/UPPER.XOO | 2 - .../src/UPPER.XOO.measures | 1 - .../src/lower.xoo | 10 - .../src/lower.xoo.measures | 1 - .../module_a/sonar-project.properties | 2 - .../sonar/it/samples/modules/a1/HelloA1.xoo | 16 - .../samples/modules/a1/HelloA1.xoo.measures | 2 - .../module_b/sonar-project.properties | 2 - .../sonar/it/samples/modules/a2/HelloA2.xoo | 12 - .../samples/modules/a2/HelloA2.xoo.measures | 2 - .../sonar-project.properties | 12 - .../duplicate-source/sonar-project.properties | 6 - .../src/main/xoo/org/sonar/tests/ClassOne.xoo | 5 - .../main/xoo2/org/sonar/tests/ClassOne.xoo | 5 - .../src/test/xoo/org/sonar/tests/ClassOne.xoo | 5 - .../extension-lifecycle/module_a/pom.xml | 14 - .../module_a/src/main/java/HelloA.java | 10 - .../extension-lifecycle/module_b/pom.xml | 13 - .../module_b/src/main/java/HelloB.java | 10 - .../analysis/extension-lifecycle/pom.xml | 13 - tests/projects/analysis/links-project/pom.xml | 31 - .../links-project/sonar-project.properties | 11 - .../src/main/java/sample/Sample.java | 12 - .../multi-languages/java-module/pom.xml | 15 - .../java-module/src/main/java/HelloJava.java | 10 - .../multi-languages/javascript-module/pom.xml | 20 - .../javascript-module/src/Person.js | 14 - .../projects/analysis/multi-languages/pom.xml | 16 - .../multi-languages/python-module/pom.xml | 19 - .../python-module/src/__init__.py | 0 .../python-module/src/badfortune.py | 92 - .../multi-languages/sonar-project.properties | 19 - .../module_a/sonar-project.properties | 2 - .../sonar/it/samples/modules/a1/HelloA1.xoo | 16 - .../samples/modules/a1/HelloA1.xoo.measures | 2 - .../module_b/sonar-project.properties | 2 - .../sonar/it/samples/modules/a2/HelloA2.xoo | 12 - .../samples/modules/a2/HelloA2.xoo.measures | 2 - .../projectAB/sonar-project.properties | 12 - .../module_a/sonar-project.properties | 2 - .../sonar/it/samples/modules/a1/HelloA1.xoo | 16 - .../samples/modules/a1/HelloA1.xoo.measures | 2 - .../module_c/sonar-project.properties | 2 - .../sonar/it/samples/modules/a2/HelloA2.xoo | 12 - .../samples/modules/a2/HelloA2.xoo.measures | 2 - .../projectAC/sonar-project.properties | 12 - .../project-builder/module_a/src/HelloA.java | 10 - .../project-builder/module_b/src/HelloB.java | 10 - .../module_b/src/IgnoredFile.java | 1 - .../projects/analysis/project-builder/pom.xml | 15 - .../resilience-purge/sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.measures | 9 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.measures | 9 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.measures | 9 - .../src/main/xoo/sample/Sample2.xoo | 16 - .../src/main/xoo/sample/Sample2.xoo.measures | 9 - .../src/main/xoo/sample/Sample3.xoo | 16 - .../src/main/xoo/sample/Sample3.xoo.measures | 9 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.measures | 9 - .../src/main/xoo/sample/Sample3.xoo | 16 - .../src/main/xoo/sample/Sample3.xoo.measures | 9 - .../tracking/v1/sonar-project.properties | 5 - .../v1/src/main/xoo/sample/Sample.xoo | 12 - .../src/main/xoo/sample/Sample.xoo.measures | 1 - .../tracking/v2/sonar-project.properties | 5 - .../v2/src/main/xoo/sample/Sample.xoo | 14 - .../src/main/xoo/sample/Sample.xoo.measures | 1 - .../xoo-history-v2/sonar-project.properties | 5 - .../src/main/xoo/sample/ClassAdded.xoo | 12 - .../main/xoo/sample/ClassAdded.xoo.measures | 3 - .../src/main/xoo/sample/ClassToModify.xoo | 16 - .../xoo/sample/ClassToModify.xoo.measures | 3 - .../src/main/xoo/sample/UnchangedClass.xoo | 12 - .../xoo/sample/UnchangedClass.xoo.measures | 2 - .../module_a/sonar-project.properties | 6 - .../sonar/it/samples/modules/a1/HelloA1.xoo | 16 - .../samples/modules/a1/HelloA1.xoo.measures | 4 - .../module_b/sonar-project.properties | 4 - .../sonar-project.properties | 9 - .../sonar-project.properties | 4 - .../xoo-multi-languages/src/sample/Sample.xoo | 12 - .../src/sample/Sample.xoo.measures | 7 - .../src/sample/Sample.xoo2 | 12 - .../src/sample/Sample.xoo2.measures | 7 - .../my sources/main/xoo/sample/My Sample.xoo | 12 - .../main/xoo/sample/My Sample.xoo.measures | 8 - .../v1/sonar-project.properties | 5 - .../my sources/main/xoo/sample/My Sample.xoo | 12 - .../main/xoo/sample/My Sample.xoo.measures | 8 - .../v2/sonar-project.properties | 5 - .../module_a1/sonar-project.properties | 1 - .../it/samples/modules/a1/NewHelloA1.xoo | 16 - .../modules/a1/NewHelloA1.xoo.measures | 7 - .../module_a2/sonar-project.properties | 1 - .../sonar/it/samples/modules/a2/HelloA2.xoo | 12 - .../samples/modules/a2/HelloA2.xoo.measures | 2 - .../after/module_a/sonar-project.properties | 4 - .../module_b1/sonar-project.properties | 1 - .../sonar/it/samples/modules/b1/HelloB1.xoo | 12 - .../samples/modules/b1/HelloB1.xoo.measures | 2 - .../module_b2/sonar-project.properties | 1 - .../sonar/it/samples/modules/b2/HelloB2.xoo | 12 - .../samples/modules/b2/HelloB2.xoo.measures | 2 - .../after/module_b/sonar-project.properties | 4 - .../files/after/sonar-project.properties | 12 - .../module_a1/sonar-project.properties | 1 - .../sonar/it/samples/modules/a1/HelloA1.xoo | 16 - .../samples/modules/a1/HelloA1.xoo.measures | 7 - .../module_a2/sonar-project.properties | 1 - .../sonar/it/samples/modules/a2/HelloA2.xoo | 12 - .../samples/modules/a2/HelloA2.xoo.measures | 2 - .../before/module_a/sonar-project.properties | 4 - .../module_b1/sonar-project.properties | 1 - .../sonar/it/samples/modules/b1/HelloB1.xoo | 12 - .../samples/modules/b1/HelloB1.xoo.measures | 2 - .../module_b2/sonar-project.properties | 1 - .../sonar/it/samples/modules/b2/HelloB2.xoo | 12 - .../samples/modules/b2/HelloB2.xoo.measures | 2 - .../before/module_b/sonar-project.properties | 4 - .../files/before/sonar-project.properties | 12 - .../module_a1/sonar-project.properties | 1 - .../sonar/it/samples/modules/a1/HelloA1.xoo | 16 - .../samples/modules/a1/HelloA1.xoo.measures | 7 - .../module_a2/sonar-project.properties | 1 - .../sonar/it/samples/modules/a2/HelloA2.xoo | 12 - .../samples/modules/a2/HelloA2.xoo.measures | 2 - .../after/module_a/sonar-project.properties | 4 - .../module_c1/sonar-project.properties | 1 - .../sonar/it/samples/modules/b1/HelloB1.xoo | 12 - .../samples/modules/b1/HelloB1.xoo.measures | 2 - .../module_c2/sonar-project.properties | 1 - .../sonar/it/samples/modules/b2/HelloB2.xoo | 12 - .../samples/modules/b2/HelloB2.xoo.measures | 2 - .../after/module_c/sonar-project.properties | 4 - .../modules/after/sonar-project.properties | 12 - .../module_a1/sonar-project.properties | 1 - .../sonar/it/samples/modules/a1/HelloA1.xoo | 16 - .../samples/modules/a1/HelloA1.xoo.measures | 7 - .../module_a2/sonar-project.properties | 1 - .../sonar/it/samples/modules/a2/HelloA2.xoo | 12 - .../samples/modules/a2/HelloA2.xoo.measures | 2 - .../before/module_a/sonar-project.properties | 4 - .../module_b1/sonar-project.properties | 1 - .../sonar/it/samples/modules/b1/HelloB1.xoo | 12 - .../samples/modules/b1/HelloB1.xoo.measures | 2 - .../module_b2/sonar-project.properties | 1 - .../sonar/it/samples/modules/b2/HelloB2.xoo | 12 - .../samples/modules/b2/HelloB2.xoo.measures | 2 - .../before/module_b/sonar-project.properties | 4 - .../modules/before/sonar-project.properties | 12 - .../module_a1/sonar-project.properties | 1 - .../sonar/it/samples/modules/a1/HelloA1.xoo | 16 - .../samples/modules/a1/HelloA1.xoo.measures | 7 - .../module_a2/sonar-project.properties | 1 - .../sonar/it/samples/modules/a2/HelloA2.xoo | 12 - .../samples/modules/a2/HelloA2.xoo.measures | 2 - .../module_a/sonar-project.properties | 4 - .../module_b1/sonar-project.properties | 1 - .../sonar/it/samples/modules/b1/HelloB1.xoo | 12 - .../samples/modules/b1/HelloB1.xoo.measures | 2 - .../module_b2/sonar-project.properties | 1 - .../sonar/it/samples/modules/b2/HelloB2.xoo | 12 - .../samples/modules/b2/HelloB2.xoo.measures | 2 - .../module_b/sonar-project.properties | 4 - .../sonar-project.properties | 12 - .../module1/sonar-project.properties | 5 - .../module1/src/main/xoo/sample/File1.xoo | 35 - .../src/main/xoo/sample/File1.xoo.measures | 1 - .../module1/src/main/xoo/sample/File2.xoo | 23 - .../src/main/xoo/sample/File2.xoo.measures | 1 - .../module2/sonar-project.properties | 5 - .../module2/src/main/xoo/sample/File1.xoo | 35 - .../src/main/xoo/sample/File1.xoo.measures | 1 - .../cross-module/sonar-project.properties | 4 - .../duplicate/sonar-project.properties | 5 - .../duplicate/src/main/xoo/sample/File1.xoo | 35 - .../src/main/xoo/sample/File1.xoo.measures | 1 - .../duplicate/src/main/xoo/sample/File2.xoo | 23 - .../src/main/xoo/sample/File2.xoo.measures | 1 - .../origin/sonar-project.properties | 5 - .../origin/src/main/xoo/sample/File1.xoo | 35 - .../src/main/xoo/sample/File1.xoo.measures | 1 - .../sonar-project.properties | 5 - .../DuplicatedLinesWithOtherDirectory.xoo | 41 - ...icatedLinesWithOtherDirectory.xoo.measures | 1 - .../DuplicatedLinesWithOtherDirectory.xoo | 41 - ...icatedLinesWithOtherDirectory.xoo.measures | 1 - .../DuplicatedLinesInSameDirectory1.xoo | 105 - ...plicatedLinesInSameDirectory1.xoo.measures | 1 - .../DuplicatedLinesInSameDirectory2.xoo | 71 - ...plicatedLinesInSameDirectory2.xoo.measures | 1 - .../DuplicatedLinesInSameFile.xoo | 70 - .../DuplicatedLinesInSameFile.xoo.measures | 1 - .../File1.xoo | 41 - .../File1.xoo.measures | 1 - .../File2.xoo | 40 - .../File2.xoo.measures | 1 - .../File3.xoo | 43 - .../File3.xoo.measures | 1 - .../sonar-project.properties | 6 - .../DuplicatedLinesWithOtherDirectory.xoo | 17 - ...icatedLinesWithOtherDirectory.xoo.measures | 1 - .../DuplicatedLinesWithOtherDirectory.xoo.scm | 18 - .../DuplicatedLinesWithOtherDirectory.xoo | 17 - ...icatedLinesWithOtherDirectory.xoo.measures | 1 - .../DuplicatedLinesWithOtherDirectory.xoo.scm | 18 - .../DuplicatedLinesInSameFile.xoo | 39 - .../DuplicatedLinesInSameFile.xoo.measures | 1 - .../DuplicatedLinesInSameFile.xoo.scm | 40 - .../sonar-project.properties | 6 - .../DuplicatedLinesWithOtherDirectory.xoo | 41 - ...icatedLinesWithOtherDirectory.xoo.measures | 1 - .../DuplicatedLinesWithOtherDirectory.xoo.scm | 42 - .../DuplicatedLinesWithOtherDirectory.xoo | 35 - ...icatedLinesWithOtherDirectory.xoo.measures | 2 - .../DuplicatedLinesWithOtherDirectory.xoo.scm | 36 - .../DuplicatedLinesInSameFile.xoo | 80 - .../DuplicatedLinesInSameFile.xoo.measures | 2 - .../DuplicatedLinesInSameFile.xoo.scm | 81 - .../exclusions/sonar-project.properties | 6 - .../src/main/xoo/FileOnRootFolder.xoo | 10 - .../main/xoo/FileOnRootFolder.xoo.measures | 1 - .../src/main/xoo/org/sonar/tests/ClassOne.xoo | 32 - .../xoo/org/sonar/tests/ClassOne.xoo.measures | 1 - .../xoo/org/sonar/tests/ClassToExclude.xoo | 66 - .../sonar/tests/ClassToExclude.xoo.measures | 1 - .../org/sonar/tests/ClassToIgnoreGlobally.xoo | 4 - .../tests/ClassToIgnoreGlobally.xoo.measures | 1 - .../src/main/xoo/org/sonar/tests/ClassTwo.xoo | 26 - .../xoo/org/sonar/tests/ClassTwo.xoo.measures | 1 - .../xoo/org/sonar/tests/NoSonarComment.xoo | 13 - .../sonar/tests/NoSonarComment.xoo.measures | 1 - .../tests/packageToExclude/ClassThree.xoo | 26 - .../packageToExclude/ClassThree.xoo.measures | 1 - .../test/xoo/org/sonar/tests/ClassOneTest.xoo | 11 - .../org/sonar/tests/ClassOneTest.xoo.measures | 1 - .../org/sonar/tests/ClassToExcludeTest.xoo | 19 - .../tests/ClassToExcludeTest.xoo.measures | 1 - .../test/xoo/org/sonar/tests/ClassTwoTest.xoo | 12 - .../org/sonar/tests/ClassTwoTest.xoo.measures | 1 - .../module_a1/sonar-project.properties | 1 - .../sonar/it/samples/modules/a1/HelloA1.xoo | 17 - .../samples/modules/a1/HelloA1.xoo.measures | 2 - .../module_a2/sonar-project.properties | 1 - .../sonar/it/samples/modules/a2/HelloA2.xoo | 14 - .../samples/modules/a2/HelloA2.xoo.measures | 2 - .../module_a/sonar-project.properties | 4 - .../module_b1/sonar-project.properties | 1 - .../sonar/it/samples/modules/b1/HelloB1.xoo | 12 - .../samples/modules/b1/HelloB1.xoo.measures | 2 - .../module_b2/sonar-project.properties | 1 - .../sonar/it/samples/modules/b2/HelloB2.xoo | 12 - .../samples/modules/b2/HelloB2.xoo.measures | 2 - .../module_b/sonar-project.properties | 4 - .../sonar-project.properties | 12 - .../foo-sample/sonar-project.properties | 5 - .../foo-sample/src/main/foo/sample/Sample.foo | 16 - .../src/main/foo/sample/Sample2.foo | 16 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 12 - .../main/xoo/sample/Sample.xoo.highlighting | 15 - .../src/main/xoo/sample/Sample.xoo.measures | 2 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 12 - .../main/xoo/sample/Sample.xoo.highlighting | 14 - .../src/main/xoo/sample/Sample.xoo.measures | 2 - .../src/main/xoo/sample/Sample.xoo.symbol | 4 - .../AutoAssignTest/sonar-project.properties | 4 - .../issue/AutoAssignTest/src/sample.xoo | 9 - .../AutoAssignTest/src/sample.xoo.measures | 1 - .../issue/AutoAssignTest/src/sample.xoo.scm | 10 - .../common-rules/sonar-project.properties | 5 - .../issue/common-rules/src/Sample.xoo | 8 - .../common-rules/src/Sample.xoo.measures | 10 - .../issue/common-rules/test/SampleTest.xoo | 1 - .../common-rules/test/SampleTest.xoo.measures | 4 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 3 - .../src/main/xoo/sample/Sample.xoo.scm | 3 - .../sonar-project.properties | 5 - .../main/xoo/sample/ForeverAndModified.xoo | 7 - .../xoo/sample/ForeverAndModified.xoo.scm | 8 - .../main/xoo/sample/ForeverAndUnmodified.xoo | 7 - .../xoo/sample/ForeverAndUnmodified.xoo.scm | 8 - .../src/main/xoo/sample/OnlyInChanged.xoo | 7 - .../src/main/xoo/sample/OnlyInChanged.xoo.scm | 8 - .../sonar-project.properties | 5 - .../main/xoo/sample/ForeverAndModified.xoo | 7 - .../xoo/sample/ForeverAndModified.xoo.scm | 8 - .../main/xoo/sample/ForeverAndUnmodified.xoo | 7 - .../xoo/sample/ForeverAndUnmodified.xoo.scm | 8 - .../src/main/xoo/sample/OnlyInInitial.xoo | 7 - .../src/main/xoo/sample/OnlyInInitial.xoo.scm | 8 - .../issue/workflow/sonar-project.properties | 4 - tests/projects/issue/workflow/src/Sample.xoo | 3 - .../issue/workflow/src/Sample.xoo.measures | 10 - .../xoo-sample-v2/sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 15 - .../src/main/xoo/sample/Sample.xoo.measures | 7 - .../xoo-tracking-v1/sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 12 - .../src/main/xoo/sample/Sample.xoo.measures | 1 - .../xoo-tracking-v2/sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.measures | 1 - .../xoo-tracking-v3/sonar-project.properties | 5 - .../src/main/xoo/sample/Sample2.xoo | 12 - .../src/main/xoo/sample/Sample2.xoo.measures | 1 - .../xoo-with-scm/sonar-project.properties | 4 - .../src/main/xoo/sample/Sample.xoo | 12 - .../src/main/xoo/sample/Sample.xoo.measures | 2 - .../src/main/xoo/sample/Sample.xoo.scm | 13 - .../LiveMeasuresTest/sonar-project.properties | 5 - .../src/file_with_one_line.xoo | 1 - .../src/file_with_three_lines.xoo | 3 - .../xoo-history-v1/sonar-project.properties | 5 - .../src/main/xoo/sample/ClassToModify.xoo | 12 - .../xoo/sample/ClassToModify.xoo.measures | 2 - .../src/main/xoo/sample/UnchangedClass.xoo | 12 - .../xoo/sample/UnchangedClass.xoo.measures | 2 - .../xoo-history-v2/sonar-project.properties | 5 - .../src/main/xoo/sample/ClassAdded.xoo | 12 - .../main/xoo/sample/ClassAdded.xoo.measures | 3 - .../src/main/xoo/sample/ClassToModify.xoo | 16 - .../xoo/sample/ClassToModify.xoo.measures | 3 - .../src/main/xoo/sample/UnchangedClass.xoo | 12 - .../xoo/sample/UnchangedClass.xoo.measures | 2 - .../sonar-project.properties | 6 - .../src/main/xoo/sample/Sample.xoo | 13 - .../src/main/xoo/sample/Sample.xoo.measures | 4 - .../src/main/xoo/sample/Sample.xoo.scm | 14 - .../sonar-project.properties | 6 - .../src/main/xoo/sample/Sample.xoo | 17 - .../src/main/xoo/sample/Sample.xoo.measures | 4 - .../src/main/xoo/sample/Sample.xoo.scm | 18 - .../sonar-project.properties | 6 - .../src/main/xoo/sample/Sample.xoo | 22 - .../src/main/xoo/sample/Sample.xoo.measures | 4 - .../src/main/xoo/sample/Sample.xoo.scm | 23 - .../sonar-project.properties | 9 - .../src/main/xoo/sample/File1.xoo | 16 - .../src/main/xoo/sample/File1.xoo.measures | 2 - .../src/main/xoo/sample/File2.xoo | 20 - .../src/main/xoo/sample/File2.xoo.measures | 2 - .../src/main/xoo/sample/File3.xoo | 12 - .../src/main/xoo/sample/File3.xoo.measures | 2 - .../src/main/xoo/sample/File4.xoo | 12 - .../src/main/xoo/sample/File4.xoo.measures | 2 - tests/projects/performance/huge-file/pom.xml | 9 - .../src/main/java/huge/HugeFile.java | 50100 ---------------- .../xoo-sample/sonar-project.properties | 6 - .../xoo-sample/src/main/xoo/sample/Sample.xoo | 12 - .../src/main/xoo/sample/Sample.xoo.measures | 6 - .../src/test/xoo/sample/SampleTest.xoo | 21 - .../test/xoo/sample/SampleTest.xoo.measures | 7 - tests/projects/plugins/project/.gitignore | 1 - tests/projects/plugins/project/build.sh | 3 - .../project/ext/cobol/copybooks/Attr.cpy | 40 - .../project/ext/cobol/copybooks/Custmas.cpy | 9 - .../project/ext/cobol/copybooks/Errparm.cpy | 6 - .../project/ext/cobol/copybooks/MNTSET2.CPY | 181 - tests/projects/plugins/project/lib/c/mylib.h | 2 - tests/projects/plugins/project/pom.xml | 30 - .../plugins/project/sonar-project.properties | 37 - .../plugins/project/src/abap/ZBCMKZ17.abap | 147 - .../plugins/project/src/abap/ZZBGS106.abap | 194 - tests/projects/plugins/project/src/c/main.c | 19 - .../plugins/project/src/cobol/Custmnt2.cbl | 581 - .../plugins/project/src/cobol/TC4E3H0.CBL | 17508 ------ .../plugins/project/src/cpp/BiggestUnInt.cc | 51 - .../plugins/project/src/cpp/HelloWorld.cpp | 7 - .../plugins/project/src/cpp/RandDemo.cc | 87 - .../plugins/project/src/cpp/SimpleClass.cc | 70 - tests/projects/plugins/project/src/cpp/main.c | 18 - .../plugins/project/src/css/sample.css | 89 - .../plugins/project/src/flex/Circle.as | 14 - .../plugins/project/src/flex/HasIssues.as | 12 - .../project/src/flex/UncoveredCircle.as | 10 - .../projects/plugins/project/src/go/sample.go | 43 - .../src/groovy/example/Greeting.groovy | 7 - .../innerclass/InnerClassExample.groovy | 14 - .../plugins/project/src/java/foo/Foo.java | 15 - .../project/src/java/foo/Simplest.java | 17 - .../project/src/java/foo/Simplest2.java | 7 - .../project/src/java/foo/Simplest3.java | 5 - .../plugins/project/src/js/HasIssues.js | 18 - .../projects/plugins/project/src/js/Person.js | 14 - .../plugins/project/src/js/com/company/Car.js | 50 - .../project/src/js/com/company/Truck.js | 24 - .../project/src/js/com/company/Vehicle.js | 53 - .../projects/plugins/project/src/php/Math.php | 214 - .../plugins/project/src/pli/center.pli | 212 - .../plugins/project/src/pli/chess.pli | 760 - .../plugins/project/src/pli/hasissues.pli | 13 - .../plugins/project/src/pli/maxlen.pli | 67 - .../plugins/project/src/pli/search.pli | 246 - .../plugins/project/src/plsql/ddl.sql | 9 - .../plugins/project/src/plsql/has-issues.sql | 9 - .../plugins/project/src/plsql/ut_report.pkb | 213 - .../plugins/project/src/python/__init__.py | 0 .../plugins/project/src/python/badfortune.py | 92 - .../src/python/directory/file_in_directory.py | 1 - .../plugins/project/src/python/hasissues.py | 8 - .../project/src/python/package/__init__.py | 0 .../src/python/package/file_in_package.py | 1 - .../project/src/python/samples/__init__.py | 0 .../project/src/python/samples/fortune.py | 92 - .../project/src/python/samples/letters.py | 203 - .../project/src/python/samples/strfile.py | 100 - .../plugins/project/src/rpg/MYPROGRAM.rpg | 53 - .../plugins/project/src/swift/example.swift | 10 - .../projects/plugins/project/src/vb/Info.frm | 67 - .../plugins/project/src/vb/Registry.bas | 166 - .../plugins/project/src/vb/Registry.cls | 428 - .../plugins/project/src/web/sample.xhtml | 46 - .../project/target/classes/foo/Foo.class | Bin 466 -> 0 bytes .../project/target/classes/foo/Simplest.class | Bin 527 -> 0 bytes .../target/classes/foo/Simplest2.class | Bin 305 -> 0 bytes .../target/classes/foo/Simplest3.class | Bin 260 -> 0 bytes .../target/it-all-lang-1.0-SNAPSHOT.jar | Bin 3398 -> 0 bytes .../plugins/project/target/js/lcov.dat | 71 - .../project/target/php/phpunit.coverage.xml | 101 - .../plugins/project/target/php/phpunit.xml | 52 - .../surefire-reports/TEST-foo.FooTest.xml | 66 - .../TEST-foo.SimplestTest.xml | 66 - .../target/surefire-reports/foo.FooTest.txt | 4 - .../surefire-reports/foo.SimplestTest.txt | 4 - .../target/test-classes/foo/FooTest.class | Bin 546 -> 0 bytes .../test-classes/foo/SimplestTest.class | Bin 565 -> 0 bytes .../project/test/java/foo/FooTest.java | 12 - .../project/test/java/foo/SimplestTest.java | 12 - .../plugins/project/test/js/PersonTest.js | 13 - .../project/test/js/com/company/CarTest.js | 18 - .../plugins/project/test/php/SomeTest.php | 169 - .../xoo-history-v1/sonar-project.properties | 5 - .../src/main/xoo/sample/ClassToModify.xoo | 12 - .../xoo/sample/ClassToModify.xoo.measures | 4 - .../src/main/xoo/sample/UnchangedClass.xoo | 12 - .../xoo/sample/UnchangedClass.xoo.measures | 4 - .../xoo-history-v2/sonar-project.properties | 6 - .../src/main/xoo/sample/ClassAdded.xoo | 12 - .../main/xoo/sample/ClassAdded.xoo.measures | 4 - .../src/main/xoo/sample/ClassAdded.xoo.scm | 13 - .../src/main/xoo/sample/ClassToModify.xoo | 16 - .../xoo/sample/ClassToModify.xoo.measures | 4 - .../src/main/xoo/sample/ClassToModify.xoo.scm | 17 - .../src/main/xoo/sample/UnchangedClass.xoo | 12 - .../xoo/sample/UnchangedClass.xoo.measures | 4 - .../main/xoo/sample/UnchangedClass.xoo.scm | 13 - .../v1-1000-lines/sonar-project.properties | 4 - .../v1-1000-lines/src/sample/Sample.xoo | 999 - .../src/sample/Sample.xoo.coverage | 1000 - .../src/sample/Sample.xoo.measures | 3 - .../v1-1000-lines/src/sample/Sample.xoo.scm | 1000 - .../v2-1019-lines/sonar-project.properties | 4 - .../v2-1019-lines/src/sample/Sample.xoo | 1018 - .../src/sample/Sample.xoo.coverage | 1019 - .../src/sample/Sample.xoo.measures | 3 - .../v2-1019-lines/src/sample/Sample.xoo.scm | 1019 - .../v2-1020-lines/sonar-project.properties | 4 - .../v2-1020-lines/src/sample/Sample.xoo | 1019 - .../src/sample/Sample.xoo.coverage | 1020 - .../src/sample/Sample.xoo.measures | 3 - .../v2-1020-lines/src/sample/Sample.xoo.scm | 1020 - .../xoo-sample/sonar-project.properties | 4 - .../xoo-sample/src/sample/Sample.xoo | 12 - .../xoo-sample/src/sample/Sample.xoo.measures | 9 - .../xoo-sample/src/sample/Sample2.xoo | 12 - .../src/sample/Sample2.xoo.measures | 8 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 7 - .../src/main/xoo/sample/Sample.xoo.scm | 8 - .../scm-repository.zip | Bin 37476 -> 0 bytes .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 7 - .../src/main/xoo/sample/Sample.xoo.new | 13 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 7 - .../src/main/xoo/sample/Sample.xoo.new | 13 - .../scm-repository.zip | Bin 17704 -> 0 bytes .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 7 - .../src/main/xoo/sample/Sample.xoo.new | 13 - .../src/main/xoo/sample/Sample.xoo.updated | 7 - .../module_a/module_a1/pom.xml | 14 - .../sonar/it/samples/modules/a1/HelloA1.java | 16 - .../module_a/module_a2/pom.xml | 13 - .../sonar/it/samples/modules/a2/HelloA2.java | 12 - .../multi-modules-sample/module_a/pom.xml | 17 - .../module_b/module_b1/pom.xml | 14 - .../sonar/it/samples/modules/b1/HelloB1.java | 12 - .../module_b/module_b2/pom.xml | 14 - .../sonar/it/samples/modules/b2/HelloB2.java | 12 - .../multi-modules-sample/module_b/pom.xml | 17 - .../shared/multi-modules-sample/pom.xml | 28 - .../sonar-project.properties | 16 - .../xoo-history-v1/sonar-project.properties | 5 - .../src/main/xoo/sample/ClassToModify.xoo | 12 - .../xoo/sample/ClassToModify.xoo.measures | 4 - .../src/main/xoo/sample/UnchangedClass.xoo | 12 - .../xoo/sample/UnchangedClass.xoo.measures | 4 - .../xoo-history-v2/sonar-project.properties | 5 - .../src/main/xoo/sample/ClassAdded.xoo | 12 - .../main/xoo/sample/ClassAdded.xoo.measures | 4 - .../src/main/xoo/sample/ClassToModify.xoo | 16 - .../xoo/sample/ClassToModify.xoo.measures | 4 - .../src/main/xoo/sample/UnchangedClass.xoo | 12 - .../xoo/sample/UnchangedClass.xoo.measures | 4 - .../.scannerwork/.sonar_lock | 0 .../.scannerwork/report-task.txt | 6 - .../module_a1/sonar-project.properties | 1 - .../sonar/it/samples/modules/a1/HelloA1.xoo | 16 - .../samples/modules/a1/HelloA1.xoo.measures | 2 - .../module_a2/sonar-project.properties | 1 - .../sonar/it/samples/modules/a2/HelloA2.xoo | 20 - .../samples/modules/a2/HelloA2.xoo.measures | 2 - .../module_a/sonar-project.properties | 4 - .../sonar/it/samples/modules/b1/HelloB1.xoo | 12 - .../samples/modules/b1/HelloB1.xoo.measures | 2 - .../module_b2/sonar-project.properties | 1 - .../sonar/it/samples/modules/b2/HelloB2.xoo | 12 - .../samples/modules/b2/HelloB2.xoo.measures | 2 - .../module_b/sonar-project.properties | 3 - .../sonar-project.properties | 10 - .../module_a1/sonar-project.properties | 1 - .../sonar/it/samples/modules/a1/HelloA1.xoo | 16 - .../samples/modules/a1/HelloA1.xoo.measures | 4 - .../module_a2/sonar-project.properties | 1 - .../sonar/it/samples/modules/a2/HelloA2.xoo | 20 - .../samples/modules/a2/HelloA2.xoo.measures | 5 - .../module_a/sonar-project.properties | 4 - .../module_b1/sonar-project.properties | 1 - .../sonar/it/samples/modules/b1/HelloB1.xoo | 12 - .../samples/modules/b1/HelloB1.xoo.measures | 4 - .../module_b2/sonar-project.properties | 1 - .../sonar/it/samples/modules/b2/HelloB2.xoo | 12 - .../samples/modules/b2/HelloB2.xoo.measures | 4 - .../module_b/sonar-project.properties | 4 - .../sonar-project.properties | 12 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 16 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 9 - .../src/main/xoo/sample/Sample.xoo.measures | 9 - .../module_a/sonar-project.properties | 4 - .../module_a/src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.measures | 8 - .../sonar-project.properties | 12 - .../module_a/sonar-project.properties | 4 - .../module_a/src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.measures | 8 - .../new_module/sonar-project.properties | 4 - .../sonar-project.properties | 12 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.measures | 8 - .../shared/xoo-sample-with-root-dir/Hello.xoo | 12 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.measures | 8 - .../sonar-project.properties | 6 - .../src/main/xoo/sample/Sample.xoo | 12 - .../src/main/xoo/sample/Sample.xoo.measures | 5 - .../src/test/xoo/sample/SampleTest.xoo | 21 - .../test/xoo/sample/SampleTest.xoo.measures | 6 - .../shared/xoo-sample/externalIssues.json | 45 - .../xoo-sample/sonar-project.properties | 5 - .../xoo-sample/src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.measures | 9 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 12 - .../src/main/xoo/sample/Sample.xoo.measures | 1 - .../xoo2-sample/sonar-project.properties | 4 - .../src/main/xoo/sample/Sample.xoo2 | 16 - .../src/main/xoo/sample/Sample.xoo2.measures | 9 - .../significantCode/sample-xoo/file.xoo | 11 - .../sample-xoo/file_additional_line.xoo | 12 - .../sample-xoo/file_changed.xoo | 11 - .../japanese-charset/sonar-project.properties | 6 - .../src/main/xoo/com/test/App.xoo | 75 - .../src/main/xoo/com/test/App.xoo.measures | 1 - .../src/main/xoo/com/test/AppCpdBug.xoo | 43 - .../main/xoo/com/test/AppCpdBug.xoo.measures | 1 - .../src/main/xoo/com/test/AppDuplication.xoo | 65 - .../xoo/com/test/AppDuplication.xoo.measures | 1 - tests/projects/struts-1.3.9-diet/core/pom.xml | 177 - .../main/java/org/apache/struts/Globals.java | 212 - .../java/org/apache/struts/action/Action.java | 557 - .../apache/struts/action/ActionErrors.java | 66 - .../org/apache/struts/action/ActionForm.java | 233 - .../apache/struts/action/ActionFormBean.java | 61 - .../apache/struts/action/ActionForward.java | 141 - .../apache/struts/action/ActionMapping.java | 116 - .../apache/struts/action/ActionMessage.java | 201 - .../apache/struts/action/ActionMessages.java | 438 - .../apache/struts/action/ActionRedirect.java | 350 - .../struts/action/ActionResources.properties | 52 - .../action/ActionResources_ja.properties | 49 - .../apache/struts/action/ActionServlet.java | 1915 - .../struts/action/ActionServletWrapper.java | 66 - .../apache/struts/action/DynaActionForm.java | 669 - .../struts/action/DynaActionFormClass.java | 286 - .../struts/action/ExceptionHandler.java | 315 - .../action/ForwardingActionForward.java | 52 - .../struts/action/InvalidCancelException.java | 45 - .../struts/action/LocalStrings.properties | 27 - .../struts/action/LocalStrings_ja.properties | 22 - .../java/org/apache/struts/action/PlugIn.java | 69 - .../action/RedirectingActionForward.java | 52 - .../struts/action/RequestActionMapping.java | 40 - .../struts/action/RequestProcessor.java | 1130 - .../struts/action/SessionActionMapping.java | 40 - .../struts/action/doc-files/actionUML.gif | Bin 15699 -> 0 bytes .../org/apache/struts/action/package.html | 51 - .../chain/ComposableRequestProcessor.java | 407 - .../org/apache/struts/chain/Constants.java | 132 - .../commands/AbstractAuthorizeAction.java | 132 - .../chain/commands/AbstractCreateAction.java | 121 - .../commands/AbstractExceptionHandler.java | 130 - .../chain/commands/AbstractExecuteAction.java | 92 - .../commands/AbstractPerformForward.java | 72 - .../commands/AbstractPerformInclude.java | 87 - .../commands/AbstractPopulateActionForm.java | 159 - .../commands/AbstractRequestNoCache.java | 65 - .../chain/commands/AbstractSelectAction.java | 90 - .../chain/commands/AbstractSelectForward.java | 98 - .../chain/commands/AbstractSelectInput.java | 112 - .../chain/commands/AbstractSelectLocale.java | 91 - .../chain/commands/AbstractSelectModule.java | 95 - .../commands/AbstractSetContentType.java | 70 - .../commands/AbstractSetOriginalURI.java | 61 - .../commands/AbstractValidateActionForm.java | 150 - .../struts/chain/commands/ActionCommand.java | 38 - .../chain/commands/ActionCommandBase.java | 53 - .../chain/commands/CreateActionForm.java | 112 - .../chain/commands/ExceptionCatcher.java | 212 - .../struts/chain/commands/ExecuteCommand.java | 156 - .../chain/commands/ExecuteForwardCommand.java | 62 - .../chain/commands/InvalidPathException.java | 63 - .../chain/commands/RemoveCachedMessages.java | 76 - .../struts/chain/commands/SelectInclude.java | 71 - .../commands/UnauthorizedActionException.java | 47 - .../commands/generic/CopyFormToContext.java | 278 - .../generic/WrappingLookupCommand.java | 323 - .../chain/commands/generic/package.html | 25 - .../apache/struts/chain/commands/package.html | 26 - .../commands/servlet/AuthorizeAction.java | 70 - .../chain/commands/servlet/CreateAction.java | 100 - .../commands/servlet/ExceptionHandler.java | 68 - .../chain/commands/servlet/ExecuteAction.java | 61 - .../commands/servlet/PerformForward.java | 143 - .../commands/servlet/PerformInclude.java | 69 - .../commands/servlet/PopulateActionForm.java | 66 - .../commands/servlet/RequestNoCache.java | 46 - .../chain/commands/servlet/SelectAction.java | 92 - .../chain/commands/servlet/SelectForward.java | 51 - .../chain/commands/servlet/SelectInput.java | 52 - .../chain/commands/servlet/SelectLocale.java | 72 - .../chain/commands/servlet/SelectModule.java | 76 - .../commands/servlet/SetContentType.java | 44 - .../commands/servlet/SetOriginalURI.java | 44 - .../commands/servlet/ValidateActionForm.java | 75 - .../chain/commands/servlet/package.html | 25 - .../chain/commands/util/ClassUtils.java | 73 - .../struts/chain/commands/util/package.html | 26 - .../struts/chain/contexts/ActionContext.java | 430 - .../chain/contexts/ActionContextBase.java | 552 - .../struts/chain/contexts/ContextWrapper.java | 108 - .../chain/contexts/MockActionContext.java | 70 - .../chain/contexts/ServletActionContext.java | 251 - .../chain/contexts/WebActionContext.java | 181 - .../apache/struts/chain/contexts/package.html | 27 - .../java/org/apache/struts/chain/package.html | 26 - .../apache/struts/config/ActionConfig.java | 1288 - .../struts/config/ActionConfigMatcher.java | 314 - .../org/apache/struts/config/BaseConfig.java | 168 - .../apache/struts/config/ConfigHelper.java | 579 - .../struts/config/ConfigHelperInterface.java | 210 - .../apache/struts/config/ConfigRuleSet.java | 452 - .../struts/config/ControllerConfig.java | 383 - .../apache/struts/config/ExceptionConfig.java | 425 - .../apache/struts/config/FormBeanConfig.java | 617 - .../struts/config/FormPropertyConfig.java | 424 - .../apache/struts/config/ForwardConfig.java | 499 - .../struts/config/MessageResourcesConfig.java | 155 - .../apache/struts/config/ModuleConfig.java | 330 - .../struts/config/ModuleConfigFactory.java | 113 - .../apache/struts/config/PlugInConfig.java | 103 - .../struts/config/doc-files/configUML.gif | Bin 13761 -> 0 bytes .../impl/DefaultModuleConfigFactory.java | 49 - .../struts/config/impl/ModuleConfigImpl.java | 715 - .../apache/struts/config/impl/package.html | 25 - .../org/apache/struts/config/package.html | 25 - .../org/apache/struts/doc-files/Stamp.gif | Bin 4938 -> 0 bytes .../doc-files/jakarta-feather-small.gif | Bin 1872 -> 0 bytes .../org/apache/struts/mock/MockAction.java | 32 - .../apache/struts/mock/MockActionServlet.java | 109 - .../apache/struts/mock/MockEnumeration.java | 47 - .../org/apache/struts/mock/MockFormBean.java | 179 - .../struts/mock/MockHttpServletRequest.java | 428 - .../struts/mock/MockHttpServletResponse.java | 175 - .../apache/struts/mock/MockHttpSession.java | 146 - .../mock/MockMultipartRequestHandler.java | 147 - .../apache/struts/mock/MockPageContext.java | 605 - .../org/apache/struts/mock/MockPrincipal.java | 102 - .../apache/struts/mock/MockServletConfig.java | 85 - .../struts/mock/MockServletContext.java | 185 - .../org/apache/struts/mock/TestMockBase.java | 388 - .../java/org/apache/struts/mock/package.html | 25 - .../main/java/org/apache/struts/package.html | 26 - .../CommonsMultipartRequestHandler.java | 643 - .../org/apache/struts/upload/FormFile.java | 106 - .../upload/MultipartRequestHandler.java | 125 - .../upload/MultipartRequestWrapper.java | 140 - .../struts/upload/doc-files/uploadUML.jpg | Bin 57462 -> 0 bytes .../org/apache/struts/upload/package.html | 51 - .../apache/struts/util/ImageButtonBean.java | 108 - .../apache/struts/util/IteratorAdapter.java | 60 - .../apache/struts/util/LabelValueBean.java | 168 - .../struts/util/LocalStrings.properties | 19 - .../struts/util/LocalStrings_ja.properties | 19 - .../apache/struts/util/MessageResources.java | 510 - .../struts/util/MessageResourcesFactory.java | 180 - .../apache/struts/util/ModuleException.java | 137 - .../org/apache/struts/util/ModuleUtils.java | 264 - .../struts/util/PropertyMessageResources.java | 456 - .../util/PropertyMessageResourcesFactory.java | 50 - .../org/apache/struts/util/RequestUtils.java | 1115 - .../org/apache/struts/util/ResponseUtils.java | 183 - .../struts/util/ServletContextWriter.java | 364 - .../apache/struts/util/TokenProcessor.java | 231 - .../apache/struts/util/WildcardHelper.java | 459 - .../java/org/apache/struts/util/package.html | 379 - .../struts/validator/BeanValidatorForm.java | 337 - .../struts/validator/DynaValidatorForm.java | 213 - .../apache/struts/validator/FieldChecks.java | 1336 - .../struts/validator/LazyValidatorForm.java | 196 - .../struts/validator/LocalStrings.properties | 20 - .../apache/struts/validator/Resources.java | 521 - .../struts/validator/ValidatorForm.java | 177 - .../struts/validator/ValidatorPlugIn.java | 257 - .../validator/doc-files/validatorUML.jpg | Bin 47363 -> 0 bytes .../org/apache/struts/validator/package.html | 52 - .../struts/validator/validwhen/ValidWhen.java | 192 - .../validator/validwhen/ValidWhenLexer.java | 670 - .../validator/validwhen/ValidWhenParser.g | 286 - .../validator/validwhen/ValidWhenParser.java | 538 - .../validwhen/ValidWhenParserTokenTypes.java | 53 - .../validwhen/ValidWhenParserTokenTypes.txt | 22 - .../struts/validator/validwhen/package.html | 26 - .../struts/validator/validwhen/readme.txt | 13 - .../core/src/main/resources/LICENSE.txt | 174 - .../core/src/main/resources/NOTICE.txt | 10 - .../org/apache/struts/chain/chain-config.xml | 245 - .../struts/resources/struts-config_1_0.dtd | 424 - .../struts/resources/struts-config_1_1.dtd | 712 - .../struts/resources/struts-config_1_2.dtd | 702 - .../struts/resources/struts-config_1_3.dtd | 726 - .../apache/struts/resources/web-app_2_3.dtd | 1059 - .../validator/validator-rules-compressed.xml | 429 - .../struts/validator/validator-rules.xml | 418 - .../struts/action/TestActionMessage.java | 201 - .../struts/action/TestActionMessages.java | 175 - .../struts/action/TestActionRedirect.java | 199 - .../struts/action/TestActionServlet.java | 1163 - .../struts/action/TestDynaActionForm.java | 796 - .../action/TestDynaActionFormClass.java | 267 - .../generic/TestCopyFormToContext.java | 243 - .../generic/TestWrappingLookupCommand.java | 74 - .../commands/servlet/TestAuthorizeAction.java | 146 - .../commands/servlet/TestPerformForward.java | 96 - .../commands/servlet/TestSetOriginalURI.java | 86 - .../struts/config/CustomMappingTest.java | 38 - .../struts/config/TestActionConfig.java | 374 - .../config/TestActionConfigMatcher.java | 230 - .../struts/config/TestFormBeanConfig.java | 340 - .../struts/config/TestFormPropertyConfig.java | 132 - .../struts/config/TestForwardConfig.java | 440 - .../struts/config/TestModuleConfig.java | 202 - .../struts/config/struts-config-1.1.xml | 145 - .../struts-config-custom-mapping-1.1.xml | 147 - .../config/struts-config-custom-mapping.xml | 146 - .../apache/struts/config/struts-config.xml | 145 - .../org/apache/struts/util/Foo.properties | 20 - .../org/apache/struts/util/Foo_de.properties | 18 - .../apache/struts/util/Foo_de_DE.properties | 18 - .../org/apache/struts/util/Foo_en.properties | 18 - .../apache/struts/util/Foo_en_US.properties | 18 - .../util/TestPropertyMessageResources.java | 220 - .../apache/struts/util/TestRequestUtils.java | 664 - .../struts/util/TestRequestUtilsPopulate.java | 123 - .../org/apache/struts/validator/PojoBean.java | 195 - .../struts/validator/TestValidWhen.java | 309 - tests/projects/struts-1.3.9-diet/pom.xml | 275 - .../projects/struts-1.3.9-diet/taglib/pom.xml | 142 - .../struts/taglib/LocalStrings.properties | 30 - .../struts/taglib/LocalStrings_ja.properties | 30 - .../org/apache/struts/taglib/TagUtils.java | 1179 - .../apache/struts/taglib/bean/CookieTag.java | 162 - .../apache/struts/taglib/bean/CookieTei.java | 52 - .../apache/struts/taglib/bean/DefineTag.java | 266 - .../apache/struts/taglib/bean/DefineTei.java | 56 - .../apache/struts/taglib/bean/HeaderTag.java | 190 - .../apache/struts/taglib/bean/HeaderTei.java | 52 - .../apache/struts/taglib/bean/IncludeTag.java | 285 - .../apache/struts/taglib/bean/IncludeTei.java | 44 - .../taglib/bean/LocalStrings.properties | 37 - .../taglib/bean/LocalStrings_ja.properties | 37 - .../apache/struts/taglib/bean/MessageTag.java | 265 - .../apache/struts/taglib/bean/PageTag.java | 117 - .../apache/struts/taglib/bean/PageTei.java | 61 - .../struts/taglib/bean/ParameterTag.java | 162 - .../struts/taglib/bean/ParameterTei.java | 52 - .../struts/taglib/bean/ResourceTag.java | 159 - .../struts/taglib/bean/ResourceTei.java | 52 - .../apache/struts/taglib/bean/SizeTag.java | 186 - .../apache/struts/taglib/bean/SizeTei.java | 44 - .../apache/struts/taglib/bean/StrutsTag.java | 175 - .../apache/struts/taglib/bean/StrutsTei.java | 56 - .../apache/struts/taglib/bean/WriteTag.java | 396 - .../struts/taglib/bean/doc-files/beanUML.gif | Bin 13450 -> 0 bytes .../apache/struts/taglib/bean/package.html | 558 - .../struts/taglib/html/BaseFieldTag.java | 159 - .../struts/taglib/html/BaseHandlerTag.java | 1224 - .../struts/taglib/html/BaseInputTag.java | 238 - .../apache/struts/taglib/html/BaseTag.java | 221 - .../apache/struts/taglib/html/ButtonTag.java | 48 - .../apache/struts/taglib/html/CancelTag.java | 85 - .../struts/taglib/html/CheckboxTag.java | 233 - .../apache/struts/taglib/html/Constants.java | 63 - .../apache/struts/taglib/html/ErrorsTag.java | 291 - .../apache/struts/taglib/html/FileTag.java | 38 - .../apache/struts/taglib/html/FormTag.java | 919 - .../apache/struts/taglib/html/FrameTag.java | 185 - .../apache/struts/taglib/html/HiddenTag.java | 105 - .../apache/struts/taglib/html/HtmlTag.java | 196 - .../apache/struts/taglib/html/ImageTag.java | 283 - .../org/apache/struts/taglib/html/ImgTag.java | 675 - .../taglib/html/JavascriptValidatorTag.java | 906 - .../apache/struts/taglib/html/LinkTag.java | 467 - .../taglib/html/LocalStrings.properties | 62 - .../taglib/html/LocalStrings_ja.properties | 57 - .../struts/taglib/html/MessagesTag.java | 314 - .../struts/taglib/html/MessagesTei.java | 43 - .../struts/taglib/html/MultiboxTag.java | 260 - .../apache/struts/taglib/html/OptionTag.java | 404 - .../taglib/html/OptionsCollectionTag.java | 372 - .../apache/struts/taglib/html/OptionsTag.java | 423 - .../apache/struts/taglib/html/ParamTag.java | 123 - .../struts/taglib/html/PasswordTag.java | 39 - .../apache/struts/taglib/html/RadioTag.java | 285 - .../apache/struts/taglib/html/ResetTag.java | 59 - .../apache/struts/taglib/html/RewriteTag.java | 78 - .../apache/struts/taglib/html/SelectTag.java | 336 - .../apache/struts/taglib/html/SubmitTag.java | 230 - .../apache/struts/taglib/html/TextTag.java | 39 - .../struts/taglib/html/TextareaTag.java | 104 - .../apache/struts/taglib/html/XhtmlTag.java | 51 - .../struts/taglib/html/doc-files/htmlUML.gif | Bin 16611 -> 0 bytes .../apache/struts/taglib/html/package.html | 906 - .../struts/taglib/logic/CompareTagBase.java | 252 - .../taglib/logic/ConditionalTagBase.java | 203 - .../apache/struts/taglib/logic/EmptyTag.java | 108 - .../apache/struts/taglib/logic/EqualTag.java | 45 - .../struts/taglib/logic/ForwardTag.java | 167 - .../struts/taglib/logic/GreaterEqualTag.java | 45 - .../struts/taglib/logic/GreaterThanTag.java | 45 - .../struts/taglib/logic/IterateTag.java | 434 - .../struts/taglib/logic/IterateTei.java | 81 - .../struts/taglib/logic/LessEqualTag.java | 45 - .../struts/taglib/logic/LessThanTag.java | 45 - .../taglib/logic/LocalStrings.properties | 31 - .../taglib/logic/LocalStrings_ja.properties | 31 - .../apache/struts/taglib/logic/MatchTag.java | 170 - .../taglib/logic/MessagesNotPresentTag.java | 48 - .../taglib/logic/MessagesPresentTag.java | 110 - .../struts/taglib/logic/NotEmptyTag.java | 48 - .../struts/taglib/logic/NotEqualTag.java | 45 - .../struts/taglib/logic/NotMatchTag.java | 47 - .../struts/taglib/logic/NotPresentTag.java | 47 - .../struts/taglib/logic/PresentTag.java | 152 - .../struts/taglib/logic/RedirectTag.java | 339 - .../taglib/logic/doc-files/logicUML.gif | Bin 14618 -> 0 bytes .../apache/struts/taglib/logic/package.html | 552 - .../taglib/nested/NestedNameSupport.java | 47 - .../taglib/nested/NestedParentSupport.java | 43 - .../taglib/nested/NestedPropertyHelper.java | 301 - .../taglib/nested/NestedPropertySupport.java | 47 - .../taglib/nested/NestedPropertyTag.java | 151 - .../struts/taglib/nested/NestedReference.java | 92 - .../struts/taglib/nested/NestedRootTag.java | 165 - .../taglib/nested/NestedTagSupport.java | 34 - .../taglib/nested/NestedWriteNestingTag.java | 151 - .../taglib/nested/NestedWriteNestingTei.java | 59 - .../taglib/nested/bean/NestedDefineTag.java | 95 - .../taglib/nested/bean/NestedDefineTei.java | 60 - .../taglib/nested/bean/NestedMessageTag.java | 94 - .../taglib/nested/bean/NestedSizeTag.java | 95 - .../taglib/nested/bean/NestedWriteTag.java | 95 - .../nested/bean/doc-files/nested-bean.gif | Bin 9097 -> 0 bytes .../struts/taglib/nested/bean/package.html | 42 - .../taglib/nested/doc-files/nestedUML.gif | Bin 11860 -> 0 bytes .../taglib/nested/html/NestedCheckboxTag.java | 95 - .../taglib/nested/html/NestedErrorsTag.java | 95 - .../taglib/nested/html/NestedFileTag.java | 94 - .../taglib/nested/html/NestedFormTag.java | 146 - .../taglib/nested/html/NestedHiddenTag.java | 95 - .../taglib/nested/html/NestedImageTag.java | 91 - .../taglib/nested/html/NestedImgTag.java | 94 - .../taglib/nested/html/NestedLinkTag.java | 128 - .../taglib/nested/html/NestedMessagesTag.java | 96 - .../taglib/nested/html/NestedMultiboxTag.java | 95 - .../html/NestedOptionsCollectionTag.java | 95 - .../taglib/nested/html/NestedOptionsTag.java | 111 - .../taglib/nested/html/NestedPasswordTag.java | 95 - .../taglib/nested/html/NestedRadioTag.java | 95 - .../taglib/nested/html/NestedSelectTag.java | 95 - .../taglib/nested/html/NestedSubmitTag.java | 91 - .../taglib/nested/html/NestedTextTag.java | 95 - .../taglib/nested/html/NestedTextareaTag.java | 95 - .../nested/html/doc-files/nested-html.gif | Bin 30338 -> 0 bytes .../struts/taglib/nested/html/package.html | 39 - .../taglib/nested/logic/NestedEmptyTag.java | 95 - .../taglib/nested/logic/NestedEqualTag.java | 95 - .../nested/logic/NestedGreaterEqualTag.java | 96 - .../nested/logic/NestedGreaterThanTag.java | 96 - .../taglib/nested/logic/NestedIterateTag.java | 184 - .../taglib/nested/logic/NestedIterateTei.java | 50 - .../nested/logic/NestedLessEqualTag.java | 96 - .../nested/logic/NestedLessThanTag.java | 95 - .../taglib/nested/logic/NestedMatchTag.java | 95 - .../logic/NestedMessagesNotPresentTag.java | 96 - .../logic/NestedMessagesPresentTag.java | 96 - .../nested/logic/NestedNotEmptyTag.java | 95 - .../nested/logic/NestedNotEqualTag.java | 95 - .../nested/logic/NestedNotMatchTag.java | 95 - .../nested/logic/NestedNotPresentTag.java | 96 - .../taglib/nested/logic/NestedPresentTag.java | 95 - .../nested/logic/doc-files/nested-logic.gif | Bin 30622 -> 0 bytes .../struts/taglib/nested/logic/package.html | 40 - .../apache/struts/taglib/nested/package.html | 529 - .../taglib/src/main/resources/LICENSE.txt | 174 - .../resources/META-INF/tld/struts-bean.tld | 1153 - .../resources/META-INF/tld/struts-html.tld | 9248 --- .../resources/META-INF/tld/struts-logic.tld | 1893 - .../resources/META-INF/tld/struts-nested.tld | 5089 -- .../taglib/src/main/resources/NOTICE.txt | 10 - .../org/apache/struts/taglib/TagTestBase.java | 131 - .../apache/struts/taglib/TestTagUtils.java | 2196 - .../struts/taglib/html/TestHtmlTag.java | 189 - .../apache/struts/taglib/sample.properties | 17 - tests/projects/testing/README.txt | 2 - .../projects/testing/xoo-half-covered/pom.xml | 47 - .../xoo-half-covered/sonar-project.properties | 5 - .../org/sonar/tests/halfcovered/Covered.xoo | 8 - .../tests/halfcovered/Covered.xoo.coverage | 1 - .../org/sonar/tests/halfcovered/UnCovered.xoo | 8 - .../tests/halfcovered/UnCovered.xoo.coverage | 1 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.itcoverage | 4 - .../sonar-project.properties | 6 - .../src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.coverage | 1 - .../src/main/xoo/sample/Sample.xoo.itcoverage | 1 - .../src/main/xoo/sample/Sample.xoo.measures | 2 - .../xoo/sample/Sample.xoo.overallcoverage | 1 - .../src/main/xoo/sample/Sample.xoo.scm | 17 - .../sonar-project.properties | 6 - .../src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.coverage | 6 - .../src/main/xoo/sample/Sample.xoo.itcoverage | 5 - .../src/main/xoo/sample/Sample.xoo.measures | 1 - .../xoo/sample/Sample.xoo.overallcoverage | 3 - .../src/main/xoo/sample/Sample.xoo.scm | 17 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.coverage | 4 - .../src/main/xoo/sample/Sample.xoo.itcoverage | 4 - .../xoo/sample/Sample.xoo.overallcoverage | 4 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.coverage | 4 - .../sonar-project.properties | 5 - .../src/main/xoo/sample/Sample.xoo | 16 - .../src/main/xoo/sample/Sample.xoo.coverage | 4 - .../sonar-project.properties | 6 - .../src/main/xoo/sample/Sample.xoo | 12 - .../src/main/xoo/sample/Sample2.xoo | 12 - .../src/test/xoo/sample/Sample2Test.xoo | 32 - .../src/test/xoo/sample/Sample2Test.xoo.test | 1 - .../xoo/sample/Sample2Test.xoo.testcoverage | 1 - .../src/test/xoo/sample/SampleTest.xoo | 32 - .../src/test/xoo/sample/SampleTest.xoo.test | 4 - .../xoo/sample/SampleTest.xoo.testcoverage | 2 - .../sonar-project.properties | 6 - .../src/main/xoo/sample/Sample.xoo | 12 - .../src/test/xoo/sample/SampleTest.xoo | 32 - .../src/test/xoo/sample/SampleTest.xoo.test | 4 - .../sonar-project.properties | 6 - .../src/main/xoo/sample/Sample.xoo | 12 - .../src/test/xoo/sample/SampleTest.xoo | 32 - .../test/xoo/sample/SampleTest.xoo.measures | 5 - tests/resilience/active_rule_indexer.btm | 12 - tests/resilience/exception_on_listener.btm | 8 - .../making_ce_indexation_failing.btm | 8 - tests/resilience/rule_indexer.btm | 12 - tests/resilience/user_indexer.btm | 23 - .../java/org/sonarqube/tests/Byteman.java | 93 - .../org/sonarqube/tests/Category1Suite.java | 75 - .../org/sonarqube/tests/Category3Suite.java | 101 - .../org/sonarqube/tests/Category4Suite.java | 90 - .../org/sonarqube/tests/Category5Suite.java | 86 - .../org/sonarqube/tests/Category6Suite.java | 83 - .../analysis/AnalysisEsResilienceTest.java | 261 - .../analysis/ExtensionLifecycleTest.java | 50 - .../tests/analysis/FavoriteTest.java | 122 - .../tests/analysis/FileExclusionsTest.java | 137 - .../tests/analysis/IssueExclusionsTest.java | 268 - .../tests/analysis/IssueJsonReportTest.java | 311 - .../tests/analysis/IssuesModeTest.java | 459 - .../sonarqube/tests/analysis/LinksTest.java | 92 - .../tests/analysis/MultiLanguageTest.java | 76 - .../tests/analysis/PermissionTest.java | 153 - .../tests/analysis/ProjectBuilderTest.java | 85 - .../tests/analysis/ProjectMeasureTest.java | 121 - .../tests/analysis/RedirectTest.java | 106 - .../tests/analysis/ReportDumpTest.java | 73 - .../org/sonarqube/tests/analysis/SSLTest.java | 195 - .../sonarqube/tests/analysis/ScannerTest.java | 412 - .../analysis/SettingsEncryptionTest.java | 83 - .../tests/analysis/TempFolderTest.java | 98 - .../authorization/AuthorizationSuite.java | 55 - .../ExecuteAnalysisPermissionTest.java | 141 - .../authorization/IssuePermissionTest.java | 278 - .../authorization/PermissionSearchTest.java | 169 - .../PermissionTemplatePageTest.java | 69 - .../authorization/PermissionTemplateTest.java | 207 - .../authorization/ProjectPermissionsTest.java | 94 - .../ProvisioningPermissionTest.java | 139 - .../QualityProfileAdminPermissionTest.java | 68 - .../authorization/SystemPasscodeTest.java | 92 - .../tests/ce/BackgroundTasksTest.java | 115 - .../sonarqube/tests/ce/CeShutdownTest.java | 184 - .../org/sonarqube/tests/ce/CeTempDirTest.java | 53 - .../tests/ce/CeWorkersPauseTest.java | 96 - .../org/sonarqube/tests/ce/CeWorkersTest.java | 396 - .../java/org/sonarqube/tests/ce/CeWsTest.java | 89 - .../ce/ReportFailureNotificationTest.java | 281 - .../sonarqube/tests/component/BranchTest.java | 65 - .../tests/component/CodePageTest.java | 85 - .../tests/component/ComponentSuite.java | 46 - .../tests/component/ComponentsWsTest.java | 60 - .../sonarqube/tests/component/ModuleTest.java | 111 - .../CrossModuleDuplicationsTest.java | 137 - ...ssProjectDuplicationsOnRemoveFileTest.java | 85 - .../CrossProjectDuplicationsTest.java | 167 - .../tests/duplication/DuplicationSuite.java | 46 - .../tests/duplication/DuplicationsTest.java | 180 - .../duplication/NewDuplicationsTest.java | 88 - .../tests/issue/AbstractIssueTest.java | 67 - .../sonarqube/tests/issue/AutoAssignTest.java | 198 - .../tests/issue/CommonRulesTest.java | 95 - .../tests/issue/CustomRulesTest.java | 68 - .../tests/issue/ExternalIssueSuite.java | 44 - .../tests/issue/ExternalIssueTest.java | 194 - .../tests/issue/IssueActionTest.java | 175 - .../tests/issue/IssueBulkChangeTest.java | 270 - .../tests/issue/IssueChangelogTest.java | 125 - .../IssueCreationDatePluginChangedTest.java | 193 - .../issue/IssueCreationDateQPChangedTest.java | 371 - .../tests/issue/IssueCreationTest.java | 133 - .../tests/issue/IssueFilterExtensionTest.java | 119 - .../issue/IssueFilterOnCommonRulesTest.java | 126 - .../tests/issue/IssueFilterTest.java | 115 - .../tests/issue/IssueMeasureTest.java | 130 - .../tests/issue/IssueNotificationsTest.java | 311 - .../sonarqube/tests/issue/IssuePurgeTest.java | 171 - .../tests/issue/IssueSearchTest.java | 290 - .../org/sonarqube/tests/issue/IssueSuite.java | 70 - .../sonarqube/tests/issue/IssueTagsTest.java | 161 - .../tests/issue/IssueTrackingTest.java | 220 - .../tests/issue/IssueWorkflowTest.java | 317 - .../sonarqube/tests/issue/IssuesPageTest.java | 79 - .../tests/issue/NewIssuesMeasureTest.java | 155 - .../issue/OrganizationIssueAssignTest.java | 242 - .../tests/issue/OrganizationIssueSuite.java | 46 - .../issue/OrganizationIssuesPageTest.java | 96 - .../org/sonarqube/tests/lite/LiteSuite.java | 31 - .../org/sonarqube/tests/lite/LiteTest.java | 109 - .../tests/marketplace/UpdateCenterTest.java | 76 - .../tests/measure/ComplexityMeasuresTest.java | 94 - .../tests/measure/CustomMeasuresTest.java | 137 - .../tests/measure/DecimalScaleMetricTest.java | 57 - .../measure/DifferentialPeriodsTest.java | 149 - .../tests/measure/LiveMeasuresTest.java | 198 - .../sonarqube/tests/measure/MeasureSuite.java | 58 - .../tests/measure/MeasuresWsTest.java | 163 - .../measure/ProjectActivityPageTest.java | 93 - .../tests/measure/ProjectDashboardTest.java | 146 - .../measure/ProjectMeasuresPageTest.java | 154 - .../SincePreviousVersionHistoryTest.java | 124 - .../tests/measure/SinceXDaysHistoryTest.java | 113 - .../tests/measure/TimeMachineTest.java | 151 - .../tests/organization/BillingTest.java | 234 - .../OrganizationMembershipTest.java | 131 - .../OrganizationMembershipUiTest.java | 175 - .../tests/organization/OrganizationSuite.java | 51 - .../tests/organization/OrganizationTest.java | 360 - .../OrganizationWebExtensionsTest.java | 73 - .../PersonalOrganizationTest.java | 73 - .../tests/organization/RootUserTest.java | 91 - .../tests/performance/AbstractPerfTest.java | 79 - .../tests/performance/MavenLogs.java | 65 - .../tests/performance/MavenLogsTest.java | 42 - .../sonarqube/tests/performance/PerfRule.java | 106 - .../tests/performance/ServerLogs.java | 93 - .../tests/performance/ServerLogsTest.java | 36 - .../scanner/BootstrappingTest.java | 148 - .../performance/scanner/DuplicationTest.java | 96 - .../performance/scanner/FileSystemTest.java | 106 - .../performance/scanner/HighlightingTest.java | 106 - .../performance/scanner/IssuesModeTest.java | 72 - .../tests/performance/scanner/MemoryTest.java | 119 - .../scanner/ScannerPerformanceSuite.java | 61 - .../server/ComputeEnginePerfTest.java | 128 - .../performance/server/ServerPerfTest.java | 114 - .../server/ServerPerformanceSuite.java | 31 - .../sonarqube/tests/plugins/PluginsSuite.java | 31 - .../sonarqube/tests/plugins/PluginsTest.java | 180 - .../org/sonarqube/tests/plugins/Project.java | 50 - .../tests/plugins/VersionPluginTest.java | 56 - .../tests/plugins/checks/AbapCheck.java | 34 - .../tests/plugins/checks/CCheck.java | 34 - .../sonarqube/tests/plugins/checks/Check.java | 24 - .../tests/plugins/checks/CobolCheck.java | 34 - .../tests/plugins/checks/CppCheck.java | 34 - .../tests/plugins/checks/CssCheck.java | 33 - .../tests/plugins/checks/FlexCheck.java | 34 - .../tests/plugins/checks/GoCheck.java | 34 - .../tests/plugins/checks/GroovyCheck.java | 34 - .../tests/plugins/checks/JavaCheck.java | 34 - .../tests/plugins/checks/JavascriptCheck.java | 35 - .../tests/plugins/checks/PhpCheck.java | 34 - .../tests/plugins/checks/PliCheck.java | 34 - .../tests/plugins/checks/PlsqlCheck.java | 34 - .../tests/plugins/checks/PythonCheck.java | 46 - .../tests/plugins/checks/RpgCheck.java | 34 - .../tests/plugins/checks/SwiftCheck.java | 33 - .../tests/plugins/checks/Validation.java | 184 - .../tests/plugins/checks/VbCheck.java | 34 - .../tests/plugins/checks/WebCheck.java | 33 - .../project/OrganizationProjectSuite.java | 73 - .../tests/project/ProjectBadgesTest.java | 115 - .../project/ProjectBulkDeletionPageTest.java | 74 - .../project/ProjectBulkDeletionTest.java | 87 - .../tests/project/ProjectDeletionTest.java | 234 - .../tests/project/ProjectFilterTest.java | 303 - .../tests/project/ProjectInfoTest.java | 68 - .../project/ProjectKeyUpdatePageTest.java | 178 - .../tests/project/ProjectKeyUpdateTest.java | 397 - .../tests/project/ProjectLeakPageTest.java | 105 - .../tests/project/ProjectLinksTest.java | 154 - .../tests/project/ProjectListTest.java | 57 - .../project/ProjectProvisioningTest.java | 132 - .../tests/project/ProjectSearchTest.java | 125 - .../tests/project/ProjectSettingsTest.java | 118 - .../sonarqube/tests/project/ProjectSuite.java | 59 - .../project/ProjectVisibilityPageTest.java | 94 - .../project/ProjectsExplorePageTest.java | 168 - .../tests/project/ProjectsPageTest.java | 204 - .../project/SonarCloudProjectBadgesTest.java | 126 - ...tionQualityGateForSmallChangesetsTest.java | 156 - .../OrganizationQualityGateSuite.java | 52 - .../OrganizationQualityGateTest.java | 142 - .../OrganizationQualityGateUiTest.java | 128 - .../ProjectQualityGatePageTest.java | 125 - .../QualityGateNotificationTest.java | 134 - .../QualityGateOnRatingMeasuresTest.java | 94 - .../tests/qualityGate/QualityGateSuite.java | 53 - .../tests/qualityGate/QualityGateTest.java | 356 - .../tests/qualityGate/QualityGateUiTest.java | 152 - .../MaintainabilityMeasureTest.java | 109 - .../MaintainabilityRatingMeasureTest.java | 162 - .../qualityModel/NewDebtRatioMeasureTest.java | 132 - .../tests/qualityModel/QualityModelSuite.java | 51 - .../qualityModel/ReliabilityMeasureTest.java | 92 - .../qualityModel/SecurityMeasureTest.java | 91 - .../TechnicalDebtAndIssueNewMeasuresTest.java | 228 - .../TechnicalDebtInIssueChangelogTest.java | 75 - .../tests/qualityModel/TechnicalDebtTest.java | 64 - .../ActiveRuleEsResilienceTest.java | 109 - ...uiltInQualityProfilesNotificationTest.java | 234 - .../BuiltInQualityProfilesTest.java | 166 - .../CustomQualityProfilesTest.java | 325 - .../OrganizationQualityProfilesUiTest.java | 217 - ...luginWithoutBuiltinQualityProfileTest.java | 57 - .../qualityProfile/QualityProfileSuite.java | 37 - .../QualityProfileUpdateTest.java | 121 - .../QualityProfilesEditTest.java | 283 - .../qualityProfile/QualityProfilesUiTest.java | 193 - .../qualityProfile/QualityProfilesWsTest.java | 175 - .../tests/rule/RuleEsResilienceTest.java | 110 - .../tests/rule/RuleReKeyingTest.java | 252 - .../sonarqube/tests/rule/RuleTagsTest.java | 112 - .../tests/rule/RulesMarkdownTest.java | 78 - .../sonarqube/tests/rule/RulesPageTest.java | 368 - .../org/sonarqube/tests/rule/RulesWsTest.java | 103 - .../tests/serverSystem/BlueGreenTest.java | 171 - .../tests/serverSystem/HttpHeadersTest.java | 183 - .../tests/serverSystem/LogsTest.java | 148 - .../tests/serverSystem/PingTest.java | 42 - .../tests/serverSystem/RestartTest.java | 115 - .../ServerSystemRestartingOrchestrator.java | 108 - .../tests/serverSystem/ServerSystemTest.java | 124 - .../tests/serverSystem/SystemInfoTest.java | 121 - .../tests/serverSystem/SystemStateTest.java | 236 - .../settings/DeprecatedPropertiesWsTest.java | 420 - .../sonarqube/tests/settings/EmailsTest.java | 168 - .../tests/settings/PropertySetsTest.java | 150 - .../tests/settings/SettingsSuite.java | 41 - .../tests/settings/SettingsTest.java | 244 - .../SettingsTestRestartingOrchestrator.java | 116 - .../tests/settings/ValidatorsTest.java | 130 - .../sonarqube/tests/source/EncodingTest.java | 45 - .../org/sonarqube/tests/source/LineData.java | 58 - .../org/sonarqube/tests/source/NoScmTest.java | 148 - .../tests/source/NoScmThenScmTest.java | 180 - .../org/sonarqube/tests/source/ScmTest.java | 143 - .../tests/source/ScmThenNoScmTest.java | 146 - .../tests/source/SignificantCodeTest.java | 223 - .../sonarqube/tests/source/SourceScmWS.java | 51 - .../sonarqube/tests/source/SourceSuite.java | 48 - .../tests/source/SourceViewerTest.java | 76 - .../tests/startup/StartupIndexationTest.java | 139 - .../tests/telemetry/TelemetryOptOutTest.java | 70 - .../tests/telemetry/TelemetryUploadTest.java | 139 - .../sonarqube/tests/test/CoverageTest.java | 252 - .../tests/test/CoverageTrackingTest.java | 66 - .../sonarqube/tests/test/NewCoverageTest.java | 63 - .../tests/test/TestExecutionTest.java | 77 - .../org/sonarqube/tests/test/TestSuite.java | 45 - .../sonarqube/tests/ui/DocumentationTest.java | 60 - .../sonarqube/tests/ui/UiExtensionsTest.java | 114 - .../java/org/sonarqube/tests/ui/UiSuite.java | 46 - .../java/org/sonarqube/tests/ui/UiTest.java | 151 - .../tests/upgrade/ServerMigrationCall.java | 64 - .../upgrade/ServerMigrationResponse.java | 52 - .../tests/upgrade/ServerStatusCall.java | 46 - .../tests/upgrade/ServerStatusResponse.java | 48 - .../sonarqube/tests/upgrade/UpgradeSuite.java | 30 - .../sonarqube/tests/upgrade/UpgradeTest.java | 267 - .../tests/upgrade/WsCallAndWait.java | 102 - .../tests/user/BaseIdentityProviderTest.java | 418 - .../sonarqube/tests/user/FavoritesWsTest.java | 74 - .../tests/user/ForceAuthenticationTest.java | 131 - .../sonarqube/tests/user/HomepageTest.java | 93 - .../user/HttpHeadersAuthenticationTest.java | 192 - .../tests/user/LocalAuthenticationTest.java | 300 - .../tests/user/MyAccountPageTest.java | 130 - .../tests/user/NotificationsWsTest.java | 137 - .../user/OAuth2IdentityProviderTest.java | 314 - .../sonarqube/tests/user/OnboardingTest.java | 149 - .../OrganizationBaseIdentityProviderTest.java | 119 - .../tests/user/RealmAuthenticationTest.java | 360 - .../user/RootUserInStandaloneModeTest.java | 46 - .../tests/user/SonarCloudHomepageTest.java | 128 - .../user/SonarCloudNotificationsWsTest.java | 110 - .../SonarCloudOAuth2IdentityProviderTest.java | 116 - ...udUpdateLoginDuringAuthenticationTest.java | 463 - .../tests/user/SonarCloudUserSuite.java | 62 - .../tests/user/UserEsResilienceTest.java | 148 - .../org/sonarqube/tests/user/UserSuite.java | 65 - .../sonarqube/tests/user/UserTokensTest.java | 111 - .../sonarqube/tests/user/UsersPageTest.java | 99 - .../tests/webhook/ExternalServer.java | 110 - .../tests/webhook/PayloadRequest.java | 51 - .../tests/webhook/WebhooksPageTest.java | 168 - .../tests/webhook/WebhooksSuite.java | 48 - .../sonarqube/tests/webhook/WebhooksTest.java | 227 - .../sonarqube/tests/ws/WsLocalCallTest.java | 73 - .../java/org/sonarqube/tests/ws/WsTest.java | 62 - tests/src/test/java/util/ItUtils.java | 627 - tests/src/test/java/util/LoadedProfiles.java | 87 - tests/src/test/java/util/LoadedProjects.java | 82 - tests/src/test/java/util/Profile.java | 49 - tests/src/test/java/util/ProjectAnalysis.java | 51 - .../test/java/util/ProjectAnalysisRule.java | 220 - tests/src/test/java/util/ProjectState.java | 71 - tests/src/test/java/util/issue/IssueRule.java | 79 - .../selenium/ByCssSelectorOrByNameOrById.java | 107 - .../src/test/java/util/selenium/Consumer.java | 24 - .../java/util/selenium/ElementFilter.java | 68 - .../src/test/java/util/selenium/Failure.java | 49 - .../java/util/selenium/LazyDomElement.java | 174 - .../test/java/util/selenium/LazyShould.java | 190 - .../src/test/java/util/selenium/Optional.java | 57 - tests/src/test/java/util/selenium/Retry.java | 152 - .../src/test/java/util/selenium/Selenese.java | 91 - .../java/util/selenium/SeleneseRunner.java | 440 - tests/src/test/java/util/selenium/Text.java | 58 - .../java/util/selenium/WebElementHelper.java | 41 - .../test/java/util/user/GroupManagement.java | 49 - tests/src/test/java/util/user/Groups.java | 58 - tests/src/test/java/util/user/UserRule.java | 365 - tests/src/test/java/util/user/Users.java | 109 - .../analysis/BatchTest/one-issue-per-line.xml | 12 - .../IssueJsonReportTest/multiline.xml | 12 - .../no-server-analysis.json | 212 - .../one-issue-per-line.xml | 12 - .../report-on-root-module.json | 880 - .../report-on-single-module-branch.json | 255 - .../report-on-single-module.json | 255 - .../report-on-sub-module.json | 238 - .../analysis/IssuesModeTest/empty.xml | 7 - .../one-issue-per-line-empty.xml | 7 - .../IssuesModeTest/one-issue-per-line.xml | 12 - .../IssuesModeTest/with-many-rules.xml | 32 - .../one-issue-per-line-xoo2.xml | 12 - .../MultiLanguageTest/one-issue-per-line.xml | 12 - .../test/resources/analysis/SSLTest/README | 184 - .../analysis/SSLTest/clientkeystore.jks | Bin 2260 -> 0 bytes .../analysis/SSLTest/clienttruststore.jks | Bin 971 -> 0 bytes .../resources/analysis/SSLTest/openssl.cnf | 38 - .../analysis/SSLTest/serverkeystore.jks | Bin 2258 -> 0 bytes .../analysis/SSLTest/servertruststore.jks | Bin 1109 -> 0 bytes .../SettingsEncryptionTest/sonar-secret.txt | 1 - .../TempFolderTest/one-issue-per-line.xml | 12 - .../should-be-able-to-provision-project.html | 50 - ...ould-not-be-able-to-provision-project.html | 54 - .../normal-user.html | 64 - .../profile-admin.html | 79 - .../one-issue-per-line-profile.xml | 12 - .../dbCleaner/one-issue-per-line-profile.xml | 12 - .../duplications-with-deleted-project.html | 49 - ...duplications_on_removed_file-expected.json | 25 - .../cross-project-duplications-viewer.html | 59 - .../duplications_show-expected.json | 32 - .../sources_lines_duplication-expected.json | 184 - .../duplications_show-expected.json | 26 - .../sources_lines_duplication-expected.json | 359 - .../duplication/xoo-duplication-profile.xml | 12 - .../IssueExclusionsTest/with-many-rules.xml | 32 - .../i18n/default-locale-is-english.html | 34 - .../test/resources/i18n/french-locale.html | 34 - .../src/test/resources/i18n/french-pack.html | 29 - .../i18n/locale-with-france-country.html | 34 - .../i18n/locale-with-swiss-country.html | 34 - .../xoo-common-rules-profile.xml | 55 - .../issue/CustomRulesTest/custom.xml | 12 - .../issue/ExternalIssueTest/no-rules.xml | 6 - .../xoo-one-issue-per-line-profile.xml | 12 - .../one-issue-per-line-profile.xml | 12 - .../one-issue-per-line-profile.xml | 12 - .../profile.xml | 16 - .../no-rules.xml | 6 - .../one-rule.xml | 11 - .../override-profile-severity.xml | 11 - .../IssueCreationTest/with-custom-message.xml | 11 - .../xoo-with-many-rules.xml | 32 - .../xoo-common-rules-profile.xml | 55 - .../issue/IssueFilterTest/with-many-rules.xml | 43 - .../issue/IssuePurgeTest/with-many-rules.xml | 32 - .../one-issue-per-module-profile.xml | 12 - .../xoo-one-issue-per-line-profile.xml | 12 - .../issue/NewIssuesMeasureTest/profile1.xml | 27 - .../issue/NewIssuesMeasureTest/profile2.xml | 32 - .../resources/issue/issue-on-tag-foobar.xml | 18 - .../issue/one-issue-per-file-profile.xml | 12 - .../issue/one-issue-per-line-profile.xml | 12 - .../test/resources/issue/with-many-rules.xml | 42 - tests/src/test/resources/logback-test.xml | 27 - .../UpdateCenterTest/update-center.properties | 62 - .../one-bug-per-line-profile.xml | 12 - ...project_overview_after_first_analysis.html | 55 - .../resources/measure/one-issue-per-file.xml | 12 - .../measure/one-issue-per-line-profile.xml | 12 - .../resources/measure/one-issue-per-line.xml | 12 - .../test/resources/one-xoo-issue-per-line.xml | 12 - .../one-issue-per-file-profile.xml | 12 - .../should_copy.html | 105 - .../should_create.html | 105 - .../should_delete.html | 110 - .../should_display_changelog.html | 55 - .../should_display_list.html | 69 - .../should_display_profile_exporters.html | 50 - .../should_display_profile_inheritance.html | 60 - .../should_display_profile_rules.html | 45 - .../should_filter_by_language.html | 89 - .../should_open_from_list.html | 54 - .../should_rename.html | 105 - .../should_restore.html | 65 - .../should_set_default.html | 95 - ...filter_elements_on_project_level_page.html | 75 - .../project-deletion/project-deletion.html | 85 - ...ssions_page_shows_only_single_project.html | 71 - .../should-add-metrics.html | 39 - .../should-add-projects.html | 44 - .../should-display-basic-set-of-metrics.html | 24 - .../should-move-and-remove-metrics.html | 69 - .../should-move-and-remove-projects.html | 54 - .../should-not-add-differential-metrics.html | 44 - .../SearchProjectsTest/with-many-rules.xml | 43 - .../with-many-rules.xml | 42 - ...display-alerts-correctly-history-page.html | 94 - .../should_display_quality_gates_page.html | 59 - .../activate_notification_channels.html | 64 - .../notifications/email_configuration.html | 69 - .../resources/qualityModel/has-hello-tag.xml | 18 - .../qualityModel/one-day-debt-per-file.xml | 12 - .../qualityModel/one-issue-per-file.xml | 12 - .../qualityModel/one-issue-per-line.xml | 12 - .../qualityModel/with-many-rules.xml | 42 - .../qualityModel/without-type-bug.xml | 26 - .../qualityModel/without-type-code-smells.xml | 16 - .../without-type-vulnerability.xml | 26 - .../QualityProfilesUiTest/should_copy.html | 105 - .../QualityProfilesUiTest/should_create.html | 100 - .../QualityProfilesUiTest/should_delete.html | 105 - .../should_display_changelog.html | 55 - .../should_display_list.html | 74 - .../should_display_profile_exporters.html | 50 - .../should_display_profile_inheritance.html | 60 - .../should_display_profile_projects.html | 50 - .../should_display_profile_rules.html | 45 - .../should_filter_by_language.html | 89 - .../should_open_from_list.html | 54 - .../QualityProfilesUiTest/should_rename.html | 105 - .../QualityProfilesUiTest/should_restore.html | 60 - .../should_set_default.html | 90 - .../serverSystem/HttpsTest/keystore.jks | Bin 2236 -> 0 bytes .../serverSystem/HttpsTest/keystore.jks.txt | 3 - .../ServerSystemTest/derby-warning.html | 35 - .../ServerSystemTest/hide-jdbc-settings.html | 50 - .../incompatible-plugin-1.0.jar | Bin 2188 -> 0 bytes .../ServerSystemTest/url_ending_by_jsp.html | 42 - .../settings/SettingsTest/sonar-secret.txt | 1 - .../EncodingTest/japanese_sources.html | 39 - .../symbol-usages-highlighting.html | 49 - .../syntax-highlighting-v1.html | 55 - .../syntax-highlighting-v2.html | 54 - .../HighlightingTest/syntax-highlighting.html | 54 - .../CoverageTest/it_coverage-expected.json | 84 - .../unit_test_coverage-expected.json | 84 - ...t_test_coverage_no_condition-expected.json | 80 - .../ut_and_it_coverage-expected.json | 85 - .../covered_files-expected.json | 14 - .../CoverageTrackingTest/tests-expected.json | 30 - .../test/TestExecutionTest/expected.json | 31 - .../ui/UiExtensionsTest/static-files.html | 24 - .../allow_users_to_sign_up.html | 109 - .../force-authentication.html | 55 - .../login_successful.html | 69 - .../login_wrong_password.html | 45 - ..._be_unlogged_when_going_to_login_page.html | 64 - .../should_display_no_projects.html | 60 - .../should_display_projects.html | 85 - 1667 files changed, 2 insertions(+), 233909 deletions(-) delete mode 100644 tests/build.gradle delete mode 100644 tests/plugins/access-secured-props-plugin/build.gradle delete mode 100644 tests/plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsPlugin.java delete mode 100644 tests/plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsSensor.java delete mode 100644 tests/plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsTaskExtension.java delete mode 100644 tests/plugins/backdating-customplugin/build.gradle delete mode 100644 tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/BackdatingPlugin.java delete mode 100644 tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/package-info.java delete mode 100644 tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/rule/CustomRulesDefinition.java delete mode 100644 tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/rule/MyCustomProcessor.java delete mode 100644 tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/rule/package-info.java delete mode 100644 tests/plugins/backdating-plugin-v1/build.gradle delete mode 100644 tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/BackdatingPlugin.java delete mode 100644 tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/api/CustomProcessor.java delete mode 100644 tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/package-info.java delete mode 100644 tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/rule/BackRulesDefinition.java delete mode 100644 tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/rule/BackSensorV1.java delete mode 100644 tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/rule/package-info.java delete mode 100644 tests/plugins/backdating-plugin-v2/build.gradle delete mode 100644 tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/BackdatingPlugin.java delete mode 100644 tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/api/CustomProcessor.java delete mode 100644 tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/package-info.java delete mode 100644 tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/rule/BackRulesDefinition.java delete mode 100644 tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/rule/BackSensorV2.java delete mode 100644 tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/rule/package-info.java delete mode 100644 tests/plugins/base-auth-plugin/build.gradle delete mode 100644 tests/plugins/base-auth-plugin/src/main/java/FakeBaseAuthPlugin.java delete mode 100644 tests/plugins/base-auth-plugin/src/main/java/FakeBaseIdProvider.java delete mode 100644 tests/plugins/base-auth-plugin/src/main/resources/static/base.png delete mode 100644 tests/plugins/base-auth-plugin/src/resources/static/base.png delete mode 100644 tests/plugins/batch-plugin/build.gradle delete mode 100644 tests/plugins/batch-plugin/src/main/java/com/sonarsource/BatchPlugin.java delete mode 100644 tests/plugins/batch-plugin/src/main/java/com/sonarsource/DumpSettingsInitializer.java delete mode 100644 tests/plugins/batch-plugin/src/main/java/com/sonarsource/RaiseMessageException.java delete mode 100644 tests/plugins/batch-plugin/src/main/java/com/sonarsource/TempFolderExtension.java delete mode 100644 tests/plugins/batch-plugin/src/main/java/com/sonarsource/WaitingSensor.java delete mode 100644 tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleMeasureComputer.java delete mode 100644 tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleMetric.java delete mode 100644 tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleProperty.java delete mode 100644 tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleSensor.java delete mode 100644 tests/plugins/blue-green-plugin-v1/build.gradle delete mode 100644 tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/BlueGreenPlugin.java delete mode 100644 tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV1.java delete mode 100644 tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/MetricsDefinitionV1.java delete mode 100644 tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/PageDefinitionV1.java delete mode 100644 tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV1.java delete mode 100644 tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/SensorV1.java delete mode 100644 tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/package-info.java delete mode 100644 tests/plugins/blue-green-plugin-v1/src/main/resources/static/global_page.js delete mode 100644 tests/plugins/blue-green-plugin-v2/build.gradle delete mode 100644 tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/BlueGreenPlugin.java delete mode 100644 tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV2.java delete mode 100644 tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/MetricsDefinitionV2.java delete mode 100644 tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/PageDefinitionV2.java delete mode 100644 tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV2.java delete mode 100644 tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/SensorV2.java delete mode 100644 tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/package-info.java delete mode 100644 tests/plugins/blue-green-plugin-v2/src/main/resources/static/global_page.js delete mode 100644 tests/plugins/blue-green-plugin/build.gradle delete mode 100644 tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/BlueGreenPlugin.java delete mode 100644 tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV1.java delete mode 100644 tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV2.java delete mode 100644 tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RuleSensorV1.java delete mode 100644 tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RuleSensorV2.java delete mode 100644 tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV1.java delete mode 100644 tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV2.java delete mode 100644 tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/package-info.java delete mode 100644 tests/plugins/core-extension-fake-billing/build.gradle delete mode 100644 tests/plugins/core-extension-fake-billing/src/main/java/FakeBillingCoreExtension.java delete mode 100644 tests/plugins/core-extension-fake-billing/src/main/java/FakeBillingValidations.java delete mode 100644 tests/plugins/core-extension-fake-billing/src/main/resources/META-INF/services/org.sonar.core.extension.CoreExtension delete mode 100644 tests/plugins/core-extension-fake-billing/src/main/resources/org/sonar/l10n/billing.properties delete mode 100644 tests/plugins/core-extension-it-tests/build.gradle delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/ItTestsCoreExtension.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/ce/BombConfig.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/ce/ComponentBombReportAnalysisComponentProvider.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/ce/IseTaskProcessor.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/ce/OOMGenerator.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/ce/OkTaskProcessor.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/ce/OomTaskProcessor.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/ce/ws/BombActivatorAction.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/ce/ws/FakeGoVWsAction.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/ce/ws/FakeGovWs.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/ce/ws/SubmitAction.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/systemPasscode/SystemPasscodeWebService.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/workerCount/FakeWorkerCountProviderImpl.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/workerCount/RefreshWorkerCountAction.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/workerlatch/LatchControllerWorkerMeasureComputer.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/java/workerlatch/WorkerLatchMetrics.java delete mode 100644 tests/plugins/core-extension-it-tests/src/main/resources/META-INF/services/org.sonar.core.extension.CoreExtension delete mode 100644 tests/plugins/core-extension-it-tests/src/main/resources/org/sonar/l10n/billing.properties delete mode 100644 tests/plugins/extension-lifecycle-plugin/build.gradle delete mode 100644 tests/plugins/extension-lifecycle-plugin/src/main/java/BatchService.java delete mode 100644 tests/plugins/extension-lifecycle-plugin/src/main/java/ExtensionLifecyclePlugin.java delete mode 100644 tests/plugins/extension-lifecycle-plugin/src/main/java/ProjectService.java delete mode 100644 tests/plugins/extension-lifecycle-plugin/src/main/java/ServerService.java delete mode 100644 tests/plugins/foo-plugin-v1/build.gradle delete mode 100644 tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/Foo.java delete mode 100644 tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/FooPlugin.java delete mode 100644 tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/package-info.java delete mode 100644 tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/FooBasicProfile.java delete mode 100644 tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/FooRulesDefinition.java delete mode 100644 tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/RekeyingRulesSensor.java delete mode 100644 tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/package-info.java delete mode 100644 tests/plugins/foo-plugin-v2/build.gradle delete mode 100644 tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/Foo.java delete mode 100644 tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/FooPlugin.java delete mode 100644 tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/package-info.java delete mode 100644 tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/FooBasicProfile.java delete mode 100644 tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/FooRulesDefinition.java delete mode 100644 tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/RekeyingRulesSensor.java delete mode 100644 tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/package-info.java delete mode 100644 tests/plugins/foo-plugin-v3/build.gradle delete mode 100644 tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/Foo.java delete mode 100644 tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/FooPlugin.java delete mode 100644 tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/package-info.java delete mode 100644 tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/rule/FooBasicProfile.java delete mode 100644 tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/rule/FooRulesDefinition.java delete mode 100644 tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/rule/package-info.java delete mode 100644 tests/plugins/foo-plugin-without-qprofile/build.gradle delete mode 100644 tests/plugins/foo-plugin-without-qprofile/src/main/java/org/sonar/foo/Foo.java delete mode 100644 tests/plugins/foo-plugin-without-qprofile/src/main/java/org/sonar/foo/FooPlugin.java delete mode 100644 tests/plugins/foo-plugin-without-qprofile/src/main/java/org/sonar/foo/package-info.java delete mode 100644 tests/plugins/global-property-change-plugin/build.gradle delete mode 100644 tests/plugins/global-property-change-plugin/src/main/java/FakeGlobalPropertyChange.java delete mode 100644 tests/plugins/global-property-change-plugin/src/main/java/GlobalPropertyChangePlugin.java delete mode 100644 tests/plugins/issue-filter-plugin/build.gradle delete mode 100644 tests/plugins/issue-filter-plugin/src/main/java/IssueFilterBeforeLine5.java delete mode 100644 tests/plugins/issue-filter-plugin/src/main/java/IssueFilterPlugin.java delete mode 100644 tests/plugins/issue-filter-plugin/src/main/java/ModuleIssueFilter.java delete mode 100644 tests/plugins/l10n-fr-pack/build.gradle delete mode 100644 tests/plugins/l10n-fr-pack/src/main/java/SimpleFrenchPackPlugin.java delete mode 100644 tests/plugins/l10n-fr-pack/src/main/resources/org/sonar/l10n/core_fr.properties delete mode 100644 tests/plugins/license-plugin/build.gradle delete mode 100644 tests/plugins/license-plugin/src/main/java/LicensePlugin.java delete mode 100644 tests/plugins/oauth2-auth-plugin/build.gradle delete mode 100644 tests/plugins/oauth2-auth-plugin/src/main/java/FakeOAuth2AuthPlugin.java delete mode 100644 tests/plugins/oauth2-auth-plugin/src/main/java/FakeOAuth2IdProvider.java delete mode 100644 tests/plugins/oauth2-auth-plugin/src/main/resources/static/oauth2.png delete mode 100644 tests/plugins/posttask-plugin/build.gradle delete mode 100644 tests/plugins/posttask-plugin/src/main/java/AddScannerContextSensor.java delete mode 100644 tests/plugins/posttask-plugin/src/main/java/LogScannerContextPostTask.java delete mode 100644 tests/plugins/posttask-plugin/src/main/java/PostProjectAnalysisTaskImpl.java delete mode 100644 tests/plugins/posttask-plugin/src/main/java/PostTaskPlugin.java delete mode 100644 tests/plugins/project-builder-plugin/build.gradle delete mode 100644 tests/plugins/project-builder-plugin/src/main/java/CreateSubProjects.java delete mode 100644 tests/plugins/project-builder-plugin/src/main/java/ProjectBuilderPlugin.java delete mode 100644 tests/plugins/project-builder-plugin/src/main/java/RenameProject.java delete mode 100644 tests/plugins/property-relocation-plugin/build.gradle delete mode 100644 tests/plugins/property-relocation-plugin/src/main/java/CheckProperties.java delete mode 100644 tests/plugins/property-relocation-plugin/src/main/java/PropertyRelocationPlugin.java delete mode 100644 tests/plugins/property-sets-plugin/build.gradle delete mode 100644 tests/plugins/property-sets-plugin/src/main/java/PropertySetsPlugin.java delete mode 100644 tests/plugins/save-measure-on-project-plugin/build.gradle delete mode 100644 tests/plugins/save-measure-on-project-plugin/src/main/java/org/sonar/measure/ModuleMeasureSensor.java delete mode 100644 tests/plugins/save-measure-on-project-plugin/src/main/java/org/sonar/measure/SaveMeasureOnModulePlugin.java delete mode 100644 tests/plugins/security-plugin/build.gradle delete mode 100644 tests/plugins/security-plugin/src/main/java/FakeAuthenticator.java delete mode 100644 tests/plugins/security-plugin/src/main/java/FakeGroupsProvider.java delete mode 100644 tests/plugins/security-plugin/src/main/java/FakeRealm.java delete mode 100644 tests/plugins/security-plugin/src/main/java/FakeUsersProvider.java delete mode 100644 tests/plugins/security-plugin/src/main/java/SecurityPlugin.java delete mode 100644 tests/plugins/security-plugin/src/test/java/FakeAuthenticatorTest.java delete mode 100644 tests/plugins/server-plugin/build.gradle delete mode 100644 tests/plugins/server-plugin/src/main/java/ServerPlugin.java delete mode 100644 tests/plugins/server-plugin/src/main/java/ServerStartupLock.java delete mode 100644 tests/plugins/server-plugin/src/main/java/StartupCrash.java delete mode 100644 tests/plugins/server-plugin/src/main/java/TempFolderExtension.java delete mode 100644 tests/plugins/server-plugin/src/main/java/ce/CePauseStep.java delete mode 100644 tests/plugins/server-plugin/src/main/java/ce/PauseMetric.java delete mode 100644 tests/plugins/settings-encryption-plugin/build.gradle delete mode 100644 tests/plugins/settings-encryption-plugin/src/main/java/EncryptionVerifier.java delete mode 100644 tests/plugins/settings-encryption-plugin/src/main/java/SettingsEncryptionPlugin.java delete mode 100644 tests/plugins/settings-plugin/build.gradle delete mode 100644 tests/plugins/settings-plugin/src/main/java/PropertyTypes.java delete mode 100644 tests/plugins/settings-plugin/src/main/java/ServerExtensionWithProperties.java delete mode 100644 tests/plugins/settings-plugin/src/main/java/SettingsPlugin.java delete mode 100644 tests/plugins/sonar-fake-plugin/build.gradle delete mode 100644 tests/plugins/sonar-fake-plugin/src/main/java/FakePlugin.java delete mode 100644 tests/plugins/sonar-subcategories-plugin/build.gradle delete mode 100644 tests/plugins/sonar-subcategories-plugin/src/main/java/SubCategoriesPlugin.java delete mode 100644 tests/plugins/sonar-subcategories-plugin/src/main/resources/org/sonar/l10n/subcategories.properties delete mode 100644 tests/plugins/ui-extensions-plugin/build.gradle delete mode 100644 tests/plugins/ui-extensions-plugin/src/main/java/UiExtensionsPlugin.java delete mode 100644 tests/plugins/ui-extensions-plugin/src/main/java/UiPageDefinition.java delete mode 100644 tests/plugins/ui-extensions-plugin/src/main/resources/static/cute.jpg delete mode 100644 tests/plugins/ui-extensions-plugin/src/main/resources/static/extension.js delete mode 100644 tests/plugins/ui-extensions-plugin/src/main/resources/static/file.html delete mode 100644 tests/plugins/ui-extensions-plugin/src/main/resources/static/global_admin_page.js delete mode 100644 tests/plugins/ui-extensions-plugin/src/main/resources/static/global_page.js delete mode 100644 tests/plugins/ui-extensions-plugin/src/main/resources/static/organization_admin_page.js delete mode 100644 tests/plugins/ui-extensions-plugin/src/main/resources/static/organization_page.js delete mode 100644 tests/plugins/ui-extensions-plugin/src/main/resources/static/project_admin_page.js delete mode 100644 tests/plugins/ui-extensions-plugin/src/main/resources/static/project_page.js delete mode 100644 tests/plugins/wait-at-platform-level4-plugin/build.gradle delete mode 100644 tests/plugins/wait-at-platform-level4-plugin/src/main/java/WaitAtPlaformLevel4Plugin.java delete mode 100644 tests/plugins/wait-at-platform-level4-plugin/src/main/java/WaitAtPlatformLevel4.java delete mode 100644 tests/plugins/ws-plugin/build.gradle delete mode 100644 tests/plugins/ws-plugin/src/main/java/LocalCallWebService.java delete mode 100644 tests/plugins/ws-plugin/src/main/java/WsPlugin.java delete mode 100644 tests/projects/analysis/case-sensitive-file-extensions/sonar-project.properties delete mode 100644 tests/projects/analysis/case-sensitive-file-extensions/src/UPPER.XOO delete mode 100644 tests/projects/analysis/case-sensitive-file-extensions/src/UPPER.XOO.measures delete mode 100644 tests/projects/analysis/case-sensitive-file-extensions/src/lower.xoo delete mode 100644 tests/projects/analysis/case-sensitive-file-extensions/src/lower.xoo.measures delete mode 100644 tests/projects/analysis/custom-module-key/module_a/sonar-project.properties delete mode 100644 tests/projects/analysis/custom-module-key/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo delete mode 100644 tests/projects/analysis/custom-module-key/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures delete mode 100644 tests/projects/analysis/custom-module-key/module_b/sonar-project.properties delete mode 100644 tests/projects/analysis/custom-module-key/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo delete mode 100644 tests/projects/analysis/custom-module-key/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures delete mode 100644 tests/projects/analysis/custom-module-key/sonar-project.properties delete mode 100644 tests/projects/analysis/duplicate-source/sonar-project.properties delete mode 100644 tests/projects/analysis/duplicate-source/src/main/xoo/org/sonar/tests/ClassOne.xoo delete mode 100644 tests/projects/analysis/duplicate-source/src/main/xoo2/org/sonar/tests/ClassOne.xoo delete mode 100644 tests/projects/analysis/duplicate-source/src/test/xoo/org/sonar/tests/ClassOne.xoo delete mode 100644 tests/projects/analysis/extension-lifecycle/module_a/pom.xml delete mode 100644 tests/projects/analysis/extension-lifecycle/module_a/src/main/java/HelloA.java delete mode 100644 tests/projects/analysis/extension-lifecycle/module_b/pom.xml delete mode 100644 tests/projects/analysis/extension-lifecycle/module_b/src/main/java/HelloB.java delete mode 100644 tests/projects/analysis/extension-lifecycle/pom.xml delete mode 100644 tests/projects/analysis/links-project/pom.xml delete mode 100644 tests/projects/analysis/links-project/sonar-project.properties delete mode 100644 tests/projects/analysis/links-project/src/main/java/sample/Sample.java delete mode 100644 tests/projects/analysis/multi-languages/java-module/pom.xml delete mode 100644 tests/projects/analysis/multi-languages/java-module/src/main/java/HelloJava.java delete mode 100644 tests/projects/analysis/multi-languages/javascript-module/pom.xml delete mode 100644 tests/projects/analysis/multi-languages/javascript-module/src/Person.js delete mode 100644 tests/projects/analysis/multi-languages/pom.xml delete mode 100644 tests/projects/analysis/multi-languages/python-module/pom.xml delete mode 100644 tests/projects/analysis/multi-languages/python-module/src/__init__.py delete mode 100644 tests/projects/analysis/multi-languages/python-module/src/badfortune.py delete mode 100644 tests/projects/analysis/multi-languages/sonar-project.properties delete mode 100644 tests/projects/analysis/prevent-common-module/projectAB/module_a/sonar-project.properties delete mode 100644 tests/projects/analysis/prevent-common-module/projectAB/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo delete mode 100644 tests/projects/analysis/prevent-common-module/projectAB/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures delete mode 100644 tests/projects/analysis/prevent-common-module/projectAB/module_b/sonar-project.properties delete mode 100644 tests/projects/analysis/prevent-common-module/projectAB/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo delete mode 100644 tests/projects/analysis/prevent-common-module/projectAB/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures delete mode 100644 tests/projects/analysis/prevent-common-module/projectAB/sonar-project.properties delete mode 100644 tests/projects/analysis/prevent-common-module/projectAC/module_a/sonar-project.properties delete mode 100644 tests/projects/analysis/prevent-common-module/projectAC/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo delete mode 100644 tests/projects/analysis/prevent-common-module/projectAC/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures delete mode 100644 tests/projects/analysis/prevent-common-module/projectAC/module_c/sonar-project.properties delete mode 100644 tests/projects/analysis/prevent-common-module/projectAC/module_c/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo delete mode 100644 tests/projects/analysis/prevent-common-module/projectAC/module_c/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures delete mode 100644 tests/projects/analysis/prevent-common-module/projectAC/sonar-project.properties delete mode 100644 tests/projects/analysis/project-builder/module_a/src/HelloA.java delete mode 100644 tests/projects/analysis/project-builder/module_b/src/HelloB.java delete mode 100644 tests/projects/analysis/project-builder/module_b/src/IgnoredFile.java delete mode 100644 tests/projects/analysis/project-builder/pom.xml delete mode 100644 tests/projects/analysis/resilience/resilience-purge/sonar-project.properties delete mode 100644 tests/projects/analysis/resilience/resilience-purge/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/analysis/resilience/resilience-purge/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v1/sonar-project.properties delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v1/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v1/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v2/sonar-project.properties delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample2.xoo delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample2.xoo.measures delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample3.xoo delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample3.xoo.measures delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v3/sonar-project.properties delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample3.xoo delete mode 100644 tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample3.xoo.measures delete mode 100644 tests/projects/analysis/tracking/v1/sonar-project.properties delete mode 100644 tests/projects/analysis/tracking/v1/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/analysis/tracking/v1/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/analysis/tracking/v2/sonar-project.properties delete mode 100644 tests/projects/analysis/tracking/v2/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/analysis/tracking/v2/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/analysis/xoo-history-v2/sonar-project.properties delete mode 100644 tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo delete mode 100644 tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures delete mode 100644 tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo delete mode 100644 tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures delete mode 100644 tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo delete mode 100644 tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures delete mode 100644 tests/projects/analysis/xoo-module-b-without-source/module_a/sonar-project.properties delete mode 100644 tests/projects/analysis/xoo-module-b-without-source/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo delete mode 100644 tests/projects/analysis/xoo-module-b-without-source/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures delete mode 100644 tests/projects/analysis/xoo-module-b-without-source/module_b/sonar-project.properties delete mode 100644 tests/projects/analysis/xoo-module-b-without-source/sonar-project.properties delete mode 100644 tests/projects/analysis/xoo-multi-languages/sonar-project.properties delete mode 100644 tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo delete mode 100644 tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo.measures delete mode 100644 tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo2 delete mode 100644 tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo2.measures delete mode 100644 tests/projects/analysis/xoo-sample-with-spaces/v1/my sources/main/xoo/sample/My Sample.xoo delete mode 100644 tests/projects/analysis/xoo-sample-with-spaces/v1/my sources/main/xoo/sample/My Sample.xoo.measures delete mode 100644 tests/projects/analysis/xoo-sample-with-spaces/v1/sonar-project.properties delete mode 100644 tests/projects/analysis/xoo-sample-with-spaces/v2/my sources/main/xoo/sample/My Sample.xoo delete mode 100644 tests/projects/analysis/xoo-sample-with-spaces/v2/my sources/main/xoo/sample/My Sample.xoo.measures delete mode 100644 tests/projects/analysis/xoo-sample-with-spaces/v2/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/files/after/module_a/module_a1/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/files/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo delete mode 100644 tests/projects/dbCleaner/files/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo.measures delete mode 100644 tests/projects/dbCleaner/files/after/module_a/module_a2/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/files/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo delete mode 100644 tests/projects/dbCleaner/files/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures delete mode 100644 tests/projects/dbCleaner/files/after/module_a/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/files/after/module_b/module_b1/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/files/after/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo delete mode 100644 tests/projects/dbCleaner/files/after/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures delete mode 100644 tests/projects/dbCleaner/files/after/module_b/module_b2/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/files/after/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo delete mode 100644 tests/projects/dbCleaner/files/after/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures delete mode 100644 tests/projects/dbCleaner/files/after/module_b/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/files/after/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/files/before/module_a/module_a1/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/files/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo delete mode 100644 tests/projects/dbCleaner/files/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures delete mode 100644 tests/projects/dbCleaner/files/before/module_a/module_a2/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/files/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo delete mode 100644 tests/projects/dbCleaner/files/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures delete mode 100644 tests/projects/dbCleaner/files/before/module_a/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/files/before/module_b/module_b1/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/files/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo delete mode 100644 tests/projects/dbCleaner/files/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures delete mode 100644 tests/projects/dbCleaner/files/before/module_b/module_b2/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/files/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo delete mode 100644 tests/projects/dbCleaner/files/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures delete mode 100644 tests/projects/dbCleaner/files/before/module_b/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/files/before/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/modules/after/module_a/module_a1/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/modules/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo delete mode 100644 tests/projects/dbCleaner/modules/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures delete mode 100644 tests/projects/dbCleaner/modules/after/module_a/module_a2/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/modules/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo delete mode 100644 tests/projects/dbCleaner/modules/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures delete mode 100644 tests/projects/dbCleaner/modules/after/module_a/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/modules/after/module_c/module_c1/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/modules/after/module_c/module_c1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo delete mode 100644 tests/projects/dbCleaner/modules/after/module_c/module_c1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures delete mode 100644 tests/projects/dbCleaner/modules/after/module_c/module_c2/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/modules/after/module_c/module_c2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo delete mode 100644 tests/projects/dbCleaner/modules/after/module_c/module_c2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures delete mode 100644 tests/projects/dbCleaner/modules/after/module_c/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/modules/after/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/modules/before/module_a/module_a1/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/modules/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo delete mode 100644 tests/projects/dbCleaner/modules/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures delete mode 100644 tests/projects/dbCleaner/modules/before/module_a/module_a2/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/modules/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo delete mode 100644 tests/projects/dbCleaner/modules/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures delete mode 100644 tests/projects/dbCleaner/modules/before/module_a/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/modules/before/module_b/module_b1/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/modules/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo delete mode 100644 tests/projects/dbCleaner/modules/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures delete mode 100644 tests/projects/dbCleaner/modules/before/module_b/module_b2/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/modules/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo delete mode 100644 tests/projects/dbCleaner/modules/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures delete mode 100644 tests/projects/dbCleaner/modules/before/module_b/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/modules/before/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/sonar-project.properties delete mode 100644 tests/projects/dbCleaner/xoo-multi-modules-sample/sonar-project.properties delete mode 100644 tests/projects/duplications/cross-module/module1/sonar-project.properties delete mode 100644 tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File1.xoo delete mode 100644 tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File1.xoo.measures delete mode 100644 tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File2.xoo delete mode 100644 tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File2.xoo.measures delete mode 100644 tests/projects/duplications/cross-module/module2/sonar-project.properties delete mode 100644 tests/projects/duplications/cross-module/module2/src/main/xoo/sample/File1.xoo delete mode 100644 tests/projects/duplications/cross-module/module2/src/main/xoo/sample/File1.xoo.measures delete mode 100644 tests/projects/duplications/cross-module/sonar-project.properties delete mode 100644 tests/projects/duplications/cross-project/duplicate/sonar-project.properties delete mode 100644 tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File1.xoo delete mode 100644 tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File1.xoo.measures delete mode 100644 tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File2.xoo delete mode 100644 tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File2.xoo.measures delete mode 100644 tests/projects/duplications/cross-project/origin/sonar-project.properties delete mode 100644 tests/projects/duplications/cross-project/origin/src/main/xoo/sample/File1.xoo delete mode 100644 tests/projects/duplications/cross-project/origin/src/main/xoo/sample/File1.xoo.measures delete mode 100644 tests/projects/duplications/file-duplications/sonar-project.properties delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo.measures delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo.measures delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo.measures delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo.measures delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo delete mode 100644 tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo.measures delete mode 100644 tests/projects/duplications/new-duplications-v1/sonar-project.properties delete mode 100644 tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo delete mode 100644 tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures delete mode 100644 tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.scm delete mode 100644 tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo delete mode 100644 tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures delete mode 100644 tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.scm delete mode 100644 tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo delete mode 100644 tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures delete mode 100644 tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.scm delete mode 100644 tests/projects/duplications/new-duplications-v2/sonar-project.properties delete mode 100644 tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo delete mode 100644 tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures delete mode 100644 tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.scm delete mode 100644 tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo delete mode 100644 tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures delete mode 100644 tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.scm delete mode 100644 tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo delete mode 100644 tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures delete mode 100644 tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.scm delete mode 100644 tests/projects/exclusions/exclusions/sonar-project.properties delete mode 100644 tests/projects/exclusions/exclusions/src/main/xoo/FileOnRootFolder.xoo delete mode 100644 tests/projects/exclusions/exclusions/src/main/xoo/FileOnRootFolder.xoo.measures delete mode 100644 tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassOne.xoo delete mode 100644 tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassOne.xoo.measures delete mode 100644 tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToExclude.xoo delete mode 100644 tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToExclude.xoo.measures delete mode 100644 tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToIgnoreGlobally.xoo delete mode 100644 tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToIgnoreGlobally.xoo.measures delete mode 100644 tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassTwo.xoo delete mode 100644 tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassTwo.xoo.measures delete mode 100644 tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/NoSonarComment.xoo delete mode 100644 tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/NoSonarComment.xoo.measures delete mode 100644 tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/packageToExclude/ClassThree.xoo delete mode 100644 tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/packageToExclude/ClassThree.xoo.measures delete mode 100644 tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassOneTest.xoo delete mode 100644 tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassOneTest.xoo.measures delete mode 100644 tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassToExcludeTest.xoo delete mode 100644 tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassToExcludeTest.xoo.measures delete mode 100644 tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassTwoTest.xoo delete mode 100644 tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassTwoTest.xoo.measures delete mode 100644 tests/projects/exclusions/xoo-multi-modules/module_a/module_a1/sonar-project.properties delete mode 100644 tests/projects/exclusions/xoo-multi-modules/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo delete mode 100644 tests/projects/exclusions/xoo-multi-modules/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures delete mode 100644 tests/projects/exclusions/xoo-multi-modules/module_a/module_a2/sonar-project.properties delete mode 100644 tests/projects/exclusions/xoo-multi-modules/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo delete mode 100644 tests/projects/exclusions/xoo-multi-modules/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures delete mode 100644 tests/projects/exclusions/xoo-multi-modules/module_a/sonar-project.properties delete mode 100644 tests/projects/exclusions/xoo-multi-modules/module_b/module_b1/sonar-project.properties delete mode 100644 tests/projects/exclusions/xoo-multi-modules/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo delete mode 100644 tests/projects/exclusions/xoo-multi-modules/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures delete mode 100644 tests/projects/exclusions/xoo-multi-modules/module_b/module_b2/sonar-project.properties delete mode 100644 tests/projects/exclusions/xoo-multi-modules/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo delete mode 100644 tests/projects/exclusions/xoo-multi-modules/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures delete mode 100644 tests/projects/exclusions/xoo-multi-modules/module_b/sonar-project.properties delete mode 100644 tests/projects/exclusions/xoo-multi-modules/sonar-project.properties delete mode 100644 tests/projects/foo-sample/sonar-project.properties delete mode 100644 tests/projects/foo-sample/src/main/foo/sample/Sample.foo delete mode 100644 tests/projects/foo-sample/src/main/foo/sample/Sample2.foo delete mode 100644 tests/projects/highlighting/xoo-sample-with-highlighting-v1/sonar-project.properties delete mode 100644 tests/projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo.highlighting delete mode 100644 tests/projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/highlighting/xoo-sample-with-highlighting-v2/sonar-project.properties delete mode 100644 tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.highlighting delete mode 100644 tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.symbol delete mode 100644 tests/projects/issue/AutoAssignTest/sonar-project.properties delete mode 100644 tests/projects/issue/AutoAssignTest/src/sample.xoo delete mode 100644 tests/projects/issue/AutoAssignTest/src/sample.xoo.measures delete mode 100644 tests/projects/issue/AutoAssignTest/src/sample.xoo.scm delete mode 100644 tests/projects/issue/common-rules/sonar-project.properties delete mode 100644 tests/projects/issue/common-rules/src/Sample.xoo delete mode 100644 tests/projects/issue/common-rules/src/Sample.xoo.measures delete mode 100644 tests/projects/issue/common-rules/test/SampleTest.xoo delete mode 100644 tests/projects/issue/common-rules/test/SampleTest.xoo.measures delete mode 100644 tests/projects/issue/creationDatePluginChanged/sonar-project.properties delete mode 100644 tests/projects/issue/creationDatePluginChanged/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/issue/creationDatePluginChanged/src/main/xoo/sample/Sample.xoo.scm delete mode 100644 tests/projects/issue/creationDateSampleChanged/sonar-project.properties delete mode 100644 tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndModified.xoo delete mode 100644 tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndModified.xoo.scm delete mode 100644 tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndUnmodified.xoo delete mode 100644 tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndUnmodified.xoo.scm delete mode 100644 tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/OnlyInChanged.xoo delete mode 100644 tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/OnlyInChanged.xoo.scm delete mode 100644 tests/projects/issue/creationDateSampleInitial/sonar-project.properties delete mode 100644 tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndModified.xoo delete mode 100644 tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndModified.xoo.scm delete mode 100644 tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndUnmodified.xoo delete mode 100644 tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndUnmodified.xoo.scm delete mode 100644 tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/OnlyInInitial.xoo delete mode 100644 tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/OnlyInInitial.xoo.scm delete mode 100644 tests/projects/issue/workflow/sonar-project.properties delete mode 100644 tests/projects/issue/workflow/src/Sample.xoo delete mode 100644 tests/projects/issue/workflow/src/Sample.xoo.measures delete mode 100644 tests/projects/issue/xoo-sample-v2/sonar-project.properties delete mode 100644 tests/projects/issue/xoo-sample-v2/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/issue/xoo-sample-v2/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/issue/xoo-tracking-v1/sonar-project.properties delete mode 100644 tests/projects/issue/xoo-tracking-v1/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/issue/xoo-tracking-v1/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/issue/xoo-tracking-v2/sonar-project.properties delete mode 100644 tests/projects/issue/xoo-tracking-v2/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/issue/xoo-tracking-v2/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/issue/xoo-tracking-v3/sonar-project.properties delete mode 100644 tests/projects/issue/xoo-tracking-v3/src/main/xoo/sample/Sample2.xoo delete mode 100644 tests/projects/issue/xoo-tracking-v3/src/main/xoo/sample/Sample2.xoo.measures delete mode 100644 tests/projects/issue/xoo-with-scm/sonar-project.properties delete mode 100644 tests/projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo.scm delete mode 100644 tests/projects/measure/LiveMeasuresTest/sonar-project.properties delete mode 100644 tests/projects/measure/LiveMeasuresTest/src/file_with_one_line.xoo delete mode 100644 tests/projects/measure/LiveMeasuresTest/src/file_with_three_lines.xoo delete mode 100644 tests/projects/measure/xoo-history-v1/sonar-project.properties delete mode 100644 tests/projects/measure/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo delete mode 100644 tests/projects/measure/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures delete mode 100644 tests/projects/measure/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo delete mode 100644 tests/projects/measure/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures delete mode 100644 tests/projects/measure/xoo-history-v2/sonar-project.properties delete mode 100644 tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo delete mode 100644 tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures delete mode 100644 tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo delete mode 100644 tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures delete mode 100644 tests/projects/measure/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo delete mode 100644 tests/projects/measure/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures delete mode 100644 tests/projects/measure/xoo-new-debt-ratio-v1/sonar-project.properties delete mode 100644 tests/projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo.scm delete mode 100644 tests/projects/measure/xoo-new-debt-ratio-v2/sonar-project.properties delete mode 100644 tests/projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo.scm delete mode 100644 tests/projects/measure/xoo-new-debt-ratio-v3/sonar-project.properties delete mode 100644 tests/projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo.scm delete mode 100644 tests/projects/measureHistory/xoo-multi-files-sample/sonar-project.properties delete mode 100644 tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File1.xoo delete mode 100644 tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File1.xoo.measures delete mode 100644 tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File2.xoo delete mode 100644 tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File2.xoo.measures delete mode 100644 tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File3.xoo delete mode 100644 tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File3.xoo.measures delete mode 100644 tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File4.xoo delete mode 100644 tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File4.xoo.measures delete mode 100644 tests/projects/performance/huge-file/pom.xml delete mode 100644 tests/projects/performance/huge-file/src/main/java/huge/HugeFile.java delete mode 100644 tests/projects/performance/xoo-sample/sonar-project.properties delete mode 100644 tests/projects/performance/xoo-sample/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/performance/xoo-sample/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/performance/xoo-sample/src/test/xoo/sample/SampleTest.xoo delete mode 100644 tests/projects/performance/xoo-sample/src/test/xoo/sample/SampleTest.xoo.measures delete mode 100644 tests/projects/plugins/project/.gitignore delete mode 100644 tests/projects/plugins/project/build.sh delete mode 100755 tests/projects/plugins/project/ext/cobol/copybooks/Attr.cpy delete mode 100755 tests/projects/plugins/project/ext/cobol/copybooks/Custmas.cpy delete mode 100755 tests/projects/plugins/project/ext/cobol/copybooks/Errparm.cpy delete mode 100755 tests/projects/plugins/project/ext/cobol/copybooks/MNTSET2.CPY delete mode 100644 tests/projects/plugins/project/lib/c/mylib.h delete mode 100644 tests/projects/plugins/project/pom.xml delete mode 100644 tests/projects/plugins/project/sonar-project.properties delete mode 100644 tests/projects/plugins/project/src/abap/ZBCMKZ17.abap delete mode 100644 tests/projects/plugins/project/src/abap/ZZBGS106.abap delete mode 100644 tests/projects/plugins/project/src/c/main.c delete mode 100755 tests/projects/plugins/project/src/cobol/Custmnt2.cbl delete mode 100644 tests/projects/plugins/project/src/cobol/TC4E3H0.CBL delete mode 100644 tests/projects/plugins/project/src/cpp/BiggestUnInt.cc delete mode 100644 tests/projects/plugins/project/src/cpp/HelloWorld.cpp delete mode 100644 tests/projects/plugins/project/src/cpp/RandDemo.cc delete mode 100644 tests/projects/plugins/project/src/cpp/SimpleClass.cc delete mode 100644 tests/projects/plugins/project/src/cpp/main.c delete mode 100644 tests/projects/plugins/project/src/css/sample.css delete mode 100644 tests/projects/plugins/project/src/flex/Circle.as delete mode 100644 tests/projects/plugins/project/src/flex/HasIssues.as delete mode 100644 tests/projects/plugins/project/src/flex/UncoveredCircle.as delete mode 100644 tests/projects/plugins/project/src/go/sample.go delete mode 100644 tests/projects/plugins/project/src/groovy/example/Greeting.groovy delete mode 100644 tests/projects/plugins/project/src/groovy/innerclass/InnerClassExample.groovy delete mode 100644 tests/projects/plugins/project/src/java/foo/Foo.java delete mode 100644 tests/projects/plugins/project/src/java/foo/Simplest.java delete mode 100644 tests/projects/plugins/project/src/java/foo/Simplest2.java delete mode 100644 tests/projects/plugins/project/src/java/foo/Simplest3.java delete mode 100644 tests/projects/plugins/project/src/js/HasIssues.js delete mode 100644 tests/projects/plugins/project/src/js/Person.js delete mode 100644 tests/projects/plugins/project/src/js/com/company/Car.js delete mode 100644 tests/projects/plugins/project/src/js/com/company/Truck.js delete mode 100644 tests/projects/plugins/project/src/js/com/company/Vehicle.js delete mode 100644 tests/projects/plugins/project/src/php/Math.php delete mode 100644 tests/projects/plugins/project/src/pli/center.pli delete mode 100644 tests/projects/plugins/project/src/pli/chess.pli delete mode 100644 tests/projects/plugins/project/src/pli/hasissues.pli delete mode 100644 tests/projects/plugins/project/src/pli/maxlen.pli delete mode 100644 tests/projects/plugins/project/src/pli/search.pli delete mode 100644 tests/projects/plugins/project/src/plsql/ddl.sql delete mode 100644 tests/projects/plugins/project/src/plsql/has-issues.sql delete mode 100644 tests/projects/plugins/project/src/plsql/ut_report.pkb delete mode 100644 tests/projects/plugins/project/src/python/__init__.py delete mode 100644 tests/projects/plugins/project/src/python/badfortune.py delete mode 100644 tests/projects/plugins/project/src/python/directory/file_in_directory.py delete mode 100644 tests/projects/plugins/project/src/python/hasissues.py delete mode 100644 tests/projects/plugins/project/src/python/package/__init__.py delete mode 100644 tests/projects/plugins/project/src/python/package/file_in_package.py delete mode 100644 tests/projects/plugins/project/src/python/samples/__init__.py delete mode 100644 tests/projects/plugins/project/src/python/samples/fortune.py delete mode 100644 tests/projects/plugins/project/src/python/samples/letters.py delete mode 100644 tests/projects/plugins/project/src/python/samples/strfile.py delete mode 100644 tests/projects/plugins/project/src/rpg/MYPROGRAM.rpg delete mode 100644 tests/projects/plugins/project/src/swift/example.swift delete mode 100644 tests/projects/plugins/project/src/vb/Info.frm delete mode 100644 tests/projects/plugins/project/src/vb/Registry.bas delete mode 100644 tests/projects/plugins/project/src/vb/Registry.cls delete mode 100644 tests/projects/plugins/project/src/web/sample.xhtml delete mode 100644 tests/projects/plugins/project/target/classes/foo/Foo.class delete mode 100644 tests/projects/plugins/project/target/classes/foo/Simplest.class delete mode 100644 tests/projects/plugins/project/target/classes/foo/Simplest2.class delete mode 100644 tests/projects/plugins/project/target/classes/foo/Simplest3.class delete mode 100644 tests/projects/plugins/project/target/it-all-lang-1.0-SNAPSHOT.jar delete mode 100644 tests/projects/plugins/project/target/js/lcov.dat delete mode 100644 tests/projects/plugins/project/target/php/phpunit.coverage.xml delete mode 100644 tests/projects/plugins/project/target/php/phpunit.xml delete mode 100644 tests/projects/plugins/project/target/surefire-reports/TEST-foo.FooTest.xml delete mode 100644 tests/projects/plugins/project/target/surefire-reports/TEST-foo.SimplestTest.xml delete mode 100644 tests/projects/plugins/project/target/surefire-reports/foo.FooTest.txt delete mode 100644 tests/projects/plugins/project/target/surefire-reports/foo.SimplestTest.txt delete mode 100644 tests/projects/plugins/project/target/test-classes/foo/FooTest.class delete mode 100644 tests/projects/plugins/project/target/test-classes/foo/SimplestTest.class delete mode 100644 tests/projects/plugins/project/test/java/foo/FooTest.java delete mode 100644 tests/projects/plugins/project/test/java/foo/SimplestTest.java delete mode 100644 tests/projects/plugins/project/test/js/PersonTest.js delete mode 100644 tests/projects/plugins/project/test/js/com/company/CarTest.js delete mode 100644 tests/projects/plugins/project/test/php/SomeTest.php delete mode 100644 tests/projects/projectSearch/xoo-history-v1/sonar-project.properties delete mode 100644 tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo delete mode 100644 tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures delete mode 100644 tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo delete mode 100644 tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures delete mode 100644 tests/projects/projectSearch/xoo-history-v2/sonar-project.properties delete mode 100644 tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo delete mode 100644 tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures delete mode 100644 tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.scm delete mode 100644 tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo delete mode 100644 tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures delete mode 100644 tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.scm delete mode 100644 tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo delete mode 100644 tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures delete mode 100644 tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.scm delete mode 100644 tests/projects/qualitygate/small-changesets/v1-1000-lines/sonar-project.properties delete mode 100644 tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo delete mode 100644 tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo.coverage delete mode 100644 tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo.measures delete mode 100644 tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo.scm delete mode 100644 tests/projects/qualitygate/small-changesets/v2-1019-lines/sonar-project.properties delete mode 100644 tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo delete mode 100644 tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo.coverage delete mode 100644 tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo.measures delete mode 100644 tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo.scm delete mode 100644 tests/projects/qualitygate/small-changesets/v2-1020-lines/sonar-project.properties delete mode 100644 tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo delete mode 100644 tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo.coverage delete mode 100644 tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo.measures delete mode 100644 tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo.scm delete mode 100644 tests/projects/qualitygate/xoo-sample/sonar-project.properties delete mode 100644 tests/projects/qualitygate/xoo-sample/src/sample/Sample.xoo delete mode 100644 tests/projects/qualitygate/xoo-sample/src/sample/Sample.xoo.measures delete mode 100644 tests/projects/qualitygate/xoo-sample/src/sample/Sample2.xoo delete mode 100644 tests/projects/qualitygate/xoo-sample/src/sample/Sample2.xoo.measures delete mode 100644 tests/projects/scm/xoo-sample-with-scm/sonar-project.properties delete mode 100644 tests/projects/scm/xoo-sample-with-scm/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/scm/xoo-sample-with-scm/src/main/xoo/sample/Sample.xoo.scm delete mode 100644 tests/projects/scm/xoo-sample-with-then-without-scm/scm-repository.zip delete mode 100644 tests/projects/scm/xoo-sample-with-then-without-scm/sonar-project.properties delete mode 100644 tests/projects/scm/xoo-sample-with-then-without-scm/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/scm/xoo-sample-with-then-without-scm/src/main/xoo/sample/Sample.xoo.new delete mode 100644 tests/projects/scm/xoo-sample-without-scm/sonar-project.properties delete mode 100644 tests/projects/scm/xoo-sample-without-scm/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/scm/xoo-sample-without-scm/src/main/xoo/sample/Sample.xoo.new delete mode 100644 tests/projects/scm/xoo-sample-without-then-with-scm/scm-repository.zip delete mode 100644 tests/projects/scm/xoo-sample-without-then-with-scm/sonar-project.properties delete mode 100644 tests/projects/scm/xoo-sample-without-then-with-scm/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/scm/xoo-sample-without-then-with-scm/src/main/xoo/sample/Sample.xoo.new delete mode 100644 tests/projects/scm/xoo-sample-without-then-with-scm/src/main/xoo/sample/Sample.xoo.updated delete mode 100644 tests/projects/shared/multi-modules-sample/module_a/module_a1/pom.xml delete mode 100644 tests/projects/shared/multi-modules-sample/module_a/module_a1/src/main/java/com/sonar/it/samples/modules/a1/HelloA1.java delete mode 100644 tests/projects/shared/multi-modules-sample/module_a/module_a2/pom.xml delete mode 100644 tests/projects/shared/multi-modules-sample/module_a/module_a2/src/main/java/com/sonar/it/samples/modules/a2/HelloA2.java delete mode 100644 tests/projects/shared/multi-modules-sample/module_a/pom.xml delete mode 100644 tests/projects/shared/multi-modules-sample/module_b/module_b1/pom.xml delete mode 100644 tests/projects/shared/multi-modules-sample/module_b/module_b1/src/main/java/com/sonar/it/samples/modules/b1/HelloB1.java delete mode 100644 tests/projects/shared/multi-modules-sample/module_b/module_b2/pom.xml delete mode 100644 tests/projects/shared/multi-modules-sample/module_b/module_b2/src/main/java/com/sonar/it/samples/modules/b2/HelloB2.java delete mode 100644 tests/projects/shared/multi-modules-sample/module_b/pom.xml delete mode 100644 tests/projects/shared/multi-modules-sample/pom.xml delete mode 100644 tests/projects/shared/multi-modules-sample/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-history-v1/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo delete mode 100644 tests/projects/shared/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures delete mode 100644 tests/projects/shared/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo delete mode 100644 tests/projects/shared/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures delete mode 100644 tests/projects/shared/xoo-history-v2/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo delete mode 100644 tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures delete mode 100644 tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo delete mode 100644 tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures delete mode 100644 tests/projects/shared/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo delete mode 100644 tests/projects/shared/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/.scannerwork/.sonar_lock delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/.scannerwork/report-task.txt delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-multi-module-sample-without-project-name-version/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/module_a/module_a1/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/module_a/module_a2/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/module_a/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/module_b/module_b1/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/module_b/module_b2/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/module_b/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-multi-modules-sample/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-precise-issues/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-precise-issues/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/shared/xoo-sample-missing-some-lines/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-sample-missing-some-lines/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/shared/xoo-sample-missing-some-lines/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/shared/xoo-sample-module-move-v1/module_a/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-sample-module-move-v1/module_a/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/shared/xoo-sample-module-move-v1/module_a/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/shared/xoo-sample-module-move-v1/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-sample-module-move-v2/new_module/module_a/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-sample-module-move-v2/new_module/module_a/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/shared/xoo-sample-module-move-v2/new_module/module_a/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/shared/xoo-sample-module-move-v2/new_module/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-sample-module-move-v2/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-sample-non-associated/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/shared/xoo-sample-with-root-dir/Hello.xoo delete mode 100644 tests/projects/shared/xoo-sample-with-root-dir/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-sample-with-root-dir/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/shared/xoo-sample-with-root-dir/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/shared/xoo-sample-with-tests/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-sample-with-tests/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/shared/xoo-sample-with-tests/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/shared/xoo-sample-with-tests/src/test/xoo/sample/SampleTest.xoo delete mode 100644 tests/projects/shared/xoo-sample-with-tests/src/test/xoo/sample/SampleTest.xoo.measures delete mode 100644 tests/projects/shared/xoo-sample/externalIssues.json delete mode 100644 tests/projects/shared/xoo-sample/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-sample/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/shared/xoo-sample/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/shared/xoo-two-letters-named/sonar-project.properties delete mode 100644 tests/projects/shared/xoo-two-letters-named/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/shared/xoo-two-letters-named/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/shared/xoo2-sample/sonar-project.properties delete mode 100644 tests/projects/shared/xoo2-sample/src/main/xoo/sample/Sample.xoo2 delete mode 100644 tests/projects/shared/xoo2-sample/src/main/xoo/sample/Sample.xoo2.measures delete mode 100644 tests/projects/significantCode/sample-xoo/file.xoo delete mode 100644 tests/projects/significantCode/sample-xoo/file_additional_line.xoo delete mode 100644 tests/projects/significantCode/sample-xoo/file_changed.xoo delete mode 100644 tests/projects/sourceCode/japanese-charset/sonar-project.properties delete mode 100644 tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/App.xoo delete mode 100644 tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/App.xoo.measures delete mode 100644 tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppCpdBug.xoo delete mode 100644 tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppCpdBug.xoo.measures delete mode 100644 tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppDuplication.xoo delete mode 100644 tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppDuplication.xoo.measures delete mode 100644 tests/projects/struts-1.3.9-diet/core/pom.xml delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/Globals.java delete mode 100755 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/Action.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionErrors.java delete mode 100755 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionForm.java delete mode 100755 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionFormBean.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionForward.java delete mode 100755 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionMapping.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionMessage.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionMessages.java delete mode 100755 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionRedirect.java delete mode 100755 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionResources.properties delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionResources_ja.properties delete mode 100755 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionServlet.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionServletWrapper.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/DynaActionForm.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/DynaActionFormClass.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ExceptionHandler.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ForwardingActionForward.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/InvalidCancelException.java delete mode 100755 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/LocalStrings.properties delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/LocalStrings_ja.properties delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/PlugIn.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/RedirectingActionForward.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/RequestActionMapping.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/RequestProcessor.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/SessionActionMapping.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/doc-files/actionUML.gif delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/ComposableRequestProcessor.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/Constants.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractAuthorizeAction.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractCreateAction.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractExceptionHandler.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractExecuteAction.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractPerformForward.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractPerformInclude.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractRequestNoCache.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectAction.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectForward.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectInput.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectLocale.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectModule.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSetContentType.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSetOriginalURI.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractValidateActionForm.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ActionCommand.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ActionCommandBase.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/CreateActionForm.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ExceptionCatcher.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ExecuteCommand.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ExecuteForwardCommand.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/InvalidPathException.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/RemoveCachedMessages.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/SelectInclude.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/UnauthorizedActionException.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/generic/CopyFormToContext.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/generic/WrappingLookupCommand.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/generic/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/AuthorizeAction.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/CreateAction.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/ExceptionHandler.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/ExecuteAction.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/PerformForward.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/PerformInclude.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/PopulateActionForm.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/RequestNoCache.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectAction.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectForward.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectInput.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectLocale.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectModule.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SetContentType.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SetOriginalURI.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/ValidateActionForm.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/util/ClassUtils.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/util/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ActionContext.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ActionContextBase.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ContextWrapper.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/MockActionContext.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ServletActionContext.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/WebActionContext.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ActionConfig.java delete mode 100755 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ActionConfigMatcher.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/BaseConfig.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ConfigHelper.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ConfigHelperInterface.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ConfigRuleSet.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ControllerConfig.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ExceptionConfig.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/FormBeanConfig.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/FormPropertyConfig.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ForwardConfig.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/MessageResourcesConfig.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ModuleConfig.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ModuleConfigFactory.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/PlugInConfig.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/doc-files/configUML.gif delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/impl/DefaultModuleConfigFactory.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/impl/ModuleConfigImpl.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/impl/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/doc-files/Stamp.gif delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/doc-files/jakarta-feather-small.gif delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockAction.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockActionServlet.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockEnumeration.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockFormBean.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockHttpServletRequest.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockHttpServletResponse.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockHttpSession.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockMultipartRequestHandler.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockPageContext.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockPrincipal.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockServletConfig.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockServletContext.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/TestMockBase.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/CommonsMultipartRequestHandler.java delete mode 100755 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/FormFile.java delete mode 100755 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/MultipartRequestHandler.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/MultipartRequestWrapper.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/doc-files/uploadUML.jpg delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ImageButtonBean.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/IteratorAdapter.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/LabelValueBean.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/LocalStrings.properties delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/LocalStrings_ja.properties delete mode 100755 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/MessageResources.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/MessageResourcesFactory.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ModuleException.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ModuleUtils.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/PropertyMessageResources.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/PropertyMessageResourcesFactory.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/RequestUtils.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ResponseUtils.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ServletContextWriter.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/TokenProcessor.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/WildcardHelper.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/BeanValidatorForm.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/DynaValidatorForm.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/FieldChecks.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/LazyValidatorForm.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/LocalStrings.properties delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/Resources.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/ValidatorForm.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/ValidatorPlugIn.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/doc-files/validatorUML.jpg delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhen.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenLexer.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.g delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.txt delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/readme.txt delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/resources/LICENSE.txt delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/resources/NOTICE.txt delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/chain/chain-config.xml delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_0.dtd delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_1.dtd delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_2.dtd delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_3.dtd delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/web-app_2_3.dtd delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/validator/validator-rules-compressed.xml delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/validator/validator-rules.xml delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionMessage.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionMessages.java delete mode 100755 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionRedirect.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionServlet.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestDynaActionForm.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestDynaActionFormClass.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/generic/TestCopyFormToContext.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/generic/TestWrappingLookupCommand.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/servlet/TestAuthorizeAction.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/servlet/TestPerformForward.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/servlet/TestSetOriginalURI.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/CustomMappingTest.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestActionConfig.java delete mode 100755 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestActionConfigMatcher.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestFormBeanConfig.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestFormPropertyConfig.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestForwardConfig.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestModuleConfig.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config-1.1.xml delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config-custom-mapping-1.1.xml delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config-custom-mapping.xml delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config.xml delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo.properties delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_de.properties delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_de_DE.properties delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_en.properties delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_en_US.properties delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/TestPropertyMessageResources.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/TestRequestUtils.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/TestRequestUtilsPopulate.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/validator/PojoBean.java delete mode 100644 tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/validator/TestValidWhen.java delete mode 100644 tests/projects/struts-1.3.9-diet/pom.xml delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/pom.xml delete mode 100755 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/LocalStrings.properties delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/LocalStrings_ja.properties delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/TagUtils.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/CookieTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/CookieTei.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/DefineTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/DefineTei.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/HeaderTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/HeaderTei.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/IncludeTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/IncludeTei.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/LocalStrings.properties delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/LocalStrings_ja.properties delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/MessageTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/PageTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/PageTei.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ParameterTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ParameterTei.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ResourceTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ResourceTei.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/SizeTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/SizeTei.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/StrutsTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/StrutsTei.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/WriteTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/doc-files/beanUML.gif delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseFieldTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseHandlerTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseInputTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ButtonTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/CancelTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/CheckboxTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/Constants.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ErrorsTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/FileTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/FormTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/FrameTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/HiddenTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/HtmlTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ImageTag.java delete mode 100755 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ImgTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/JavascriptValidatorTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/LinkTag.java delete mode 100755 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/LocalStrings.properties delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/LocalStrings_ja.properties delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/MessagesTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/MessagesTei.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/MultiboxTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/OptionTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/OptionsCollectionTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/OptionsTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ParamTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/PasswordTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/RadioTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ResetTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/RewriteTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/SelectTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/SubmitTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/TextTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/TextareaTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/XhtmlTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/doc-files/htmlUML.gif delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/CompareTagBase.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/ConditionalTagBase.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/EmptyTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/EqualTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/ForwardTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/GreaterEqualTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/GreaterThanTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/IterateTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/IterateTei.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/LessEqualTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/LessThanTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/LocalStrings.properties delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/LocalStrings_ja.properties delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/MatchTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/MessagesNotPresentTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/MessagesPresentTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/NotEmptyTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/NotEqualTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/NotMatchTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/NotPresentTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/PresentTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/RedirectTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/doc-files/logicUML.gif delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/logic/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/NestedNameSupport.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/NestedParentSupport.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/NestedPropertyHelper.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/NestedPropertySupport.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/NestedPropertyTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/NestedReference.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/NestedRootTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/NestedTagSupport.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/NestedWriteNestingTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/NestedWriteNestingTei.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/bean/NestedDefineTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/bean/NestedDefineTei.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/bean/NestedMessageTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/bean/NestedSizeTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/bean/NestedWriteTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/bean/doc-files/nested-bean.gif delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/bean/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/doc-files/nestedUML.gif delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedCheckboxTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedErrorsTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedFileTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedFormTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedHiddenTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedImageTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedImgTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedLinkTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedMessagesTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedMultiboxTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedOptionsCollectionTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedOptionsTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedPasswordTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedRadioTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedSelectTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedSubmitTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedTextTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/NestedTextareaTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/doc-files/nested-html.gif delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/html/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedEmptyTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedEqualTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedGreaterEqualTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedGreaterThanTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedIterateTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedIterateTei.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedLessEqualTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedLessThanTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedMatchTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedMessagesNotPresentTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedMessagesPresentTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedNotEmptyTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedNotEqualTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedNotMatchTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedNotPresentTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/NestedPresentTag.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/doc-files/nested-logic.gif delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/logic/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/nested/package.html delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/resources/LICENSE.txt delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/resources/META-INF/tld/struts-bean.tld delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/resources/META-INF/tld/struts-html.tld delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/resources/META-INF/tld/struts-logic.tld delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/resources/META-INF/tld/struts-nested.tld delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/main/resources/NOTICE.txt delete mode 100755 tests/projects/struts-1.3.9-diet/taglib/src/test/java/org/apache/struts/taglib/TagTestBase.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/test/java/org/apache/struts/taglib/TestTagUtils.java delete mode 100644 tests/projects/struts-1.3.9-diet/taglib/src/test/java/org/apache/struts/taglib/html/TestHtmlTag.java delete mode 100755 tests/projects/struts-1.3.9-diet/taglib/src/test/java/org/apache/struts/taglib/sample.properties delete mode 100644 tests/projects/testing/README.txt delete mode 100644 tests/projects/testing/xoo-half-covered/pom.xml delete mode 100644 tests/projects/testing/xoo-half-covered/sonar-project.properties delete mode 100644 tests/projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/Covered.xoo delete mode 100644 tests/projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/Covered.xoo.coverage delete mode 100644 tests/projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/UnCovered.xoo delete mode 100644 tests/projects/testing/xoo-half-covered/src/main/xoo/org/sonar/tests/halfcovered/UnCovered.xoo.coverage delete mode 100644 tests/projects/testing/xoo-sample-it-coverage/sonar-project.properties delete mode 100644 tests/projects/testing/xoo-sample-it-coverage/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/testing/xoo-sample-it-coverage/src/main/xoo/sample/Sample.xoo.itcoverage delete mode 100644 tests/projects/testing/xoo-sample-new-coverage-v1/sonar-project.properties delete mode 100644 tests/projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.coverage delete mode 100644 tests/projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.itcoverage delete mode 100644 tests/projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.overallcoverage delete mode 100644 tests/projects/testing/xoo-sample-new-coverage-v1/src/main/xoo/sample/Sample.xoo.scm delete mode 100644 tests/projects/testing/xoo-sample-new-coverage-v2/sonar-project.properties delete mode 100644 tests/projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.coverage delete mode 100644 tests/projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.itcoverage delete mode 100644 tests/projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.measures delete mode 100644 tests/projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.overallcoverage delete mode 100644 tests/projects/testing/xoo-sample-new-coverage-v2/src/main/xoo/sample/Sample.xoo.scm delete mode 100644 tests/projects/testing/xoo-sample-overall-coverage/sonar-project.properties delete mode 100644 tests/projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo.coverage delete mode 100644 tests/projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo.itcoverage delete mode 100644 tests/projects/testing/xoo-sample-overall-coverage/src/main/xoo/sample/Sample.xoo.overallcoverage delete mode 100644 tests/projects/testing/xoo-sample-ut-coverage-no-condition/sonar-project.properties delete mode 100644 tests/projects/testing/xoo-sample-ut-coverage-no-condition/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/testing/xoo-sample-ut-coverage-no-condition/src/main/xoo/sample/Sample.xoo.coverage delete mode 100644 tests/projects/testing/xoo-sample-ut-coverage/sonar-project.properties delete mode 100644 tests/projects/testing/xoo-sample-ut-coverage/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/testing/xoo-sample-ut-coverage/src/main/xoo/sample/Sample.xoo.coverage delete mode 100644 tests/projects/testing/xoo-sample-with-coverage-per-test/sonar-project.properties delete mode 100644 tests/projects/testing/xoo-sample-with-coverage-per-test/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/testing/xoo-sample-with-coverage-per-test/src/main/xoo/sample/Sample2.xoo delete mode 100644 tests/projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/Sample2Test.xoo delete mode 100644 tests/projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/Sample2Test.xoo.test delete mode 100644 tests/projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/Sample2Test.xoo.testcoverage delete mode 100644 tests/projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/SampleTest.xoo delete mode 100644 tests/projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/SampleTest.xoo.test delete mode 100644 tests/projects/testing/xoo-sample-with-coverage-per-test/src/test/xoo/sample/SampleTest.xoo.testcoverage delete mode 100644 tests/projects/testing/xoo-sample-with-tests-execution-details/sonar-project.properties delete mode 100644 tests/projects/testing/xoo-sample-with-tests-execution-details/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/testing/xoo-sample-with-tests-execution-details/src/test/xoo/sample/SampleTest.xoo delete mode 100644 tests/projects/testing/xoo-sample-with-tests-execution-details/src/test/xoo/sample/SampleTest.xoo.test delete mode 100644 tests/projects/testing/xoo-sample-with-tests-execution-measures/sonar-project.properties delete mode 100644 tests/projects/testing/xoo-sample-with-tests-execution-measures/src/main/xoo/sample/Sample.xoo delete mode 100644 tests/projects/testing/xoo-sample-with-tests-execution-measures/src/test/xoo/sample/SampleTest.xoo delete mode 100644 tests/projects/testing/xoo-sample-with-tests-execution-measures/src/test/xoo/sample/SampleTest.xoo.measures delete mode 100644 tests/resilience/active_rule_indexer.btm delete mode 100644 tests/resilience/exception_on_listener.btm delete mode 100644 tests/resilience/making_ce_indexation_failing.btm delete mode 100644 tests/resilience/rule_indexer.btm delete mode 100644 tests/resilience/user_indexer.btm delete mode 100644 tests/src/test/java/org/sonarqube/tests/Byteman.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/Category1Suite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/Category3Suite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/Category4Suite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/Category5Suite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/Category6Suite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/ExtensionLifecycleTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/FavoriteTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/FileExclusionsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/IssueExclusionsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/IssueJsonReportTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/IssuesModeTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/LinksTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/MultiLanguageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/PermissionTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/ProjectBuilderTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/ProjectMeasureTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/RedirectTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/ReportDumpTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/SSLTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/ScannerTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/SettingsEncryptionTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/analysis/TempFolderTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/authorization/AuthorizationSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/authorization/ExecuteAnalysisPermissionTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/authorization/IssuePermissionTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/authorization/PermissionSearchTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/authorization/PermissionTemplatePageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/authorization/PermissionTemplateTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/authorization/ProjectPermissionsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/authorization/ProvisioningPermissionTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/authorization/QualityProfileAdminPermissionTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/authorization/SystemPasscodeTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/ce/BackgroundTasksTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/ce/CeShutdownTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/ce/CeTempDirTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/ce/CeWorkersPauseTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/ce/CeWorkersTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/ce/CeWsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/ce/ReportFailureNotificationTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/component/BranchTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/component/CodePageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/component/ComponentSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/component/ComponentsWsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/component/ModuleTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/duplication/CrossModuleDuplicationsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/duplication/CrossProjectDuplicationsOnRemoveFileTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/duplication/CrossProjectDuplicationsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/duplication/DuplicationSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/duplication/DuplicationsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/duplication/NewDuplicationsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/AbstractIssueTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/AutoAssignTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/CommonRulesTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/CustomRulesTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/ExternalIssueSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/ExternalIssueTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueActionTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueBulkChangeTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueChangelogTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueCreationDatePluginChangedTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueCreationDateQPChangedTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueCreationTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueFilterExtensionTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueFilterOnCommonRulesTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueFilterTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueMeasureTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueNotificationsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssuePurgeTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueSearchTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueTagsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueTrackingTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssueWorkflowTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/IssuesPageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/NewIssuesMeasureTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssueAssignTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssueSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssuesPageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/lite/LiteSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/lite/LiteTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/marketplace/UpdateCenterTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/measure/ComplexityMeasuresTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/measure/CustomMeasuresTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/measure/DecimalScaleMetricTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/measure/DifferentialPeriodsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/measure/LiveMeasuresTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/measure/MeasureSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/measure/MeasuresWsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/measure/ProjectActivityPageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/measure/ProjectDashboardTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/measure/ProjectMeasuresPageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/measure/SincePreviousVersionHistoryTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/measure/SinceXDaysHistoryTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/measure/TimeMachineTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/organization/BillingTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipUiTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/organization/OrganizationSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/organization/OrganizationTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/organization/OrganizationWebExtensionsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/organization/PersonalOrganizationTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/organization/RootUserTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/AbstractPerfTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/MavenLogs.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/MavenLogsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/PerfRule.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/ServerLogs.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/ServerLogsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/scanner/BootstrappingTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/scanner/DuplicationTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/scanner/FileSystemTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/scanner/HighlightingTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/scanner/IssuesModeTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/scanner/MemoryTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/scanner/ScannerPerformanceSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/server/ComputeEnginePerfTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/server/ServerPerfTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/performance/server/ServerPerformanceSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/PluginsSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/PluginsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/Project.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/VersionPluginTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/AbapCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/CCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/Check.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/CobolCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/CppCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/CssCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/FlexCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/GoCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/GroovyCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/JavaCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/JavascriptCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/PhpCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/PliCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/PlsqlCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/PythonCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/RpgCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/SwiftCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/Validation.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/VbCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/plugins/checks/WebCheck.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/OrganizationProjectSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectBadgesTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectBulkDeletionPageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectBulkDeletionTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectDeletionTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectFilterTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectInfoTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectKeyUpdatePageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectKeyUpdateTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectLeakPageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectLinksTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectListTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectProvisioningTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectSearchTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectSettingsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectVisibilityPageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectsExplorePageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/ProjectsPageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/project/SonarCloudProjectBadgesTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateForSmallChangesetsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateUiTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityGate/ProjectQualityGatePageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateNotificationTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateOnRatingMeasuresTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateUiTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityModel/MaintainabilityMeasureTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityModel/MaintainabilityRatingMeasureTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityModel/NewDebtRatioMeasureTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityModel/QualityModelSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityModel/ReliabilityMeasureTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityModel/SecurityMeasureTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityModel/TechnicalDebtAndIssueNewMeasuresTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityModel/TechnicalDebtInIssueChangelogTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityModel/TechnicalDebtTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityProfile/ActiveRuleEsResilienceTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityProfile/BuiltInQualityProfilesNotificationTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityProfile/BuiltInQualityProfilesTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityProfile/CustomQualityProfilesTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityProfile/OrganizationQualityProfilesUiTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityProfile/PluginWithoutBuiltinQualityProfileTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfileSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfileUpdateTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesEditTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesUiTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesWsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/rule/RuleEsResilienceTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/rule/RuleReKeyingTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/rule/RuleTagsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/rule/RulesMarkdownTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/rule/RulesPageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/rule/RulesWsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/serverSystem/BlueGreenTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/serverSystem/HttpHeadersTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/serverSystem/LogsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/serverSystem/PingTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/serverSystem/RestartTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/serverSystem/ServerSystemRestartingOrchestrator.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/serverSystem/ServerSystemTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/serverSystem/SystemInfoTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/serverSystem/SystemStateTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/settings/DeprecatedPropertiesWsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/settings/EmailsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/settings/PropertySetsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/settings/SettingsSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/settings/SettingsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/settings/SettingsTestRestartingOrchestrator.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/settings/ValidatorsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/source/EncodingTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/source/LineData.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/source/NoScmTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/source/NoScmThenScmTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/source/ScmTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/source/ScmThenNoScmTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/source/SignificantCodeTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/source/SourceScmWS.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/source/SourceSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/source/SourceViewerTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/startup/StartupIndexationTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/telemetry/TelemetryOptOutTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/telemetry/TelemetryUploadTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/test/CoverageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/test/CoverageTrackingTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/test/NewCoverageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/test/TestExecutionTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/test/TestSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/ui/DocumentationTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/ui/UiExtensionsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/ui/UiSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/ui/UiTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/upgrade/ServerMigrationCall.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/upgrade/ServerMigrationResponse.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/upgrade/ServerStatusCall.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/upgrade/ServerStatusResponse.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/upgrade/UpgradeSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/upgrade/UpgradeTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/upgrade/WsCallAndWait.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/BaseIdentityProviderTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/FavoritesWsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/ForceAuthenticationTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/HomepageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/HttpHeadersAuthenticationTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/LocalAuthenticationTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/MyAccountPageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/NotificationsWsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/OAuth2IdentityProviderTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/OnboardingTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/OrganizationBaseIdentityProviderTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/RealmAuthenticationTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/RootUserInStandaloneModeTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/SonarCloudHomepageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/SonarCloudNotificationsWsTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/SonarCloudOAuth2IdentityProviderTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/SonarCloudUpdateLoginDuringAuthenticationTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/SonarCloudUserSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/UserEsResilienceTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/UserSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/UserTokensTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/user/UsersPageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/webhook/ExternalServer.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/webhook/PayloadRequest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/webhook/WebhooksPageTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/webhook/WebhooksSuite.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/webhook/WebhooksTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/ws/WsLocalCallTest.java delete mode 100644 tests/src/test/java/org/sonarqube/tests/ws/WsTest.java delete mode 100644 tests/src/test/java/util/ItUtils.java delete mode 100644 tests/src/test/java/util/LoadedProfiles.java delete mode 100644 tests/src/test/java/util/LoadedProjects.java delete mode 100644 tests/src/test/java/util/Profile.java delete mode 100644 tests/src/test/java/util/ProjectAnalysis.java delete mode 100644 tests/src/test/java/util/ProjectAnalysisRule.java delete mode 100644 tests/src/test/java/util/ProjectState.java delete mode 100644 tests/src/test/java/util/issue/IssueRule.java delete mode 100644 tests/src/test/java/util/selenium/ByCssSelectorOrByNameOrById.java delete mode 100644 tests/src/test/java/util/selenium/Consumer.java delete mode 100644 tests/src/test/java/util/selenium/ElementFilter.java delete mode 100644 tests/src/test/java/util/selenium/Failure.java delete mode 100644 tests/src/test/java/util/selenium/LazyDomElement.java delete mode 100644 tests/src/test/java/util/selenium/LazyShould.java delete mode 100644 tests/src/test/java/util/selenium/Optional.java delete mode 100644 tests/src/test/java/util/selenium/Retry.java delete mode 100644 tests/src/test/java/util/selenium/Selenese.java delete mode 100644 tests/src/test/java/util/selenium/SeleneseRunner.java delete mode 100644 tests/src/test/java/util/selenium/Text.java delete mode 100644 tests/src/test/java/util/selenium/WebElementHelper.java delete mode 100644 tests/src/test/java/util/user/GroupManagement.java delete mode 100644 tests/src/test/java/util/user/Groups.java delete mode 100644 tests/src/test/java/util/user/UserRule.java delete mode 100644 tests/src/test/java/util/user/Users.java delete mode 100644 tests/src/test/resources/analysis/BatchTest/one-issue-per-line.xml delete mode 100644 tests/src/test/resources/analysis/IssueJsonReportTest/multiline.xml delete mode 100644 tests/src/test/resources/analysis/IssueJsonReportTest/no-server-analysis.json delete mode 100644 tests/src/test/resources/analysis/IssueJsonReportTest/one-issue-per-line.xml delete mode 100644 tests/src/test/resources/analysis/IssueJsonReportTest/report-on-root-module.json delete mode 100644 tests/src/test/resources/analysis/IssueJsonReportTest/report-on-single-module-branch.json delete mode 100644 tests/src/test/resources/analysis/IssueJsonReportTest/report-on-single-module.json delete mode 100644 tests/src/test/resources/analysis/IssueJsonReportTest/report-on-sub-module.json delete mode 100644 tests/src/test/resources/analysis/IssuesModeTest/empty.xml delete mode 100644 tests/src/test/resources/analysis/IssuesModeTest/one-issue-per-line-empty.xml delete mode 100644 tests/src/test/resources/analysis/IssuesModeTest/one-issue-per-line.xml delete mode 100644 tests/src/test/resources/analysis/IssuesModeTest/with-many-rules.xml delete mode 100644 tests/src/test/resources/analysis/MultiLanguageTest/one-issue-per-line-xoo2.xml delete mode 100644 tests/src/test/resources/analysis/MultiLanguageTest/one-issue-per-line.xml delete mode 100644 tests/src/test/resources/analysis/SSLTest/README delete mode 100644 tests/src/test/resources/analysis/SSLTest/clientkeystore.jks delete mode 100644 tests/src/test/resources/analysis/SSLTest/clienttruststore.jks delete mode 100644 tests/src/test/resources/analysis/SSLTest/openssl.cnf delete mode 100644 tests/src/test/resources/analysis/SSLTest/serverkeystore.jks delete mode 100644 tests/src/test/resources/analysis/SSLTest/servertruststore.jks delete mode 100644 tests/src/test/resources/analysis/SettingsEncryptionTest/sonar-secret.txt delete mode 100644 tests/src/test/resources/analysis/TempFolderTest/one-issue-per-line.xml delete mode 100644 tests/src/test/resources/authorisation/ProvisioningPermissionTest/should-be-able-to-provision-project.html delete mode 100644 tests/src/test/resources/authorisation/ProvisioningPermissionTest/should-not-be-able-to-provision-project.html delete mode 100644 tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/normal-user.html delete mode 100644 tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/profile-admin.html delete mode 100644 tests/src/test/resources/authorisation/one-issue-per-line-profile.xml delete mode 100644 tests/src/test/resources/dbCleaner/one-issue-per-line-profile.xml delete mode 100644 tests/src/test/resources/duplication/CrossProjectDuplicationsOnRemoveFileTest/duplications-with-deleted-project.html delete mode 100644 tests/src/test/resources/duplication/CrossProjectDuplicationsOnRemoveFileTest/duplications_on_removed_file-expected.json delete mode 100644 tests/src/test/resources/duplication/CrossProjectDuplicationsTest/cross-project-duplications-viewer.html delete mode 100644 tests/src/test/resources/duplication/CrossProjectDuplicationsTest/duplications_show-expected.json delete mode 100644 tests/src/test/resources/duplication/CrossProjectDuplicationsTest/sources_lines_duplication-expected.json delete mode 100644 tests/src/test/resources/duplication/DuplicationsTest/duplications_show-expected.json delete mode 100644 tests/src/test/resources/duplication/DuplicationsTest/sources_lines_duplication-expected.json delete mode 100644 tests/src/test/resources/duplication/xoo-duplication-profile.xml delete mode 100644 tests/src/test/resources/exclusions/IssueExclusionsTest/with-many-rules.xml delete mode 100644 tests/src/test/resources/i18n/default-locale-is-english.html delete mode 100644 tests/src/test/resources/i18n/french-locale.html delete mode 100644 tests/src/test/resources/i18n/french-pack.html delete mode 100644 tests/src/test/resources/i18n/locale-with-france-country.html delete mode 100644 tests/src/test/resources/i18n/locale-with-swiss-country.html delete mode 100644 tests/src/test/resources/issue/CommonRulesTest/xoo-common-rules-profile.xml delete mode 100644 tests/src/test/resources/issue/CustomRulesTest/custom.xml delete mode 100644 tests/src/test/resources/issue/ExternalIssueTest/no-rules.xml delete mode 100644 tests/src/test/resources/issue/IssueActionTest/xoo-one-issue-per-line-profile.xml delete mode 100644 tests/src/test/resources/issue/IssueBulkChangeTest/one-issue-per-line-profile.xml delete mode 100644 tests/src/test/resources/issue/IssueChangelogTest/one-issue-per-line-profile.xml delete mode 100644 tests/src/test/resources/issue/IssueCreationDatePluginChangedTest/profile.xml delete mode 100644 tests/src/test/resources/issue/IssueCreationDateQPChangedTest/no-rules.xml delete mode 100644 tests/src/test/resources/issue/IssueCreationDateQPChangedTest/one-rule.xml delete mode 100644 tests/src/test/resources/issue/IssueCreationTest/override-profile-severity.xml delete mode 100644 tests/src/test/resources/issue/IssueCreationTest/with-custom-message.xml delete mode 100644 tests/src/test/resources/issue/IssueFilterExtensionTest/xoo-with-many-rules.xml delete mode 100644 tests/src/test/resources/issue/IssueFilterOnCommonRulesTest/xoo-common-rules-profile.xml delete mode 100644 tests/src/test/resources/issue/IssueFilterTest/with-many-rules.xml delete mode 100644 tests/src/test/resources/issue/IssuePurgeTest/with-many-rules.xml delete mode 100644 tests/src/test/resources/issue/IssueTrackingTest/one-issue-per-module-profile.xml delete mode 100644 tests/src/test/resources/issue/IssueWorkflowTest/xoo-one-issue-per-line-profile.xml delete mode 100644 tests/src/test/resources/issue/NewIssuesMeasureTest/profile1.xml delete mode 100644 tests/src/test/resources/issue/NewIssuesMeasureTest/profile2.xml delete mode 100644 tests/src/test/resources/issue/issue-on-tag-foobar.xml delete mode 100644 tests/src/test/resources/issue/one-issue-per-file-profile.xml delete mode 100644 tests/src/test/resources/issue/one-issue-per-line-profile.xml delete mode 100644 tests/src/test/resources/issue/with-many-rules.xml delete mode 100644 tests/src/test/resources/logback-test.xml delete mode 100644 tests/src/test/resources/marketplace/UpdateCenterTest/update-center.properties delete mode 100644 tests/src/test/resources/measure/LiveMeasuresTest/one-bug-per-line-profile.xml delete mode 100644 tests/src/test/resources/measure/ProjectDashboardTest/test_project_overview_after_first_analysis.html delete mode 100644 tests/src/test/resources/measure/one-issue-per-file.xml delete mode 100644 tests/src/test/resources/measure/one-issue-per-line-profile.xml delete mode 100644 tests/src/test/resources/measure/one-issue-per-line.xml delete mode 100644 tests/src/test/resources/one-xoo-issue-per-line.xml delete mode 100644 tests/src/test/resources/organization/IssueAssignTest/one-issue-per-file-profile.xml delete mode 100644 tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_copy.html delete mode 100644 tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_create.html delete mode 100644 tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_delete.html delete mode 100644 tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_changelog.html delete mode 100644 tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_list.html delete mode 100644 tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_exporters.html delete mode 100644 tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_inheritance.html delete mode 100644 tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_display_profile_rules.html delete mode 100644 tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_filter_by_language.html delete mode 100644 tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_open_from_list.html delete mode 100644 tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_rename.html delete mode 100644 tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_restore.html delete mode 100644 tests/src/test/resources/organization/OrganizationQualityProfilesUiTest/should_set_default.html delete mode 100644 tests/src/test/resources/projectAdministration/BackgroundTasksTest/should_not_display_failing_and_search_and_filter_elements_on_project_level_page.html delete mode 100644 tests/src/test/resources/projectAdministration/ProjectAdministrationTest/project-deletion/project-deletion.html delete mode 100644 tests/src/test/resources/projectAdministration/ProjectPermissionsTest/test_project_permissions_page_shows_only_single_project.html delete mode 100644 tests/src/test/resources/projectComparison/ProjectComparisonTest/should-add-metrics.html delete mode 100644 tests/src/test/resources/projectComparison/ProjectComparisonTest/should-add-projects.html delete mode 100644 tests/src/test/resources/projectComparison/ProjectComparisonTest/should-display-basic-set-of-metrics.html delete mode 100644 tests/src/test/resources/projectComparison/ProjectComparisonTest/should-move-and-remove-metrics.html delete mode 100644 tests/src/test/resources/projectComparison/ProjectComparisonTest/should-move-and-remove-projects.html delete mode 100644 tests/src/test/resources/projectComparison/ProjectComparisonTest/should-not-add-differential-metrics.html delete mode 100644 tests/src/test/resources/projectSearch/SearchProjectsTest/with-many-rules.xml delete mode 100644 tests/src/test/resources/qualityGate/QualityGateOnRatingMeasuresTest/with-many-rules.xml delete mode 100644 tests/src/test/resources/qualityGate/QualityGateUiTest/should-display-alerts-correctly-history-page.html delete mode 100644 tests/src/test/resources/qualityGate/QualityGateUiTest/should_display_quality_gates_page.html delete mode 100644 tests/src/test/resources/qualityGate/notifications/activate_notification_channels.html delete mode 100644 tests/src/test/resources/qualityGate/notifications/email_configuration.html delete mode 100644 tests/src/test/resources/qualityModel/has-hello-tag.xml delete mode 100644 tests/src/test/resources/qualityModel/one-day-debt-per-file.xml delete mode 100644 tests/src/test/resources/qualityModel/one-issue-per-file.xml delete mode 100644 tests/src/test/resources/qualityModel/one-issue-per-line.xml delete mode 100644 tests/src/test/resources/qualityModel/with-many-rules.xml delete mode 100644 tests/src/test/resources/qualityModel/without-type-bug.xml delete mode 100644 tests/src/test/resources/qualityModel/without-type-code-smells.xml delete mode 100644 tests/src/test/resources/qualityModel/without-type-vulnerability.xml delete mode 100644 tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_copy.html delete mode 100644 tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_create.html delete mode 100644 tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_delete.html delete mode 100644 tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_changelog.html delete mode 100644 tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_list.html delete mode 100644 tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_exporters.html delete mode 100644 tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_inheritance.html delete mode 100644 tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_projects.html delete mode 100644 tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_display_profile_rules.html delete mode 100644 tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_filter_by_language.html delete mode 100644 tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_open_from_list.html delete mode 100644 tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_rename.html delete mode 100644 tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_restore.html delete mode 100644 tests/src/test/resources/qualityProfile/QualityProfilesUiTest/should_set_default.html delete mode 100644 tests/src/test/resources/serverSystem/HttpsTest/keystore.jks delete mode 100644 tests/src/test/resources/serverSystem/HttpsTest/keystore.jks.txt delete mode 100644 tests/src/test/resources/serverSystem/ServerSystemTest/derby-warning.html delete mode 100644 tests/src/test/resources/serverSystem/ServerSystemTest/hide-jdbc-settings.html delete mode 100644 tests/src/test/resources/serverSystem/ServerSystemTest/incompatible-plugin-1.0.jar delete mode 100644 tests/src/test/resources/serverSystem/ServerSystemTest/url_ending_by_jsp.html delete mode 100644 tests/src/test/resources/settings/SettingsTest/sonar-secret.txt delete mode 100644 tests/src/test/resources/sourceCode/EncodingTest/japanese_sources.html delete mode 100644 tests/src/test/resources/sourceCode/HighlightingTest/symbol-usages-highlighting.html delete mode 100644 tests/src/test/resources/sourceCode/HighlightingTest/syntax-highlighting-v1.html delete mode 100644 tests/src/test/resources/sourceCode/HighlightingTest/syntax-highlighting-v2.html delete mode 100644 tests/src/test/resources/sourceCode/HighlightingTest/syntax-highlighting.html delete mode 100644 tests/src/test/resources/test/CoverageTest/it_coverage-expected.json delete mode 100644 tests/src/test/resources/test/CoverageTest/unit_test_coverage-expected.json delete mode 100644 tests/src/test/resources/test/CoverageTest/unit_test_coverage_no_condition-expected.json delete mode 100644 tests/src/test/resources/test/CoverageTest/ut_and_it_coverage-expected.json delete mode 100644 tests/src/test/resources/test/CoverageTrackingTest/covered_files-expected.json delete mode 100644 tests/src/test/resources/test/CoverageTrackingTest/tests-expected.json delete mode 100644 tests/src/test/resources/test/TestExecutionTest/expected.json delete mode 100644 tests/src/test/resources/ui/UiExtensionsTest/static-files.html delete mode 100644 tests/src/test/resources/user/LocalAuthenticationTest/allow_users_to_sign_up.html delete mode 100644 tests/src/test/resources/user/LocalAuthenticationTest/force-authentication.html delete mode 100644 tests/src/test/resources/user/LocalAuthenticationTest/login_successful.html delete mode 100644 tests/src/test/resources/user/LocalAuthenticationTest/login_wrong_password.html delete mode 100644 tests/src/test/resources/user/LocalAuthenticationTest/should_not_be_unlogged_when_going_to_login_page.html delete mode 100644 tests/src/test/resources/user/MyAccountPageTest/should_display_no_projects.html delete mode 100644 tests/src/test/resources/user/MyAccountPageTest/should_display_projects.html diff --git a/run-integration-tests.sh b/run-integration-tests.sh index 938cd9bd6f7..8ec996e5a48 100755 --- a/run-integration-tests.sh +++ b/run-integration-tests.sh @@ -17,8 +17,8 @@ ORCHESTRATOR_CONFIG_URL=$2 shift 2 ./gradlew \ - :tests:clean \ - :tests:integrationTest \ + :private:it-core:clean \ + :private:it-core:integrationTest \ -Dcategory="$CATEGORY" \ -Dorchestrator.configUrl=$ORCHESTRATOR_CONFIG_URL \ $* diff --git a/settings.gradle b/settings.gradle index c94cf11a2d1..89982b9cbb4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -31,42 +31,6 @@ include 'sonar-testing-harness' include 'sonar-ws' include 'sonar-ws-generator' -include 'tests:plugins:access-secured-props-plugin' -include 'tests:plugins:backdating-customplugin' -include 'tests:plugins:backdating-plugin-v1' -include 'tests:plugins:backdating-plugin-v2' -include 'tests:plugins:base-auth-plugin' -include 'tests:plugins:batch-plugin' -include 'tests:plugins:blue-green-plugin-v1' -include 'tests:plugins:blue-green-plugin-v2' -include 'tests:plugins:extension-lifecycle-plugin' -include 'tests:plugins:core-extension-fake-billing' -include 'tests:plugins:core-extension-it-tests' -include 'tests:plugins:foo-plugin-v1' -include 'tests:plugins:foo-plugin-v2' -include 'tests:plugins:foo-plugin-v3' -include 'tests:plugins:foo-plugin-without-qprofile' -include 'tests:plugins:global-property-change-plugin' -include 'tests:plugins:issue-filter-plugin' -include 'tests:plugins:l10n-fr-pack' -include 'tests:plugins:license-plugin' -include 'tests:plugins:oauth2-auth-plugin' -include 'tests:plugins:posttask-plugin' -include 'tests:plugins:project-builder-plugin' -include 'tests:plugins:property-relocation-plugin' -include 'tests:plugins:property-sets-plugin' -include 'tests:plugins:save-measure-on-project-plugin' -include 'tests:plugins:security-plugin' -include 'tests:plugins:server-plugin' -include 'tests:plugins:settings-encryption-plugin' -include 'tests:plugins:settings-plugin' -include 'tests:plugins:sonar-fake-plugin' -include 'tests:plugins:sonar-subcategories-plugin' -include 'tests:plugins:ui-extensions-plugin' -include 'tests:plugins:wait-at-platform-level4-plugin' -include 'tests:plugins:ws-plugin' -include 'tests' - // use Settings.getRootDir() so that it doesn't matter which directory you are executing from File extraSettings = new File(rootDir, 'private/settings.gradle') if (extraSettings.exists()) { diff --git a/tests/build.gradle b/tests/build.gradle deleted file mode 100644 index 5b51be10e1e..00000000000 --- a/tests/build.gradle +++ /dev/null @@ -1,158 +0,0 @@ -ext { - jettyVersion = '9.3.11.v20160721' - bytemanVersion = '3.0.10' -} - -configurations { - sqZip - includeInTestResources -} - -def pluginsForITs = [ - ':plugins:sonar-xoo-plugin', - ':tests:plugins:access-secured-props-plugin', - ':tests:plugins:backdating-plugin-v1', - ':tests:plugins:backdating-plugin-v2', - ':tests:plugins:backdating-customplugin', - ':tests:plugins:base-auth-plugin', - ':tests:plugins:batch-plugin', - ':tests:plugins:blue-green-plugin-v1', - ':tests:plugins:blue-green-plugin-v2', - ':tests:plugins:extension-lifecycle-plugin', - ':tests:plugins:core-extension-fake-billing', - ':tests:plugins:core-extension-it-tests', - ':tests:plugins:foo-plugin-v1', - ':tests:plugins:foo-plugin-v2', - ':tests:plugins:foo-plugin-v3', - ':tests:plugins:foo-plugin-without-qprofile', - ':tests:plugins:global-property-change-plugin', - ':tests:plugins:issue-filter-plugin', - ':tests:plugins:l10n-fr-pack', - ':tests:plugins:license-plugin', - ':tests:plugins:oauth2-auth-plugin', - ':tests:plugins:posttask-plugin', - ':tests:plugins:project-builder-plugin', - ':tests:plugins:property-relocation-plugin', - ':tests:plugins:property-sets-plugin', - ':tests:plugins:save-measure-on-project-plugin', - ':tests:plugins:security-plugin', - ':tests:plugins:server-plugin', - ':tests:plugins:settings-encryption-plugin', - ':tests:plugins:settings-plugin', - ':tests:plugins:sonar-fake-plugin', - ':tests:plugins:sonar-subcategories-plugin', - ':tests:plugins:ui-extensions-plugin', - ':tests:plugins:wait-at-platform-level4-plugin', - ':tests:plugins:ws-plugin' -] - -dependencies { - // please keep list ordered - - // required version 23.0 for selenide - testCompile 'com.google.guava:guava:23.0' - testCompile 'com.googlecode.json-simple:json-simple' - testCompile 'com.microsoft.sqlserver:mssql-jdbc' - testCompile 'com.oracle.jdbc:ojdbc8' - testCompile 'com.squareup.okhttp3:mockwebserver' - testCompile 'junit:junit' - testCompile 'mysql:mysql-connector-java' - testCompile 'org.assertj:assertj-core' - testCompile 'org.assertj:assertj-guava' - testCompile 'org.eclipse.jetty:jetty-proxy' - testCompile 'org.eclipse.jetty:jetty-server' - testCompile 'org.eclipse.jetty:jetty-servlet' - testCompile "org.jboss.byteman:byteman-submit:${bytemanVersion}" - testCompile 'org.postgresql:postgresql' - testCompile 'org.skyscreamer:jsonassert:1.5.0' - testCompile 'org.sonarsource.orchestrator:sonar-orchestrator' - testCompile 'org.subethamail:subethasmtp' - testCompile project(':server:sonar-qa-util') - testCompile project(':sonar-ws') - - includeInTestResources "org.jboss.byteman:byteman:${bytemanVersion}" -} - -sonarqube { - skipProject = true -} - -//UT are excluding in order for ITs to only run when needed -test{ - exclude '*' -} - -task integrationTest(type: Test) { - description = 'Runs integration tests' - - for (plugin in pluginsForITs) { - dependsOn project(plugin).assemble - } - - jacoco.enabled = false - - systemProperty 'orchestrator.configUrl', System.getProperty('orchestrator.configUrl') - systemProperty 'sonar.runtimeVersion', System.getProperty('sonar.runtimeVersion') - - def category = System.getProperty('category') - filter { - switch (category) { - case 'Lite': - includeTestsMatching 'org.sonarqube.tests.lite.*Suite' - break - case 'Category1': - includeTestsMatching 'org.sonarqube.tests.Category1Suite' - includeTestsMatching 'org.sonarqube.tests.authorization.*Suite' - includeTestsMatching 'org.sonarqube.tests.measure.*Suite' - includeTestsMatching 'org.sonarqube.tests.qualityGate.*Suite' - includeTestsMatching 'org.sonarqube.tests.settings.*Suite' - includeTestsMatching 'org.sonarqube.tests.source.*Suite' - break - case 'Category2': - includeTestsMatching 'org.sonarqube.tests.issue.*Suite' - includeTestsMatching 'org.sonarqube.tests.test.*Suite' - includeTestsMatching 'org.sonarqube.tests.qualityModel.*Suite' - break - case 'Category3': - includeTestsMatching 'org.sonarqube.tests.Category3Suite' - includeTestsMatching 'org.sonarqube.tests.component.*Suite' - includeTestsMatching 'org.sonarqube.tests.project.*Suite' - break - case 'Category4': - includeTestsMatching 'org.sonarqube.tests.Category4Suite' - includeTestsMatching 'org.sonarqube.tests.duplication.*Suite' - includeTestsMatching 'org.sonarqube.tests.user.*Suite' - includeTestsMatching 'org.sonarqube.tests.ui.*Suite' - includeTestsMatching 'org.sonarqube.tests.webhook.*Suite' - break - case 'Category5': - includeTestsMatching 'org.sonarqube.tests.Category5Suite' - break - case 'Category6': - includeTestsMatching 'org.sonarqube.tests.Category6Suite' - includeTestsMatching 'org.sonarqube.tests.organization.*Suite' - break - case 'Plugins': - includeTestsMatching 'org.sonarqube.tests.plugins.*Suite' - break - case 'Upgrade': - includeTestsMatching 'org.sonarqube.tests.upgrade.*Suite' - break - case 'ServerPerformance': - includeTestsMatching 'org.sonarqube.tests.performance.server.*Suite' - break - } - testLogging { - exceptionFormat 'full' // log the full stack trace (default is the 1st line of the stack trace) - events "skipped", "failed" // verbose log for failed and skipped tests (by default the name of the tests are not logged) - } - } -} - -processTestResources() { - into('/') { - from configurations.includeInTestResources - // TODO cache not invalidated when pattern changes? - rename '(.*)-' + bytemanVersion + '.jar', '$1.jar' - } -} diff --git a/tests/plugins/access-secured-props-plugin/build.gradle b/tests/plugins/access-secured-props-plugin/build.gradle deleted file mode 100644 index 8d086781945..00000000000 --- a/tests/plugins/access-secured-props-plugin/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'AccessSecuredPropsPlugin', - 'Plugin-Version': '1.0.2.42', - 'Plugin-Display-Version': '1.0.2 (build 42)', - 'Plugin-Class': 'AccessSecuredPropsPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Plugins :: Access Secured PropertiesFoo', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsPlugin.java b/tests/plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsPlugin.java deleted file mode 100644 index ea448bec1d8..00000000000 --- a/tests/plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsPlugin.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.SonarPlugin; - -import java.util.Arrays; -import java.util.List; - -public class AccessSecuredPropsPlugin extends SonarPlugin { - - public List getExtensions() { - return Arrays.asList(AccessSecuredPropsSensor.class, AccessSecuredPropsTaskExtension.class); - } - -} diff --git a/tests/plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsSensor.java b/tests/plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsSensor.java deleted file mode 100644 index 63318c77e09..00000000000 --- a/tests/plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsSensor.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.batch.Sensor; -import org.sonar.api.batch.SensorContext; -import org.sonar.api.config.Settings; -import org.sonar.api.resources.Project; - -@Properties({ - @Property( - key = "accessSecuredFromSensor", - name = "Property to decide if sensor should access secured properties", - defaultValue = "false") -}) -public class AccessSecuredPropsSensor implements Sensor { - - private Settings settings; - - public AccessSecuredPropsSensor(Settings settings) { - this.settings = settings; - } - - public boolean shouldExecuteOnProject(Project project) { - return true; - } - - public void analyse(Project project, SensorContext sensorContext) { - if ("true".equals(settings.getString("accessSecuredFromSensor"))) { - settings.getString("foo.bar.secured"); - } - } -} diff --git a/tests/plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsTaskExtension.java b/tests/plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsTaskExtension.java deleted file mode 100644 index 4dab4ae01ee..00000000000 --- a/tests/plugins/access-secured-props-plugin/src/main/java/AccessSecuredPropsTaskExtension.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.batch.Sensor; -import org.sonar.api.batch.SensorContext; -import org.sonar.api.config.Settings; -import org.sonar.api.task.TaskExtension; -import org.sonar.api.resources.Project; - -@Properties({ - @Property( - key = "accessSecuredFromTask", - name = "Property to decide if task extension should access secured properties", - defaultValue = "false") -}) -public class AccessSecuredPropsTaskExtension implements TaskExtension { - - private Settings settings; - - public AccessSecuredPropsTaskExtension(Settings settings) { - this.settings = settings; - } - - public void start() { - if ("true".equals(settings.getString("accessSecuredFromTask"))) { - settings.getString("foo.bar.secured"); - } - } -} diff --git a/tests/plugins/backdating-customplugin/build.gradle b/tests/plugins/backdating-customplugin/build.gradle deleted file mode 100644 index 7d6b496c05b..00000000000 --- a/tests/plugins/backdating-customplugin/build.gradle +++ /dev/null @@ -1,31 +0,0 @@ -sonarqube { - skipProject = true -} - -dependencies { - compile 'com.google.guava:guava' - compile 'commons-io:commons-io' - compile 'commons-lang:commons-lang' - compileOnly 'com.google.code.findbugs:jsr305' - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') - compileOnly project(':tests:plugins:backdating-plugin-v1') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'custombackdating', - 'Plugin-Version': version, - 'Plugin-Class': 'org.sonar.backdating.custom.BackdatingPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Custom', - 'Plugin-License': 'GNU LGPL 3', - 'Plugin-Base': 'backdating' - ) - } - into('META-INF/lib') { - from configurations.compile - } -} diff --git a/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/BackdatingPlugin.java b/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/BackdatingPlugin.java deleted file mode 100644 index cc7970f4825..00000000000 --- a/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/BackdatingPlugin.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.backdating.custom; - -import org.sonar.api.Plugin; -import org.sonar.backdating.custom.rule.CustomRulesDefinition; -import org.sonar.backdating.custom.rule.MyCustomProcessor; - -/** - * Plugin entry-point, as declared in pom.xml. - */ -public class BackdatingPlugin implements Plugin { - - @Override - public void define(Context context) { - context.addExtensions( - CustomRulesDefinition.class, - MyCustomProcessor.class); - } - -} diff --git a/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/package-info.java b/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/package-info.java deleted file mode 100644 index f6ebaad53e4..00000000000 --- a/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonar.backdating.custom; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/rule/CustomRulesDefinition.java b/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/rule/CustomRulesDefinition.java deleted file mode 100644 index 27576eb0aa8..00000000000 --- a/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/rule/CustomRulesDefinition.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.backdating.custom.rule; - -import org.sonar.api.server.rule.RulesDefinition; - -public class CustomRulesDefinition implements RulesDefinition { - - public static final String RULE_KEY = "Custom"; - public static final String BACK_REPOSITORY = "back"; - - @Override - public void define(Context context) { - defineRulesXoo(context); - } - - private static void defineRulesXoo(Context context) { - NewRepository repo = context.createRepository(BACK_REPOSITORY, "xoo"); - createRule(repo, RULE_KEY); - repo.done(); - } - - private static NewRule createRule(NewRepository repo, String key) { - return repo.createRule(key).setName(key).setHtmlDescription(key); - } - -} diff --git a/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/rule/MyCustomProcessor.java b/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/rule/MyCustomProcessor.java deleted file mode 100644 index fb0521ecfd5..00000000000 --- a/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/rule/MyCustomProcessor.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.backdating.custom.rule; - -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.sensor.SensorContext; -import org.sonar.api.batch.sensor.issue.NewIssue; -import org.sonar.api.rule.RuleKey; -import org.sonar.plugins.backdating.api.CustomProcessor; - -public class MyCustomProcessor implements CustomProcessor { - - @Override - public void process(String lineContent, SensorContext context, InputFile inputFile, int line) { - if (lineContent.contains("BACKCUSTOM")) { - NewIssue newIssue = context.newIssue(); - newIssue.at(newIssue.newLocation().on(inputFile).at(inputFile.selectLine(line))) - .forRule(RuleKey.of(CustomRulesDefinition.BACK_REPOSITORY, CustomRulesDefinition.RULE_KEY)) - .save(); - } - } - -} diff --git a/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/rule/package-info.java b/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/rule/package-info.java deleted file mode 100644 index ca91470095d..00000000000 --- a/tests/plugins/backdating-customplugin/src/main/java/org/sonar/backdating/custom/rule/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonar.backdating.custom.rule; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/backdating-plugin-v1/build.gradle b/tests/plugins/backdating-plugin-v1/build.gradle deleted file mode 100644 index 94a991e8ad6..00000000000 --- a/tests/plugins/backdating-plugin-v1/build.gradle +++ /dev/null @@ -1,29 +0,0 @@ -sonarqube { - skipProject = true -} - -dependencies { - compile 'com.google.guava:guava' - compile 'commons-io:commons-io' - compile 'commons-lang:commons-lang' - compileOnly 'com.google.code.findbugs:jsr305' - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'backdating', - 'Plugin-Version': version, - 'Plugin-Class': 'org.sonar.plugins.backdating.BackdatingPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Foo', - 'Plugin-License': 'GNU LGPL 3' - ) - } - into('META-INF/lib') { - from configurations.compile - } -} diff --git a/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/BackdatingPlugin.java b/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/BackdatingPlugin.java deleted file mode 100644 index bc766a7a2c8..00000000000 --- a/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/BackdatingPlugin.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.plugins.backdating; - -import org.sonar.api.Plugin; -import org.sonar.plugins.backdating.rule.BackRulesDefinition; -import org.sonar.plugins.backdating.rule.BackSensorV1; - -/** - * Plugin entry-point, as declared in pom.xml. - */ -public class BackdatingPlugin implements Plugin { - - @Override - public void define(Context context) { - context.addExtensions( - BackRulesDefinition.class, - BackSensorV1.class); - } - -} diff --git a/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/api/CustomProcessor.java b/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/api/CustomProcessor.java deleted file mode 100644 index 2d21dcd08a4..00000000000 --- a/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/api/CustomProcessor.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.plugins.backdating.api; - -import org.sonar.api.batch.ScannerSide; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.sensor.SensorContext; - -@ScannerSide -public interface CustomProcessor { - - void process(String lineContent, SensorContext context, InputFile inputFile, int line); - -} diff --git a/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/package-info.java b/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/package-info.java deleted file mode 100644 index 107b3c924ab..00000000000 --- a/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonar.plugins.backdating; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/rule/BackRulesDefinition.java b/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/rule/BackRulesDefinition.java deleted file mode 100644 index c57de69c1e8..00000000000 --- a/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/rule/BackRulesDefinition.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.plugins.backdating.rule; - -import org.sonar.api.server.rule.RulesDefinition; - -public class BackRulesDefinition implements RulesDefinition { - - public static final String RULE_KEY = "Rule"; - public static final String BACK_REPOSITORY = "back"; - - @Override - public void define(Context context) { - defineRulesXoo(context); - } - - private static void defineRulesXoo(Context context) { - NewRepository repo = context.createRepository(BACK_REPOSITORY, "xoo").setName("Back"); - createRule(repo, RULE_KEY); - repo.done(); - } - - private static NewRule createRule(NewRepository repo, String key) { - return repo.createRule(key).setName(key).setHtmlDescription(key); - } - -} diff --git a/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/rule/BackSensorV1.java b/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/rule/BackSensorV1.java deleted file mode 100644 index a4d68dd51b5..00000000000 --- a/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/rule/BackSensorV1.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.plugins.backdating.rule; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.StringReader; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.sensor.Sensor; -import org.sonar.api.batch.sensor.SensorContext; -import org.sonar.api.batch.sensor.SensorDescriptor; -import org.sonar.api.batch.sensor.issue.NewIssue; -import org.sonar.api.rule.RuleKey; - -public class BackSensorV1 implements Sensor { - - @Override - public void describe(SensorDescriptor descriptor) { - descriptor.createIssuesForRuleRepositories(BackRulesDefinition.BACK_REPOSITORY) - .onlyOnLanguage("xoo") - .name("Back V1"); - } - - @Override - public void execute(SensorContext context) { - for (InputFile inputFile : context.fileSystem().inputFiles(context.fileSystem().predicates().hasLanguage("xoo"))) { - int lineNb = 0; - try { - BufferedReader reader = new BufferedReader(new StringReader(inputFile.contents())); - String line; - while ((line = reader.readLine()) != null) { - lineNb++; - if (line.contains("BACKV1")) { - NewIssue newIssue = context.newIssue(); - newIssue.at(newIssue.newLocation().on(inputFile).at(inputFile.selectLine(lineNb))) - .forRule(RuleKey.of(BackRulesDefinition.BACK_REPOSITORY, BackRulesDefinition.RULE_KEY)) - .save(); - } - } - } catch (IOException e) { - throw new IllegalStateException(e); - } - } - } - -} diff --git a/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/rule/package-info.java b/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/rule/package-info.java deleted file mode 100644 index eafb63da15c..00000000000 --- a/tests/plugins/backdating-plugin-v1/src/main/java/org/sonar/plugins/backdating/rule/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonar.plugins.backdating.rule; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/backdating-plugin-v2/build.gradle b/tests/plugins/backdating-plugin-v2/build.gradle deleted file mode 100644 index 0cda9c5e661..00000000000 --- a/tests/plugins/backdating-plugin-v2/build.gradle +++ /dev/null @@ -1,29 +0,0 @@ -sonarqube { - skipProject = true -} - -dependencies { - compile 'com.google.guava:guava' - compile 'commons-io:commons-io' - compile 'commons-lang:commons-lang' - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') - compileOnly 'com.google.code.findbugs:jsr305' -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'backdating', - 'Plugin-Version': version, - 'Plugin-Class': 'org.sonar.plugins.backdating.BackdatingPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Foo', - 'Plugin-License': 'GNU LGPL 3' - ) - } - into('META-INF/lib') { - from configurations.compile - } -} diff --git a/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/BackdatingPlugin.java b/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/BackdatingPlugin.java deleted file mode 100644 index e67a36d645b..00000000000 --- a/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/BackdatingPlugin.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.plugins.backdating; - -import org.sonar.api.Plugin; -import org.sonar.plugins.backdating.rule.BackRulesDefinition; -import org.sonar.plugins.backdating.rule.BackSensorV2; - -/** - * Plugin entry-point, as declared in pom.xml. - */ -public class BackdatingPlugin implements Plugin { - - @Override - public void define(Context context) { - context.addExtensions( - BackRulesDefinition.class, - BackSensorV2.class); - } - -} diff --git a/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/api/CustomProcessor.java b/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/api/CustomProcessor.java deleted file mode 100644 index 2d21dcd08a4..00000000000 --- a/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/api/CustomProcessor.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.plugins.backdating.api; - -import org.sonar.api.batch.ScannerSide; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.sensor.SensorContext; - -@ScannerSide -public interface CustomProcessor { - - void process(String lineContent, SensorContext context, InputFile inputFile, int line); - -} diff --git a/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/package-info.java b/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/package-info.java deleted file mode 100644 index 107b3c924ab..00000000000 --- a/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonar.plugins.backdating; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/rule/BackRulesDefinition.java b/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/rule/BackRulesDefinition.java deleted file mode 100644 index c57de69c1e8..00000000000 --- a/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/rule/BackRulesDefinition.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.plugins.backdating.rule; - -import org.sonar.api.server.rule.RulesDefinition; - -public class BackRulesDefinition implements RulesDefinition { - - public static final String RULE_KEY = "Rule"; - public static final String BACK_REPOSITORY = "back"; - - @Override - public void define(Context context) { - defineRulesXoo(context); - } - - private static void defineRulesXoo(Context context) { - NewRepository repo = context.createRepository(BACK_REPOSITORY, "xoo").setName("Back"); - createRule(repo, RULE_KEY); - repo.done(); - } - - private static NewRule createRule(NewRepository repo, String key) { - return repo.createRule(key).setName(key).setHtmlDescription(key); - } - -} diff --git a/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/rule/BackSensorV2.java b/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/rule/BackSensorV2.java deleted file mode 100644 index 73fef191b71..00000000000 --- a/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/rule/BackSensorV2.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.plugins.backdating.rule; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.StringReader; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.sensor.Sensor; -import org.sonar.api.batch.sensor.SensorContext; -import org.sonar.api.batch.sensor.SensorDescriptor; -import org.sonar.api.batch.sensor.issue.NewIssue; -import org.sonar.api.rule.RuleKey; -import org.sonar.plugins.backdating.api.CustomProcessor; - -public class BackSensorV2 implements Sensor { - - private final CustomProcessor[] processors; - - public BackSensorV2() { - this(new CustomProcessor[0]); - } - - public BackSensorV2(CustomProcessor... processors) { - this.processors = processors; - } - - @Override - public void describe(SensorDescriptor descriptor) { - descriptor.createIssuesForRuleRepositories(BackRulesDefinition.BACK_REPOSITORY) - .onlyOnLanguage("xoo") - .name("Back V2"); - } - - @Override - public void execute(SensorContext context) { - for (InputFile inputFile : context.fileSystem().inputFiles(context.fileSystem().predicates().hasLanguage("xoo"))) { - int lineNb = 0; - try { - BufferedReader reader = new BufferedReader(new StringReader(inputFile.contents())); - String line; - while ((line = reader.readLine()) != null) { - lineNb++; - if (line.contains("BACKV1") || line.contains("BACKV2")) { - NewIssue newIssue = context.newIssue(); - newIssue.at(newIssue.newLocation().on(inputFile).at(inputFile.selectLine(lineNb))) - .forRule(RuleKey.of(BackRulesDefinition.BACK_REPOSITORY, BackRulesDefinition.RULE_KEY)) - .save(); - } - for (CustomProcessor processor : processors) { - processor.process(line, context, inputFile, lineNb); - } - } - } catch (IOException e) { - throw new IllegalStateException(e); - } - } - } - -} diff --git a/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/rule/package-info.java b/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/rule/package-info.java deleted file mode 100644 index eafb63da15c..00000000000 --- a/tests/plugins/backdating-plugin-v2/src/main/java/org/sonar/plugins/backdating/rule/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonar.plugins.backdating.rule; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/base-auth-plugin/build.gradle b/tests/plugins/base-auth-plugin/build.gradle deleted file mode 100644 index ecafb1c6182..00000000000 --- a/tests/plugins/base-auth-plugin/build.gradle +++ /dev/null @@ -1,25 +0,0 @@ -dependencies { - compile('com.google.guava:guava:17.0') { - exclude group: 'com.google.code.findbugs', module: 'jsr305' - } - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') - compileOnly 'javax.servlet:javax.servlet-api:3.0.1' -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'baseauthplugin', - 'Plugin-Version': version, - 'Plugin-Class': 'FakeBaseAuthPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Plugins :: Fake Base Authentication Plugin', - 'Plugin-License': 'GNU LGPL 3' - ) - } - into('META-INF/lib') { - from configurations.compile - } -} diff --git a/tests/plugins/base-auth-plugin/src/main/java/FakeBaseAuthPlugin.java b/tests/plugins/base-auth-plugin/src/main/java/FakeBaseAuthPlugin.java deleted file mode 100644 index df748891151..00000000000 --- a/tests/plugins/base-auth-plugin/src/main/java/FakeBaseAuthPlugin.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.ArrayList; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public final class FakeBaseAuthPlugin extends SonarPlugin { - - public List getExtensions() { - List extensions = new ArrayList(); - extensions.add(FakeBaseIdProvider.class); - return extensions; - } - -} diff --git a/tests/plugins/base-auth-plugin/src/main/java/FakeBaseIdProvider.java b/tests/plugins/base-auth-plugin/src/main/java/FakeBaseIdProvider.java deleted file mode 100644 index 85ebde21823..00000000000 --- a/tests/plugins/base-auth-plugin/src/main/java/FakeBaseIdProvider.java +++ /dev/null @@ -1,121 +0,0 @@ - -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import java.io.IOException; -import org.sonar.api.config.Settings; -import org.sonar.api.server.authentication.BaseIdentityProvider; -import org.sonar.api.server.authentication.Display; -import org.sonar.api.server.authentication.UnauthorizedException; -import org.sonar.api.server.authentication.UserIdentity; - -import static com.google.common.collect.Sets.newHashSet; - -public class FakeBaseIdProvider implements BaseIdentityProvider { - - private static final String ENABLED = "sonar.auth.fake-base-id-provider.enabled"; - private static final String ALLOWS_USERS_TO_SIGN_UP = "sonar.auth.fake-base-id-provider.allowsUsersToSignUp"; - private static final String ENABLED_GROUPS_SYNC = "sonar.auth.fake-base-id-provider.enabledGroupsSync"; - private static final String GROUPS = "sonar.auth.fake-base-id-provider.groups"; - - private static final String USER_INFO = "sonar.auth.fake-base-id-provider.user"; - - private static final String THROW_UNAUTHORIZED_EXCEPTION = "sonar.auth.fake-base-id-provider.throwUnauthorizedMessage"; - - private final Settings settings; - - public FakeBaseIdProvider(Settings settings) { - this.settings = settings; - } - - @Override - public void init(Context context) { - String userInfoProperty = settings.getString(USER_INFO); - if (userInfoProperty == null) { - throw new IllegalStateException(String.format("The property %s is required", USER_INFO)); - } - boolean throwUnauthorizedException = settings.getBoolean(THROW_UNAUTHORIZED_EXCEPTION); - if (throwUnauthorizedException) { - throw new UnauthorizedException("A functional error has happened"); - } - - String[] userInfos = userInfoProperty.split(","); - UserIdentity.Builder builder = UserIdentity.builder() - .setLogin(emptyToNull(userInfos[0])) - .setProviderId(emptyToNull(userInfos[1])) - .setProviderLogin(emptyToNull(userInfos[2])) - .setName(emptyToNull(userInfos[3])) - .setEmail(emptyToNull(userInfos[4])); - - if (settings.getBoolean(ENABLED_GROUPS_SYNC)) { - builder.setGroups(newHashSet(settings.getStringArray(GROUPS))); - } - - context.authenticate(builder.build()); - try { - context.getResponse().sendRedirect("/"); - } catch (IOException e) { - throw new IllegalStateException("Fail to redirect to home", e); - } - } - - @Override - public String getKey() { - return "fake-base-id-provider"; - } - - @Override - public String getName() { - return "Fake base identity provider"; - } - - @Override - public Display getDisplay() { - return Display.builder() - .setIconPath("/static/baseauthplugin/base.png") - .setBackgroundColor("#205081") - .build(); - } - - @Override - public boolean isEnabled() { - return settings.getBoolean(ENABLED); - } - - @Override - public boolean allowsUsersToSignUp() { - if (settings.hasKey(ALLOWS_USERS_TO_SIGN_UP)) { - return settings.getBoolean(ALLOWS_USERS_TO_SIGN_UP); - } - // If property is not defined, default behaviour is not always allow users to sign up - return true; - } - - private static String emptyToNull(String s) { - if (s == null) { - return null; - } - String trim = s.trim(); - if (trim.isEmpty()) { - return null; - } - return trim; - } -} diff --git a/tests/plugins/base-auth-plugin/src/main/resources/static/base.png b/tests/plugins/base-auth-plugin/src/main/resources/static/base.png deleted file mode 100644 index 217d2a0bdf819ffe0e3ccfc7b4aadb6b23dd1e7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3112 zcmV+@4A=9CP)4^2ITS=9UZ7D7UaQ84M9r!>d`Zlu>w4r+az{5Y?yAYt-KXm&nrLE@ zHHRAY5skVK7f%ctFT@K0K@J6GIEJ~qr>D27dxk|o0w`L(-O2FnMs_yLw+`6 z%X7!JuU%ArH8+750NzO^C-;0qBHuk1T){D1E@kxmn+F230J zhov*N-Mn_8zZ*F11tLyC`Yl&!(0|kvXnX>3_UJxzkLkB}-imKt@a_VObcjIyuX`We z`r(Xic8f{d6g=%|Yd+S!cLE-Ga11K0UB=DpMI~>q|2Z{0CjQEOAyAQj>cNdKk2=cP zt)A@x@9x86`y+PXa8#BTqq3}|_@k}IlYIPx_4kwjXSaB+c{ct^ebx0Sx0|%)I?V|< zUD9hnGJ+#}p|tQad;+`eUAl4aYxfUuxWEaw0q-V9 zuVqR#1`JOD%d*Hn{~O+3v-OcdBOW<$PYCc1PVv#yZk0~X9`L6n>zJ^faoG9AY8=V< zNxI((c!%4qnv91<$3yEM47Zf69U)H9vt)K!f{#imv3gmV+V?3g1rG> ztX_iir;fJ@o~Bc0vvIY?7d_(>U^SajR$RbsIeI-r>*HVFQNSJE2eQ8Y>-)O=6APbO z^iiOsRt{iI;8;7>uY3nqs}?u_@)4(#$C1q4sH>?#jlLS!iV9G9qnv#Hs&uw%vZ=~G{L?T>O#ACitNfX&d%rcQ7+3mWS62n+}ytT0M61ax;IPr%JW~ zGC5!5)Vl?~{RCK3B(Cl)COfdaWfpR@l15#!MmuqpldBjc$4ryuF@|=OFRLG)C={b6*LFB+R=0$ou{fSYx2%^G%7k3LXuq`TV1$ za@15&EQBQm*L53_5~xuhzwZP@5~j+5DBQObHe)OtR;fOct0b*^l3GZml}ZkW^)iC` zMdf-7yi&wO9)CQFdF{Rv;03{}+J+}@TAj01rN^TB+0SbrQv?wq8fV3TB`#COE45a+ zHZ;zl48dA%oZ0MPRFS6glaCIHSl81FdlWLp+F8Jz{w}1m2~U+-@OhvLezai7Bkmo0 zU>>xr-sa&OWLB#+Jmd-=FP{Jpg;xNsspGI;F#aD8Mj-i-5M zcH9#S5UqO_G+-maFf){RiAn|(5JeM9K+YPGcy%3uY^CIe7c83YDA5i=x%U86D?(6D zjAAC?!I75>vVXs)xObaLG|@g^y=RSu26@an9*N_OEY?4 zlAnqx=@J5kMqyn8hgW@-k|uR_Nt;%(I78k{&)$yHA*;wC1@KX6@Pu|g9twFHHRQQU z+y6hSgpJ27i|gx6ICA(j*qA&VDEXS6Q;=XTaczP-zlie~06>p_vp*o_VFi+&njm1bA!|-=Zpxh!XBHCXg zVcq*=`ul>qoY8DYdU_T{rH+Nt!=uF<;zwXI zKeccJCt3N4D7-i%koo4037o4Fj*$sR(BG{sOeMeJBt9plk%RaN>~)MEHw9ik-sH^dBxhen{1(KwF$bNW_&);FQY`3fVzL;u z|H&T5OG`_gXh&;7z{U%aC-f*4+E~~oSh2cf0@0vVoPm;v$RPyAKL(ArR!o&`z2Ec$ z7=1QEBV896#SFLR^I^>U3Wb8#YPDQaQj#+>GgD|cfd)=UK3j|9Z7qDZelK?2SlS4l zwjSrwFm5cd0CAzVT(9ZB=D4pzJw^9Hu}O@DgM`52^fnc_T+aLZ`*V7|o^KZcy-k>Q zp&q+#Yj*O?4<(C9DIt9o6bTTCxs--6f0zt!62$G*zWX=X(BMm?k{DD^;_2IIu@5y= z6cxHi&>Ec&3=HIIYHA$6OQ4<=#-6D~)@>Iif0msZ4-0RQUUpd_wkQpwM^A!ZfM18S zPsN91tq>1s_bxR9Kff~JnevmrWHlimk_ZhAWvi;H_%;bx9Kr*?>TuH`>p&vo4}?Vt zo0#@s6^yMdOj}0rSJ+qhX$t~<^{-)gQYr#MgFB>sDqf_{iquFu{3Qd~m zf$TgC888u{Q4#IdKFvIVYN@Al&@mE!IJA8Bn+1C|f7?6;qN1Yg&G&~kt5LHqPe0voDS4H9Td3Jytp6+mkEhtrAep!l1Z`i0B>D zBJkm=K55C|LEe_R-lv4>Iq7gzTV1Kk`Q*LjSNDGXy$iS~DwWC+9UaZ(=jXS&Gk54r z+-Jm)p|a%Yf7JNYCY!i=MN<-kyq-rwuT(_G_ZD4+-lB&e_W~NZ>#A^#HV1$G z)S>Lc1KZQD?%T4JXKhv&a3}G12ib`oB=@&jop$Q~N+b;%rYN%OAMqLx{S4F1^FdyX z;0R^1ykC!pnW*?UnOv>$WMwKP$2oYb)na8y@8DRwsk*$}sIM+7Ir7tC{k2P1Y6|i$ zux11OCm$y%(3~C~9y|d~-G#q+@uJWkES)0IS_=pWU|5!ANS4^2ITS=9UZ7D7UaQ84M9r!>d`Zlu>w4r+az{5Y?yAYt-KXm&nrLE@ zHHRAY5skVK7f%ctFT@K0K@J6GIEJ~qr>D27dxk|o0w`L(-O2FnMs_yLw+`6 z%X7!JuU%ArH8+750NzO^C-;0qBHuk1T){D1E@kxmn+F230J zhov*N-Mn_8zZ*F11tLyC`Yl&!(0|kvXnX>3_UJxzkLkB}-imKt@a_VObcjIyuX`We z`r(Xic8f{d6g=%|Yd+S!cLE-Ga11K0UB=DpMI~>q|2Z{0CjQEOAyAQj>cNdKk2=cP zt)A@x@9x86`y+PXa8#BTqq3}|_@k}IlYIPx_4kwjXSaB+c{ct^ebx0Sx0|%)I?V|< zUD9hnGJ+#}p|tQad;+`eUAl4aYxfUuxWEaw0q-V9 zuVqR#1`JOD%d*Hn{~O+3v-OcdBOW<$PYCc1PVv#yZk0~X9`L6n>zJ^faoG9AY8=V< zNxI((c!%4qnv91<$3yEM47Zf69U)H9vt)K!f{#imv3gmV+V?3g1rG> ztX_iir;fJ@o~Bc0vvIY?7d_(>U^SajR$RbsIeI-r>*HVFQNSJE2eQ8Y>-)O=6APbO z^iiOsRt{iI;8;7>uY3nqs}?u_@)4(#$C1q4sH>?#jlLS!iV9G9qnv#Hs&uw%vZ=~G{L?T>O#ACitNfX&d%rcQ7+3mWS62n+}ytT0M61ax;IPr%JW~ zGC5!5)Vl?~{RCK3B(Cl)COfdaWfpR@l15#!MmuqpldBjc$4ryuF@|=OFRLG)C={b6*LFB+R=0$ou{fSYx2%^G%7k3LXuq`TV1$ za@15&EQBQm*L53_5~xuhzwZP@5~j+5DBQObHe)OtR;fOct0b*^l3GZml}ZkW^)iC` zMdf-7yi&wO9)CQFdF{Rv;03{}+J+}@TAj01rN^TB+0SbrQv?wq8fV3TB`#COE45a+ zHZ;zl48dA%oZ0MPRFS6glaCIHSl81FdlWLp+F8Jz{w}1m2~U+-@OhvLezai7Bkmo0 zU>>xr-sa&OWLB#+Jmd-=FP{Jpg;xNsspGI;F#aD8Mj-i-5M zcH9#S5UqO_G+-maFf){RiAn|(5JeM9K+YPGcy%3uY^CIe7c83YDA5i=x%U86D?(6D zjAAC?!I75>vVXs)xObaLG|@g^y=RSu26@an9*N_OEY?4 zlAnqx=@J5kMqyn8hgW@-k|uR_Nt;%(I78k{&)$yHA*;wC1@KX6@Pu|g9twFHHRQQU z+y6hSgpJ27i|gx6ICA(j*qA&VDEXS6Q;=XTaczP-zlie~06>p_vp*o_VFi+&njm1bA!|-=Zpxh!XBHCXg zVcq*=`ul>qoY8DYdU_T{rH+Nt!=uF<;zwXI zKeccJCt3N4D7-i%koo4037o4Fj*$sR(BG{sOeMeJBt9plk%RaN>~)MEHw9ik-sH^dBxhen{1(KwF$bNW_&);FQY`3fVzL;u z|H&T5OG`_gXh&;7z{U%aC-f*4+E~~oSh2cf0@0vVoPm;v$RPyAKL(ArR!o&`z2Ec$ z7=1QEBV896#SFLR^I^>U3Wb8#YPDQaQj#+>GgD|cfd)=UK3j|9Z7qDZelK?2SlS4l zwjSrwFm5cd0CAzVT(9ZB=D4pzJw^9Hu}O@DgM`52^fnc_T+aLZ`*V7|o^KZcy-k>Q zp&q+#Yj*O?4<(C9DIt9o6bTTCxs--6f0zt!62$G*zWX=X(BMm?k{DD^;_2IIu@5y= z6cxHi&>Ec&3=HIIYHA$6OQ4<=#-6D~)@>Iif0msZ4-0RQUUpd_wkQpwM^A!ZfM18S zPsN91tq>1s_bxR9Kff~JnevmrWHlimk_ZhAWvi;H_%;bx9Kr*?>TuH`>p&vo4}?Vt zo0#@s6^yMdOj}0rSJ+qhX$t~<^{-)gQYr#MgFB>sDqf_{iquFu{3Qd~m zf$TgC888u{Q4#IdKFvIVYN@Al&@mE!IJA8Bn+1C|f7?6;qN1Yg&G&~kt5LHqPe0voDS4H9Td3Jytp6+mkEhtrAep!l1Z`i0B>D zBJkm=K55C|LEe_R-lv4>Iq7gzTV1Kk`Q*LjSNDGXy$iS~DwWC+9UaZ(=jXS&Gk54r z+-Jm)p|a%Yf7JNYCY!i=MN<-kyq-rwuT(_G_ZD4+-lB&e_W~NZ>#A^#HV1$G z)S>Lc1KZQD?%T4JXKhv&a3}G12ib`oB=@&jop$Q~N+b;%rYN%OAMqLx{S4F1^FdyX z;0R^1ykC!pnW*?UnOv>$WMwKP$2oYb)na8y@8DRwsk*$}sIM+7Ir7tC{k2P1Y6|i$ zux11OCm$y%(3~C~9y|d~-G#q+@uJWkES)0IS_=pWU|5!ANS settingsToDump = new HashSet<>(Arrays.asList(settings.getStringArray(SONAR_SHOW_SETTINGS))); - if (!settingsToDump.isEmpty()) { - TreeMap treemap = new TreeMap(settings.getProperties()); - for (Entry prop : treemap.entrySet()) { - if (settingsToDump.contains(prop.getKey())) { - System.out.println(" o " + project.getKey() + ":" + prop.getKey() + " = " + prop.getValue()); - } - } - } - } -} diff --git a/tests/plugins/batch-plugin/src/main/java/com/sonarsource/RaiseMessageException.java b/tests/plugins/batch-plugin/src/main/java/com/sonarsource/RaiseMessageException.java deleted file mode 100644 index db8241cee47..00000000000 --- a/tests/plugins/batch-plugin/src/main/java/com/sonarsource/RaiseMessageException.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource; - -import org.sonar.api.batch.Sensor; -import org.sonar.api.batch.SensorContext; -import org.sonar.api.config.Settings; -import org.sonar.api.resources.Project; -import org.sonar.api.utils.MessageException; - -public class RaiseMessageException implements Sensor { - - private final Settings settings; - - public RaiseMessageException(Settings settings) { - this.settings = settings; - } - - @Override - public boolean shouldExecuteOnProject(Project project) { - return settings.getBoolean("raiseMessageException"); - } - - @Override - public void analyse(Project project, SensorContext sensorContext) { - throw MessageException.of("Error message from plugin"); - } -} \ No newline at end of file diff --git a/tests/plugins/batch-plugin/src/main/java/com/sonarsource/TempFolderExtension.java b/tests/plugins/batch-plugin/src/main/java/com/sonarsource/TempFolderExtension.java deleted file mode 100644 index 142474e7890..00000000000 --- a/tests/plugins/batch-plugin/src/main/java/com/sonarsource/TempFolderExtension.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource; - -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyType; -import org.sonar.api.batch.Initializer; -import org.sonar.api.config.Settings; -import org.sonar.api.resources.Project; -import org.sonar.api.utils.TempFolder; - -@Properties({ - @Property( - key = TempFolderExtension.CREATE_TEMP_FILES, - type = PropertyType.BOOLEAN, - name = "Property to decide if it should create temp files", - defaultValue = "false") -}) -public class TempFolderExtension extends Initializer { - - public static final String CREATE_TEMP_FILES = "sonar.createTempFiles"; - private Settings settings; - private TempFolder tempFolder; - - public TempFolderExtension(Settings settings, TempFolder tempFolder) { - this.settings = settings; - this.tempFolder = tempFolder; - } - - @Override - public boolean shouldExecuteOnProject(Project project) { - return true; - } - - @Override - public void execute(Project project) { - if (settings.getBoolean(CREATE_TEMP_FILES)) { - System.out.println("Creating temp directory: " + tempFolder.newDir("sonar-it").getAbsolutePath()); - System.out.println("Creating temp file: " + tempFolder.newFile("sonar-it", ".txt").getAbsolutePath()); - } - } -} diff --git a/tests/plugins/batch-plugin/src/main/java/com/sonarsource/WaitingSensor.java b/tests/plugins/batch-plugin/src/main/java/com/sonarsource/WaitingSensor.java deleted file mode 100644 index e0d3a9c030f..00000000000 --- a/tests/plugins/batch-plugin/src/main/java/com/sonarsource/WaitingSensor.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource; - -import org.sonar.api.batch.Sensor; -import org.sonar.api.batch.SensorContext; -import org.sonar.api.config.Settings; -import org.sonar.api.resources.Project; - -public class WaitingSensor implements Sensor { - private Settings settings; - - public WaitingSensor(Settings settings) { - this.settings = settings; - } - - @Override - public boolean shouldExecuteOnProject(Project project) { - return settings.getBoolean("sonar.it.enableWaitingSensor"); - } - - @Override - public void analyse(Project module, SensorContext context) { - try { - Thread.sleep(10_000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - -} diff --git a/tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleMeasureComputer.java b/tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleMeasureComputer.java deleted file mode 100644 index cbf79adc899..00000000000 --- a/tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleMeasureComputer.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource.decimal_scale_of_measures; - -import org.sonar.api.ce.measure.Measure; -import org.sonar.api.ce.measure.MeasureComputer; - -public class DecimalScaleMeasureComputer implements MeasureComputer { - - @Override - public MeasureComputerDefinition define(MeasureComputerDefinitionContext defContext) { - return defContext.newDefinitionBuilder() - // Output metrics must contains at least one metric - .setOutputMetrics(DecimalScaleMetric.KEY) - - .build(); - } - - @Override - public void compute(MeasureComputerContext context) { - if (context.getMeasure(DecimalScaleMetric.KEY) == null) { - Iterable childMeasures = context.getChildrenMeasures(DecimalScaleMetric.KEY); - int count = 0; - double total = 0.0; - for (Measure childMeasure : childMeasures) { - count++; - total += childMeasure.getDoubleValue(); - } - double value = 0.0; - if (count > 0) { - value = total / count; - } - context.addMeasure(DecimalScaleMetric.KEY, value); - } - } -} diff --git a/tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleMetric.java b/tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleMetric.java deleted file mode 100644 index ce29eb3b0d8..00000000000 --- a/tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleMetric.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource.decimal_scale_of_measures; - -import java.util.Collections; -import java.util.List; -import org.sonar.api.measures.Metric; -import org.sonar.api.measures.Metrics; - -public class DecimalScaleMetric implements Metrics { - - public static final String KEY = "decimal_scale"; - - private static final Metric METRIC = new Metric.Builder(KEY, "Decimal Scale", Metric.ValueType.FLOAT) - .setDescription("Numeric metric with overridden decimal scale") - .setDecimalScale(4) - .create(); - - @Override - public List getMetrics() { - return Collections.singletonList(definition()); - } - - public static Metric definition() { - return METRIC; - } -} diff --git a/tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleProperty.java b/tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleProperty.java deleted file mode 100644 index b831f72d44b..00000000000 --- a/tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleProperty.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource.decimal_scale_of_measures; - -import org.sonar.api.PropertyType; -import org.sonar.api.config.PropertyDefinition; - -public class DecimalScaleProperty { - - public static final String KEY = "sonar.scanner.feedDecimalScaleMetric"; - - public static PropertyDefinition definition() { - return PropertyDefinition.builder(KEY).name("Enable test decimal_scale_of_measures").type(PropertyType.BOOLEAN).defaultValue(String.valueOf(false)).build(); - } -} diff --git a/tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleSensor.java b/tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleSensor.java deleted file mode 100644 index d44dc7556a5..00000000000 --- a/tests/plugins/batch-plugin/src/main/java/com/sonarsource/decimal_scale_of_measures/DecimalScaleSensor.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package com.sonarsource.decimal_scale_of_measures; - -import org.sonar.api.batch.Sensor; -import org.sonar.api.batch.SensorContext; -import org.sonar.api.batch.fs.FilePredicate; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.resources.Project; -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.Loggers; - -public class DecimalScaleSensor implements Sensor { - private static final Logger LOG = Loggers.get(DecimalScaleSensor.class); - - @Override - public boolean shouldExecuteOnProject(Project project) { - return true; - } - - @Override - public void analyse(Project module, SensorContext context) { - if (context.settings().getBoolean(DecimalScaleProperty.KEY)) { - FilePredicate all = context.fileSystem().predicates().all(); - Iterable files = context.fileSystem().inputFiles(all); - double value = 0.0001; - for (InputFile file : files) { - LOG.info("Value for {}: {}", file.relativePath(), value); - context.newMeasure() - .on(file) - .forMetric(DecimalScaleMetric.definition()) - .withValue(value) - .save(); - value += 0.0001; - } - } - } -} diff --git a/tests/plugins/blue-green-plugin-v1/build.gradle b/tests/plugins/blue-green-plugin-v1/build.gradle deleted file mode 100644 index e2fef432b88..00000000000 --- a/tests/plugins/blue-green-plugin-v1/build.gradle +++ /dev/null @@ -1,26 +0,0 @@ -sonarqube { - skipProject = true -} - -dependencies { - compileOnly 'com.google.code.findbugs:jsr305' - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'bluegreen', - 'Plugin-Version': '1.0', - 'Plugin-Class': 'org.sonarqube.qa.bluegreen.BlueGreenPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'BlueGreen', - 'Plugin-License': 'GNU LGPL 3' - ) - } - into('META-INF/lib') { - from configurations.compile - } -} diff --git a/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/BlueGreenPlugin.java b/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/BlueGreenPlugin.java deleted file mode 100644 index 046347e345a..00000000000 --- a/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/BlueGreenPlugin.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import org.sonar.api.Plugin; - -public class BlueGreenPlugin implements Plugin { - - @Override - public void define(Context context) { - context.addExtensions( - BuiltInProfilesV1.class, - MetricsDefinitionV1.class, - PageDefinitionV1.class, - RulesDefinitionV1.class, - SensorV1.class); - } - -} diff --git a/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV1.java b/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV1.java deleted file mode 100644 index 911781faf52..00000000000 --- a/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV1.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import org.sonar.api.server.profile.BuiltInQualityProfilesDefinition; - -public class BuiltInProfilesV1 implements BuiltInQualityProfilesDefinition { - @Override - public void define(Context context) { - NewBuiltInQualityProfile profile = context.createBuiltInQualityProfile("Blue Profile", "xoo"); - profile.activateRule(RulesDefinitionV1.REPOSITORY_KEY, "a") - .overrideSeverity("BLOCKER"); - NewBuiltInActiveRule activeB = profile.activateRule(RulesDefinitionV1.REPOSITORY_KEY, "b") - .overrideSeverity("CRITICAL"); - activeB.overrideParam("p1", "one"); - activeB.overrideParam("p2", "two"); - profile.done(); - } -} - diff --git a/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/MetricsDefinitionV1.java b/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/MetricsDefinitionV1.java deleted file mode 100644 index e681d679d36..00000000000 --- a/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/MetricsDefinitionV1.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import java.util.Arrays; -import java.util.List; -import org.sonar.api.measures.Metric; -import org.sonar.api.measures.Metrics; - -public class MetricsDefinitionV1 implements Metrics { - @Override - public List getMetrics() { - return Arrays.asList( - new Metric.Builder("blue", "Blue", Metric.ValueType.INT).create(), - new Metric.Builder("bluegreen", "BlueGreen", Metric.ValueType.INT).create()); - } -} diff --git a/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/PageDefinitionV1.java b/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/PageDefinitionV1.java deleted file mode 100644 index d7cb207aa41..00000000000 --- a/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/PageDefinitionV1.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import org.sonar.api.web.page.Context; -import org.sonar.api.web.page.Page; -import org.sonar.api.web.page.PageDefinition; - -public class PageDefinitionV1 implements PageDefinition { - @Override - public void define(Context context) { - context - .addPage(Page.builder("bluegreen/global_page").setName("Blue Green Page").build()); - } -} diff --git a/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV1.java b/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV1.java deleted file mode 100644 index 4ef3ed24c01..00000000000 --- a/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV1.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import org.sonar.api.rules.RuleType; -import org.sonar.api.server.rule.RulesDefinition; - -public class RulesDefinitionV1 implements RulesDefinition { - - public static final String REPOSITORY_KEY = "bluegreen"; - - @Override - public void define(Context context) { - NewRepository repo = context.createRepository(REPOSITORY_KEY, "xoo").setName("BlueGreen"); - repo.createRule("a") - .setName("Rule A") - .setHtmlDescription("Rule A") - .setType(RuleType.VULNERABILITY); - NewRule ruleB = repo.createRule("b") - .setName("Rule B") - .setHtmlDescription("Rule B") - .setType(RuleType.VULNERABILITY); - ruleB.createParam("p1").setName("Param One"); - ruleB.createParam("p2").setName("Param Two"); - repo.done(); - } -} diff --git a/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/SensorV1.java b/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/SensorV1.java deleted file mode 100644 index 35004ad5893..00000000000 --- a/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/SensorV1.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.measure.MetricFinder; -import org.sonar.api.batch.sensor.Sensor; -import org.sonar.api.batch.sensor.SensorContext; -import org.sonar.api.batch.sensor.SensorDescriptor; -import org.sonar.api.batch.sensor.issue.NewIssue; -import org.sonar.api.rule.RuleKey; - -import static org.sonarqube.qa.bluegreen.RulesDefinitionV1.REPOSITORY_KEY; - -public class SensorV1 implements Sensor { - - private final MetricFinder metricFinder; - - public SensorV1(MetricFinder metricFinder) { - this.metricFinder = metricFinder; - } - - @Override - public void describe(SensorDescriptor descriptor) { - descriptor.createIssuesForRuleRepositories(REPOSITORY_KEY) - .onlyOnLanguage("xoo") - .name("BlueGreen V1"); - } - - @Override - public void execute(SensorContext context) { - for (InputFile inputFile : context.fileSystem().inputFiles(context.fileSystem().predicates().hasLanguage("xoo"))) { - saveIssue(context, inputFile, "a"); - saveIssue(context, inputFile, "b"); - } - - context.newMeasure() - .forMetric(metricFinder.findByKey("blue")) - .on(context.module()) - .withValue(10) - .save(); - context.newMeasure() - .forMetric(metricFinder.findByKey("bluegreen")) - .on(context.module()) - .withValue(20) - .save(); - } - - private void saveIssue(SensorContext context, InputFile inputFile, String ruleKey) { - NewIssue newIssue = context.newIssue(); - newIssue.at(newIssue.newLocation().on(inputFile).at(inputFile.selectLine(1))) - .forRule(RuleKey.of(REPOSITORY_KEY, ruleKey)) - .save(); - } - -} diff --git a/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/package-info.java b/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/package-info.java deleted file mode 100644 index 86d3578aa72..00000000000 --- a/tests/plugins/blue-green-plugin-v1/src/main/java/org/sonarqube/qa/bluegreen/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonarqube.qa.bluegreen; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/blue-green-plugin-v1/src/main/resources/static/global_page.js b/tests/plugins/blue-green-plugin-v1/src/main/resources/static/global_page.js deleted file mode 100644 index 257440f340b..00000000000 --- a/tests/plugins/blue-green-plugin-v1/src/main/resources/static/global_page.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -window.registerExtension('bluegreen/global_page', function (options) { - options.el.textContent = 'BLUE'; - return function () {}; -}); diff --git a/tests/plugins/blue-green-plugin-v2/build.gradle b/tests/plugins/blue-green-plugin-v2/build.gradle deleted file mode 100644 index 0730c13d390..00000000000 --- a/tests/plugins/blue-green-plugin-v2/build.gradle +++ /dev/null @@ -1,26 +0,0 @@ -sonarqube { - skipProject = true -} - -dependencies { - compileOnly 'com.google.code.findbugs:jsr305' - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'bluegreen', - 'Plugin-Version': '2.0', - 'Plugin-Class': 'org.sonarqube.qa.bluegreen.BlueGreenPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'BlueGreen', - 'Plugin-License': 'GNU LGPL 3' - ) - } - into('META-INF/lib') { - from configurations.compile - } -} diff --git a/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/BlueGreenPlugin.java b/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/BlueGreenPlugin.java deleted file mode 100644 index e10434bf6d6..00000000000 --- a/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/BlueGreenPlugin.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import org.sonar.api.Plugin; - -public class BlueGreenPlugin implements Plugin { - - @Override - public void define(Context context) { - context.addExtensions( - BuiltInProfilesV2.class, - MetricsDefinitionV2.class, - PageDefinitionV2.class, - RulesDefinitionV2.class, - SensorV2.class); - } - -} diff --git a/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV2.java b/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV2.java deleted file mode 100644 index 42434bd0218..00000000000 --- a/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV2.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import org.sonar.api.server.profile.BuiltInQualityProfilesDefinition; - -public class BuiltInProfilesV2 implements BuiltInQualityProfilesDefinition { - @Override - public void define(Context context) { - NewBuiltInQualityProfile profile = context.createBuiltInQualityProfile("Green Profile", "xoo"); - NewBuiltInActiveRule activeB = profile.activateRule(RulesDefinitionV2.REPOSITORY_KEY, "b") - .overrideSeverity("MINOR"); - activeB.overrideParam("p2", "two"); - activeB.overrideParam("p3", "three"); - profile.activateRule(RulesDefinitionV2.REPOSITORY_KEY, "c").overrideSeverity("INFO"); - profile.done(); - } -} - diff --git a/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/MetricsDefinitionV2.java b/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/MetricsDefinitionV2.java deleted file mode 100644 index 5b98a5dc136..00000000000 --- a/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/MetricsDefinitionV2.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import java.util.Arrays; -import java.util.List; -import org.sonar.api.measures.Metric; -import org.sonar.api.measures.Metrics; - -public class MetricsDefinitionV2 implements Metrics { - @Override - public List getMetrics() { - return Arrays.asList( - // the metric "blue" has been dropped - new Metric.Builder("bluegreen", "BlueGreen", Metric.ValueType.INT).create(), - new Metric.Builder("green", "Green", Metric.ValueType.INT).create()); - } -} diff --git a/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/PageDefinitionV2.java b/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/PageDefinitionV2.java deleted file mode 100644 index d9d64100abb..00000000000 --- a/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/PageDefinitionV2.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import org.sonar.api.web.page.Context; -import org.sonar.api.web.page.Page; -import org.sonar.api.web.page.PageDefinition; - -public class PageDefinitionV2 implements PageDefinition { - @Override - public void define(Context context) { - context - .addPage(Page.builder("bluegreen/global_page").setName("Blue Green Page").build()); - } -} diff --git a/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV2.java b/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV2.java deleted file mode 100644 index 41f563a506c..00000000000 --- a/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV2.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import org.sonar.api.rules.RuleType; -import org.sonar.api.server.rule.RulesDefinition; - -public class RulesDefinitionV2 implements RulesDefinition { - - public static final String REPOSITORY_KEY = "bluegreen"; - - @Override - public void define(Context context) { - NewRepository repo = context.createRepository(REPOSITORY_KEY, "xoo").setName("BlueGreen"); - NewRule ruleB = repo.createRule("b") - .setName("Rule B") - .setHtmlDescription("Rule B") - .setType(RuleType.VULNERABILITY); - ruleB.createParam("p2").setName("Param Two"); - ruleB.createParam("p3").setName("Param Three"); - - repo.createRule("c") - .setName("Rule C") - .setHtmlDescription("Rule C") - .setType(RuleType.VULNERABILITY); - repo.done(); - } -} diff --git a/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/SensorV2.java b/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/SensorV2.java deleted file mode 100644 index 3edd3c6aeaf..00000000000 --- a/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/SensorV2.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.measure.MetricFinder; -import org.sonar.api.batch.sensor.Sensor; -import org.sonar.api.batch.sensor.SensorContext; -import org.sonar.api.batch.sensor.SensorDescriptor; -import org.sonar.api.batch.sensor.issue.NewIssue; -import org.sonar.api.rule.RuleKey; - -import static org.sonarqube.qa.bluegreen.RulesDefinitionV2.REPOSITORY_KEY; - -public class SensorV2 implements Sensor { - - private final MetricFinder metricFinder; - - public SensorV2(MetricFinder metricFinder) { - this.metricFinder = metricFinder; - } - - @Override - public void describe(SensorDescriptor descriptor) { - descriptor.createIssuesForRuleRepositories(REPOSITORY_KEY) - .onlyOnLanguage("xoo") - .name("BlueGreen V2"); - } - - @Override - public void execute(SensorContext context) { - for (InputFile inputFile : context.fileSystem().inputFiles(context.fileSystem().predicates().hasLanguage("xoo"))) { - saveIssue(context, inputFile, "b"); - saveIssue(context, inputFile, "c"); - } - - context.newMeasure() - .forMetric(metricFinder.findByKey("bluegreen")) - .on(context.module()) - .withValue(30) - .save(); - context.newMeasure() - .forMetric(metricFinder.findByKey("green")) - .on(context.module()) - .withValue(40) - .save(); - } - - private void saveIssue(SensorContext context, InputFile inputFile, String ruleKey) { - NewIssue newIssue = context.newIssue(); - newIssue.at(newIssue.newLocation().on(inputFile).at(inputFile.selectLine(1))) - .forRule(RuleKey.of(REPOSITORY_KEY, ruleKey)) - .save(); - } - -} diff --git a/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/package-info.java b/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/package-info.java deleted file mode 100644 index 86d3578aa72..00000000000 --- a/tests/plugins/blue-green-plugin-v2/src/main/java/org/sonarqube/qa/bluegreen/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonarqube.qa.bluegreen; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/blue-green-plugin-v2/src/main/resources/static/global_page.js b/tests/plugins/blue-green-plugin-v2/src/main/resources/static/global_page.js deleted file mode 100644 index 2bf90efe4ed..00000000000 --- a/tests/plugins/blue-green-plugin-v2/src/main/resources/static/global_page.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -window.registerExtension('bluegreen/global_page', function (options) { - options.el.textContent = 'GREEN'; - return function () {}; -}); diff --git a/tests/plugins/blue-green-plugin/build.gradle b/tests/plugins/blue-green-plugin/build.gradle deleted file mode 100644 index 833f88f3230..00000000000 --- a/tests/plugins/blue-green-plugin/build.gradle +++ /dev/null @@ -1,29 +0,0 @@ -sonarqube { - skipProject = true -} - -dependencies { - compile 'com.google.guava:guava' - compile 'commons-io:commons-io' - compile 'commons-lang:commons-lang' - compileOnly 'com.google.code.findbugs:jsr305' - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'bluegreen', - 'Plugin-Version': version, - 'Plugin-Class': 'org.sonarqube.qa.bluegreen', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Foo', - 'Plugin-License': 'GNU LGPL 3' - ) - } - into('META-INF/lib') { - from configurations.compile - } -} diff --git a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/BlueGreenPlugin.java b/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/BlueGreenPlugin.java deleted file mode 100644 index f4ec4e56925..00000000000 --- a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/BlueGreenPlugin.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import java.util.Optional; -import org.sonar.api.Plugin; - -public class BlueGreenPlugin implements Plugin { - - @Override - public void define(Context context) { - Optional version = context.getBootConfiguration().get("bluegreenplugin.version"); - if (version.isPresent()) { - if (version.get().equals("1")) { - context.addExtension(RulesDefinitionV1.class); - - } else if (version.get().equals("2")) { - context.addExtension(RulesDefinitionV2.class); - - } - } - } - -} diff --git a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV1.java b/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV1.java deleted file mode 100644 index 79e14e0f947..00000000000 --- a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV1.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.sonarqube.qa.bluegreen; - -public class BuiltInProfileV1 { -} diff --git a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV2.java b/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV2.java deleted file mode 100644 index 131f1711d47..00000000000 --- a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/BuiltInProfilesV2.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.sonarqube.qa.bluegreen; - -import org.sonar.api.server.profile.BuiltInQualityProfilesDefinition; - -public class BuiltInProfilesV2 implements BuiltInQualityProfilesDefinition { - @Override - public void define(Context context) { - NewBuiltInQualityProfile profile = context.createBuiltInQualityProfile("Profile One", "xoo"); - profile.setDefault(true); - profile.activateRule(RulesDefinitionV1.REPOSITORY_KEY, "a").overrideSeverity("BLOCKER"); - profile.activateRule(RulesDefinitionV1.REPOSITORY_KEY, "b").overrideSeverity("CRITICAL"); - profile.done(); - } -} - diff --git a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RuleSensorV1.java b/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RuleSensorV1.java deleted file mode 100644 index 9ecea9bf5c2..00000000000 --- a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RuleSensorV1.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.StringReader; -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.sensor.Sensor; -import org.sonar.api.batch.sensor.SensorContext; -import org.sonar.api.batch.sensor.SensorDescriptor; -import org.sonar.api.batch.sensor.issue.NewIssue; -import org.sonar.api.rule.RuleKey; -import org.sonar.plugins.backdating.rule.BackRulesDefinition; - -public class RuleSensorV1 implements Sensor { - - @Override - public void describe(SensorDescriptor descriptor) { - descriptor.createIssuesForRuleRepositories(BackRulesDefinition.BACK_REPOSITORY) - .onlyOnLanguage("xoo") - .name("Back V1"); - } - - @Override - public void execute(SensorContext context) { - for (InputFile inputFile : context.fileSystem().inputFiles(context.fileSystem().predicates().hasLanguage("xoo"))) { - int lineNb = 0; - try { - BufferedReader reader = new BufferedReader(new StringReader(inputFile.contents())); - String line; - while ((line = reader.readLine()) != null) { - lineNb++; - if (line.contains("BACKV1")) { - NewIssue newIssue = context.newIssue(); - newIssue.at(newIssue.newLocation().on(inputFile).at(inputFile.selectLine(lineNb))) - .forRule(RuleKey.of(BackRulesDefinition.BACK_REPOSITORY, BackRulesDefinition.RULE_KEY)) - .save(); - } - } - } catch (IOException e) { - throw new IllegalStateException(e); - } - } - } - -} diff --git a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RuleSensorV2.java b/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RuleSensorV2.java deleted file mode 100644 index d3c18d64cb2..00000000000 --- a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RuleSensorV2.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonarqube.qa.bluegreen; - -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.sensor.Sensor; -import org.sonar.api.batch.sensor.SensorContext; -import org.sonar.api.batch.sensor.SensorDescriptor; -import org.sonar.api.batch.sensor.issue.NewIssue; -import org.sonar.api.rule.RuleKey; - -import static org.sonarqube.qa.bluegreen.RulesDefinitionV1.REPOSITORY_KEY; - -public class RuleSensorV2 implements Sensor { - - @Override - public void describe(SensorDescriptor descriptor) { - descriptor.createIssuesForRuleRepositories(REPOSITORY_KEY) - .onlyOnLanguage("xoo") - .name("BlueGreen V1"); - } - - @Override - public void execute(SensorContext context) { - for (InputFile inputFile : context.fileSystem().inputFiles(context.fileSystem().predicates().hasLanguage("xoo"))) { - saveIssue(context, inputFile, "a"); - saveIssue(context, inputFile, "b"); - } - } - - private void saveIssue(SensorContext context, InputFile inputFile, String ruleKey) { - NewIssue newIssue = context.newIssue(); - newIssue.at(newIssue.newLocation().on(inputFile).at(inputFile.selectLine(1))) - .forRule(RuleKey.of(REPOSITORY_KEY, ruleKey)) - .save(); - } - -} diff --git a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV1.java b/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV1.java deleted file mode 100644 index af58aeb2f0d..00000000000 --- a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV1.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.sonarqube.qa.bluegreen; - -public class RulesDefinitionV1 { -} diff --git a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV2.java b/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV2.java deleted file mode 100644 index 8b39095b356..00000000000 --- a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/RulesDefinitionV2.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.sonarqube.qa.bluegreen; - -import org.sonar.api.server.rule.RulesDefinition; - -public class RulesDefinitionV2 implements RulesDefinition { - - @Override - public void define(Context context) { - NewRepository repo = context.createRepository("bluegreen", "xoo").setName("BlueGreen"); - repo.createRule("a").setName("Rule A").setHtmlDescription("Rule A"); - repo.createRule("b").setName("Rule B").setHtmlDescription("Rule B"); - repo.done(); - } -} diff --git a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/package-info.java b/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/package-info.java deleted file mode 100644 index 86d3578aa72..00000000000 --- a/tests/plugins/blue-green-plugin/src/main/java/org/sonarqube/qa/bluegreen/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonarqube.qa.bluegreen; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/core-extension-fake-billing/build.gradle b/tests/plugins/core-extension-fake-billing/build.gradle deleted file mode 100644 index 3dc8a9030bb..00000000000 --- a/tests/plugins/core-extension-fake-billing/build.gradle +++ /dev/null @@ -1,4 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') - compileOnly project(':server:sonar-server') -} diff --git a/tests/plugins/core-extension-fake-billing/src/main/java/FakeBillingCoreExtension.java b/tests/plugins/core-extension-fake-billing/src/main/java/FakeBillingCoreExtension.java deleted file mode 100644 index 5a51bfa5918..00000000000 --- a/tests/plugins/core-extension-fake-billing/src/main/java/FakeBillingCoreExtension.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import org.sonar.api.SonarQubeSide; -import org.sonar.core.extension.CoreExtension; - -import static org.sonar.api.SonarQubeSide.COMPUTE_ENGINE; -import static org.sonar.api.SonarQubeSide.SERVER; - -public class FakeBillingCoreExtension implements CoreExtension { - @Override - public String getName() { - return "fake-billing"; - } - - @Override - public void load(Context context) { - SonarQubeSide sonarQubeSide = context.getRuntime().getSonarQubeSide(); - // Nothing should be loaded when the plugin is running within by the scanner - if (sonarQubeSide == SERVER || sonarQubeSide == COMPUTE_ENGINE) { - context.addExtension(FakeBillingValidations.class); - } - } - -} diff --git a/tests/plugins/core-extension-fake-billing/src/main/java/FakeBillingValidations.java b/tests/plugins/core-extension-fake-billing/src/main/java/FakeBillingValidations.java deleted file mode 100644 index fda45ca8b99..00000000000 --- a/tests/plugins/core-extension-fake-billing/src/main/java/FakeBillingValidations.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import org.sonar.api.config.Settings; -import org.sonar.server.organization.BillingValidationsExtension; - -import static java.lang.String.format; - -public class FakeBillingValidations implements BillingValidationsExtension { - - private static final String PREVENT_PROJECT_ANALYSIS_SETTING = "sonar.billing.preventProjectAnalysis"; - private static final String PREVENT_UPDATING_PROJECTS_VISIBILITY_TO_PRIVATE_SETTING = "sonar.billing.preventUpdatingProjectsVisibilityToPrivate"; - - private final Settings settings; - - public FakeBillingValidations(Settings settings) { - this.settings = settings; - } - - @Override - public void checkOnProjectAnalysis(Organization organization) { - boolean preventProjectAnalysis = settings.getBoolean(PREVENT_PROJECT_ANALYSIS_SETTING); - if (preventProjectAnalysis) { - throw new BillingValidationsException(format("Organization %s cannot perform analysis", organization.getKey())); - } - } - - @Override - public void checkCanUpdateProjectVisibility(Organization organization, boolean updateToPrivate) { - boolean preventUpdatingProjectsToPrivate = settings.getBoolean(PREVENT_UPDATING_PROJECTS_VISIBILITY_TO_PRIVATE_SETTING); - if (preventUpdatingProjectsToPrivate) { - throw new BillingValidationsException(format("Organization %s cannot use private project", organization.getKey())); - } - } - - @Override - public boolean canUpdateProjectVisibilityToPrivate(Organization organization) { - if (!settings.hasKey(PREVENT_UPDATING_PROJECTS_VISIBILITY_TO_PRIVATE_SETTING)) { - return true; - } - return !settings.getBoolean(PREVENT_UPDATING_PROJECTS_VISIBILITY_TO_PRIVATE_SETTING); - } - - @Override - public void onDelete(Organization organization) { - // do nothing - } -} diff --git a/tests/plugins/core-extension-fake-billing/src/main/resources/META-INF/services/org.sonar.core.extension.CoreExtension b/tests/plugins/core-extension-fake-billing/src/main/resources/META-INF/services/org.sonar.core.extension.CoreExtension deleted file mode 100644 index f8adf894e60..00000000000 --- a/tests/plugins/core-extension-fake-billing/src/main/resources/META-INF/services/org.sonar.core.extension.CoreExtension +++ /dev/null @@ -1 +0,0 @@ -FakeBillingCoreExtension diff --git a/tests/plugins/core-extension-fake-billing/src/main/resources/org/sonar/l10n/billing.properties b/tests/plugins/core-extension-fake-billing/src/main/resources/org/sonar/l10n/billing.properties deleted file mode 100644 index f8ac8fcaef5..00000000000 --- a/tests/plugins/core-extension-fake-billing/src/main/resources/org/sonar/l10n/billing.properties +++ /dev/null @@ -1,2 +0,0 @@ -billing.upgrade_box.header=The fake billing plugin is installed -billing.upgrade_box.text=It shows how to change the wording and hide the "Upgrade" button. \ No newline at end of file diff --git a/tests/plugins/core-extension-it-tests/build.gradle b/tests/plugins/core-extension-it-tests/build.gradle deleted file mode 100644 index 3dc8a9030bb..00000000000 --- a/tests/plugins/core-extension-it-tests/build.gradle +++ /dev/null @@ -1,4 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') - compileOnly project(':server:sonar-server') -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/ItTestsCoreExtension.java b/tests/plugins/core-extension-it-tests/src/main/java/ItTestsCoreExtension.java deleted file mode 100644 index f38bf272205..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/ItTestsCoreExtension.java +++ /dev/null @@ -1,73 +0,0 @@ - -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import ce.BombConfig; -import ce.ComponentBombReportAnalysisComponentProvider; -import ce.IseTaskProcessor; -import ce.OkTaskProcessor; -import ce.OomTaskProcessor; -import ce.ws.BombActivatorAction; -import ce.ws.FakeGovWs; -import ce.ws.SubmitAction; -import org.sonar.api.SonarQubeSide; -import org.sonar.core.extension.CoreExtension; -import systemPasscode.SystemPasscodeWebService; -import workerCount.FakeWorkerCountProviderImpl; -import workerCount.RefreshWorkerCountAction; -import workerlatch.LatchControllerWorkerMeasureComputer; -import workerlatch.WorkerLatchMetrics; - -import static org.sonar.api.SonarQubeSide.COMPUTE_ENGINE; -import static org.sonar.api.SonarQubeSide.SERVER; - -public class ItTestsCoreExtension implements CoreExtension { - @Override - public String getName() { - return "it-tests"; - } - - @Override - public void load(Context context) { - // Nothing should be loaded when the plugin is running within by the scanner - SonarQubeSide sonarQubeSide = context.getRuntime().getSonarQubeSide(); - if (sonarQubeSide == COMPUTE_ENGINE || sonarQubeSide == SERVER) { - context.addExtension(FakeWorkerCountProviderImpl.class); - context.addExtension(WorkerLatchMetrics.class); - context.addExtension(LatchControllerWorkerMeasureComputer.class); - context.addExtension(RefreshWorkerCountAction.class); - context.addExtension(SystemPasscodeWebService.class); - - // WS api/fake_gov - context.addExtension(FakeGovWs.class); - - // failing CE tasks - context.addExtension(SubmitAction.class); - context.addExtension(OomTaskProcessor.class); - context.addExtension(IseTaskProcessor.class); - context.addExtension(OkTaskProcessor.class); - - // component bombs injection into the Report Analysis processing container in the CE - context.addExtension(BombConfig.class); - context.addExtension(ComponentBombReportAnalysisComponentProvider.class); - context.addExtension(BombActivatorAction.class); - } - } - -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/ce/BombConfig.java b/tests/plugins/core-extension-it-tests/src/main/java/ce/BombConfig.java deleted file mode 100644 index d6fdd5d5e49..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/ce/BombConfig.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package ce; - -import org.sonar.api.ce.ComputeEngineSide; -import org.sonar.api.server.ServerSide; -import org.sonar.db.DbClient; -import org.sonar.db.DbSession; - -@ServerSide -@ComputeEngineSide -public class BombConfig { - private static final String OOM_START_BOMB_KEY = "oomStartBomb"; - private static final String ISE_START_BOMB_KEY = "iseStartBomb"; - private static final String OOM_STOP_BOMB_KEY = "oomStopBomb"; - private static final String ISE_STOP_BOMB_KEY = "iseStopBomb"; - - private final DbClient dbClient; - - public BombConfig(DbClient dbClient) { - this.dbClient = dbClient; - } - - public void reset() { - try (DbSession dbSession = dbClient.openSession(false)) { - dbClient.internalPropertiesDao().save(dbSession, OOM_START_BOMB_KEY, String.valueOf(false)); - dbClient.internalPropertiesDao().save(dbSession, ISE_START_BOMB_KEY, String.valueOf(false)); - dbClient.internalPropertiesDao().save(dbSession, OOM_STOP_BOMB_KEY, String.valueOf(false)); - dbClient.internalPropertiesDao().save(dbSession, ISE_STOP_BOMB_KEY, String.valueOf(false)); - dbSession.commit(); - } - } - - public boolean isOomStartBomb() { - try (DbSession dbSession = dbClient.openSession(false)) { - return dbClient.internalPropertiesDao().selectByKey(dbSession, OOM_START_BOMB_KEY).map(Boolean::valueOf).orElse(false); - } - } - - public void setOomStartBomb(boolean oomStartBomb) { - try (DbSession dbSession = dbClient.openSession(false)) { - dbClient.internalPropertiesDao().save(dbSession, OOM_START_BOMB_KEY, String.valueOf(oomStartBomb)); - dbSession.commit(); - } - } - - public boolean isIseStartBomb() { - try (DbSession dbSession = dbClient.openSession(false)) { - return dbClient.internalPropertiesDao().selectByKey(dbSession, ISE_START_BOMB_KEY).map(Boolean::valueOf).orElse(false); - } - } - - public void setIseStartBomb(boolean iseStartBomb) { - try (DbSession dbSession = dbClient.openSession(false)) { - dbClient.internalPropertiesDao().save(dbSession, ISE_START_BOMB_KEY, String.valueOf(iseStartBomb)); - dbSession.commit(); - } - } - - public boolean isOomStopBomb() { - try (DbSession dbSession = dbClient.openSession(false)) { - return dbClient.internalPropertiesDao().selectByKey(dbSession, OOM_STOP_BOMB_KEY).map(Boolean::valueOf).orElse(false); - } - } - - public void setOomStopBomb(boolean oomStopBomb) { - try (DbSession dbSession = dbClient.openSession(false)) { - dbClient.internalPropertiesDao().save(dbSession, OOM_STOP_BOMB_KEY, String.valueOf(oomStopBomb)); - dbSession.commit(); - } - } - - public boolean isIseStopBomb() { - try (DbSession dbSession = dbClient.openSession(false)) { - return dbClient.internalPropertiesDao().selectByKey(dbSession, ISE_STOP_BOMB_KEY).map(Boolean::valueOf).orElse(false); - } - } - - public void setIseStopBomb(boolean iseStopBomb) { - try (DbSession dbSession = dbClient.openSession(false)) { - dbClient.internalPropertiesDao().save(dbSession, ISE_STOP_BOMB_KEY, String.valueOf(iseStopBomb)); - dbSession.commit(); - } - } -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/ce/ComponentBombReportAnalysisComponentProvider.java b/tests/plugins/core-extension-it-tests/src/main/java/ce/ComponentBombReportAnalysisComponentProvider.java deleted file mode 100644 index 2b2ea4eee9b..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/ce/ComponentBombReportAnalysisComponentProvider.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package ce; - -import java.util.List; -import org.picocontainer.Startable; -import org.sonar.plugin.ce.ReportAnalysisComponentProvider; -import org.sonar.server.computation.task.container.EagerStart; - -import static java.util.Collections.emptyList; -import static java.util.Collections.singletonList; - -public class ComponentBombReportAnalysisComponentProvider implements ReportAnalysisComponentProvider { - private final BombConfig bombConfig; - - public ComponentBombReportAnalysisComponentProvider(BombConfig bombConfig) { - this.bombConfig = bombConfig; - } - - @Override - public List getComponents() { - if (bombConfig.isOomStartBomb()) { - return singletonList(OOMFailingStartComponent.class); - } - if (bombConfig.isIseStartBomb()) { - return singletonList(ISEFailingStartComponent.class); - } - if (bombConfig.isOomStopBomb()) { - return singletonList(OOMFailingStopComponent.class); - } - if (bombConfig.isIseStopBomb()) { - return singletonList(ISEFailingStopComponent.class); - } - return emptyList(); - } - - @EagerStart - public static final class OOMFailingStartComponent implements Startable { - - @Override - public void start() { - OOMGenerator.consumeAvailableMemory(); - } - - @Override - public void stop() { - // nothing to do - } - } - - @EagerStart - public static final class ISEFailingStartComponent implements Startable { - - @Override - public void start() { - throw new IllegalStateException("Faking an IllegalStateException thrown by a startable component in the Analysis Report processing container"); - } - - @Override - public void stop() { - // nothing to do - } - } - - @EagerStart - public static final class OOMFailingStopComponent implements Startable { - - @Override - public void start() { - // nothing to do - } - - @Override - public void stop() { - OOMGenerator.consumeAvailableMemory(); - } - } - - @EagerStart - public static final class ISEFailingStopComponent implements Startable { - - @Override - public void start() { - // nothing to do - } - - @Override - public void stop() { - throw new IllegalStateException("Faking an IllegalStateException thrown by a stoppable component in the Analysis Report processing container"); - } - } -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/ce/IseTaskProcessor.java b/tests/plugins/core-extension-it-tests/src/main/java/ce/IseTaskProcessor.java deleted file mode 100644 index 40b11ec079d..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/ce/IseTaskProcessor.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package ce; - -import java.util.Collections; -import java.util.Set; -import org.sonar.ce.queue.CeTask; -import org.sonar.ce.queue.CeTaskResult; -import org.sonar.ce.taskprocessor.CeTaskProcessor; - -public class IseTaskProcessor implements CeTaskProcessor { - @Override - public Set getHandledCeTaskTypes() { - return Collections.singleton("ISE"); - } - - @Override - public CeTaskResult process(CeTask task) { - throw new IllegalStateException("Faking an IllegalStateException thrown processing a task"); - } -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/ce/OOMGenerator.java b/tests/plugins/core-extension-it-tests/src/main/java/ce/OOMGenerator.java deleted file mode 100644 index e8673412fc2..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/ce/OOMGenerator.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package ce; - -import java.util.ArrayList; -import java.util.List; - -public final class OOMGenerator { - private OOMGenerator() { - // prevents instantiation - } - - public static List consumeAvailableMemory() { - List holder = new ArrayList<>(); - while (true) { - holder.add(new byte[128 * 1024]); - } - } -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/ce/OkTaskProcessor.java b/tests/plugins/core-extension-it-tests/src/main/java/ce/OkTaskProcessor.java deleted file mode 100644 index 88d9abaf013..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/ce/OkTaskProcessor.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package ce; - -import java.util.Collections; -import java.util.Optional; -import java.util.Set; -import org.sonar.ce.queue.CeTask; -import org.sonar.ce.queue.CeTaskResult; -import org.sonar.ce.taskprocessor.CeTaskProcessor; - -public class OkTaskProcessor implements CeTaskProcessor { - @Override - public Set getHandledCeTaskTypes() { - return Collections.singleton("OK"); - } - - @Override - public CeTaskResult process(CeTask task) { - return Optional::empty; - } - - -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/ce/OomTaskProcessor.java b/tests/plugins/core-extension-it-tests/src/main/java/ce/OomTaskProcessor.java deleted file mode 100644 index a79c71f0ec7..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/ce/OomTaskProcessor.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package ce; - -import java.util.Collections; -import java.util.Set; -import org.sonar.ce.queue.CeTask; -import org.sonar.ce.queue.CeTaskResult; -import org.sonar.ce.taskprocessor.CeTaskProcessor; - -public class OomTaskProcessor implements CeTaskProcessor { - @Override - public Set getHandledCeTaskTypes() { - return Collections.singleton("OOM"); - } - - @Override - public CeTaskResult process(CeTask task) { - OOMGenerator.consumeAvailableMemory(); - return null; - } -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/ce/ws/BombActivatorAction.java b/tests/plugins/core-extension-it-tests/src/main/java/ce/ws/BombActivatorAction.java deleted file mode 100644 index 31be2ce3bc1..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/ce/ws/BombActivatorAction.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package ce.ws; - -import ce.BombConfig; -import java.util.Arrays; -import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.Response; -import org.sonar.api.server.ws.WebService; - -import static java.util.stream.Collectors.toList; - -public class BombActivatorAction implements FakeGoVWsAction { - - private static final String PARAM_BOMB_TYPE = "type"; - - private final BombConfig bombConfig; - - public BombActivatorAction(BombConfig bombConfig) { - this.bombConfig = bombConfig; - } - - @Override - public void define(WebService.NewController controller) { - WebService.NewAction action = controller.createAction("activate_bomb") - .setPost(true) - .setHandler(this); - action.createParam(PARAM_BOMB_TYPE) - .setRequired(true) - .setPossibleValues(Arrays.stream(BombType.values()).map(Enum::toString).collect(toList())); - } - - @Override - public void handle(Request request, Response response) { - BombType bombType = BombType.valueOf(request.mandatoryParam(PARAM_BOMB_TYPE)); - - bombConfig.reset(); - switch (bombType) { - case ISE_START: - bombConfig.setIseStartBomb(true); - break; - case OOM_START: - bombConfig.setOomStartBomb(true); - break; - case ISE_STOP: - bombConfig.setIseStopBomb(true); - break; - case OOM_STOP: - bombConfig.setOomStopBomb(true); - break; - case NONE: - break; - default: - throw new IllegalArgumentException("Unsupported bomb type " + bombType); - } - - response.noContent(); - } - - enum BombType { - NONE, OOM_START, ISE_START, OOM_STOP, ISE_STOP - - } - -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/ce/ws/FakeGoVWsAction.java b/tests/plugins/core-extension-it-tests/src/main/java/ce/ws/FakeGoVWsAction.java deleted file mode 100644 index 58fb69a8b72..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/ce/ws/FakeGoVWsAction.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package ce.ws; - -import org.sonar.server.ws.WsAction; - -public interface FakeGoVWsAction extends WsAction { -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/ce/ws/FakeGovWs.java b/tests/plugins/core-extension-it-tests/src/main/java/ce/ws/FakeGovWs.java deleted file mode 100644 index 41a49841088..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/ce/ws/FakeGovWs.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package ce.ws; - -import java.util.Arrays; -import org.sonar.api.server.ws.WebService; - -public class FakeGovWs implements WebService { - private final FakeGoVWsAction[] actions; - - public FakeGovWs(FakeGoVWsAction[] actions) { - this.actions = actions; - } - - @Override - public void define(Context context) { - NewController controller = context.createController("api/fake_gov"); - Arrays.stream(actions).forEach(action -> action.define(controller)); - controller.done(); - } -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/ce/ws/SubmitAction.java b/tests/plugins/core-extension-it-tests/src/main/java/ce/ws/SubmitAction.java deleted file mode 100644 index fb47686044e..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/ce/ws/SubmitAction.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package ce.ws; - -import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.Response; -import org.sonar.api.server.ws.WebService; -import org.sonar.ce.queue.CeQueue; -import org.sonar.ce.queue.CeTaskSubmit; - -public class SubmitAction implements FakeGoVWsAction { - - private static final String PARAM_TYPE = "type"; - - private final CeQueue ceQueue; - - public SubmitAction(CeQueue ceQueue) { - this.ceQueue = ceQueue; - } - - @Override - public void define(WebService.NewController controller) { - WebService.NewAction action = controller.createAction("submit") - .setPost(true) - .setHandler(this); - action.createParam(PARAM_TYPE) - .setRequired(true) - .setPossibleValues("OOM", "OK", "ISE"); - } - - @Override - public void handle(Request request, Response response) { - String type = request.mandatoryParam(PARAM_TYPE); - - CeTaskSubmit.Builder submit = ceQueue.prepareSubmit(); - submit.setType(type); - - ceQueue.submit(submit.build()); - response.noContent(); - } -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/systemPasscode/SystemPasscodeWebService.java b/tests/plugins/core-extension-it-tests/src/main/java/systemPasscode/SystemPasscodeWebService.java deleted file mode 100644 index b1682ae6656..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/systemPasscode/SystemPasscodeWebService.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package systemPasscode; - -import java.net.HttpURLConnection; -import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; -import org.sonar.api.server.ws.Response; -import org.sonar.api.server.ws.WebService; -import org.sonar.server.user.SystemPasscode; - -public class SystemPasscodeWebService implements WebService, RequestHandler { - private final SystemPasscode passcode; - - public SystemPasscodeWebService(SystemPasscode passcode) { - this.passcode = passcode; - } - - @Override - public void define(Context context) { - NewController controller = context.createController("api/system_passcode"); - controller.createAction("check").setHandler(this); - controller.done(); - } - - @Override - public void handle(Request request, Response response) { - if (!passcode.isValid(request)) { - response.stream().setStatus(HttpURLConnection.HTTP_UNAUTHORIZED); - } - } -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/workerCount/FakeWorkerCountProviderImpl.java b/tests/plugins/core-extension-it-tests/src/main/java/workerCount/FakeWorkerCountProviderImpl.java deleted file mode 100644 index 780b0518780..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/workerCount/FakeWorkerCountProviderImpl.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package workerCount; - -import org.sonar.api.config.Configuration; -import org.sonar.ce.configuration.WorkerCountProvider; - -public class FakeWorkerCountProviderImpl implements WorkerCountProvider { - - static final String PROPERTY_WORKER_COUNT = "fakeGovernance.workerCount"; - - private final Configuration configuration; - - public FakeWorkerCountProviderImpl(Configuration configuration) { - this.configuration = configuration; - } - - @Override - public int get() { - return configuration.get(PROPERTY_WORKER_COUNT).map(Integer::valueOf).orElse(1); - } - -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/workerCount/RefreshWorkerCountAction.java b/tests/plugins/core-extension-it-tests/src/main/java/workerCount/RefreshWorkerCountAction.java deleted file mode 100644 index df37590a2ab..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/workerCount/RefreshWorkerCountAction.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package workerCount; - -import org.sonar.api.server.ServerSide; -import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.Response; -import org.sonar.api.server.ws.WebService; -import org.sonar.ce.http.CeHttpClient; -import org.sonar.db.DbClient; -import org.sonar.db.DbSession; -import org.sonar.db.property.PropertyDto; -import org.sonar.server.ce.ws.CeWsAction; - -import static workerCount.FakeWorkerCountProviderImpl.PROPERTY_WORKER_COUNT; - -@ServerSide -public class RefreshWorkerCountAction implements CeWsAction { - private static final String PARAM_COUNT = "count"; - - private final CeHttpClient ceHttpClient; - private final DbClient dbClient; - - public RefreshWorkerCountAction(CeHttpClient ceHttpClient, DbClient dbClient) { - this.ceHttpClient = ceHttpClient; - this.dbClient = dbClient; - } - - @Override - public void define(WebService.NewController controller) { - controller.createAction("refreshWorkerCount") - .setPost(true) - .setHandler(this) - .createParam(PARAM_COUNT) - .setPossibleValues("1", "2", "3", "4", "5", "6", "7", "8", "9", "10") - .setRequired(true); - } - - @Override - public void handle(Request request, Response response) { - String count = request.getParam(PARAM_COUNT).getValue(); - try (DbSession dbSession = dbClient.openSession(false)) { - dbClient.propertiesDao().saveProperty(new PropertyDto() - .setKey(PROPERTY_WORKER_COUNT) - .setValue(count)); - dbSession.commit(); - } - ceHttpClient.refreshCeWorkerCount(); - } -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/workerlatch/LatchControllerWorkerMeasureComputer.java b/tests/plugins/core-extension-it-tests/src/main/java/workerlatch/LatchControllerWorkerMeasureComputer.java deleted file mode 100644 index 65297544391..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/workerlatch/LatchControllerWorkerMeasureComputer.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package workerlatch; - -import java.io.File; -import java.io.IOException; -import java.io.RandomAccessFile; -import java.nio.MappedByteBuffer; -import java.nio.channels.FileChannel; -import org.sonar.api.ce.measure.Component; -import org.sonar.api.ce.measure.MeasureComputer; -import org.sonar.api.config.Configuration; -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.Loggers; - -public class LatchControllerWorkerMeasureComputer implements MeasureComputer { - private static final Logger LOG = Loggers.get(LatchControllerWorkerMeasureComputer.class); - private static final String WORKER_LATCH_SHARED_MEMORY_FILE_PATH = "itTests.workerLatch.sharedMemoryFile"; - - private static final int WAIT = 200; // ms - private static final int MAX_WAIT_ROUND = 5 * 60 * 2; // 2 minutes - - private static final int MAX_SHARED_MEMORY = 1; - private static final byte UNLATCHED = (byte) 0x01; - - private final File sharedMemory; - - public LatchControllerWorkerMeasureComputer(Configuration configuration) { - this.sharedMemory = configuration.get(WORKER_LATCH_SHARED_MEMORY_FILE_PATH) - .map(path -> { - File file = new File(path); - if (file.exists() && file.isFile()) { - return file; - } - LOG.info("Latch sharedMemory file {} is not a file or does not exist", path); - return null; - }) - .orElse(null); - } - - private boolean isLatchEnabled() { - return sharedMemory != null; - } - - @Override - public MeasureComputerDefinition define(MeasureComputerDefinitionContext defContext) { - return defContext.newDefinitionBuilder() - .setOutputMetrics(WorkerLatchMetrics.METRIC_KEY) - .build(); - } - - @Override - public void compute(MeasureComputerContext context) { - Component component = context.getComponent(); - if (isLatchEnabled() && component.getType() == Component.Type.PROJECT) { - context.addMeasure(WorkerLatchMetrics.METRIC_KEY, waitForUnlatched(component.getKey())); - } else { - context.addMeasure(WorkerLatchMetrics.METRIC_KEY, false); - } - } - - private boolean waitForUnlatched(String key) { - RandomAccessFile randomAccessFile = null; - try { - randomAccessFile = new RandomAccessFile(sharedMemory, "rw"); - MappedByteBuffer mappedByteBuffer = randomAccessFile.getChannel().map(FileChannel.MapMode.READ_WRITE, 0, MAX_SHARED_MEMORY); - int i = 0; - boolean unlatched = isUnlatched(mappedByteBuffer); - while (!unlatched && i < MAX_WAIT_ROUND) { - waitInterruptedly(); - i++; - unlatched = isUnlatched(mappedByteBuffer); - } - LOG.info("Project {} unlatched={} i={}", key, unlatched, i); - - return true; - } catch (IOException e) { - LOG.error("Failed to read or write to shared memory", e); - return false; - } finally { - if (randomAccessFile != null) { - try { - randomAccessFile.close(); - } catch (IOException e) { - LOG.error("Failed to close randomAccessFile", e); - } - } - } - } - - private static void waitInterruptedly() { - try { - Thread.sleep(WAIT); - } catch (InterruptedException e) { - LOG.error("Wait was interrupted"); - } - } - - private boolean isUnlatched(MappedByteBuffer mappedByteBuffer) { - return mappedByteBuffer.get(0) == UNLATCHED; - } - -} diff --git a/tests/plugins/core-extension-it-tests/src/main/java/workerlatch/WorkerLatchMetrics.java b/tests/plugins/core-extension-it-tests/src/main/java/workerlatch/WorkerLatchMetrics.java deleted file mode 100644 index 7b31a6c666a..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/java/workerlatch/WorkerLatchMetrics.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package workerlatch; - -import java.util.Collections; -import java.util.List; -import org.sonar.api.measures.Metric; -import org.sonar.api.measures.Metrics; - -public class WorkerLatchMetrics implements Metrics { - static final String METRIC_KEY = "WORKER_LATCH"; - - @Override - public List getMetrics() { - return Collections.singletonList( - new Metric.Builder(METRIC_KEY, "Worker latch", Metric.ValueType.BOOL) - .setHidden(true) - .create()); - } -} diff --git a/tests/plugins/core-extension-it-tests/src/main/resources/META-INF/services/org.sonar.core.extension.CoreExtension b/tests/plugins/core-extension-it-tests/src/main/resources/META-INF/services/org.sonar.core.extension.CoreExtension deleted file mode 100644 index 058722722b9..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/resources/META-INF/services/org.sonar.core.extension.CoreExtension +++ /dev/null @@ -1 +0,0 @@ -ItTestsCoreExtension diff --git a/tests/plugins/core-extension-it-tests/src/main/resources/org/sonar/l10n/billing.properties b/tests/plugins/core-extension-it-tests/src/main/resources/org/sonar/l10n/billing.properties deleted file mode 100644 index f8ac8fcaef5..00000000000 --- a/tests/plugins/core-extension-it-tests/src/main/resources/org/sonar/l10n/billing.properties +++ /dev/null @@ -1,2 +0,0 @@ -billing.upgrade_box.header=The fake billing plugin is installed -billing.upgrade_box.text=It shows how to change the wording and hide the "Upgrade" button. \ No newline at end of file diff --git a/tests/plugins/extension-lifecycle-plugin/build.gradle b/tests/plugins/extension-lifecycle-plugin/build.gradle deleted file mode 100644 index 20f8c7aaf11..00000000000 --- a/tests/plugins/extension-lifecycle-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'extension-lifecycle-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'ExtensionLifecyclePlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Plugins :: Extension Lifecycle', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/extension-lifecycle-plugin/src/main/java/BatchService.java b/tests/plugins/extension-lifecycle-plugin/src/main/java/BatchService.java deleted file mode 100644 index b39092e13f8..00000000000 --- a/tests/plugins/extension-lifecycle-plugin/src/main/java/BatchService.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.BatchExtension; -import org.sonar.api.batch.InstantiationStrategy; -import org.sonar.api.config.Settings; - -@InstantiationStrategy(InstantiationStrategy.PER_BATCH) -public class BatchService implements BatchExtension { - private boolean started=false; - private int projectServices=0; - private Settings settings; - - public BatchService(Settings settings) { - this.settings = settings; - } - - public void start() { - if (!settings.getBoolean("extension.lifecycle")) { - return; - } - System.out.println("Start BatchService"); - if (started) { - throw new IllegalStateException("Already started"); - } - if (projectServices>0) { - throw new IllegalStateException("BatchService must be started before ProjectServices"); - } - started=true; - } - - public boolean isStarted() { - return started; - } - - public void stop() { - if (!settings.getBoolean("extension.lifecycle")) { - return; - } - System.out.println("Stop BatchService"); - if (!started) { - System.out.println("BatchService is not started !"); - System.exit(1); - } - if (projectServices!=3) { - // there are three maven modules in the project extension-lifecycle (pom + 2 modules) - System.out.println("Invalid nb of ProjectServices: " + projectServices); - System.exit(1); - } - started=false; - } - - public void incrementProjectService() { - projectServices++; - } -} diff --git a/tests/plugins/extension-lifecycle-plugin/src/main/java/ExtensionLifecyclePlugin.java b/tests/plugins/extension-lifecycle-plugin/src/main/java/ExtensionLifecyclePlugin.java deleted file mode 100644 index 1e51eef77ea..00000000000 --- a/tests/plugins/extension-lifecycle-plugin/src/main/java/ExtensionLifecyclePlugin.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.SonarPlugin; - -import java.util.Arrays; -import java.util.List; - -public class ExtensionLifecyclePlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(BatchService.class, ProjectService.class, ServerService.class); - } -} diff --git a/tests/plugins/extension-lifecycle-plugin/src/main/java/ProjectService.java b/tests/plugins/extension-lifecycle-plugin/src/main/java/ProjectService.java deleted file mode 100644 index 3a3ef5d75d4..00000000000 --- a/tests/plugins/extension-lifecycle-plugin/src/main/java/ProjectService.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.BatchExtension; -import org.sonar.api.config.Settings; - -/** - * As many instances as projects (maven modules) - */ -public class ProjectService implements BatchExtension { - - private BatchService batchService; - private Settings settings; - - public ProjectService(BatchService batchService, Settings settings) { - this.batchService = batchService; - this.settings = settings; - } - - public void start() { - if (!settings.getBoolean("extension.lifecycle")) { - return; - } - System.out.println("Start ProjectService"); - - if (!batchService.isStarted()) { - throw new IllegalStateException("ProjectService must be started after BatchService"); - } - batchService.incrementProjectService(); - } - - public void stop() { - if (!settings.getBoolean("extension.lifecycle")) { - return; - } - System.out.println("Stop ProjectService"); - if (!batchService.isStarted()) { - System.out.println("ProjectService must be stopped before BatchService"); - System.exit(1); - } - } -} diff --git a/tests/plugins/extension-lifecycle-plugin/src/main/java/ServerService.java b/tests/plugins/extension-lifecycle-plugin/src/main/java/ServerService.java deleted file mode 100644 index 0487bd71c6b..00000000000 --- a/tests/plugins/extension-lifecycle-plugin/src/main/java/ServerService.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.ServerExtension; - -public class ServerService implements ServerExtension { -} diff --git a/tests/plugins/foo-plugin-v1/build.gradle b/tests/plugins/foo-plugin-v1/build.gradle deleted file mode 100644 index a1eed2ef89e..00000000000 --- a/tests/plugins/foo-plugin-v1/build.gradle +++ /dev/null @@ -1,29 +0,0 @@ -sonarqube { - skipProject = true -} - -dependencies { - compile 'com.google.guava:guava' - compile 'commons-io:commons-io' - compile 'commons-lang:commons-lang' - compileOnly 'com.google.code.findbugs:jsr305' - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'foo', - 'Plugin-Version': version, - 'Plugin-Class': 'org.sonar.foo.FooPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Foo', - 'Plugin-License': 'GNU LGPL 3' - ) - } - into('META-INF/lib') { - from configurations.compile - } -} diff --git a/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/Foo.java b/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/Foo.java deleted file mode 100644 index 0fe6566e0d6..00000000000 --- a/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/Foo.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo; - -import org.sonar.api.resources.Language; - -public class Foo implements Language { - - public static final String KEY = "foo"; - public static final String NAME = "Foo"; - - @Override - public String getKey() { - return KEY; - } - - @Override - public String getName() { - return NAME; - } - - @Override - public String[] getFileSuffixes() { - return new String[0]; - } -} diff --git a/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/FooPlugin.java b/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/FooPlugin.java deleted file mode 100644 index c8c15a8ed3d..00000000000 --- a/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/FooPlugin.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo; - -import org.sonar.api.Plugin; -import org.sonar.foo.rule.FooBasicProfile; -import org.sonar.foo.rule.FooRulesDefinition; -import org.sonar.foo.rule.RekeyingRulesSensor; - -/** - * Plugin entry-point, as declared in pom.xml. - */ -public class FooPlugin implements Plugin { - - @Override - public void define(Context context) { - context.addExtensions( - Foo.class, - FooRulesDefinition.class, - FooBasicProfile.class, - RekeyingRulesSensor.class); - } - -} diff --git a/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/package-info.java b/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/package-info.java deleted file mode 100644 index 7ebb0e1198d..00000000000 --- a/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonar.foo; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/FooBasicProfile.java b/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/FooBasicProfile.java deleted file mode 100644 index 88b940a0401..00000000000 --- a/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/FooBasicProfile.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo.rule; - -import org.sonar.api.profiles.ProfileDefinition; -import org.sonar.api.profiles.RulesProfile; -import org.sonar.api.rules.ActiveRule; -import org.sonar.api.rules.RuleFinder; -import org.sonar.api.rules.RulePriority; -import org.sonar.api.utils.ValidationMessages; - -import static org.sonar.api.rules.RulePriority.MAJOR; -import static org.sonar.foo.Foo.KEY; -import static org.sonar.foo.rule.FooRulesDefinition.FOO_REPOSITORY; - -public class FooBasicProfile extends ProfileDefinition { - - private final RuleFinder ruleFinder; - - public FooBasicProfile(RuleFinder ruleFinder) { - this.ruleFinder = ruleFinder; - } - - @Override - public RulesProfile createProfile(ValidationMessages validation) { - final RulesProfile profile = RulesProfile.create("Basic", KEY); - activateRule(profile, FOO_REPOSITORY, "UnchangedRule", MAJOR); - activateRule(profile, FOO_REPOSITORY, "ChangedRule", MAJOR); - activateRule(profile, FOO_REPOSITORY, "ToBeDeactivatedRule", MAJOR); - activateRule(profile, FOO_REPOSITORY, "ToBeRemovedRule", MAJOR); - activateRule(profile, FOO_REPOSITORY, "RuleWithUnchangedParameter", MAJOR); - activateRule(profile, FOO_REPOSITORY, "RuleWithChangedParameter", MAJOR); - activateRule(profile, FOO_REPOSITORY, "RuleWithRemovedParameter", MAJOR); - activateRule(profile, FOO_REPOSITORY, "RuleWithAddedParameter", MAJOR); - activateRule(profile, FOO_REPOSITORY, "ToBeRenamed", MAJOR); - activateRule(profile, FOO_REPOSITORY, "ToBeRenamedAndMoved", MAJOR); - return profile; - } - - private ActiveRule activateRule(RulesProfile profile, String repo, String key, RulePriority severity) { - return profile.activateRule(ruleFinder.findByKey(repo, key), severity); - } - -} diff --git a/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/FooRulesDefinition.java b/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/FooRulesDefinition.java deleted file mode 100644 index 3000c39baa4..00000000000 --- a/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/FooRulesDefinition.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo.rule; - -import org.sonar.api.server.rule.RulesDefinition; -import org.sonar.foo.Foo; - -public class FooRulesDefinition implements RulesDefinition { - - public static final String FOO_REPOSITORY = "foo"; - - @Override - public void define(Context context) { - defineRulesXoo(context); - } - - private static void defineRulesXoo(Context context) { - NewRepository repoFoo1 = context.createRepository(FOO_REPOSITORY, Foo.KEY).setName("Foo"); - createRule(repoFoo1, "UnchangedRule"); - createRule(repoFoo1, "ChangedRule"); - createRule(repoFoo1, "ToBeDeactivatedRule"); - createRule(repoFoo1, "ToBeRemovedRule"); - createRule(repoFoo1, "RuleWithUnchangedParameter").createParam("unchanged").setDefaultValue("10"); - createRule(repoFoo1, "RuleWithChangedParameter").createParam("toBeChanged").setDefaultValue("10"); - createRule(repoFoo1, "RuleWithRemovedParameter").createParam("toBeRemoved").setDefaultValue("10"); - createRule(repoFoo1, "RuleWithAddedParameter").createParam("added"); - createRule(repoFoo1, "ToBeRenamed"); - createRule(repoFoo1, "ToBeRenamedAndMoved"); - repoFoo1.done(); - } - - private static NewRule createRule(NewRepository repo, String key) { - return repo.createRule(key).setName(key).setHtmlDescription(key); - } - -} diff --git a/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/RekeyingRulesSensor.java b/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/RekeyingRulesSensor.java deleted file mode 100644 index 0e69550382b..00000000000 --- a/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/RekeyingRulesSensor.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo.rule; - -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.sensor.Sensor; -import org.sonar.api.batch.sensor.SensorContext; -import org.sonar.api.batch.sensor.SensorDescriptor; -import org.sonar.api.batch.sensor.issue.NewIssue; -import org.sonar.api.rule.RuleKey; -import org.sonar.foo.Foo; - -import static org.sonar.foo.rule.FooRulesDefinition.FOO_REPOSITORY; - -public class RekeyingRulesSensor implements Sensor { - @Override - public void describe(SensorDescriptor descriptor) { - descriptor.createIssuesForRuleRepositories(FOO_REPOSITORY) - .onlyOnLanguage(Foo.KEY) - .name("Sensor generating one issue per Foo file for re-keyed rules"); - - } - - @Override - public void execute(SensorContext context) { - for (InputFile inputFile : context.fileSystem().inputFiles(context.fileSystem().predicates().hasLanguage(Foo.KEY))) { - NewIssue newIssue = context.newIssue(); - newIssue.at(newIssue.newLocation().on(inputFile)) - .forRule(RuleKey.of(FOO_REPOSITORY, "ToBeRenamed")) - .save(); - newIssue = context.newIssue(); - newIssue.at(newIssue.newLocation().on(inputFile)) - .forRule(RuleKey.of(FOO_REPOSITORY, "ToBeRenamedAndMoved")) - .save(); - } - } -} diff --git a/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/package-info.java b/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/package-info.java deleted file mode 100644 index 86ad39950f4..00000000000 --- a/tests/plugins/foo-plugin-v1/src/main/java/org/sonar/foo/rule/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonar.foo.rule; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/foo-plugin-v2/build.gradle b/tests/plugins/foo-plugin-v2/build.gradle deleted file mode 100644 index a1eed2ef89e..00000000000 --- a/tests/plugins/foo-plugin-v2/build.gradle +++ /dev/null @@ -1,29 +0,0 @@ -sonarqube { - skipProject = true -} - -dependencies { - compile 'com.google.guava:guava' - compile 'commons-io:commons-io' - compile 'commons-lang:commons-lang' - compileOnly 'com.google.code.findbugs:jsr305' - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'foo', - 'Plugin-Version': version, - 'Plugin-Class': 'org.sonar.foo.FooPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Foo', - 'Plugin-License': 'GNU LGPL 3' - ) - } - into('META-INF/lib') { - from configurations.compile - } -} diff --git a/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/Foo.java b/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/Foo.java deleted file mode 100644 index 0fe6566e0d6..00000000000 --- a/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/Foo.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo; - -import org.sonar.api.resources.Language; - -public class Foo implements Language { - - public static final String KEY = "foo"; - public static final String NAME = "Foo"; - - @Override - public String getKey() { - return KEY; - } - - @Override - public String getName() { - return NAME; - } - - @Override - public String[] getFileSuffixes() { - return new String[0]; - } -} diff --git a/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/FooPlugin.java b/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/FooPlugin.java deleted file mode 100644 index c8c15a8ed3d..00000000000 --- a/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/FooPlugin.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo; - -import org.sonar.api.Plugin; -import org.sonar.foo.rule.FooBasicProfile; -import org.sonar.foo.rule.FooRulesDefinition; -import org.sonar.foo.rule.RekeyingRulesSensor; - -/** - * Plugin entry-point, as declared in pom.xml. - */ -public class FooPlugin implements Plugin { - - @Override - public void define(Context context) { - context.addExtensions( - Foo.class, - FooRulesDefinition.class, - FooBasicProfile.class, - RekeyingRulesSensor.class); - } - -} diff --git a/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/package-info.java b/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/package-info.java deleted file mode 100644 index 7ebb0e1198d..00000000000 --- a/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonar.foo; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/FooBasicProfile.java b/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/FooBasicProfile.java deleted file mode 100644 index 45293bf3998..00000000000 --- a/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/FooBasicProfile.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo.rule; - -import org.sonar.api.profiles.ProfileDefinition; -import org.sonar.api.profiles.RulesProfile; -import org.sonar.api.rules.ActiveRule; -import org.sonar.api.rules.RuleFinder; -import org.sonar.api.rules.RulePriority; -import org.sonar.api.utils.ValidationMessages; - -import static org.sonar.api.rules.RulePriority.MAJOR; -import static org.sonar.api.rules.RulePriority.MINOR; -import static org.sonar.foo.Foo.KEY; -import static org.sonar.foo.rule.FooRulesDefinition.FOO_REPOSITORY; -import static org.sonar.foo.rule.FooRulesDefinition.FOO_REPOSITORY_2; - -public class FooBasicProfile extends ProfileDefinition { - - private final RuleFinder ruleFinder; - - public FooBasicProfile(RuleFinder ruleFinder) { - this.ruleFinder = ruleFinder; - } - - @Override - public RulesProfile createProfile(ValidationMessages validation) { - final RulesProfile profile = RulesProfile.create("Basic", KEY); - activateRule(profile, FOO_REPOSITORY, "UnchangedRule", MAJOR); - activateRule(profile, FOO_REPOSITORY, "ChangedRule", MINOR); - activateRule(profile, FOO_REPOSITORY, "NewRule", MAJOR); - activateRule(profile, FOO_REPOSITORY, "RuleWithUnchangedParameter", MAJOR); - // Update of the default value of a parameter is not taken into account in quality profile as long as it's not also explicitly set in the quality profile - // TODO Remove the parameter value when SONAR_9475 will be fixed - activateRule(profile, FOO_REPOSITORY, "RuleWithChangedParameter", MAJOR).setParameter("toBeChanged", "20"); - activateRule(profile, FOO_REPOSITORY, "RuleWithRemovedParameter", MAJOR); - activateRule(profile, FOO_REPOSITORY, "RuleWithAddedParameter", MAJOR); - activateRule(profile, FOO_REPOSITORY, "Renamed", MAJOR); - activateRule(profile, FOO_REPOSITORY_2, "RenamedAndMoved", MAJOR); - return profile; - } - - private ActiveRule activateRule(RulesProfile profile, String repo, String key, RulePriority severity) { - return profile.activateRule(ruleFinder.findByKey(repo, key), severity); - } - -} diff --git a/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/FooRulesDefinition.java b/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/FooRulesDefinition.java deleted file mode 100644 index 2de82d5dc66..00000000000 --- a/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/FooRulesDefinition.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo.rule; - -import org.sonar.api.server.rule.RulesDefinition; -import org.sonar.foo.Foo; - -public class FooRulesDefinition implements RulesDefinition { - - public static final String FOO_REPOSITORY = "foo"; - public static final String FOO_REPOSITORY_2 = "foo2"; - - @Override - public void define(Context context) { - defineRulesXoo(context); - } - - private static void defineRulesXoo(Context context) { - NewRepository repoFoo1 = context.createRepository(FOO_REPOSITORY, Foo.KEY).setName("Foo"); - createRule(repoFoo1, "UnchangedRule"); - createRule(repoFoo1, "ChangedRule"); - createRule(repoFoo1, "NewRule"); - createRule(repoFoo1, "ToBeDeactivatedRule"); - createRule(repoFoo1, "RuleWithUnchangedParameter").createParam("unchanged").setDefaultValue("10"); - // Update of the default value of a parameter is not taken into account in quality profile as long as it's not also explicitly set in the quality profile - createRule(repoFoo1, "RuleWithChangedParameter").createParam("toBeChanged").setDefaultValue("20"); - createRule(repoFoo1, "RuleWithRemovedParameter"); - createRule(repoFoo1, "RuleWithAddedParameter").createParam("added").setDefaultValue("10"); - createRule(repoFoo1, "Renamed").addDeprecatedRuleKey(FOO_REPOSITORY, "ToBeRenamed"); - repoFoo1.done(); - - NewRepository repoFoo2 = context.createRepository(FOO_REPOSITORY_2, Foo.KEY).setName("Foo2"); - createRule(repoFoo2, "RenamedAndMoved").addDeprecatedRuleKey(FOO_REPOSITORY, "ToBeRenamedAndMoved"); - repoFoo2.done(); - } - - private static NewRule createRule(NewRepository repo, String key) { - return repo.createRule(key).setName(key).setHtmlDescription(key); - } - -} diff --git a/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/RekeyingRulesSensor.java b/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/RekeyingRulesSensor.java deleted file mode 100644 index 8ea99d828e6..00000000000 --- a/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/RekeyingRulesSensor.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo.rule; - -import org.sonar.api.batch.fs.InputFile; -import org.sonar.api.batch.sensor.Sensor; -import org.sonar.api.batch.sensor.SensorContext; -import org.sonar.api.batch.sensor.SensorDescriptor; -import org.sonar.api.batch.sensor.issue.NewIssue; -import org.sonar.api.rule.RuleKey; -import org.sonar.foo.Foo; - -import static org.sonar.foo.rule.FooRulesDefinition.FOO_REPOSITORY; -import static org.sonar.foo.rule.FooRulesDefinition.FOO_REPOSITORY_2; - -public class RekeyingRulesSensor implements Sensor { - @Override - public void describe(SensorDescriptor descriptor) { - descriptor.createIssuesForRuleRepositories(FOO_REPOSITORY, FOO_REPOSITORY_2) - .onlyOnLanguage(Foo.KEY) - .name("Sensor generating one issue per Xoo file for re-keyed rules"); - - } - - @Override - public void execute(SensorContext context) { - for (InputFile inputFile : context.fileSystem().inputFiles(context.fileSystem().predicates().hasLanguage(Foo.KEY))) { - NewIssue newIssue = context.newIssue(); - newIssue.at(newIssue.newLocation().on(inputFile)) - .forRule(RuleKey.of(FOO_REPOSITORY, "Renamed")) - .save(); - newIssue = context.newIssue(); - newIssue.at(newIssue.newLocation().on(inputFile)) - .forRule(RuleKey.of(FOO_REPOSITORY_2, "RenamedAndMoved")) - .save(); - } - } -} diff --git a/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/package-info.java b/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/package-info.java deleted file mode 100644 index 86ad39950f4..00000000000 --- a/tests/plugins/foo-plugin-v2/src/main/java/org/sonar/foo/rule/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonar.foo.rule; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/foo-plugin-v3/build.gradle b/tests/plugins/foo-plugin-v3/build.gradle deleted file mode 100644 index a1eed2ef89e..00000000000 --- a/tests/plugins/foo-plugin-v3/build.gradle +++ /dev/null @@ -1,29 +0,0 @@ -sonarqube { - skipProject = true -} - -dependencies { - compile 'com.google.guava:guava' - compile 'commons-io:commons-io' - compile 'commons-lang:commons-lang' - compileOnly 'com.google.code.findbugs:jsr305' - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'foo', - 'Plugin-Version': version, - 'Plugin-Class': 'org.sonar.foo.FooPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Foo', - 'Plugin-License': 'GNU LGPL 3' - ) - } - into('META-INF/lib') { - from configurations.compile - } -} diff --git a/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/Foo.java b/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/Foo.java deleted file mode 100644 index 0fe6566e0d6..00000000000 --- a/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/Foo.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo; - -import org.sonar.api.resources.Language; - -public class Foo implements Language { - - public static final String KEY = "foo"; - public static final String NAME = "Foo"; - - @Override - public String getKey() { - return KEY; - } - - @Override - public String getName() { - return NAME; - } - - @Override - public String[] getFileSuffixes() { - return new String[0]; - } -} diff --git a/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/FooPlugin.java b/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/FooPlugin.java deleted file mode 100644 index 673c8a002cd..00000000000 --- a/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/FooPlugin.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo; - -import org.sonar.api.Plugin; -import org.sonar.foo.rule.FooBasicProfile; -import org.sonar.foo.rule.FooRulesDefinition; - -/** - * Plugin entry-point, as declared in pom.xml. - */ -public class FooPlugin implements Plugin { - - @Override - public void define(Context context) { - context.addExtensions( - Foo.class, - FooRulesDefinition.class, - FooBasicProfile.class); - } - -} diff --git a/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/package-info.java b/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/package-info.java deleted file mode 100644 index 7ebb0e1198d..00000000000 --- a/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonar.foo; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/rule/FooBasicProfile.java b/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/rule/FooBasicProfile.java deleted file mode 100644 index d569c5c5033..00000000000 --- a/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/rule/FooBasicProfile.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo.rule; - -import org.sonar.api.profiles.ProfileDefinition; -import org.sonar.api.profiles.RulesProfile; -import org.sonar.api.rules.ActiveRule; -import org.sonar.api.rules.RuleFinder; -import org.sonar.api.rules.RulePriority; -import org.sonar.api.utils.ValidationMessages; - -import static org.sonar.api.rules.RulePriority.MAJOR; -import static org.sonar.foo.Foo.KEY; -import static org.sonar.foo.rule.FooRulesDefinition.FOO_REPOSITORY; - -public class FooBasicProfile extends ProfileDefinition { - - private final RuleFinder ruleFinder; - - public FooBasicProfile(RuleFinder ruleFinder) { - this.ruleFinder = ruleFinder; - } - - @Override - public RulesProfile createProfile(ValidationMessages validation) { - final RulesProfile profile = RulesProfile.create("New Basic", KEY); - activateRule(profile, FOO_REPOSITORY, "UnchangedRule", MAJOR); - return profile; - } - - private ActiveRule activateRule(RulesProfile profile, String repo, String key, RulePriority severity) { - return profile.activateRule(ruleFinder.findByKey(repo, key), severity); - } - -} diff --git a/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/rule/FooRulesDefinition.java b/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/rule/FooRulesDefinition.java deleted file mode 100644 index 885734b6254..00000000000 --- a/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/rule/FooRulesDefinition.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo.rule; - -import org.sonar.api.server.rule.RulesDefinition; -import org.sonar.foo.Foo; - -public class FooRulesDefinition implements RulesDefinition { - - public static final String FOO_REPOSITORY = "foo2"; - - @Override - public void define(Context context) { - defineRulesXoo(context); - } - - private static void defineRulesXoo(Context context) { - NewRepository repoFoo1 = context.createRepository(FOO_REPOSITORY, Foo.KEY).setName("Foo"); - createRule(repoFoo1, "UnchangedRule"); - repoFoo1.done(); - } - - private static NewRule createRule(NewRepository repo, String key) { - return repo.createRule(key).setName(key).setHtmlDescription(key); - } - -} diff --git a/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/rule/package-info.java b/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/rule/package-info.java deleted file mode 100644 index 86ad39950f4..00000000000 --- a/tests/plugins/foo-plugin-v3/src/main/java/org/sonar/foo/rule/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonar.foo.rule; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/foo-plugin-without-qprofile/build.gradle b/tests/plugins/foo-plugin-without-qprofile/build.gradle deleted file mode 100644 index 789f3dd33d5..00000000000 --- a/tests/plugins/foo-plugin-without-qprofile/build.gradle +++ /dev/null @@ -1,23 +0,0 @@ -sonarqube { - skipProject = true -} - -dependencies { - compileOnly 'com.google.code.findbugs:jsr305' - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'foo', - 'Plugin-Version': version, - 'Plugin-Class': 'org.sonar.foo.FooPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Foo', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/foo-plugin-without-qprofile/src/main/java/org/sonar/foo/Foo.java b/tests/plugins/foo-plugin-without-qprofile/src/main/java/org/sonar/foo/Foo.java deleted file mode 100644 index 0fe6566e0d6..00000000000 --- a/tests/plugins/foo-plugin-without-qprofile/src/main/java/org/sonar/foo/Foo.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo; - -import org.sonar.api.resources.Language; - -public class Foo implements Language { - - public static final String KEY = "foo"; - public static final String NAME = "Foo"; - - @Override - public String getKey() { - return KEY; - } - - @Override - public String getName() { - return NAME; - } - - @Override - public String[] getFileSuffixes() { - return new String[0]; - } -} diff --git a/tests/plugins/foo-plugin-without-qprofile/src/main/java/org/sonar/foo/FooPlugin.java b/tests/plugins/foo-plugin-without-qprofile/src/main/java/org/sonar/foo/FooPlugin.java deleted file mode 100644 index 7ee8868d162..00000000000 --- a/tests/plugins/foo-plugin-without-qprofile/src/main/java/org/sonar/foo/FooPlugin.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.foo; - -import org.sonar.api.Plugin; - -/** - * Plugin entry-point, as declared in pom.xml. - */ -public class FooPlugin implements Plugin { - - @Override - public void define(Context context) { - context.addExtension( - Foo.class); - } - -} diff --git a/tests/plugins/foo-plugin-without-qprofile/src/main/java/org/sonar/foo/package-info.java b/tests/plugins/foo-plugin-without-qprofile/src/main/java/org/sonar/foo/package-info.java deleted file mode 100644 index 7ebb0e1198d..00000000000 --- a/tests/plugins/foo-plugin-without-qprofile/src/main/java/org/sonar/foo/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -@ParametersAreNonnullByDefault -package org.sonar.foo; - -import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/plugins/global-property-change-plugin/build.gradle b/tests/plugins/global-property-change-plugin/build.gradle deleted file mode 100644 index 75ba98d79e9..00000000000 --- a/tests/plugins/global-property-change-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'global-property-change-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'GlobalPropertyChangePlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Plugins :: Plugins :: Global Property Change', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/global-property-change-plugin/src/main/java/FakeGlobalPropertyChange.java b/tests/plugins/global-property-change-plugin/src/main/java/FakeGlobalPropertyChange.java deleted file mode 100644 index ac09324b847..00000000000 --- a/tests/plugins/global-property-change-plugin/src/main/java/FakeGlobalPropertyChange.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.config.GlobalPropertyChangeHandler; -import org.sonar.api.utils.log.Loggers; - -@Properties(@Property(key = "globalPropertyChange.received", name = "Check that extension has correctly been notified by global property change", category = "fake")) -public final class FakeGlobalPropertyChange extends GlobalPropertyChangeHandler { - - @Override - public void onChange(PropertyChange propertyChange) { - Loggers.get(FakeGlobalPropertyChange.class).info("Received change: " + propertyChange); - } -} diff --git a/tests/plugins/global-property-change-plugin/src/main/java/GlobalPropertyChangePlugin.java b/tests/plugins/global-property-change-plugin/src/main/java/GlobalPropertyChangePlugin.java deleted file mode 100644 index c923c93ac66..00000000000 --- a/tests/plugins/global-property-change-plugin/src/main/java/GlobalPropertyChangePlugin.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public class GlobalPropertyChangePlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(FakeGlobalPropertyChange.class); - } -} diff --git a/tests/plugins/issue-filter-plugin/build.gradle b/tests/plugins/issue-filter-plugin/build.gradle deleted file mode 100644 index 1e911cf3e71..00000000000 --- a/tests/plugins/issue-filter-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'issue-filter-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'IssueFilterPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'IT :: Issue Filter', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/issue-filter-plugin/src/main/java/IssueFilterBeforeLine5.java b/tests/plugins/issue-filter-plugin/src/main/java/IssueFilterBeforeLine5.java deleted file mode 100644 index 9c6c755571d..00000000000 --- a/tests/plugins/issue-filter-plugin/src/main/java/IssueFilterBeforeLine5.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.scan.issue.filter.IssueFilterChain; - -import org.sonar.api.scan.issue.filter.FilterableIssue; -import org.sonar.api.config.Settings; -import org.sonar.api.scan.issue.filter.IssueFilter; - -/** - * This filter removes the issues that are on line < 5 - *

- * Issue filters have been introduced in 3.6. - */ -public class IssueFilterBeforeLine5 implements IssueFilter { - - private final Settings settings; - - public IssueFilterBeforeLine5(Settings settings) { - this.settings = settings; - } - - @Override - public boolean accept(FilterableIssue issue, IssueFilterChain chain) { - if (issue.componentKey() == null) { - throw new IllegalStateException("Issue component is not set"); - } - if (issue.ruleKey() == null) { - throw new IllegalStateException("Issue rule is not set"); - } - - boolean b = !settings.getBoolean("enableIssueFilters") || issue.line() == null || issue.line() >= 5; - if (!b) { - return false; - } - - return chain.accept(issue); - } -} diff --git a/tests/plugins/issue-filter-plugin/src/main/java/IssueFilterPlugin.java b/tests/plugins/issue-filter-plugin/src/main/java/IssueFilterPlugin.java deleted file mode 100644 index 07150cb0c4e..00000000000 --- a/tests/plugins/issue-filter-plugin/src/main/java/IssueFilterPlugin.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyType; -import org.sonar.api.SonarPlugin; - -@Properties(@Property( - key = "enableIssueFilters", - name = "Enable Issue Filters", - defaultValue = "false", - type = PropertyType.BOOLEAN)) -public class IssueFilterPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(IssueFilterBeforeLine5.class, ModuleIssueFilter.class); - } -} diff --git a/tests/plugins/issue-filter-plugin/src/main/java/ModuleIssueFilter.java b/tests/plugins/issue-filter-plugin/src/main/java/ModuleIssueFilter.java deleted file mode 100644 index 55e5be423af..00000000000 --- a/tests/plugins/issue-filter-plugin/src/main/java/ModuleIssueFilter.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.scan.issue.filter.FilterableIssue; - -import org.sonar.api.scan.issue.filter.IssueFilterChain; -import org.sonar.api.config.Settings; -import org.sonar.api.scan.issue.filter.IssueFilter; -import org.sonar.api.rule.RuleKey; - -/** - * This filter removes the issues that are raised by Xoo plugin on modules. - *

- * Issue filters have been introduced in 3.6. - */ -public class ModuleIssueFilter implements IssueFilter { - - private static final RuleKey ONE_ISSUE_PER_MODULE_RULEKEY = RuleKey.of("xoo", "OneIssuePerModule"); - - private final Settings settings; - - public ModuleIssueFilter(Settings settings) { - this.settings = settings; - } - - @Override - public boolean accept(FilterableIssue issue, IssueFilterChain chain) { - if (issue.componentKey() == null) { - throw new IllegalStateException("Issue component is not set"); - } - if (issue.ruleKey() == null) { - throw new IllegalStateException("Issue rule is not set"); - } - - boolean b = !settings.getBoolean("enableIssueFilters") || !ONE_ISSUE_PER_MODULE_RULEKEY.equals(issue.ruleKey()); - - if (!b) { - return false; - } - - return chain.accept(issue); - } -} diff --git a/tests/plugins/l10n-fr-pack/build.gradle b/tests/plugins/l10n-fr-pack/build.gradle deleted file mode 100644 index b19c9e01eef..00000000000 --- a/tests/plugins/l10n-fr-pack/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'l10n-fr-pack', - 'Plugin-Version': version, - 'Plugin-Class': 'SimpleFrenchPackPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'l10n-fr-pack', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/l10n-fr-pack/src/main/java/SimpleFrenchPackPlugin.java b/tests/plugins/l10n-fr-pack/src/main/java/SimpleFrenchPackPlugin.java deleted file mode 100644 index ff549022530..00000000000 --- a/tests/plugins/l10n-fr-pack/src/main/java/SimpleFrenchPackPlugin.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Collections; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public final class SimpleFrenchPackPlugin extends SonarPlugin { - public List getExtensions() { - return Collections.emptyList(); - } -} diff --git a/tests/plugins/l10n-fr-pack/src/main/resources/org/sonar/l10n/core_fr.properties b/tests/plugins/l10n-fr-pack/src/main/resources/org/sonar/l10n/core_fr.properties deleted file mode 100644 index 2d28afe84f0..00000000000 --- a/tests/plugins/l10n-fr-pack/src/main/resources/org/sonar/l10n/core_fr.properties +++ /dev/null @@ -1,6 +0,0 @@ -metric.ncloc.name=Lignes de code -metric.ncloc.description=Lignes de code (non commentaire) -widget.size.lines_of_code=Lignes de code - -layout.login=Se connecter -layout.powered_by=Propulsé par diff --git a/tests/plugins/license-plugin/build.gradle b/tests/plugins/license-plugin/build.gradle deleted file mode 100644 index 1e8b4ab53e9..00000000000 --- a/tests/plugins/license-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'license-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'LicensePlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'license-plugin', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/license-plugin/src/main/java/LicensePlugin.java b/tests/plugins/license-plugin/src/main/java/LicensePlugin.java deleted file mode 100644 index b19dc11cb8c..00000000000 --- a/tests/plugins/license-plugin/src/main/java/LicensePlugin.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Collections; -import java.util.List; -import org.sonar.api.CoreProperties; -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyType; -import org.sonar.api.SonarPlugin; - -@Properties({ - @Property( - key = "untyped.license.secured", - name = "Property without license type", - category = CoreProperties.CATEGORY_GENERAL), - @Property( - key = "typed.license.secured", - name = "Typed property", - category = CoreProperties.CATEGORY_GENERAL, - type = PropertyType.LICENSE) -}) -public class LicensePlugin extends SonarPlugin { - public List getExtensions() { - return Collections.emptyList(); - } -} diff --git a/tests/plugins/oauth2-auth-plugin/build.gradle b/tests/plugins/oauth2-auth-plugin/build.gradle deleted file mode 100644 index b634c466d1d..00000000000 --- a/tests/plugins/oauth2-auth-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'oauth2-auth-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'FakeOAuth2AuthPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Plugins :: Fake OAuth2 Authentication Plugin', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/oauth2-auth-plugin/src/main/java/FakeOAuth2AuthPlugin.java b/tests/plugins/oauth2-auth-plugin/src/main/java/FakeOAuth2AuthPlugin.java deleted file mode 100644 index 98a9509161f..00000000000 --- a/tests/plugins/oauth2-auth-plugin/src/main/java/FakeOAuth2AuthPlugin.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.ArrayList; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public final class FakeOAuth2AuthPlugin extends SonarPlugin { - - public List getExtensions() { - List extensions = new ArrayList(); - extensions.add(FakeOAuth2IdProvider.class); - return extensions; - } - -} diff --git a/tests/plugins/oauth2-auth-plugin/src/main/java/FakeOAuth2IdProvider.java b/tests/plugins/oauth2-auth-plugin/src/main/java/FakeOAuth2IdProvider.java deleted file mode 100644 index af6543bf7d4..00000000000 --- a/tests/plugins/oauth2-auth-plugin/src/main/java/FakeOAuth2IdProvider.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import org.sonar.api.config.Settings; -import org.sonar.api.server.authentication.Display; -import org.sonar.api.server.authentication.OAuth2IdentityProvider; -import org.sonar.api.server.authentication.UnauthorizedException; -import org.sonar.api.server.authentication.UserIdentity; - -public class FakeOAuth2IdProvider implements OAuth2IdentityProvider { - - private static final String ENABLED = "sonar.auth.fake-oauth2-id-provider.enabled"; - private static final String ALLOWS_USERS_TO_SIGN_UP = "sonar.auth.fake-oauth2-id-provider.allowsUsersToSignUp"; - private static final String URL = "sonar.auth.fake-oauth2-id-provider.url"; - private static final String USER_INFO = "sonar.auth.fake-oauth2-id-provider.user"; - - private static final String THROW_UNAUTHORIZED_EXCEPTION = "sonar.auth.fake-oauth2-id-provider.throwUnauthorizedMessage"; - - private final Settings settings; - - public FakeOAuth2IdProvider(Settings settings) { - this.settings = settings; - } - - @Override - public void init(InitContext context) { - String url = settings.getString(URL); - if (url == null) { - throw new IllegalStateException(String.format("The property %s is required", URL)); - } - context.redirectTo(url); - } - - @Override - public void callback(CallbackContext context) { - String userInfoProperty = settings.getString(USER_INFO); - if (userInfoProperty == null) { - throw new IllegalStateException(String.format("The property %s is required", USER_INFO)); - } - boolean throwUnauthorizedException = settings.getBoolean(THROW_UNAUTHORIZED_EXCEPTION); - if (throwUnauthorizedException) { - throw new UnauthorizedException("A functional error has happened"); - } - - String[] userInfos = userInfoProperty.split(","); - context.authenticate(UserIdentity.builder() - .setLogin(emptyToNull(userInfos[0])) - .setProviderId(emptyToNull(userInfos[1])) - .setProviderLogin(emptyToNull(userInfos[2])) - .setName(emptyToNull(userInfos[3])) - .setEmail(emptyToNull(userInfos[4])) - .build()); - context.redirectToRequestedPage(); - } - - @Override - public String getKey() { - return "fake-oauth2-id-provider"; - } - - @Override - public String getName() { - return "Fake oauth2 identity provider"; - } - - @Override - public Display getDisplay() { - return Display.builder() - .setIconPath("/static/oauth2authplugin/oauth2.png") - .setBackgroundColor("#444444") - .build(); - } - - @Override - public boolean isEnabled() { - return settings.getBoolean(ENABLED); - } - - @Override - public boolean allowsUsersToSignUp() { - if (settings.hasKey(ALLOWS_USERS_TO_SIGN_UP)) { - return settings.getBoolean(ALLOWS_USERS_TO_SIGN_UP); - } - // If property is not defined, default behaviour is not always allow users to sign up - return true; - } - - private static String emptyToNull(String s) { - if (s == null) { - return null; - } - String trim = s.trim(); - if (trim.isEmpty()) { - return null; - } - return trim; - } - -} diff --git a/tests/plugins/oauth2-auth-plugin/src/main/resources/static/oauth2.png b/tests/plugins/oauth2-auth-plugin/src/main/resources/static/oauth2.png deleted file mode 100644 index 28a3e01698c7fbf7855206c7bb0a9566c8dd8926..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2087 zcmV+?2-x?DP)NklyumSu`V6XuU83HA>Y_6`o@wta4k6Jh^2^^|mtzDNZgD-yH7PIWt zN6!o^0{<;xJ0e5yQcJ}toV(O=Vdb*8dxs5yt%WQ?)Sx+3gwS}Z9A_%(FnY`#FaKl7 zlRJk6fzA1>OwwYyQ4iFW7vjW;T7-let((`(4jb|WKFDQ{3k+s0jg2BuTbPTovP+(8 zlkXqeNlC;d|uf_c|oWM)-#yEi)K?y9^mUYj&z z2qYh2qv|baaJe8DNjAZ1mw=4a-N?wGHHt1=BHq1QC~U;N6!>w?02^zzF=)#O|@$ae+2$ zf=&VNF|PvLs7T30_kObbD6;uh!tFl;atD4tJNk_;l43s|5CVTsXQ$mxOyzQ+lJ2cM z>LSL$b5bBleYE>Hj+S2RJp;;d{MZP4!sGXbZCg6S)vp9rWwYP4+pwR5)M(_WdrPNM zeMr{e#l6M~9L&tevGPm3dO*zpKmO*aiQCgx#J<+A1gP>fGZ*gQ(f3M6iM~!TaeEi= zO+9dDC~zdN5INsoxuFMC0^z};`?;ql-m_!z^xA$QK+#`ox8rT2p}X!S1-$12#s*Y0 zasyMH4;7GMEAHY2z`Kr2^+H_Ktlf)ZOnpiq*~AXhT)*ZKHz% z)7Q9km}kth!?SW%n1EgRCy-lFA8-cv`KjYZG@Mx-7ujb7R^_n!JMB2bCE{7Iv@&o` zz~z>~GmQ+4pHtU?5g`In^G_qM@~WRQ>OTYO^*N7@d+V!352o}9fq!MQYCXe!K|YHX zmriRZP}#yaZStg&vj0)ng76>#pXFB|ulic=8E`W{1Q^Cd1a-zw9TWb)KSg!k7J+wj z*h?-4cJRn^P#&P%tnISidBphxMr8-8g4cV<2>8@oh5VYPfIZ+#D1J)h-lL17U%V{> zYmPFjs6~hho&!ElQMYy}W)&3RqMQLvKs9lQB;X_3Mig9Zz9kQMPS7}5uVvFZ&OVmE z@z4CPdOQ;WEplE0>+;xt1Sj6`)O?NnG_N!+nt%iJlupAB8#sRSHL)ZL*jR88=F65_ z%K+dVPahjnRlfA0XCbeR4(c5WnO+Hb2&9-_GeucGK``%QPFy=6eXH#Wk#C3oQ? z>wA#kQNOOp%ITF55tyhKu)WrTU)dZ?!@+2T?p4NX)*dF7d`#?O0+tsyp{UV*)7@xq z84&43lS8#tL03+#HNW+IwgQwkEU+sP@7=^}iN+YZa@W85&Z~O3D_6NfCE`gpT z(2Tw&mi(C5KnAu@V&5#YqJ*z_0eJwpPtsUMTkFzF6K8LBv|Od~g*GMP>}J4kNI-3$ zR$ltj`X=6Wff*>;?@<+6C}~-QDj}`rhsQkx&UT{I=JcC^ky^nyzN0y(DRsl@nmt?2 zD!`qA%zxVid|P@0n;&k(noto_eDH%yKe5V*((5iS0fAyVLF2THtUv#G*`kD$uC^B1 zDET+zfDuqzMkAX*Ys9875zmrGv`u8UMEV>qqgBvI;3sz3zB8UJSyi;?nSGE;U%#~5 z{uh&}i5aLGz2kJ@h4q)6qpa=LTvn2`tmLmR*7O(XJ|!^N?Pmgm-G)7Z{{yh{QEi&e R7jggq002ovPDHLkV1m9>0h|B; diff --git a/tests/plugins/posttask-plugin/build.gradle b/tests/plugins/posttask-plugin/build.gradle deleted file mode 100644 index 2d05c7e06c9..00000000000 --- a/tests/plugins/posttask-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'posttask-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'PostTaskPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'SonarQube Integration Tests :: Plugins :: PostTask', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/posttask-plugin/src/main/java/AddScannerContextSensor.java b/tests/plugins/posttask-plugin/src/main/java/AddScannerContextSensor.java deleted file mode 100644 index a8000c01bb9..00000000000 --- a/tests/plugins/posttask-plugin/src/main/java/AddScannerContextSensor.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.batch.sensor.Sensor; -import org.sonar.api.batch.sensor.SensorContext; -import org.sonar.api.batch.sensor.SensorDescriptor; - -public class AddScannerContextSensor implements Sensor { - @Override - public void execute(SensorContext context) { - context.addContextProperty("foo1", "bar1"); - context.addContextProperty("foo2", "bar2"); - } - - @Override - public void describe(SensorDescriptor descriptor) { - - } -} diff --git a/tests/plugins/posttask-plugin/src/main/java/LogScannerContextPostTask.java b/tests/plugins/posttask-plugin/src/main/java/LogScannerContextPostTask.java deleted file mode 100644 index 62c0c666d6e..00000000000 --- a/tests/plugins/posttask-plugin/src/main/java/LogScannerContextPostTask.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Map; -import org.sonar.api.ce.posttask.PostProjectAnalysisTask; -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.Loggers; - -public class LogScannerContextPostTask implements PostProjectAnalysisTask { - private static final Logger LOG = Loggers.get(LogScannerContextPostTask.class); - - @Override - public void finished(ProjectAnalysis analysis) { - for (Map.Entry prop : analysis.getScannerContext().getProperties().entrySet()) { - LOG.info("POSTASKPLUGIN: ScannerProperty {}={}", - prop.getKey(), - prop.getValue()); - } - } -} diff --git a/tests/plugins/posttask-plugin/src/main/java/PostProjectAnalysisTaskImpl.java b/tests/plugins/posttask-plugin/src/main/java/PostProjectAnalysisTaskImpl.java deleted file mode 100644 index 858bf2da2be..00000000000 --- a/tests/plugins/posttask-plugin/src/main/java/PostProjectAnalysisTaskImpl.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.ce.posttask.CeTask; -import org.sonar.api.ce.posttask.PostProjectAnalysisTask; -import org.sonar.api.ce.posttask.Project; -import org.sonar.api.ce.posttask.QualityGate; -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.Loggers; - -public class PostProjectAnalysisTaskImpl implements PostProjectAnalysisTask { - private static final Logger LOG = Loggers.get(PostProjectAnalysisTaskImpl.class); - - @Override - public void finished(ProjectAnalysis analysis) { - CeTask ceTask = analysis.getCeTask(); - Project project = analysis.getProject(); - QualityGate qualityGate = analysis.getQualityGate(); - LOG.info("POSTASKPLUGIN: finished() CeTask[{}][{}] Project[{}] Date[{}] QualityGate[{}]", - ceTask.getStatus(), - ceTask.getId(), - project.getKey(), - analysis.getDate().getTime(), - qualityGate == null ? null : qualityGate.getStatus()); - } -} diff --git a/tests/plugins/posttask-plugin/src/main/java/PostTaskPlugin.java b/tests/plugins/posttask-plugin/src/main/java/PostTaskPlugin.java deleted file mode 100644 index 7336d9e2f54..00000000000 --- a/tests/plugins/posttask-plugin/src/main/java/PostTaskPlugin.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public class PostTaskPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(PostProjectAnalysisTaskImpl.class, - LogScannerContextPostTask.class, AddScannerContextSensor.class); - } -} diff --git a/tests/plugins/project-builder-plugin/build.gradle b/tests/plugins/project-builder-plugin/build.gradle deleted file mode 100644 index 8386f43cd46..00000000000 --- a/tests/plugins/project-builder-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'project-builder-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'ProjectBuilderPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Plugins :: Project Builder', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/project-builder-plugin/src/main/java/CreateSubProjects.java b/tests/plugins/project-builder-plugin/src/main/java/CreateSubProjects.java deleted file mode 100644 index c4dcc30d654..00000000000 --- a/tests/plugins/project-builder-plugin/src/main/java/CreateSubProjects.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.io.File; -import org.sonar.api.batch.bootstrap.ProjectBuilder; -import org.sonar.api.batch.bootstrap.ProjectDefinition; -import org.sonar.api.batch.bootstrap.ProjectReactor; -import org.sonar.api.config.Settings; - -/** - * This plugin relates to projects/project-builder sample - */ -public final class CreateSubProjects extends ProjectBuilder { - - private Settings settings; - - public CreateSubProjects(Settings settings) { - // A real implementation should for example use the configuration - this.settings = settings; - } - - @Override - protected void build(ProjectReactor reactor) { - if (!settings.getBoolean("sonar.enableProjectBuilder")) { - return; - } - System.out.println("---> Creating sub-projects"); - ProjectDefinition root = reactor.getRoot(); - - // add two modules - createSubProjectWithSourceDir(root); - createSubProjectWithSourceFiles(root); - } - - private ProjectDefinition createSubProjectWithSourceDir(ProjectDefinition root) { - File baseDir = new File(root.getBaseDir(), "module_a"); - ProjectDefinition subProject = ProjectDefinition.create(); - subProject.setBaseDir(baseDir).setWorkDir(new File(baseDir, "target/.sonar")); - subProject.setKey("com.sonarsource.it.projects.batch:project-builder-module-a"); - subProject.setVersion(root.getVersion()); - subProject.setName("Module A"); - subProject.addSources("src"); - root.addSubProject(subProject); - return subProject; - } - - private ProjectDefinition createSubProjectWithSourceFiles(ProjectDefinition root) { - File baseDir = new File(root.getBaseDir(), "module_b"); - ProjectDefinition subProject = ProjectDefinition.create(); - subProject.setBaseDir(baseDir).setWorkDir(new File(baseDir, "target/.sonar")); - subProject.setKey("com.sonarsource.it.projects.batch:project-builder-module-b"); - subProject.setVersion(root.getVersion()); - subProject.setName("Module B"); - subProject.addSources("src/HelloB.java"); - root.addSubProject(subProject); - return subProject; - } -} diff --git a/tests/plugins/project-builder-plugin/src/main/java/ProjectBuilderPlugin.java b/tests/plugins/project-builder-plugin/src/main/java/ProjectBuilderPlugin.java deleted file mode 100644 index 22984bd23fa..00000000000 --- a/tests/plugins/project-builder-plugin/src/main/java/ProjectBuilderPlugin.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.SonarPlugin; - -import java.util.Arrays; -import java.util.List; - -public class ProjectBuilderPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(CreateSubProjects.class, RenameProject.class); - } -} diff --git a/tests/plugins/project-builder-plugin/src/main/java/RenameProject.java b/tests/plugins/project-builder-plugin/src/main/java/RenameProject.java deleted file mode 100644 index 861b4886b57..00000000000 --- a/tests/plugins/project-builder-plugin/src/main/java/RenameProject.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.batch.bootstrap.ProjectBuilder; -import org.sonar.api.batch.bootstrap.ProjectDefinition; -import org.sonar.api.batch.bootstrap.ProjectReactor; -import org.sonar.api.config.Settings; - -/** - * This plugin relates to projects/project-builder sample - */ -public final class RenameProject extends ProjectBuilder { - - private Settings settings; - - public RenameProject(Settings settings) { - this.settings = settings; - } - - @Override - protected void build(ProjectReactor reactor) { - if (!settings.getBoolean("sonar.enableProjectBuilder")) { - return; - } - System.out.println("---> Renaming project"); - // change name of root project - ProjectDefinition root = reactor.getRoot(); - root.setName("Name changed by plugin"); - } -} diff --git a/tests/plugins/property-relocation-plugin/build.gradle b/tests/plugins/property-relocation-plugin/build.gradle deleted file mode 100644 index 556f352d9fe..00000000000 --- a/tests/plugins/property-relocation-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'property-relocation-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'PropertyRelocationPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'property-relocation-plugin', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/property-relocation-plugin/src/main/java/CheckProperties.java b/tests/plugins/property-relocation-plugin/src/main/java/CheckProperties.java deleted file mode 100644 index a4068c1ff6d..00000000000 --- a/tests/plugins/property-relocation-plugin/src/main/java/CheckProperties.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.BatchExtension; -import org.sonar.api.config.Settings; - -public class CheckProperties implements BatchExtension { - private Settings settings; - - public CheckProperties(Settings settings) { - this.settings = settings; - } - - public void start() { - if (settings.getBoolean("sonar.newKey") != true) { - throw new IllegalStateException("Property not found: sonar.newKey"); - } - } -} diff --git a/tests/plugins/property-relocation-plugin/src/main/java/PropertyRelocationPlugin.java b/tests/plugins/property-relocation-plugin/src/main/java/PropertyRelocationPlugin.java deleted file mode 100644 index a984fa45b36..00000000000 --- a/tests/plugins/property-relocation-plugin/src/main/java/PropertyRelocationPlugin.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.SonarPlugin; - -@Properties({ - @Property(key = "sonar.newKey", deprecatedKey = "sonar.deprecatedKey", name = "New Key", category = "general") -}) -public class PropertyRelocationPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(CheckProperties.class); - } -} diff --git a/tests/plugins/property-sets-plugin/build.gradle b/tests/plugins/property-sets-plugin/build.gradle deleted file mode 100644 index b608106e11e..00000000000 --- a/tests/plugins/property-sets-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'property-sets-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'PropertySetsPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'property-sets-plugin', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/property-sets-plugin/src/main/java/PropertySetsPlugin.java b/tests/plugins/property-sets-plugin/src/main/java/PropertySetsPlugin.java deleted file mode 100644 index e2421e295eb..00000000000 --- a/tests/plugins/property-sets-plugin/src/main/java/PropertySetsPlugin.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Collections; -import java.util.List; -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyField; -import org.sonar.api.PropertyType; -import org.sonar.api.SonarPlugin; - -@Properties({ - @Property( - key = "sonar.test.jira.servers", - name = "Jira Servers", - description = "List of jira server definitions", - global = true, - project = true, - category = "DEV", - fields = { - @PropertyField( - key = "key", - name = "Key", - type = PropertyType.STRING, - indicativeSize = 10), - @PropertyField( - key = "url", - name = "Url", - description = "l'url du serveur jira", - type = PropertyType.STRING, - indicativeSize = 20), - @PropertyField( - key = "port", - name = "Port", - type = PropertyType.INTEGER, - indicativeSize = 5)}), - @Property( - key = "sonar.demo", - name = "Demo", - global = true, - project = true, - category = "DEV", - fields = { - @PropertyField( - key = "text", - name = "text", - type = PropertyType.TEXT), - @PropertyField( - key = "boolean", - name = "boolean", - type = PropertyType.BOOLEAN), - @PropertyField( - key = "float", - name = "float", - type = PropertyType.FLOAT), - @PropertyField( - key = "license", - name = "license", - type = PropertyType.LICENSE), - @PropertyField( - key = "metric", - name = "metric", - type = PropertyType.METRIC), - @PropertyField( - key = "password", - name = "password", - type = PropertyType.PASSWORD), - @PropertyField( - key = "regexp", - name = "regexp", - type = PropertyType.REGULAR_EXPRESSION), - @PropertyField( - key = "list", - name = "list", - type = PropertyType.SINGLE_SELECT_LIST, - options = {"AAA", "BBB"})}), - @Property( - key = "sonar.autogenerated", - name = "Auto-generated", - global = true, - project = true, - category = "DEV", - fields = { - @PropertyField( - key = "value", - name = "value", - type = PropertyType.STRING)}), - @Property( - key = "sonar.test.jira", - name = "Jira", - project = true, - category = "DEV", - propertySetKey = "sonar.test.jira.servers")}) -public class PropertySetsPlugin extends SonarPlugin { - public List getExtensions() { - return Collections.emptyList(); - } -} diff --git a/tests/plugins/save-measure-on-project-plugin/build.gradle b/tests/plugins/save-measure-on-project-plugin/build.gradle deleted file mode 100644 index b694560dd47..00000000000 --- a/tests/plugins/save-measure-on-project-plugin/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'save-measure-on-project-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'org.sonar.measure.SaveMeasureOnModulePlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Custom', - 'Plugin-License': 'GNU LGPL 3', - ) - } -} - diff --git a/tests/plugins/save-measure-on-project-plugin/src/main/java/org/sonar/measure/ModuleMeasureSensor.java b/tests/plugins/save-measure-on-project-plugin/src/main/java/org/sonar/measure/ModuleMeasureSensor.java deleted file mode 100644 index 49dc52977ae..00000000000 --- a/tests/plugins/save-measure-on-project-plugin/src/main/java/org/sonar/measure/ModuleMeasureSensor.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.measure; - -import java.io.Serializable; -import java.util.Map; -import java.util.Optional; -import org.sonar.api.batch.measure.MetricFinder; -import org.sonar.api.batch.sensor.Sensor; -import org.sonar.api.batch.sensor.SensorContext; -import org.sonar.api.batch.sensor.SensorDescriptor; -import org.sonar.api.batch.sensor.measure.NewMeasure; -import org.sonar.api.utils.KeyValueFormat; - -public class ModuleMeasureSensor implements Sensor { - - private static final String PROPERTY = "sonar.measure.valueByMetric"; - - private final MetricFinder metricFinder; - - public ModuleMeasureSensor(MetricFinder metricFinder) { - this.metricFinder = metricFinder; - } - - @Override - public void describe(SensorDescriptor descriptor) { - descriptor - .name("Generate measure on each module"); - } - - @Override - public void execute(SensorContext context) { - Optional property = context.config().get(PROPERTY); - if (!property.isPresent()) { - return; - } - Map valueByMetric = KeyValueFormat.parse(property.get()); - valueByMetric.forEach((metricKey, value) -> { - org.sonar.api.batch.measure.Metric metric = metricFinder.findByKey(metricKey); - if (metric == null) { - throw new IllegalStateException(String.format("Metric '%s' doesn't exist", metricKey)); - } - NewMeasure newMeasure = context.newMeasure() - .forMetric(metric) - .on(context.module()) - .withValue(Integer.parseInt(value)); - newMeasure.save(); - }); - } - -} diff --git a/tests/plugins/save-measure-on-project-plugin/src/main/java/org/sonar/measure/SaveMeasureOnModulePlugin.java b/tests/plugins/save-measure-on-project-plugin/src/main/java/org/sonar/measure/SaveMeasureOnModulePlugin.java deleted file mode 100644 index fa28928bcc6..00000000000 --- a/tests/plugins/save-measure-on-project-plugin/src/main/java/org/sonar/measure/SaveMeasureOnModulePlugin.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.measure; - -import org.sonar.api.Plugin; - -/** - * Plugin entry-point, as declared in pom.xml. - */ -public class SaveMeasureOnModulePlugin implements Plugin { - - @Override - public void define(Context context) { - context.addExtension(ModuleMeasureSensor.class); - } - -} diff --git a/tests/plugins/security-plugin/build.gradle b/tests/plugins/security-plugin/build.gradle deleted file mode 100644 index e82ae477ff8..00000000000 --- a/tests/plugins/security-plugin/build.gradle +++ /dev/null @@ -1,29 +0,0 @@ -configurations { - testCompile.extendsFrom(compileOnly) -} - -dependencies { - compile 'commons-lang:commons-lang' - compile 'com.google.guava:guava' - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') - testCompile 'junit:junit' - testCompile 'org.assertj:assertj-core' -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'security-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'SecurityPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'security-plugin', - 'Plugin-License': 'GNU LGPL 3' - ) - } - into('META-INF/lib') { - from configurations.compile - } -} diff --git a/tests/plugins/security-plugin/src/main/java/FakeAuthenticator.java b/tests/plugins/security-plugin/src/main/java/FakeAuthenticator.java deleted file mode 100644 index e4c5b0dd1bc..00000000000 --- a/tests/plugins/security-plugin/src/main/java/FakeAuthenticator.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Splitter; -import com.google.common.base.Strings; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Maps; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyType; -import org.sonar.api.config.Settings; -import org.sonar.api.security.LoginPasswordAuthenticator; -import org.sonar.api.security.UserDetails; -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.Loggers; - -@Properties({ - @Property( - key = FakeAuthenticator.DATA_PROPERTY, - name = "Fake Users", type = PropertyType.TEXT - ) -}) -public class FakeAuthenticator implements LoginPasswordAuthenticator { - - private static final Logger LOG = Loggers.get(FakeAuthenticator.class); - - /** - * Example: - *

-   * evgeny.password=foo
-   * evgeny.name=Evgeny Mandrikov
-   * evgeny.email=evgeny@example.org
-   * evgeny.groups=sonar-users
-   *
-   * simon.password=bar
-   * simon.groups=sonar-users,sonar-developers
-   * 
- */ - public static final String DATA_PROPERTY = "sonar.fakeauthenticator.users"; - - private final Settings settings; - - private Map data; - - public FakeAuthenticator(Settings settings) { - this.settings = settings; - } - - public boolean authenticate(String username, String password) { - // Never touch admin - if (isAdmin(username)) { - return true; - } - - reloadData(); - checkExistence(username); - - String expectedPassword = data.get(username + ".password"); - if (StringUtils.equals(password, expectedPassword)) { - LOG.info("user {} with password {}", username, password); - return true; - } else { - LOG.info("user " + username + " expected password " + expectedPassword + " , but was " + password); - return false; - } - } - - private void checkExistence(String username) { - if (!data.containsKey(username + ".password")) { - throw new IllegalArgumentException("No such user : " + username); - } - } - - public UserDetails doGetUserDetails(String username) { - // Never touch admin - if (isAdmin(username)) { - return null; - } - - reloadData(); - checkExistence(username); - - UserDetails result = new UserDetails(); - result.setName(Strings.nullToEmpty(data.get(username + ".name"))); - result.setEmail(Strings.nullToEmpty(data.get(username + ".email"))); - LOG.info("details for user {} : {}", username, result); - return result; - } - - public Collection doGetGroups(String username) { - // Never touch admin - if (isAdmin(username)) { - return null; - } - - reloadData(); - checkExistence(username); - - Collection result = parseList(data.get(username + ".groups")); - LOG.info("groups for user {} : {}", username, result); - return result; - } - - private static boolean isAdmin(String username) { - return StringUtils.equals(username, "admin"); - } - - private void reloadData() { - data = parse(settings.getString(DATA_PROPERTY)); - } - - private static final Splitter LIST_SPLITTER = Splitter.on(',').omitEmptyStrings().trimResults(); - private static final Splitter LINE_SPLITTER = Splitter.on(Pattern.compile("\r?\n")).omitEmptyStrings().trimResults(); - - @VisibleForTesting - static List parseList(String data) { - return ImmutableList.copyOf(LIST_SPLITTER.split(Strings.nullToEmpty(data))); - } - - @VisibleForTesting - static Map parse(String data) { - Map result = Maps.newHashMap(); - for (String entry : LINE_SPLITTER.split(Strings.nullToEmpty(data))) { - Iterator keyValue = Splitter.on('=').split(entry).iterator(); - result.put(keyValue.next(), keyValue.next()); - } - return result; - } - - public void init() { - // nothing to do - } - -} diff --git a/tests/plugins/security-plugin/src/main/java/FakeGroupsProvider.java b/tests/plugins/security-plugin/src/main/java/FakeGroupsProvider.java deleted file mode 100644 index f2b4e86c636..00000000000 --- a/tests/plugins/security-plugin/src/main/java/FakeGroupsProvider.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Collection; -import org.sonar.api.security.ExternalGroupsProvider; - -public class FakeGroupsProvider extends ExternalGroupsProvider { - - private final FakeAuthenticator instance; - - public FakeGroupsProvider(FakeAuthenticator instance) { - this.instance = instance; - } - - @Override - public Collection doGetGroups(String username) { - return instance.doGetGroups(username); - } - -} diff --git a/tests/plugins/security-plugin/src/main/java/FakeRealm.java b/tests/plugins/security-plugin/src/main/java/FakeRealm.java deleted file mode 100644 index ee53c4d9297..00000000000 --- a/tests/plugins/security-plugin/src/main/java/FakeRealm.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.config.Settings; -import org.sonar.api.security.ExternalGroupsProvider; -import org.sonar.api.security.ExternalUsersProvider; -import org.sonar.api.security.LoginPasswordAuthenticator; -import org.sonar.api.security.SecurityRealm; - -public class FakeRealm extends SecurityRealm { - - private FakeAuthenticator instance; - - public FakeRealm(Settings settings) { - this.instance = new FakeAuthenticator(settings); - } - - @Override - public LoginPasswordAuthenticator getLoginPasswordAuthenticator() { - return instance; - } - - @Override - public ExternalGroupsProvider getGroupsProvider() { - return new FakeGroupsProvider(instance); - } - - @Override - public ExternalUsersProvider getUsersProvider() { - return new FakeUsersProvider(instance); - } - -} diff --git a/tests/plugins/security-plugin/src/main/java/FakeUsersProvider.java b/tests/plugins/security-plugin/src/main/java/FakeUsersProvider.java deleted file mode 100644 index 95a381c8820..00000000000 --- a/tests/plugins/security-plugin/src/main/java/FakeUsersProvider.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.security.ExternalUsersProvider; -import org.sonar.api.security.UserDetails; - -public class FakeUsersProvider extends ExternalUsersProvider { - - private final FakeAuthenticator instance; - - public FakeUsersProvider(FakeAuthenticator instance) { - this.instance = instance; - } - - @Override - public UserDetails doGetUserDetails(String username) { - return instance.doGetUserDetails(username); - } - -} diff --git a/tests/plugins/security-plugin/src/main/java/SecurityPlugin.java b/tests/plugins/security-plugin/src/main/java/SecurityPlugin.java deleted file mode 100644 index 250cbf83210..00000000000 --- a/tests/plugins/security-plugin/src/main/java/SecurityPlugin.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public class SecurityPlugin extends SonarPlugin { - - public List getExtensions() { - return Arrays.asList(FakeRealm.class, FakeAuthenticator.class); - } - -} diff --git a/tests/plugins/security-plugin/src/test/java/FakeAuthenticatorTest.java b/tests/plugins/security-plugin/src/test/java/FakeAuthenticatorTest.java deleted file mode 100644 index 691ecf0f7ad..00000000000 --- a/tests/plugins/security-plugin/src/test/java/FakeAuthenticatorTest.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Map; -import org.junit.Before; -import org.junit.Test; -import org.sonar.api.config.internal.MapSettings; -import org.sonar.api.config.Settings; -import org.sonar.api.security.UserDetails; - -import static org.assertj.core.api.Assertions.assertThat; - - -public class FakeAuthenticatorTest { - - private Settings settings; - private FakeAuthenticator authenticator; - - @Before - public void setUp() { - settings = new MapSettings(); - authenticator = new FakeAuthenticator(settings); - authenticator.init(); - } - - @Test - public void shouldNeverTouchAdmin() { - assertThat(authenticator.authenticate("admin", "admin")).isTrue(); - assertThat(authenticator.doGetGroups("admin")).isNull(); - assertThat(authenticator.doGetUserDetails("admin")).isNull(); - } - - @Test - public void shouldAuthenticateFakeUsers() { - settings.setProperty(FakeAuthenticator.DATA_PROPERTY, "evgeny.password=foo"); - - assertThat(authenticator.authenticate("evgeny", "foo")).isTrue(); - assertThat(authenticator.authenticate("evgeny", "bar")).isFalse(); - } - - @Test(expected = RuntimeException.class) - public void shouldNotAuthenticateNotExistingUsers() { - authenticator.authenticate("evgeny", "foo"); - } - - @Test - public void shouldGetUserDetails() { - settings.setProperty(FakeAuthenticator.DATA_PROPERTY, "evgeny.password=foo\n" + - "evgeny.name=Tester Testerovich\n" + - "evgeny.email=evgeny@example.org"); - - UserDetails details = authenticator.doGetUserDetails("evgeny"); - assertThat(details.getName()).isEqualTo("Tester Testerovich"); - assertThat(details.getEmail()).isEqualTo("evgeny@example.org"); - } - - @Test(expected = RuntimeException.class) - public void shouldNotReturnDetailsForNotExistingUsers() { - authenticator.doGetUserDetails("evgeny"); - } - - @Test - public void shouldGetGroups() { - settings.setProperty(FakeAuthenticator.DATA_PROPERTY, "evgeny.password=foo\n" + - "evgeny.groups=sonar-users,sonar-developers"); - - assertThat(authenticator.doGetGroups("evgeny")).containsOnly("sonar-users", "sonar-developers"); - } - - @Test(expected = RuntimeException.class) - public void shouldNotReturnGroupsForNotExistingUsers() { - authenticator.doGetGroups("evgeny"); - } - - @Test - public void shouldParseList() { - assertThat(FakeAuthenticator.parseList(null)).isEmpty(); - assertThat(FakeAuthenticator.parseList("")).isEmpty(); - assertThat(FakeAuthenticator.parseList(",,,")).isEmpty(); - assertThat(FakeAuthenticator.parseList("a,b")).containsOnly("a", "b"); - } - - @Test - public void shouldParseMap() { - Map map = FakeAuthenticator.parse(null); - assertThat(map).isEmpty(); - - map = FakeAuthenticator.parse(""); - assertThat(map).isEmpty(); - - map = FakeAuthenticator.parse("foo=bar"); - assertThat(map).hasSize(1); - assertThat(map.get("foo")).isEqualTo("bar"); - - map = FakeAuthenticator.parse("foo=bar\r\nbaz=qux"); - assertThat(map).hasSize(2); - assertThat(map.get("foo")).isEqualTo("bar"); - assertThat(map.get("baz")).isEqualTo("qux"); - - map = FakeAuthenticator.parse("foo=bar\nbaz=qux"); - assertThat(map).hasSize(2); - assertThat(map.get("foo")).isEqualTo("bar"); - assertThat(map.get("baz")).isEqualTo("qux"); - - map = FakeAuthenticator.parse("foo=bar\n\n\nbaz=qux"); - assertThat(map).hasSize(2); - assertThat(map.get("foo")).isEqualTo("bar"); - assertThat(map.get("baz")).isEqualTo("qux"); - } - -} diff --git a/tests/plugins/server-plugin/build.gradle b/tests/plugins/server-plugin/build.gradle deleted file mode 100644 index 3270dad726f..00000000000 --- a/tests/plugins/server-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'server-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'ServerPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'SonarQube Integration Tests :: Plugins :: Server', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/server-plugin/src/main/java/ServerPlugin.java b/tests/plugins/server-plugin/src/main/java/ServerPlugin.java deleted file mode 100644 index d9b81db3edc..00000000000 --- a/tests/plugins/server-plugin/src/main/java/ServerPlugin.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import ce.CePauseStep; -import ce.PauseMetric; -import java.util.Arrays; -import java.util.List; -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyField; -import org.sonar.api.SonarPlugin; - -import static org.sonar.api.PropertyType.BOOLEAN; -import static org.sonar.api.PropertyType.FLOAT; -import static org.sonar.api.PropertyType.INTEGER; -import static org.sonar.api.PropertyType.LICENSE; -import static org.sonar.api.PropertyType.LONG; -import static org.sonar.api.PropertyType.METRIC; -import static org.sonar.api.PropertyType.METRIC_LEVEL; -import static org.sonar.api.PropertyType.PASSWORD; -import static org.sonar.api.PropertyType.PROPERTY_SET; -import static org.sonar.api.PropertyType.SINGLE_SELECT_LIST; -import static org.sonar.api.PropertyType.STRING; -import static org.sonar.api.PropertyType.TEXT; -import static org.sonar.api.PropertyType.USER_LOGIN; - -@Properties({ - @Property(key = "some-property", name = "Some Property", defaultValue = "aDefaultValue", global = true, project = false), - @Property(key = "boolean", name = "Boolean", defaultValue = "true", type = BOOLEAN, global = true, project = false), - @Property(key = "user", name = "User", type = USER_LOGIN, global = true, project = false), - @Property(key = "list", name = "List", type = SINGLE_SELECT_LIST, options = {"A", "B", "C"}, global = true, project = false), - @Property(key = "metric", name = "Metric", type = METRIC, global = true, project = false), - @Property(key = "metric_level", name = "Metric Level", type = METRIC_LEVEL, global = true, project = false), - @Property(key = "float", name = "Float", type = FLOAT, global = true, project = false), - @Property(key = "int", name = "Integer", type = INTEGER, global = true, project = false), - @Property(key = "string", name = "String", type = STRING, global = true, project = false), - @Property(key = "setting.license.secured", name = "License", type = LICENSE, global = true, project = false), - @Property(key = "long", name = "Long", type = LONG, global = true, project = false), - @Property(key = "password", name = "Password", type = PASSWORD, global = true, project = false), - @Property(key = "text", name = "Text", type = TEXT, global = true, project = false), - @Property(key = "multi", name = "Multi", type = STRING, multiValues = true, global = true, project = false), - @Property(key = "hidden", name = "Hidden", type = STRING, global = false, project = false), - @Property(key = "project.setting", name = "Project setting", type = STRING, global = false, project = true), - @Property(key = "setting.secured", name = "Secured", type = STRING, global = true, project = false), - @Property(key = "sonar.jira", name = "Jira Server", type = PROPERTY_SET, propertySetKey = "jira", fields = { - @PropertyField(key = "key", name = "Key", description = "Server key"), - @PropertyField(key = "type", name = "Type", options = {"A", "B"}), - @PropertyField(key = "url", name = "URL"), - @PropertyField(key = "port", name = "Port", type = INTEGER)}), -}) -public class ServerPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList( - StartupCrash.class, ServerStartupLock.class, TempFolderExtension.class, PauseMetric.class, CePauseStep.class); - } -} diff --git a/tests/plugins/server-plugin/src/main/java/ServerStartupLock.java b/tests/plugins/server-plugin/src/main/java/ServerStartupLock.java deleted file mode 100644 index 02125e66341..00000000000 --- a/tests/plugins/server-plugin/src/main/java/ServerStartupLock.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.io.File; -import java.util.Optional; -import org.sonar.api.SonarRuntime; -import org.sonar.api.Startable; -import org.sonar.api.ce.ComputeEngineSide; -import org.sonar.api.config.Configuration; -import org.sonar.api.server.ServerSide; -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.Loggers; - -@ServerSide -@ComputeEngineSide -public class ServerStartupLock implements Startable { - - private static final Logger LOGGER = Loggers.get(ServerStartupLock.class); - - private final Configuration configuration; - private final SonarRuntime runtime; - - public ServerStartupLock(Configuration configuration, SonarRuntime runtime) { - this.configuration = configuration; - this.runtime = runtime; - } - - @Override - public void start() { - Optional path = configuration.get(propertyKey()); - if (path.isPresent()) { - File lock = new File(path.get()); - try { - while (lock.exists()) { - LOGGER.info("ServerStartupLock - Waiting for file to be deleted: " + lock.getAbsolutePath()); - Thread.sleep(100L); - } - LOGGER.info("ServerStartupLock - File deleted. Resuming startup."); - } catch (InterruptedException e) { - LOGGER.info("ServerStartupLock - interrupted"); - Thread.currentThread().interrupt(); - } - } - } - - @Override - public void stop() { - // nothing to do - } - - private String propertyKey() { - switch (runtime.getSonarQubeSide()) { - case SERVER: - return "sonar.web.startupLock.path"; - case COMPUTE_ENGINE: - return "sonar.ce.startupLock.path"; - default: - throw new IllegalArgumentException("Unsupported runtime: " + runtime.getSonarQubeSide()); - } - } -} diff --git a/tests/plugins/server-plugin/src/main/java/StartupCrash.java b/tests/plugins/server-plugin/src/main/java/StartupCrash.java deleted file mode 100644 index dcde8c8e1d3..00000000000 --- a/tests/plugins/server-plugin/src/main/java/StartupCrash.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.Startable; -import org.sonar.api.config.Settings; -import org.sonar.api.server.ServerSide; - -@ServerSide -public class StartupCrash implements Startable { - - private final Settings settings; - - public StartupCrash(Settings settings) { - this.settings = settings; - } - - @Override - public void start() { - if (settings.getBoolean("failAtStartup")) { - throw new IllegalStateException("Error in plugin [server]"); - } - } - - @Override - public void stop() { - // do nothing - } -} diff --git a/tests/plugins/server-plugin/src/main/java/TempFolderExtension.java b/tests/plugins/server-plugin/src/main/java/TempFolderExtension.java deleted file mode 100644 index 77618177e0b..00000000000 --- a/tests/plugins/server-plugin/src/main/java/TempFolderExtension.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyType; -import org.sonar.api.ServerExtension; -import org.sonar.api.config.Settings; -import org.sonar.api.utils.TempFolder; -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.Loggers; - -@Properties({ - @Property( - key = TempFolderExtension.CREATE_TEMP_FILES, - type = PropertyType.BOOLEAN, - name = "Property to decide if it should create temp files", - defaultValue = "false") -}) -public class TempFolderExtension implements ServerExtension { - - private static final Logger LOG = Loggers.get(TempFolderExtension.class); - - public static final String CREATE_TEMP_FILES = "sonar.createTempFiles"; - - private Settings settings; - - private TempFolder tempFolder; - - public TempFolderExtension(Settings settings, TempFolder tempFolder) { - this.settings = settings; - this.tempFolder = tempFolder; - start(); - } - - public void start() { - if (settings.getBoolean(CREATE_TEMP_FILES)) { - LOG.info("Creating temp directory: " + tempFolder.newDir("sonar-it").getAbsolutePath()); - LOG.info("Creating temp file: " + tempFolder.newFile("sonar-it", ".txt").getAbsolutePath()); - } - } - -} diff --git a/tests/plugins/server-plugin/src/main/java/ce/CePauseStep.java b/tests/plugins/server-plugin/src/main/java/ce/CePauseStep.java deleted file mode 100644 index 73d84aa8afb..00000000000 --- a/tests/plugins/server-plugin/src/main/java/ce/CePauseStep.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package ce; - -import java.io.File; -import org.sonar.api.ce.measure.Component; -import org.sonar.api.ce.measure.MeasureComputer; -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.Loggers; - -public class CePauseStep implements MeasureComputer { - - private static final Logger LOGGER = Loggers.get(CePauseStep.class); - - @Override - public MeasureComputerDefinition define(MeasureComputerDefinitionContext defContext) { - return defContext.newDefinitionBuilder() - .setInputMetrics("ncloc") - .setOutputMetrics(PauseMetric.KEY) - .build(); - } - - @Override - public void compute(MeasureComputerContext context) { - if (context.getComponent().getType() == Component.Type.PROJECT) { - String path = context.getSettings().getString("sonar.ce.pauseTask.path"); - if (path != null) { - waitForFileToBeDeleted(path); - } - } - } - - private static void waitForFileToBeDeleted(String path) { - LOGGER.info("CE analysis is paused. Waiting for file to be deleted: " + path); - File file = new File(path); - try { - while (file.exists()) { - Thread.sleep(500L); - } - LOGGER.info("CE analysis is resumed"); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - throw new IllegalStateException("CE analysis has been interrupted"); - } - } -} diff --git a/tests/plugins/server-plugin/src/main/java/ce/PauseMetric.java b/tests/plugins/server-plugin/src/main/java/ce/PauseMetric.java deleted file mode 100644 index 26d48ef65f8..00000000000 --- a/tests/plugins/server-plugin/src/main/java/ce/PauseMetric.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package ce; - -import java.util.Arrays; -import java.util.List; -import org.sonar.api.measures.Metric; -import org.sonar.api.measures.Metrics; - -public class PauseMetric implements Metrics { - - public static final String KEY = "pause"; - - @Override - public List getMetrics() { - return Arrays.asList(new Metric.Builder(KEY, "Pause", Metric.ValueType.INT).create()); - } -} diff --git a/tests/plugins/settings-encryption-plugin/build.gradle b/tests/plugins/settings-encryption-plugin/build.gradle deleted file mode 100644 index d2a0ebea9c5..00000000000 --- a/tests/plugins/settings-encryption-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'settings-encryption-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'SettingsEncryptionPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'settings-encryption-plugin', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/settings-encryption-plugin/src/main/java/EncryptionVerifier.java b/tests/plugins/settings-encryption-plugin/src/main/java/EncryptionVerifier.java deleted file mode 100644 index 572d8863ad7..00000000000 --- a/tests/plugins/settings-encryption-plugin/src/main/java/EncryptionVerifier.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.BatchExtension; -import org.sonar.api.batch.InstantiationStrategy; -import org.sonar.api.config.Settings; - -@InstantiationStrategy(InstantiationStrategy.PER_BATCH) -public class EncryptionVerifier implements BatchExtension { - private Settings settings; - - public EncryptionVerifier(Settings settings) { - this.settings = settings; - } - - public void start() { - if (settings.hasKey("encryptedProperty")) { - System.out.println("Start EncryptionVerifier"); - - String decryptedValue = settings.getString("encryptedProperty"); - if (!"this is a secret".equals(decryptedValue)) { - throw new IllegalStateException("The property 'encryptedProperty' can not be decrypted"); - } - } - } -} diff --git a/tests/plugins/settings-encryption-plugin/src/main/java/SettingsEncryptionPlugin.java b/tests/plugins/settings-encryption-plugin/src/main/java/SettingsEncryptionPlugin.java deleted file mode 100644 index 9969a903c32..00000000000 --- a/tests/plugins/settings-encryption-plugin/src/main/java/SettingsEncryptionPlugin.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.SonarPlugin; - -import java.util.Arrays; -import java.util.List; - -public class SettingsEncryptionPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(EncryptionVerifier.class); - } -} diff --git a/tests/plugins/settings-plugin/build.gradle b/tests/plugins/settings-plugin/build.gradle deleted file mode 100644 index da4dbbd3bd2..00000000000 --- a/tests/plugins/settings-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'settings-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'SettingsPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Settings', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/settings-plugin/src/main/java/PropertyTypes.java b/tests/plugins/settings-plugin/src/main/java/PropertyTypes.java deleted file mode 100644 index f6cac4d0b09..00000000000 --- a/tests/plugins/settings-plugin/src/main/java/PropertyTypes.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.PropertyType; -import org.sonar.api.ServerExtension; - -@Properties({ - @Property(key = "boolean", name = "Boolean", type=PropertyType.BOOLEAN), - @Property(key = "integer", name = "Integer", type=PropertyType.INTEGER), - @Property(key = "float", name = "Float", type=PropertyType.FLOAT), - @Property(key = "password", name = "Password", type=PropertyType.PASSWORD, defaultValue = "sonar"), - @Property(key = "text", name = "Text", type=PropertyType.TEXT), - @Property(key = "metric", name = "Metric", type=PropertyType.METRIC), - @Property(key = "single_select_list", name = "Single Select List", type=PropertyType.SINGLE_SELECT_LIST, options = {"de", "en", "nl"}) -}) -public class PropertyTypes implements ServerExtension { -} diff --git a/tests/plugins/settings-plugin/src/main/java/ServerExtensionWithProperties.java b/tests/plugins/settings-plugin/src/main/java/ServerExtensionWithProperties.java deleted file mode 100644 index d80d107c109..00000000000 --- a/tests/plugins/settings-plugin/src/main/java/ServerExtensionWithProperties.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.Properties; -import org.sonar.api.Property; -import org.sonar.api.ServerExtension; -import org.sonar.api.config.Settings; - -@Properties({ - @Property(key = "settings.extension.hidden", name = "Hidden Property", description = "Hidden Property defined on extension but not plugin", global = false, project = false, module = false, defaultValue = "teahupoo"), - @Property(key = "settings.extension.global", name = "Global Property", global = true, project = false, module = false) -}) -public final class ServerExtensionWithProperties implements ServerExtension { - - private Settings settings; - - public ServerExtensionWithProperties(Settings settings) { - this.settings = settings; - } - - public void start() { - System.out.println("Test that the default value of properties are automatically injected by the component Settings"); - if (!"teahupoo".equals(settings.getString("settings.extension.hidden"))) { - throw new IllegalStateException("The property settings.extension.hidden is not registered"); - } - } -} diff --git a/tests/plugins/settings-plugin/src/main/java/SettingsPlugin.java b/tests/plugins/settings-plugin/src/main/java/SettingsPlugin.java deleted file mode 100644 index 6ed5f785fbf..00000000000 --- a/tests/plugins/settings-plugin/src/main/java/SettingsPlugin.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public class SettingsPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(ServerExtensionWithProperties.class, PropertyTypes.class); - } -} diff --git a/tests/plugins/sonar-fake-plugin/build.gradle b/tests/plugins/sonar-fake-plugin/build.gradle deleted file mode 100644 index 51b81783def..00000000000 --- a/tests/plugins/sonar-fake-plugin/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'fake', - 'Plugin-Version': version, - 'Plugin-Class': 'FakePlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Plugins :: Fake', - 'Plugin-License': 'GNU LGPL 3', - 'Plugin-Organization': 'SonarSource' - ) - } -} diff --git a/tests/plugins/sonar-fake-plugin/src/main/java/FakePlugin.java b/tests/plugins/sonar-fake-plugin/src/main/java/FakePlugin.java deleted file mode 100644 index 00195e03f4a..00000000000 --- a/tests/plugins/sonar-fake-plugin/src/main/java/FakePlugin.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.SonarPlugin; - -import java.util.Collections; -import java.util.List; - -public final class FakePlugin extends SonarPlugin { - - public List getExtensions() { - return Collections.emptyList(); - } - -} diff --git a/tests/plugins/sonar-subcategories-plugin/build.gradle b/tests/plugins/sonar-subcategories-plugin/build.gradle deleted file mode 100644 index c365fee4d7f..00000000000 --- a/tests/plugins/sonar-subcategories-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'sonar-subcategories-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'SubCategoriesPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Plugins :: SubCategories', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/sonar-subcategories-plugin/src/main/java/SubCategoriesPlugin.java b/tests/plugins/sonar-subcategories-plugin/src/main/java/SubCategoriesPlugin.java deleted file mode 100644 index 0f20fd1bc89..00000000000 --- a/tests/plugins/sonar-subcategories-plugin/src/main/java/SubCategoriesPlugin.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.SonarPlugin; -import org.sonar.api.config.PropertyDefinition; -import org.sonar.api.resources.Qualifiers; - -public class SubCategoriesPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList( - PropertyDefinition.builder("prop1") - .index(2) - .category("Category 1") - .subCategory("Sub category 1") - .description("Foo") - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinition.builder("prop2") - .index(1) - // SONAR-4501 category are case insensitive - .category("category 1") - .subCategory("Sub category 1") - .description("Foo") - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinition.builder("prop3") - .category("Category 1") - .subCategory("Sub category 2") - .description("Foo") - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinition.builder("prop5") - .category("Category 1") - // SONAR-4501 subcategory are case insensitive - .subCategory("sub category 2") - .description("Foo") - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinition.builder("prop4") - .category("Category 1") - .description("Foo") - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinition.builder("prop2_1") - .category("Category 2") - .subCategory("Sub category 1 of 2") - .description("Foo") - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinition.builder("prop2_2") - .category("Category 2") - .subCategory("Sub category 2 of 2") - .description("Foo") - .onQualifiers(Qualifiers.PROJECT) - .build(), - PropertyDefinition.builder("prop_only_on_project") - .category("project-only") - .description("Foo") - .onlyOnQualifiers(Qualifiers.PROJECT) - .build()); - } -} diff --git a/tests/plugins/sonar-subcategories-plugin/src/main/resources/org/sonar/l10n/subcategories.properties b/tests/plugins/sonar-subcategories-plugin/src/main/resources/org/sonar/l10n/subcategories.properties deleted file mode 100644 index c5cba9d826c..00000000000 --- a/tests/plugins/sonar-subcategories-plugin/src/main/resources/org/sonar/l10n/subcategories.properties +++ /dev/null @@ -1,3 +0,0 @@ -property.category.category\ 1=Category 1 -property.category.category\ 1.sub\ category\ 1=Sub category 1 -property.category.category\ 1.sub\ category\ 2=Sub category 2 diff --git a/tests/plugins/ui-extensions-plugin/build.gradle b/tests/plugins/ui-extensions-plugin/build.gradle deleted file mode 100644 index 1124b552dae..00000000000 --- a/tests/plugins/ui-extensions-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'ui-extensions-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'UiExtensionsPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'SonarQube Integration Tests :: Plugins :: UI extensions', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/ui-extensions-plugin/src/main/java/UiExtensionsPlugin.java b/tests/plugins/ui-extensions-plugin/src/main/java/UiExtensionsPlugin.java deleted file mode 100644 index da443b6a000..00000000000 --- a/tests/plugins/ui-extensions-plugin/src/main/java/UiExtensionsPlugin.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import org.sonar.api.Plugin; - -public class UiExtensionsPlugin implements Plugin { - @Override - public void define(Context context) { - context.addExtension(UiPageDefinition.class); - } -} diff --git a/tests/plugins/ui-extensions-plugin/src/main/java/UiPageDefinition.java b/tests/plugins/ui-extensions-plugin/src/main/java/UiPageDefinition.java deleted file mode 100644 index f6b0eb340e5..00000000000 --- a/tests/plugins/ui-extensions-plugin/src/main/java/UiPageDefinition.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import org.sonar.api.web.page.Context; -import org.sonar.api.web.page.Page; -import org.sonar.api.web.page.PageDefinition; - -import static org.sonar.api.web.page.Page.Scope.COMPONENT; -import static org.sonar.api.web.page.Page.Scope.ORGANIZATION; - -public class UiPageDefinition implements PageDefinition { - @Override - public void define(Context context) { - context - .addPage(Page.builder("uiextensionsplugin/global_page").setName("Global Page").build()) - .addPage(Page.builder("uiextensionsplugin/global_admin_page").setName("Global Admin Page").setAdmin(true).build()) - .addPage(Page.builder("uiextensionsplugin/project_page").setName("Project Page").setScope(COMPONENT).build()) - .addPage(Page.builder("uiextensionsplugin/project_admin_page").setName("Project Admin Page").setScope(COMPONENT).setAdmin(true).build()) - .addPage(Page.builder("uiextensionsplugin/organization_page").setName("Organization Page").setScope(ORGANIZATION).build()) - .addPage(Page.builder("uiextensionsplugin/organization_admin_page").setName("Organization Admin Page").setScope(ORGANIZATION).setAdmin(true).build()); - } -} diff --git a/tests/plugins/ui-extensions-plugin/src/main/resources/static/cute.jpg b/tests/plugins/ui-extensions-plugin/src/main/resources/static/cute.jpg deleted file mode 100644 index 20f59bc1c4290f6a83bb9085c1d68fceb80ef578..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23245 zcmbTd1ymf%w)owHySpc7aCZqIcyJHSKyY^t5G1%0+}(n^d$15RxD(uAf_{^8?mPE> zZ>_(*VomjLs&;kny{oEwS55Q0@VpLS$w|pd0U!_vkb(XI&zor4vJw)8%Bo6IvhO6J z6##%H^Ul)F9tH~lZ0%f}RHffgY3sbFLYx3#0Av6G-~a$)u(N}Lnv^;KO|p^_RL)SL zKm4x*J;%))0L=klnngyLit1nG|F;Khu!EBe0DzRC4Y*9roWW531Z5j{7l%LPXHdp7 zvHrs_aDUhdsvwk!{;>Jq%>0+k-~9Ryo7&o$LS_Ew>|knZ`iJ|W9OmX~24&cHP!4gk zG;@dY43ueXTx~6(41qG9t(mbi0KlRBDR(ggTR@o|%4kmNsuEBZ1^^^9^Z#Iz|6mt0 z52&61AYt#|>11hc;X=g#enrJ0Aiz&0W9DvS=HkMlYz($Gb~2@su(x$Ew(|slzis~0 z3c&f}TPmoNc{v1ld09AFq3-`D{ckJ(k^0}mpT7ND;!@?WJ_8Yq{k!bnZU0?np9cW^ z*HGWY{=3X16#$xo0f1=n-(@s80D$=k02(L%!ybY^i`p2RF zr2nJ9Ka&4z_>b$c{<+>izN30;_QBZI#)aySQ^EE&_O4D;&JM<4Gb)z*?QT0$OBYLfJ1R@N|5XqF51ajm4uA0PaSa9Bf+qma zkQKn1!~(>24uLb^2Dpdb z$Phv3AY2eJh!R8#Vghl3_(7r|NzglxDo6)p1TqKNfm}g8pde5LC?1ps$_15zYCtWZ z9?%GA3iK1S0on&$fbL*mVbEakV8~(UVAx>zVZ>qNVbo#tVa#D1VZ2~I!9>G+fyslZ zfN6y3ff+VU{PTSU|+zp!1BXNz$(GMhy4KS1nUPI4x0>{2U`W(3OfWl z4Z99|1p6Bf0S*_A3XTO%2u=o00}c%52t|B0e1%X1dk3+2G0a9 z2rmn-4Q~$b4j%%a3||D_06zdf3%>(@gMffQfIyGHhaiKXgJ6Z=jSz{DiBOHujWC6< zg>a3Ch)9gcgeZcjglLTDf*69Bidcczh4=$;2N8mVibRRTi6n*e9?1?V5Gfg{45<_8 z2htwWJu((DEwUi860#|>CvpsO0dgzyB=QdOJqk7oJ&Fj5I*Jua0LmAXDwF|~Wt2-) zRMeNK0;npemZ%?5zo33a9Y)`3e~>=Eo=IEXlOIFdM~IG=Fxar$t!aA9$&aV2oU zxIwrDxC6L5cnEm(c(Qm_coBG&coTSM_&E67_?q}0`04l^`0E6)1at(l1U3XQ1hoWn z1b2kwgyMu|gr5nk2!9aX5|I+UCNd)mC#oizCAuS~B9bZBVi;_A#o?k zA{ih#BE=&WA_bF%lh%?hlEIKMlBtq;ljW0*kzJEhkV}(0kf)OOksnbIP`swFqDZ9Z zq}Zp#r4*&Kq)epjqCB9&rxK^Kq54AAPj&W!?1jt=*B7}jCSKgXq<^XLGVo>f%N1%A zYJTbu)QQx+)Mqr5Gzv66H03mlw8*slv=+1}v_rJFbo6vubfI)jbie3{=w<1>=*#Js z8PFNT7#tb$7-n7}yyAal{VMa-cSaaS9!3ksbjC?07$#mOOQuYwDQ0+P0cJbqJmz^8 zG!}6dH6|lM=v-1<{#?ym=iE%(X53la3p}_y3Ou1ay*!V+e7sJ)RlNIrG<-&U8GQ5nc>K!z zk^I8~@B(iH`~}(tehcynx(L<^o(i!DSqqg3{Su}ZHWMxo-V%8!Vl0v?vMx#`Y9yK? zx-RxY%vdZ>Z1XksYtz?7ulK}XiCc+Rh@ZS+f8+F~;mxgtpoFhP_gmPv(r?4xPDtWN zYDlI@u1dX>GM6fsI+Ny+_LlCJftQh&iIbU^C6@)umdc*V@yYqh^~6 zyHS6m9;3db!Jy%)(W{B6si#@0d8_qSD_(0|n@!tSdsK%+$5N;HJ>q-K_eJlobtQF^ zba(W4^g{IJ^y&3I^hXRx3~UTK3^5Ij4eN~HjkJu)j2?`YjPs1IO=L|nOwPa(;1uwo z>1)$O(|t1$vv{+;4Pwm7nsuuQW&x012Swz{=evM#oMw$ZYw zwnefvvTd=$v9q@8x2Lf8u%B{ZatLu)cNBC?ay)aAcPerQIqN$&yWl~CsWDdu*I?HT zH&M5AH;B8Ydz}Zihn>fmC!^vI0;~hZ1K9)P1FwR#f?7Y3fBN`oD_ADotu^>O-1E+HCrp^y&<74jFB7LgQ16g?K(6|a}5mh_kMm6n!~ zmBp09l)IMiSLjuIuY6nCT*XqATTM_M@fG;$`t_j3sAjHKzP7iHzpkpDwmzc)w;{X{ z)acoG)@0GN-mKF+)gsr@+bY!B(8k(U-2S3Hy#v1^rW2*}Q|EJ+SJ!p7L-$dSdCyj_ zVee9(cHd0DO8>-w{J`*_)L`F`_)yod$Z-3J;7H3i{%=jAyrYd{JYx;xJmU=$yc3O+ ze3Q-J1-`dV2~TzY5c|(j9_?X#V8r}O8F$V=kO;w$c}-fQLS)f?NJ``d5` zF{I=-|L>tYt-HN@_Xos>FORPtTc6~gmY;2(pPx5i5F|Y;KLCJ&0>B8329N+`5GHgD z@h2_-051^MUyKOlk02ZX7J3Bzi84SWf7SnqH^M-q|8Ojb;a@V)Gk`e$YD)%{`2ynn zi}9dbA8Pqm;PI#JF!TecDJkjzz*{v57MZ`pX6TCNuSn*vqqwQPi5Zo$g}sZtvxU6_ zm4q56m6oNQslB^1z{$?eC&wlCntL>?0@MAYK(>Zhrh+a{BxewcsOXp^p}R9-FWza%1`1E|8-8N z=i-t6#ZbX`vFKO=Yakt1NBM{%)kAU1N#pTK~ME3{qa6j<-g1S z@&LO4)Cp8jKXCF0a&i9cmH$=-l}Gx!Ej0hzyMOm3bnyrMj`F+&NB}T@66miS1_l-u z0S*?L5aHqB5Red&kp6s-QP5G5kxgzAI} z6=;ACR1hpI3>+*}Uuawl@`cs|aMza8-;EUpnG(2E^qeQNO9_!B?F+qv0}f z3PeUBAS5Ctp{1i|c*V%g!^_7nASm%xQc7AzR!&V_LsJVHaDz?FKA2lrS~r`vj1imHqB{~yK>XmCYiU_6%$uf>*-#TQ#~uD+ zC!d=(jE2jnKci)j2$u7(=NTZRuZv#9T!h_J$R}X7H>s_27ucqoMh3v0Ow&}Bm=O=A zxznhd@|8JN9EmZVz6w@MV-%dU%F0(XA2|Ys9}agnl2sD%GOzU~HC?w0YqrlJT$|r4 z;*p;L3pUEff|{Sy+KbS&Nf=5g<)20sxS=BNqAK40I(K+^_YLTGo0sFEdTkmx>HUcI=g!dhk&R~{LW{t7dW-M# z5e@2R!doYNo2}}Um~SQG8-|giC4RSCYhmV}&UflLUQIa8f4hBTT3m1b((;Oog_1PY zY=U!WDZ{~0xnpLO#;A|(7Dz%5SmWO;zo!e$Uge+5yb+dHJqsPIs~YeudiuUf9X>W# zlTOTH++zzdM>AQL?b*t~8<*%aB(rl}N<9)4fJ7+Nd>A9RU`7K2V7T9gyb9i>m&Glr zXUl^yWwEp*fDbv;nI$55k*N~s6 zth_X``;~A#mRw>ZEaF~94pw}sgNb!Qg%P#yZNHR*%-(B2I`(Gl{n#JgK-`nD2MTm8 z=eQ6+(x-3c;_7y=K6ca%XM?$rJ3mYSJJBa7oa-krCXVhCFpwBzjj z-|An@SnC$Gxz#Cwr$mV%YnyYqXRj5iA2iM!@c)K}tvG9CGgpKU+Y z#7|Z7c=FRNHJsYhc+Dl)o=^6RVdAQMh4hqbk2sv}{BCj_p#hH>aS|+-b_3gv*JX8< z{`DSb*A<%200B=#Iz(c?opTuE_CyTuLWYWfJ1vFvYGMzuHxNtnVyjMuY37p`%^9AA zgkv-soQ*3>2!a%=p@lA*ok9@*$8wJs=Wd^=AM@S%d>zDl0gfZjs?wdchUc#Rc_LFtu1t=^WYL{6 z)HMR+)=RnPT0wNPRq-O;Z%s(E4u1lK20fMWlId~%=ud+&9E3X%|F-*)d|*)xTBbUMB4kd2UDt4?Kh2lpWJ*7 zNh*3Pi>uy9ji%^v(dNt4>u)QzL~yy$n40?_26=mKB`Q1*_KrDLZ)ADQL|lIH50Jpl4UYrx@6^FpO}qZ$vs+43W=ZN z;Y#EaInMB|a*-`X$db8#j)L1h;IJdnW0X?%6V#Jbaz8|7k`$O3m5x}n8SQ-n%Z7a#O@zN=30$q7t>i8kxhz<2WulG`jviJFv;Q>?LGK`C`k6@5^P|JT*VF^Zbv(4@9RsoXG^jO|pE4 z&j4`X<5;!?$@zxcfLk&jO7{!%bz_1n(0bGMQqV ziA~?oi0Mj3@rKnWtUYqw2!^nvdw;PrpJprLk}Yq4T9zsMRjPvlB1iQxhswNlaqdp5 zQt0UeeUX*Zfx{9F7r%vMBs7%q%`vJ%>=OTFof^@bHon%oBBxc8JfRz9TxHah8Y`nV zuDPrwA~T798j~j}QudnF1m5$_z-JMG+lt+@!pQk?k>$9Rkv{3&5R}Rz(2&<}y}m<_ zBhzyp(N{usC+ygLMrSpB(-76#E5?12m{1pThM$&he679-!7C?N>``RkPuCR z#iL;ODig7P*q}q7iI?vxUCOO=Jm4;L$(iRriBZ~?HnS~h}N*jyy{<`{h zZ;i#T#L&eoSip+&V(T^jMAZ!}a*K;=3e%NFKZ?cLBHuQC>;Kq|J=%QaHDC7(^oY4C z@Ihm_W9oA)@y?cM8*Y8Dd_%izl>`ujD+YY@c#*Ia{#)s0Z#wt;Gq7IN$0JE!8)c}k2Q>I32w*13R+Os7KL(6v+-v83y~;g;W}E=v&F#<66&uCXdAq4PUO%@h&9_ z#FLIRjoUX&Nlqiky=e|>;*=_Mli^fnfTe(RKNWSUJYo8cuF{{Mb}J!!6dh2K>3Y~} zHC(d1{6Q|}ZMWw=G2~!71UstC?umxPGmrl+)iOlqxcWOe^?7;oLs-iS0oj`eZCvk@PLJ;yo`Q zqz-n(V$jBLa6)=us)f+slR$#{vawye2tB%bNqidlw7h*pa@JNx*rzLfZr1h&m+~$P zKE3$12N&xkrBv&2+TDm{O{h?|Pnbez`y%-pIc1+yqWU`qtvD@XJ+CePb*-R)Odk=c zjEtmc8MB47hzk(uz9Vmi@#6|gY+>g_tvDZ9hw;Sy3(0`AgeM#p zLAcQ#2ZU8+-8LM*j~d>i_ZFfw9>0`?;R*YjP=*(N`@19W230MP@|tD6!eHmcZWGO4 zZOdCt%df>!V4~9%d`gew578d^t(X2`-OFXdLP6?hxD6(e7%vmw#np@))6uWm*9iCCT7=Q6CBj^^zmpls+n$O?n2F7y z5#0+{KBQTa;{Y;XJSVTq-aOKBB2CQ%MS7akcWs=iikI~MI;pxJ>0@Q@j?N(IKw^0p zc?4irApk&7n$HwNz(%rhc48o2_A{Vw90m57+*{KQ>)smGbW`OQfOAxg8N z+X*ATM9N;dlq<*&%nR!GPvX_#U;M-kcJQQ(8<4L0ZCnE|H~_Ovk^3KKe49RrzvyRE|%q4@)^<+L(v$KVWYuDD^z?*34hErLr`LaGJF@ zBoRHtAg>m$2{}fu$F0_u%E}3*PgQL(aox=)vEq1)xwGNf{4^ELO5Iwl9CD@!AED2# zcV$!>6B9gJ!Q4W%>O$v^QoCo|-|46g*|L^FxcG%iL6}QlD9hJhsjVmNXqjst3A-24 zW`@G!@@w5%)?lc<#t}&}UV~h5qs@I@prUP9{g?YOZA0V<%ZKGb zKrG;^61nv60Z&dJ*_p*vHZj>~Ui?iCF35y`d#yD{QVS}vH zR`y`={hO#>9bao3^QYeI3nr`70~_0}E9JbD8^Z3hlZt$L0?jq0Ym@Me{t3qNma&F# z!ok3yClbm{8>NOS%6?9qo-osXb|(@3Lv5#@k_0#R)|m@LpNIXc=UNSkSGoP`+4{Lr zDDA@vhZ!)O(a4MSNQo}p@7C(( z{YkzV4j)6^M<iFGt&**;LTB)_RbuZX?vV^y3D{X=$vC=P~4{JM} zR`ZXDUafaym?UHKXyLL$U#iNKd`!XF??(pQdA3y+`#R^nzJF`NZ6j85=9C+ac3i_( zR;pN9Z)~QGprT@HnDKX~j=Y~G_K~+YCZDy_t%QJ_EDYzti(Ohyv~pm%yH?}k`oV}x-fc=Y3VD;d`Opadrez-w-UqW z1@@*y(M|8jOI_r-qYFp`wC5;%BREw$23}G3w#k^X7@S z%wTG=NJ>4er8UfFz?S$Lf0}!Z2;#9E-(#Lkx9qm{Xgp-#t;OP#LWpk6l*#Sh%>u^ebG$SP8!+ zU(7jgS2QCQOAHCDhp)j)V1F)49xWHB;ZNh<+#&F68nTZ}Tdmt#kt1wwPL`$IR^m^j zew^;9POpz(S}I8P*j73wCT<^WcD{IZ;(s@*rqZ5usqNh%C9~}&#&mMuwUxF!bsB%$ zuQkurA{{+i_XVTOCHL zhj(ONGm~C!zk@=w-1hPOk#DljXPpwnp)HVzPo$NUFlhRKNI26=z1x)5H?*}t1znd ztHjX;H?+Kj5!kq(;p*3hSfiZwONQC^tu0#(^{eDOg^C5rCPGE5n($uGw zrWwpLk|OPC3gVSXUu73y3W|sQ=-It*@Z~N#-Id?7{x>Va=1Z66-*UJ;lb86vLyXGQ z`V|@9>)jtQW_!)>Dz(3v0_lo?T z_&DPXozW)QPbA)(ma;~SK5rmV=8xU$ZFOnc8j^eXjqJI7gYPKc0f zwJYrfe1)1FV}O%x%x3qaMc>BW`?63+lMND=jFuP>r1U(PM~71CYpc}Mv0-q1^K$wG zC#-q3iMQ5-*F^Jians`Q+zTcgHK)+Mk868ZWr8AmDVA=@ziMTEGyVVuQ1)`Jj#c%< zg_AGduB!jQF_4r*rvaidPCk;kS5G;7v6w0<9m>5R3cpCIn&g@xrfcA;81*GKZWPc) zV-q$qise5%ooi;1B1qe=cVvuK{O5*i%VnN9 z9AU1zXJlDKim7alKdYERzWn1adE8iF*ib@uu99(C^2T!IvtE*_6P_RU)pXv)hScNO zk}QhuM~;ky`MFjWLdC|;>583bVz4VlcT6jU2%)h2lV$<$;`r79Dh^lZ+n?B1r_=MR zt-1>C0}{PB`&b9><5Qfpd8RWfe<2HNlHH&ahJgbY3HTTSQWHS6g1fEytOxu&VsyK! z9!|%Z{aX&}Kei)QNTn1w>+e>(=)xMaty(p7RbUtuzm=f+OgK1c2ZUb|v^bXp)x6YR zIF{5y+an$-y{-mh+L$)GDKQ03Wfmu)A*}oQau|44iQ{)g(8Mmuyo?hbUUnk#+IGyi z#>=3##uX4sB=)Y16R=-8;eVANEEX|>P2Vlb+aytt}7*F=@n+jO@nK;}nTTIE=8 z>~4=g(C+7i{TYQq{ZT~Z;1h3@b;V%boA2#GVC?zg!?(=AOd~6q)9*_yKY*xv%rsEv zBQHc8b>2&d{pj75mk-Nmb%+dwi!uDxiXSUsGUYjt@#5lVH2*Kp(_fPAVs$Bf3b>o} z$JVdT3DOaYH+)$~POgPK6Tf_L`~5-+Hp|b6V};RLD++}(qZK8SSfebLqGIpJN2OSS z)8J^W;f+EAq0>j_wuGVAOnGO;5e93UAyMU|-sv3_tJijR>j!T6Cyazk4Ze{9s*ARH=fo`$|>ixj5iT(xkY3T+6N*FqW1 z&TJxEMDj4J2h#}$x&i%HTP2U5 zA&z;LPaudyE`)bbHZx2~1jB;UOBbjRRFxt-R|qmr~Q ztNgE@>52pk%Q`P?BPL&Cz7d#gkmt=xzSFqS)q7n-TOZavl+ZRR91U+QTix`N{D~ z(t1vBg#4j5Oy~l&YujMXJG*Ad^cjHeg?bY;uvs1Xc>N^m!mdZM_qP-ao9A5a!%pbu zEYU%b#_Cy`KGdU2fv*WsPt@0b-{-i~Zve02@Omc!?tCehY0k&dV*Fm*M>6|(6H8c$ z$@7iKShqOhx`=g}h0Ezzd+Rpu;t4q}K`cZc@b2Ai`#~3}XdgmKO^|h-KuJA1iFIj} z?nIm4OFwt>Kyd~oISA#=0Jg+AXH0GI%q%^FGkS;YHugScg2@qSWB%NUV7AzMso^>Md+@mOExK>}m&DXqv}xIT`VB zGS0i-T2iw|v~{z#w#OTdE%)}xkvZ|{AE__MOkE$WRtA1ZZ$?zUB>uF$lwI#>9ho#F zbsC*H*`aVY+3Vigb(DKfImGd^{ljEGub*V!E9{|5SgN(7>PU=rt*o^J>taYrx8|GS zf~LuaZM9KMBd@GtqUxq#*H^M`qO64!a*p<;-=%GC>JF$?Wq#6tw(1vkw)Gr11<|s9 zq?SoKf^EUJ#mKAM@2VY!o0Tsxn?;hO>1WH6Z2jEkK3&T6FUK!L#0Gyn@O@2LsW;P* z5`S!7?=yS^pbn)b6ANEeR;3A?C~Ue0(#ixey`l;c>x&DOy2HMkYYJ}AeH-}WhZDFF zBgbc(3@u}?(YIVkBlP|a*q%Adr6z=?1Q6&JzQ4TF0?`bv{sybAQ5zZ8L<>FxQ6EzC zEh%b5JK&=m=PGTQu#laT5-48?eY_qK(cY^xl_(jlf&@CkSw!0T^y~Kn1s~O__f8Gm z7K4WZiS~Fp=?MsBSoCm0jPXaSI$lWnjWgi(o6}S;HIh${~#&6JxF)S87 zX>au~OFI;`ZZ}S|8Z|WD6Q!C5WZq_B$1wK0-DxrGkvLp((SN~A%1$ld-=gS1w_Bp= z7pX~;L5|XO#*jyAn&y8>)T1rqZ)lvU7g06(UfPuWT2>`#eGj-(t9FrWJNuo6lvJdJ zcG$d;RCnp^J)bY(KrvzxPm@KAC&~7un=^9Daq^sEUBkVxsXk_@lY?U37H$ID!z>neMrCIzgk{z6z;CtpTu6uPbcVZU(NN5YzL&uaPp8Td(;pgwPJ z+S1V$!HPhZC&liZs0@O09ryErQ1>;8VLt=bhOi!lDlO40oR?ZMW*H;T0P~G-)TGfH zThWg<)hn3j5NGkT(BO(IN{nZ~XrF{9!nQGd?4iVY1P-HP!fSrqk&Ze!t$6mpy9I-I zCZp`;d!c6mx7s9*Jo>O|EwYwpxE9g2cZ|4B-ID%*r%3&Duxc<(-`7iE+jitu;56;Z zCE*=w@192V*=0jKCyIHg=(@|@oWksG3VNHTC0t|s7wK5-t|I3_=jF{#fu6cUb^FR_ zdb#PV*=Fegv=K(~V>C!&6^1hG_bY)Ruc>KfoRznR3m1A4g2~9QbW+5QUtM({u2yJE z5ai;yJ1=#n?@aKGynNXX1|D)f&Gx6O7+IY5kE?z#$?mlDXMvXoQ&$d?fDI)*GIqRz zwAnAcRwNe(+QDo_Kx*aDCMN;*gn$u(Lymj7JKuc5dxK?R68$L-E@?8}0K6lqWnFjY zA;s&krx)JdD_7n;u2+sNe66+!&_t84EFm zWQZpfxfC-hXT)ps?LlwT*rHpu5VrjOi~!IT$cDh6|m zh8^Yu)xr1=)@VxiGCs-)!*Q9yQk&8k!0YegAp# zQ7Y}cgJja>tu-k1FKoPx25r(^6vm0aS$#`9Ne0e(n198b;>c6~;evn5M3vK2W90hI zJp8hpyXeHX3SA70`PS{0P{;_Nt)>NMWPul8Dz8jw%pUrGL(PU7EPY_|3+jg%G6PC{hl(w;o4E|lLWd(iLT4+^hJahA5mOh+;^ zAtvMFpS1GUf8FWqcTH#78?t>lpM9uxH7=xao*i{1hVe^Kcg5;C8jheAKcz#V0MK#l*sG*8UKiPfWpTSEYrj zJYWx@G!3<4R-JP8G-4K4#HdXiAr3~qNN~>Hp*}_m{N`sQPa0=z0ixd=0RfQgxt9HE z3f)iU%esL(GGr9~jPp;^pY8OMc_Mtk4r&4O^VM*>4ax^*V^!`1)2R(ix=u@pMzwn< z$HFnn&f&jK*)|$I^L27eKGxMBx`Y;iM1Ucs!S?7iUGa(`CIWT+e5;s_VKQGy*Cs7D z_wSx6f+G&di&(6B32Xe@EOy_&7fD2-GHjx&C4h07*qnh7-BgrDLfZFV>B~ z#puz+S+l#mH|9Rel_#eMs)2X1v&U)QD`KlQKf!-c_T2xDX<*f_D%BXWIsYx0@5MkJ z0i$5mWlX=z7QRF3E`{077}wh+aat)SLSkl2{*xTE>x%QT2z!hnvQ{|4`H2GpB6^ok z{IpGhzUtf2@NajxkmsP6f*;JqR+HWzZi#n}g6IKMImmvXs3zy~+BeNzf%FVpBj)cbOkCLYruvf;6VI z%8tQgsdmE#{|mz68yG}A0&1qCSE4NY)78fT=Rz7xh0A#7)T1~ZRr@bhtnDgb5fB}z zVtp}~P!;Bm2J&USVc*w);(p>~HV>}_dQM(d^A@uSS54;jez?k2Upu zNheO^OL;l^46qP?v~k(S9^%=|Ci2m-EbyD~dyyj7GBsHBm41<>VrNB|L%5gDWJ7uk zVPjeVU)`d&Qf8=4usF&NqrfarACuv+@QFdZyfP(3SjZ)X0FJnUUgARj6%`eIvw>dvLQ z=ov8aMOABmETcWwNKPUsCI~2Q8`i)1vbuF^+#}Lk{)BEwLU8$kjhcgal+OT>X8!2( zsO#+X9mM*cYX5y>jjcoH%Xw;B#S=WtUDosa61fbtu-@~-Nw4jR8pde+TQ5@68Q&sW z*<*4g|8v6-VUf*hNW3G`b^PKK+45|&(W&S+-4&C>mS z?P=IJQdARp4vakZ0VjeNxWR{q?A@;}Hw8+S&x1z4bxTRJ(*;wGh&M-G==cb2i4ZEU za7adb5IX=g1V#(TG0yuxzJeb^{iwc8u(m60+#^ZgMau@QV}Z8K=c&)e{qmNU_4O8d z7+zW1zEapRhm-Pr;e@!lB^Je6YKf3ZI_mC;|D#sG^=Ggqr8{+(bM*E8kZ8Z|mhd%M zo@U4F{GTBB)I&izMiBj zOGqwli^URLqHk~*buJ~Z2-D5rnnZnPhgK9-pl;9ZTU6UiY0?;BBQ(dfhaAXIo@mg$ zhL8Bv>=ePY=7+F>Te*6RE%Gnq+s?~cH3=UyYVZq*+ZJ}l9Tw!&r*k|%G?Yr?x7*`j zlf54NRsayjEzJv*Q-WM>=b`)7h9Ps=AG`}=bmi+vo&h&}OLxj#jVkK?snwLL|(+X5XcKf|}x8 z^7XB%&4)hhg-B2qq-1Vco-9kRXm`JIklGxr5J^m|3qMXIlFcQcGFg>aB~Ja5G*e8v zJz|qyhSrXn-nf--dq;E`7te76IU^T*JExxhdqBS+BUrhRFIHDT^vj9Nu_m)?gyu{Y zfwyPDSnnz}%DNsI3?Z-`u!NsAmw>8cYnFyod$`LipdqD~v6I4oA}#l=@pIMnLY6#t z^Hk1j<2ZAK*GEXKW%;eiqh!tjs|mZdI^pUEipX!Y9?>P+n=tBp(~p`Qb+a4aMi$Du znCV^Uc)%Hf)5d2S1TYFMt|%%5(OXpL@Wf4=l7JnUpbnswmA+Tc7M~uTOz$h zAMbAJ6**tJXj$_!MnvVro<45Lb(vT*%HuW0(Vj47qT_EZa?cH!HKms3E?>#imnq+P ze^o}7+Y!OJ?RQgM{%DAVh9^oh)=~*=Z6d`t#9MuLEdrAZmC!dc{08v+`VgO9JsMH| zzHE91rcAn;s>^D*N+!pRwDZh-d9t8DaC6 zK4j&VD?JSBG{TEj-I1pV=I^=D$UDi)Fwt7H4oIu7i6(!G+B^eclWNEz-6KpxhBJFP zQ?~J!z60Z{DGaEb74btf71F{+HCwS<(U59B$j$EQjrF-;#f@rZe`7wu*_Sa3T8R`J z=U9PbgG%obiyI_k!eoa7+>}?HRN-=Q7pGLQ>lCTG?bcgSPw8Su)tfTOkVzkcMWg@& z31aoAg{@u0pg~^_eImBoFt5ypRSJI3L1Y%pF@12q!@d{o(bwMd<#P6DGrb&Yp~S5W zivBw-^mDH6&R1s!r5mL_Dow|NHvtF@C`V=-G(R7wVW;LJA0@q$GuN%FiG57Z%!4W_ z`E(Dxb{Z12^9bTMNZt(x*)zVgq!)3#8uvy#-rqoWX{!buK!;3c(?wC+G)=e(v55xK zd5*n3O9*CHq3^McTCqVU{oLLlvrs1Sj4!i~{#i=TnaANx@L5VQt30a0n+Mv7o_G^= zOES!NpO&(3%5TF57w?V?rQsGELKZeD%?QF&`FmrojiQyh5Er{>#7vF_crcd~$KSg( zc(@4d=f^2?puth+-q1m(yGxWE8>34{Dpmb6pq;K0`RVI7^yc4zxAd?ghr1rpb{bn4 z!?(4=#nH`5)a8xW=?^)yCe4mXAV{`oYHCt47b=Z?xf19Krpq0N=LF3F$CkSXeVD-(XEo*3z>)@aU91O`d9DOE@mlb;8$sH!odb zUaHbtq@h0rVWnwVN9m&72rafCo*!|VXq;C!G_aScZApeDq8|xsteROk8hZ#unm%qq zK|ziwpHs(%ZjIaZVccWYm$SRRHTZEj>B&Szle-)GKPzZ>RnC#u#QTP+UE~#%PbBk$ zw)f|_@<^H6RJ%&FqNk0#Pa1c!aE+HMEVKPni+Te%VVfDDbg$XPWydstKMMUjkme-&EO(ANZ!pQDQO-j8z z`5BY!Jq>%sqYzN(LhmDpIbZoDs7s6F5+2Ii?0)B5hCLtD8%{Wj};DD*e(+_dF4<@JL2 zHkdabi4o^{$+o%~YjC%En3ro3J?}#zqn!-6FaNiw87C5&5CVj)_p06=FI2pwbGbGJZHu02~1^4f=*hMjjOZ?TPF3?WdiL2 zi#d_;Z%(h-B0mb6cc=>5a9YTf=UX<$>gb;8s`-`Oq7=8r1#W-jqu{6Kp{OYy;iXXWy3s4YZD_p+fxyyV@^5B(~a|_dLS&gPx z(l~kf)?nnhI^zx%SJ19%vjf+s*U;Mc8Uq~Z4L2wuX$38^pe$u z3U}Uf2?u3_W}1RpZZND@z7dQ-_x^Qdm|}SWB-~o8e#8@fb5keYCIWn$zr5tYuG36x z9KOijxYzM987!w&a*{RVbI1@^vC}BO(`?Q$cFqh}1`fEyO}06EO&KNOVQYN$xR!v5 z=&@oJHIKl{!Rr{$+0lGeEihMIeay{Yt+1QibRpL*X`9Ukx6XUyyhP=Xjdy5|XYk7l zzh4OrdQTTNDlo%rRUr ze|jz0E#fz18*_idP_0Gu40uguJJm|3J{YxkM%?5>@*2HdNXjKQ5z`p_zW0nW6KrEj z9yzWySE?zXZ!(YwQ63#mvn}q`-K&n+T%0$|5Fm<31M6G-_=`SzjWdOhWq!;NLiy&q zkjS!F)T+}u-7^g-=hF<(xHDKLezc!pF(WN+#E}LSfda_0!5MJyTSqM2zu0Y0i+kJ> z(W9m3A;g2eHcR^?St+HxJ+(+%8@R8LaGTNyLF*3`pHwJt5^1T%g&cxSyXts5s97^9 zPi_0X*@>#ZptLA^ZpUK^Yt_A;(mgnnq#fu_p=9R#TzIKdm(aXd#Lx8TY$)hA)4H0n zksScDyclqk=|tnvIl1#yLxNhs#7W!;@d~D`_M4sd7q4`a4Wf-g`i>5zD|3d*66J=NkK*x#t;YpRv!{ zYp#c(Q>RykP-k?TiV?po)!lR55dJ8U`{^u}8Z=V89n7D|Dm&qf z%_lUn4SQX#EQr*;8%j*+8xvt3yYgSIw;N) zI}ZgM+u(AgLV@priA#1aj{<~JXNaitMJ$bzHUxU^>-3SrkmU;bHbTCBmY!D`15CV zO!f6y5_{<-FO%eKN2L*bUjR z>XR^8Qn{T!y@`+_eyaSXOX2o~W8*~4vV#PhPEVs5`}3+o1xb3(#JR?Sb{44WZg%|G zY(V8V)f}eM9D^mu=ws2atoO-@e7P6}8!oDu5q9w-@^%ni_6NkUHuZ z$+wMFwe`C^%#`mV7qQY+Sw5SqgJ^ z#&gGgwO8S>Ez*b!j)}tv-?m_bN7#uEeAtVZO03jB!&Ocyq31D&SIfg(X0;|wVW3(< zkQrGAAkbTD7W6nuEwwf963`u@Hx1flh=!`Ztd(QK!jJ*wT(shdq*7XdWS}v~(9_y> zt2{L4`gwi}U8NgxEkm_wD#$bmW%i&f`YN=ZV&(lqK{!&OvK)=^?lOznf96s=6=#Uv zG?^U^D}ILNAsIGGAWWSqk;{J3kSkfV;Sxj7TtsnIF!{F?_M1zdc59qb z8;s@Ias+e%!RzS7s*d4McpdLoIi!-{T>dhI@~c$w$;|dyR(WqClRD?DHFmZJQOX?N z%R?T&cx{NmB!!~Zrdg-PeXG`|W{NLC0>Z+P#M4bI1}XH0UwhN+}(=YLDCA8kOp(YL<4RYNi6$gjrK>NI z3*omxcGAGH1gwy-KFTb{qVr3vrq6@!s|MsZ-Sxc2P4^Caa_s1TM1W|!}Dl7 zMs^_?m2dcZ1`TqS&*r*(!j?8`@b z4)of$B5CYAd+zr>3EfBi;!IAEQ#uHO$kM4mjc{&sVz_zDnwS+QSctK^7RX%J z=)Ye5F~lTm$B`E!kz}aOz9H$|!Gawwb56yYT0Ur-_!Hcm_DrS57%suw>-8f~Nt^50 z=~9sCBjsW1Ve)H+;30@O>W?zflEFO2wZiO&5UG zzl*+dyU%p^$q!x9?}Ok(=#_xpflkFT8~#1nqKdUigfUHVS>+G6m230?6u~!Bz}fpj zOb<9c7Ir2<-@$#5oQ)LN!!>tOfp)HgZ@@FK^GTcGN2v6Z#8&fZlE538NPce`Yw z@o>xOvoP9JQhhmj`&UoBsid=CgmSP8m+OF&lM}?33fLUU{y{HbSiQf{`d;J-;sBIT z(LuW@!q?7E$~(hZ&XV(pA_SMu&Z5Am7T~A#&oivG0n){xPZfq%UNkUxcn>}u54{TI zocKo#ybFr5xh8OCzHVn%W>O-*+^N96E#E^Ey>3Iy;2d8(Ma}6DB|m5iq+blz8iz$& z#$N~{xVlv{21ztoN26fglwGXi>b`;~+CY|Ea8RSkD!mOC0CX^1MqTl72N z(A{s6Ub5jH^78x?pLj~uY|c|vuUSH+rnYP5$*{lVj)GhK>k2`#R9L^N24!xzQI4=? zw<(u?N;+ELOYZVeS*R-^qBHakA!Z>Vtozjb?NJ6Kxv2Mcy@-v=Zs3da6|}9V4cNgy z5SL&)uba@m^ zS-Nrq+1)q#7O1u*>AX+Hw@UEsH(U}oJvXqFucuSZYpsw%ej-ccQIt&DcXZe{lWh=! z5?z>tW&X%Ws#a}Z9wnq=&q812p|v#_BJI{y*w5`xYL&+}d#slQ?O;?_zylVh%1Bua z8r26sUD)a+<^xhqc8Q3AK<-q{VZ&!)6 zYy|hC*>@S5kvSN+6qngR4#&}Ir9t;9d0XMzQLQ3-+~nlN7_%STP=a54$g_o&AHW!D zpj1TBx5=hUSUS=%!%6HGE%WbbqPE{mGEDJh z)g{2PRHn?BTQXYs;QJb}8dz0{=D98$;;mDI=`DC&une0rHEn*kPv2{HE6PxVV#~m8 z19+2UPjjbSXPOx(b;HVJXAQdt2!4&J(|=2&Gn9Y^cfS|Ktn^h*+$hHu)P16x!iugS zd>e0cr@fM{*?YfTDFa--g=}p+f#7?j)6;?t9jxW>IH3MF(3w=TuklZ?%7#;RX%* znbro-HFs8BTG($Xirb7J+WdRe?8;;<2izf7+TbIUENurbLclBA^6!= zDEf8KB>*F#DZV8`@(8IoWktBSUjjb&u=K~L?pPQI^AD)r3;2TWny(k{o-}pdw(6#% z>qa^-Wo93Zu;ZRc>cgzqi2)T-I#a)8tj%RdKaaN!^JOp{2L+dEzBS9U07fkVOL~RF z@ILiHYQN!oK$CH%OMn(CB%sI1`%YGp<#%2hFN_omHvXy*yDa_HL;fL93{=IlaL^?L zPj~nGH=}4vrQ8E(*@Hn&hgVAwilm?%gFxSsiL4AGC6#_n&Go`nv$)by-*<@mk6M_t zPceB3WVgIPnj#*Zx}E&DvzqEMu;=4I*D*1f2ySB$$=*_0J>6d0Ps4VSfiiG!d>AFj z@8}YMwN#cxEV5Ag+lmnF_Bs}_yD;o!%?VbEJzr)Fct0&>TRm~6PWKjhx0A?W!J^Jn z_m-iUMVQW5(c--Gx@2KykyKTqju`FNIb6?&>M!4!Dem(z<PYoe0)|i!S2RxEiqj1hj19#5dFMz6v1?8Ol}LHdZrBKKG4htq?~( z%+E*ZAbDc*fQGjtaowB?&C97c-7gpmRRzCHD4&z?d1QTmNcTCl1P}5pizHbyimX$Z=dfXew3nHi>HOS3DE2^%ZnFTm|8x0Kru4qPOzhlq_r^NZ zxQ)2VLoz)uS#_V9M8`^ln<(qHIFqdvWyozBw=&D~Do}0BZi)PBr-Y@P<&W_P)+#%3 zE%f!GZooL7Yq}D>spiLg;Vr33aPz+DoHW%xYec7ow1-lJZRaud<2QpwX16jA!{fLWYSF$zp#MvjvHxlVtvSEId%J#Jy&BeY5 zAMj|Y7+3R%hv{@0jf|7ep9ywik-zY8lSagxL%QXP+=1yfpgA$sjH81`5iiqU1aDEy z_%cx-~}jp6}iXv3H2RMvClEj-GYQtYQZB00UY+pF1H@y zmsfdLz9cA=Kt=9P=83sEZw=>>a-bg6QHM}Q?VrCcyWL~t%H%k^X-@0`UYXO9;k!{{THdNDUc8mNg@q_RC?~CzlL>j z5hyMqa_(LN+WRk - - Text from static resource - - - diff --git a/tests/plugins/ui-extensions-plugin/src/main/resources/static/global_admin_page.js b/tests/plugins/ui-extensions-plugin/src/main/resources/static/global_admin_page.js deleted file mode 100644 index ec8d23a9b1c..00000000000 --- a/tests/plugins/ui-extensions-plugin/src/main/resources/static/global_admin_page.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -window.registerExtension('uiextensionsplugin/global_admin_page', function (options) { - options.el.textContent = 'uiextensionsplugin/global_admin_page'; - return function () {}; -}); diff --git a/tests/plugins/ui-extensions-plugin/src/main/resources/static/global_page.js b/tests/plugins/ui-extensions-plugin/src/main/resources/static/global_page.js deleted file mode 100644 index 6f7ac9914f3..00000000000 --- a/tests/plugins/ui-extensions-plugin/src/main/resources/static/global_page.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -window.registerExtension('uiextensionsplugin/global_page', function (options) { - options.el.textContent = 'uiextensionsplugin/global_page'; - return function () {}; -}); diff --git a/tests/plugins/ui-extensions-plugin/src/main/resources/static/organization_admin_page.js b/tests/plugins/ui-extensions-plugin/src/main/resources/static/organization_admin_page.js deleted file mode 100644 index 18dd31f2ec1..00000000000 --- a/tests/plugins/ui-extensions-plugin/src/main/resources/static/organization_admin_page.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -window.registerExtension('uiextensionsplugin/organization_admin_page', function (options) { - options.el.textContent = 'uiextensionsplugin/organization_admin_page'; - return function () {}; -}); diff --git a/tests/plugins/ui-extensions-plugin/src/main/resources/static/organization_page.js b/tests/plugins/ui-extensions-plugin/src/main/resources/static/organization_page.js deleted file mode 100644 index 586b7e6e9bc..00000000000 --- a/tests/plugins/ui-extensions-plugin/src/main/resources/static/organization_page.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -window.registerExtension('uiextensionsplugin/organization_page', function (options) { - options.el.textContent = 'uiextensionsplugin/organization_page'; - return function () {}; -}); \ No newline at end of file diff --git a/tests/plugins/ui-extensions-plugin/src/main/resources/static/project_admin_page.js b/tests/plugins/ui-extensions-plugin/src/main/resources/static/project_admin_page.js deleted file mode 100644 index a2fdc5b58e4..00000000000 --- a/tests/plugins/ui-extensions-plugin/src/main/resources/static/project_admin_page.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -window.registerExtension('uiextensionsplugin/project_admin_page', function (options) { - options.el.textContent = 'uiextensionsplugin/project_admin_page'; - return function () {}; -}); diff --git a/tests/plugins/ui-extensions-plugin/src/main/resources/static/project_page.js b/tests/plugins/ui-extensions-plugin/src/main/resources/static/project_page.js deleted file mode 100644 index abd962feeb9..00000000000 --- a/tests/plugins/ui-extensions-plugin/src/main/resources/static/project_page.js +++ /dev/null @@ -1,23 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -window.registerExtension('uiextensionsplugin/project_page', function (options) { - options.el.textContent = 'uiextensionsplugin/project_page'; - return function () {}; -}); \ No newline at end of file diff --git a/tests/plugins/wait-at-platform-level4-plugin/build.gradle b/tests/plugins/wait-at-platform-level4-plugin/build.gradle deleted file mode 100644 index 04991ca2289..00000000000 --- a/tests/plugins/wait-at-platform-level4-plugin/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -dependencies { - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'wait-at-platform-level4-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'WaitAtPlaformLevel4Plugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'Plugins :: Wait at platform level4 initialization phase', - 'Plugin-License': 'GNU LGPL 3' - ) - } -} diff --git a/tests/plugins/wait-at-platform-level4-plugin/src/main/java/WaitAtPlaformLevel4Plugin.java b/tests/plugins/wait-at-platform-level4-plugin/src/main/java/WaitAtPlaformLevel4Plugin.java deleted file mode 100644 index 354f7211acb..00000000000 --- a/tests/plugins/wait-at-platform-level4-plugin/src/main/java/WaitAtPlaformLevel4Plugin.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.ArrayList; -import java.util.List; -import org.sonar.api.SonarPlugin; - -public final class WaitAtPlaformLevel4Plugin extends SonarPlugin { - - public List getExtensions() { - List extensions = new ArrayList(); - extensions.add(WaitAtPlatformLevel4.class); - return extensions; - } - -} diff --git a/tests/plugins/wait-at-platform-level4-plugin/src/main/java/WaitAtPlatformLevel4.java b/tests/plugins/wait-at-platform-level4-plugin/src/main/java/WaitAtPlatformLevel4.java deleted file mode 100644 index 35aa2f02ec5..00000000000 --- a/tests/plugins/wait-at-platform-level4-plugin/src/main/java/WaitAtPlatformLevel4.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.io.File; -import java.util.Optional; -import org.sonar.api.Startable; -import org.sonar.api.config.Configuration; -import org.sonar.api.server.ServerSide; -import org.sonar.api.utils.log.Logger; -import org.sonar.api.utils.log.Loggers; - -@ServerSide -public class WaitAtPlatformLevel4 implements Startable { - - private static final Logger LOGGER = Loggers.get(WaitAtPlatformLevel4.class); - - private final Configuration configuration; - - public WaitAtPlatformLevel4(Configuration configuration) { - this.configuration = configuration; - } - - @Override - public void start() { - Optional path = configuration.get("sonar.web.pause.path"); - path.ifPresent(WaitAtPlatformLevel4::waitForFileToBeDeleted); - } - - @Override - public void stop() { - // Nothing to do - } - - private static void waitForFileToBeDeleted(String path) { - LOGGER.info("PlatformLevel4 initialization phase is paused. Waiting for file to be deleted: " + path); - File file = new File(path); - try { - while (file.exists()) { - Thread.sleep(500L); - } - LOGGER.info("PlatformLevel4 initilization is resumed"); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - LOGGER.info("PlatformLevel4 pause has been interrupted"); - throw new IllegalStateException("Platform4 pause has been interrupted"); - } - } -} diff --git a/tests/plugins/ws-plugin/build.gradle b/tests/plugins/ws-plugin/build.gradle deleted file mode 100644 index 10fe8291408..00000000000 --- a/tests/plugins/ws-plugin/build.gradle +++ /dev/null @@ -1,22 +0,0 @@ -dependencies { - compile project(':sonar-ws') - compileOnly project(path: ':sonar-plugin-api', configuration: 'shadow') -} - -jar { - manifest { - attributes( - 'Plugin-Key': 'ws-plugin', - 'Plugin-Version': version, - 'Plugin-Class': 'WsPlugin', - 'Plugin-ChildFirstClassLoader': 'false', - 'Sonar-Version': version, - 'SonarLint-Supported': 'false', - 'Plugin-Name': 'SonarQube Integration Tests :: Plugins :: Ws', - 'Plugin-License': 'GNU LGPL 3' - ) - } - into('META-INF/lib') { - from configurations.compile - } -} diff --git a/tests/plugins/ws-plugin/src/main/java/LocalCallWebService.java b/tests/plugins/ws-plugin/src/main/java/LocalCallWebService.java deleted file mode 100644 index dfd39e39876..00000000000 --- a/tests/plugins/ws-plugin/src/main/java/LocalCallWebService.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import org.sonar.api.server.ws.Request; -import org.sonar.api.server.ws.RequestHandler; -import org.sonar.api.server.ws.Response; -import org.sonar.api.server.ws.WebService; -import org.sonarqube.ws.MediaTypes; -import org.sonarqube.ws.Ce; -import org.sonarqube.ws.client.GetRequest; -import org.sonarqube.ws.client.LocalWsClientFactory; -import org.sonarqube.ws.client.WsClient; -import org.sonarqube.ws.client.WsResponse; - -public final class LocalCallWebService implements WebService { - - private final LocalWsClientFactory wsClientFactory; - - public LocalCallWebService(LocalWsClientFactory wsClientFactory) { - this.wsClientFactory = wsClientFactory; - } - - @Override - public void define(Context context) { - NewController controller = context.createController("local_ws_call"); - controller.createAction("protobuf_data").setHandler(new ProtobufHandler()); - controller.createAction("json_data").setHandler(new JsonHandler()); - controller.createAction("require_permission").setHandler(new RequirePermissionHandler()); - controller.done(); - } - - private class ProtobufHandler implements RequestHandler { - @Override - public void handle(Request request, Response response) { - WsClient client = wsClientFactory.newClient(request.localConnector()); - - Ce.TaskTypesWsResponse ceTaskTypes = client.ce().taskTypes(); - response.stream().setStatus(ceTaskTypes.getTaskTypesCount() > 0 ? 200 : 500); - } - } - - private class JsonHandler implements RequestHandler { - @Override - public void handle(Request request, Response response) { - WsClient client = wsClientFactory.newClient(request.localConnector()); - - WsResponse jsonResponse = client.wsConnector().call(new GetRequest("api/issues/search")); - boolean ok = jsonResponse.contentType().equals(MediaTypes.JSON) - && jsonResponse.isSuccessful() - && jsonResponse.content().contains("\"issues\":"); - response.stream().setStatus(ok ? 200 : 500); - } - } - - private class RequirePermissionHandler implements RequestHandler { - @Override - public void handle(Request request, Response response) { - WsClient client = wsClientFactory.newClient(request.localConnector()); - - WsResponse jsonResponse = client.wsConnector().call(new GetRequest("api/system/info")); - - boolean ok = MediaTypes.JSON.equals(jsonResponse.contentType()) - && jsonResponse.isSuccessful() - && jsonResponse.content().startsWith("{"); - response.stream().setStatus(ok ? 200 : 500); - } - } -} diff --git a/tests/plugins/ws-plugin/src/main/java/WsPlugin.java b/tests/plugins/ws-plugin/src/main/java/WsPlugin.java deleted file mode 100644 index e07adccc6fa..00000000000 --- a/tests/plugins/ws-plugin/src/main/java/WsPlugin.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2018 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import java.util.Arrays; -import java.util.List; -import org.sonar.api.SonarPlugin; -import org.sonarqube.ws.client.WsClientFactories; - -public class WsPlugin extends SonarPlugin { - public List getExtensions() { - return Arrays.asList(LocalCallWebService.class, WsClientFactories.getLocal()); - } -} diff --git a/tests/projects/analysis/case-sensitive-file-extensions/sonar-project.properties b/tests/projects/analysis/case-sensitive-file-extensions/sonar-project.properties deleted file mode 100644 index 795bbeb5cf9..00000000000 --- a/tests/projects/analysis/case-sensitive-file-extensions/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=case-sensitive-file-extensions -sonar.projectName=Case Sensitive -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src -sonar.language=xoo diff --git a/tests/projects/analysis/case-sensitive-file-extensions/src/UPPER.XOO b/tests/projects/analysis/case-sensitive-file-extensions/src/UPPER.XOO deleted file mode 100644 index 7a7569a867b..00000000000 --- a/tests/projects/analysis/case-sensitive-file-extensions/src/UPPER.XOO +++ /dev/null @@ -1,2 +0,0 @@ -File extension is upper case. -It should not be ignored since SQ 4.0. diff --git a/tests/projects/analysis/case-sensitive-file-extensions/src/UPPER.XOO.measures b/tests/projects/analysis/case-sensitive-file-extensions/src/UPPER.XOO.measures deleted file mode 100644 index 5143bc664f8..00000000000 --- a/tests/projects/analysis/case-sensitive-file-extensions/src/UPPER.XOO.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:2 diff --git a/tests/projects/analysis/case-sensitive-file-extensions/src/lower.xoo b/tests/projects/analysis/case-sensitive-file-extensions/src/lower.xoo deleted file mode 100644 index fd97999fff8..00000000000 --- a/tests/projects/analysis/case-sensitive-file-extensions/src/lower.xoo +++ /dev/null @@ -1,10 +0,0 @@ -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/analysis/case-sensitive-file-extensions/src/lower.xoo.measures b/tests/projects/analysis/case-sensitive-file-extensions/src/lower.xoo.measures deleted file mode 100644 index f82c5911efa..00000000000 --- a/tests/projects/analysis/case-sensitive-file-extensions/src/lower.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:5 diff --git a/tests/projects/analysis/custom-module-key/module_a/sonar-project.properties b/tests/projects/analysis/custom-module-key/module_a/sonar-project.properties deleted file mode 100644 index 7c95bd81729..00000000000 --- a/tests/projects/analysis/custom-module-key/module_a/sonar-project.properties +++ /dev/null @@ -1,2 +0,0 @@ -sonar.projectName=Module A -sonar.moduleKey=com.sonarsource.it.samples:moduleA diff --git a/tests/projects/analysis/custom-module-key/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/tests/projects/analysis/custom-module-key/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/tests/projects/analysis/custom-module-key/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -} \ No newline at end of file diff --git a/tests/projects/analysis/custom-module-key/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/tests/projects/analysis/custom-module-key/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/tests/projects/analysis/custom-module-key/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/tests/projects/analysis/custom-module-key/module_b/sonar-project.properties b/tests/projects/analysis/custom-module-key/module_b/sonar-project.properties deleted file mode 100644 index 04cd79e2247..00000000000 --- a/tests/projects/analysis/custom-module-key/module_b/sonar-project.properties +++ /dev/null @@ -1,2 +0,0 @@ -sonar.projectName=Module B -sonar.moduleKey=com.sonarsource.it.samples:moduleB diff --git a/tests/projects/analysis/custom-module-key/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/tests/projects/analysis/custom-module-key/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/tests/projects/analysis/custom-module-key/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -} \ No newline at end of file diff --git a/tests/projects/analysis/custom-module-key/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/tests/projects/analysis/custom-module-key/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/analysis/custom-module-key/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/analysis/custom-module-key/sonar-project.properties b/tests/projects/analysis/custom-module-key/sonar-project.properties deleted file mode 100644 index 7935cb5ffb0..00000000000 --- a/tests/projects/analysis/custom-module-key/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/tests/projects/analysis/duplicate-source/sonar-project.properties b/tests/projects/analysis/duplicate-source/sonar-project.properties deleted file mode 100644 index cf176850bae..00000000000 --- a/tests/projects/analysis/duplicate-source/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=com.sonarsource.it.projects.batch:duplicate-source -sonar.projectName=exclusions -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo,src/main/xoo2 -sonar.tests=src/test/xoo -sonar.language=xoo diff --git a/tests/projects/analysis/duplicate-source/src/main/xoo/org/sonar/tests/ClassOne.xoo b/tests/projects/analysis/duplicate-source/src/main/xoo/org/sonar/tests/ClassOne.xoo deleted file mode 100644 index 8cf8aec82fe..00000000000 --- a/tests/projects/analysis/duplicate-source/src/main/xoo/org/sonar/tests/ClassOne.xoo +++ /dev/null @@ -1,5 +0,0 @@ -package org.sonar.tests; - -public class ClassOne { - -} diff --git a/tests/projects/analysis/duplicate-source/src/main/xoo2/org/sonar/tests/ClassOne.xoo b/tests/projects/analysis/duplicate-source/src/main/xoo2/org/sonar/tests/ClassOne.xoo deleted file mode 100644 index 8cf8aec82fe..00000000000 --- a/tests/projects/analysis/duplicate-source/src/main/xoo2/org/sonar/tests/ClassOne.xoo +++ /dev/null @@ -1,5 +0,0 @@ -package org.sonar.tests; - -public class ClassOne { - -} diff --git a/tests/projects/analysis/duplicate-source/src/test/xoo/org/sonar/tests/ClassOne.xoo b/tests/projects/analysis/duplicate-source/src/test/xoo/org/sonar/tests/ClassOne.xoo deleted file mode 100644 index 8cf8aec82fe..00000000000 --- a/tests/projects/analysis/duplicate-source/src/test/xoo/org/sonar/tests/ClassOne.xoo +++ /dev/null @@ -1,5 +0,0 @@ -package org.sonar.tests; - -public class ClassOne { - -} diff --git a/tests/projects/analysis/extension-lifecycle/module_a/pom.xml b/tests/projects/analysis/extension-lifecycle/module_a/pom.xml deleted file mode 100644 index 8cc056c4e81..00000000000 --- a/tests/projects/analysis/extension-lifecycle/module_a/pom.xml +++ /dev/null @@ -1,14 +0,0 @@ - - 4.0.0 - module_a - jar - Module A - - - com.sonarsource.it.projects.batch - extension-lifecycle - 1.0-SNAPSHOT - - - \ No newline at end of file diff --git a/tests/projects/analysis/extension-lifecycle/module_a/src/main/java/HelloA.java b/tests/projects/analysis/extension-lifecycle/module_a/src/main/java/HelloA.java deleted file mode 100644 index 847098b9a50..00000000000 --- a/tests/projects/analysis/extension-lifecycle/module_a/src/main/java/HelloA.java +++ /dev/null @@ -1,10 +0,0 @@ -public class HelloA { - private int i; - private HelloA() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/analysis/extension-lifecycle/module_b/pom.xml b/tests/projects/analysis/extension-lifecycle/module_b/pom.xml deleted file mode 100644 index 449325b7691..00000000000 --- a/tests/projects/analysis/extension-lifecycle/module_b/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - 4.0.0 - module_b - jar - Module B - - - com.sonarsource.it.projects.batch - extension-lifecycle - 1.0-SNAPSHOT - - \ No newline at end of file diff --git a/tests/projects/analysis/extension-lifecycle/module_b/src/main/java/HelloB.java b/tests/projects/analysis/extension-lifecycle/module_b/src/main/java/HelloB.java deleted file mode 100644 index afc7d2c906c..00000000000 --- a/tests/projects/analysis/extension-lifecycle/module_b/src/main/java/HelloB.java +++ /dev/null @@ -1,10 +0,0 @@ -public class HelloB { - private int i; - private HelloB() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/analysis/extension-lifecycle/pom.xml b/tests/projects/analysis/extension-lifecycle/pom.xml deleted file mode 100644 index 30de64cef8c..00000000000 --- a/tests/projects/analysis/extension-lifecycle/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - 4.0.0 - com.sonarsource.it.projects.batch - extension-lifecycle - 1.0-SNAPSHOT - pom - Sonar :: Integration Tests :: Extension Lifecycle Sample - - module_a - module_b - - \ No newline at end of file diff --git a/tests/projects/analysis/links-project/pom.xml b/tests/projects/analysis/links-project/pom.xml deleted file mode 100644 index a0bc27aaab6..00000000000 --- a/tests/projects/analysis/links-project/pom.xml +++ /dev/null @@ -1,31 +0,0 @@ - - 4.0.0 - com.sonarsource.it.samples - simple-sample - 1.0-SNAPSHOT - Sonar :: Integration Tests :: Simple Sample - - http://www.simplesample.org - - - jira - http://jira.codehaus.org/browse/SIMPLESAMPLE - - - - scm:git:git@github.com:SonarSource/simplesample.git - scm:git:git@github.com:SonarSource/simplesample.git - https://github.com/SonarSource/simplesample - - - - bamboo - http://bamboo.ci.codehaus.org/browse/SIMPLESAMPLE - - - - - http://www.simplesample.org_OVERRIDDEN - - - \ No newline at end of file diff --git a/tests/projects/analysis/links-project/sonar-project.properties b/tests/projects/analysis/links-project/sonar-project.properties deleted file mode 100644 index 4352408bd5c..00000000000 --- a/tests/projects/analysis/links-project/sonar-project.properties +++ /dev/null @@ -1,11 +0,0 @@ -sonar.projectKey=com.sonarsource.it.samples:simple-sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.projectName=Sonar :: Integration Tests :: Simple Sample - -sonar.sources=src/main/java - -sonar.links.homepage=http://www.simplesample.org_OVERRIDDEN -sonar.links.ci=http://bamboo.ci.codehaus.org/browse/SIMPLESAMPLE -sonar.links.issue=http://jira.codehaus.org/browse/SIMPLESAMPLE -sonar.links.scm=https://github.com/SonarSource/simplesample -sonar.links.scm_dev=scm:git:git@github.com:SonarSource/simplesample.git diff --git a/tests/projects/analysis/links-project/src/main/java/sample/Sample.java b/tests/projects/analysis/links-project/src/main/java/sample/Sample.java deleted file mode 100644 index b1210973dd9..00000000000 --- a/tests/projects/analysis/links-project/src/main/java/sample/Sample.java +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/analysis/multi-languages/java-module/pom.xml b/tests/projects/analysis/multi-languages/java-module/pom.xml deleted file mode 100644 index 9b9cb11763f..00000000000 --- a/tests/projects/analysis/multi-languages/java-module/pom.xml +++ /dev/null @@ -1,15 +0,0 @@ - - 4.0.0 - - com.sonarsource.it.projects.batch.multi-languages - multi-languages - 1.0-SNAPSHOT - - java-module - Java Module - - - java - - diff --git a/tests/projects/analysis/multi-languages/java-module/src/main/java/HelloJava.java b/tests/projects/analysis/multi-languages/java-module/src/main/java/HelloJava.java deleted file mode 100644 index c575aeb9d4c..00000000000 --- a/tests/projects/analysis/multi-languages/java-module/src/main/java/HelloJava.java +++ /dev/null @@ -1,10 +0,0 @@ -public class HelloJava { - private int i; - private HelloJava() { - - } - - public void hello() { - System.out.println("hello" + " java"); - } -} \ No newline at end of file diff --git a/tests/projects/analysis/multi-languages/javascript-module/pom.xml b/tests/projects/analysis/multi-languages/javascript-module/pom.xml deleted file mode 100644 index f0eb641e9e2..00000000000 --- a/tests/projects/analysis/multi-languages/javascript-module/pom.xml +++ /dev/null @@ -1,20 +0,0 @@ - - 4.0.0 - - com.sonarsource.it.projects.batch.multi-languages - multi-languages - 1.0-SNAPSHOT - - javascript-module - Javascript Module - - - js - - - - src - - - \ No newline at end of file diff --git a/tests/projects/analysis/multi-languages/javascript-module/src/Person.js b/tests/projects/analysis/multi-languages/javascript-module/src/Person.js deleted file mode 100644 index d5eb180de72..00000000000 --- a/tests/projects/analysis/multi-languages/javascript-module/src/Person.js +++ /dev/null @@ -1,14 +0,0 @@ - -var Person = function(first, last, middle) { - this.first = first; - this.middle = middle; - this.last = last; -}; - -Person.prototype = { - - whoAreYou : function() { - return this.first + (this.middle ? ' ' + this.middle: '') + ' ' + this.last; - } - -}; diff --git a/tests/projects/analysis/multi-languages/pom.xml b/tests/projects/analysis/multi-languages/pom.xml deleted file mode 100644 index bdde8327393..00000000000 --- a/tests/projects/analysis/multi-languages/pom.xml +++ /dev/null @@ -1,16 +0,0 @@ - - 4.0.0 - com.sonarsource.it.projects.batch.multi-languages - multi-languages - 1.0-SNAPSHOT - pom - Multi Languages - One language per module - - - java-module - javascript-module - python-module - - \ No newline at end of file diff --git a/tests/projects/analysis/multi-languages/python-module/pom.xml b/tests/projects/analysis/multi-languages/python-module/pom.xml deleted file mode 100644 index 02520cd6de9..00000000000 --- a/tests/projects/analysis/multi-languages/python-module/pom.xml +++ /dev/null @@ -1,19 +0,0 @@ - - 4.0.0 - - com.sonarsource.it.projects.batch.multi-languages - multi-languages - 1.0-SNAPSHOT - - python-module - Python Module - - - py - - - - src - - \ No newline at end of file diff --git a/tests/projects/analysis/multi-languages/python-module/src/__init__.py b/tests/projects/analysis/multi-languages/python-module/src/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/projects/analysis/multi-languages/python-module/src/badfortune.py b/tests/projects/analysis/multi-languages/python-module/src/badfortune.py deleted file mode 100644 index b0900dc1695..00000000000 --- a/tests/projects/analysis/multi-languages/python-module/src/badfortune.py +++ /dev/null @@ -1,92 +0,0 @@ - -# fortune.py -- chooses a random fortune, as the fortune(8) program in -# the BSD-games package does -# -# Copyright (c) 2010, Andrew M. Kuchling -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -import struct, random, string - -# C long variables are different sizes on 32-bit and 64-bit machines, -# so we have to measure how big they are on the machine where this is running. -LONG_SIZE = struct.calcsize('L') -is_64_bit = (LONG_SIZE == 8) - -def get(filename): - "Select a random quotation, using a pregenerated .dat file" - - # First, we open the .dat file, and read the header information. - # The C structure containing this info looks like: - ## typedef struct { /* information table */ - ## #define VERSION 1 - ## unsigned long str_version; /* version number */ - ## unsigned long str_numstr; /* # of strings in the file */ - ## unsigned long str_longlen; /* length of longest string */ - ## unsigned long str_shortlen; /* length of shortest string */ - ## #define STR_RANDOM 0x1 /* randomized pointers */ - ## #define STR_ORDERED 0x2 /* ordered pointers */ - ## #define STR_ROTATED 0x4 /* rot-13'd text */ - ## unsigned long str_flags; /* bit field for flags */ - ## unsigned char stuff[4]; /* long aligned space */ - ## #define str_delim stuff[0] /* delimiting character */ - ## } STRFILE; - - datfile = open(filename+'.dat', 'r') - data = datfile.read(5 * LONG_SIZE) - if is_64_bit: - v1, v2, n1, n2, l1, l2, s1, s2, f1, f2 = struct.unpack('!10L', data) - version = v1 + (v2 << 32) - numstr = n1 + (n2 << 32) - longlen = l1 + (l2 << 32) - shortlen = s1 + (s2 << 32) - flags = f1 + (f2 << 32) - else: - version, numstr, longlen, shortlen, flags = struct.unpack('5l', data) - - delimiter = datfile.read(1) - datfile.read(3) # Throw away padding bytes - if is_64_bit: datfile.read(4) # 64-bit machines align to 8 bytes - - # Pick a random number - r = random.randint(0, numstr) - datfile.seek(LONG_SIZE * r, 1) # Seek to the chosen pointer - data = datfile.read(LONG_SIZE * 2) - - if is_64_bit: - s1, s2, e1, e2 = struct.unpack('!4L', data) - start, end = s1 + (s2 << 32), e1 + (e2 << 32) - else: - start, end = struct.unpack('!ll', data) - datfile.close() - - file = open(filename, 'r') - file.seek(start) - quotation = file.read(end-start) - L=string.split(quotation, '\n') - while string.strip(L[-1]) == delimiter or string.strip(L[-1]) == "": - L=L[:-1] - return string.join(L, '\n') - -if __name__ == '__main__': - import sys - if len(sys.argv) == 1: - print 'Usage: fortune.py ' - sys.exit() - print get(sys.argv[1]) diff --git a/tests/projects/analysis/multi-languages/sonar-project.properties b/tests/projects/analysis/multi-languages/sonar-project.properties deleted file mode 100644 index ab848fa49f4..00000000000 --- a/tests/projects/analysis/multi-languages/sonar-project.properties +++ /dev/null @@ -1,19 +0,0 @@ -sonar.projectKey=multi-languages -sonar.projectName=Multi Languages -sonar.projectVersion=1.0-SNAPSHOT -sonar.modules=java-module,javascript-module,python-module - -# not used but mandatory parameter because of https://jira.codehaus.org/browse/SONARPLUGINS-2297 -sonar.sources=src - -java-module.sonar.projectName=Java Module -java-module.sonar.sources=src/main/java -java-module.sonar.language=java - -javascript-module.sonar.projectName=Javascript Module -javascript-module.sonar.sources=src -javascript-module.sonar.language=js - -python-module.sonar.projectName=Python Module -python-module.sonar.sources=src -python-module.sonar.language=py \ No newline at end of file diff --git a/tests/projects/analysis/prevent-common-module/projectAB/module_a/sonar-project.properties b/tests/projects/analysis/prevent-common-module/projectAB/module_a/sonar-project.properties deleted file mode 100644 index 7c95bd81729..00000000000 --- a/tests/projects/analysis/prevent-common-module/projectAB/module_a/sonar-project.properties +++ /dev/null @@ -1,2 +0,0 @@ -sonar.projectName=Module A -sonar.moduleKey=com.sonarsource.it.samples:moduleA diff --git a/tests/projects/analysis/prevent-common-module/projectAB/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/tests/projects/analysis/prevent-common-module/projectAB/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/tests/projects/analysis/prevent-common-module/projectAB/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -} \ No newline at end of file diff --git a/tests/projects/analysis/prevent-common-module/projectAB/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/tests/projects/analysis/prevent-common-module/projectAB/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/tests/projects/analysis/prevent-common-module/projectAB/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/tests/projects/analysis/prevent-common-module/projectAB/module_b/sonar-project.properties b/tests/projects/analysis/prevent-common-module/projectAB/module_b/sonar-project.properties deleted file mode 100644 index 04cd79e2247..00000000000 --- a/tests/projects/analysis/prevent-common-module/projectAB/module_b/sonar-project.properties +++ /dev/null @@ -1,2 +0,0 @@ -sonar.projectName=Module B -sonar.moduleKey=com.sonarsource.it.samples:moduleB diff --git a/tests/projects/analysis/prevent-common-module/projectAB/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/tests/projects/analysis/prevent-common-module/projectAB/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/tests/projects/analysis/prevent-common-module/projectAB/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -} \ No newline at end of file diff --git a/tests/projects/analysis/prevent-common-module/projectAB/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/tests/projects/analysis/prevent-common-module/projectAB/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/analysis/prevent-common-module/projectAB/module_b/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/analysis/prevent-common-module/projectAB/sonar-project.properties b/tests/projects/analysis/prevent-common-module/projectAB/sonar-project.properties deleted file mode 100644 index e3c23037ee1..00000000000 --- a/tests/projects/analysis/prevent-common-module/projectAB/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=projectAB -sonar.projectName=Project AB -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/tests/projects/analysis/prevent-common-module/projectAC/module_a/sonar-project.properties b/tests/projects/analysis/prevent-common-module/projectAC/module_a/sonar-project.properties deleted file mode 100644 index 7c95bd81729..00000000000 --- a/tests/projects/analysis/prevent-common-module/projectAC/module_a/sonar-project.properties +++ /dev/null @@ -1,2 +0,0 @@ -sonar.projectName=Module A -sonar.moduleKey=com.sonarsource.it.samples:moduleA diff --git a/tests/projects/analysis/prevent-common-module/projectAC/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/tests/projects/analysis/prevent-common-module/projectAC/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/tests/projects/analysis/prevent-common-module/projectAC/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -} \ No newline at end of file diff --git a/tests/projects/analysis/prevent-common-module/projectAC/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/tests/projects/analysis/prevent-common-module/projectAC/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/tests/projects/analysis/prevent-common-module/projectAC/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/tests/projects/analysis/prevent-common-module/projectAC/module_c/sonar-project.properties b/tests/projects/analysis/prevent-common-module/projectAC/module_c/sonar-project.properties deleted file mode 100644 index 670f26db1db..00000000000 --- a/tests/projects/analysis/prevent-common-module/projectAC/module_c/sonar-project.properties +++ /dev/null @@ -1,2 +0,0 @@ -sonar.projectName=Module C -sonar.moduleKey=com.sonarsource.it.samples:moduleC diff --git a/tests/projects/analysis/prevent-common-module/projectAC/module_c/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/tests/projects/analysis/prevent-common-module/projectAC/module_c/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/tests/projects/analysis/prevent-common-module/projectAC/module_c/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -} \ No newline at end of file diff --git a/tests/projects/analysis/prevent-common-module/projectAC/module_c/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/tests/projects/analysis/prevent-common-module/projectAC/module_c/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/analysis/prevent-common-module/projectAC/module_c/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/analysis/prevent-common-module/projectAC/sonar-project.properties b/tests/projects/analysis/prevent-common-module/projectAC/sonar-project.properties deleted file mode 100644 index 342fb68ec8f..00000000000 --- a/tests/projects/analysis/prevent-common-module/projectAC/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=projectAC -sonar.projectName=Project AC -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_c diff --git a/tests/projects/analysis/project-builder/module_a/src/HelloA.java b/tests/projects/analysis/project-builder/module_a/src/HelloA.java deleted file mode 100644 index 847098b9a50..00000000000 --- a/tests/projects/analysis/project-builder/module_a/src/HelloA.java +++ /dev/null @@ -1,10 +0,0 @@ -public class HelloA { - private int i; - private HelloA() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/analysis/project-builder/module_b/src/HelloB.java b/tests/projects/analysis/project-builder/module_b/src/HelloB.java deleted file mode 100644 index afc7d2c906c..00000000000 --- a/tests/projects/analysis/project-builder/module_b/src/HelloB.java +++ /dev/null @@ -1,10 +0,0 @@ -public class HelloB { - private int i; - private HelloB() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/analysis/project-builder/module_b/src/IgnoredFile.java b/tests/projects/analysis/project-builder/module_b/src/IgnoredFile.java deleted file mode 100644 index 9574c15b0ee..00000000000 --- a/tests/projects/analysis/project-builder/module_b/src/IgnoredFile.java +++ /dev/null @@ -1 +0,0 @@ -this file has been selected by the extension CreateSubProjects. \ No newline at end of file diff --git a/tests/projects/analysis/project-builder/pom.xml b/tests/projects/analysis/project-builder/pom.xml deleted file mode 100644 index e79f785f013..00000000000 --- a/tests/projects/analysis/project-builder/pom.xml +++ /dev/null @@ -1,15 +0,0 @@ - - 4.0.0 - com.sonarsource.it.projects.batch - project-builder - 1.0-SNAPSHOT - pom - Sonar :: Integration Tests :: Project Builder Sample - - - - \ No newline at end of file diff --git a/tests/projects/analysis/resilience/resilience-purge/sonar-project.properties b/tests/projects/analysis/resilience/resilience-purge/sonar-project.properties deleted file mode 100644 index 9e4aa0e3584..00000000000 --- a/tests/projects/analysis/resilience/resilience-purge/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/analysis/resilience/resilience-purge/src/main/xoo/sample/Sample.xoo b/tests/projects/analysis/resilience/resilience-purge/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/analysis/resilience/resilience-purge/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/analysis/resilience/resilience-purge/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/analysis/resilience/resilience-purge/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 06c9b6c2f38..00000000000 --- a/tests/projects/analysis/resilience/resilience-purge/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,9 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -cognitive_complexity:4 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/analysis/resilience/resilience-sample-v1/sonar-project.properties b/tests/projects/analysis/resilience/resilience-sample-v1/sonar-project.properties deleted file mode 100644 index 9e4aa0e3584..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/analysis/resilience/resilience-sample-v1/src/main/xoo/sample/Sample.xoo b/tests/projects/analysis/resilience/resilience-sample-v1/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v1/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/analysis/resilience/resilience-sample-v1/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/analysis/resilience/resilience-sample-v1/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 06c9b6c2f38..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v1/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,9 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -cognitive_complexity:4 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/analysis/resilience/resilience-sample-v2/sonar-project.properties b/tests/projects/analysis/resilience/resilience-sample-v2/sonar-project.properties deleted file mode 100644 index 1691dc18d68..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=2.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample.xoo b/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 06c9b6c2f38..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,9 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -cognitive_complexity:4 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample2.xoo b/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample2.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample2.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample2.xoo.measures b/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample2.xoo.measures deleted file mode 100644 index 06c9b6c2f38..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample2.xoo.measures +++ /dev/null @@ -1,9 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -cognitive_complexity:4 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample3.xoo b/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample3.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample3.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample3.xoo.measures b/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample3.xoo.measures deleted file mode 100644 index 06c9b6c2f38..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v2/src/main/xoo/sample/Sample3.xoo.measures +++ /dev/null @@ -1,9 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -cognitive_complexity:4 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/analysis/resilience/resilience-sample-v3/sonar-project.properties b/tests/projects/analysis/resilience/resilience-sample-v3/sonar-project.properties deleted file mode 100644 index 60fded428f3..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v3/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=3.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample.xoo b/tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 06c9b6c2f38..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,9 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -cognitive_complexity:4 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample3.xoo b/tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample3.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample3.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample3.xoo.measures b/tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample3.xoo.measures deleted file mode 100644 index 06c9b6c2f38..00000000000 --- a/tests/projects/analysis/resilience/resilience-sample-v3/src/main/xoo/sample/Sample3.xoo.measures +++ /dev/null @@ -1,9 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -cognitive_complexity:4 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/analysis/tracking/v1/sonar-project.properties b/tests/projects/analysis/tracking/v1/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/tests/projects/analysis/tracking/v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/analysis/tracking/v1/src/main/xoo/sample/Sample.xoo b/tests/projects/analysis/tracking/v1/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/tests/projects/analysis/tracking/v1/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/analysis/tracking/v1/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/analysis/tracking/v1/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 7bb5f438500..00000000000 --- a/tests/projects/analysis/tracking/v1/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:8 diff --git a/tests/projects/analysis/tracking/v2/sonar-project.properties b/tests/projects/analysis/tracking/v2/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/tests/projects/analysis/tracking/v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/analysis/tracking/v2/src/main/xoo/sample/Sample.xoo b/tests/projects/analysis/tracking/v2/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 3f624a15b08..00000000000 --- a/tests/projects/analysis/tracking/v2/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,14 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - System.out.println("foo"); - } - - private String myMethod() { - System.out.println("foo"); - return "hello"; - } -} diff --git a/tests/projects/analysis/tracking/v2/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/analysis/tracking/v2/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 69a10eb19d4..00000000000 --- a/tests/projects/analysis/tracking/v2/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:10 diff --git a/tests/projects/analysis/xoo-history-v2/sonar-project.properties b/tests/projects/analysis/xoo-history-v2/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/tests/projects/analysis/xoo-history-v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo b/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo deleted file mode 100644 index b0fd1087030..00000000000 --- a/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassAdded { - - public ClassAdded(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures b/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures deleted file mode 100644 index 66ba834e1ef..00000000000 --- a/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures +++ /dev/null @@ -1,3 +0,0 @@ -ncloc:12 -classes:1 - diff --git a/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo b/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo deleted file mode 100644 index 393111bbab0..00000000000 --- a/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - public String addedMethod() { - return "This method was added in v2"; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures b/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures deleted file mode 100644 index 71d60758637..00000000000 --- a/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures +++ /dev/null @@ -1,3 +0,0 @@ -ncloc:16 -classes:1 - diff --git a/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo b/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures b/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/tests/projects/analysis/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/tests/projects/analysis/xoo-module-b-without-source/module_a/sonar-project.properties b/tests/projects/analysis/xoo-module-b-without-source/module_a/sonar-project.properties deleted file mode 100644 index 6063a2316fc..00000000000 --- a/tests/projects/analysis/xoo-module-b-without-source/module_a/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.sources=src/main/xoo - - diff --git a/tests/projects/analysis/xoo-module-b-without-source/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/tests/projects/analysis/xoo-module-b-without-source/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/tests/projects/analysis/xoo-module-b-without-source/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -} \ No newline at end of file diff --git a/tests/projects/analysis/xoo-module-b-without-source/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/tests/projects/analysis/xoo-module-b-without-source/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index f3953ccd0fe..00000000000 --- a/tests/projects/analysis/xoo-module-b-without-source/module_a/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -cognitive_complexity:4 diff --git a/tests/projects/analysis/xoo-module-b-without-source/module_b/sonar-project.properties b/tests/projects/analysis/xoo-module-b-without-source/module_b/sonar-project.properties deleted file mode 100644 index 6025243d074..00000000000 --- a/tests/projects/analysis/xoo-module-b-without-source/module_b/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_b -sonar.projectName=Module B - -sonar.sources=. diff --git a/tests/projects/analysis/xoo-module-b-without-source/sonar-project.properties b/tests/projects/analysis/xoo-module-b-without-source/sonar-project.properties deleted file mode 100644 index 8bed48f65c5..00000000000 --- a/tests/projects/analysis/xoo-module-b-without-source/sonar-project.properties +++ /dev/null @@ -1,9 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/tests/projects/analysis/xoo-multi-languages/sonar-project.properties b/tests/projects/analysis/xoo-multi-languages/sonar-project.properties deleted file mode 100644 index a2941788c41..00000000000 --- a/tests/projects/analysis/xoo-multi-languages/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=multi-language-sample -sonar.projectName=Multi-Language Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src diff --git a/tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo b/tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo.measures b/tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo.measures deleted file mode 100644 index 5dc0154b75d..00000000000 --- a/tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo2 b/tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo2 deleted file mode 100644 index b1210973dd9..00000000000 --- a/tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo2 +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo2.measures b/tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo2.measures deleted file mode 100644 index 5dc0154b75d..00000000000 --- a/tests/projects/analysis/xoo-multi-languages/src/sample/Sample.xoo2.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/analysis/xoo-sample-with-spaces/v1/my sources/main/xoo/sample/My Sample.xoo b/tests/projects/analysis/xoo-sample-with-spaces/v1/my sources/main/xoo/sample/My Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/tests/projects/analysis/xoo-sample-with-spaces/v1/my sources/main/xoo/sample/My Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/analysis/xoo-sample-with-spaces/v1/my sources/main/xoo/sample/My Sample.xoo.measures b/tests/projects/analysis/xoo-sample-with-spaces/v1/my sources/main/xoo/sample/My Sample.xoo.measures deleted file mode 100644 index 641332a5013..00000000000 --- a/tests/projects/analysis/xoo-sample-with-spaces/v1/my sources/main/xoo/sample/My Sample.xoo.measures +++ /dev/null @@ -1,8 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/analysis/xoo-sample-with-spaces/v1/sonar-project.properties b/tests/projects/analysis/xoo-sample-with-spaces/v1/sonar-project.properties deleted file mode 100644 index bae5f7f152c..00000000000 --- a/tests/projects/analysis/xoo-sample-with-spaces/v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=my sources/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/analysis/xoo-sample-with-spaces/v2/my sources/main/xoo/sample/My Sample.xoo b/tests/projects/analysis/xoo-sample-with-spaces/v2/my sources/main/xoo/sample/My Sample.xoo deleted file mode 100644 index 8c91df8b6cf..00000000000 --- a/tests/projects/analysis/xoo-sample-with-spaces/v2/my sources/main/xoo/sample/My Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod_modified() { - return "hello"; - } -} diff --git a/tests/projects/analysis/xoo-sample-with-spaces/v2/my sources/main/xoo/sample/My Sample.xoo.measures b/tests/projects/analysis/xoo-sample-with-spaces/v2/my sources/main/xoo/sample/My Sample.xoo.measures deleted file mode 100644 index 641332a5013..00000000000 --- a/tests/projects/analysis/xoo-sample-with-spaces/v2/my sources/main/xoo/sample/My Sample.xoo.measures +++ /dev/null @@ -1,8 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/analysis/xoo-sample-with-spaces/v2/sonar-project.properties b/tests/projects/analysis/xoo-sample-with-spaces/v2/sonar-project.properties deleted file mode 100644 index bae5f7f152c..00000000000 --- a/tests/projects/analysis/xoo-sample-with-spaces/v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=my sources/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/after/module_a/module_a1/sonar-project.properties b/tests/projects/dbCleaner/files/after/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/tests/projects/dbCleaner/files/after/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/tests/projects/dbCleaner/files/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo b/tests/projects/dbCleaner/files/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo deleted file mode 100644 index f21f75685b5..00000000000 --- a/tests/projects/dbCleaner/files/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class NewHelloA1 { - private int i; - private NewHelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo.measures b/tests/projects/dbCleaner/files/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo.measures deleted file mode 100644 index 737b14c6713..00000000000 --- a/tests/projects/dbCleaner/files/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/NewHelloA1.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:13 -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/dbCleaner/files/after/module_a/module_a2/sonar-project.properties b/tests/projects/dbCleaner/files/after/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/tests/projects/dbCleaner/files/after/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/tests/projects/dbCleaner/files/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/tests/projects/dbCleaner/files/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/tests/projects/dbCleaner/files/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/tests/projects/dbCleaner/files/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/files/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/after/module_a/sonar-project.properties b/tests/projects/dbCleaner/files/after/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/tests/projects/dbCleaner/files/after/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/tests/projects/dbCleaner/files/after/module_b/module_b1/sonar-project.properties b/tests/projects/dbCleaner/files/after/module_b/module_b1/sonar-project.properties deleted file mode 100644 index ca8404b7bd4..00000000000 --- a/tests/projects/dbCleaner/files/after/module_b/module_b1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B1 diff --git a/tests/projects/dbCleaner/files/after/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/tests/projects/dbCleaner/files/after/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/tests/projects/dbCleaner/files/after/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/after/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/tests/projects/dbCleaner/files/after/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/files/after/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/after/module_b/module_b2/sonar-project.properties b/tests/projects/dbCleaner/files/after/module_b/module_b2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/tests/projects/dbCleaner/files/after/module_b/module_b2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/tests/projects/dbCleaner/files/after/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/tests/projects/dbCleaner/files/after/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/tests/projects/dbCleaner/files/after/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/after/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/tests/projects/dbCleaner/files/after/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/files/after/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/after/module_b/sonar-project.properties b/tests/projects/dbCleaner/files/after/module_b/sonar-project.properties deleted file mode 100644 index 21d69f769d3..00000000000 --- a/tests/projects/dbCleaner/files/after/module_b/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_b -sonar.projectName=Module B - -sonar.modules=module_b1,module_b2 diff --git a/tests/projects/dbCleaner/files/after/sonar-project.properties b/tests/projects/dbCleaner/files/after/sonar-project.properties deleted file mode 100644 index 7935cb5ffb0..00000000000 --- a/tests/projects/dbCleaner/files/after/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/tests/projects/dbCleaner/files/before/module_a/module_a1/sonar-project.properties b/tests/projects/dbCleaner/files/before/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/tests/projects/dbCleaner/files/before/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/tests/projects/dbCleaner/files/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/tests/projects/dbCleaner/files/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/tests/projects/dbCleaner/files/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/tests/projects/dbCleaner/files/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 737b14c6713..00000000000 --- a/tests/projects/dbCleaner/files/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:13 -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/dbCleaner/files/before/module_a/module_a2/sonar-project.properties b/tests/projects/dbCleaner/files/before/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/tests/projects/dbCleaner/files/before/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/tests/projects/dbCleaner/files/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/tests/projects/dbCleaner/files/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/tests/projects/dbCleaner/files/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/tests/projects/dbCleaner/files/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/files/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/before/module_a/sonar-project.properties b/tests/projects/dbCleaner/files/before/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/tests/projects/dbCleaner/files/before/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/tests/projects/dbCleaner/files/before/module_b/module_b1/sonar-project.properties b/tests/projects/dbCleaner/files/before/module_b/module_b1/sonar-project.properties deleted file mode 100644 index ca8404b7bd4..00000000000 --- a/tests/projects/dbCleaner/files/before/module_b/module_b1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B1 diff --git a/tests/projects/dbCleaner/files/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/tests/projects/dbCleaner/files/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/tests/projects/dbCleaner/files/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/tests/projects/dbCleaner/files/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/files/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/before/module_b/module_b2/sonar-project.properties b/tests/projects/dbCleaner/files/before/module_b/module_b2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/tests/projects/dbCleaner/files/before/module_b/module_b2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/tests/projects/dbCleaner/files/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/tests/projects/dbCleaner/files/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/tests/projects/dbCleaner/files/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/tests/projects/dbCleaner/files/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/files/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/files/before/module_b/sonar-project.properties b/tests/projects/dbCleaner/files/before/module_b/sonar-project.properties deleted file mode 100644 index 21d69f769d3..00000000000 --- a/tests/projects/dbCleaner/files/before/module_b/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_b -sonar.projectName=Module B - -sonar.modules=module_b1,module_b2 diff --git a/tests/projects/dbCleaner/files/before/sonar-project.properties b/tests/projects/dbCleaner/files/before/sonar-project.properties deleted file mode 100644 index 7935cb5ffb0..00000000000 --- a/tests/projects/dbCleaner/files/before/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/tests/projects/dbCleaner/modules/after/module_a/module_a1/sonar-project.properties b/tests/projects/dbCleaner/modules/after/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/tests/projects/dbCleaner/modules/after/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/tests/projects/dbCleaner/modules/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/tests/projects/dbCleaner/modules/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/tests/projects/dbCleaner/modules/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/modules/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/tests/projects/dbCleaner/modules/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 737b14c6713..00000000000 --- a/tests/projects/dbCleaner/modules/after/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:13 -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/dbCleaner/modules/after/module_a/module_a2/sonar-project.properties b/tests/projects/dbCleaner/modules/after/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/tests/projects/dbCleaner/modules/after/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/tests/projects/dbCleaner/modules/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/tests/projects/dbCleaner/modules/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/tests/projects/dbCleaner/modules/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/modules/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/tests/projects/dbCleaner/modules/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/modules/after/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/modules/after/module_a/sonar-project.properties b/tests/projects/dbCleaner/modules/after/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/tests/projects/dbCleaner/modules/after/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/tests/projects/dbCleaner/modules/after/module_c/module_c1/sonar-project.properties b/tests/projects/dbCleaner/modules/after/module_c/module_c1/sonar-project.properties deleted file mode 100644 index ca8404b7bd4..00000000000 --- a/tests/projects/dbCleaner/modules/after/module_c/module_c1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B1 diff --git a/tests/projects/dbCleaner/modules/after/module_c/module_c1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/tests/projects/dbCleaner/modules/after/module_c/module_c1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/tests/projects/dbCleaner/modules/after/module_c/module_c1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/modules/after/module_c/module_c1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/tests/projects/dbCleaner/modules/after/module_c/module_c1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/modules/after/module_c/module_c1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/modules/after/module_c/module_c2/sonar-project.properties b/tests/projects/dbCleaner/modules/after/module_c/module_c2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/tests/projects/dbCleaner/modules/after/module_c/module_c2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/tests/projects/dbCleaner/modules/after/module_c/module_c2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/tests/projects/dbCleaner/modules/after/module_c/module_c2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/tests/projects/dbCleaner/modules/after/module_c/module_c2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/modules/after/module_c/module_c2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/tests/projects/dbCleaner/modules/after/module_c/module_c2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/modules/after/module_c/module_c2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/modules/after/module_c/sonar-project.properties b/tests/projects/dbCleaner/modules/after/module_c/sonar-project.properties deleted file mode 100644 index e379019d264..00000000000 --- a/tests/projects/dbCleaner/modules/after/module_c/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_c -sonar.projectName=Module C - -sonar.modules=module_c1,module_c2 diff --git a/tests/projects/dbCleaner/modules/after/sonar-project.properties b/tests/projects/dbCleaner/modules/after/sonar-project.properties deleted file mode 100644 index 6a6d185f9df..00000000000 --- a/tests/projects/dbCleaner/modules/after/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_c diff --git a/tests/projects/dbCleaner/modules/before/module_a/module_a1/sonar-project.properties b/tests/projects/dbCleaner/modules/before/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/tests/projects/dbCleaner/modules/before/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/tests/projects/dbCleaner/modules/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/tests/projects/dbCleaner/modules/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/tests/projects/dbCleaner/modules/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/modules/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/tests/projects/dbCleaner/modules/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 737b14c6713..00000000000 --- a/tests/projects/dbCleaner/modules/before/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:13 -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/dbCleaner/modules/before/module_a/module_a2/sonar-project.properties b/tests/projects/dbCleaner/modules/before/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/tests/projects/dbCleaner/modules/before/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/tests/projects/dbCleaner/modules/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/tests/projects/dbCleaner/modules/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/tests/projects/dbCleaner/modules/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/modules/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/tests/projects/dbCleaner/modules/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/modules/before/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/modules/before/module_a/sonar-project.properties b/tests/projects/dbCleaner/modules/before/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/tests/projects/dbCleaner/modules/before/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/tests/projects/dbCleaner/modules/before/module_b/module_b1/sonar-project.properties b/tests/projects/dbCleaner/modules/before/module_b/module_b1/sonar-project.properties deleted file mode 100644 index ca8404b7bd4..00000000000 --- a/tests/projects/dbCleaner/modules/before/module_b/module_b1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B1 diff --git a/tests/projects/dbCleaner/modules/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/tests/projects/dbCleaner/modules/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/tests/projects/dbCleaner/modules/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/modules/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/tests/projects/dbCleaner/modules/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/modules/before/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/modules/before/module_b/module_b2/sonar-project.properties b/tests/projects/dbCleaner/modules/before/module_b/module_b2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/tests/projects/dbCleaner/modules/before/module_b/module_b2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/tests/projects/dbCleaner/modules/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/tests/projects/dbCleaner/modules/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/tests/projects/dbCleaner/modules/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/modules/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/tests/projects/dbCleaner/modules/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/modules/before/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/modules/before/module_b/sonar-project.properties b/tests/projects/dbCleaner/modules/before/module_b/sonar-project.properties deleted file mode 100644 index 21d69f769d3..00000000000 --- a/tests/projects/dbCleaner/modules/before/module_b/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_b -sonar.projectName=Module B - -sonar.modules=module_b1,module_b2 diff --git a/tests/projects/dbCleaner/modules/before/sonar-project.properties b/tests/projects/dbCleaner/modules/before/sonar-project.properties deleted file mode 100644 index 7935cb5ffb0..00000000000 --- a/tests/projects/dbCleaner/modules/before/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/sonar-project.properties b/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 737b14c6713..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:13 -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/sonar-project.properties b/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 42039538a92..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/sonar-project.properties b/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/sonar-project.properties b/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/sonar-project.properties deleted file mode 100644 index ca8404b7bd4..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B1 diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/sonar-project.properties b/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/sonar-project.properties b/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/sonar-project.properties deleted file mode 100644 index 21d69f769d3..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/module_b/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_b -sonar.projectName=Module B - -sonar.modules=module_b1,module_b2 diff --git a/tests/projects/dbCleaner/xoo-multi-modules-sample/sonar-project.properties b/tests/projects/dbCleaner/xoo-multi-modules-sample/sonar-project.properties deleted file mode 100644 index 7935cb5ffb0..00000000000 --- a/tests/projects/dbCleaner/xoo-multi-modules-sample/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/tests/projects/duplications/cross-module/module1/sonar-project.properties b/tests/projects/duplications/cross-module/module1/sonar-project.properties deleted file mode 100644 index a4b8c4853a5..00000000000 --- a/tests/projects/duplications/cross-module/module1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=module1 -sonar.projectName=Module 1 -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File1.xoo b/tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File1.xoo deleted file mode 100644 index 5e494b196ab..00000000000 --- a/tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File1.xoo +++ /dev/null @@ -1,35 +0,0 @@ -package sample; - -public class File1 { - - public File1() { - } - - public void test() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - int intergerToBeIncremented2 = 0; - while (intergerToBeIncremented2 < 100) { - intergerToBeIncremented2++; - } - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - } -} diff --git a/tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File1.xoo.measures b/tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File1.xoo.measures deleted file mode 100644 index 5a79b0b5dbb..00000000000 --- a/tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File1.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:36 diff --git a/tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File2.xoo b/tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File2.xoo deleted file mode 100644 index 00b502d423a..00000000000 --- a/tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File2.xoo +++ /dev/null @@ -1,23 +0,0 @@ -package sample; - -public class File1 { - - public File1() { - } - - public void otherMethod() { - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - int nothing = 0; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - int nothing = 1; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - int nothing = 2; - } - } -} diff --git a/tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File2.xoo.measures b/tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File2.xoo.measures deleted file mode 100644 index d90983a3e9f..00000000000 --- a/tests/projects/duplications/cross-module/module1/src/main/xoo/sample/File2.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:24 diff --git a/tests/projects/duplications/cross-module/module2/sonar-project.properties b/tests/projects/duplications/cross-module/module2/sonar-project.properties deleted file mode 100644 index 0b71b3d7548..00000000000 --- a/tests/projects/duplications/cross-module/module2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=module2 -sonar.projectName=Module 2 -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/duplications/cross-module/module2/src/main/xoo/sample/File1.xoo b/tests/projects/duplications/cross-module/module2/src/main/xoo/sample/File1.xoo deleted file mode 100644 index cc0b6612812..00000000000 --- a/tests/projects/duplications/cross-module/module2/src/main/xoo/sample/File1.xoo +++ /dev/null @@ -1,35 +0,0 @@ -package sample; - -public class File1 { - - public File1() { - } - - public void test2() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - int intergerToBeIncremented2 = 0; - while (intergerToBeIncremented2 < 100) { - intergerToBeIncremented2++; - } - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - } -} diff --git a/tests/projects/duplications/cross-module/module2/src/main/xoo/sample/File1.xoo.measures b/tests/projects/duplications/cross-module/module2/src/main/xoo/sample/File1.xoo.measures deleted file mode 100644 index 5a79b0b5dbb..00000000000 --- a/tests/projects/duplications/cross-module/module2/src/main/xoo/sample/File1.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:36 diff --git a/tests/projects/duplications/cross-module/sonar-project.properties b/tests/projects/duplications/cross-module/sonar-project.properties deleted file mode 100644 index f4c7496f179..00000000000 --- a/tests/projects/duplications/cross-module/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=cross-module -sonar.projectName=Cross Module Duplication -sonar.projectVersion=1.0-SNAPSHOT -sonar.modules=module1,module2 diff --git a/tests/projects/duplications/cross-project/duplicate/sonar-project.properties b/tests/projects/duplications/cross-project/duplicate/sonar-project.properties deleted file mode 100644 index cc020389cbd..00000000000 --- a/tests/projects/duplications/cross-project/duplicate/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=cross-project -sonar.projectName=Cross project -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File1.xoo b/tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File1.xoo deleted file mode 100644 index 5e494b196ab..00000000000 --- a/tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File1.xoo +++ /dev/null @@ -1,35 +0,0 @@ -package sample; - -public class File1 { - - public File1() { - } - - public void test() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - int intergerToBeIncremented2 = 0; - while (intergerToBeIncremented2 < 100) { - intergerToBeIncremented2++; - } - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - } -} diff --git a/tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File1.xoo.measures b/tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File1.xoo.measures deleted file mode 100644 index 5a79b0b5dbb..00000000000 --- a/tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File1.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:36 diff --git a/tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File2.xoo b/tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File2.xoo deleted file mode 100644 index 00b502d423a..00000000000 --- a/tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File2.xoo +++ /dev/null @@ -1,23 +0,0 @@ -package sample; - -public class File1 { - - public File1() { - } - - public void otherMethod() { - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - int nothing = 0; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - int nothing = 1; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - int nothing = 2; - } - } -} diff --git a/tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File2.xoo.measures b/tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File2.xoo.measures deleted file mode 100644 index d90983a3e9f..00000000000 --- a/tests/projects/duplications/cross-project/duplicate/src/main/xoo/sample/File2.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:24 diff --git a/tests/projects/duplications/cross-project/origin/sonar-project.properties b/tests/projects/duplications/cross-project/origin/sonar-project.properties deleted file mode 100644 index cc020389cbd..00000000000 --- a/tests/projects/duplications/cross-project/origin/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=cross-project -sonar.projectName=Cross project -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/duplications/cross-project/origin/src/main/xoo/sample/File1.xoo b/tests/projects/duplications/cross-project/origin/src/main/xoo/sample/File1.xoo deleted file mode 100644 index cc0b6612812..00000000000 --- a/tests/projects/duplications/cross-project/origin/src/main/xoo/sample/File1.xoo +++ /dev/null @@ -1,35 +0,0 @@ -package sample; - -public class File1 { - - public File1() { - } - - public void test2() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - int intergerToBeIncremented2 = 0; - while (intergerToBeIncremented2 < 100) { - intergerToBeIncremented2++; - } - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - } -} diff --git a/tests/projects/duplications/cross-project/origin/src/main/xoo/sample/File1.xoo.measures b/tests/projects/duplications/cross-project/origin/src/main/xoo/sample/File1.xoo.measures deleted file mode 100644 index 5a79b0b5dbb..00000000000 --- a/tests/projects/duplications/cross-project/origin/src/main/xoo/sample/File1.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:36 diff --git a/tests/projects/duplications/file-duplications/sonar-project.properties b/tests/projects/duplications/file-duplications/sonar-project.properties deleted file mode 100644 index ae173196ce4..00000000000 --- a/tests/projects/duplications/file-duplications/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=file-duplications -sonar.projectName=File duplications -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo deleted file mode 100644 index 88e610b4a74..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo +++ /dev/null @@ -1,41 +0,0 @@ -package duplicated_lines_with_other_dir1; - -public class DuplicatedLinesWithOtherDirectory { - - public DuplicatedLinesWithOtherDirectory() { - } - - public void duplicatedMethodWithOtherDirectory() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - } -} diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures deleted file mode 100644 index 03005736cf7..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:42 diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo deleted file mode 100644 index bb3cc734be4..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo +++ /dev/null @@ -1,41 +0,0 @@ -package duplicated_lines_with_other_dir2; - -public class DuplicatedLinesWithOtherDirectory { - - public DuplicatedLinesWithOtherDirectory() { - } - - public void duplicatedMethodWithOtherDirectory() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - } -} diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures deleted file mode 100644 index 03005736cf7..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:42 diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo deleted file mode 100644 index 5f23377bed4..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo +++ /dev/null @@ -1,105 +0,0 @@ -package duplicated_lines_within_dir; - -public class DuplicatedLinesInSameDirectory1 { - - public DuplicatedLinesInSameDirectory1() { - } - - /* - * sddfgdfgfg - */ - public void duplicatedMethodInSameFile1() { - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - int intergerToBeIncremented2 = 0; - while (intergerToBeIncremented2 < 100) { - intergerToBeIncremented2++; - } - // first - int intergerToBeIncremented3 = 0; - while (intergerToBeIncremented3 < 100) { - intergerToBeIncremented3++; - } - int intergerToBeIncremented4 = 0; - while (intergerToBeIncremented4 < 100) { - intergerToBeIncremented4++; - } - int intergerToBeIncremented5 = 0; - while (intergerToBeIncremented5 < 100) { - intergerToBeIncremented5++; - } - int intergerToBeIncremented6 = 0; - while (intergerToBeIncremented6 < 100) { - intergerToBeIncremented6++; - } - int intergerToBeIncremented7 = 0; - while (intergerToBeIncremented7 < 100) { - intergerToBeIncremented7++; - } - } - - - public void duplicatedMethodInSameFile3() { - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - // test2 - int intergerToBeIncremented2 = 0; - while (intergerToBeIncremented2 < 100) { - intergerToBeIncremented2++; - } - int intergerToBeIncremented8 = 0; - while (intergerToBeIncremented8 < 100) { - intergerToBeIncremented8++; - } - int intergerToBeIncremented9 = 0; - while (intergerToBeIncremented9 < 100) { - intergerToBeIncremented9++; - } - // test 1 - int intergerToBeIncremented10 = 0; - while (intergerToBeIncremented10 < 100) { - intergerToBeIncremented10++; - } - int intergerToBeIncremented60 = 0; - while (intergerToBeIncremented60 < 100) { - intergerToBeIncremented60++; - } - int intergerToBeIncremented70 = 0; - while (intergerToBeIncremented70 < 100) { - intergerToBeIncremented70++; - } - } - - public void duplicated2MethodInSameFile3() { - System.out.print("copy test start"); - int intergerToBeIncremented1 = 0; - while (intergerToBeIncremented1 < 100) { - intergerToBeIncremented1++; - } - int intergerToBeIncremented20 = 0; - while (intergerToBeIncremented20 < 100) { - intergerToBeIncremented20++; - } - int intergerToBeIncremented8 = 0; - while (intergerToBeIncremented8 < 100) { - intergerToBeIncremented8++; - } - int intergerToBeIncremented9 = 0; - while (intergerToBeIncremented9 < 100) { - intergerToBeIncremented9++; - } - int intergerToBeIncremented10 = 0; - while (intergerToBeIncremented10 < 100) { - intergerToBeIncremented10++; - } - int intergerToBeIncremented60 = 0; - while (intergerToBeIncremented60 < 100) { - intergerToBeIncremented60++; - } - System.out.print("copy test end"); - } -} diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo.measures b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo.measures deleted file mode 100644 index c71c98ec52e..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory1.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:106 diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo deleted file mode 100644 index b565bfd75a2..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo +++ /dev/null @@ -1,71 +0,0 @@ -package duplicated_lines_within_dir; - -public class DuplicatedLinesInSameDirectory2 { - - public DuplicatedLinesInSameDirectory2() { - } - - public void duplicated2MethodInSameFile3() { - System.out.print("copy test start"); - int intergerToBeIncremented1 = 0; - while (intergerToBeIncremented1 < 100) { - intergerToBeIncremented1++; - } - int intergerToBeIncremented20 = 0; - while (intergerToBeIncremented20 < 100) { - intergerToBeIncremented20++; - } - int intergerToBeIncremented8 = 0; - while (intergerToBeIncremented8 < 100) { - intergerToBeIncremented8++; - } - int intergerToBeIncremented9 = 0; - while (intergerToBeIncremented9 < 100) { - intergerToBeIncremented9++; - } - int intergerToBeIncremented10 = 0; - while (intergerToBeIncremented10 < 100) { - intergerToBeIncremented10++; - } - int intergerToBeIncremented60 = 0; - while (intergerToBeIncremented60 < 100) { - intergerToBeIncremented60++; - } - System.out.print("copy test end"); - } - - public void duplicatedMethodInSameFile1() { - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - int intergerToBeIncremented2 = 0; - while (intergerToBeIncremented2 < 100) { - intergerToBeIncremented2++; - } - // second - int intergerToBeIncremented3 = 0; - while (intergerToBeIncremented3 < 100) { - intergerToBeIncremented3++; - } - int intergerToBeIncremented4 = 0; - while (intergerToBeIncremented4 < 100) { - intergerToBeIncremented4++; - } - int intergerToBeIncremented5 = 0; - while (intergerToBeIncremented5 < 100) { - intergerToBeIncremented5++; - } - // vghgvhz - // bhjjh - int intergerToBeIncremented6 = 0; - while (intergerToBeIncremented6 < 100) { - intergerToBeIncremented6++; - } - int intergerToBeIncremented7 = 0; - while (intergerToBeIncremented7 < 100) { - intergerToBeIncremented7++; - } - } - -} diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo.measures b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo.measures deleted file mode 100644 index f175998c7cc..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_dir/DuplicatedLinesInSameDirectory2.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:72 diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo deleted file mode 100644 index 6a0d3345eb7..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo +++ /dev/null @@ -1,70 +0,0 @@ -package duplicated_lines_within_same_file; - -public class DuplicatedLinesInSameFile { - - public DuplicatedLinesInSameFile() { - } - - public void duplicatedMethodInSameFile1() { - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - for (int i=0; i<40; i++){ - temp += "really nothing to say "+i; - } - for (int i=0; i<50; i++){ - temp += "really really nothing to say "+i; - } - for (int i=0; i<60; i++){ - temp += ".. "+i; - } - for (int i=0; i<70; i++){ - temp += "you say something? "+i; - } - for (int i=0; i<80; i++){ - temp += "ah no..."+i; - } - for (int i=0; i<90; i++){ - temp += "bye"+i; - } - } - - public void duplicatedMethodInSameFile2() { - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - for (int i=0; i<40; i++){ - temp += "really nothing to say "+i; - } - for (int i=0; i<50; i++){ - temp += "really really nothing to say "+i; - } - for (int i=0; i<60; i++){ - temp += ".. "+i; - } - for (int i=0; i<70; i++){ - temp += "you say something? "+i; - } - for (int i=0; i<80; i++){ - temp += "ah no..."+i; - } - for (int i=0; i<90; i++){ - temp += "bye"+i; - } - } - -} diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures deleted file mode 100644 index 5e818e5e054..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:71 diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo deleted file mode 100644 index 8083fdec9d6..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo +++ /dev/null @@ -1,41 +0,0 @@ -package duplicated_same_lines_within_3_files; - -public class File1 { - - public void someMethod() { - System.out.println("Test"); - } - - public void duplicatedMethod() { - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - System.out.println("test"); - int intergerToBeIncremented3 = 0; - while (intergerToBeIncremented3 < 100) { - intergerToBeIncremented3++; - } - System.out.println("test"); - int intergerToBeIncremented4 = 0; - while (intergerToBeIncremented4 < 100) { - intergerToBeIncremented4++; - } - System.out.println("test"); - int intergerToBeIncremented5 = 0; - while (intergerToBeIncremented5 < 100) { - intergerToBeIncremented5++; - } - System.out.println("test"); - int intergerToBeIncremented6 = 0; - while (intergerToBeIncremented6 < 100) { - intergerToBeIncremented6++; - } - System.out.println("test"); - int intergerToBeIncremented7 = 0; - while (intergerToBeIncremented7 < 100) { - intergerToBeIncremented7++; - } - } - -} diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo.measures b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo.measures deleted file mode 100644 index 03005736cf7..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File1.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:42 diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo deleted file mode 100644 index b76919dbd67..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo +++ /dev/null @@ -1,40 +0,0 @@ -package duplicated_same_lines_within_3_files; - -public class File2 { - - public void duplicatedMethod() { - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - System.out.println("test"); - int intergerToBeIncremented3 = 0; - while (intergerToBeIncremented3 < 100) { - intergerToBeIncremented3++; - } - System.out.println("test"); - int intergerToBeIncremented4 = 0; - while (intergerToBeIncremented4 < 100) { - intergerToBeIncremented4++; - } - System.out.println("test"); - int intergerToBeIncremented5 = 0; - while (intergerToBeIncremented5 < 100) { - intergerToBeIncremented5++; - } - System.out.println("test"); - int intergerToBeIncremented6 = 0; - while (intergerToBeIncremented6 < 100) { - intergerToBeIncremented6++; - } - System.out.println("test"); - int intergerToBeIncremented7 = 0; - while (intergerToBeIncremented7 < 100) { - intergerToBeIncremented7++; - } - } - - public void someOtherMethod() { - System.out.println("Test2"); - } -} diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo.measures b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo.measures deleted file mode 100644 index 076450c97b0..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File2.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:41 diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo deleted file mode 100644 index 5db9d2fd221..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo +++ /dev/null @@ -1,43 +0,0 @@ -package duplicated_same_lines_within_3_files; - -public class File3 { - - private String test; - - public void duplicatedMethod() { - int intergerToBeIncremented = 0; - while (intergerToBeIncremented < 100) { - intergerToBeIncremented++; - } - System.out.println("test"); - int intergerToBeIncremented3 = 0; - while (intergerToBeIncremented3 < 100) { - intergerToBeIncremented3++; - } - System.out.println("test"); - int intergerToBeIncremented4 = 0; - while (intergerToBeIncremented4 < 100) { - intergerToBeIncremented4++; - } - System.out.println("test"); - int intergerToBeIncremented5 = 0; - while (intergerToBeIncremented5 < 100) { - intergerToBeIncremented5++; - } - System.out.println("test"); - int intergerToBeIncremented6 = 0; - while (intergerToBeIncremented6 < 100) { - intergerToBeIncremented6++; - } - System.out.println("test"); - int intergerToBeIncremented7 = 0; - while (intergerToBeIncremented7 < 100) { - intergerToBeIncremented7++; - } - } - - public String getTest() { - return test; - } - -} diff --git a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo.measures b/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo.measures deleted file mode 100644 index 9fd62445ebd..00000000000 --- a/tests/projects/duplications/file-duplications/src/main/xoo/duplicated_same_lines_within_3_files/File3.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:44 diff --git a/tests/projects/duplications/new-duplications-v1/sonar-project.properties b/tests/projects/duplications/new-duplications-v1/sonar-project.properties deleted file mode 100644 index 6f0a3e53d33..00000000000 --- a/tests/projects/duplications/new-duplications-v1/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=new-duplications -sonar.projectName=New duplications -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.scm.provider=xoo diff --git a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo b/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo deleted file mode 100644 index 366e85ec229..00000000000 --- a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo +++ /dev/null @@ -1,17 +0,0 @@ -package duplicated_lines_with_other_dir1; - -public class DuplicatedLinesWithOtherDirectory { - - public DuplicatedLinesWithOtherDirectory() { - } - - public void duplicatedMethodWithOtherDirectory() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - } -} diff --git a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures b/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures deleted file mode 100644 index 57948d5b8c6..00000000000 --- a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:18 diff --git a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.scm b/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.scm deleted file mode 100644 index a4f7ca6c8b0..00000000000 --- a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.scm +++ /dev/null @@ -1,18 +0,0 @@ -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -2,user2,2015-01-05 -2,user2,2015-01-05 -3,user3,2015-01-06 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 diff --git a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo b/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo deleted file mode 100644 index 366e85ec229..00000000000 --- a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo +++ /dev/null @@ -1,17 +0,0 @@ -package duplicated_lines_with_other_dir1; - -public class DuplicatedLinesWithOtherDirectory { - - public DuplicatedLinesWithOtherDirectory() { - } - - public void duplicatedMethodWithOtherDirectory() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - } -} diff --git a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures b/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures deleted file mode 100644 index 57948d5b8c6..00000000000 --- a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:18 diff --git a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.scm b/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.scm deleted file mode 100644 index a4f7ca6c8b0..00000000000 --- a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.scm +++ /dev/null @@ -1,18 +0,0 @@ -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -2,user2,2015-01-05 -2,user2,2015-01-05 -3,user3,2015-01-06 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 diff --git a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo b/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo deleted file mode 100644 index 89addba19cf..00000000000 --- a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo +++ /dev/null @@ -1,39 +0,0 @@ -package duplicated_lines_within_same_file; - -public class DuplicatedLinesInSameFile { - - public DuplicatedLinesInSameFile() { - } - - public void duplicatedMethodInSameFile1() { - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - for (int i=0; i<40; i++){ - temp += "really nothing to say "+i; - } - for (int i=0; i<50; i++){ - temp += "really really nothing to say "+i; - } - for (int i=0; i<60; i++){ - temp += ".. "+i; - } - for (int i=0; i<70; i++){ - temp += "you say something? "+i; - } - for (int i=0; i<80; i++){ - temp += "ah no..."+i; - } - for (int i=0; i<90; i++){ - temp += "bye"+i; - } - } - -} diff --git a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures b/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures deleted file mode 100644 index 9680b5f6c8a..00000000000 --- a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:40 diff --git a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.scm b/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.scm deleted file mode 100644 index 50df6bcf039..00000000000 --- a/tests/projects/duplications/new-duplications-v1/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.scm +++ /dev/null @@ -1,40 +0,0 @@ -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -2,user2,2015-01-05 -2,user2,2015-01-05 -3,user3,2015-01-06 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 diff --git a/tests/projects/duplications/new-duplications-v2/sonar-project.properties b/tests/projects/duplications/new-duplications-v2/sonar-project.properties deleted file mode 100644 index 6f0a3e53d33..00000000000 --- a/tests/projects/duplications/new-duplications-v2/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=new-duplications -sonar.projectName=New duplications -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.scm.provider=xoo diff --git a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo b/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo deleted file mode 100644 index 88e610b4a74..00000000000 --- a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo +++ /dev/null @@ -1,41 +0,0 @@ -package duplicated_lines_with_other_dir1; - -public class DuplicatedLinesWithOtherDirectory { - - public DuplicatedLinesWithOtherDirectory() { - } - - public void duplicatedMethodWithOtherDirectory() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - } -} diff --git a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures b/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures deleted file mode 100644 index 03005736cf7..00000000000 --- a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:42 diff --git a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.scm b/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.scm deleted file mode 100644 index 728006a3575..00000000000 --- a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir1/DuplicatedLinesWithOtherDirectory.xoo.scm +++ /dev/null @@ -1,42 +0,0 @@ -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -2,user2,2015-01-05 -2,user2,2015-01-05 -3,user3,2015-01-06 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 diff --git a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo b/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo deleted file mode 100644 index 433514f17af..00000000000 --- a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo +++ /dev/null @@ -1,35 +0,0 @@ -package duplicated_lines_with_other_dir2; - -public class DuplicatedLinesWithOtherDirectory { - - public DuplicatedLinesWithOtherDirectory() { - } - - public void duplicatedMethodWithOtherDirectory() { - char[] charList = new char[30]; - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - for (int i = 0; i < 10; i++) { - charList[i] = 'a'; - } - } -} diff --git a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures b/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures deleted file mode 100644 index 33a558499a3..00000000000 --- a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:36 - diff --git a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.scm b/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.scm deleted file mode 100644 index 8320f408e7a..00000000000 --- a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_with_other_dir2/DuplicatedLinesWithOtherDirectory.xoo.scm +++ /dev/null @@ -1,36 +0,0 @@ -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -2,user2,2015-01-05 -2,user2,2015-01-05 -3,user3,2015-01-06 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 diff --git a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo b/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo deleted file mode 100644 index a0d79b856c6..00000000000 --- a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo +++ /dev/null @@ -1,80 +0,0 @@ -package duplicated_lines_within_same_file; - -public class DuplicatedLinesInSameFile { - - public DuplicatedLinesInSameFile() { - } - - public void duplicatedMethodInSameFile1() { - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - for (int i=0; i<40; i++){ - temp += "really nothing to say "+i; - } - for (int i=0; i<50; i++){ - temp += "really really nothing to say "+i; - } - for (int i=0; i<60; i++){ - temp += ".. "+i; - } - for (int i=0; i<70; i++){ - temp += "you say something? "+i; - } - for (int i=0; i<80; i++){ - temp += "ah no..."+i; - } - for (int i=0; i<90; i++){ - temp += "bye"+i; - } - } - - public void duplicatedMethodInSameFile2() { - String temp = ""; - for (int i=0; i<10; i++){ - temp += "say something"+i; - } - for (int i=0; i<20; i++){ - temp += "say nothing"+i; - } - for (int i=0; i<30; i++){ - temp += "always say nothing"+i; - } - for (int i=0; i<40; i++){ - temp += "really nothing to say "+i; - } - // Some comment - // Some comment - // Some comment - for (int i=0; i<50; i++){ - temp += "really really nothing to say "+i; - } - for (int i=0; i<60; i++){ - temp += ".. "+i; - } - for (int i=0; i<70; i++){ - temp += "you say something? "+i; - } - for (int i=0; i<80; i++){ - temp += "ah no..."+i; - } - for (int i=0; i<90; i++){ - temp += "bye"+i; - } - } - - public void notDuplicated(){ - int intergerToBeIncremented6 = 0; - while (intergerToBeIncremented6 < 100) { - intergerToBeIncremented6++; - } - } - -} diff --git a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures b/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures deleted file mode 100644 index 2fb2025cb32..00000000000 --- a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:81 - diff --git a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.scm b/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.scm deleted file mode 100644 index f3cf9706ffa..00000000000 --- a/tests/projects/duplications/new-duplications-v2/src/main/xoo/duplicated_lines_within_same_file/DuplicatedLinesInSameFile.xoo.scm +++ /dev/null @@ -1,81 +0,0 @@ -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -1,user1,2015-01-04 -2,user2,2015-01-05 -2,user2,2015-01-05 -3,user3,2015-01-06 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -5,user4,2015-06-07 -4,user4,2015-01-07 -4,user4,2015-01-07 -4,user4,2015-01-07 diff --git a/tests/projects/exclusions/exclusions/sonar-project.properties b/tests/projects/exclusions/exclusions/sonar-project.properties deleted file mode 100644 index 8b26cec2224..00000000000 --- a/tests/projects/exclusions/exclusions/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=exclusions -sonar.projectName=Exclusions -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.tests=src/test/xoo -sonar.language=xoo diff --git a/tests/projects/exclusions/exclusions/src/main/xoo/FileOnRootFolder.xoo b/tests/projects/exclusions/exclusions/src/main/xoo/FileOnRootFolder.xoo deleted file mode 100644 index 52d311f7e38..00000000000 --- a/tests/projects/exclusions/exclusions/src/main/xoo/FileOnRootFolder.xoo +++ /dev/null @@ -1,10 +0,0 @@ -public class ClassOnDefaultPackage { - - public ClassOnDefaultPackage(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/exclusions/exclusions/src/main/xoo/FileOnRootFolder.xoo.measures b/tests/projects/exclusions/exclusions/src/main/xoo/FileOnRootFolder.xoo.measures deleted file mode 100644 index 7bb5f438500..00000000000 --- a/tests/projects/exclusions/exclusions/src/main/xoo/FileOnRootFolder.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:8 diff --git a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassOne.xoo b/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassOne.xoo deleted file mode 100644 index be537077200..00000000000 --- a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassOne.xoo +++ /dev/null @@ -1,32 +0,0 @@ -package org.sonar.tests; - -public class ClassOne { - public void toto() throws Exception { - int i=0; - i++; - } - public String hello() { - return "hello"; - } - - protected void duplicatedMethod(int i) { - i++; - int j=10; - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - System.out.println("i=" + i); - } -} diff --git a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassOne.xoo.measures b/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassOne.xoo.measures deleted file mode 100644 index 7f28308edeb..00000000000 --- a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassOne.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:30 diff --git a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToExclude.xoo b/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToExclude.xoo deleted file mode 100644 index 6e7c3f7ba16..00000000000 --- a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToExclude.xoo +++ /dev/null @@ -1,66 +0,0 @@ -package org.sonar.tests; - -/** - * JAVADOC - * ......... - */ -public class ClassToExclude { - String test = "foo"; - String test2 = "bar"; - String test3 = "toto"; - - public ClassToExclude(){ - String t; - if (true) - t = "sonar"; - } - - public static final String method1(String unused) { - if (true) { - return "foo"; - } - if (false) { - return "foooooo"; - } - String loooooooooooooooooooooooooooooooooooooooooooooongVar = "wantsViolations"; - return loooooooooooooooooooooooooooooooooooooooooooooongVar; - } - - protected void duplicatedMethod(int i) { - // commmmmmmments - // foo.............. - i++; - int j=10; - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - if (i==0) { - i=j + 10; - } - System.out.println("i=" + i); - } -} diff --git a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToExclude.xoo.measures b/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToExclude.xoo.measures deleted file mode 100644 index 9c54091bef9..00000000000 --- a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToExclude.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:59 diff --git a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToIgnoreGlobally.xoo b/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToIgnoreGlobally.xoo deleted file mode 100644 index 1db5746a7b5..00000000000 --- a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToIgnoreGlobally.xoo +++ /dev/null @@ -1,4 +0,0 @@ -package org.sonar.tests; - -public class ClassToIgnoreGlobally { -} diff --git a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToIgnoreGlobally.xoo.measures b/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToIgnoreGlobally.xoo.measures deleted file mode 100644 index 1fa2c73b3d0..00000000000 --- a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassToIgnoreGlobally.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:3 diff --git a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassTwo.xoo b/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassTwo.xoo deleted file mode 100644 index 8d6db94e588..00000000000 --- a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassTwo.xoo +++ /dev/null @@ -1,26 +0,0 @@ -package org.sonar.tests; - -import java.lang.String; - -/** - * THE JAVADOC HEADER - */ -public class ClassTwo { - - public ClassTwo(int i) { - // single comment - int j = i++; - myMethod(); - } - - private String myMethod() { - /* - comment - on - many - lines - */ - int toto = 34; // comment at end of line - return "hello"; - } -} diff --git a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassTwo.xoo.measures b/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassTwo.xoo.measures deleted file mode 100644 index 7da3c1fffef..00000000000 --- a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/ClassTwo.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:12 diff --git a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/NoSonarComment.xoo b/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/NoSonarComment.xoo deleted file mode 100644 index 206d72ba6ac..00000000000 --- a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/NoSonarComment.xoo +++ /dev/null @@ -1,13 +0,0 @@ -package org.sonar.tests; - -import java.lang.String;//NOSONAR - -public class NoSonarComment { - - public NoSonarComment(int i) {//NOSONAR - i=3;// NOSONAR - i=4; // ERROR magic number, parameter assignment - String s="foo"; - if (s=="bar") return; // ERROR: compare Strings with equals() - } -} diff --git a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/NoSonarComment.xoo.measures b/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/NoSonarComment.xoo.measures deleted file mode 100644 index 69a10eb19d4..00000000000 --- a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/NoSonarComment.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:10 diff --git a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/packageToExclude/ClassThree.xoo b/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/packageToExclude/ClassThree.xoo deleted file mode 100644 index e91881c4ba5..00000000000 --- a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/packageToExclude/ClassThree.xoo +++ /dev/null @@ -1,26 +0,0 @@ -package org.sonar.tests.packageToExclude; - -import java.lang.String; - -/** - * THE JAVADOC HEADER - */ -public class ClassThree { - - public ClassThree(int i) { - // single comment - int j = i++; - myMethod(); - } - - private String myMethod() { - /* - comment - on - many - lines - */ - int toto = 34; // comment at end of line - return "hello"; - } -} diff --git a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/packageToExclude/ClassThree.xoo.measures b/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/packageToExclude/ClassThree.xoo.measures deleted file mode 100644 index 7da3c1fffef..00000000000 --- a/tests/projects/exclusions/exclusions/src/main/xoo/org/sonar/tests/packageToExclude/ClassThree.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:12 diff --git a/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassOneTest.xoo b/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassOneTest.xoo deleted file mode 100644 index 8c0967e496f..00000000000 --- a/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassOneTest.xoo +++ /dev/null @@ -1,11 +0,0 @@ -package org.sonar.tests; - -import org.junit.Test; - -public class ClassOneTest { - - @Test - public void nothing() { - - } -} diff --git a/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassOneTest.xoo.measures b/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassOneTest.xoo.measures deleted file mode 100644 index 80cbee5aba9..00000000000 --- a/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassOneTest.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -tests:1 diff --git a/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassToExcludeTest.xoo b/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassToExcludeTest.xoo deleted file mode 100644 index 712e2ec4a4a..00000000000 --- a/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassToExcludeTest.xoo +++ /dev/null @@ -1,19 +0,0 @@ -package org.sonar.tests; - -import org.junit.Test; -import static org.junit.Assert.fail; - -public class ClassToExcludeTest { - - @Test - public void increaseCodeCoverage() { - new ClassToExclude().duplicatedMethod(222); - } - - @Test - public void shouldFail() { - if (true) { - fail(); - } - } -} diff --git a/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassToExcludeTest.xoo.measures b/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassToExcludeTest.xoo.measures deleted file mode 100644 index 7424f2634f5..00000000000 --- a/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassToExcludeTest.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -tests:2 diff --git a/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassTwoTest.xoo b/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassTwoTest.xoo deleted file mode 100644 index 1239ee5276c..00000000000 --- a/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassTwoTest.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package org.sonar.tests; - -import org.junit.Test; - - -public class ClassTwoTest { - - @Test - public void increaseCodeCoverage() { - new ClassTwo(67); - } -} diff --git a/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassTwoTest.xoo.measures b/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassTwoTest.xoo.measures deleted file mode 100644 index 80cbee5aba9..00000000000 --- a/tests/projects/exclusions/exclusions/src/test/xoo/org/sonar/tests/ClassTwoTest.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -tests:1 diff --git a/tests/projects/exclusions/xoo-multi-modules/module_a/module_a1/sonar-project.properties b/tests/projects/exclusions/xoo-multi-modules/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/tests/projects/exclusions/xoo-multi-modules/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/tests/projects/exclusions/xoo-multi-modules/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 7e61727a85a..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,17 +0,0 @@ -// EXTERMINATE-ALL-ISSUES -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -} diff --git a/tests/projects/exclusions/xoo-multi-modules/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/tests/projects/exclusions/xoo-multi-modules/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/tests/projects/exclusions/xoo-multi-modules/module_a/module_a2/sonar-project.properties b/tests/projects/exclusions/xoo-multi-modules/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/tests/projects/exclusions/xoo-multi-modules/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/tests/projects/exclusions/xoo-multi-modules/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 4cf0ec94f03..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,14 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - // MUTE-SONAR - public void hello() { - System.out.println("hello" + " xoo"); - } - // UNMUTE-SONAR -} diff --git a/tests/projects/exclusions/xoo-multi-modules/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/tests/projects/exclusions/xoo-multi-modules/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/tests/projects/exclusions/xoo-multi-modules/module_a/sonar-project.properties b/tests/projects/exclusions/xoo-multi-modules/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/tests/projects/exclusions/xoo-multi-modules/module_b/module_b1/sonar-project.properties b/tests/projects/exclusions/xoo-multi-modules/module_b/module_b1/sonar-project.properties deleted file mode 100644 index ca8404b7bd4..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/module_b/module_b1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B1 diff --git a/tests/projects/exclusions/xoo-multi-modules/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/tests/projects/exclusions/xoo-multi-modules/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/exclusions/xoo-multi-modules/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/tests/projects/exclusions/xoo-multi-modules/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/exclusions/xoo-multi-modules/module_b/module_b2/sonar-project.properties b/tests/projects/exclusions/xoo-multi-modules/module_b/module_b2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/module_b/module_b2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/tests/projects/exclusions/xoo-multi-modules/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/tests/projects/exclusions/xoo-multi-modules/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/exclusions/xoo-multi-modules/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/tests/projects/exclusions/xoo-multi-modules/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/exclusions/xoo-multi-modules/module_b/sonar-project.properties b/tests/projects/exclusions/xoo-multi-modules/module_b/sonar-project.properties deleted file mode 100644 index 21d69f769d3..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/module_b/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_b -sonar.projectName=Module B - -sonar.modules=module_b1,module_b2 diff --git a/tests/projects/exclusions/xoo-multi-modules/sonar-project.properties b/tests/projects/exclusions/xoo-multi-modules/sonar-project.properties deleted file mode 100644 index 9ba45876d2b..00000000000 --- a/tests/projects/exclusions/xoo-multi-modules/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-exclusions -sonar.projectName=Sonar :: Integration Tests :: Multi-modules With Exclusions -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/tests/projects/foo-sample/sonar-project.properties b/tests/projects/foo-sample/sonar-project.properties deleted file mode 100644 index a51aa21ebfa..00000000000 --- a/tests/projects/foo-sample/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/foo -sonar.language=foo diff --git a/tests/projects/foo-sample/src/main/foo/sample/Sample.foo b/tests/projects/foo-sample/src/main/foo/sample/Sample.foo deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/foo-sample/src/main/foo/sample/Sample.foo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/foo-sample/src/main/foo/sample/Sample2.foo b/tests/projects/foo-sample/src/main/foo/sample/Sample2.foo deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/foo-sample/src/main/foo/sample/Sample2.foo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/highlighting/xoo-sample-with-highlighting-v1/sonar-project.properties b/tests/projects/highlighting/xoo-sample-with-highlighting-v1/sonar-project.properties deleted file mode 100644 index 8ec6e295138..00000000000 --- a/tests/projects/highlighting/xoo-sample-with-highlighting-v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample-with-highlighting -sonar.projectName=Sample With Highlighting -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo b/tests/projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/tests/projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo.highlighting b/tests/projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo.highlighting deleted file mode 100644 index e68b1926c4c..00000000000 --- a/tests/projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo.highlighting +++ /dev/null @@ -1,15 +0,0 @@ -#package -0:7:k -#public -17:23:k -#class -24:29:k -#public -42:48:k -#private -86:93:k -#return -#Here CSS class is wrong (it should be "k") and will be fixed during next analysis -116:122:s -#"hello" -123:130:s diff --git a/tests/projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index f95d11f14d0..00000000000 --- a/tests/projects/highlighting/xoo-sample-with-highlighting-v1/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:13 - diff --git a/tests/projects/highlighting/xoo-sample-with-highlighting-v2/sonar-project.properties b/tests/projects/highlighting/xoo-sample-with-highlighting-v2/sonar-project.properties deleted file mode 100644 index 8ec6e295138..00000000000 --- a/tests/projects/highlighting/xoo-sample-with-highlighting-v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample-with-highlighting -sonar.projectName=Sample With Highlighting -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo b/tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.highlighting b/tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.highlighting deleted file mode 100644 index cf76f1ca82b..00000000000 --- a/tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.highlighting +++ /dev/null @@ -1,14 +0,0 @@ -#package -0:7:k -#public -17:23:k -#class -24:29:k -#public -42:48:k -#private -86:93:k -#return -116:122:k -#"hello" -123:130:s diff --git a/tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index f95d11f14d0..00000000000 --- a/tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:13 - diff --git a/tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.symbol b/tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.symbol deleted file mode 100644 index df5ff210261..00000000000 --- a/tests/projects/highlighting/xoo-sample-with-highlighting-v2/src/main/xoo/sample/Sample.xoo.symbol +++ /dev/null @@ -1,4 +0,0 @@ -#j -71:72 -#i -60:61,75:76 diff --git a/tests/projects/issue/AutoAssignTest/sonar-project.properties b/tests/projects/issue/AutoAssignTest/sonar-project.properties deleted file mode 100644 index 3a14309e6c2..00000000000 --- a/tests/projects/issue/AutoAssignTest/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=AutoAssignTest -sonar.projectName=AutoAssignTest -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src diff --git a/tests/projects/issue/AutoAssignTest/src/sample.xoo b/tests/projects/issue/AutoAssignTest/src/sample.xoo deleted file mode 100644 index 98a1bd444c1..00000000000 --- a/tests/projects/issue/AutoAssignTest/src/sample.xoo +++ /dev/null @@ -1,9 +0,0 @@ -line -line -line -line -line -line -line -line -line diff --git a/tests/projects/issue/AutoAssignTest/src/sample.xoo.measures b/tests/projects/issue/AutoAssignTest/src/sample.xoo.measures deleted file mode 100644 index 56acf8077d6..00000000000 --- a/tests/projects/issue/AutoAssignTest/src/sample.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:9 diff --git a/tests/projects/issue/AutoAssignTest/src/sample.xoo.scm b/tests/projects/issue/AutoAssignTest/src/sample.xoo.scm deleted file mode 100644 index 6e0823ab5e5..00000000000 --- a/tests/projects/issue/AutoAssignTest/src/sample.xoo.scm +++ /dev/null @@ -1,10 +0,0 @@ -1,user1,2011-12-04 -2,user2,2011-12-04 -3,user3Name,2011-12-04 -4,user4Name,2011-12-04 -5,user5@email.com,2015-12-04 -6,user6@email.com,2015-12-04 -7,user7ScmAccount,2015-12-04 -8,user8ScmAccount,2015-12-04 -9,user8ScmAccount,2015-12-04 -10,ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss,2015-12-04 diff --git a/tests/projects/issue/common-rules/sonar-project.properties b/tests/projects/issue/common-rules/sonar-project.properties deleted file mode 100644 index 6cf4f389266..00000000000 --- a/tests/projects/issue/common-rules/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=common-rules-project -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src -sonar.tests=test diff --git a/tests/projects/issue/common-rules/src/Sample.xoo b/tests/projects/issue/common-rules/src/Sample.xoo deleted file mode 100644 index 33b8509208c..00000000000 --- a/tests/projects/issue/common-rules/src/Sample.xoo +++ /dev/null @@ -1,8 +0,0 @@ -there are duplications -in this file - -there are duplications -in this file - -there are duplications -in this file diff --git a/tests/projects/issue/common-rules/src/Sample.xoo.measures b/tests/projects/issue/common-rules/src/Sample.xoo.measures deleted file mode 100644 index 16cc5ac1540..00000000000 --- a/tests/projects/issue/common-rules/src/Sample.xoo.measures +++ /dev/null @@ -1,10 +0,0 @@ -lines:120 -ncloc:100 -complexity:7 -comment_lines:3 -public_api:5 -public_undocumented_api:2 -lines_to_cover:80 -uncovered_lines:70 -conditions_to_cover:10 -uncovered_conditions:9 diff --git a/tests/projects/issue/common-rules/test/SampleTest.xoo b/tests/projects/issue/common-rules/test/SampleTest.xoo deleted file mode 100644 index 6ec4b534517..00000000000 --- a/tests/projects/issue/common-rules/test/SampleTest.xoo +++ /dev/null @@ -1 +0,0 @@ -this is the test diff --git a/tests/projects/issue/common-rules/test/SampleTest.xoo.measures b/tests/projects/issue/common-rules/test/SampleTest.xoo.measures deleted file mode 100644 index ea3e2796581..00000000000 --- a/tests/projects/issue/common-rules/test/SampleTest.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -skipped_tests:5 -test_errors:2 -test_failures:1 -tests:10 diff --git a/tests/projects/issue/creationDatePluginChanged/sonar-project.properties b/tests/projects/issue/creationDatePluginChanged/sonar-project.properties deleted file mode 100644 index 3a25a96024f..00000000000 --- a/tests/projects/issue/creationDatePluginChanged/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=creation-date-sample -sonar.projectName=Creation date sample -sonar.projectVersion=SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/issue/creationDatePluginChanged/src/main/xoo/sample/Sample.xoo b/tests/projects/issue/creationDatePluginChanged/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index ed059c9883f..00000000000 --- a/tests/projects/issue/creationDatePluginChanged/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,3 +0,0 @@ -BACKV1 // Raise issue when back plugin V1 is installed -BACKV2 // Raise issue when back plugin V2 is installed -BACKCUSTOM // Raise issue when custom plugin is installed, but only when back plugin is updated to V2 \ No newline at end of file diff --git a/tests/projects/issue/creationDatePluginChanged/src/main/xoo/sample/Sample.xoo.scm b/tests/projects/issue/creationDatePluginChanged/src/main/xoo/sample/Sample.xoo.scm deleted file mode 100644 index 74478d22334..00000000000 --- a/tests/projects/issue/creationDatePluginChanged/src/main/xoo/sample/Sample.xoo.scm +++ /dev/null @@ -1,3 +0,0 @@ -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 diff --git a/tests/projects/issue/creationDateSampleChanged/sonar-project.properties b/tests/projects/issue/creationDateSampleChanged/sonar-project.properties deleted file mode 100644 index 3a25a96024f..00000000000 --- a/tests/projects/issue/creationDateSampleChanged/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=creation-date-sample -sonar.projectName=Creation date sample -sonar.projectVersion=SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndModified.xoo b/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndModified.xoo deleted file mode 100644 index 2e3e81d8300..00000000000 --- a/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndModified.xoo +++ /dev/null @@ -1,7 +0,0 @@ -/**/package sample; -/**/ -/**/public class ForeverAndModified { -/**/ -/**/ private String myMethod() { -/**/ } -/**/} diff --git a/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndModified.xoo.scm b/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndModified.xoo.scm deleted file mode 100644 index f8c205d4d68..00000000000 --- a/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndModified.xoo.scm +++ /dev/null @@ -1,8 +0,0 @@ -2,jhenry,2004-01-01T00:00:00+0000 -2,jhenry,2004-01-01T00:00:00+0000 -2,jhenry,2004-01-01T00:00:00+0000 -2,jhenry,2004-01-01T00:00:00+0000 -2,jhenry,2004-01-01T00:00:00+0000 -2,jhenry,2004-01-01T00:00:00+0000 -2,jhenry,2004-01-01T00:00:00+0000 -2,jhenry,2004-01-01T00:00:00+0000 diff --git a/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndUnmodified.xoo b/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndUnmodified.xoo deleted file mode 100644 index 3d80cf8da75..00000000000 --- a/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndUnmodified.xoo +++ /dev/null @@ -1,7 +0,0 @@ -package sample; - -public class ForeverAndUnmodified { - - private String myMethod() { - } -} diff --git a/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndUnmodified.xoo.scm b/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndUnmodified.xoo.scm deleted file mode 100644 index 3272e3e6ed8..00000000000 --- a/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/ForeverAndUnmodified.xoo.scm +++ /dev/null @@ -1,8 +0,0 @@ -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 diff --git a/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/OnlyInChanged.xoo b/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/OnlyInChanged.xoo deleted file mode 100644 index 0a96b5c9ddb..00000000000 --- a/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/OnlyInChanged.xoo +++ /dev/null @@ -1,7 +0,0 @@ -/**/package sample; -/**/ -/**/public class OnlyInChanged { -/**/ -/**/ private String anotherMethod() { -/**/ } -/**/} diff --git a/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/OnlyInChanged.xoo.scm b/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/OnlyInChanged.xoo.scm deleted file mode 100644 index 59c11db6b3b..00000000000 --- a/tests/projects/issue/creationDateSampleChanged/src/main/xoo/sample/OnlyInChanged.xoo.scm +++ /dev/null @@ -1,8 +0,0 @@ -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 -1,jhenry,2005-01-01T00:00:00+0000 diff --git a/tests/projects/issue/creationDateSampleInitial/sonar-project.properties b/tests/projects/issue/creationDateSampleInitial/sonar-project.properties deleted file mode 100644 index 3a25a96024f..00000000000 --- a/tests/projects/issue/creationDateSampleInitial/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=creation-date-sample -sonar.projectName=Creation date sample -sonar.projectVersion=SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndModified.xoo b/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndModified.xoo deleted file mode 100644 index 4b6e8b8d818..00000000000 --- a/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndModified.xoo +++ /dev/null @@ -1,7 +0,0 @@ -package sample; - -public class ForeverAndModified { - - private String myMethod() { - } -} diff --git a/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndModified.xoo.scm b/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndModified.xoo.scm deleted file mode 100644 index 654a775e4ef..00000000000 --- a/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndModified.xoo.scm +++ /dev/null @@ -1,8 +0,0 @@ -1,jhenry,2003-01-01T00:00:00+0000 -1,jhenry,2003-01-01T00:00:00+0000 -1,jhenry,2003-01-01T00:00:00+0000 -1,jhenry,2003-01-01T00:00:00+0000 -1,jhenry,2003-01-01T00:00:00+0000 -1,jhenry,2003-01-01T00:00:00+0000 -1,jhenry,2003-01-01T00:00:00+0000 -1,jhenry,2003-01-01T00:00:00+0000 diff --git a/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndUnmodified.xoo b/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndUnmodified.xoo deleted file mode 100644 index 3d80cf8da75..00000000000 --- a/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndUnmodified.xoo +++ /dev/null @@ -1,7 +0,0 @@ -package sample; - -public class ForeverAndUnmodified { - - private String myMethod() { - } -} diff --git a/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndUnmodified.xoo.scm b/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndUnmodified.xoo.scm deleted file mode 100644 index 3272e3e6ed8..00000000000 --- a/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/ForeverAndUnmodified.xoo.scm +++ /dev/null @@ -1,8 +0,0 @@ -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 -1,jhenry,2002-01-01T00:00:00+0000 diff --git a/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/OnlyInInitial.xoo b/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/OnlyInInitial.xoo deleted file mode 100644 index 969fc44abfe..00000000000 --- a/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/OnlyInInitial.xoo +++ /dev/null @@ -1,7 +0,0 @@ -package sample; - -public class IsBuggyThenChangesAndBecomesClean { - - private String myMethod() { - } -} diff --git a/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/OnlyInInitial.xoo.scm b/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/OnlyInInitial.xoo.scm deleted file mode 100644 index 65099dbec9b..00000000000 --- a/tests/projects/issue/creationDateSampleInitial/src/main/xoo/sample/OnlyInInitial.xoo.scm +++ /dev/null @@ -1,8 +0,0 @@ -1,jhenry,2001-01-01T00:00:00+0000 -1,jhenry,2001-01-01T00:00:00+0000 -1,jhenry,2001-01-01T00:00:00+0000 -1,jhenry,2001-01-01T00:00:00+0000 -1,jhenry,2001-01-01T00:00:00+0000 -1,jhenry,2001-01-01T00:00:00+0000 -1,jhenry,2001-01-01T00:00:00+0000 -1,jhenry,2001-01-01T00:00:00+0000 diff --git a/tests/projects/issue/workflow/sonar-project.properties b/tests/projects/issue/workflow/sonar-project.properties deleted file mode 100644 index fbfcc6930d0..00000000000 --- a/tests/projects/issue/workflow/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=workflow -sonar.projectName=Workflow -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src diff --git a/tests/projects/issue/workflow/src/Sample.xoo b/tests/projects/issue/workflow/src/Sample.xoo deleted file mode 100644 index e2ae9e37278..00000000000 --- a/tests/projects/issue/workflow/src/Sample.xoo +++ /dev/null @@ -1,3 +0,0 @@ -this is some -xoo -code diff --git a/tests/projects/issue/workflow/src/Sample.xoo.measures b/tests/projects/issue/workflow/src/Sample.xoo.measures deleted file mode 100644 index 16cc5ac1540..00000000000 --- a/tests/projects/issue/workflow/src/Sample.xoo.measures +++ /dev/null @@ -1,10 +0,0 @@ -lines:120 -ncloc:100 -complexity:7 -comment_lines:3 -public_api:5 -public_undocumented_api:2 -lines_to_cover:80 -uncovered_lines:70 -conditions_to_cover:10 -uncovered_conditions:9 diff --git a/tests/projects/issue/xoo-sample-v2/sonar-project.properties b/tests/projects/issue/xoo-sample-v2/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/tests/projects/issue/xoo-sample-v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/issue/xoo-sample-v2/src/main/xoo/sample/Sample.xoo b/tests/projects/issue/xoo-sample-v2/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index df0c06c819a..00000000000 --- a/tests/projects/issue/xoo-sample-v2/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,15 +0,0 @@ -package sample; - -/** - * Documentation for Sample - */ -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/issue/xoo-sample-v2/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/issue/xoo-sample-v2/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index dfbfb619ed6..00000000000 --- a/tests/projects/issue/xoo-sample-v2/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -ncloc:16 -#Used by dashboard/widgets tests -complexity_in_classes:3 -classes:1 -comment_lines:6 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/issue/xoo-tracking-v1/sonar-project.properties b/tests/projects/issue/xoo-tracking-v1/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/tests/projects/issue/xoo-tracking-v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/issue/xoo-tracking-v1/src/main/xoo/sample/Sample.xoo b/tests/projects/issue/xoo-tracking-v1/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 35add5680b9..00000000000 --- a/tests/projects/issue/xoo-tracking-v1/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; // foobar - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/issue/xoo-tracking-v1/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/issue/xoo-tracking-v1/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index e1f9a919116..00000000000 --- a/tests/projects/issue/xoo-tracking-v1/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:13 diff --git a/tests/projects/issue/xoo-tracking-v2/sonar-project.properties b/tests/projects/issue/xoo-tracking-v2/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/tests/projects/issue/xoo-tracking-v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/issue/xoo-tracking-v2/src/main/xoo/sample/Sample.xoo b/tests/projects/issue/xoo-tracking-v2/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index cf41280618f..00000000000 --- a/tests/projects/issue/xoo-tracking-v2/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; // foobar - } - - private String myMethod() { - return "hello"; // foobar - } - - private String anotherMethod() { - return "hello"; // foobar - } -} diff --git a/tests/projects/issue/xoo-tracking-v2/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/issue/xoo-tracking-v2/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index bbc3f39eb62..00000000000 --- a/tests/projects/issue/xoo-tracking-v2/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:16 diff --git a/tests/projects/issue/xoo-tracking-v3/sonar-project.properties b/tests/projects/issue/xoo-tracking-v3/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/tests/projects/issue/xoo-tracking-v3/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/issue/xoo-tracking-v3/src/main/xoo/sample/Sample2.xoo b/tests/projects/issue/xoo-tracking-v3/src/main/xoo/sample/Sample2.xoo deleted file mode 100644 index 35add5680b9..00000000000 --- a/tests/projects/issue/xoo-tracking-v3/src/main/xoo/sample/Sample2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; // foobar - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/issue/xoo-tracking-v3/src/main/xoo/sample/Sample2.xoo.measures b/tests/projects/issue/xoo-tracking-v3/src/main/xoo/sample/Sample2.xoo.measures deleted file mode 100644 index e1f9a919116..00000000000 --- a/tests/projects/issue/xoo-tracking-v3/src/main/xoo/sample/Sample2.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:13 diff --git a/tests/projects/issue/xoo-with-scm/sonar-project.properties b/tests/projects/issue/xoo-with-scm/sonar-project.properties deleted file mode 100644 index 90da9733771..00000000000 --- a/tests/projects/issue/xoo-with-scm/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo diff --git a/tests/projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo b/tests/projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/tests/projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 592bb930674..00000000000 --- a/tests/projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -lines:13 -ncloc:13 diff --git a/tests/projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo.scm b/tests/projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo.scm deleted file mode 100644 index f77a3b3930f..00000000000 --- a/tests/projects/issue/xoo-with-scm/src/main/xoo/sample/Sample.xoo.scm +++ /dev/null @@ -1,13 +0,0 @@ -1,fabrice,2011-12-04 -1,fabrice,2011-12-04 -2,simon,2015-12-04 -2,simon,2015-12-04 -2,simon,2015-12-04 -3,seb,2015-01-01 -4,julien,2015-12-01 -4,julien,2015-12-01 -4,julien,2015-12-01 -4,julien,2015-12-01 -4,julien,2015-12-01 -4,julien,2015-12-01 -4,julien,2015-12-01 diff --git a/tests/projects/measure/LiveMeasuresTest/sonar-project.properties b/tests/projects/measure/LiveMeasuresTest/sonar-project.properties deleted file mode 100644 index dbe1d71850c..00000000000 --- a/tests/projects/measure/LiveMeasuresTest/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=LiveMeasuresTestExample -sonar.projectName=LiveMeasuresTestExample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src -sonar.language=xoo diff --git a/tests/projects/measure/LiveMeasuresTest/src/file_with_one_line.xoo b/tests/projects/measure/LiveMeasuresTest/src/file_with_one_line.xoo deleted file mode 100644 index 89b24ecec50..00000000000 --- a/tests/projects/measure/LiveMeasuresTest/src/file_with_one_line.xoo +++ /dev/null @@ -1 +0,0 @@ -line 1 diff --git a/tests/projects/measure/LiveMeasuresTest/src/file_with_three_lines.xoo b/tests/projects/measure/LiveMeasuresTest/src/file_with_three_lines.xoo deleted file mode 100644 index a92d664bc20..00000000000 --- a/tests/projects/measure/LiveMeasuresTest/src/file_with_three_lines.xoo +++ /dev/null @@ -1,3 +0,0 @@ -line 1 -line 2 -line 3 diff --git a/tests/projects/measure/xoo-history-v1/sonar-project.properties b/tests/projects/measure/xoo-history-v1/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/tests/projects/measure/xoo-history-v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/measure/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo b/tests/projects/measure/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/tests/projects/measure/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/measure/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures b/tests/projects/measure/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/tests/projects/measure/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/tests/projects/measure/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo b/tests/projects/measure/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/tests/projects/measure/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/measure/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures b/tests/projects/measure/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/tests/projects/measure/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/tests/projects/measure/xoo-history-v2/sonar-project.properties b/tests/projects/measure/xoo-history-v2/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/tests/projects/measure/xoo-history-v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo b/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo deleted file mode 100644 index b0fd1087030..00000000000 --- a/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassAdded { - - public ClassAdded(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures b/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures deleted file mode 100644 index 66ba834e1ef..00000000000 --- a/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures +++ /dev/null @@ -1,3 +0,0 @@ -ncloc:12 -classes:1 - diff --git a/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo b/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo deleted file mode 100644 index 393111bbab0..00000000000 --- a/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - public String addedMethod() { - return "This method was added in v2"; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures b/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures deleted file mode 100644 index 71d60758637..00000000000 --- a/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures +++ /dev/null @@ -1,3 +0,0 @@ -ncloc:16 -classes:1 - diff --git a/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo b/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures b/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/tests/projects/measure/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/tests/projects/measure/xoo-new-debt-ratio-v1/sonar-project.properties b/tests/projects/measure/xoo-new-debt-ratio-v1/sonar-project.properties deleted file mode 100644 index 4ea4c91bacb..00000000000 --- a/tests/projects/measure/xoo-new-debt-ratio-v1/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.scm.provider=xoo diff --git a/tests/projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo b/tests/projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 467e82d8f2c..00000000000 --- a/tests/projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,13 +0,0 @@ -package sample; - -// class comment -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String method1() { - return "hello"; - } -} diff --git a/tests/projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 874fe7bfea5..00000000000 --- a/tests/projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:9 -comment_lines:5 -ncloc_data:1=1;2=0;3=0;4=1;5=0;6=1;7=1;8=1;9=0;10=1;11=1;12=1;13=1;14=0 -classes:1 diff --git a/tests/projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo.scm b/tests/projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo.scm deleted file mode 100644 index c838f29021f..00000000000 --- a/tests/projects/measure/xoo-new-debt-ratio-v1/src/main/xoo/sample/Sample.xoo.scm +++ /dev/null @@ -1,14 +0,0 @@ -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 -1,user1,2016-08-01 diff --git a/tests/projects/measure/xoo-new-debt-ratio-v2/sonar-project.properties b/tests/projects/measure/xoo-new-debt-ratio-v2/sonar-project.properties deleted file mode 100644 index 4ea4c91bacb..00000000000 --- a/tests/projects/measure/xoo-new-debt-ratio-v2/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.scm.provider=xoo diff --git a/tests/projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo b/tests/projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 882793391e0..00000000000 --- a/tests/projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,17 +0,0 @@ -package sample; - -// class comment -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String method1() { - return "hello"; - } - - private String method2() { - return "hello2"; - } -} diff --git a/tests/projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 98f63c1fe47..00000000000 --- a/tests/projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -comment_lines:6 -ncloc_data:1=1;2=0;3=0;4=1;5=0;6=1;7=1;8=1;9=0;10=1;11=1;12=1;13=0;14=1;15=1;16=1;17=1;18=0 -classes:1 diff --git a/tests/projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo.scm b/tests/projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo.scm deleted file mode 100644 index bc69cd71308..00000000000 --- a/tests/projects/measure/xoo-new-debt-ratio-v2/src/main/xoo/sample/Sample.xoo.scm +++ /dev/null @@ -1,18 +0,0 @@ -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -2,user2,2016-09-17 -2,user2,2016-09-17 -2,user2,2016-09-17 -2,user2,2016-09-17 -1,user1,2016-09-01 -1,user1,2016-09-01 diff --git a/tests/projects/measure/xoo-new-debt-ratio-v3/sonar-project.properties b/tests/projects/measure/xoo-new-debt-ratio-v3/sonar-project.properties deleted file mode 100644 index 4ea4c91bacb..00000000000 --- a/tests/projects/measure/xoo-new-debt-ratio-v3/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.scm.provider=xoo diff --git a/tests/projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo b/tests/projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 0b9e023d079..00000000000 --- a/tests/projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,22 +0,0 @@ -package sample; - -// class comment -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String method1() { - return "hello"; - } - - private String method2() { - return "hello2"; - } - - private String method3() { - String e = "hello3"; - return e; - } -} diff --git a/tests/projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index d467f571f3f..00000000000 --- a/tests/projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:16 -comment_lines:7 -ncloc_data:1=1;2=0;3=0;4=1;5=0;6=1;7=1;8=1;9=0;10=1;11=1;12=1;13=0;14=1;15=1;16=1;17=0;18=1;19=1;20=1;21=1;22=1;23=0 -classes:1 diff --git a/tests/projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo.scm b/tests/projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo.scm deleted file mode 100644 index 09a256f6527..00000000000 --- a/tests/projects/measure/xoo-new-debt-ratio-v3/src/main/xoo/sample/Sample.xoo.scm +++ /dev/null @@ -1,23 +0,0 @@ -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -1,user1,2016-09-01 -2,user2,2016-09-17 -2,user2,2016-09-17 -2,user2,2016-09-17 -2,user2,2016-09-17 -3,user2,2016-09-20 -3,user2,2016-09-20 -3,user2,2016-09-20 -3,user2,2016-09-20 -3,user2,2016-09-20 -1,user1,2016-09-01 -1,user1,2016-09-01 diff --git a/tests/projects/measureHistory/xoo-multi-files-sample/sonar-project.properties b/tests/projects/measureHistory/xoo-multi-files-sample/sonar-project.properties deleted file mode 100644 index 59af7dfeaca..00000000000 --- a/tests/projects/measureHistory/xoo-multi-files-sample/sonar-project.properties +++ /dev/null @@ -1,9 +0,0 @@ -# Root project information -sonar.projectKey=multi-files-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-files Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo diff --git a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File1.xoo b/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -} \ No newline at end of file diff --git a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File1.xoo.measures b/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File1.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File2.xoo b/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File2.xoo deleted file mode 100644 index 796d90cfad5..00000000000 --- a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File2.xoo +++ /dev/null @@ -1,20 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - - public HelloA2(int i) { - int j = i++; - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File2.xoo.measures b/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File2.xoo.measures deleted file mode 100644 index 63df5add6d4..00000000000 --- a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:15 -classes:1 diff --git a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File3.xoo b/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File3.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File3.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File3.xoo.measures b/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File3.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File3.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File4.xoo b/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File4.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File4.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File4.xoo.measures b/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File4.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/measureHistory/xoo-multi-files-sample/src/main/xoo/sample/File4.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/performance/huge-file/pom.xml b/tests/projects/performance/huge-file/pom.xml deleted file mode 100644 index d5a69b06339..00000000000 --- a/tests/projects/performance/huge-file/pom.xml +++ /dev/null @@ -1,9 +0,0 @@ - - 4.0.0 - com.sonarsource.it.samples - huge-file - 1.0-SNAPSHOT - Sonar :: Integration Tests :: Huge File - - \ No newline at end of file diff --git a/tests/projects/performance/huge-file/src/main/java/huge/HugeFile.java b/tests/projects/performance/huge-file/src/main/java/huge/HugeFile.java deleted file mode 100644 index 5d6c1643294..00000000000 --- a/tests/projects/performance/huge-file/src/main/java/huge/HugeFile.java +++ /dev/null @@ -1,50100 +0,0 @@ -package huge; - -/** - ->50'000 LINES !!!!!!!!!!! - - -*/ -public class HugeFile { - public static String s=null; - - public String toString() { - - int i=300; - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - return "feeo"; - } - -public static String fgoo() { - - int i=12; - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - return "fadasdqwde"; -} - - public String foo() { - int i=9089; - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - - /* loop */ - while(i<5550) { - i++;// some comment...…......... - } - - return "hello"; - } - - public void Yeeeaaah() { - StringBuilder foo= new StringBuilder("fooo"); - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - /* - * -------------------------------------------------------------------------------- - * - * - * - * - * COMMENT - * - * - * DID I ALREADY SAY "YEAAH" ? - * - * - * - * - * - * - * -------------------------------------------------------------------------------- - */ - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); - if (foo.length()<10) { - foo.append("yeeaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh again"); - } - } -} \ No newline at end of file diff --git a/tests/projects/performance/xoo-sample/sonar-project.properties b/tests/projects/performance/xoo-sample/sonar-project.properties deleted file mode 100644 index 318ff23471b..00000000000 --- a/tests/projects/performance/xoo-sample/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.tests=src/test/xoo -sonar.language=xoo diff --git a/tests/projects/performance/xoo-sample/src/main/xoo/sample/Sample.xoo b/tests/projects/performance/xoo-sample/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/tests/projects/performance/xoo-sample/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/performance/xoo-sample/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/performance/xoo-sample/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 415567363b0..00000000000 --- a/tests/projects/performance/xoo-sample/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,6 +0,0 @@ -lines:13 -ncloc:13 -#Used by dashboard/widgets tests -complexity_in_classes:3 -classes:1 -comment_lines:0 diff --git a/tests/projects/performance/xoo-sample/src/test/xoo/sample/SampleTest.xoo b/tests/projects/performance/xoo-sample/src/test/xoo/sample/SampleTest.xoo deleted file mode 100644 index 1392fc64ebf..00000000000 --- a/tests/projects/performance/xoo-sample/src/test/xoo/sample/SampleTest.xoo +++ /dev/null @@ -1,21 +0,0 @@ -package sample; - -import org.hamcrest.CoreMatchers; -import org.junit.Test; - -import static org.junit.Assert.assertThat; - -public class SampleTest { - - @Test - public void should_return_i() { - Sample sample = new Sample(1); - assertThat(sample.getI(), CoreMatchers.is(1)); - } - - @Test - public void should_return_to_string() { - assertThat(new Sample(1).toString(), CoreMatchers.is("1")); - } - -} diff --git a/tests/projects/performance/xoo-sample/src/test/xoo/sample/SampleTest.xoo.measures b/tests/projects/performance/xoo-sample/src/test/xoo/sample/SampleTest.xoo.measures deleted file mode 100644 index b924b6953f3..00000000000 --- a/tests/projects/performance/xoo-sample/src/test/xoo/sample/SampleTest.xoo.measures +++ /dev/null @@ -1,7 +0,0 @@ -lines:22 -ncloc:22 -tests:2 -test_execution_time:1 -skipped_tests:0 -test_errors:0 -test_failures:0 \ No newline at end of file diff --git a/tests/projects/plugins/project/.gitignore b/tests/projects/plugins/project/.gitignore deleted file mode 100644 index 0d70cc697f5..00000000000 --- a/tests/projects/plugins/project/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!target diff --git a/tests/projects/plugins/project/build.sh b/tests/projects/plugins/project/build.sh deleted file mode 100644 index 4d8d7b14856..00000000000 --- a/tests/projects/plugins/project/build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -mvn package diff --git a/tests/projects/plugins/project/ext/cobol/copybooks/Attr.cpy b/tests/projects/plugins/project/ext/cobol/copybooks/Attr.cpy deleted file mode 100755 index bc84af0bc87..00000000000 --- a/tests/projects/plugins/project/ext/cobol/copybooks/Attr.cpy +++ /dev/null @@ -1,40 +0,0 @@ - 01 ATTRIBUTE-DEFINITIONS. - * - 05 ATTR-UNPROT PIC X VALUE ' '. - 05 ATTR-UNPROT-MDT PIC X VALUE X'C1'. - 05 ATTR-UNPROT-BRT PIC X VALUE X'C8'. - 05 ATTR-UNPROT-BRT-MDT PIC X VALUE X'C9'. - 05 ATTR-UNPROT-DARK PIC X VALUE X'4C'. - 05 ATTR-UNPROT-DARK-MDT PIC X VALUE X'4D'. - 05 ATTR-UNPROT-NUM PIC X VALUE X'50'. - 05 ATTR-UNPROT-NUM-MDT PIC X VALUE X'D1'. - 05 ATTR-UNPROT-NUM-BRT PIC X VALUE X'D8'. - 05 ATTR-UNPROT-NUM-BRT-MDT PIC X VALUE X'D9'. - 05 ATTR-UNPROT-NUM-DARK PIC X VALUE X'5C'. - 05 ATTR-UNPROT-NUM-DARK-MDT PIC X VALUE X'5D'. - 05 ATTR-PROT PIC X VALUE X'60'. - 05 ATTR-PROT-MDT PIC X VALUE X'61'. - 05 ATTR-PROT-BRT PIC X VALUE X'E8'. - 05 ATTR-PROT-BRT-MDT PIC X VALUE X'E9'. - 05 ATTR-PROT-DARK PIC X VALUE '%'. - 05 ATTR-PROT-DARK-MDT PIC X VALUE X'6D'. - 05 ATTR-PROT-SKIP PIC X VALUE X'F0'. - 05 ATTR-PROT-SKIP-MDT PIC X VALUE X'F1'. - 05 ATTR-PROT-SKIP-BRT PIC X VALUE X'F8'. - 05 ATTR-PROT-SKIP-BRT-MDT PIC X VALUE X'F9'. - 05 ATTR-PROT-SKIP-DARK PIC X VALUE X'7C'. - 05 ATTR-PROT-SKIP-DARK-MDT PIC X VALUE X'7D'. - * - 05 ATTR-NO-HIGHLIGHT PIC X VALUE X'00'. - 05 ATTR-BLINK PIC X VALUE '1'. - 05 ATTR-REVERSE PIC X VALUE '2'. - 05 ATTR-UNDERSCORE PIC X VALUE '4'. - * - 05 ATTR-DEFAULT-COLOR PIC X VALUE X'00'. - 05 ATTR-BLUE PIC X VALUE '1'. - 05 ATTR-RED PIC X VALUE '2'. - 05 ATTR-PINK PIC X VALUE '3'. - 05 ATTR-GREEN PIC X VALUE '4'. - 05 ATTR-TURQUOISE PIC X VALUE '5'. - 05 ATTR-YELLOW PIC X VALUE '6'. - 05 ATTR-NEUTRAL PIC X VALUE '7'. diff --git a/tests/projects/plugins/project/ext/cobol/copybooks/Custmas.cpy b/tests/projects/plugins/project/ext/cobol/copybooks/Custmas.cpy deleted file mode 100755 index e0b41ae39d5..00000000000 --- a/tests/projects/plugins/project/ext/cobol/copybooks/Custmas.cpy +++ /dev/null @@ -1,9 +0,0 @@ - 01 CUSTOMER-MASTER-RECORD. - * - 05 CM-CUSTOMER-NUMBER PIC X(6). - 05 CM-FIRST-NAME PIC X(20). - 05 CM-LAST-NAME PIC X(30). - 05 CM-ADDRESS PIC X(30). - 05 CM-CITY PIC X(20). - 05 CM-STATE PIC X(2). - 05 CM-ZIP-CODE PIC X(10). diff --git a/tests/projects/plugins/project/ext/cobol/copybooks/Errparm.cpy b/tests/projects/plugins/project/ext/cobol/copybooks/Errparm.cpy deleted file mode 100755 index 3324a1b78a6..00000000000 --- a/tests/projects/plugins/project/ext/cobol/copybooks/Errparm.cpy +++ /dev/null @@ -1,6 +0,0 @@ - 01 ERROR-PARAMETERS. - * - 05 ERR-RESP PIC S9(8) COMP. - 05 ERR-RESP2 PIC S9(8) COMP. - 05 ERR-TRNID PIC X(4) VALUE IS 99. - 05 ERR-RSRCE PIC X(8). diff --git a/tests/projects/plugins/project/ext/cobol/copybooks/MNTSET2.CPY b/tests/projects/plugins/project/ext/cobol/copybooks/MNTSET2.CPY deleted file mode 100755 index b9e18823838..00000000000 --- a/tests/projects/plugins/project/ext/cobol/copybooks/MNTSET2.CPY +++ /dev/null @@ -1,181 +0,0 @@ - * Micro Focus BMS Screen Painter (ver MFBM 2.0.11) - * MapSet Name MNTSET2 - * Date Created 04/16/2001 - * Time Created 14:38:47 - - * Input Data For Map MNTMAP1 - 01 MNTMAP1I. - 03 FILLER PIC X(12). - 03 TRANID1L PIC S9(4) COMP. - 03 TRANID1F PIC X. - 03 FILLER REDEFINES TRANID1F. - 05 TRANID1A PIC X. - 03 FILLER PIC X(2). - 03 TRANID1I PIC X(4). - 03 CUSTNO1L PIC S9(4) COMP. - 03 CUSTNO1F PIC X. - 03 FILLER REDEFINES CUSTNO1F. - 05 CUSTNO1A PIC X. - 03 FILLER PIC X(2). - 03 CUSTNO1I PIC X(6). - 03 ACTIONL PIC S9(4) COMP. - 03 ACTIONF PIC X. - 03 FILLER REDEFINES ACTIONF. - 05 ACTIONA PIC X. - 03 FILLER PIC X(2). - 03 ACTIONI PIC X(1). - 03 MSG1L PIC S9(4) COMP. - 03 MSG1F PIC X. - 03 FILLER REDEFINES MSG1F. - 05 MSG1A PIC X. - 03 FILLER PIC X(2). - 03 MSG1I PIC X(79). - 03 DUMMY1L PIC S9(4) COMP. - 03 DUMMY1F PIC X. - 03 FILLER REDEFINES DUMMY1F. - 05 DUMMY1A PIC X. - 03 FILLER PIC X(2). - 03 DUMMY1I PIC X(1). - - * Output Data For Map MNTMAP1 - 01 MNTMAP1O REDEFINES MNTMAP1I. - 03 FILLER PIC X(12). - 03 FILLER PIC X(3). - 03 TRANID1C PIC X. - 03 TRANID1H PIC X. - 03 TRANID1O PIC X(4). - 03 FILLER PIC X(3). - 03 CUSTNO1C PIC X. - 03 CUSTNO1H PIC X. - 03 CUSTNO1O PIC X(6). - 03 FILLER PIC X(3). - 03 ACTIONC PIC X. - 03 ACTIONH PIC X. - 03 ACTIONO PIC X(1). - 03 FILLER PIC X(3). - 03 MSG1C PIC X. - 03 MSG1H PIC X. - 03 MSG1O PIC X(79). - 03 FILLER PIC X(3). - 03 DUMMY1C PIC X. - 03 DUMMY1H PIC X. - 03 DUMMY1O PIC X(1). - - * Input Data For Map MNTMAP2 - 01 MNTMAP2I. - 03 FILLER PIC X(12). - 03 TRANID2L PIC S9(4) COMP. - 03 TRANID2F PIC X. - 03 FILLER REDEFINES TRANID2F. - 05 TRANID2A PIC X. - 03 FILLER PIC X(2). - 03 TRANID2I PIC X(4). - 03 INSTR2L PIC S9(4) COMP. - 03 INSTR2F PIC X. - 03 FILLER REDEFINES INSTR2F. - 05 INSTR2A PIC X. - 03 FILLER PIC X(2). - 03 INSTR2I PIC X(79). - 03 CUSTNO2L PIC S9(4) COMP. - 03 CUSTNO2F PIC X. - 03 FILLER REDEFINES CUSTNO2F. - 05 CUSTNO2A PIC X. - 03 FILLER PIC X(2). - 03 CUSTNO2I PIC X(6). - 03 LNAMEL PIC S9(4) COMP. - 03 LNAMEF PIC X. - 03 FILLER REDEFINES LNAMEF. - 05 LNAMEA PIC X. - 03 FILLER PIC X(2). - 03 LNAMEI PIC X(30). - 03 FNAMEL PIC S9(4) COMP. - 03 FNAMEF PIC X. - 03 FILLER REDEFINES FNAMEF. - 05 FNAMEA PIC X. - 03 FILLER PIC X(2). - 03 FNAMEI PIC X(20). - 03 ADDRL PIC S9(4) COMP. - 03 ADDRF PIC X. - 03 FILLER REDEFINES ADDRF. - 05 ADDRA PIC X. - 03 FILLER PIC X(2). - 03 ADDRI PIC X(30). - 03 CITYL PIC S9(4) COMP. - 03 CITYF PIC X. - 03 FILLER REDEFINES CITYF. - 05 CITYA PIC X. - 03 FILLER PIC X(2). - 03 CITYI PIC X(20). - 03 STATEL PIC S9(4) COMP. - 03 STATEF PIC X. - 03 FILLER REDEFINES STATEF. - 05 STATEA PIC X. - 03 FILLER PIC X(2). - 03 STATEI PIC X(2). - 03 ZIPCODEL PIC S9(4) COMP. - 03 ZIPCODEF PIC X. - 03 FILLER REDEFINES ZIPCODEF. - 05 ZIPCODEA PIC X. - 03 FILLER PIC X(2). - 03 ZIPCODEI PIC X(10). - 03 MSG2L PIC S9(4) COMP. - 03 MSG2F PIC X. - 03 FILLER REDEFINES MSG2F. - 05 MSG2A PIC X. - 03 FILLER PIC X(2). - 03 MSG2I PIC X(79). - 03 DUMMY2L PIC S9(4) COMP. - 03 DUMMY2F PIC X. - 03 FILLER REDEFINES DUMMY2F. - 05 DUMMY2A PIC X. - 03 FILLER PIC X(2). - 03 DUMMY2I PIC X(1). - - * Output Data For Map MNTMAP2 - 01 MNTMAP2O REDEFINES MNTMAP2I. - 03 FILLER PIC X(12). - 03 FILLER PIC X(3). - 03 TRANID2C PIC X. - 03 TRANID2H PIC X. - 03 TRANID2O PIC X(4). - 03 FILLER PIC X(3). - 03 INSTR2C PIC X. - 03 INSTR2H PIC X. - 03 INSTR2O PIC X(79). - 03 FILLER PIC X(3). - 03 CUSTNO2C PIC X. - 03 CUSTNO2H PIC X. - 03 CUSTNO2O PIC X(6). - 03 FILLER PIC X(3). - 03 LNAMEC PIC X. - 03 LNAMEH PIC X. - 03 LNAMEO PIC X(30). - 03 FILLER PIC X(3). - 03 FNAMEC PIC X. - 03 FNAMEH PIC X. - 03 FNAMEO PIC X(20). - 03 FILLER PIC X(3). - 03 ADDRC PIC X. - 03 ADDRH PIC X. - 03 ADDRO PIC X(30). - 03 FILLER PIC X(3). - 03 CITYC PIC X. - 03 CITYH PIC X. - 03 CITYO PIC X(20). - 03 FILLER PIC X(3). - 03 STATEC PIC X. - 03 STATEH PIC X. - 03 STATEO PIC X(2). - 03 FILLER PIC X(3). - 03 ZIPCODEC PIC X. - 03 ZIPCODEH PIC X. - 03 ZIPCODEO PIC X(10). - 03 FILLER PIC X(3). - 03 MSG2C PIC X. - 03 MSG2H PIC X. - 03 MSG2O PIC X(79). - 03 FILLER PIC X(3). - 03 DUMMY2C PIC X. - 03 DUMMY2H PIC X. - 03 DUMMY2O PIC X(1). - diff --git a/tests/projects/plugins/project/lib/c/mylib.h b/tests/projects/plugins/project/lib/c/mylib.h deleted file mode 100644 index 63e375d712b..00000000000 --- a/tests/projects/plugins/project/lib/c/mylib.h +++ /dev/null @@ -1,2 +0,0 @@ -#define ADD(X, Y) X + Y - diff --git a/tests/projects/plugins/project/pom.xml b/tests/projects/plugins/project/pom.xml deleted file mode 100644 index 41a46c9508a..00000000000 --- a/tests/projects/plugins/project/pom.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - 4.0.0 - com.sonarsource.it-all-lang - it-all-lang - 1.0-SNAPSHOT - All Languages - - - - junit - junit - 4.10 - test - - - - - src/java - test/java - - diff --git a/tests/projects/plugins/project/sonar-project.properties b/tests/projects/plugins/project/sonar-project.properties deleted file mode 100644 index a0f986a7b67..00000000000 --- a/tests/projects/plugins/project/sonar-project.properties +++ /dev/null @@ -1,37 +0,0 @@ -sonar.projectKey=all-langs -sonar.projectName=All Languages -sonar.projectVersion=1.0-SNAPSHOT - -sonar.encoding=UTF-8 -sonar.sources=. -sonar.inclusions=src/**,ext/** -sonar.test.inclusions=test/** - -# C -sonar.cfamily.library.directories=lib/c - -# Cobol -sonar.cobol.copy.directories=ext/cobol/copybooks -sonar.cobol.file.suffixes=cbl,cpy -sonar.cobol.copy.suffixes=cpy - -# Java -sonar.junit.reportsPath=reports/java/surefire-reports -sonar.jacoco.reportPath=reports/java/jacoco.exec -sonar.java.binaries=target/classes -sonar.java.test.binaries=target/test-classes - -# JavaScript -sonar.javascript.lcov.reportPath=target/js/lcov.dat - -# Flex -sonar.flex.cobertura.reportPath=reports/flex/coverage.xml - -#PHP -# Reusing PHPUnit reports -sonar.php.coverage.reportPath=target/php/phpunit.coverage.xml -sonar.php.tests.reportPath=target/php/phpunit.xml - -#PLI -sonar.pli.marginLeft=2 -sonar.pli.marginRight=0 diff --git a/tests/projects/plugins/project/src/abap/ZBCMKZ17.abap b/tests/projects/plugins/project/src/abap/ZBCMKZ17.abap deleted file mode 100644 index 936119df612..00000000000 --- a/tests/projects/plugins/project/src/abap/ZBCMKZ17.abap +++ /dev/null @@ -1,147 +0,0 @@ -REPORT ZBCMKZ17. -*----------------------------------------------------------------------* -* Description: Report and Transaction Starter * -* It shows an individual list of reports/Trans. to start* -* * -* Authorization: S_PROGRAM, Reports starten * -* * -* Class: Utility * -* * -* Customizing: Needs Customer Table: ZBCMKZ1 * -* Field: Key Type Length Descr. * -* ZBCMKZ1-BNAME X CHAR C 12 User name * -* ZBCMKZ1-NAME X CHAR C 8 Report/Trans. code * -* ZBCMKZ1-NUMMER INT1 X 1 Priority level * -* * -* R/3 Release: 3.0d * -* * -* Programmer: Bence Toth * -* Date: 1997 April * -* * -*----------------------------------------------------------------------* -INCLUDE: . -TABLES: ZBCMKZ1, TRDIR, TSTCT, TSTC. -DATA: BEGIN OF BTAB OCCURS 50, "Hilfstabelle fuer Textpool - CODE(82), - END OF BTAB. -DATA: BEGIN OF T OCCURS 100, - NUMMER LIKE ZBCMKZ1-NUMMER, - NAME LIKE TRDIR-NAME, - CODE(82), -END OF T. -DATA: FI(20). -DATA BEGIN OF BDCDATA OCCURS 100. - INCLUDE STRUCTURE BDCDATA. -DATA END OF BDCDATA. - -DATA BEGIN OF MESSTAB OCCURS 10. - INCLUDE STRUCTURE BDCMSGCOLL. -DATA END OF MESSTAB. - -DATA REPORT. -AUTHORITY-CHECK OBJECT 'S_PROGRAM' - ID 'P_GROUP' FIELD '*' - ID 'P_ACTION' FIELD '*'. -IF SY-SUBRC NE 0. EXIT. ENDIF. -WRITE: /2 'Er. Modus', 12 'Name', 22 'Text'. - - -DETAIL. -SKIP. -SELECT * FROM ZBCMKZ1 WHERE BNAME EQ SY-UNAME. - CHECK ZBCMKZ1-NAME+5(1) EQ ' '. - SELECT SINGLE * FROM TSTC WHERE TCODE EQ ZBCMKZ1-NAME. - CHECK SY-SUBRC EQ 0. - CLEAR TSTCT. - SELECT SINGLE * FROM TSTCT WHERE SPRSL EQ SY-LANGU AND - TCODE EQ ZBCMKZ1-NAME. - T-CODE = TSTCT-TTEXT. - MOVE-CORRESPONDING ZBCMKZ1 TO T. - APPEND T. - CLEAR T. -ENDSELECT. -SORT T BY NUMMER CODE. -REPORT = ' '. -PERFORM LIST USING REPORT. -SELECT * FROM ZBCMKZ1 WHERE BNAME EQ SY-UNAME. - CHECK ZBCMKZ1-NAME+5(1) NE ' '. - READ TEXTPOOL ZBCMKZ1-NAME INTO BTAB LANGUAGE SY-LANGU. - CHECK SY-SUBRC EQ 0. - LOOP AT BTAB. - IF BTAB-CODE(1) EQ 'R'. - EXIT. - ENDIF. - ENDLOOP. - MOVE BTAB-CODE+9(70) TO T-CODE. - MOVE-CORRESPONDING ZBCMKZ1 TO T. - APPEND T. - CLEAR T. -ENDSELECT. -SORT T BY NUMMER CODE. -REPORT = 'X'. -PERFORM LIST USING REPORT. - -AT LINE-SELECTION. - CHECK NOT ( T-NAME IS INITIAL ). - GET CURSOR FIELD FI. - IF T-NAME+5(1) EQ ' '. - REPORT = ' '. - ELSE. - REPORT = 'X'. - ENDIF. - IF FI = 'ICON_EXECUTE_OBJECT'. - PERFORM PERO USING T-NAME REPORT. - ELSEIF REPORT EQ ' '. -* SELECT SINGLE * FROM TSTC WHERE TCODE EQ ZBCMKZ1-NAME. -* IF T+5(1) EQ ' '. - CALL TRANSACTION T-NAME. - ELSE. - SUBMIT (T-NAME) VIA SELECTION-SCREEN AND RETURN. - ENDIF. - CLEAR T-NAME. -*---------------------------------------------------------------------* -* FORM LIST * -*---------------------------------------------------------------------* -* ........ * -*---------------------------------------------------------------------* -FORM LIST USING REPORT. - LOOP AT T. - IF REPORT = ' '. - WRITE: /5 ICON_EXECUTE_OBJECT AS ICON, T-NAME UNDER 'Name', - T-CODE UNDER 'Text'. - ELSE. - WRITE: / T-NAME UNDER 'Name', T-CODE UNDER 'Text'. - ENDIF. - HIDE T. - AT END OF NUMMER. - SKIP. - ENDAT. - ENDLOOP. - SKIP. - CLEAR T. - REFRESH T. -ENDFORM. -*---------------------------------------------------------------------* -* FORM PERO * -*---------------------------------------------------------------------* -* ........ * -*---------------------------------------------------------------------* -* --> T-NAME * -*---------------------------------------------------------------------* -FORM PERO USING T-NAME REPORT. - CHECK REPORT EQ ' '. - MOVE T-NAME TO T-NAME+2(4). - MOVE '/o' TO T-NAME+0(2). - BDCDATA-PROGRAM = 'SAPMS01J'. - BDCDATA-DYNPRO = '0310'. - BDCDATA-DYNBEGIN = 'X'. - APPEND BDCDATA. - CLEAR BDCDATA. - BDCDATA-FNAM = 'BDC_OKCODE'. - BDCDATA-FVAL = T-NAME. - APPEND BDCDATA. - CALL TRANSACTION 'SU50' USING BDCDATA MODE 'N' - MESSAGES INTO MESSTAB. - CLEAR BDCDATA. - REFRESH BDCDATA. -ENDFORM. diff --git a/tests/projects/plugins/project/src/abap/ZZBGS106.abap b/tests/projects/plugins/project/src/abap/ZZBGS106.abap deleted file mode 100644 index f0e75a11934..00000000000 --- a/tests/projects/plugins/project/src/abap/ZZBGS106.abap +++ /dev/null @@ -1,194 +0,0 @@ -REPORT ZZBGS106 MESSAGE-ID Z1. -*----------------------------------------------------------------------* -* Description: Utillity used for downloading abap/4 source code and * -* text elements to the desktop using ws_download. * -* Is useful as backup or for transporting to another site.* -* You must run this program in foreground/online due to * -* the use of ws_download throug the SAPGUI. * -* * -* Implementing The program is client independent. * -* * -* Authoriza. No Authorization check. * -* * -* Submitting: Run by SA38, SE38. * -* * -* Parametre: You can use generic values when filling the parameters * -* except for the Path. * -* * -* Customizing: No need for customization. * -* * -* Change of You only need to do the syntax check at releasechanges. * -* release: * -* * -* R/3 Release: Developed and tested in R/3 Release: * -* 2.2F * -* 3.0D * -* * -* Programmer: Benny G. S�rensen, BGS-Consulting * -* Date: Nov 1996. * -* * -* Version 1 -*-------------------------------Corrections----------------------------* -* Date Userid Correction Text * -* 11.11.1996 BGS :::::::::::::: Start of development * -*----------------------------------------------------------------------* -*----------------------------------------------------------------------* -* Tables * -*----------------------------------------------------------------------* -TABLES: TRDIR "Application Masterdata - . -*----------------------------------------------------------------------* -* Parameters * -*----------------------------------------------------------------------* -SELECT-OPTIONS: REPO FOR TRDIR-NAME. -PARAMETERS: PATH(60) TYPE C DEFAULT 'C:\SAP\'. - -*----------------------------------------------------------------------* -* Work Variables and internal tables * -*----------------------------------------------------------------------* -DATA: BEGIN OF TABSOURCE OCCURS 10 - ,SOURCE(72) TYPE C - ,END OF TABSOURCE. - -DATA: BEGIN OF TABTEXT OCCURS 50 - ,TAB LIKE TEXTPOOL - ,END OF TABTEXT. - -DATA: BEGIN OF TABRDIR OCCURS 100 - ,RDIR LIKE TRDIR - ,END OF TABRDIR. - -DATA: FILENAME LIKE RLGRAP-FILENAME - ,MODE TYPE C VALUE ' ' - ,RDIRROWS TYPE I - ,SOURCEROWS TYPE I - ,RC TYPE I - ,LENGTH TYPE I - . -FIELD-SYMBOLS:

. - -*----------------------------------------------------------------------* -* Constants * -*----------------------------------------------------------------------* -DATA: OK TYPE I VALUE 0 - ,FAIL TYPE I VALUE 1. - -*----------------------------------------------------------------------* -* EVENT: validate users entries on the selection screen * -*----------------------------------------------------------------------* -AT SELECTION-SCREEN. -DATA: I TYPE I. - DESCRIBE TABLE REPO LINES I. - IF I <= 0. - SET CURSOR FIELD REPO. - MESSAGE E065 WITH TEXT-101. - ENDIF. - -*----------------------------------------------------------------------* -* EVENT: Start-Of-Selection * -*----------------------------------------------------------------------* -START-OF-SELECTION. -* Set slash at the end of path if not speciefied by user - CONDENSE PATH NO-GAPS. - LENGTH = STRLEN( PATH ) . - SUBTRACT 1 FROM LENGTH. - ASSIGN PATH+LENGTH(1) TO

. - IF

<> '\'. - ADD 1 TO LENGTH. - ASSIGN PATH+LENGTH TO

. -

= '\'. - ENDIF. - - SELECT * FROM TRDIR INTO TABLE TABRDIR WHERE NAME IN REPO. - DESCRIBE TABLE TABRDIR LINES RDIRROWS. - CHECK RDIRROWS > 0. - -* For every selected program: - LOOP AT TABRDIR. - MOVE TABRDIR TO TRDIR. - PERFORM DOWNLOAD_SOURCE USING RC. - CHECK RC = OK. - PERFORM DOWNLOAD_TEXTPOOL USING RC. - ENDLOOP. - -*----------------------------------------------------------------------* -* FORM: Download_Sourcecode * -*----------------------------------------------------------------------* -FORM DOWNLOAD_SOURCE USING RC. - RC = FAIL. - CLEAR: TABSOURCE, FILENAME. - REFRESH: TABSOURCE. - READ REPORT TRDIR-NAME INTO TABSOURCE. - DESCRIBE TABLE TABSOURCE LINES SOURCEROWS. - CHECK SOURCEROWS > 0. - - CALL FUNCTION 'STRING_CONCATENATE_3' "R. 2.2F - EXPORTING "R. 2.2F - STRING1 = PATH "R. 2.2F - STRING2 = TRDIR-NAME "R. 2.2F - STRING3 = '.aba' "R. 2.2F - IMPORTING "R. 2.2F - STRING = FILENAME "R. 2.2F - EXCEPTIONS "R. 2.2F - TOO_SMALL = 01. "R. 2.2F - -* CONCATENATE PATH TRDIR-NAME '.ABA' INTO FILENAME. "R. 3.0D - CONDENSE FILENAME NO-GAPS. - PERFORM DOWNLOAD TABLES TABSOURCE USING FILENAME RC. - -ENDFORM. - -*----------------------------------------------------------------------* -* FORM: Download_Textpool * -*----------------------------------------------------------------------* -FORM DOWNLOAD_TEXTPOOL USING RC. - RC = FAIL. - CLEAR: TABTEXT, FILENAME. - REFRESH: TABTEXT. - READ TEXTPOOL TRDIR-NAME INTO TABTEXT LANGUAGE SY-LANGU. - DESCRIBE TABLE TABTEXT LINES SOURCEROWS. - CHECK SOURCEROWS > 0. - - CALL FUNCTION 'STRING_CONCATENATE_3' "R. 2.2F - EXPORTING "R. 2.2F - STRING1 = PATH "R. 2.2F - STRING2 = TRDIR-NAME "R. 2.2F - STRING3 = '.TXT' "R. 2.2F - IMPORTING "R. 2.2F - STRING = FILENAME "R. 2.2F - EXCEPTIONS "R. 2.2F - TOO_SMALL = 01. "R. 2.2F - -* CONCATENATE PATH TRDIR-NAME '.TXT' INTO FILENAME. "R. 3.0x - CONDENSE FILENAME NO-GAPS. - PERFORM DOWNLOAD TABLES TABTEXT USING FILENAME RC. - -ENDFORM. - -*----------------------------------------------------------------------* -* FORM: Download * -*----------------------------------------------------------------------* -FORM DOWNLOAD TABLES TABDATA USING FILENAME RC. - - RC = FAIL. - CALL FUNCTION 'WS_DOWNLOAD' - EXPORTING - FILENAME = FILENAME - FILETYPE = 'ASC' - MODE = MODE - TABLES - DATA_TAB = TABDATA - EXCEPTIONS - FILE_OPEN_ERROR = 1 - FILE_WRITE_ERROR = 2 - INVALID_FILESIZE = 3 - INVALID_TABLE_WIDTH = 4 - INVALID_TYPE = 5 - NO_BATCH = 6 - UNKNOWN_ERROR = 7. - IF SY-SUBRC <> OK. - WRITE:/ SY-SUBRC, TEXT-100. - ENDIF. - RC = SY-SUBRC. - -ENDFORM. diff --git a/tests/projects/plugins/project/src/c/main.c b/tests/projects/plugins/project/src/c/main.c deleted file mode 100644 index 2c3bf69a583..00000000000 --- a/tests/projects/plugins/project/src/c/main.c +++ /dev/null @@ -1,19 +0,0 @@ -#include /* NOK, according to the MISRA C 2004 20.9 rule, stdio.h must not be used in embedded system's production code */ - -#include - -/* - * Compile & run from current folder: - * gcc -Wall -pedantic -std=c99 -I../lib -o main main.c && ./main - */ - -int main(void) { - int x = ADD(40, 2); - - if (x != 42) - { /* NOK, empty code blocks generate violations */ - } - - // print something - printf("40 + 2 = %d\n", x); -} diff --git a/tests/projects/plugins/project/src/cobol/Custmnt2.cbl b/tests/projects/plugins/project/src/cobol/Custmnt2.cbl deleted file mode 100755 index 662b5ca706f..00000000000 --- a/tests/projects/plugins/project/src/cobol/Custmnt2.cbl +++ /dev/null @@ -1,581 +0,0 @@ - IDENTIFICATION DIVISION. - * - PROGRAM-ID. CUSTMNT2. - * - ENVIRONMENT DIVISION. - * - DATA DIVISION. - * - WORKING-STORAGE SECTION. - * - 01 SWITCHES. - * - 05 VALID-DATA-SW PIC X(01) VALUE 'Y'. - 88 VALID-DATA VALUE 'Y'. - * - 01 FLAGS. - * - 05 SEND-FLAG PIC X(01). - 88 SEND-ERASE VALUE '1'. - 88 SEND-ERASE-ALARM VALUE '2'. - 88 SEND-DATAONLY VALUE '3'. - 88 SEND-DATAONLY-ALARM VALUE '4'. - * - 01 WORK-FIELDS. - * - 05 RESPONSE-CODE PIC S9(08) COMP. - * - 01 USER-INSTRUCTIONS. - * - 05 ADD-INSTRUCTION PIC X(79) VALUE - 'Type information for new customer. Then Press Enter.'. - 05 CHANGE-INSTRUCTION PIC X(79) VALUE - 'Type changes. Then press Enter.'. - 05 DELETE-INSTRUCTION PIC X(79) VALUE - 'Press Enter to delete this customer or press F12 to canc - - 'el.'. - * - 01 COMMUNICATION-AREA. - * - 05 CA-CONTEXT-FLAG PIC X(01). - 88 PROCESS-KEY-MAP VALUE '1'. - 88 PROCESS-ADD-CUSTOMER VALUE '2'. - 88 PROCESS-CHANGE-CUSTOMER VALUE '3'. - 88 PROCESS-DELETE-CUSTOMER VALUE '4'. - 05 CA-CUSTOMER-RECORD. - 10 CA-CUSTOMER-NUMBER PIC X(06). - 10 FILLER PIC X(112). - * - COPY CUSTMAS. - * - COPY MNTSET2. - * - COPY DFHAID. - * - COPY ATTR. - * - COPY ERRPARM. - * - LINKAGE SECTION. - * - 01 DFHCOMMAREA PIC X(119). - * - PROCEDURE DIVISION. - * - 0000-PROCESS-CUSTOMER-MAINT. - * - IF EIBCALEN > ZERO - MOVE DFHCOMMAREA TO COMMUNICATION-AREA - END-IF. - * - EVALUATE TRUE - * - WHEN EIBCALEN = ZERO - MOVE LOW-VALUE TO MNTMAP1O - MOVE -1 TO CUSTNO1L - SET SEND-ERASE TO TRUE - PERFORM 1500-SEND-KEY-MAP - SET PROCESS-KEY-MAP TO TRUE - * - WHEN EIBAID = DFHPF3 - EXEC CICS - XCTL PROGRAM('INVMENU') - END-EXEC - * - WHEN EIBAID = DFHPF12 - IF PROCESS-KEY-MAP - EXEC CICS - XCTL PROGRAM('INVMENU') - END-EXEC - ELSE - MOVE LOW-VALUE TO MNTMAP1O - MOVE -1 TO CUSTNO1L - SET SEND-ERASE TO TRUE - PERFORM 1500-SEND-KEY-MAP - SET PROCESS-KEY-MAP TO TRUE - END-IF - * - WHEN EIBAID = DFHCLEAR - IF PROCESS-KEY-MAP - MOVE LOW-VALUE TO MNTMAP1O - MOVE -1 TO CUSTNO1L - SET SEND-ERASE TO TRUE - PERFORM 1500-SEND-KEY-MAP - ELSE - MOVE LOW-VALUE TO MNTMAP2O - MOVE CA-CUSTOMER-NUMBER TO CUSTNO2O - EVALUATE TRUE - WHEN PROCESS-ADD-CUSTOMER - MOVE ADD-INSTRUCTION TO INSTR2O - WHEN PROCESS-CHANGE-CUSTOMER - MOVE CHANGE-INSTRUCTION TO INSTR2O - WHEN PROCESS-DELETE-CUSTOMER - MOVE DELETE-INSTRUCTION TO INSTR2O - END-EVALUATE - MOVE -1 TO LNAMEL - SET SEND-ERASE TO TRUE - PERFORM 1400-SEND-DATA-MAP - END-IF - * - WHEN EIBAID = DFHPA1 OR DFHPA2 OR DFHPA3 - CONTINUE - * - WHEN EIBAID = DFHENTER - EVALUATE TRUE - WHEN PROCESS-KEY-MAP - PERFORM 1000-PROCESS-KEY-MAP - WHEN PROCESS-ADD-CUSTOMER - PERFORM 2000-PROCESS-ADD-CUSTOMER - WHEN PROCESS-CHANGE-CUSTOMER - PERFORM 3000-PROCESS-CHANGE-CUSTOMER - WHEN PROCESS-DELETE-CUSTOMER - PERFORM 4000-PROCESS-DELETE-CUSTOMER - END-EVALUATE - * - WHEN OTHER - IF PROCESS-KEY-MAP - MOVE LOW-VALUE TO MNTMAP1O - MOVE 'That key is unassigned.' TO MSG1O - MOVE -1 TO CUSTNO1L - SET SEND-DATAONLY-ALARM TO TRUE - PERFORM 1500-SEND-KEY-MAP - ELSE - MOVE LOW-VALUE TO MNTMAP2O - MOVE 'That key is unassigned.' TO MSG2O - MOVE -1 TO LNAMEL - SET SEND-DATAONLY-ALARM TO TRUE - PERFORM 1400-SEND-DATA-MAP - END-IF - * - END-EVALUATE. - - EXEC CICS - RETURN TRANSID('MNT2') - COMMAREA(COMMUNICATION-AREA) - END-EXEC. - * - 1000-PROCESS-KEY-MAP. - * - PERFORM 1100-RECEIVE-KEY-MAP. - PERFORM 1200-EDIT-KEY-DATA. - IF VALID-DATA - IF NOT PROCESS-DELETE-CUSTOMER - INSPECT CUSTOMER-MASTER-RECORD - REPLACING ALL SPACE BY '_' - END-IF - MOVE CUSTNO1I TO CUSTNO2O - MOVE CM-LAST-NAME TO LNAMEO - MOVE CM-FIRST-NAME TO FNAMEO - MOVE CM-ADDRESS TO ADDRO - MOVE CM-CITY TO CITYO - MOVE CM-STATE TO STATEO - MOVE CM-ZIP-CODE TO ZIPCODEO - MOVE -1 TO LNAMEL - SET SEND-ERASE TO TRUE - PERFORM 1400-SEND-DATA-MAP - ELSE - MOVE LOW-VALUE TO CUSTNO1O - ACTIONO - SET SEND-DATAONLY-ALARM TO TRUE - PERFORM 1500-SEND-KEY-MAP - END-IF. - * - 1100-RECEIVE-KEY-MAP. - * - EXEC CICS - RECEIVE MAP('MNTMAP1') - MAPSET('MNTSET2') - INTO(MNTMAP1I) - END-EXEC. - * - INSPECT MNTMAP1I - REPLACING ALL '_' BY SPACE. - * - 1200-EDIT-KEY-DATA. - * - MOVE ATTR-NO-HIGHLIGHT TO ACTIONH - CUSTNO1H. - * - IF ACTIONI NOT = '1' AND '2' AND '3' AND '4' AND '5' - MOVE ATTR-REVERSE TO ACTIONH - MOVE -1 TO ACTIONL - MOVE 'Action must be 1, 2, or 3.' TO MSG1O - MOVE 'N' TO VALID-DATA-SW - END-IF. - * - IF CUSTNO1L = ZERO - OR CUSTNO1I = SPACE - MOVE ATTR-REVERSE TO CUSTNO1H - MOVE -1 TO CUSTNO1L - MOVE 'You must enter a customer number.' TO MSG1O - MOVE 'N' TO VALID-DATA-SW - END-IF. - * - IF VALID-DATA - MOVE LOW-VALUE TO MNTMAP2O - EVALUATE ACTIONI - WHEN '1' - PERFORM 1300-READ-CUSTOMER-RECORD - IF RESPONSE-CODE = DFHRESP(NOTFND) - MOVE ADD-INSTRUCTION TO INSTR2O - SET PROCESS-ADD-CUSTOMER TO TRUE - MOVE SPACE TO CUSTOMER-MASTER-RECORD - ELSE - IF RESPONSE-CODE = DFHRESP(NORMAL) - MOVE 'That customer already exists.' - TO MSG1O - MOVE 'N' TO VALID-DATA-SW - END-IF - END-IF - WHEN '2' - PERFORM 1300-READ-CUSTOMER-RECORD - IF RESPONSE-CODE = DFHRESP(NORMAL) - MOVE CUSTOMER-MASTER-RECORD TO - CA-CUSTOMER-RECORD - MOVE CHANGE-INSTRUCTION TO INSTR2O - SET PROCESS-CHANGE-CUSTOMER TO TRUE - ELSE - IF RESPONSE-CODE = DFHRESP(NOTFND) - MOVE 'That customer does not exist.' TO - MSG1O - MOVE 'N' TO VALID-DATA-SW - END-IF - END-IF - WHEN '3' - PERFORM 1300-READ-CUSTOMER-RECORD - IF RESPONSE-CODE = DFHRESP(NORMAL) - MOVE CUSTOMER-MASTER-RECORD TO - CA-CUSTOMER-RECORD - MOVE DELETE-INSTRUCTION TO INSTR2O - SET PROCESS-DELETE-CUSTOMER TO TRUE - MOVE ATTR-PROT TO LNAMEA - FNAMEA - ADDRA - CITYA - STATEA - ZIPCODEA - ELSE - IF RESPONSE-CODE = DFHRESP(NOTFND) - MOVE 'That customer does not exist.' TO - MSG1O - MOVE 'N' TO VALID-DATA-SW - END-IF - END-IF - END-EVALUATE. - * - 1300-READ-CUSTOMER-RECORD. - * - EXEC CICS - READ FILE('CUSTMAS') - INTO(CUSTOMER-MASTER-RECORD) - RIDFLD(CUSTNO1I) - RESP(RESPONSE-CODE) - END-EXEC. - * - IF RESPONSE-CODE NOT = DFHRESP(NORMAL) - AND RESPONSE-CODE NOT = DFHRESP(NOTFND) - PERFORM 9999-TERMINATE-PROGRAM - END-IF. - * - 1400-SEND-DATA-MAP. - * - MOVE 'MNT2' TO TRANID2O. - * - EVALUATE TRUE - WHEN SEND-ERASE - EXEC CICS - SEND MAP('MNTMAP2') - MAPSET('MNTSET2') - FROM(MNTMAP2O) - ERASE - CURSOR - END-EXEC - WHEN SEND-DATAONLY-ALARM - EXEC CICS - SEND MAP('MNTMAP2') - MAPSET('MNTSET2') - FROM(MNTMAP2O) - DATAONLY - ALARM - CURSOR - END-EXEC - END-EVALUATE. - * - 1500-SEND-KEY-MAP. - * - MOVE 'MNT2' TO TRANID1O. - * - EVALUATE TRUE - WHEN SEND-ERASE - EXEC CICS - SEND MAP('MNTMAP1') - MAPSET('MNTSET2') - FROM(MNTMAP1O) - ERASE - CURSOR - END-EXEC - WHEN SEND-ERASE-ALARM - EXEC CICS - SEND MAP('MNTMAP1') - MAPSET('MNTSET2') - FROM(MNTMAP1O) - ERASE - ALARM - CURSOR - END-EXEC - WHEN SEND-DATAONLY-ALARM - EXEC CICS - SEND MAP('MNTMAP1') - MAPSET('MNTSET2') - FROM(MNTMAP1O) - DATAONLY - ALARM - CURSOR - END-EXEC - END-EVALUATE. - * - 2000-PROCESS-ADD-CUSTOMER. - * - PERFORM 2100-RECEIVE-DATA-MAP. - PERFORM 2200-EDIT-CUSTOMER-DATA. - IF VALID-DATA - PERFORM 2300-WRITE-CUSTOMER-RECORD - IF RESPONSE-CODE = DFHRESP(NORMAL) - MOVE 'Customer record added.' TO MSG1O - SET SEND-ERASE TO TRUE - ELSE - IF RESPONSE-CODE = DFHRESP(DUPREC) - MOVE 'Another user has added a record with that c - - 'ustomer number.' TO MSG1O - SET SEND-ERASE-ALARM TO TRUE - END-IF - END-IF - MOVE -1 TO CUSTNO1L - PERFORM 1500-SEND-KEY-MAP - SET PROCESS-KEY-MAP TO TRUE - ELSE - MOVE LOW-VALUE TO LNAMEO - FNAMEO - ADDRO - CITYO - STATEO - ZIPCODEO - SET SEND-DATAONLY-ALARM TO TRUE - PERFORM 1400-SEND-DATA-MAP - END-IF. - * - 2100-RECEIVE-DATA-MAP. - * - EXEC CICS - RECEIVE MAP('MNTMAP2') - MAPSET('MNTSET2') - INTO(MNTMAP2I) - END-EXEC. - * - INSPECT MNTMAP2I - REPLACING ALL '_' BY SPACE. - * - 2200-EDIT-CUSTOMER-DATA. - * - MOVE ATTR-NO-HIGHLIGHT TO ZIPCODEH - STATEH - CITYH - ADDRH - FNAMEH - LNAMEH. - - IF ZIPCODEI = SPACE - OR ZIPCODEL = ZERO - MOVE ATTR-REVERSE TO ZIPCODEH - MOVE -1 TO ZIPCODEL - MOVE 'You must enter a zip code.' TO MSG2O - MOVE 'N' TO VALID-DATA-SW - END-IF. - - IF STATEI = SPACE - OR STATEL = ZERO - MOVE ATTR-REVERSE TO STATEH - MOVE -1 TO STATEL - MOVE 'You must enter a state.' TO MSG2O - MOVE 'N' TO VALID-DATA-SW - END-IF. - - IF CITYI = SPACE - OR CITYL = ZERO - MOVE ATTR-REVERSE TO CITYH - MOVE -1 TO CITYL - MOVE 'You must enter a city.' TO MSG2O - MOVE 'N' TO VALID-DATA-SW - END-IF. - - IF ADDRI = SPACE - OR ADDRL = ZERO - MOVE ATTR-REVERSE TO ADDRH - MOVE -1 TO ADDRL - MOVE 'You must enter an address.' TO MSG2O - MOVE 'N' TO VALID-DATA-SW - END-IF. - - IF FNAMEI = SPACE - OR FNAMEL = ZERO - MOVE ATTR-REVERSE TO FNAMEH - MOVE -1 TO FNAMEL - MOVE 'You must enter a first name.' TO MSG2O - MOVE 'N' TO VALID-DATA-SW - END-IF. - - IF LNAMEI = SPACE - OR LNAMEL = ZERO - MOVE ATTR-REVERSE TO LNAMEH - MOVE -1 TO LNAMEL - MOVE 'You must enter a last name.' TO MSG2O - MOVE 'N' TO VALID-DATA-SW - END-IF. - * - 2300-WRITE-CUSTOMER-RECORD. - * - MOVE CUSTNO2I TO CM-CUSTOMER-NUMBER. - MOVE LNAMEI TO CM-LAST-NAME. - MOVE FNAMEI TO CM-FIRST-NAME. - MOVE ADDRI TO CM-ADDRESS. - MOVE CITYI TO CM-CITY. - MOVE STATEI TO CM-STATE. - MOVE ZIPCODEI TO CM-ZIP-CODE. - * - EXEC CICS - WRITE FILE('CUSTMAS') - FROM(CUSTOMER-MASTER-RECORD) - RIDFLD(CM-CUSTOMER-NUMBER) - RESP(RESPONSE-CODE) - END-EXEC. - * - IF RESPONSE-CODE NOT = DFHRESP(NORMAL) - AND RESPONSE-CODE NOT = DFHRESP(DUPREC) - PERFORM 9999-TERMINATE-PROGRAM - END-IF. - * - 3000-PROCESS-CHANGE-CUSTOMER. - * - PERFORM 2100-RECEIVE-DATA-MAP. - PERFORM 2200-EDIT-CUSTOMER-DATA. - IF VALID-DATA - MOVE CUSTNO2I TO CM-CUSTOMER-NUMBER - PERFORM 3100-READ-CUSTOMER-FOR-UPDATE - IF RESPONSE-CODE = DFHRESP(NORMAL) - IF CUSTOMER-MASTER-RECORD = CA-CUSTOMER-RECORD - * Introduce extra nested if as an example of rule violation - IF VALID-DATA - IF RESPONSE-CODE = DFHRESP(NORMAL) - PERFORM 3200-REWRITE-CUSTOMER-RECORD - MOVE 'Customer record updated.' TO MSG1O - SET SEND-ERASE TO TRUE - END-IF - END-IF - ELSE - MOVE 'Another user has updated the record. Try a - - 'gain.' TO MSG1O - SET SEND-ERASE-ALARM TO TRUE - END-IF - ELSE - IF RESPONSE-CODE = DFHRESP(NOTFND) - MOVE 'Another user has deleted the record.' TO - MSG1O - SET SEND-ERASE-ALARM TO TRUE - END-IF - END-IF - MOVE -1 TO CUSTNO1L - PERFORM 1500-SEND-KEY-MAP - SET PROCESS-KEY-MAP TO TRUE - ELSE - MOVE LOW-VALUE TO LNAMEO - FNAMEO - ADDRO - CITYO - STATEO - ZIPCODEO - SET SEND-DATAONLY-ALARM TO TRUE - PERFORM 1400-SEND-DATA-MAP - END-IF. - * - 3100-READ-CUSTOMER-FOR-UPDATE. - * - EXEC CICS - READ FILE('CUSTMAS') - INTO(CUSTOMER-MASTER-RECORD) - RIDFLD(CM-CUSTOMER-NUMBER) - UPDATE - RESP(RESPONSE-CODE) - END-EXEC. - * - IF RESPONSE-CODE NOT = DFHRESP(NORMAL) - AND RESPONSE-CODE NOT = DFHRESP(NOTFND) - PERFORM 9999-TERMINATE-PROGRAM - END-IF. - * - 3200-REWRITE-CUSTOMER-RECORD. - * - MOVE LNAMEI TO CM-LAST-NAME. - MOVE FNAMEI TO CM-FIRST-NAME. - MOVE ADDRI TO CM-ADDRESS. - MOVE CITYI TO CM-CITY. - MOVE STATEI TO CM-STATE. - MOVE ZIPCODEI TO CM-ZIP-CODE. - * - EXEC CICS - REWRITE FILE('CUSTMAS') - FROM(CUSTOMER-MASTER-RECORD) - RESP(RESPONSE-CODE) - END-EXEC. - * - IF RESPONSE-CODE NOT = DFHRESP(NORMAL) - PERFORM 9999-TERMINATE-PROGRAM - END-IF. - * - 4000-PROCESS-DELETE-CUSTOMER. - * - MOVE CA-CUSTOMER-NUMBER TO CM-CUSTOMER-NUMBER. - PERFORM 3100-READ-CUSTOMER-FOR-UPDATE. - IF RESPONSE-CODE = DFHRESP(NORMAL) - ALTER X TO PROCEED TO Y - IF CUSTOMER-MASTER-RECORD = CA-CUSTOMER-RECORD - PERFORM 4100-DELETE-CUSTOMER-RECORD - MOVE 'Customer deleted.' TO MSG1O - SET SEND-ERASE TO TRUE - ELSE - MOVE 'Another user has updated the record. Try again - - '.' TO MSG1O - SET SEND-ERASE-ALARM TO TRUE - END-IF - ELSE - IF RESPONSE-CODE = DFHRESP(NOTFND) - MOVE 'Another user has deleted the record.' TO - MSG1O - SET SEND-ERASE-ALARM TO TRUE - END-IF - END-IF. - MOVE -1 TO CUSTNO1L. - PERFORM 1500-SEND-KEY-MAP. - SET PROCESS-KEY-MAP TO TRUE. - * - 4100-DELETE-CUSTOMER-RECORD. - * TODO Some comment - EXEC CICS - DELETE FILE('CUSTMAS') - RESP(RESPONSE-CODE) - END-EXEC. - * - IF RESPONSE-CODE NOT = DFHRESP(NORMAL) - PERFORM 9999-TERMINATE-PROGRAM - END-IF. - * - 9999-TERMINATE-PROGRAM. - * - MOVE EIBRESP TO ERR-RESP. - MOVE EIBRESP2 TO ERR-RESP2. - MOVE EIBTRNID TO ERR-TRNID. - MOVE EIBRSRCE TO ERR-RSRCE. - * - EXEC CICS - XCTL PROGRAM('SYSERR') - COMMAREA(ERROR-PARAMETERS) - END-EXEC. diff --git a/tests/projects/plugins/project/src/cobol/TC4E3H0.CBL b/tests/projects/plugins/project/src/cobol/TC4E3H0.CBL deleted file mode 100644 index da86bbe241d..00000000000 --- a/tests/projects/plugins/project/src/cobol/TC4E3H0.CBL +++ /dev/null @@ -1,17508 +0,0 @@ - IDENTIFICATION DIVISION. - PROGRAM-ID. TC4E3H0 . - DATE-COMPILED. 02/17/10 - *REMARKS. - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY REMARKS ! - *------------------------------------------------------------------- - * AUTEUR : SOLERI ! - ****************************************************************** ! - * AUTEUR : SOLERI * ! - * LANGAGE : COBOL * ! - * MONITEUR : CICS * ! - * DATE CREATION : 1999/01/15 * ! - * * ! - * * ! - * DESCRIPTIF : ECRAN DE CORRECTION DES MOUVEMENTS EN ANOMALIES * ! - * ------------ CET ECRAN EST PARAMETRE SELON LE CODE APPLICATION* ! - * DU MOUVEMENT A CORRIGER * ! - * * ! - ****************************************************************** ! - * LISTE DES MESSAGES ERREUR UTILISES * ! - ****************************************************************** ! - *000001 TOUCHE DE FONCTION INTERDITE ! - *000010 F5 : VALIDATION ! - *000029 DATE INCORRECTE ! - *000141 CODE INEXISTANT ! - *000148 ZONE OBLIGATOIRE ! - *000193 MODIFICATION EFFECTUEE ! - *000270 CETTE DONNEE DOIT ETRE NUMERIQUE ! - *4E0041 LE CODE BANQUE DOIT ETRE NUMERIQUE ! - *4E0053 CODE PRODUIT INEXISTANT ! - *4E0058 CODE PARTENAIRE INCORRECT ! - *4E0059 CODE RPODUIT INCORRECT ! - *4E0060 NUMERO DE SOUSCRIPTION INCORRECT ! - *4E0061 NUMERO DE CONTRAT INCORRECT ! - *4E0062 NUMERO ADHESION INCORRECT ! - *4E0063 NUMERO DOSSSIER SINITRE INCORRECT ! - *4E0064 PERIODE DGI INCORRECTE ! - *4E0065 CODE TYPE CRO OBLIGATOIRE ! - *4E0066 CODE TYPE CRO INEXISTANT ! - ****************************************************************** ! - * MAINTENANCE * ! - ****************************************************************** ! - * AUTEUR * DATE * DESCRIPTIF * ! - ****************************************************************** ! - * * * * ! - * * * * ! - * * * * ! - ****************************************************************** ! - * SODIFRANCE *25.04.2006* REMPLACER ACCES YSP4EPTN PAR * ! - * * * ACCES MODULE TN4D101 (DB2) * ! - ****************************************************************** ! - *----------------------------------------------! END REMARKS ---- - - ENVIRONMENT DIVISION. - CONFIGURATION SECTION. - SPECIAL-NAMES. - DECIMAL-POINT IS COMMA. - DATA DIVISION. - SKIP2 - WORKING-STORAGE SECTION. - * - * THIS PROGRAM HAS BEEN DEVELOPED WITH THE TELON APPLICATION - * DEVELOPMENT SYSTEM, LICENSED BY: - * - * COMPUTER ASSOCIATES INTERNATIONAL, INC. - * ONE COMPUTER ASSOCIATES PLAZA - * ISLANDIA, NY 11788-7000 - * - * - * ----- LINE EFFICENCY OVERVIEW ----- - * - * THIS PROGRAM INCORPORATES LOGIC WHICH SIGNIFICANTLY - * REDUCES THE AMOUNT OF DATA WHICH IS TRANSMITTED TO AND - * FROM THE TERMINAL. TO PERFORM THIS FUNCTION, A ROUTINE - * NAMED TLRAMRG IS CALLED. IN GENERAL, ONLY MODIFIED - * FIELDS ARE TRANSMITTED TO AND FROM THE TERMINAL. - * SEE SECTIONS C-100 AND C-200 FOR A DESCRIPTION OF THIS - * ROUTINE. THERE ARE TWO DATA AREAS WHICH ARE USED BY - * THIS ROUTINE, THE OUTPUT SCREEN TABLE AND THE SCREEN IMAGE AREA. - * - * THE STEPS TO MODIFY A MESSAGE FORMAT WITHOUT THE USE OF TELON ARE: - * 1. ADD THE FIELD TO THE BMS MAP. - * 2. ADD THE FIELD TO THE TP BUFFER DEFINITION. - * 3. ADD THE FIELD TO THE OUTPUT SCREEN TABLE. - * 4. SET THE SIZE OF THE SCREEN IMAGE AREA. - * - * OUTPUT SCREEN TABLE - * - * THE OUTPUT SCREEN TABLE CONTAINS A DEFINITION OF THE - * SCREEN. IT CONSISTS OF AN 18 BYTE HEADER AREA AND FOUR - * ENTRY TYPES AS DESCRIBED BELOW. - * - * VARIABLE FIELD ENTRY - * ONE ENTRY FOR EVERY VARIABLE FIELD ON THE SCREEN IN - * ORDER OF THE TP-BUFFER FIELDS. - * 1. FILLER PIC X. - * 2. SCT-FIELD-TYPE PIC X VALUE (I/O). - * I - FIELD IS INPUT FROM THE TERMINAL. - * O - FIELD IS OUTPUT ONLY TO THE TERMINAL. - * 3. TPO-FIELDNAME-LTH PIC 9(4) COMP. - * LENGTH OF THE FIELD ON THE SCREEN. - * - * TABLE END ENTRY - * THIS ENTRY IS REQUIRED TO MARK THE END OF THE TABLE. - * 1. SCT-END-ENTRY PIC 9(4) COMP VALUE ZERO. - EJECT - * SEGLOOP ENTRY - * THE SEGLOOP ENTRY IS USED TO MARK THE START OF A LINE - * WHICH IS TO BE REPEATED. IT IS USED IN CONJUNCTION - * WITH THE SEGEND ENTRY TO DELIMIT THE REPETITIVE LINE. - * 1. FILLER PIC X. - * 2. SCT-SEGLOOP-TYPE PIC X VALUE 'S'. - * 3. SCT-ENTRY-LENGTH PIC 9(4) COMP VALUE NNN. - * LENGTH OF SEGLOOP ENTRY. - * 3. SCT-REPEAT-LINES PIC 9(2) COMP-3 VALUE NN. - * NUMBER OF TIMES TO REPEAT LINE ON THE SCREEN. - * THIS VALUE IS 1 LESS THAN THE NUMBER OF LINES TO - * BE DISPLAYED ON THE SCREEN. - * 5. INCREMENTAL VALUE PIC 9(2) COMP-3 VALUE NN. - * SPECIFIES THE NUMBER OF LINES TO SKIP BETWEEN EACH - * LINE WHERE A VALUE OF 1 INDICATES THE NEXT LINE. - * THE NUMBER OF INCREMENTS IS EQUAL TO THE VALUE OF - * SCT-REPEAT-LINES. - * - * SEGEND ENTRY - * THE SEGEND ENTRY IS USED TO MARK THE END OF A LINE - * WHICH IS TO BE REPEATED. IT IS PLACED AFTER THE LAST - * FIELD WHICH IS TO BE REPEATED. - * 1. FILLER PIC X. - * 2. SCT-SEGEND-TYPE PIC X VALUE 'T'. - * 3. SCT-ENTRY-LENGTH PIC 9(4) COMP VALUE 4. - * - * - * SCREEN IMAGE AREA - * - * THE SCREEN IMAGE IS AN AREA APPENDED TO THE SPA AREA - * WHICH CONTAINS A COPY OF THE SCREEN. IT CONSISTS OF A - * 12 BYTE HEADER AND A DATA AREA LARGE ENOUGH TO HOLD THE - * TP-BUFFER. - * 1. SCREEN IMAGE PIC X(NNNN). - * THE SIZE IS DEPENDENT ON THE OUTPUT SCREEN TABLE - * FIELD SCT-REFRESH-OUTPUTS. (Y/N) - * Y - NNNN IS EQUAL TO THE TP-BUFFER LENGTH. - * N - NNNN IS EQUAL TO THE LENGTH OF THE FIELDS AND - * ATTRIBUTES WHICH ARE INPUT FROM THE TERMINAL. - * - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEWSSD ! - *------------------------------------------------------------------- - **************************************************************** ! - * TABLE DES CHAMPS POUR HELP CURSEUR * ! - **************************************************************** ! - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY HELPGEN 2! - *------------------------------------------------------------------- - 01 TAB-POS. 2! - 02 FILLER PIC X(14) VALUE '00000000000000'. 2! - 02 FILLER PIC X(14) VALUE '001002008000OU'. 2! - 02 FILLER PIC X(14) VALUE '001070010000OU'. 2! - 02 FILLER PIC X(14) VALUE '002003004000OU'. 2! - 02 FILLER PIC X(14) VALUE '002073005000OU'. 2! - 02 FILLER PIC X(14) VALUE '004014002000OU'. 2! - 02 FILLER PIC X(14) VALUE '004017027000OU'. 2! - 02 FILLER PIC X(14) VALUE '004071002000OI'. 2! - 02 FILLER PIC X(14) VALUE '004074002000OI'. 2! - 02 FILLER PIC X(14) VALUE '004077004000OI'. 2! - 02 FILLER PIC X(14) VALUE '007020002000OI'. 2! - 02 FILLER PIC X(14) VALUE '007023002000OI'. 2! - 02 FILLER PIC X(14) VALUE '007026004000OI'. 2! - 02 FILLER PIC X(14) VALUE '007057020000OU'. 2! - 02 FILLER PIC X(14) VALUE '007078003000OU'. 2! - 02 FILLER PIC X(14) VALUE '008020005000OU'. 2! - 02 FILLER PIC X(14) VALUE '008026005000OU'. 2! - 02 FILLER PIC X(14) VALUE '008033011000OU'. 2! - 02 FILLER PIC X(14) VALUE '008046002000OU'. 2! - 02 FILLER PIC X(14) VALUE '009020005000OI'. 2! - 02 FILLER PIC X(14) VALUE '009026005000OI'. 2! - 02 FILLER PIC X(14) VALUE '009033011000OI'. 2! - 02 FILLER PIC X(14) VALUE '009046002000OU'. 2! - 02 FILLER PIC X(14) VALUE '009072009000OU'. 2! - 02 FILLER PIC X(14) VALUE '010020001000OU'. 2! - 02 FILLER PIC X(14) VALUE '010022032000OU'. 2! - 02 FILLER PIC X(14) VALUE '010078003000OU'. 2! - 02 FILLER PIC X(14) VALUE '011020007000OI'. 2! - 02 FILLER PIC X(14) VALUE '014002017000OU'. 2! - 02 FILLER PIC X(14) VALUE '014020005000OI'. 2! - 02 FILLER PIC X(14) VALUE '014026020000OU'. 2! - 02 FILLER PIC X(14) VALUE '014047002000OU'. 2! - 02 FILLER PIC X(14) VALUE '014058019000OU'. 2! - 02 FILLER PIC X(14) VALUE '014078003000OU'. 2! - 02 FILLER PIC X(14) VALUE '015002017000OU'. 2! - 02 FILLER PIC X(14) VALUE '015020013000OI'. 2! - 02 FILLER PIC X(14) VALUE '015034007000OU'. 2! - 02 FILLER PIC X(14) VALUE '015042004000OI'. 2! - 02 FILLER PIC X(14) VALUE '015047032000OU'. 2! - 02 FILLER PIC X(14) VALUE '016002017000OU'. 2! - 02 FILLER PIC X(14) VALUE '016020004000OU'. 2! - 02 FILLER PIC X(14) VALUE '016025001000OU'. 2! - 02 FILLER PIC X(14) VALUE '016027006000OI'. 2! - 02 FILLER PIC X(14) VALUE '016034007000OU'. 2! - 02 FILLER PIC X(14) VALUE '016042002000OI'. 2! - 02 FILLER PIC X(14) VALUE '016047032000OU'. 2! - 02 FILLER PIC X(14) VALUE '017002017000OU'. 2! - 02 FILLER PIC X(14) VALUE '017020032000OI'. 2! - 02 FILLER PIC X(14) VALUE '018002017000OU'. 2! - 02 FILLER PIC X(14) VALUE '018020002000OI'. 2! - 02 FILLER PIC X(14) VALUE '018023002000OI'. 2! - 02 FILLER PIC X(14) VALUE '018026004000OI'. 2! - 02 FILLER PIC X(14) VALUE '018058012000OU'. 2! - 02 FILLER PIC X(14) VALUE '018071002000OI'. 2! - 02 FILLER PIC X(14) VALUE '018074002000OI'. 2! - 02 FILLER PIC X(14) VALUE '018077004000OI'. 2! - 02 FILLER PIC X(14) VALUE '019002017000OU'. 2! - 02 FILLER PIC X(14) VALUE '019020002000OI'. 2! - 02 FILLER PIC X(14) VALUE '019023002000OI'. 2! - 02 FILLER PIC X(14) VALUE '019026004000OI'. 2! - 02 FILLER PIC X(14) VALUE '019031003000OI'. 2! - 02 FILLER PIC X(14) VALUE '019035001000OI'. 2! - 02 FILLER PIC X(14) VALUE '019037023000OU'. 2! - 02 FILLER PIC X(14) VALUE '019067012000OU'. 2! - 02 FILLER PIC X(14) VALUE '019080001000OI'. 2! - 02 FILLER PIC X(14) VALUE '021020002000OU'. 2! - 02 FILLER PIC X(14) VALUE '021024032000OU'. 2! - 02 FILLER PIC X(14) VALUE '021063010000OU'. 2! - 02 FILLER PIC X(14) VALUE '022002079000OI'. 2! - 02 FILLER PIC X(14) VALUE '023002079000OU'. 2! - 02 FILLER PIC X(14) VALUE '024002079000OU'. 2! - 01 TAB-POS-NB PIC 999 VALUE 071. 2! - 01 WS-TLN-SPA-LENGTH PIC 9(4) COMP VALUE 8192. 2! - *----------------------------------------------! END HELPGEN ---- - - **************************************************************** ! - * VARIABLES NORMALISEES * ! - **************************************************************** ! - 01 WS-TLNGIE. ! - * TOP PERMETTANT DE DETECTER LA PRESENCE DE LA SECTION M-100 ! - 02 WS-TLN-M100 PIC X VALUE 'N'. ! - * DATE ET HEURE FORMATTEES EN FIN DE SECTION Q-100 ! - 02 WS-TLN-DATE. ! - 05 WS-TLN-JJ PIC X(2). ! - 05 FILLER PIC X VALUE '/'. ! - 05 WS-TLN-MM PIC X(2). ! - 05 FILLER PIC X VALUE '/'. ! - 05 WS-TLN-AA PIC X(2). ! - 02 WS-TLN-DATE-LTH PIC 9(4) COMP VALUE 8. ! - 02 WS-TLN-TIME PIC X(8). ! - 02 WS-TLN-TIME-D REDEFINES WS-TLN-TIME. ! - 05 FILLER PIC X. ! - 05 WS-TLN-HH PIC X(2). ! - 05 WS-TLN-MN PIC X(2). ! - 05 WS-TLN-SS PIC X(2). ! - 05 FILLER PIC X. ! - 02 WS-TLN-DATE-AFF. ! - 05 WS-TLN-JJ-AFF PIC X(2). ! - 05 FILLER PIC X VALUE '/'. ! - 05 WS-TLN-MM-AFF PIC X(2). ! - 05 FILLER PIC X VALUE '/'. ! - 05 WS-TLN-SA-AFF. ! - 07 WS-TLN-SI-AFF PIC X(2). ! - 07 WS-TLN-AA-AFF PIC X(2). ! - 02 WS-TLN-TIME-AFF. ! - 05 WS-TLN-HH-AFF PIC X(2). ! - 05 FILLER PIC X VALUE 'H'. ! - 05 WS-TLN-MN-AFF PIC X(2). ! - * INDICE DE PARCOURS UTILISE DANS GIEPF03I, ET GIEPF03. ! - 02 WS-TLN-IND PIC 9(2) VALUE ZERO. ! - * VARIABLE PERMETTANT L'IDENTIFICATION DU TRAITEMENT ! - * TELON OU PAS . ! - 02 WS-TLN-TYP-PROG PIC X VALUE SPACES. ! - 88 WS-TLN-PROG-TELON VALUE 'T'. ! - * TOP A RENSEIGENER A 'C' POUR UN DEBRANCHEMENT VERS UN ! - * PRGROMME NON TELON. INTERPRETER EN SECTION C-300. ! - 02 WS-TLN-TYP-XCTL PIC X VALUE SPACES. ! - 88 WS-TLN-XCTL-NON-TELON VALUE 'C'. ! - * VARIABLE CONTENANT LA VALEUR EMISE PAR LA SELECTION ! - * D'UN DETAIL (FONCTION ZOOM) ! - 02 WS-TLN-VAL-SELECT PIC X VALUE 'D'. ! - * ZONES D'APPEL AU MODULE ODATAMJ ET IDATAMJ ! - 02 WS-TLN-TYPDATE PIC X(3) VALUE 'D03'. ! - 02 WS-TLN-NB-DEC PIC 9 VALUE ZERO. ! - 02 WS-TLN-SIGNE PIC X VALUE 'N'. ! - * ZONES D'APPEL AU MODULE OSPITAB, ISPITAB, OSPIGRP,ISPIGRP ! - 02 WS-TLN-LTH-KEY PIC 9(4) COMP VALUE ZERO. ! - 02 WS-TLN-LTH-DEBKEY PIC 9(4) COMP VALUE ZERO. ! - 02 WS-TLN-EL-DEMANDES PIC X(6) VALUE SPACES. ! - 02 WS-TLN-CODTAB PIC X(8) VALUE SPACES. ! - * ZONES D'APPEL AU MODULE ILUHNKY ! - 02 WS-TLN-LTH-RAC PIC 9(2) VALUE ZERO. ! - 02 WS-TLN-RAC-LUHN PIC X(20) VALUE SPACES. ! - * ZONES PERMETTANT LA SAUVEGARDE DU CODE HEADER DE ! - * L'APPLICATION EXECUTEE LORS D'UN APPEL DE VALEUR ! - 02 WS-TLN-DEB-SPA PIC X(2). ! - 02 WS-TLN-BIN-SPA REDEFINES WS-TLN-DEB-SPA PIC 9(4) COMP. ! - 02 WS-TLN-BIN-MAX PIC 9(5) COMP VALUE 16447. ! - 02 WS-TLN-BIN-MIN PIC 9(5) COMP VALUE ZERO. ! - * VARIABLE PERMETTANT D'INDIQUER SI UNE CONVERSION DES ! - * LETTRES MINUSCULES ACCENTUEES EN LETTRE MAJUSCULE EST ! - * A EFFECTUER DANS LES FLDTYPES 'ALPHAB' ET 'ALPHABG' ! - 02 WS-TLN-IDC-CONVERSION PIC X VALUE 'O'. ! - * ZONES PERMETTANT LA GESTION DU MESSAGE D'ERREUR POUR ! - * CONTROLE DE PREMIER NIVEAU. ! - 02 WS-TLN-MSG. ! - 05 WS-TLN-DBT-MSG PIC X(2) VALUE SPACES. ! - 05 WS-TLN-NUM-MSG PIC X(4) VALUE SPACES. ! - * ZONE PERMETTANT LA GESTION DES ABENDS ! - 02 WS-TLN-EIB. ! - 05 WS-TLN-EIBFN PIC X(2) VALUE SPACES. ! - 05 WS-TLN-EIBRCODE PIC X(6) VALUE SPACES. ! - 02 WS-TLN-ABT-PGM. ! - 05 WS-TLN-ABT-PGM-HD PIC X(2) VALUE 'TX'. ! - 05 WS-TLN-ABT-PGM-ID PIC X(6) VALUE '00ABD '. ! - * VARIABLE PERMETTANT LE PASSAGE D'INFORMATIONS DU PROGRAMME ! - * APPLICATIF AU PROGRAMME APPEL DE VALEUR. ! - * RECUPERATION DE CETTE VARIABLE DANS LA ZONE DE COMMAREA ! - * HELP-MSG-NAME-KEY(1). ! - 02 WS-TLN-HELP-NAME-KEY. ! - 05 WS-TLN-HELP-DEB-KEY PIC X(10) VALUE SPACES. ! - 05 WS-TLN-HELP-FIN-KEY PIC X(10) VALUE SPACES. ! - 05 FILLER PIC X VALUE SPACE. ! - * ZONE CONTENANT LE LIBELLE COMPLEMENTAIRE A UN MESSAGE ! - * D'ERREUR ! - 02 WS-TLN-LIB-CPL-MES PIC X(32) VALUE SPACES. ! - 02 WS-TLN-ADR-PGM PIC X(6) VALUE SPACES. ! - * TYPE PROVENANCE APPEL (MODE NATIF OU PAS) ! - 02 WS-TLN-TYP-PROV PIC X. ! - 88 APPEL-NATIF VALUE 'N'. ! - 88 APPEL-ALICE VALUE 'A'. ! - * MESSAGE ENVOYE SI APPEL EN MODE NATIF ! - 02 WS-TLN-MES-ERR-PROV PIC X(22) ! - VALUE 'APPEL DIRECT INTERDIT'. ! - 02 WS-TLN-LG-MES PIC 9(4) COMP VALUE 22. ! - 02 WS-TLN-PFKEY-INDICATOR PIC 9(2). ! - 88 ENTREE VALUE 0. ! - 88 AIDE VALUE 1. 88 DOCU VALUE 2. ! - 88 MENUPRE VALUE 3. 88 APPVAL VALUE 4. ! - 88 REFRESH VALUE 5. 88 LIBRE1 VALUE 6. ! - 88 PAGEPRE VALUE 7. 88 PAGESUI VALUE 8. ! - 88 ZOOM VALUE 10. 88 ECRPRE VALUE 12. ! - 88 MESS VALUE 14. 88 MENUGEN VALUE 15. ! - 88 CONVERT VALUE 17. ! - 88 LIBRE2 VALUE 18. 88 DROITE VALUE 19. ! - 88 GAUCHE VALUE 20. 88 TOPPERS VALUE 22. ! - 88 PROFCPT VALUE 23. 88 IMPRDIAM VALUE 24. ! - 88 EFFECR VALUE 25. ! - 02 WS-TLN-FCT-VALIDATION PIC X. ! - 88 VALIDATION VALUE 'O'. ! - * INDICATEUR DEDIE A CHACUNE DES FOCNTIONS PROPOS�ES. ! - * VALEUR POSSIBLE : N --> FONCTION NON UTILIS�E ! - * : O --> FONCTION UTILISEE ! - * : I --> FONCTION NON UTILISEE, MAIS RESERVATION ! - * : EMPLACEMENT TOUCHE DE FONCTION ! - 02 WS-TLN-TABLE-FONCTION. ! - 05 WS-TLN-AIDE-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-DOCU-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-ECRPRE-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-MENUGEN-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-MENUPRE-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-APPVAL-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-PAGEPRE-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-PAGESUI-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-GAUCHE-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-DROITE-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-ZOOM-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-REFRESH-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-MESS-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-TOPPERS-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-CONVERT-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-PROFCPT-UTI PIC X VALUE 'N'. ! - 05 WS-TLN-VALIDATION-UTI REDEFINES ! - WS-TLN-PROFCPT-UTI PIC X. ! - * VARIABLES A RENSEIGNER DANS LE CAS D'UTILISATION ! - * DE FONCTION DIFFERENTES DE CELLES DEJA PROPOSEES. ! - * LES TOUCHES DE FONCTIONS ASSOCIEES DOIVENT ETRE ! - * 'F6' ET 'F18'. ! - 02 WS-TLN-TCH-LIBRE1 PIC X(16) VALUE SPACES. ! - 02 WS-TLN-TCH-LIBRE2 PIC X(16) VALUE SPACES. ! - * VARIABLE PERMETTANT DE PARAMETRER LE MODULE APPELER ! - * POUR UTILISATION DES TOUCHES DE FONCTIONS. ! - 02 WS-TLN-MODULE PIC X(8) VALUE SPACES. ! - * NOM DE LA TS PERMETTANT LA SAUVEGARDE DE LA COMMAREA ! - * APRES LE 'RETURN TRANSID' ! - 02 WS-TLN-HOLD-AREA-KEY. ! - 05 WS-TLN-HOLD-AREA-LTERM PIC X(4). ! - 05 WS-TLN-HOLD-AREA-NAME PIC X(4). ! - 02 WS-TLN-HOLD-AREA-NAME-DFLT PIC X(4) VALUE 'SCOM'. ! - * ZONE DE TRAVAIL PERMETTANT DE RESTAURER L'INDICATEUR ! - * INDIQUANT SI UNE VALEUR A �T� S�LECTIONN�E LORS DE ! - * L'APPEL DE VALEUR. ! - 02 WS-TLN-MODIFY-INDICATOR PIC X. ! - * ZONE DE TRAVAIL PERMETTANT D'INDIQUER SI UN POINT ! - * DE SYNCRONISATION EST NECESSAIRE LORS D'UN CHAINAGE ! - * PAR XCTL. LA VALEUR PAR DEFAUT EST (O)UI ET PEUT ETRE ! - * RENSEIGNE A (N)ON SI ON NE DESIRE PAS EXECUTE L'ORDRE ! - * 'EXEC CICS SYNCPOINT'. ! - 02 WS-TLN-IDC-SYNCPOINT PIC X VALUE 'O'. ! - 88 TRAITER-SYNCPOINT VALUE 'O'. ! - * CARACT�RE UTILIS� POUR MARQUER UN CHAMP PAR LE PROGRAMME ! - * P00740 ! - 02 WS-TLN-CAR-SEL PIC X VALUE 'X'. ! - * ZONES D'APPEL AUX MODULES CONTROLE NO TELEPHONE ! - 02 WS-TLN-APP-TEL. ! - 05 WS-TLN-CD-POST PIC X(5) VALUE SPACES. ! - 05 WS-TLN-TYP-ERR PIC X(1) VALUE SPACES. ! - 05 WS-TLN-IDC-CTRL PIC X(1) VALUE SPACES. ! - ! - * ZONES DE TRAVAIL SUR DATE ET HEURE ! - 02 WS-TLN-ASKTIME PIC X(15). ! - * ZONES PERMETTANT DE RECUPERER ANNEE SUR 4 CAR. ! - 02 WS-TLN-YEAR PIC S9(08) COMP VALUE +0. ! - 02 WS-TLN-YEAR-NUM PIC 9(04) VALUE 0. ! - ! - * VARIABLE PERMETTANT D'INDIQUER SI LES BLANCS SONT AUTORISES ! - * DANS LA DONNEE EN ENTREE ! - 02 WS-TLN-IDC-BLANC PIC X VALUE 'O'. ! - * ZONES UTILISEES DANS LA CONVERSION DEVISES CVMTT ! - 02 WS-TLN-NB-DEC-ORI PIC 9(01). ! - 02 WS-TLN-DEV-ORI PIC X(03). ! - 02 WS-TLN-BOOL-SIGNE PIC X(01). ! - 02 WS-TLN-NB-DEC-CBL PIC 9(01). ! - 02 WS-TLN-DEV-CBL PIC X(03). ! - 02 WS-TLN-NB-DEC-ECT PIC 9(01). ! - 02 WS-TLN-DEV-ECT PIC X(03). ! - 02 WS-TLN-BOOL-ECT PIC X(01). ! - 02 WS-TLN-MT-ECT PIC S9(15)V9(3). ! - * ZONES UTILISEES DANS LA CONVERSION DEVISES CNVMT ! - 02 WS-TLN-ORI-NB-DEC PIC 9(01). ! - 02 WS-TLN-ORI-DVS PIC X(03). ! - 02 WS-TLN-CBL-IDC-SGN PIC X(01) VALUE 'O'. ! - 02 WS-TLN-CBL-NB-DEC PIC 9(01). ! - 02 WS-TLN-CBL-NB-ENT PIC 9(02). ! - 02 WS-TLN-CBL-DVS PIC X(03). ! - 02 WS-TLN-CBL-AFF PIC X(01) VALUE 'O'. ! - 02 WS-TLN-CBL-IDC-SEP PIC X(01) VALUE 'O'. ! - *----------------------------------------------! END GIEWSSD ---- - - ******************************************************** - * T E L O N R E L E A S E D A T A * - ******************************************************** - SKIP1 - 01 TELON-RELEASE-DATA. - 05 TELON-RELEASE-EYECATCH PIC X(10) VALUE 'TELON ID'. - 05 TELON-REL-MOD-ID PIC X(6) VALUE '4.1 '. - 05 TELON-REL-DATE PIC X(6) VALUE '031130'. - 05 TELON-MOD-NO PIC X(4) VALUE '0311'. - 05 TELON-MOD-DATE PIC X(6) VALUE '031130'. - 05 TELON-PGM-ID PIC X(6) VALUE 'CIC'. - 05 TELON-EXECUTION-OPTIONS. - 10 TELON-TRACE-OPTION PIC X VALUE 'N'. - 10 FILLER PIC X(7) VALUE SPACES. - 05 TELON-GEN-DATE PIC X(8) VALUE '02/17/10'. - 05 TELON-GEN-TIME PIC X(5) VALUE '16.56'. - 05 TELON-PROGRAM-FEATURES. - 10 TELON-PGMSTRUCT-FEATURE PIC X VALUE '3'. - 10 TELON-LINEOPT-FEATURE PIC X VALUE '1'. - 10 TELON-ABNORMALT-FEATURE PIC X VALUE '3'. - 10 TELON-COBOL-VERSION PIC X VALUE '3'. - 10 TELON-EATTR-FEATURE PIC X VALUE 'N'. - 10 FILLER PIC X(5) VALUE SPACES. - SKIP1 - EJECT - ******************************************************** - * A B N O R M A L T E R M I N A T I O N A R E A * - ******************************************************** - SKIP1 - 01 ABNORMAL-TERMINATION-AREA. - 05 FILLER PIC X(8) VALUE 'ABT AREA'. - 05 ABT-TEST-FACILITY-AREA. - 10 ABT-TEST-FACILITY-IND PIC X VALUE 'N'. - 88 ABT-TEST-FACILITY-ACTIVE VALUE 'Y'. - 88 ABT-TEST-FACILITY-NOT-ACTIVE VALUE 'N'. - 10 ABT-TEST-MODE-IND PIC X VALUE 'P'. - 88 ABT-TEST-MODE-ABT VALUE 'A'. - 88 ABT-TEST-MODE-PGM VALUE 'P'. - * IF THE TELON TEST FACILITY IS ACTIVE - * AND THE ABT-TEST-MODE IS "P" - * THEN THE ABT-CONTROL-INDICATOR WILL BE FORCED TO SPACE. - 10 FILLER PIC X(2) VALUE LOW-VALUES. - 10 ABT-TEST-FACILITY-RESERVE PIC X(4) VALUE LOW-VALUES. - 05 ABT-CONTROL-INFO. - 10 ABT-CONTROL-INDICATOR PIC X VALUE 'R'. - 88 ABT-DO-ABEND VALUE 'A'. - 88 ABT-DO-WRITE VALUE 'E'. - 88 ABT-DO-TRANSFER VALUE 'R'. - 88 ABT-CONTINUE-PROCESS VALUE ' '. - 10 ABT-IN-PROGRESS PIC X VALUE 'N'. - 10 ABT-DYNAMIC-CONTROL-PGM PIC X(8) VALUE 'ADCCABT'. - 10 ABT-DYNAMIC-CONTROL-RC PIC S9(4) COMP VALUE +0. - 10 ABT-NUMBER-OF-STD-PARMS PIC 9(2) COMP VALUE 9. - 10 ABT-NUMBER-OF-USER-PARMS PIC 9(2) COMP VALUE 1. - 10 ABT-NUMBER-OF-DA-PARMS PIC 9(2) COMP VALUE 0. - 10 ABT-PGM-GEN-TYPE PIC X(4) VALUE 'CICS'. - 88 ABT-PGM-IS-TSOPGM VALUE 'TSO '. - 88 ABT-PGM-IS-IMSDYN VALUE 'IDYN'. - 88 ABT-PGM-IS-IMSSTAT VALUE 'ISTA'. - 88 ABT-PGM-IS-IMSDRVR VALUE 'IDRV'. - 88 ABT-PGM-IS-CICSPGM VALUE 'CICS'. - 88 ABT-PGM-IS-BATCHPGM VALUE 'BATC'. - 88 ABT-PGM-IS-AS400PGM VALUE 'AS4 '. - 88 ABT-PGM-IS-AS400DRV VALUE 'AS4D'. - 88 ABT-PGM-IS-WINCHPGM VALUE 'WINC'. - 88 ABT-PGM-IS-WINCHDRV VALUE 'WIND'. - 88 ABT-PGM-IS-UNIXPGM VALUE 'UNIX'. - 88 ABT-PGM-IS-UNIXDRV VALUE 'UNXD'. - 88 ABT-PGM-IS-STORED VALUE 'STPR'. - 10 ABT-PGM-GEN-REL-LEVEL PIC X(4) VALUE '4.1 '. - 10 ABT-PGM-NAME PIC X(8) VALUE 'TC4E3H0 '. - 10 ABT-PGM-TRAN-CODE PIC X(8) VALUE '4E3H'. - 10 ABT-PGM-MAP-NAME PIC X(8) VALUE 'MC4E3H0'. - 10 ABT-NEXT-PROGRAM-NAME. - 15 ABT-NEXT-PROGRAM-NAME-HDR PIC X(2) VALUE 'TC'. - 15 ABT-NEXT-PROGRAM-NAME-ID PIC X(5) VALUE '00ABD'. - 15 ABT-NEXT-PROGRAM-NAME-TRL PIC X(1) VALUE ' '. - 10 ABT-TPO-ERRMSG1-LTH PIC 9(4) COMP VALUE 79. - 10 ABT-ERROR-MESSAGE PIC X(80) VALUE SPACES. - 10 ABT-SPA-TS-QUEUE-ID PIC X(8) VALUE LOW-VALUES. - SKIP1 - 05 ABT-PGM-ERROR-DATA. - 10 ABT-ERROR-SECTION. - 15 ABT-ERROR-SECTION-NAME PIC X(5) VALUE SPACES. - 15 ABT-ERROR-SECTION-SUB PIC X(3) VALUE SPACES. - 10 ABT-PROGRAM-FUNCTION REDEFINES - ABT-ERROR-SECTION PIC X(8). - * ABT PROGRAM FUNCTION VALUES ARE DOCUMENTED IN THE - * DYNAMICALLY INVOKED ABT ROUTINE. - 10 ABT-ERROR-ACTIVITY PIC X(4). - 88 ABT-ERROR-IS-TP-IMS VALUE 'IMS '. - 88 ABT-ERROR-IS-TP-CICS VALUE 'CICS'. - 88 ABT-ERROR-IS-TP-TSO VALUE 'TSO '. - 88 ABT-ERROR-IS-SEQ VALUE 'SEQ '. - 88 ABT-ERROR-IS-VSAM VALUE 'VSAM'. - 88 ABT-ERROR-IS-DLI VALUE 'DLI '. - 88 ABT-ERROR-IS-EXECDLI VALUE 'XDLI'. - 88 ABT-ERROR-IS-DB2 VALUE 'DB2 '. - 88 ABT-ERROR-IS-CQUEUE VALUE 'CQUE'. - 88 ABT-ERROR-IS-CJOURNAL VALUE 'CJRL'. - 10 ABT-ERROR-ABEND-CODE PIC S9(4) COMP. - 10 FILLER PIC X(16) VALUE LOW-VALUES. - SKIP1 - 05 ABT-DATA-ACCESS-INFO. - 10 ABT-DA-FUNCTION PIC X(8) VALUE SPACES. - 10 ABT-DA-FUNCTION-DLI REDEFINES ABT-DA-FUNCTION. - 15 ABT-DA-FUNC-DLI PIC X(4). - 15 ABT-DA-FUNC-PCB-TYPE PIC X(4). - 10 ABT-U100-SUB PIC X(3) VALUE SPACES. - 10 FILLER PIC X(1) VALUE LOW-VALUE. - 10 ABT-DA-ACCESS-NAME PIC X(8). - 10 ABT-DA-GENERIC-STATUS PIC X(3) VALUE SPACES. - 88 ABT-DA-OK VALUE 'OK '. - 88 ABT-DA-DUPLICATE VALUE 'DUP'. - 88 ABT-DA-NOTAVAIL VALUE 'NAV'. - 88 ABT-DA-NOTFOUND VALUE 'NFD'. - 88 ABT-DA-ENDFILE VALUE 'EOF' 'NFD'. - 88 ABT-DA-LOGICERR VALUE 'LOG'. - 88 ABT-DA-SECURITY VALUE 'SEC'. - 88 ABT-DA-DBMERROR VALUE 'DBM'. - 88 ABT-DA-ANYERROR VALUE 'DUP' 'NAV' - 'NFD' 'EOF' - 'LOG' 'SEC' - 'DBM'. - 10 FILLER PIC X(1) VALUE LOW-VALUE. - 10 ABT-DA-SPECIFIC-STATUS PIC X(6) VALUE LOW-VALUES. - 10 FILLER REDEFINES ABT-DA-SPECIFIC-STATUS. - 15 ABT-DLI-STATUS PIC X(2). - 15 FILLER PIC X(4). - 10 FILLER REDEFINES ABT-DA-SPECIFIC-STATUS. - 15 ABT-DB2-STATUS PIC S9(9) COMP-4. - 15 FILLER PIC X(2). - 10 FILLER REDEFINES ABT-DA-SPECIFIC-STATUS. - 15 ABT-VSAM-CICS-STATUS PIC X(1). - 15 FILLER PIC X(5). - 10 FILLER REDEFINES ABT-DA-SPECIFIC-STATUS. - 15 ABT-BATCH-STATUS PIC X(2). - 15 FILLER PIC X(4). - 10 FILLER REDEFINES ABT-DA-SPECIFIC-STATUS. - 15 ABT-CQUEUE-CICS-STATUS PIC X(1). - 15 FILLER PIC X(5). - 10 FILLER REDEFINES ABT-DA-SPECIFIC-STATUS. - 15 ABT-CJOURNAL-CICS-STATUS PIC X(1). - 15 FILLER PIC X(5). - 10 FILLER PIC X(16) VALUE LOW-VALUES. - EJECT - ******************************************************** - * T P I N P U T S C R E E N T A B L E * - ******************************************************** - 01 TP-INPUT-TABLE. - 05 FILLER PIC X(4) VALUE SPACES. - 05 TPI-DAPECJ-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-DAPECM-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-DAPECA-LTH PIC 9(4) COMP VALUE 4. - 05 TPI-DAECNJ-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-DAECNM-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-DAECNA-LTH PIC 9(4) COMP VALUE 4. - 05 TPI-CDBQE1-LTH PIC 9(4) COMP VALUE 5. - 05 TPI-CDGUI1-LTH PIC 9(4) COMP VALUE 5. - 05 TPI-NOCPT1-LTH PIC 9(4) COMP VALUE 11. - 05 TPI-NOCHQ-LTH PIC 9(4) COMP VALUE 7. - 05 TPI-CDPTN-LTH PIC 9(4) COMP VALUE 5. - 05 TPI-REF1L15-LTH PIC 9(4) COMP VALUE 13. - 05 TPI-REF2L15-LTH PIC 9(4) COMP VALUE 4. - 05 TPI-REF4L16-LTH PIC 9(4) COMP VALUE 6. - 05 TPI-REF1L16-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-REF1L17-LTH PIC 9(4) COMP VALUE 32. - 05 TPI-RF1L18J-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-RF1L18M-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-RF1L18A-LTH PIC 9(4) COMP VALUE 4. - 05 TPI-RF2L18J-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-RF2L18M-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-RF2L18A-LTH PIC 9(4) COMP VALUE 4. - 05 TPI-RF1L19J-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-RF1L19M-LTH PIC 9(4) COMP VALUE 2. - 05 TPI-RF1L19A-LTH PIC 9(4) COMP VALUE 4. - 05 TPI-REF2L19-LTH PIC 9(4) COMP VALUE 3. - 05 TPI-REF3L19-LTH PIC 9(4) COMP VALUE 1. - 05 TPI-REF5L19-LTH PIC 9(4) COMP VALUE 1. - 05 TPI-ERRMSG1-LTH PIC 9(4) COMP VALUE 79. - EJECT - ******************************************************** - * T P O U T P U T S C R E E N T A B L E * - ******************************************************** - 01 TP-OUTPUT-TABLE. - 05 SCT-TABLE-HEADER. - 10 FILLER PIC XX VALUE LOW-VALUES. - * OUTPUT ONLY FIELDS SAVED IN THE SCREEN IMAGE (Y/N). - 10 SCT-REFRESH-OUTPUTS PIC X VALUE 'Y'. - * SOUND THE ALARM ON ERROR ATTRIBUTES (Y/N). - 10 SCT-ALARM-INDICATOR PIC X VALUE 'N'. - * FILL CHARACTER FOR INPUT FIELDS ON OUTPUT. - * (SPACE/LOW-VALUES/'_') - 10 SCT-INPUT-FILL-CHAR PIC X VALUE SPACES. - * BMS BUFFER ALIGNMENT (Y/N). - 10 SCT-BMS-ALIGNMENT PIC X VALUE 'N'. - * LOWER CASE INPUT SUPPORT (Y/N) - 10 SCT-LOWERCASE-INPUT PIC X VALUE 'N'. - 10 SCT-HELP-CHAR PIC X VALUE LOW-VALUES. - 10 FILLER PIC X(6) VALUE LOW-VALUES. - * VARIABLE FIELD ENTRY LENGTH. - 10 SCT-ENTRY-LENGTH PIC 9(4) COMP VALUE 4. - * NUMBER OF ATTRIBUTES FOR EACH FIELD. - 10 SCT-ATTR-COUNT PIC 9(4) COMP VALUE 1. - 05 SCT-NOMMAP. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-NOMMAP-LTH PIC 9(4) COMP VALUE 8. - 05 SCT-DATE. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-DATE-LTH PIC 9(4) COMP VALUE 10. - 05 SCT-NUMECR. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-NUMECR-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-HEURE. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-HEURE-LTH PIC 9(4) COMP VALUE 5. - 05 SCT-CDAPL. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-CDAPL-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-LIBAPL. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIBAPL-LTH PIC 9(4) COMP VALUE 27. - 05 SCT-DAPECJ. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-DAPECJ-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-DAPECM. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-DAPECM-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-DAPECA. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-DAPECA-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-DAECNJ. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-DAECNJ-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-DAECNM. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-DAECNM-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-DAECNA. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-DAECNA-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-MTOPE. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-MTOPE-LTH PIC 9(4) COMP VALUE 20. - 05 SCT-CDDVS. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-CDDVS-LTH PIC 9(4) COMP VALUE 3. - 05 SCT-CDBQE. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-CDBQE-LTH PIC 9(4) COMP VALUE 5. - 05 SCT-CDGUI. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-CDGUI-LTH PIC 9(4) COMP VALUE 5. - 05 SCT-NOCPT. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-NOCPT-LTH PIC 9(4) COMP VALUE 11. - 05 SCT-CLERIB. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-CLERIB-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-CDBQE1. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-CDBQE1-LTH PIC 9(4) COMP VALUE 5. - 05 SCT-CDGUI1. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-CDGUI1-LTH PIC 9(4) COMP VALUE 5. - 05 SCT-NOCPT1. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-NOCPT1-LTH PIC 9(4) COMP VALUE 11. - 05 SCT-CLERIB1. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-CLERIB1-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-NBELT. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-NBELT-LTH PIC 9(4) COMP VALUE 9. - 05 SCT-MODRGL. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-MODRGL-LTH PIC 9(4) COMP VALUE 1. - 05 SCT-LIBRGL. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIBRGL-LTH PIC 9(4) COMP VALUE 32. - 05 SCT-NBPREST. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-NBPREST-LTH PIC 9(4) COMP VALUE 3. - 05 SCT-NOCHQ. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-NOCHQ-LTH PIC 9(4) COMP VALUE 7. - 05 SCT-LIB1. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB1-LTH PIC 9(4) COMP VALUE 17. - 05 SCT-CDPTN. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-CDPTN-LTH PIC 9(4) COMP VALUE 5. - 05 SCT-LIBPTN. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIBPTN-LTH PIC 9(4) COMP VALUE 20. - 05 SCT-IDCPTN. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-IDCPTN-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-LIB1B. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB1B-LTH PIC 9(4) COMP VALUE 19. - 05 SCT-ECGFIN. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-ECGFIN-LTH PIC 9(4) COMP VALUE 3. - 05 SCT-LIB2. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB2-LTH PIC 9(4) COMP VALUE 17. - 05 SCT-REF1L15. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF1L15-LTH PIC 9(4) COMP VALUE 13. - 05 SCT-LIB3. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB3-LTH PIC 9(4) COMP VALUE 7. - 05 SCT-REF2L15. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF2L15-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-REF3L15. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-REF3L15-LTH PIC 9(4) COMP VALUE 32. - 05 SCT-LIB4A. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB4A-LTH PIC 9(4) COMP VALUE 17. - 05 SCT-REF3L16. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-REF3L16-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-TIRET. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-TIRET-LTH PIC 9(4) COMP VALUE 1. - 05 SCT-REF4L16. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF4L16-LTH PIC 9(4) COMP VALUE 6. - 05 SCT-LIB4. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB4-LTH PIC 9(4) COMP VALUE 7. - 05 SCT-REF1L16. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF1L16-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-REF2L16. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-REF2L16-LTH PIC 9(4) COMP VALUE 32. - 05 SCT-LIB5. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB5-LTH PIC 9(4) COMP VALUE 17. - 05 SCT-REF1L17. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF1L17-LTH PIC 9(4) COMP VALUE 32. - 05 SCT-LIB6. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB6-LTH PIC 9(4) COMP VALUE 17. - 05 SCT-RF1L18J. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF1L18J-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-RF1L18M. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF1L18M-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-RF1L18A. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF1L18A-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-LIB6B. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB6B-LTH PIC 9(4) COMP VALUE 12. - 05 SCT-RF2L18J. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF2L18J-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-RF2L18M. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF2L18M-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-RF2L18A. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF2L18A-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-LIB7. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB7-LTH PIC 9(4) COMP VALUE 17. - 05 SCT-RF1L19J. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF1L19J-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-RF1L19M. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF1L19M-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-RF1L19A. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-RF1L19A-LTH PIC 9(4) COMP VALUE 4. - 05 SCT-REF2L19. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF2L19-LTH PIC 9(4) COMP VALUE 3. - 05 SCT-REF3L19. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF3L19-LTH PIC 9(4) COMP VALUE 1. - 05 SCT-REF4L19. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-REF4L19-LTH PIC 9(4) COMP VALUE 23. - 05 SCT-LIB8. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIB8-LTH PIC 9(4) COMP VALUE 12. - 05 SCT-REF5L19. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-REF5L19-LTH PIC 9(4) COMP VALUE 1. - 05 SCT-CDREJ. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-CDREJ-LTH PIC 9(4) COMP VALUE 2. - 05 SCT-LIBREJ. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIBREJ-LTH PIC 9(4) COMP VALUE 32. - 05 SCT-DAREJ. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-DAREJ-LTH PIC 9(4) COMP VALUE 10. - 05 SCT-ERRMSG1. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'I'. - 10 TPO-ERRMSG1-LTH PIC 9(4) COMP VALUE 79. - 05 SCT-LIG23. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIG23-LTH PIC 9(4) COMP VALUE 79. - 05 SCT-LIG24. - 10 FILLER PIC X VALUE LOW-VALUES. - 10 SCT-FIELD-TYPE PIC X VALUE 'O'. - 10 TPO-LIG24-LTH PIC 9(4) COMP VALUE 79. - 05 SCT-END-ENTRY PIC 9(4) COMP VALUE 0. - EJECT - ******************************************************** - * T P B U F F E R * - ******************************************************** - 01 TP-BUFFER. - 02 FILLER PIC X(12). - 02 TP-OUTPUT-BUFFER-FIELDS. - 05 TPO-NOMMAP-ATTR PIC XXX. - 05 TPO-NOMMAP PIC X(8). - 05 TPO-DATE-ATTR PIC XXX. - 05 TPO-DATE PIC X(10). - 05 TPO-NUMECR-ATTR PIC XXX. - 05 TPO-NUMECR PIC X(4). - 05 TPO-HEURE-ATTR PIC XXX. - 05 TPO-HEURE PIC X(5). - 05 TPO-CDAPL-ATTR PIC XXX. - 05 TPO-CDAPL PIC X(2). - 05 TPO-LIBAPL-ATTR PIC XXX. - 05 TPO-LIBAPL PIC X(27). - 05 TPO-DAPECJ-ATTR PIC XXX. - 05 TPO-DAPECJ PIC X(2). - 05 TPO-DAPECM-ATTR PIC XXX. - 05 TPO-DAPECM PIC X(2). - 05 TPO-DAPECA-ATTR PIC XXX. - 05 TPO-DAPECA PIC X(4). - 05 TPO-DAECNJ-ATTR PIC XXX. - 05 TPO-DAECNJ PIC X(2). - 05 TPO-DAECNM-ATTR PIC XXX. - 05 TPO-DAECNM PIC X(2). - 05 TPO-DAECNA-ATTR PIC XXX. - 05 TPO-DAECNA PIC X(4). - 05 TPO-MTOPE-ATTR PIC XXX. - 05 TPO-MTOPE-CHAR PIC X(20). - 05 TPO-MTOPE REDEFINES TPO-MTOPE-CHAR - PIC -B---B---B---B--9V.99. - 05 TPO-CDDVS-ATTR PIC XXX. - 05 TPO-CDDVS PIC X(3). - 05 TPO-CDBQE-ATTR PIC XXX. - 05 TPO-CDBQE PIC X(5). - 05 TPO-CDGUI-ATTR PIC XXX. - 05 TPO-CDGUI PIC X(5). - 05 TPO-NOCPT-ATTR PIC XXX. - 05 TPO-NOCPT PIC X(11). - 05 TPO-CLERIB-ATTR PIC XXX. - 05 TPO-CLERIB PIC X(2). - 05 TPO-CDBQE1-ATTR PIC XXX. - 05 TPO-CDBQE1 PIC X(5). - 05 TPO-CDGUI1-ATTR PIC XXX. - 05 TPO-CDGUI1 PIC X(5). - 05 TPO-NOCPT1-ATTR PIC XXX. - 05 TPO-NOCPT1 PIC X(11). - 05 TPO-CLERIB1-ATTR PIC XXX. - 05 TPO-CLERIB1 PIC X(2). - 05 TPO-NBELT-ATTR PIC XXX. - 05 TPO-NBELT-CHAR PIC X(9). - 05 TPO-NBELT REDEFINES TPO-NBELT-CHAR - PIC ZZZZZZZZ9. - 05 TPO-MODRGL-ATTR PIC XXX. - 05 TPO-MODRGL PIC X. - 05 TPO-LIBRGL-ATTR PIC XXX. - 05 TPO-LIBRGL PIC X(32). - 05 TPO-NBPREST-ATTR PIC XXX. - 05 TPO-NBPREST-CHAR PIC X(3). - 05 TPO-NBPREST REDEFINES TPO-NBPREST-CHAR - PIC ZZ9. - 05 TPO-NOCHQ-ATTR PIC XXX. - 05 TPO-NOCHQ PIC X(7). - 05 TPO-LIB1-ATTR PIC XXX. - 05 TPO-LIB1 PIC X(17). - 05 TPO-CDPTN-ATTR PIC XXX. - 05 TPO-CDPTN PIC X(5). - 05 TPO-LIBPTN-ATTR PIC XXX. - 05 TPO-LIBPTN PIC X(20). - 05 TPO-IDCPTN-ATTR PIC XXX. - 05 TPO-IDCPTN PIC X(2). - 05 TPO-LIB1B-ATTR PIC XXX. - 05 TPO-LIB1B PIC X(19). - 05 TPO-ECGFIN-ATTR PIC XXX. - 05 TPO-ECGFIN PIC X(3). - 05 TPO-LIB2-ATTR PIC XXX. - 05 TPO-LIB2 PIC X(17). - 05 TPO-REF1L15-ATTR PIC XXX. - 05 TPO-REF1L15 PIC X(13). - 05 TPO-LIB3-ATTR PIC XXX. - 05 TPO-LIB3 PIC X(7). - 05 TPO-REF2L15-ATTR PIC XXX. - 05 TPO-REF2L15 PIC X(4). - 05 TPO-REF3L15-ATTR PIC XXX. - 05 TPO-REF3L15 PIC X(32). - 05 TPO-LIB4A-ATTR PIC XXX. - 05 TPO-LIB4A PIC X(17). - 05 TPO-REF3L16-ATTR PIC XXX. - 05 TPO-REF3L16 PIC X(4). - 05 TPO-TIRET-ATTR PIC XXX. - 05 TPO-TIRET PIC X. - 05 TPO-REF4L16-ATTR PIC XXX. - 05 TPO-REF4L16 PIC X(6). - 05 TPO-LIB4-ATTR PIC XXX. - 05 TPO-LIB4 PIC X(7). - 05 TPO-REF1L16-ATTR PIC XXX. - 05 TPO-REF1L16 PIC X(2). - 05 TPO-REF2L16-ATTR PIC XXX. - 05 TPO-REF2L16 PIC X(32). - 05 TPO-LIB5-ATTR PIC XXX. - 05 TPO-LIB5 PIC X(17). - 05 TPO-REF1L17-ATTR PIC XXX. - 05 TPO-REF1L17 PIC X(32). - 05 TPO-LIB6-ATTR PIC XXX. - 05 TPO-LIB6 PIC X(17). - 05 TPO-RF1L18J-ATTR PIC XXX. - 05 TPO-RF1L18J PIC X(2). - 05 TPO-RF1L18M-ATTR PIC XXX. - 05 TPO-RF1L18M PIC X(2). - 05 TPO-RF1L18A-ATTR PIC XXX. - 05 TPO-RF1L18A PIC X(4). - 05 TPO-LIB6B-ATTR PIC XXX. - 05 TPO-LIB6B PIC X(12). - 05 TPO-RF2L18J-ATTR PIC XXX. - 05 TPO-RF2L18J PIC X(2). - 05 TPO-RF2L18M-ATTR PIC XXX. - 05 TPO-RF2L18M PIC X(2). - 05 TPO-RF2L18A-ATTR PIC XXX. - 05 TPO-RF2L18A PIC X(4). - 05 TPO-LIB7-ATTR PIC XXX. - 05 TPO-LIB7 PIC X(17). - 05 TPO-RF1L19J-ATTR PIC XXX. - 05 TPO-RF1L19J PIC X(2). - 05 TPO-RF1L19M-ATTR PIC XXX. - 05 TPO-RF1L19M PIC X(2). - 05 TPO-RF1L19A-ATTR PIC XXX. - 05 TPO-RF1L19A PIC X(4). - 05 TPO-REF2L19-ATTR PIC XXX. - 05 TPO-REF2L19 PIC X(3). - 05 TPO-REF3L19-ATTR PIC XXX. - 05 TPO-REF3L19 PIC X. - 05 TPO-REF4L19-ATTR PIC XXX. - 05 TPO-REF4L19 PIC X(23). - 05 TPO-LIB8-ATTR PIC XXX. - 05 TPO-LIB8 PIC X(12). - 05 TPO-REF5L19-ATTR PIC XXX. - 05 TPO-REF5L19 PIC X. - 05 TPO-CDREJ-ATTR PIC XXX. - 05 TPO-CDREJ PIC X(2). - 05 TPO-LIBREJ-ATTR PIC XXX. - 05 TPO-LIBREJ PIC X(32). - 05 TPO-DAREJ-ATTR PIC XXX. - 05 TPO-DAREJ PIC X(10). - 05 TPO-ERRMSG1-ATTR PIC XXX. - 05 TPO-ERRMSG1 PIC X(79). - 05 TPO-LIG23-ATTR PIC XXX. - 05 TPO-LIG23 PIC X(79). - 05 TPO-LIG24-ATTR PIC XXX. - 05 TPO-LIG24 PIC X(79). - SKIP2 - ******************************************************** - * T P O I N P U T F I E L D S * - ******************************************************** - 02 TPO-INPUT-FIELDS REDEFINES TP-OUTPUT-BUFFER-FIELDS. - 05 FILLER PIC X(11). - 05 FILLER PIC X(13). - 05 FILLER PIC X(7). - 05 FILLER PIC X(8). - 05 FILLER PIC X(5). - 05 FILLER PIC X(30). - 05 FILLER PIC X(3). - 05 TPI-DAPECJ PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-DAPECM PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-DAPECA PIC X(4). - 05 FILLER PIC X(3). - 05 TPI-DAECNJ PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-DAECNM PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-DAECNA PIC X(4). - 05 FILLER PIC X(23). - 05 FILLER PIC X(6). - 05 FILLER PIC X(8). - 05 FILLER PIC X(8). - 05 FILLER PIC X(14). - 05 FILLER PIC X(5). - 05 FILLER PIC X(3). - 05 TPI-CDBQE1 PIC X(5). - 05 FILLER PIC X(3). - 05 TPI-CDGUI1 PIC X(5). - 05 FILLER PIC X(3). - 05 TPI-NOCPT1 PIC X(11). - 05 FILLER PIC X(5). - 05 FILLER PIC X(12). - 05 FILLER PIC X(4). - 05 FILLER PIC X(35). - 05 FILLER PIC X(6). - 05 FILLER PIC X(3). - 05 TPI-NOCHQ PIC X(7). - 05 FILLER PIC X(20). - 05 FILLER PIC X(3). - 05 TPI-CDPTN PIC X(5). - 05 FILLER PIC X(23). - 05 FILLER PIC X(5). - 05 FILLER PIC X(22). - 05 FILLER PIC X(6). - 05 FILLER PIC X(20). - 05 FILLER PIC X(3). - 05 TPI-REF1L15 PIC X(13). - 05 FILLER PIC X(10). - 05 FILLER PIC X(3). - 05 TPI-REF2L15 PIC X(4). - 05 FILLER PIC X(35). - 05 FILLER PIC X(20). - 05 FILLER PIC X(7). - 05 FILLER PIC X(4). - 05 FILLER PIC X(3). - 05 TPI-REF4L16 PIC X(6). - 05 FILLER PIC X(10). - 05 FILLER PIC X(3). - 05 TPI-REF1L16 PIC X(2). - 05 FILLER PIC X(35). - 05 FILLER PIC X(20). - 05 FILLER PIC X(3). - 05 TPI-REF1L17 PIC X(32). - 05 FILLER PIC X(20). - 05 FILLER PIC X(3). - 05 TPI-RF1L18J PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-RF1L18M PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-RF1L18A PIC X(4). - 05 FILLER PIC X(15). - 05 FILLER PIC X(3). - 05 TPI-RF2L18J PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-RF2L18M PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-RF2L18A PIC X(4). - 05 FILLER PIC X(20). - 05 FILLER PIC X(3). - 05 TPI-RF1L19J PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-RF1L19M PIC X(2). - 05 FILLER PIC X(3). - 05 TPI-RF1L19A PIC X(4). - 05 FILLER PIC X(3). - 05 TPI-REF2L19 PIC X(3). - 05 FILLER PIC X(3). - 05 TPI-REF3L19 PIC X. - 05 FILLER PIC X(26). - 05 FILLER PIC X(15). - 05 FILLER PIC X(3). - 05 TPI-REF5L19 PIC X. - 05 FILLER PIC X(5). - 05 FILLER PIC X(35). - 05 FILLER PIC X(13). - 05 FILLER PIC X(3). - 05 TPI-ERRMSG1 PIC X(79). - 05 FILLER PIC X(82). - 05 FILLER PIC X(82). - 01 TP-OUTPUT-BUFFER REDEFINES TP-BUFFER PIC X(1063). - EJECT - ******************************************************** - * A P P L I C A T I O N W O R K A R E A * - ******************************************************** - 01 APP-WORK-AREA. - 05 FILLER PIC X(12) VALUE 'APP WORK'. - - *TELON-------------------------------------------------------------- - *DS: ECCX.PPO00.SRCTLIB ! COPY TWKAREA ! - *------------------------------------------------------------------- - ************************************************************** ! - * COPY STANDARD GENERE DANS TOUS LES PROGRAMMES * ! - ************************************************************** ! - 01 WORKAREA. ! - * MESSAGES ! - 05 ERROR-MESSAGE-CURSOR PIC X(6) ! - VALUE '000002'. ! - 05 ERROR-MESSAGE-HELPCMB PIC X(6) ! - VALUE '000134'. ! - 05 ERROR-MESSAGE-NOHIT PIC X(6) ! - VALUE '000135'. ! - 05 ERROR-MESSAGE-MULTHIT PIC X(6) ! - VALUE '000136'. ! - 05 ERROR-MESSAGE-HIGHLIGHT PIC X(6) ! - VALUE '000007'. ! - 05 ERROR-MESSAGE-SELECT-LINE-NO PIC X(6) ! - VALUE '000137'. ! - 05 ERROR-MESSAGE-HELP PIC X(79) ! - VALUE SPACES. ! - 05 ERROR-MESSAGE-HOLD PIC X(79) ! - VALUE SPACES. ! - 05 ERROR-MESSAGE-RESUME PIC X(6) ! - VALUE '000138'. ! - 05 ERROR-MESSAGE-HOLD-ISRT PIC X(6) ! - VALUE '000139'. ! - ** VARIABLES ! - 05 MORE-LITERAL PIC X(7) VALUE '.../...'. ! - 05 NO-MORE-LITERAL PIC X(7) VALUE '* FIN *'. ! - 05 ERROR-REQ-CHAR PIC X VALUE '*'. ! - 05 PRINT-ERROR-FLAG PIC X VALUE SPACES. ! - 05 HELP-CHAR PIC X VALUE '?'. ! - 05 HELP-FIELD-PGM-ID PIC X(4) VALUE 'CCVH'. ! - 05 HELP-SCREEN-PGM-ID PIC X(4) VALUE 'CCVH'. ! - 05 HELP-TABLE-LIMIT PIC 9(2) COMP VALUE 1. ! - 05 NO-MAP-FLAG PIC X VALUE 'N'. ! - *----------------------------------------------! END TWKAREA ---- - - SKIP3 - ******************************************************** - * P R O G R A M W O R K A R E A * - ******************************************************** - 01 PROGRAM-WORK-AREA. - 05 FILLER PIC X(12) VALUE 'PGM WORK'. - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY WKAREA ! - *------------------------------------------------------------------- - **************************************************************** ! - * * ! - * ZONE DE TRAVAIL SPECIFIQUE PROGRAMME * ! - * * ! - **************************************************************** ! - ! - 77 WS-CDPTN-N PIC 9(05) VALUE ZERO. ! - ! - *================================================================ ! - * ZONES ECRAN ! - *================================================================ ! - * * ! - 01 TOP-SAISIE PIC X. ! - 88 TOP-SAISIE-OK VALUE 'O'. ! - 88 TOP-SAISIE-KO VALUE 'K'. ! - ! - ! - 01 WS-CHANGEMENT PIC X(01) VALUE 'N'. ! - ! - 01 WS-TIRET PIC X(01). ! - ! - 01 WS-DAFIC. ! - 05 WS-DAFIC-SA. ! - 10 WS-DAFIC-SS PIC X(2). ! - 10 WS-DAFIC-AA PIC X(2). ! - 05 WS-DAFIC-MM PIC X(2). ! - 05 WS-DAFIC-JJ PIC X(2). ! - ! - 01 WS-DA8. ! - 05 WS-DA8-SA. ! - 10 WS-DA8-SS PIC X(2). ! - 10 WS-DA8-AA PIC X(2). ! - 05 WS-DA8-MM PIC X(2). ! - 05 WS-DA8-JJ PIC X(2). ! - ! - 01 WS-DA10. ! - 05 WS-DA10-JJ PIC X(2). ! - 05 FILLER PIC X VALUE ' '. ! - 05 WS-DA10-MM PIC X(2). ! - 05 FILLER PIC X VALUE ' '. ! - 05 WS-DA10-SA. ! - 10 WS-DA10-SS PIC X(2). ! - 10 WS-DA10-AA PIC X(2). ! - ! - * ZONES VARIABLES DE L'ECRAN TC4E3H0 ! - 01 WS-DA-PEC-DEM-SP PIC X(8). ! - 01 WS-DA-ECN-OPE PIC X(8). ! - 01 WS-DA-REJ-OPE PIC X(8). ! - ! - 01 WS-CLE-RIB PIC X(02). ! - 01 WS-CD-BQE-DST1 PIC X(05). ! - 01 WS-CD-GUI-DST1 PIC X(05). ! - 01 WS-NO-CPT-DST1 PIC X(11). ! - 01 WS-CLE-RIB1 PIC X(02). ! - 01 WS-LIB-RGL PIC X(32). ! - 01 WS-NO-CHQ PIC X(07). ! - ! - 01 WS-LIB1 PIC X(18). ! - 01 WS-LIB-PTN PIC X(20). ! - 01 WS-CD-PTN PIC X(05). ! - 01 WS-IDC-PTN PIC X(02). ! - 01 WS-LIB1B PIC X(19). ! - 01 WS-ECG-FIN PIC X(05). ! - ! - 01 WS-LIB2 PIC X(18). ! - 01 WS-REF1L15 PIC X(13). ! - 01 WS-LIB3 PIC X(10). ! - 01 WS-REF2L15 PIC X(04). ! - 01 WS-REF3L15 PIC X(28). ! - ! - 01 WS-LIB4 PIC X(06). ! - 01 WS-REF1L16 PIC X(02). ! - 01 WS-REF2L16 PIC X(32). ! - 01 WS-LIB4A PIC X(18). ! - 01 WS-REF3L16 PIC X(04). ! - 01 WS-REF4L16 PIC X(06). ! - 01 WS-LIB5 PIC X(18). ! - 01 WS-REF1L17 PIC X(32). ! - ! - 01 WS-LIB6 PIC X(18). ! - 01 WS-REF1L18 PIC X(10). ! - 01 WS-LIB6B PIC X(12). ! - 01 WS-REF2L18. ! - 05 WS-REF2L18-JJ PIC X(02). ! - 05 FILLER PIC X(01) VALUE SPACE. ! - 05 WS-REF2L18-MM PIC X(02). ! - 05 FILLER PIC X(01) VALUE SPACE. ! - 05 WS-REF2L18-SA PIC X(04). ! - ! - 01 WS-LIB7 PIC X(18). ! - 01 WS-REF1L19. ! - 05 WS-REF1L19-JJ PIC X(02). ! - 05 FILLER PIC X(01) VALUE SPACE. ! - 05 WS-REF1L19-MM PIC X(02). ! - 05 FILLER PIC X(01) VALUE SPACE. ! - 05 WS-REF1L19-SA PIC X(04). ! - 01 WS-REF2L19 PIC X(03). ! - 01 WS-REF3L19 PIC X(01). ! - 01 WS-REF4L19 PIC X(25). ! - 01 WS-LIB8 PIC X(12). ! - 01 WS-REF5L19 PIC X(01). ! - 01 WS-LIB-REJ-OPE PIC X(32). ! - ! - * CALCUL CLE RIB ! - 01 WS-CPT. ! - 05 WS-CPT-BQE PIC X(05). ! - 05 WS-CPT-GUI PIC X(05). ! - 05 WS-CPT-CPT PIC X(11). ! - 05 WS-CPT-RIB-CLE PIC X(02). ! - ! - ! - *================================================================ ! - * COPY POUR APPEL SPITAB ! - *================================================================ ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY YSPIPARA 2! - *------------------------------------------------------------------- - 01 SPI-LONG PIC S9(4) COMP. 2! - 01 SPI-PARMCICS. 2! - 10 SPI-PARAMETRE. 2! - 15 SPI-FONCTION PIC X(2). 2! - 15 SPI-NBPOST PIC S9(8) COMP. 2! - 15 FILLER REDEFINES SPI-NBPOST. 2! - 20 SPI-NBPOST1 PIC X(2). 2! - 20 SPI-NBPOST2 PIC S9(4) COMP. 2! - 15 SPI-RETCOD PIC X(2). 2! - 15 SPI-CODTAB PIC X(8). 2! - 15 SPI-EL-DEMANDES PIC X(60). 2! - 15 SPI-EL-RECHERCHE PIC X(60). 2! - 15 SPI-OPERATEUR PIC X(2). 2! - 15 SPI-REF-POSTE PIC X(50). 2! - 15 SPI-REF-FIN PIC X(50). 2! - 10 SPI-PCB. 2! - 15 SPI-FICHIER PIC X(8). 2! - 15 FILLER PIC X(2). 2! - 15 SPI-STAT PIC X(2). 2! - 15 FILLER PIC X(2). 2! - 15 FILLER PIC X(4). 2! - 10 SPI-IOAREA PIC X(2000). 2! - *----------------------------------------------! END YSPIPARA ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY YSP4E013 2! - *------------------------------------------------------------------- -000010* TABLE CROS LIEE PLATEFORME 2! -000020 01 YSP4E013-YSP4E013. 2! -000030* TABLE CROS LIEE PLATEFORME 2! -000040 20 YSP4E013-PAGE-01. 2! -000050* CODE APPL ICATION O PERATIO 2! -000060 25 YSP4E013-CD-APLI-OPE PIC X(02). 2! -000070* CODE TYPE CRO 2! -000080 25 YSP4E013-CD-TY-CRO PIC X(03). 2! -000090* LIBELLE L ONG DU CR O 2! -000100 25 YSP4E013-LIB-TY-VER PIC X(32). 2! -000110* LIBELLE C OURT DU C RO 2! -000120 25 YSP4E013-LIB-INT-CT PIC X(10). 2! -000130* LIBELLE C OMMENTAIR E 2! -000140 25 YSP4E013-LIB-CMT PIC X(32). 2! - * DESCRIPTION STRUCTURE SPITAB -> FORMAT LIGHT *******************2! - *PILOTE MOTPASSE 2! - * CYSP4E013TABLE CROS LIEE PLATEFORME VALR 2! - *ACODE APPLICATION OPERATION CD-APLI-OPE 02X * 2! - *BCODE TYPECRO CD-TY-CRO 03X * 2! - *CLIBELLE LONG DU CRO LIB-TY-VER 32X 2! - *DLIBELLE COURT DU CRO LIB-INT-CT 10X 2! - *ELIBELLE COMMENTAIRE LIB-CMT 32X 2! - *----------------------------------------------! END YSP4E013 ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY YSP4E053 2! - *------------------------------------------------------------------- -000010* TABLE MODE REGLEMENT 2! -000020 01 YSP4E053-YSP4E053. 2! -000030* TABLE MODE REGLEMENT 2! -000040 20 YSP4E053-PAGE-01. 2! -000050* CODE MODE REGLEMEN T OPERA 2! -000060 25 YSP4E053-CD-MODE-RGL-OPE PIC X(01). 2! -000070* LIBELLE M ODE REGLE MENT 2! -000080 25 YSP4E053-LIB-MODE-RGL PIC X(32). 2! - * DESCRIPTION STRUCTURE SPITAB -> FORMAT LIGHT *******************2! - *PILOTE MOTPASSE 2! - * CYSP4E053TABLE MODE REGLEMENT R 2! - *ACODE MODE REGLEMENT OPERATICD-MODE-RGL-OPE01X * 2! - *BLIBELLE MODE REGLEMENT LIB-MODE-RGL 32X 2! - *----------------------------------------------! END YSP4E053 ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY YSP4E017 2! - *------------------------------------------------------------------- -000010* TABLE CODE REJET 2! -000020 01 YSP4E017-YSP4E017. 2! -000030* TABLE CODE REJET 2! -000040 20 YSP4E017-PAGE-01. 2! -000050* CODE REJE T OPERATI ON 2! -000060 25 YSP4E017-CD-REJ-OPE PIC X(02). 2! -000070* LIBELLE R EJET OPER ATION 2! -000080 25 YSP4E017-LIB-REJ-OPE PIC X(32). 2! - * DESCRIPTION STRUCTURE SPITAB -> FORMAT LIGHT *******************2! - *PILOTE MOTPASSE 2! - * CYSP4E017TABLE CODE REJET R 2! - *ACODE REJET OPERATION CD-REJ-OPE 02X * 2! - *BLIBELLE REJET OPERATION LIB-REJ-OPE 32X 2! - *----------------------------------------------! END YSP4E017 ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY YZL00271 2! - *------------------------------------------------------------------- - ******************************************************************2! - * COMPTABILITE GENERALE *2! - * MODULE P00271 - CALCUL DE CLES *2! - * *2! - * COMMAREA 80 CAR. *2! - * *2! - ******************************************************************2! - * 2! - 01 ZL00271-LG-COMM PIC S9(4) COMP VALUE +80. 2! - * 2! - 01 ZL00271-ENR. 2! - *------ NUMERO PROGRAMME 2! - 03 ZL00271-NO-PGM PIC X(08). 2! - *------ CODE CHOIX 2! - * 1= CLE COMPTE 2! - * 2= CLE RIB 2! - 03 ZL00271-CD-CHX PIC X(01). 2! - * 2! - *------ NUMERO RIB 2! - 03 ZL00271-RIB-21-CAR. 2! - 05 ZL00271-RIB-CD-BNQ PIC X(05). 2! - 05 ZL00271-RIB-CD-GUI PIC X(05). 2! - 05 ZL00271-RIB-CPT-11-CAR PIC X(11). 2! - * 2! - *------ RACINE COMPTE 2! - 03 FILLER REDEFINES ZL00271-RIB-21-CAR. 2! - 05 ZL00271-RAC-7-CAR PIC X(07). 2! - 05 FILLER PIC X(14). 2! - * 2! - 03 FILLER PIC X(30). 2! - * 2! - *------ ZONE RETOUR 2! - 03 ZL00271-RETOUR. 2! - 05 FILLER PIC X(16). 2! - * 2! - 05 ZL00271-RIB-CLE. 2! - 07 FILLER PIC X(01). 2! - 07 ZL00271-RAC-CLE PIC X(01). 2! - * 2! - 05 ZL00271-CD-RET PIC X(02). 2! - *----------------------------------------------! END YZL00271 ---- - - *================================================================ ! - * MODULES ! - *================================================================ ! - * * ! - * 01 F PIC X(12) VALUE '**COMMAREA**'. ! - * 01 WS-LNG-COM PIC S9(04) VALUE +8000 COMP. ! - * 01 Y00CIA. ! - * 05 FILLER PIC X(16). ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y00CIA 2! - *------------------------------------------------------------------- -000010*CPG* 00 Y00CIA COMMAREA INTRA APPLICATIONS 2! -000020* LG=04000, STRUCTURE MAJ LE 04/07/94 PAR REPRISE 2! -000030* GENERE LE 28/10/08 A 16H21, PFX : Y00CIA- MEMBRE : Y00CIA 2! -000040 03 Y00CIA-Y00CIA. 2! -000050* COMMAREA INTRA APPLICATIONS 1 31/08/92 2! -000060 05 Y00CIA-ETN-TEC. 2! -000070* ENTETE TECHNIQUE 1 - - 2! -000080 07 Y00CIA-CD-RET-PGM PIC 9(2). 2! -000090* CODE RETOUR PROGRAMME 1 16/02/06 2! -000100 07 Y00CIA-CD-ABEND PIC X(4). 2! -000110* CODE ABEND 3 28/12/94 2! -000120 07 Y00CIA-CD-TY-FIC PIC X(1). 2! -000130* CODE TYPE FICHIER 7 25/08/97 2! -000140 07 Y00CIA-CD-PVN-APP PIC X(1). 2! -010010* CODE PROVENANCE APPEL 8 28/12/94 2! -010020 07 Y00CIA-NO-PGM-CICS-APP PIC X(8). 2! -010030* NUMERO PROGRAMME CICS APPELE 9 - - 2! -010040 07 Y00CIA-NO-PGM-CICS-AT PIC X(8). 2! -010050* NUMERO PROGRAMME CICS APPELANT 17 21/01/04 2! -010060 07 Y00CIA-NO-SAL PIC X(8). 2! -010070* NUMERO SALARIE 25 16/11/04 2! -010080 07 Y00CIA-CD-APLI PIC X(2). 2! -010090* CODE APPLICATION 33 28/12/94 2! -010100 07 Y00CIA-NIV-DLG PIC X(3). 2! -010110* NIVEAU DELEGATION 35 10/11/05 2! -010120 07 Y00CIA-NOM-TS-DBT PIC X(7). 2! -010130* NOM TS ECRAN 38 05/04/01 2! -010140 07 Y00CIA-CD-MES-ERR PIC X(6). 2! -020010* CODE MESSAGE ERREUR 45 28/12/94 2! -020020 07 Y00CIA-LIB-CPL-MES-ERR PIC X(32). 2! -020030* LIBELLE COMPLEMENT MESSAGE ERREUR 51 18/07/03 2! -020040 07 Y00CIA-CD-TY-MES-ERR PIC X(1). 2! -020050* CODE TYPE MESSAGE ERREUR 83 28/12/94 2! -020060 88 Y00CIA-MES-BLOQUANT VALUE 'B'. 2! -020070* DONNEE NIVEAU 88 MESSAGE BLOQUANT 84 - - 2! -020080 88 Y00CIA-MES-INFORMATIF VALUE 'I'. 2! -020090* DONNEE NIVEAU 88 MESSAGE INFORMATIF 84 - - 2! -020100 88 Y00CIA-MES-RETOUR VALUE 'P'. 2! -020110* DONNEE NIVEAU 88 MESSAGE RETOUR 84 - - 2! -020120 07 Y00CIA-CD-SI PIC X(3). 2! -020130* CODE S.I. 84 - - 2! -020140 07 Y00CIA-NO-PGM-CICS-RTG PIC X(8). 2! -030010* NUMERO PROGRAMME CICS ROUTAGE 87 - - 2! -030020 07 Y00CIA-CD-EFS PIC X(2). 2! -030030* CODE ENTITE-FS 95 30/06/00 2! -030040 07 Y00CIA-CD-FCT-DEM-RTG PIC X(3). 2! -030050* CODE FONCTION DEMANDE ROUTAGE 97 05/04/01 2! -030060 06 FILLER PIC X(101). 2! -030070* FIN SS-STR ETN-TEC 100 2! -030080 05 Y00CIA-ETN-APL. 2! -030090* ENTETE COMMAREA APPLICATIVE 201 06/10/92 2! -030100 07 Y00CIA-FCT-DEM PIC X(3). 2! -030110* FONCTION DEMANDE 201 26/09/05 2! -030120 07 Y00CIA-NB-OCC-DEM PIC 9(4) COMP. 2! -030130* NOMBRE OCCURRENCE DEMANDE 204 28/12/94 2! -030140 07 Y00CIA-NB-OCC-RES PIC 9(4) COMP. 2! -040010* NOMBRE OCCURRENCE RESULTAT 206 06/08/96 2! -040020 07 Y00CIA-NB-OCC-TOT PIC 9(7) COMP. 2! -040030* NOMBRE OCCURRENCE TOTALE 208 20/02/06 2! -040040 07 Y00CIA-NO-ITEM-TS PIC 9(4) COMP. 2! -040050* NUMERO ITEM TS 212 13/12/04 2! -040060 07 Y00CIA-NB-PAG-TS PIC 9(3) COMP. 2! -040070* NOMBRE DE PAGES EN TS 214 05/08/04 2! -040080 07 Y00CIA-WK-LG-TS-ECR PIC S9(4) COMP. 2! -040090* LONGUEUR TS ECRAN 216 17/07/03 2! -040100 07 Y00CIA-WK-LG-OCC-APLI PIC 9(4) COMP. 2! -040110* WORKING LONGUEUR OCCURRENCE APPLICATIV 218 - - 2! -040120 07 Y00CIA-WK-LG-ETN-RPN PIC 9(4) COMP. 2! -040130* WORKING LONGUEUR ENTETE REPONSE 220 28/12/94 2! -040140 07 Y00CIA-NB-OCC-PG-ECR PIC 9(4) COMP. 2! -050010* NOMBRE OCCURRENCE PAGE ECRAN 222 16/07/03 2! -050020 07 Y00CIA-IDC-OCC-SPL PIC X(1). 2! -050030* INDICATEUR OCCURRENCE SUPPLEMENTAIRE 224 22/10/07 2! -050040 07 Y00CIA-CD-RET-APLI PIC 9(2). 2! -050050* CODE RETOUR APPLICATIF 225 16/02/06 2! -050060 07 Y00CIA-WK-LG-ZON-ENT PIC S9(4) COMP. 2! -050070* WORKING LONGUEUR ZONE ENTREE 227 28/12/94 2! -050080 07 Y00CIA-WK-LG-ZON-SOR PIC S9(4) COMP. 2! -050090* WORKING LONGUEUR ZONE SORTIE 229 17/07/03 2! -050100 07 Y00CIA-NOM-TS-Q PIC X(16). 2! -050110* NOM TS QUEUE 231 28/10/08 2! -050120 06 FILLER PIC X(54). 2! -050130* FIN SS-STR ETN-APL 247 2! -050140 05 Y00CIA-ZON-APLI. 2! -060010* ZONE APPLICATION 301 06/10/92 2! -060020 07 FILLER PIC X(3700). 2! -060030* 301 2! - *----------------------------------------------! END Y00CIA ---- - - * 05 WS-YN4ESPS-APLI REDEFINES Y00CIA-ZON-APLI. ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY YN4ESPS 2! - *------------------------------------------------------------------- -000010*GAR* OS YN4ESPS COPY ACCESSEUR F4EOPSPS 2! -000020* LG=01000, ESD MAJ LE 30/12/98, ELS MAJ LE 27/04/99 PAR CS0135 2! -000030* GENERE LE 27/04/99 A 16H42, PFX : YN4ESP- MEMBRE : YN4ESPS 2! -000040 07 YN4ESP-ZONE-ALLER. 2! -000050* ZONE ALLER ACCESSEUR 1 16/08/96 2! -000060 10 YN4ESP-IDC-PEC-OPE-SP PIC X(1). 2! -000070* INDICATEUR PRISE OPERATION SX:-SP 1 31/08/98 2! -000080 10 YN4ESP-DA-ENT-OPE-SP PIC X(8). 2! -000090* DATE ENTREE OPERATION SX:-SP 2 - - 2! -000100 10 YN4ESP-NO-SEQ-SP PIC X(6). 2! -000110* NUMERO SEQUENCE SX:-SP 10 08/04/98 2! -000120 10 YN4ESP-DA-PEC-DEM-SP PIC X(8). 2! -000130* DATE PRISE DEMANDEE SX:-SP 16 31/08/98 2! -000140 10 YN4ESP-CD-PTN-SP PIC X(5). 2! -010010* CODE PARTENAIRE SX:-SP 24 28/12/94 2! -010020 10 YN4ESP-NO-SAL-SP PIC X(8). 2! -010030* NUMERO SALARIE SX:-SP 29 - - 2! -010040 10 YN4ESP-CD-ORI-REJ-SPS PIC X(3). 2! -010050* CODE ORIGINE REJET SUSPENS 37 07/09/98 2! -010060 10 YN4ESP-CD-REJ-OPE PIC X(2). 2! -010070* CODE REJET OPERATION 40 31/08/98 2! -010080 10 YN4ESP-DA-REJ-OPE PIC X(8). 2! -010090* DATE REJET OPERATION 42 - - 2! -010100 10 YN4ESP-CD-ENT-SRT-OP PIC X(1). 2! -010110* CODE ENTREE SORTIE SX:-OP 50 - - 2! -010120 10 YN4ESP-DA-ECN-OPE PIC X(8). 2! -010130* DATE ECHEANCE OPERATION 51 - - 2! -010140 10 YN4ESP-DA-THR-GEN-OPE PIC X(8). 2! -020010* DATE THEORIQUE GENERATION OPERATION 59 - - 2! -020020 10 YN4ESP-DA-EFF REDEFINES YN4ESP-DA-THR-GEN-OPE. 2! -020030* DATE EFFET 59 28/12/94 2! -020040 12 YN4ESP-DA-EFF-A PIC X(4). 2! -020050* DATE EFFET ANNEE 59 - - 2! -020060 12 YN4ESP-DA-EFF-M PIC X(2). 2! -020070* DATE EFFET MOIS 63 - - 2! -020080 12 YN4ESP-DA-EFF-J PIC X(2). 2! -020090* DATE EFFET JOUR 65 - - 2! -020100 10 YN4ESP-MT-OPE-SIT PIC 9(13)V9(2). 2! -020110* MONTANT OPERATION SIT 67 02/09/98 2! -020120 10 YN4ESP-CD-BQE-DST PIC 9(5). 2! -020130* CODE BANQUE DESTINATAIRE 82 28/12/94 2! -020140 10 YN4ESP-CD-GUI-DST PIC X(5). 2! -030010* CODE GUICHET DESTINATAIRE 87 07/03/96 2! -030020 10 YN4ESP-NO-CPT-DST PIC X(11). 2! -030030* NUMERO COMPTE DESTINATAIRE 92 28/12/94 2! -030040 10 YN4ESP-CD-APLI-OPE PIC X(2). 2! -030050* CODE APPLICATION OPERATION 103 31/08/98 2! -030060 10 YN4ESP-CD-DMN-OPE PIC X(2). 2! -030070* CODE DOMAINE OPERATION 105 - - 2! -030080 10 YN4ESP-CD-DVS-OPE PIC X(3). 2! -030090* CODE DEVISE OPERATION 107 - - 2! -030100 10 YN4ESP-CD-MODE-TT-OPE PIC X(3). 2! -030110* CODE MODE TRAITEMENT OPERATION 110 - - 2! -030120 10 YN4ESP-IDT-CPT-FNC PIC X(4). 2! -030130* IDENTIFIANT COMPTE FINANCIER 113 02/09/98 2! -030140 10 YN4ESP-CD-MODE-RGL-OPE PIC X(1). 2! -040010* CODE MODE REGLEMENT OPERATION 117 31/08/98 2! -040020 10 YN4ESP-CD-SNS-OPE-SIT PIC X(2). 2! -040030* CODE SENS OPERATION SIT 118 02/09/98 2! -040040 10 YN4ESP-DA-CRE-LOT-SIT PIC X(8). 2! -040050* DATE CREATION LOT SIT 120 31/08/98 2! -040060 10 YN4ESP-NO-PTN PIC 9(3) COMP-3. 2! -040070* NUMERO PARTENAIRE 128 28/12/94 2! -040080 10 YN4ESP-NO-PRD-PTN PIC 9(3) COMP-3. 2! -040090* NUMERO PRODUIT PARTENAIRE 130 - - 2! -040100 10 YN4ESP-NO-CLI-PTN PIC 9(7) COMP-3. 2! -040110* NUMERO CLIENT PARTENAIRE 132 - - 2! -040120 10 YN4ESP-NO-ORD-CTR PIC 9(2) COMP-3. 2! -040130* NUMERO ORDRE CONTRAT 136 - - 2! -040140 10 YN4ESP-CD-TY-CRO PIC X(3). 2! -050010* CODE TYPE CRO 138 - - 2! -050020 10 YN4ESP-LIB-NOM PIC X(32). 2! -050030* LIBELLE NOM 141 - - 2! -050040 10 YN4ESP-LIB-PRN PIC X(32). 2! -050050* LIBELLE PRENOM 173 - - 2! -050060 10 YN4ESP-DA-CRE-LOT-COM PIC X(8). 2! -050070* DATE CREATION LOT COMMISSION 205 31/08/98 2! -050080 10 YN4ESP-CD-TY-COM PIC X(1). 2! -050090* CODE TYPE COMMISSION 213 28/12/94 2! -050100 10 YN4ESP-NO-STR-DIS PIC X(6). 2! -050110* NUMERO STRUCTURE DISTRIBUTION 214 26/12/95 2! -050120 10 YN4ESP-CD-TY-DCR-DGI PIC X(4). 2! -050130* CODE TYPE DECLARATION DGI 220 02/09/98 2! -050140 10 YN4ESP-PER-DCR-DGI PIC X(6). 2! -060010* PERIODE DECLARATION DGI 224 - - 2! -060020 10 YN4ESP-IDC-PTN-CM PIC X(1). 2! -060030* INDICATEUR PARTENAIRE CREDIT-MUTUEL 230 28/12/94 2! -060040 10 YN4ESP-CD-TY-ECG-FNC PIC X(5). 2! -060050* CODE TYPE ECHANGE FINANCIER 231 17/04/96 2! -060060 10 YN4ESP-CD-PTN PIC X(5). 2! -060070* CODE PARTENAIRE 236 28/12/94 2! -060080 10 YN4ESP-CD-PRD PIC X(2). 2! -060090* CODE PRODUIT 241 - - 2! -060100 10 YN4ESP-IDC-PRD-UNT-CPT PIC X(1). 2! -060110* INDICATEUR PRODUIT UNITE COMPTE 243 - - 2! -060120 10 YN4ESP-NO-POL-9. 2! -060130* NUM�RO DE POLICE 9 CAR 244 04/11/98 2! -060140 12 YN4ESP-NO-POL PIC X(8). 2! -070010* NUMERO POLICE 244 28/12/94 2! -070020 12 YN4ESP-CLE-POL PIC X(1). 2! -070030* CLE POLICE 252 - - 2! -070040 10 YN4ESP-RAC-CLE. 2! -070050* GROUPE COMPTE 253 - - 2! -070060 12 YN4ESP-RACINE PIC X(7). 2! -070070* RACINE DU CLIENT 253 07/03/96 2! -070080 12 YN4ESP-CLE-RACINE PIC X(1). 2! -070090* Cl� de la racine du client 260 28/12/94 2! -070100 10 YN4ESP-NO-DOS-SIN-DCS PIC 9(13) COMP-3. 2! -070110* NUMERO DOSSIER SINISTRE DECES 261 09/05/96 2! -070120 10 YN4ESP-TXT-MTF-OPE PIC X(32). 2! -070130* TEXTE MOTIF OPERATION 268 02/09/98 2! -070140 10 YN4ESP-DA-SCR-CTR PIC X(8). 2! -080010* DATE SOUSCRIPTION CONTRAT 300 28/12/94 2! -080020 10 YN4ESP-DA-CRE-CRO PIC X(8). 2! -080030* DATE CREATION CRO 308 25/02/98 2! -080040 10 YN4ESP-CD-MTL PIC X(1). 2! -080050* CODE MINITEL 316 31/08/98 2! -080060 10 YN4ESP-NO-CHQ PIC X(7). 2! -080070* NUMERO CHEQUE 317 28/12/94 2! -080080 10 YN4ESP-CD-CLO-ECN PIC X(1). 2! -080090* CODE CLOTURE ECHEANCE 324 19/10/98 2! -080100 10 YN4ESP-LIB-NOM-CRP-COM PIC X(32). 2! -080110* LIBELLE NOM CORRESPONDANT COMMISSION 325 28/12/94 2! -080120 10 YN4ESP-LIB-DET-SIT 2! -080130* LIBELLE DETAIL SIT 357 31/08/98 2! -080140 PIC X(24). 2! -090010 07 YN4ESP-ZONE-RETOUR. 2! -090020* ZONE RETOUR ACCESSEUR 381 16/08/96 2! -090030 10 YN4ESP-DETAIL-SIT. 2! -090040* D�TAIL D'UN MVT � VALIDER 381 16/11/98 2! -090050 15 YN4ESP-CD-STA-OPE PIC X(1). 2! -090060* CODE STATUT OPERATION 381 31/08/98 2! -090070 15 YN4ESP-NO-SEQ-OP PIC X(6). 2! -090080* NUMERO SEQUENCE SX:-OP 382 08/04/98 2! -090090 15 YN4ESP-DA-ENT-OPE PIC X(8). 2! -090100* DATE ENTREE OPERATION 388 31/08/98 2! -090110 15 YN4ESP-DA-THR-GEN-OPE PIC X(8). 2! -090120* DATE THEORIQUE GENERATION OPERATION 396 - - 2! -090130 15 YN4ESP-DA-PEC-DEM-SP PIC X(8). 2! -090140* DATE PRISE DEMANDEE SX:-SP 404 - - 2! -100010 15 YN4ESP-CD-REJ-OPE PIC X(2). 2! -100020* CODE REJET OPERATION 412 - - 2! -100030 15 YN4ESP-MT-OPE-SIT PIC 9(13)V9(2). 2! -100040* MONTANT OPERATION SIT 414 02/09/98 2! -100050 15 YN4ESP-NB-ELT-OPE PIC S9(9) COMP-3. 2! -100060* NOMBRE ELEMENT OPERATION 429 06/11/98 2! -100070 15 YN4ESP-NB-PRT-OPE PIC S9(9) COMP-3. 2! -100080* NOMBRE PRESENTATION OPERATION 434 - - 2! -100090 15 YN4ESP-CD-BQE-DST PIC 9(5). 2! -100100* CODE BANQUE DESTINATAIRE 439 28/12/94 2! -100110 15 YN4ESP-CD-GUI-DST PIC X(5). 2! -100120* CODE GUICHET DESTINATAIRE 444 07/03/96 2! -100130 15 YN4ESP-NO-CPT-DST PIC X(11). 2! -100140* NUMERO COMPTE DESTINATAIRE 449 28/12/94 2! -110010 15 YN4ESP-CD-APLI-OPE PIC X(2). 2! -110020* CODE APPLICATION OPERATION 460 31/08/98 2! -110030 15 YN4ESP-NO-SAL-BP PIC X(8). 2! -110040* NUMERO SALARIE SX:-BP 462 28/12/94 2! -110050 15 YN4ESP-NO-SAL-AP PIC X(8). 2! -110060* NUMERO SALARIE SX:-AP 470 - - 2! -110070 15 YN4ESP-CD-DMN-OPE PIC X(2). 2! -110080* CODE DOMAINE OPERATION 478 31/08/98 2! -110090 15 YN4ESP-CD-DVS-OPE PIC X(3). 2! -110100* CODE DEVISE OPERATION 480 - - 2! -110110 15 YN4ESP-CD-MODE-TT-OPE PIC X(3). 2! -110120* CODE MODE TRAITEMENT OPERATION 483 - - 2! -110130 15 YN4ESP-IDT-CPT-FNC PIC X(4). 2! -110140* IDENTIFIANT COMPTE FINANCIER 486 02/09/98 2! -120010 15 YN4ESP-CD-SNS-OPE-SIT PIC X(2). 2! -120020* CODE SENS OPERATION SIT 490 - - 2! -120030 15 YN4ESP-CD-MODE-RGL-OPE PIC X(1). 2! -120040* CODE MODE REGLEMENT OPERATION 492 31/08/98 2! -120050 15 YN4ESP-DA-CRE-LOT-SIT PIC X(8). 2! -120060* DATE CREATION LOT SIT 493 - - 2! -120070 15 YN4ESP-DA-ECN-OPE PIC X(8). 2! -120080* DATE ECHEANCE OPERATION 501 - - 2! -120090 15 YN4ESP-LIB-LOT-SIT 2! -120100* LIBELLE LOT SIT 509 - - 2! -120110 PIC X(24). 2! -120120 15 YN4ESP-CD-TY-ELT-SIT PIC X(3). 2! -120130* CODE TYPE ELEMENT SIT 533 - - 2! -120140 15 YN4ESP-LIB-DET-SIT 2! -130010* LIBELLE DETAIL SIT 536 - - 2! -130020 PIC X(24). 2! -130030 15 YN4ESP-NO-PTN PIC 9(3) COMP-3. 2! -130040* NUMERO PARTENAIRE 560 28/12/94 2! -130050 15 YN4ESP-NO-PRD-PTN PIC 9(3) COMP-3. 2! -130060* NUMERO PRODUIT PARTENAIRE 562 - - 2! -130070 15 YN4ESP-NO-CLI-PTN PIC 9(7) COMP-3. 2! -130080* NUMERO CLIENT PARTENAIRE 564 - - 2! -130090 15 YN4ESP-NO-ORD-CTR PIC 9(2) COMP-3. 2! -130100* NUMERO ORDRE CONTRAT 568 - - 2! -130110 15 YN4ESP-DA-CRE-CRO PIC X(8). 2! -130120* DATE CREATION CRO 570 25/02/98 2! -130130 15 YN4ESP-CD-TY-CRO PIC X(3). 2! -130140* CODE TYPE CRO 578 28/12/94 2! -140010 15 YN4ESP-CD-MTL PIC X(1). 2! -140020* CODE MINITEL 581 31/08/98 2! -140030 15 YN4ESP-DA-SCR-CTR PIC X(8). 2! -140040* DATE SOUSCRIPTION CONTRAT 582 28/12/94 2! -140050 15 YN4ESP-LIB-NOM PIC X(32). 2! -140060* LIBELLE NOM 590 - - 2! -140070 15 YN4ESP-LIB-PRN PIC X(32). 2! -140080* LIBELLE PRENOM 622 - - 2! -140090 15 YN4ESP-NO-LOT-CHQ PIC 9(3) COMP-3. 2! -140100* NUMERO LOT CHEQUE 654 01/09/98 2! -140110 15 YN4ESP-NO-ORD-LOT-CHQ PIC 9(3) COMP-3. 2! -140120* NUMERO ORDRE LOT CHEQUE 656 - - 2! -140130 15 YN4ESP-DA-CRE-LOT-COM PIC X(8). 2! -140140* DATE CREATION LOT COMMISSION 658 31/08/98 2! -150010 15 YN4ESP-CD-TY-COM PIC X(1). 2! -150020* CODE TYPE COMMISSION 666 28/12/94 2! -150030 15 YN4ESP-NO-STR-DIS PIC X(6). 2! -150040* NUMERO STRUCTURE DISTRIBUTION 667 26/12/95 2! -150050 15 YN4ESP-LIB-NOM-CRP-COM PIC X(32). 2! -150060* LIBELLE NOM CORRESPONDANT COMMISSION 673 28/12/94 2! -150070 15 YN4ESP-CD-TY-DCR-DGI PIC X(4). 2! -150080* CODE TYPE DECLARATION DGI 705 02/09/98 2! -150090 15 YN4ESP-PER-DCR-DGI PIC X(6). 2! -150100* PERIODE DECLARATION DGI 709 - - 2! -150110 15 YN4ESP-CD-DCR-DGI PIC X(1). 2! -150120* CODE DECLARATION DGI 715 - - 2! -150130 15 YN4ESP-IDC-PTN-CM PIC X(1). 2! -150140* INDICATEUR PARTENAIRE CREDIT-MUTUEL 716 28/12/94 2! -160010 15 YN4ESP-CD-TY-ECG-FNC PIC X(5). 2! -160020* CODE TYPE ECHANGE FINANCIER 717 17/04/96 2! -160030 15 YN4ESP-CD-PTN PIC X(5). 2! -160040* CODE PARTENAIRE 722 28/12/94 2! -160050 15 YN4ESP-CD-PRD PIC X(2). 2! -160060* CODE PRODUIT 727 - - 2! -160070 15 YN4ESP-NO-POL-9. 2! -160080* NUM�RO DE POLICE 9 CAR 729 04/11/98 2! -160090 17 YN4ESP-NO-POL PIC X(8). 2! -160100* NUMERO POLICE 729 28/12/94 2! -160110 17 YN4ESP-CLE-POL PIC X(1). 2! -160120* CLE POLICE 737 - - 2! -160130 15 YN4ESP-RAC-CLE. 2! -160140* GROUPE COMPTE 738 - - 2! -170010 17 YN4ESP-RACINE PIC X(7). 2! -170020* RACINE DU CLIENT 738 07/03/96 2! -170030 17 YN4ESP-CLE-RACINE PIC X(1). 2! -170040* Cl� de la racine du client 745 28/12/94 2! -170050 15 YN4ESP-NO-DOS-SIN-DCS PIC 9(13) COMP-3. 2! -170060* NUMERO DOSSIER SINISTRE DECES 746 09/05/96 2! -170070 15 YN4ESP-NO-CHQ PIC X(7). 2! -170080* NUMERO CHEQUE 753 28/12/94 2! -170090 15 YN4ESP-CD-TY-CSN PIC X(1). 2! -170100* CODE TYPE CESSION 760 26/12/95 2! -170110 15 YN4ESP-TXT-MTF-OPE PIC X(32). 2! -170120* TEXTE MOTIF OPERATION 761 02/09/98 2! -170130 15 YN4ESP-CD-CLO-ECN PIC X(1). 2! -170140* CODE CLOTURE ECHEANCE 793 19/10/98 2! -180010 15 YN4ESP-DA-REJ-OPE PIC X(8). 2! -180020* DATE REJET OPERATION 794 31/08/98 2! -180030 15 YN4ESP-DA-EFF. 2! -180040* DATE EFFET 802 28/12/94 2! -180050 17 YN4ESP-DA-EFF-A PIC X(4). 2! -180060* DATE EFFET ANNEE 802 - - 2! -180070 17 YN4ESP-DA-EFF-M PIC X(2). 2! -180080* DATE EFFET MOIS 806 - - 2! -180090 17 YN4ESP-DA-EFF-J PIC X(2). 2! -180100* DATE EFFET JOUR 808 - - 2! -180110 15 YN4ESP-NO-NTL-EM PIC X(6). 2! -180120* NUMERO NATIONAL EMETTEUR 810 - - 2! -180130 07 FILLER PIC X(185). 2! -180140* FIN DE STRUCTURE PRINCIPALE 816 2! - *----------------------------------------------! END YN4ESPS ---- - - * ! - * 01 Y00WIA. ! - * 05 FILLER PIC X(16). ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y00WIA 2! - *------------------------------------------------------------------- -000010*GAR* OS Y00WIA DESC. WORKING COMMAREA GENERALISEE ACC. 2! -000020* LG=04000, ESD MAJ LE 04/07/94, ELS MAJ LE 04/07/94 PAR G6A6 2! -000030* GENERE LE 20/04/01 A 09H43, PFX : Y00WIA- MEMBRE : Y00WIA 2! -000040 03 Y00WIA-Y00CIA. 2! -000050* COMMAREA INTRA APPLICATIONS 1 31/08/92 2! -000060 05 Y00WIA-ETN-TEC. 2! -000070* ENTETE TECHNIQUE 1 - - 2! -000080 07 Y00WIA-CD-RET-PGM PIC 9(2). 2! -000090* CODE RETOUR PROGRAMME 1 28/12/94 2! -000100 07 Y00WIA-CD-ABEND PIC X(4). 2! -000110* CODE ABEND 3 - - 2! -000120 07 Y00WIA-CD-TY-FIC PIC X(1). 2! -000130* CODE TYPE FICHIER 7 25/08/97 2! -000140 07 Y00WIA-CD-PVN-APP PIC X(1). 2! -010010* CODE PROVENANCE APPEL 8 28/12/94 2! -010020 07 Y00WIA-NO-PGM-CICS-APP PIC X(8). 2! -010030* NUMERO PROGRAMME CICS APPELE 9 - - 2! -010040 07 Y00WIA-NO-PGM-CICS-AT PIC X(8). 2! -010050* NUMERO PROGRAMME CICS APPELANT 17 - - 2! -010060 07 Y00WIA-NO-SAL PIC X(8). 2! -010070* NUMERO SALARIE 25 - - 2! -010080 07 Y00WIA-CD-APLI PIC X(2). 2! -010090* CODE APPLICATION 33 - - 2! -010100 07 Y00WIA-NIV-DLG PIC X(3). 2! -010110* NIVEAU DELEGATION 35 16/05/00 2! -010120 07 Y00WIA-NOM-TS-DBT PIC X(7). 2! -010130* NOM TS ECRAN 38 05/04/01 2! -010140 07 Y00WIA-CD-MES-ERR PIC X(6). 2! -020010* CODE MESSAGE ERREUR 45 28/12/94 2! -020020 07 Y00WIA-LIB-CPL-MES-ERR PIC X(32). 2! -020030* LIBELLE COMPLEMENT MESSAGE ERREUR 51 - - 2! -020040 07 Y00WIA-CD-TY-MES-ERR PIC X(1). 2! -020050* CODE TYPE MESSAGE ERREUR 83 - - 2! -020060 88 Y00WIA-MES-BLOQUANT VALUE 'B'. 2! -020070* DONNEE NIVEAU 88 MESSAGE BLOQUANT 84 - - 2! -020080 88 Y00WIA-MES-INFORMATIF VALUE 'I'. 2! -020090* DONNEE NIVEAU 88 MESSAGE INFORMATIF 84 - - 2! -020100 88 Y00WIA-MES-RETOUR VALUE 'P'. 2! -020110* DONNEE NIVEAU 88 MESSAGE RETOUR 84 - - 2! -020120 07 Y00WIA-CD-SI PIC X(3). 2! -020130* CODE S.I. 84 - - 2! -020140 07 Y00WIA-NO-PGM-CICS-RTG PIC X(8). 2! -030010* NUMERO PROGRAMME CICS ROUTAGE 87 - - 2! -030020 07 Y00WIA-CD-EFS PIC X(2). 2! -030030* CODE ENTITE-FS 95 30/06/00 2! -030040 07 Y00WIA-CD-FCT-DEM-RTG PIC X(3). 2! -030050* CODE FONCTION DEMANDE ROUTAGE 97 05/04/01 2! -030060 06 FILLER PIC X(101). 2! -030070* FIN SS-STR ETN-TEC 100 2! -030080 05 Y00WIA-ETN-APL. 2! -030090* ENTETE COMMAREA APPLICATIVE 201 06/10/92 2! -030100 07 Y00WIA-FCT-DEM PIC X(3). 2! -030110* FONCTION DEMANDE 201 05/04/01 2! -030120 07 Y00WIA-NB-OCC-DEM PIC 9(4) COMP. 2! -030130* NOMBRE OCCURRENCE DEMANDE 204 28/12/94 2! -030140 07 Y00WIA-NB-OCC-RES PIC 9(4) COMP. 2! -040010* NOMBRE OCCURRENCE RESULTAT 206 06/08/96 2! -040020 07 Y00WIA-NB-OCC-TOT PIC 9(7) COMP. 2! -040030* NOMBRE OCCURRENCE TOTALE 208 27/02/96 2! -040040 07 Y00WIA-NO-ITEM-TS PIC 9(4) COMP. 2! -040050* NUMERO D'ITEM DE TS 212 28/12/94 2! -040060 07 Y00WIA-NB-PAG-TS PIC 9(3) COMP. 2! -040070* NOMBRE DE PAGES EN TS 214 - - 2! -040080 07 Y00WIA-WK-LG-TS-ECR PIC S9(4) COMP. 2! -040090* LONGUEUR TS ECRAN 216 - - 2! -040100 07 Y00WIA-WK-LG-OCC-APLI PIC 9(4) COMP. 2! -040110* WORKING LONGUEUR OCCURENCE APPLICATIVE 218 - - 2! -040120 07 Y00WIA-WK-LG-ETN-RPN PIC 9(4) COMP. 2! -040130* WORKING LONGUEUR ENTETE REPONSE 220 - - 2! -040140 07 Y00WIA-NB-OCC-PG-ECR PIC 9(4) COMP. 2! -050010* NOMBRE OCCURRENCE PAGE ECRAN 222 - - 2! -050020 07 Y00WIA-IDC-OCC-SPL PIC X(1). 2! -050030* INDICATEUR OCCURENCE SUPPLEMENTAIRE 224 - - 2! -050040 07 Y00WIA-CD-RET-APLI PIC 9(2). 2! -050050* CODE RETOUR APPLICATIF 225 - - 2! -050060 07 Y00WIA-WK-LG-ZON-ENT PIC S9(4) COMP. 2! -050070* WORKING LONGUEUR ZONE ENTREE 227 - - 2! -050080 07 Y00WIA-WK-LG-ZON-SOR PIC S9(4) COMP. 2! -050090* WORKING LONGUEUR ZONE SORTIE 229 - - 2! -050100 06 FILLER PIC X(70). 2! -050110* FIN SS-STR ETN-APL 231 2! -050120 05 Y00WIA-ZON-APLI. 2! -050130* ZONE APPLICATION 301 06/10/92 2! -050140 07 FILLER PIC X(3700). 2! -060010* 301 2! - *----------------------------------------------! END Y00WIA ---- - - * 05 WS-TN4D101-APLI REDEFINES Y00WIA-ZON-APLI. ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y4DN101 2! - *------------------------------------------------------------------- -000010*GAR* OS Y4DN101 TN4D101:ACCESSEUR TABLE V4D01010 2! -000020* LG=00600, ESD MAJ LE 13/02/03, ELS MAJ LE 13/02/03 PAR C13447 2! -000030* GENERE LE 13/02/03 A 16H01, PFX : Y4D101- MEMBRE : Y4DN101 2! -000040 10 Y4D101-Y4DN101. 2! -000050* TN4D101:ACCESSEUR TABLE V4D01010 1 21/09/94 2! -000060 20 Y4D101-TM-STP PIC X(26). 2! -000070* TIME STAMP 1 14/04/00 2! -000080 20 Y4D101-NO-PTN PIC 9(3) COMP-3. 2! -000090* NUMERO PARTENAIRE 27 28/12/94 2! -000100 20 Y4D101-CD-PTN PIC X(5). 2! -000110* CODE PARTENAIRE 29 - - 2! -000120 20 Y4D101-NOM-PTN PIC X(32). 2! -000130* NOM PARTENAIRE 34 11/05/00 2! -000140 20 Y4D101-LA-PTN PIC X(16). 2! -010010* LIBELLE-ABREGE PARTENAIRE 66 28/12/94 2! -010020 20 Y4D101-NO-TEL PIC X(11). 2! -010030* NUMERO TELEPHONE 82 - - 2! -010040 20 Y4D101-NO-NTL-EM PIC X(6). 2! -010050* NUMERO NATIONAL EMETTEUR 93 - - 2! -010060 20 Y4D101-IDC-PTN-CM PIC X(1). 2! -010070* INDICATEUR PARTENAIRE CREDIT-MUTUEL 99 - - 2! -010080 20 Y4D101-IDC-AUT-GTN-CLI PIC X(1). 2! -010090* INDICATEUR AUTORISATION GESTION CLIENT 100 - - 2! -010100 20 Y4D101-NB-QZ-DRG-AV PIC 9(2) COMP-3. 2! -010110* NOMBRE QUINZAINE DEROGATION SX:-AV 101 - - 2! -010120 20 Y4D101-NB-QZ-DRG-AP PIC 9(2) COMP-3. 2! -010130* NOMBRE QUINZAINE DEROGATION SX:-AP 103 - - 2! -010140 20 Y4D101-CD-NAF PIC X(4). 2! -020010* CODE N.A.F. 105 - - 2! -020020 20 Y4D101-NO-IDT-EPS-SIT PIC 9(9). 2! -020030* NUMERO IDENTIFICATION ENTREPRISE SIRET 109 - - 2! -020040 20 Y4D101-NO-IDT-CPL-SIT PIC 9(5). 2! -020050* NUMERO IDENTIFICATION COMPLEMENTAIRE S 118 - - 2! -020060 20 Y4D101-CD-MODE-RGL-COM PIC X(1). 2! -020070* CODE MODE REGLEMENT COMMISSION 123 - - 2! -020080 20 Y4D101-LIB-NOM-CRP-COM PIC X(32). 2! -020090* LIBELLE NOM CORRESPONDANT COMMISSION 124 - - 2! -020100 20 Y4D101-CD-PER-COM-PTN PIC X(1). 2! -020110* CODE PERIODICITE COMMISSION PARTENAIRE 156 - - 2! -020120 20 Y4D101-CD-INT PIC X(2). 2! -020130* CODE INTITULE 157 - - 2! -020140 20 Y4D101-LIB-NOM-CRP-SF PIC X(32). 2! -030010* LIBELLE NOM CORRESPONDANT SX:-SF 159 - - 2! -030020 20 Y4D101-IDC-PTN-ITN PIC X(1). 2! -030030* INDICATEUR PARTENAIRE INTERNET 191 31/08/98 2! -030040 20 Y4D101-LIB-MTN-LGL 2! -030050* LIBELLE MENTION LEGALE 192 02/10/98 2! -030060 PIC X(72). 2! -030070 20 Y4D101-CD-GRP-PTN PIC X(3). 2! -030080* CODE GROUPE PARTENAIRE 264 25/07/95 2! -030090 20 Y4D101-CD-TY-ECG-FNC PIC X(5). 2! -030100* CODE TYPE ECHANGE FINANCIER 267 17/04/96 2! -030110 20 Y4D101-IDC-PEC PIC X(1). 2! -030120* INDICATEUR PRISE-EN-CHARGE 272 28/12/94 2! -030130 20 Y4D101-LIB-VIL PIC X(32). 2! -030140* LIBELLE VILLE 273 - - 2! -040010 20 Y4D101-IDC-AFG-AGT PIC X(1). 2! -040020* INDICATEUR AFFICHAGE AGENT 305 14/09/95 2! -040030 20 Y4D101-NB-EDI-EX PIC S9(4) COMP-3. 2! -040040* NOMBRE EDITION SX:-EX 306 02/03/95 2! -040050 20 Y4D101-CD-TY-ARC PIC X(1). 2! -040060* CODE TYPE ARCHIVAGE 309 10/07/00 2! -040070 20 Y4D101-CD-SI-DI PIC X(3). 2! -040080* CODE S.I. SX:-DI 310 28/12/94 2! -040090 20 Y4D101-DA-DNN-PTN PIC X(8). 2! -040100* DATE DENONCIATION PARTENAIRE 313 01/08/00 2! -040110 20 Y4D101-IDC-VSU-DO PIC X(1). 2! -040120* INDICATEUR VISUALISATION SX:-DO 321 27/02/96 2! -040130 20 Y4D101-IDC-TT-ACT-AG PIC X(1). 2! -040140* INDICATEUR TRAITEMENT ACTION SX:-AG 322 24/07/95 2! -050010 20 Y4D101-IDC-AFG-PT PIC X(1). 2! -050020* INDICATEUR AFFICHAGE SX:-PT 323 30/04/99 2! -050030 10 FILLER PIC X(277). 2! -050040* FIN DE STRUCTURE PRINCIPALE 324 2! - *----------------------------------------------! END Y4DN101 ---- - - ! - * COPY ACCESSEUR LIBELLE STRUCTURE ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y4DSTRG 2! - *------------------------------------------------------------------- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2! - * !!!!!!! !!!!!!! 2! - * !!!!!!! NE PAS UTILISER COPYGEN !!!!!!! 2! - * !!!!!!! PROBLEME AVEC LE SUFFIXE : -XX !!!!!!! 2! - * !!!!!!! !!!!!!! 2! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2! -000010*GAR* OS Y4DSTRG RECUPERATION INFORMATIONS SUR STRUCTURES 2! -000020* LG=00402, ESD MAJ LE 10/07/01, ELS MAJ LE 10/07/01 PAR CS0586 2! -000030* GENERE LE 10/07/01 A 10H29, PFX : Y4DSTR- MEMBRE : Y4DSTRG 2! -000040 01 Y4DSTR-Y4DSTRG. 2! -000050* RECUPERATION INFORMATIONS SUR STRUCTUR 1 14/06/93 2! -000060 02 Y4DSTR-Y4DSTRG-XX. 2! -000070* RECUPERATION INFORMATIONS SUR S SX:-XX 1 - - 2! -000080 05 FILLER PIC X(400). 2! -000090* 1 2! -000100 02 Y4DSTR-Y4DSTRG-IN REDEFINES Y4DSTR-Y4DSTRG-XX. 2! -000110* RECUPERATION INFORMATIONS SUR S SX:-IN 1 - - 2! -000120 05 Y4DSTR-TY-FCT-IN PIC X(4). 2! -000130* TYPE FONCTION SX:-IN 1 12/09/00 2! -000140 05 Y4DSTR-CD-PTN-IN PIC X(5). 2! -010010* CODE PARTENAIRE SX:-IN 5 28/12/94 2! -010020 05 Y4DSTR-NO-PTN-IN PIC 9(3). 2! -010030* NUMERO PARTENAIRE SX:-IN 10 - - 2! -010040 05 Y4DSTR-NO-STR-DIS-IN PIC X(6). 2! -010050* NUMERO STRUCTURE DISTRIBUTION SX:-IN 13 26/12/95 2! -010060 05 Y4DSTR-CD-AUT-OPT-IN PIC X(1). 2! -010070* CODE AUTORISATION OPTION SX:-IN 19 28/12/94 2! -010080 05 FILLER PIC X(381). 2! -010090* 20 2! -010100 02 Y4DSTR-Y4DSTRG-OU REDEFINES Y4DSTR-Y4DSTRG-IN. 2! -010110* RECUPERATION INFORMATIONS SUR S SX:-OU 1 14/06/93 2! -010120 05 Y4DSTR-CD-RET PIC X(4). 2! -010130* CODE RETOUR 1 04/04/00 2! -010140 05 Y4DSTR-CD-RET-SQL PIC S9(4) COMP. 2! -020010* CODE RETOUR SQL 5 28/12/94 2! -020020 05 Y4DSTR-LIB-MES PIC X(79). 2! -020030* LIBELLE MESSAGE 7 - - 2! -020040 05 Y4DSTR-NO-PTN PIC 9(3). 2! -020050* NUMERO PARTENAIRE 86 - - 2! -020060 05 Y4DSTR-NO-STR-DIS PIC X(6). 2! -020070* NUMERO STRUCTURE DISTRIBUTION 89 26/12/95 2! -020080 05 Y4DSTR-CD-FCT 2! -020090* CODE FONCTIONNALITE 95 07/03/96 2! -020100 PIC X(01). 2! -020110 05 Y4DSTR-LIB-NOM-TY 2! -020120* LIBELLE NOM SX:-TY 96 28/12/94 2! -020130 PIC X(07). 2! -020140 05 Y4DSTR-LIB-STR PIC X(32). 2! -030010* LIBELLE STRUCTURE 103 - - 2! -030020 05 Y4DSTR-LIB-RUE-1 PIC X(32). 2! -030030* LIBELLE RUE SX:-1 135 - - 2! -030040 05 Y4DSTR-LIB-RUE-2 PIC X(32). 2! -030050* LIBELLE RUE SX:-2 167 - - 2! -030060 05 Y4DSTR-LIB-COMMUNE PIC X(32). 2! -030070* LIBELLE DE LA COMMUNE 199 10/07/01 2! -030080 05 Y4DSTR-CD-POST PIC X(5). 2! -030090* CODE POSTAL 231 28/12/94 2! -030100 05 Y4DSTR-LIB-BUR-DIST 2! -030110* Libell� du bureau distributeur 236 - - 2! -030120 PIC X(26). 2! -030130 05 Y4DSTR-NO-TEL PIC X(11). 2! -030140* NUMERO TELEPHONE 262 - - 2! -040010 05 Y4DSTR-CD-BQE PIC X(5). 2! -040020* CODE BANQUE 273 - - 2! -040030 05 Y4DSTR-CD-GUICHET PIC X(5). 2! -040040* Code guichet 278 - - 2! -040050 05 Y4DSTR-NO-IDT-EPS-SIT PIC 9(9). 2! -040060* NUMERO IDENTIFICATION ENTREPRISE SIRET 283 - - 2! -040070 05 Y4DSTR-NO-IDT-CPL-SIT PIC 9(5). 2! -040080* NUMERO IDENTIFICATION COMPLEMENTAIRE S 292 - - 2! -040090 05 Y4DSTR-CD-MODE-RGL-COM PIC X(1). 2! -040100* CODE MODE REGLEMENT COMMISSION 297 - - 2! -040110 05 Y4DSTR-LIB-NOM-CRP-COM PIC X(32). 2! -040120* LIBELLE NOM CORRESPONDANT COMMISSION 298 - - 2! -040130 05 Y4DSTR-GRP-CCM PIC X(3). 2! -040140* GROUPE CAISSE 330 10/07/01 2! -050010 05 Y4DSTR-NO-FAX PIC X(12). 2! -050020* NUMERO FAX 333 27/02/96 2! -050030 05 Y4DSTR-CD-RGT-CC PIC X(1). 2! -050040* CODE REGISTRE COMMERCE 345 28/12/94 2! -050050 05 Y4DSTR-CD-INSEE-DPT PIC X(2). 2! -050060* CODE INSEE DEPARTEMENT 346 - - 2! -050070 05 Y4DSTR-CD-GRF-RGT-CC PIC X(2). 2! -050080* CODE GREFFE REGISTRE COMMERCE 348 - - 2! -050090 05 Y4DSTR-LIB-VIL-GRF-R-C PIC X(32). 2! -050100* LIBELLE VILLE GREFFE REGISTRE COMMERCE 350 - - 2! -050110 05 FILLER PIC X(19). 2! -050120* 382 2! - 02 Y4DSTR-Y4DSTRG-003 REDEFINES Y4DSTR-Y4DSTRG-IN. 2! -000110* RECUPERATION INFORMATIONS SUR S SX:-IN 1 - - 2! - 05 Y4DSTR-CD-RET-003 PIC X(4). 2! - * CODE RETOUR 1 2! - 05 Y4DSTR-CD-RET-SQL-003 PIC S9(4) COMP. 2! - * CODE RETOUR SQL 5 2! - 05 Y4DSTR-LIB-MES-ERR PIC X(79). 2! - * LIBELLE MESSAGE 84 2! - 05 Y4DSTR-MT-CAP-SOC PIC S9(13)V9(2) COMP-3. 2! - * CAPITAL SOCIAL 92 2! - 05 Y4DSTR-LIB-FRM-SOC-1 PIC X(50). 2! - * LIBELLE FORME SOCIALE UN 142 2! - 05 Y4DSTR-LIB-FRM-SOC-2 PIC X(50). 2! - * LIBELLE FORME SOCIALE DEUX 192 2! - * 2! -050130 01 Y4DSTR-LG-COMM PIC S9(4) COMP VALUE +400. 2! -050140* LONGUEUR COMMAREA 1 10/07/01 2! - *----------------------------------------------! END Y4DSTRG ---- - - ! - * COPY ACCESSEUR LIBELLE PRODUIT ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y4DTRAN 2! - *------------------------------------------------------------------- -000010*GAR* OS Y4DTRAN TRANSCO CLE EXT. EN CLE INT. ( TP ) 2! -000020* LG=00300, ESD MAJ LE 15/12/93, ELS MAJ LE 19/12/95 PAR CS0108 2! -000030* GENERE LE 19/12/95 A 08H55, PFX : Y4DTRA- MEMBRE : Y4DTRAN 2! -000040 01 Y4DTRA-LONG-SEG PIC S9(4) COMP VALUE 300. 2! -000050* LONGUEUR DU SEGMENT 1 28/12/94 2! -000060 01 Y4DTRA-Y4DTRAN. 2! -000070* TRANSCO CLE EXTERNE EN CLE INTERNE 1 11/03/93 2! -000080 05 FILLER PIC X(2). 2! -000090* 1 2! -000100 05 Y4DTRA-CD-TY-CTRL-E PIC X(1). 2! -000110* CODE TYPE CONTROLE SX:-E 3 28/12/94 2! -000120 05 Y4DTRA-NO-PTN-E PIC 9(3). 2! -000130* NUMERO PARTENAIRE SX:-E 4 - - 2! -000140 05 Y4DTRA-CD-PTN-E PIC X(5). 2! -010010* CODE PARTENAIRE SX:-E 7 - - 2! -010020 05 Y4DTRA-CD-CLI-PTN-E PIC X(15). 2! -010030* CODE CLIENT PARTENAIRE SX:-E 12 - - 2! -010040 05 Y4DTRA-CD-PRD-E PIC X(2). 2! -010050* CODE PRODUIT SX:-E 27 - - 2! -010060 05 Y4DTRA-NO-CTR-PTN-E PIC X(15). 2! -010070* NUMERO CONTRAT PARTENAIRE SX:-E 29 - - 2! -010080 05 Y4DTRA-NO-CLI-PTN-E PIC 9(7) COMP-3. 2! -010090* NUMERO CLIENT PARTENAIRE SX:-E 44 - - 2! -010100 05 Y4DTRA-NO-PRD-PTN-E PIC 9(3) COMP-3. 2! -010110* NUMERO PRODUIT PARTENAIRE SX:-E 48 - - 2! -010120 05 Y4DTRA-NO-ORD-CTR-E PIC 9(2) COMP-3. 2! -010130* NUMERO ORDRE CONTRAT SX:-E 50 - - 2! -010140 05 Y4DTRA-IDC-PTN-CM-E PIC X(1). 2! -020010* INDICATEUR PARTENAIRE CREDIT-MU SX:-E 52 - - 2! -020020 05 FILLER PIC X(5). 2! -020030* 53 2! -020040 05 Y4DTRA-CD-RET-S PIC X(4). 2! -020050* CODE RETOUR SX:-S 58 - - 2! -020060 05 Y4DTRA-LIB-MES-S PIC X(79). 2! -020070* LIBELLE MESSAGE SX:-S 62 - - 2! -020080 05 Y4DTRA-NOM-FIC-S PIC X(8). 2! -020090* NOM FICHIER SX:-S 141 - - 2! -020100 05 Y4DTRA-NOM-PROC-S PIC X(8). 2! -020110* NOM PROCEDURE SX:-S 149 - - 2! -020120 05 Y4DTRA-LIB-ACT-S PIC X(32). 2! -020130* LIBELLE ACTION SX:-S 157 - - 2! -020140 05 Y4DTRA-CD-RET-PGM-S PIC 9(2). 2! -030010* CODE RETOUR PROGRAMME SX:-S 189 - - 2! -030020 05 Y4DTRA-CD-RET-SQL-S PIC S9(4) COMP. 2! -030030* CODE RETOUR SQL SX:-S 191 - - 2! -030040 05 Y4DTRA-NO-PTN-S PIC 9(3). 2! -030050* NUMERO PARTENAIRE SX:-S 193 - - 2! -030060 05 Y4DTRA-NOM-PTN-S PIC X(32). 2! -030070* NOM PARTENAIRE SX:-S 196 - - 2! -030080 05 Y4DTRA-NO-CLI-PTN-S PIC 9(7). 2! -030090* NUMERO CLIENT PARTENAIRE SX:-S 228 - - 2! -030100 05 Y4DTRA-NO-PRD-PTN-S PIC 9(3). 2! -030110* NUMERO PRODUIT PARTENAIRE SX:-S 235 - - 2! -030120 05 Y4DTRA-LIB-PRD-S PIC X(32). 2! -030130* LIBELLE PRODUIT SX:-S 238 - - 2! -030140 05 Y4DTRA-NO-ORD-CTR-S PIC 9(2). 2! -040010* NUMERO ORDRE CONTRAT SX:-S 270 - - 2! -040020 05 Y4DTRA-LA-PRD-S PIC X(10). 2! -040030* LIBELLE-ABREGE PRODUIT SX:-S 272 - - 2! -040040 05 Y4DTRA-NO-TY-PRD-S PIC 9(2) COMP-3. 2! -040050* NUMERO TYPE PRODUIT SX:-S 282 - - 2! -040060 05 Y4DTRA-NO-POL-PRB-S PIC X(9). 2! -040070* NUMERO POLICE PREVI-B SX:-S 284 - - 2! -040080 05 Y4DTRA-CD-PRD-S PIC X(2). 2! -040090* CODE PRODUIT SX:-S 293 - - 2! -040080 05 Y4DTRA-CD-PRD-OR-S PIC X(2). 2! -040090* CODE PRODUIT AUT. POUR PEP SX:-S 293 - - 2! -040100 05 FILLER PIC X(2). 2! -040110* 295 2! - *----------------------------------------------! END Y4DTRAN ---- - - ! - *----------------------------------------------! END WKAREA ---- - - SKIP1 - EJECT - ******************************************************** - * S Y S T E M W O R K A R E A * - ******************************************************** - SKIP2 - 01 SYS-WORK-AREA. - 05 FILLER PIC X(12) VALUE 'SYS WORK '. - 05 IDENTIFICATION-DATA. - 10 CURRENT-PROGRAM-NAME PIC X(8) VALUE 'TC4E3H0 '. - 10 PROGRAM-NAME PIC X(5) VALUE '4E3H0'. - 10 FILLER PIC X(3) VALUE SPACES. - 10 NEXT-PROGRAM-NAME. - 15 NEXT-PROGRAM-NAME-HDR PIC X(2) VALUE 'TC'. - 15 NEXT-PROGRAM-NAME-ID PIC X(5) VALUE '4E3H0'. - 15 NEXT-PROGRAM-NAME-TRL PIC X(1) VALUE ' '. - 10 PROGRAM-TRANSACTION-CODE PIC X(4) VALUE '4E3H'. - SKIP1 - SKIP1 - * CURSOR-ATTR X'FFFFC0' - CURSOR - * ERROR-ATTR X'FFFFC8' - CURSOR, HIGHLIGHT - * OK-ATTR X'0000C0' - DEFAULT - * PROT-ATTR X'0000F0' - PROT, NUMERIC - * OUTPUT-ATTR X'0000F0' - PROT, NUMERIC - * OUTPUT-BLANK-ATTR X'0000FC' - PROT, NUMERIC, BLANK - * BLANK-ATTR X'0000FC' - PROT, NUMERIC, BLANK - * CURSOR-BLANK-ATTR X'FFFFCC' - CURSOR, BLANK - * INPUT-BLANK-ATTR X'0000CC' - BLANK - * OUTPUT-HIGH-ATTR X'0000F8' - PROT, NUMERIC, HIGLIGHT - * INPUT-HIGH-ATTR X'0000C8' - HIGHLIGHT - SKIP1 - 05 ATTRIBUTE-VARIABLES. - 10 CURSOR-ATTR-B PIC S9(9) COMP VALUE +16777152. - 10 FILLER REDEFINES CURSOR-ATTR-B. - 15 FILLER PIC X. - 15 CURSOR-ATTR PIC X(3). - 10 ERROR-ATTR-B PIC S9(9) COMP VALUE +16777160. - 10 FILLER REDEFINES ERROR-ATTR-B. - 15 FILLER PIC X. - 15 ERROR-ATTR PIC X(3). - 10 OK-ATTR-B PIC S9(9) COMP VALUE +192. - 10 FILLER REDEFINES OK-ATTR-B. - 15 FILLER PIC X. - 15 OK-ATTR PIC X(3). - 10 PROT-OUTPUT-ATTR-B PIC S9(9) COMP VALUE +240. - 10 FILLER REDEFINES PROT-OUTPUT-ATTR-B. - 15 FILLER PIC X. - 15 PROT-ATTR PIC X(3). - 10 FILLER REDEFINES PROT-OUTPUT-ATTR-B. - 15 FILLER PIC X. - 15 OUTPUT-ATTR PIC X(3). - 10 OUTPUT-BLANK-ATTR-B PIC S9(9) COMP VALUE +252. - 10 FILLER REDEFINES OUTPUT-BLANK-ATTR-B. - 15 FILLER PIC X. - 15 OUTPUT-BLANK-ATTR PIC X(3). - 10 FILLER REDEFINES OUTPUT-BLANK-ATTR-B. - 15 FILLER PIC X. - 15 BLANK-ATTR PIC X(3). - 10 CURSOR-BLANK-ATTR-B PIC S9(9) COMP VALUE +16777164. - 10 FILLER REDEFINES CURSOR-BLANK-ATTR-B. - 15 FILLER PIC X. - 15 CURSOR-BLANK-ATTR PIC X(3). - 10 INPUT-BLANK-ATTR-B PIC S9(9) COMP VALUE +204. - 10 FILLER REDEFINES INPUT-BLANK-ATTR-B. - 15 FILLER PIC X. - 15 INPUT-BLANK-ATTR PIC X(3). - 10 OUTPUT-HIGH-ATTR-B PIC S9(9) COMP VALUE +248. - 10 FILLER REDEFINES OUTPUT-HIGH-ATTR-B. - 15 FILLER PIC X. - 15 OUTPUT-HIGH-ATTR PIC X(3). - 10 INPUT-HIGH-ATTR-B PIC S9(9) COMP VALUE +200. - 10 FILLER REDEFINES INPUT-HIGH-ATTR-B. - 15 FILLER PIC X. - 15 INPUT-HIGH-ATTR PIC X(3). - SKIP1 - EJECT - 05 CONTROL-VARIABLES. - * - * THE CONTROL INDICATOR CONTROLS THE PROGRAM FLOW - * - 10 CONTROL-INDICATOR PIC X VALUE LOW-VALUE. - 88 PROCESS-OUTPUT VALUE 'O'. - 88 DO-WRITE VALUE 'E'. - 88 PROCESS-INPUT VALUE 'I'. - 88 DO-TRANSFER VALUE 'R'. - 88 TRANSACTION-COMPLETE VALUE 'C'. - 88 CONTINUE-PROCESS VALUE SPACE. - SKIP1 - * - * CONTROL INDICATOR ON ENTRY TO PROGRAM - * - 10 ENTRY-CONTROL-INDICATOR PIC X VALUE LOW-VALUE. - 88 ENTRY-PROCESS-OUTPUT VALUE 'O'. - 88 ENTRY-PROCESS-INPUT VALUE 'I'. - SKIP1 - * - * LITERALS USED TO SET THE CONTROL INDICATOR - * - 10 CONTROL-INDICATOR-LITERALS. - 15 PROCESS-OUTPUT-LIT PIC X VALUE 'O'. - 15 DO-WRITE-LIT PIC X VALUE 'E'. - 15 PROCESS-INPUT-LIT PIC X VALUE 'I'. - 15 DO-TRANSFER-LIT PIC X VALUE 'R'. - 15 TRANSACTION-COMPLETE-LIT PIC X VALUE 'C'. - 15 CONTINUE-PROCESS-LIT PIC X VALUE SPACE. - SKIP1 - 10 SELECT-DONE PIC X VALUE SPACES. - 10 SELECT-COUNT PIC 999 COMP-3 VALUE ZERO. - 10 HEX-3F-VALUE PIC 9(4) COMP VALUE 63. - 10 HEX-3F-REDEF REDEFINES HEX-3F-VALUE. - 15 FILLER PIC X. - 15 HEX-3F PIC X. - 10 BMSMAP-NAME PIC X(7) VALUE 'MC4E3H0'. - 10 SEGLOOP-CONTROL. - 15 SEGLOOP-COUNT PIC 999 COMP-3 VALUE ZERO. - 15 SEGLOOP-COUNT-MAX PIC 999 COMP-3 VALUE 0. - 15 INPUT-LINE-COUNT PIC 999 COMP-3 VALUE ZERO. - 15 INPUT-LINE-EDIT PIC X VALUE SPACE. - 88 NO-LINE-ERRORS VALUE ' '. - 88 LINE-ERRORS VALUE 'E'. - 88 NO-LINE-EDIT VALUE 'N'. - 15 SEGLOOP-ERROR-SW PIC X. - 88 SEGLOOP-ERROR-FOUND VALUE 'Y'. - 15 FINISH-COUNT PIC 999 COMP-3 VALUE ZERO. - 15 PAGE-REQUEST-INDICATOR PIC X VALUE LOW-VALUE. - 88 PAGE-FORWARD VALUE '1'. - 88 PAGE-BACKWARD VALUE '2'. - SKIP1 - 05 PFKEY-INDICATOR VALUE 00 PIC 99. - 88 ENTER-KEY VALUE 00. 88 CLEAR VALUE 93. - 88 PA1 VALUE 92. 88 PA2 VALUE 94. 88 PA3 VALUE 91. - 88 PFK1 VALUE 1. 88 PFK2 VALUE 2. 88 PFK3 VALUE 3. - 88 PFK4 VALUE 4. 88 PFK5 VALUE 5. 88 PFK6 VALUE 6. - 88 PFK7 VALUE 7. 88 PFK8 VALUE 8. 88 PFK9 VALUE 9. - 88 PFK10 VALUE 10. 88 PFK11 VALUE 11. 88 PFK12 VALUE 12. - 88 PFK13 VALUE 13. 88 PFK14 VALUE 14. 88 PFK15 VALUE 15. - 88 PFK16 VALUE 16. 88 PFK17 VALUE 17. 88 PFK18 VALUE 18. - 88 PFK19 VALUE 19. 88 PFK20 VALUE 20. 88 PFK21 VALUE 21. - 88 PFK22 VALUE 22. 88 PFK23 VALUE 23. 88 PFK24 VALUE 24. - 88 PFK1-13 VALUE 1 13. 88 PFK2-14 VALUE 2 14. - 88 PFK3-15 VALUE 3 15. 88 PFK4-16 VALUE 4 16. - 88 PFK5-17 VALUE 5 17. 88 PFK6-18 VALUE 6 18. - 88 PFK7-19 VALUE 7 19. 88 PFK8-20 VALUE 8 20. - 88 PFK9-21 VALUE 9 21. 88 PFK10-22 VALUE 10 22. - 88 PFK11-23 VALUE 11 23. 88 PFK12-24 VALUE 12 24. - SKIP1 - EJECT - 05 WORKFLD-NUMERIC-INSTALL. - 10 WORKFLD-NUMERIC-1 PIC S9(15)V9(3). - SKIP1 - 05 TRACE-VARIABLES. - 10 SECTION-TABLE. - 15 SECTION-NAME-TABLE PIC X(8) OCCURS 9 TIMES - INDEXED BY SEC-INDEX. - 10 TRACE-SECTION-AREA. - 15 FILLER PIC X(6) VALUE 'TRACE '. - 15 FILLER PIC S9(4) COMP VALUE -1286. - 15 TRACE-SECTION-NAME PIC X(8) VALUE SPACES. - 15 TRACE-SEGMENT-NAME PIC X(8) VALUE SPACES. - 15 TRACE-FIELD-NAME PIC X(8) VALUE SPACES. - SKIP1 - 05 FIELD-EDIT-VARIABLES. - 10 FIELD-EDIT-ERROR PIC X(4) VALUE SPACES. - 88 FIELD-EDIT-GOOD VALUE SPACES. - 10 WORKFLD-INDEX PIC 9(4) COMP VALUE ZERO. - 10 WORKFLD-NUMERIC PIC S9(11)V9(7) VALUE ZERO. - 10 WORKFLD-VCHAR. - 15 WORKFLD-LTH PIC S9(4) COMP VALUE ZERO. - 15 WORKFLD-ALPHA PIC X(256) VALUE SPACES. - 10 WORKFLD-SEGLTH PIC 9(4) COMP VALUE ZERO. - 10 WORKFLD-NUMREC PIC 9(4) COMP VALUE ZERO. - 10 WORKFLD-RBA-RRN PIC 9(8) COMP VALUE ZERO. - 05 OPERATOR-ID PIC X(8) VALUE SPACES. - 05 HOLD-AREA-SIZE PIC 9(4) COMP. - 05 HOLD-AREA-APPLID-DFLT PIC X(3) VALUE 'TC4'. - 05 UPDATE-PTR POINTER. - 05 SPA-TS-ITEM PIC 9(4) COMP VALUE 1. - 05 FALLOUT-ABEND-CODE PIC 9(4) VALUE 4002. - 05 CNTLERR-ABEND-CODE PIC 9(4) VALUE 4001. - * THE FOLLOWING FIELDS ARE DEFINED FOR COMPATIBILITY - * BETWEEN TELON IMS AND TELON CICS PROGRAMS. - 05 PROGRAM-TYPE PIC X VALUE 'C'. - 05 IO-PCB PIC X VALUE SPACE. - 05 XFER-PCB PIC X VALUE SPACE. - 05 SOUND-THE-ALARM PIC X VALUE SPACE. - 05 TPO-SCA-FIELD PIC X VALUE SPACE. - 05 SPA-CMPAT PIC X VALUE SPACE. - SKIP3 - 01 SEGMENT-IO-AREA. - 02 SEGMENT-IO-AREA-HEADER PIC X(12) VALUE 'SEGMENT AREA'. - 02 SEGMENT-IO-AREA-END PIC X. - EJECT - ******************************************************** - * H O L D A R E A B E G I N N I N G * - ******************************************************** - 01 HOLD-AREA. - 05 HOLD-AREA-KEY. - 10 HOLD-AREA-LTERM PIC X(4). - 10 HOLD-AREA-APPLID PIC X(3). - 10 HOLD-AREA-TYPE PIC X. - 05 HOLD-RESUME-PGM-ID PIC X(5). - 05 FILLER PIC X(3). - SKIP2 - ******************************************************** - * S P A A R E A * - ******************************************************** - 01 SPA-AREA PIC X(08192). - 01 FILLER REDEFINES SPA-AREA. - 02 SPA-HEADER. - 05 SPA-LENGTH PIC 9(4) COMP. - 05 SPA-NEXT-PROGRAM-NAME PIC X(8). - 05 SPA-TRANSACTION-CODE PIC X(4). - 05 FILLER PIC XX. - 02 SPA-XFER-WORK-AREA. - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIESPA ! - *------------------------------------------------------------------- - **------------------------------------------------------------** ! - ** ZONES REQUISES POUR L APPEL DE VALEUR : FONCTION HELP ** ! - ** 08/10/1999 PIRIOU ** ! - **------------------------------------------------------------** ! - ** ! - 03 XFER-HELP-CUR. ! - 05 XFER-HELP-AREA-HDR PIC X(4). ! - 05 XFER-HELP-MAP-NAME PIC X(8). ! - 05 XFER-HELP-POS-COD PIC 9(4) COMP. ! - 05 XFER-HELP-LTH-COD PIC 9(4) COMP. ! - 05 XFER-HELP-POS-LIB PIC 9(4) COMP. ! - 05 XFER-HELP-LTH-LIB PIC 9(4) COMP. ! - 05 XFER-HELP-DATA PIC X(80). ! - 05 XFER-HELP-DATA-LIB1 REDEFINES XFER-HELP-DATA. ! - 07 FILLER PIC X(74). ! - 07 XFER-HELP-POS-LIB1 PIC 9(4) COMP. ! - 07 XFER-HELP-LTH-LIB1 PIC 9(4) COMP. ! - 07 XFER-HELP-IDC-LIB1 PIC X(02). ! - 03 XFER-HELP-STD. ! - 05 XFER-HOLD-INDICATOR PIC X. ! - 05 HELP-CURR-MSG-COUNT PIC 99 COMP. ! - 05 HELP-MSG-COUNT PIC 99 COMP. ! - 05 HELP-MSG-NAME OCCURS 1. ! - 07 HELP-MSG-NAME-PROG PIC X(8). ! - 07 FILLER PIC X. ! - 07 HELP-MSG-NAME-KEY PIC X(21). ! - **------------------------------------------------------------** ! - ** ZONES REQUISES POUR LA FONCTION CHAINAGE PF03, PF04 ** ! - **------------------------------------------------------------** ! - 03 XFER-CHAINAGE. ! - 05 XFER-NB PIC 99. ! - 05 XFER-NB-MAX PIC 99. ! - 05 XFER-TABLE-PROG. ! - 07 XFER-TABLE-PROG1 PIC X(8). ! - 07 XFER-TABLE-PROG2 PIC X(72). ! - 05 FILLER REDEFINES XFER-TABLE-PROG. ! - 07 XFER-PROGRAMME OCCURS 10. ! - 09 XFER-PROG PIC X(7). ! - 09 XFER-MENU PIC X. ! - 05 FILLER REDEFINES XFER-TABLE-PROG. ! - 07 XFER-PROG1 PIC X(16). ! - 07 XFER-PROG2 PIC X(64). ! - **------------------------------------------------------------** ! - ** ZONE STOCKAGE LONGEUR COMMAREA DE PROVENANCE POUR ** ! - ** NON TELON (CICS NATIF) ** ! - **------------------------------------------------------------** ! - 03 XFER-LG-SPA-PVN-TLN PIC 9(4) COMP-5. ! - 03 XFER-MODIFY-INDICATOR PIC X(1). ! - **------------------------------------------------------------** ! - ** ZONE STOCKAGE NUMERO DE SI POUR ROUTAGE LORS D'UN ** ! - ** APPEL DE VALEUR ** ! - **------------------------------------------------------------** ! - 03 XFER-CD-SI PIC X(3). ! - 03 FILLER PIC X(177). ! - **------------------------------------------------------------** ! - ** DEBUT ZONE UTILISATEUR ** ! - **------------------------------------------------------------** ! - 02 XFER-DBT-ZON-APL. ! - *----------------------------------------------! END GIESPA ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y00CTLN ! - *------------------------------------------------------------------- -000010*GAR* OS Y00CTLN COMMAREA MENU D'ACCUEIL CAISSE LOCAL ! -000020* LG=00024, ESD MAJ LE 05/10/92, ELS MAJ LE 05/10/92 PAR G6A6 ! -000030* GENERE LE 05/10/92 A 17H52, PFX : Y00TLN- MEMBRE : Y00CTLN ! -000040 03 Y00TLN-Y00CTLN. ! -000050* COMMAREA MENU D'ACCUEIL CAISSE LOCAL 1 05/10/92 ! -000060 05 Y00TLN-CD-TRANS-PROV PIC X(4). ! -000070* CODE TRANSACTION DE PROVENANCE 1 25/01/89 ! -000080 05 Y00TLN-CD-HABILIT PIC X(2). ! -000090* CODE HABILITATION 5 - - ! -000100 05 Y00TLN-NO-CLI-CRC. ! -000110* Num�ro de client Caisse Racine Cl� 7 24/05/89 ! -000120 10 Y00TLN-NO-CCM PIC X(4). ! -000130* NUMERO CAISSE 7 14/08/92 ! -000140 10 Y00TLN-RAC-CLE. ! -010010* GROUPE COMPTE 11 23/05/89 ! -010020 15 Y00TLN-RACINE PIC X(7). ! -010030* Racine du client 11 15/06/89 ! -010040 15 Y00TLN-CLE-RACINE PIC X(1). ! -010050* Cl� de la racine du client 18 02/10/89 ! -010060 05 Y00TLN-NO-DOMAINE PIC 9(2). ! -010070* Num�ro de domaine 19 24/05/89 ! -010080 05 Y00TLN-CD-TRANS-DEST PIC X(4). ! -010090* CODE TRANSACTION DE DESTINATION 21 25/01/89 ! - *----------------------------------------------! END Y00CTLN ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y4DFIXE ! - *------------------------------------------------------------------- -000100****************************************************************** ! -000200* * ! -000300* G E O D E / S U R A V E N I R * ! -000400* * ! -000500****************************************************************** ! -000600 03 WS-4DCO-COMMAREA-FIXE. ! -000700*================================================================= ! -000800*= = ! -000900*= APPLICATION : COMMAREA COMMUNE GENERALE = ! -001000*= = ! -001100*= LONGUEUR : 1270 = ! -001200*= PREFIXE : WS-4DCO- = ! -001300*= = ! -001400*= ATTENTION : Les 56 premiers caract�res de cette = ! -001500*= commarea sont utiles pour le retour = ! -001600*= apr�s ABEND. (+ 24 Y4DCTLN = 80). = ! -001700*= = ! -001800*================================================================= ! -001900 ! -002000 05 WS-4DCO-ACCUEIL. ! -002100* ================ ! -002200*--------------------------------------------------------------- * ! -002300* COMMAREA : PARTIE COMMUNE ==> ACCUEIL GEODES * ! -002400* LONGUEUR : 550 * ! -002500* PREFIXE : WS-4DCO- * ! -002600*--------------------------------------------------------------- * ! -002700* ! -002800* ------------------------------------------------------------ ! -002900* LONGUEUR : 56 ! -003000* INFORMATIONS NECESSAIRES AU RETOUR APRES ABEND ! -003100* ------------------------------------------------------------ ! -003200* ! -003300 10 WS-4DCO-INITIAL. ! -003400 15 WS-4DCO-ACCUEIL-IDENT PIC X(008). ! -003500* IDENTIFIANT EN LIGNE ! -003600* correspond au no salarie r�seau credit mutuel ! -003700* ou au no identificateur ptn ext ! -003800 15 WS-4DCO-CD-PTN-LIGNE PIC X(005). ! -003900* CODE EXTERNE PARTENAIRE EN LIGNE ! -004000 15 WS-4DCO-CD-PTN PIC X(005). ! -004100* CODE EXTERNE PARTENAIRE TRAITE ! -004200 15 WS-4DCO-LIB-PTN PIC X(032). ! -004300* LIBELLE PARTENAIRE ! -004400 15 WS-4DCO-NO-PTN-LIGNE PIC 9(003). ! -004500* NO INTERNE DU PARTENAIRE EN LIGNE ! -004600 15 WS-4DCO-IDC-ITN PIC X(001). ! -004700* INDICATEUR INTERNET DE L'IDENTIFIANT EN LIGNE ! -004800* (POUR CONTROLE D'ENTREE DANS GEODES SEULEMENT) ! -004900 15 WS-4DCO-IDC-CMLACO-EXT PIC X(001). ! -005000* INDICATEUR EXTRANET CMLACO ! -005100 15 WS-4DCO-TYPE-CNX PIC X(001). ! -005200* TYPE DE CONNEXION PHYSIQUE ! -005300 88 CNX-EXTRANET VALUE '1'. ! -005400* Connexion par extranet (terminal EXtranet) ! -005500* ! -005600* ------------------------------------------------------------ ! -005700* LONGUEUR : 1 ! -005800* PROVENANCE DE LA CONNECTION PERMET : ! -005900* * D'IDENTIFIER L'ENVIRONNEMENT D'ORIGINE ! -006000* * D'ASSURER LE RETOUR A CET ENVIRONNEMENT ! -006100* * DE PREVOIR LA SAISIE SELON L'ACTEUR ! -006200* ------------------------------------------------------------ ! -006300* ! -006400 10 WS-4DCO-CD-PROV PIC X(001). ! -006500* CODE PROVENANCE ! -006600* PEUT PRENDRE LES VALEURS : ! -006700 88 PROV-CCM VALUE '1'. ! -006800* Provenance = environnement CCM ! -006900 88 PROV-SURA-CCM VALUE '2'. ! -007000* Provenance = environnement SURA pour CCM ! -007100 88 PROV-SURA-PEXT VALUE '3'. ! -007200* Provenance = environnement SURA pour P. EXT. ! -007300 88 PROV-SURA-CMLACO VALUE '4'. ! -007400* Provenance = environnement SURA pour CMLACO ! -007500 88 PROV-CCM-SIMU VALUE '5'. ! -007600* Provenance = environnement CCM pour simulation ! -007700 88 PROV-SURA-SIMU VALUE '6'. ! -007800* Provenance = environnement SURA pour simulation ! -007810 88 PROV-SURA-EXTPSE VALUE '7'. ! -007820* Provenance = extranet personne ! -007900* ! -008000* ------------------------------------------------------------ ! -008100* LONGUEUR : 30 ! -008200* INFORMATIONS COMPLEMENTAIRES PARTENAIRE EN LIGNE ! -008300* ------------------------------------------------------------ ! -008400* ! -008500 10 WS-4DCO-IDENTIFICATION. ! -008600 15 WS-4DCO-ACCUEIL-NO-STR-DIS PIC X(006). ! -008700* STRUCTURE DE DISTRIBUTION DU PTN EN LIGNE ! -008800* correspond au no caisse r�seau cr�dit mutuel ! -008900* ou au no agence reseau ptn ext ! -009000 15 WS-4DCO-ACCUEIL-NO-AGT-PTN PIC X(008). ! -009100* NO AGENT PARTENAIRE EN LIGNE ! -009200* correspond au no agent chez le partenaire ext. ! -009300* (num�ro propre au partenaire) ! -009400 15 WS-4DCO-CD-PFL PIC X(003). ! -009500* CODE PROFIL IDENTIFICATEUR EN LIGNE ! -009600 15 WS-4DCO-IDC-PEC PIC X(001). ! -009700* PARTENAIRE EN PRISE EN CHARGE AUTOMATIQUE ! -009800* PEUT PRENDRE LES VALEURS : ! -009900 88 IDC-PEC-AUT VALUE 'O'. ! -010000* Prise en charge automatique : pas de ! -010100* pr�-saisie ! -010200 88 IDC-PEC-MAN VALUE 'N'. ! -010300* Partenaire avec pr�-saisie (souscription, ! -010400* versement ...) ! -010500 15 WS-4DCO-IDC-AFG-AGT PIC X(001). ! -010600* Autorisation affichage numero d'agent ! -010700* ! -010800 15 WS-4DCO-VLR-NIV-DRG PIC S9(03) COMP-3. ! -010900* Niveau de d�rogation de l'identifiant ! -011000* ! -011100* ! -011200* TOP DE PROVENANCE TRANSFERT RACHAT ! -011300* ! -011400 15 WS-4DCO-TRANSFERT PIC X(02). ! -011500 88 RAC-TOT-SOUS-POPT VALUE '30'. ! -011600 88 RAC-TOT-VERS-POPT VALUE '35'. ! -011700 88 RAC-PAR-SOUS-POPT VALUE '40'. ! -011800 88 RAC-PAR-VERS-POPT VALUE '45'. ! -011900 88 RAC-TOT-SOUS-PRAC VALUE '50'. ! -012000 88 RAC-TOT-VERS-PRAC VALUE '55'. ! -012100 88 RAC-PAR-SOUS-PRAC VALUE '60'. ! -012200 88 RAC-PAR-VERS-PRAC VALUE '65'. ! -012300* ! -012400 15 WS-4DCO-IDC-VISU-DOC-ARCH PIC X(001). ! -012500* Autorisation consultation documents archiv�s ! -012600* ! -012700 15 FILLER PIC X(001). ! -012800* ZONES DISPONIBLES (Partenaire en ligne) ! -012900* ! -013000* ------------------------------------------------------------ ! -013100* LONGUEUR : 005 ! -013200* informations identifiantes de la personne (nvelle base) ! -013900* ------------------------------------------------------------ ! -014000* ! -014100 10 WS-4DCO-IDENTIFIANT-PERSONNE. ! -014200* infos indentifiantes personnes ! -014300 15 WS-4DCO-NO-PSE PIC 9(8) COMP. ! -014400* n� de la personne ! -014401 15 FILLER PIC X(001). ! -014402* ZONES DISPONIBLES (Personne) ! -014403* ! -014404* ------------------------------------------------------------ ! -014405* LONGUEUR : 430 ! -014406* INFORMATIONS CLIENT PERMET : ! -014407* * DE CONSERVER LES INFORMATIONS GLOBALES D'UN CLIENT ! -014408* SURAVENIR (PERSONNE PHYSIQUE OU MORALE) ! -014409* * DE SAUVEGARDE DES DONNEES VENANT DE L'INTERFACE CCM ! -014410* POUR LA MISE A JOUR DE LA BASE PERSONNE ! -014411* * DE DISTINGUER LES INFORMATIONS PROPRES A UN CLIENT ! -014412* DE TYPE PERSONNE PHYSIQUE OU MORALE ! -014413* ------------------------------------------------------------ ! -014414* ! -014415 10 WS-4DCO-CLIENT-GLOBAL. ! -014416* INFOS GLOBALES CLIENT ! -014417 15 WS-4DCO-CD-CLI-PTN PIC X(015). ! -014418* CODE EXTERNE DU CLIENT ! -014500 15 WS-4DCO-CREAT-CLIENT PIC X(001). ! -014600* TOP POSSIBILITE CREATION CLIENT (O/N) ! -014700 15 WS-4DCO-CNTU PIC X(001). ! -014800* CODE TYPE DE PERSONNE (P:Phys, M:Morale) ! -014900 15 WS-4DCO-CLI-ADR. ! -015000* ADRESSE DU CLIENT ! -015100 20 WS-4DCO-RUE-DEB PIC X(032). ! -015200* RUE (LIGNE 1) ! -015300 20 WS-4DCO-RUE PIC X(032). ! -015400* RUE (LIGNE 2) ! -015500 20 WS-4DCO-COMMU PIC X(032). ! -015600* COMMUNE ! -015700 20 WS-4DCO-CODPOS PIC X(005). ! -015800* CODE POSTAL ! -015900 20 WS-4DCO-LIB-BUR-DIST PIC X(032). ! -016000* BUREAU DISTRIBUTEUR ! -016100 20 WS-4DCO-CD-DPT PIC X(002). ! -016200* CODE DEPARTEMENT ! -016300 20 WS-4DCO-CD-COMM PIC X(003). ! -016400* CODE INSEE COMMUNE ! -016500 20 WS-4DCO-NO-TEL PIC X(011). ! -016600* NUMERO TELEPHONE ! -016700 20 WS-4DCO-DA-DNR-MAJ-ADR PIC X(008). ! -016800* DATE DE DERNIERE MAJ ADRESSE ! -016900 15 WS-4DCO-CLIENT-NO-STR-DIS PIC X(006) ! -017000 OCCURS 10. ! -017100* STRUCTURE PRESENCE DU CLIENT ! -017200 15 WS-4DCO-DOM-NO-STR-DIS PIC X(006). ! -017300* STRUCTURE DU COMPTE DOMICILIATION ! -017400 15 WS-4DCO-CAT-DOM PIC X(002). ! -017500* CATEGORIE DU COMPTE DOMICILIATION ! -017600 15 WS-4DCO-LIB-CD-INT-CT PIC X(010). ! -017700* LIBELLE COURT DU CODE INTITULE ! -017800 15 WS-4DCO-NO-ORD-ADR-POST PIC 9(002). ! -017900* NUMERO D ADRESSE POSTALE ! -017901* ! -017902* ------------------------------------------------------------ ! -017903* LONGUEUR : 006 ! -017904* informations identifiantes de la relation ! -017905* personne/partenaire (nouvelle base) ! -017906* ------------------------------------------------------------ ! -017907* ! -017908 10 WS-4DCO-IDENTIFIANT-PSE-PTN. ! -017909* infos indentifiantes relation personne/partenaire ! -017910 15 WS-4DCO-NO-IDT-PSE-PTN PIC 9(9) COMP-3. ! -017911* n� personne/partenaire ! -017912 15 FILLER PIC X(001). ! -017913* ZONE DISPONIBLE ! -018200* ! -018300 10 WS-4DCO-CLIENT-PPPM PIC X(170). ! -018400* DISTINCTION INFOS PP OU PM ! -018500* ! -018600 10 WS-4DCO-CLIP REDEFINES WS-4DCO-CLIENT-PPPM. ! -018700* INFOS CLIENT TYPE PERSONNE PHYSIQUE ! -018800 15 WS-4DCO-CINT PIC X(002). ! -018900* CODE INTITULE DE LA PERSONNE PHYSIQUE ! -019000 15 WS-4DCO-NOM PIC X(032). ! -019100* NOM DU CLIENT ! -019200 15 WS-4DCO-PRENOM PIC X(032). ! -019300* PRENOM DU CLIENT ! -019400 15 WS-4DCO-AANAI. ! -019500* DATE DE NAISSANCE DU CLIENT ! -019600 20 WS-4DCO-DNAISSA. ! -019700* SIECLE ET ANNEE DATE DE NAISSANCE ! -019800 25 WS-4DCO-DNAISS PIC X(002). ! -019900* SIECLE DATE DE NAISSANCE ! -020000 25 WS-4DCO-DNAISA PIC X(002). ! -020100* ANNEE DATE DE NAISSANCE ! -020200 20 WS-4DCO-DNAISM PIC X(002). ! -020300* MOIS DATE DE NAISSANCE ! -020400 20 WS-4DCO-DNAISJ PIC X(002). ! -020500* JOUR DATE DE NAISSANCE ! -020600 15 WS-4DCO-LIEUNAIS PIC X(032). ! -020700* LIEU DE NAISSANCE ! -020800 15 WS-4DCO-CD-INS-COM-NAI. ! -020900* CODE INSEE COMMUNE NAISSANCE ! -021000 20 WS-4DCO-CD-INS-DPT-NAIS PIC X(002). ! -021100* CODE INSEE DEPARTEMENT NAISSANCE ! -021200 20 WS-4DCO-CD-INS-VIL-NAIS PIC X(003). ! -021300* CODE INSEE VILLE NAISSANCE ! -021400 15 WS-4DCO-NOM-PATRO PIC X(032). ! -021500* NOM PATRONYMIQUE ! -021600 15 WS-4DCO-CD-SIT-FAM PIC X(001). ! -021700* CODE SITUATION FAMILIALE ! -021800 15 FILLER PIC X(002). ! -021900* ! -022000 15 WS-4DCO-CD-SEX PIC X(001). ! -022100* CODE SEXE ! -022200 15 WS-4DCO-CFRS PIC X(006). ! -022300* CENTRE DE FRAIS ! -022400* 15 WS-4DCO-RANG-PEPB PIC X(002). ! -022500* RANG DU DERNIER PEP BANQUE ! - 15 WS-4DCO-CD-CPC-JUR PIC X(002). ! - * code juridique ! -022600* 15 WS-4DCO-FCT-PEPB PIC X(001). ! -022700* FONCTIONNEMENT DU PEP BANQUE ! - 15 WS-4DCO-CD-RGM-MAT PIC X(001). ! - * code regime matrimonial ! -022800 15 WS-4DCO-CD-INSEE-CSP PIC X(004). ! -022900* CODE CATEGORIE SOCIO PROFESS. INSEE ! -023000 15 WS-4DCO-DA-LIQ-RTRT PIC X(008). ! -023100* DATE DEPART EN RETRAITE (GESTION PERP) ! -023101 15 WS-4DCO-CD-RSD-ETG-P PIC X(002). ! -023102* CODE RESIDENT ETRANGER ! -023200* ! -023300 10 WS-4DCO-CLIM REDEFINES WS-4DCO-CLIENT-PPPM. ! -023400* INFOS CLIENT TYPE PERSONNE MORALE ! -023500 15 WS-4DCO-CD-INT PIC X(002). ! -023600* CODE INTITULE DE LA PERSONNE MORALE ! -023700 15 WS-4DCO-RAI-SOC PIC X(032). ! -023800* RAISON SOCIALE ! -023900 15 WS-4DCO-LIB-ENS PIC X(032). ! -024000* ENSEIGNE COMMERCIALE ! -024100 15 WS-4DCO-DA-CRE-EPS. ! -024200* DATE DE CREATION DE L'ENTREPRISE ! -024300 20 WS-4DCO-DA-CRE-EPS-SSAA. ! -024400* SIECLE ET ANNEE DATE DE CREATION ! -024500 25 WS-4DCO-DA-CRE-EPS-SS PIC X(002). ! -024600* SIECLE DATE DE CREATIO ! -024700 25 WS-4DCO-DA-CRE-EPS-AA PIC X(002). ! -024800* ANNEE DATE DE CREATION ! -024900 20 WS-4DCO-DA-CRE-EPS-MM PIC X(002). ! -025000* MOIS DATE DE CREATION ! -025100 20 WS-4DCO-DA-CRE-EPS-JJ PIC X(002). ! -025200* JOUR DATE DE CREATION ! -025300 15 WS-4DCO-LIB-NOM PIC X(032). ! -025400* NOM DU REPRESENTANT LEGAL ! -025500 15 WS-4DCO-CD-TY-PSE-EN PIC X. ! -025600* TYPE D'ENTREPRISE ! -025700 15 WS-4DCO-CD-INT-REP PIC X(002). ! -025800* CODE INTITULE DU REPRESENTANT LEGAL ! -025900 15 FILLER PIC X(002). ! -026000* ZONE LIBRE ! -026100 15 WS-4DCO-NOM-PATRO-EN PIC X(032). ! -026200* RAISON SOCIALE + LIBELLE ENSEIGNE ! -026300 15 WS-4DCO-NO-SIRET. ! -026400* NUMERO DE SIRET ! -026500 20 WS-4DCO-NO-IDT-EPS-SIT PIC X(009). ! -026600* NUMERO DE SIREN ! -026700 20 WS-4DCO-NO-IDT-CPL-SIT PIC X(005). ! -026800* COMPLEMENT AU SIREN ! -026900 15 WS-4DCO-JURID. ! -027000* CLASSIFICATION JURIDIQUE DE L'ENTREPRISE ! -027100 20 WS-4DCO-CD-DIV-FRM-JUR PIC X(002). ! -027200* CODE DIVISION FORME JURIDIQUE ! -027300 20 WS-4DCO-CD-SUB-FRM-JUR PIC X(002). ! -027400* CODE SUBDIVISION FORME JURIDIQUE ! -027500 15 WS-4DCO-NAF. ! -027600* CODE NORME ACTIVITE FRANCAISE ! -027700 20 WS-4DCO-CD-DIV-NAF PIC X(002). ! -027800* CODE DIVISION NAF ! -027900 20 WS-4DCO-CD-CLS-NAF PIC X(002). ! -028000* CODE VLASSIFICATION NAF ! -028010 15 WS-4DCO-CD-RSD-ETG-M PIC X(002). ! -028020* CODE RESIDENT ETRANGER ! -028100 15 FILLER PIC X(003). ! -028200* ZONE DISPONIBLE (P. Morale) ! -028300* ! -028400* ------------------------------------------------------------ ! -028500* LONGUEUR : 33 ! -028600* FIN DE LA PARTIE ACCUEIL (ZONE DISPONIBLE) ! -028700* ------------------------------------------------------------ ! -028800 10 WS-4DCO-TRAN-PROV PIC X(004). ! -028900* TRANSACTION APPELANTE ! -029000 10 WS-4DCO-HABI-CCM-GRP PIC X(003). ! -029100* groupe habilitation ccm ! -029200 10 WS-4DCO-HABI-CCM-NIV-DLG PIC X(003). ! -029300* Niveau delegation habilitation ccm ! -029400* ------------------------------------------------------------ ! -029500* LONGUEUR : 1 ! -029600* MODE DE CONNEXION / ZONE SPECIFIQUE CONNEXION CMLACO ! -029700* ------------------------------------------------------------ ! -029800* ! -029900 10 WS-4DCO-MOD-CNX PIC X(001). ! -030000* MODE CONNEXION ! -030100* PEUT PRENDRE LES VALEURS : ! -030200 88 MOD-CNX-ANC VALUE '0'. ! -030300* ANCIEN MODE DE CONNEXION PARTENAIRE '00028' ! -030400 88 MOD-CNX-NV-SS-INF-CLI VALUE '1'. ! -030500* NOUVEAU MODE DE CONNEXION PARTENAIRE '15749' ! -030600* SANS INFOS CLIENT ! -030700 88 MOD-CNX-NV-AVC-INF-CLI VALUE '2'. ! -030800* NOUVEAU MODE DE CONNEXION PARTENAIRE '15749' ! -030900* AVEC INFOS CLIENT ! -030700 88 MOD-CNX-ORIADYS VALUE '3'. ! -030800* NOUVEAU MODE DE CONNEXION ! -031000* ! -031100 10 WS-4DCO-NO-BUR-STR-OPE-GE PIC X(006). ! -031200* NUMERO DE BUREAU DE GESTION ! -031201* ! -031202 10 WS-4DCO-PARAMETRE-FPOINT PIC X(001). ! -031203* INDICATEUR FOURNI PAR FPOINT ! -031204* ! -031205 10 WS-4DCO-NB-QZ-DRG PIC 9(002). ! -031206* NOMBRE DE QUINZAINES DEROGEABLES ! -031300* ! -031400 10 WS-4DCO-DATE-SELECTION. ! -031401 15 WS-4DCO-DATE-SEL-SSAA PIC 9(004). ! -031402 15 WS-4DCO-DATE-SEL-MM PIC 9(002). ! -031403 15 WS-4DCO-DATE-SEL-JJ PIC 9(002). ! -031404* date pour selection dans liste ! -031405* (voir WS-4DCO-DATE-FIN plus bas) ! -031406 10 WS-4DCO-TOP-MODIF PIC X. ! -031410* ! -031420 10 FILLER PIC X(004). ! -031500* ZONE DISPONIBLE (partie accueil) ! -031600 ! -031700 05 WS-4DCO-TRAITE. ! -031800* =============== ! -031900*--------------------------------------------------------------- * ! -032000* COMMAREA : PARTIE COMMUNE ==> INFOS TRAITEES * ! -032100* LONGUEUR : 350 * ! -032200* PREFIXE : WS-4DCO- * ! -032300*--------------------------------------------------------------- * ! -032400* ! -032500* ------------------------------------------------------------ ! -032600* INFORMATIONS CONTRAT (NUMERO INTERNE) ! -032700* ------------------------------------------------------------ ! -032800 10 WS-4DCO-GEODE. ! -032900* CLE INTERNE GEODE ! -033000* correspond a la r�f�rence interne qui est ! -033100* utilis�e pour la lecture des fichiers ! -033200 15 WS-4DCO-GEO-PTN PIC 9(003). ! -033300* PARTENAIRE INTERNE ! -033400 15 WS-4DCO-GEO-CLI PIC 9(007). ! -033500* CLIENT INTERNE ! -033600 15 WS-4DCO-GEO-PRD PIC 9(003). ! -033700* PRODUIT INTERNE ! -033800 15 WS-4DCO-GEO-RANG PIC X(002). ! -033900* RANG INTERNE ! -034000 15 WS-4DCO-GEO-ENR PIC X(002). ! -034100* NO ENREGISTREMENT (fichier) ! -034200 15 WS-4DCO-GEO-SEQ PIC X(003). ! -034300* NO SEQUENCE (fichier) ! -034400* ! -034500* ------------------------------------------------------------ ! -034600* INFORMATIONS CONTRAT (NUMERO EXTERNE) ! -034700* ------------------------------------------------------------ ! -034800 10 WS-4DCO-EXTERNE PIC X(020). ! -034900* IMAGE COMPLETE DU CONTRAT EXTERNE ! -035000* A utiliser uniquement pour les affichages ! -035100* ! -035200 10 WS-4DCO-CLE-CCM REDEFINES WS-4DCO-EXTERNE. ! -035300 15 WS-4DCO-CCM-PTN PIC X(005). ! -035400* PARTENAIRE CCM ! -035500 15 WS-4DCO-CCM-CPT. ! -035600* CONTRAT EXTERNE CREDIT MUTUEL ! -035700* Correspond � la r�f�rence externe (T4D0108) ! -035800* d'un num�ro de contrat pour le cr�dit mutuel ! -035900 20 WS-4DCO-CCM-CLIENT. ! -036000 25 WS-4DCO-CCM-RAC PIC X(007). ! -036100* RACINE ! -036200 25 WS-4DCO-CCM-CLE PIC X(001). ! -036300* CLE ! -036400 20 WS-4DCO-CCM-CAT PIC X(002). ! -036500* CATEGORIE ! -036600 20 WS-4DCO-CCM-RANG PIC X(002). ! -036700* RANG ! -036800 20 FILLER PIC X(003). ! -036900* ! -037000 10 WS-4DCO-CLE-EXT REDEFINES WS-4DCO-EXTERNE. ! -037100 15 WS-4DCO-EXT-PTN PIC X(005). ! -037200* PARTENAIRE EXTERIEUR ! -037300 15 WS-4DCO-EXT-CPT. ! -037400* CONTRAT EXTERNE PARTENAIRE EXTERIEUR ! -037500* Correspond � la r�f�rence externe (T4D0108) ! -037600* d'un contrat pour les partenaires ext�rieurs ! -037700 20 WS-4DCO-EXT-PRD PIC X(002). ! -037800* PRODUIT ! -037900 20 WS-4DCO-EXT-POL PIC X(009). ! -038000* NO POLICE ! -038100 20 FILLER PIC X(004). ! -038200* ! -038300* ------------------------------------------------------------ ! -038400* INFORMATIONS PROPRES AU CMLACO (Table T4D0109) ! -038500* ------------------------------------------------------------ ! -038600 10 WS-4DCO-CMLACO. ! -038700* NUMERO DE COMPTE DU CMLACO ! -038800 15 WS-4DCO-CMLACO-CAISSE PIC X(003). ! -038900* CAISSE CMLACO ! -039000 15 WS-4DCO-CMLACO-CPT PIC X(008). ! -039100* COMPTE CMLACO ! -039200* ! -039300* ------------------------------------------------------------ ! -039400* LONGUEUR : 30 ! -039500* INFORMATIONS COMPLEMENTAIRES DU PARTENAIRE TRAITE ! -039600* ------------------------------------------------------------ ! -039700 10 WS-4DCO-PARTENAIRE. ! -039800 15 WS-4DCO-IDC-CMB-EXT PIC X(001). ! -039900* INDICATEUR DU TYPE DE PARTENAIRE ! -040000* Pr�cise si le partenaire est de type CMB (O) ! -040100* ou de type partenaire ext�rieur (N) ! -040200 88 IDC-CMB VALUE 'O'. ! -040300* Type CMB ! -040400 88 IDC-EXT VALUE 'N'. ! -040500* Type partenaire ext�rieur ! -040600 15 WS-4DCO-LA-PTN PIC X(016). ! -040700* LIBELLE ABREGE PARTENAIRE ! -040800 15 WS-4DCO-IDC-SOC-FDL-GT PIC X(001). ! -040900* INDICATEUR GESTION OPERATIONS SOC. FIDELES ! -041000 15 WS-4DCO-TX-DRG-FRS-DOS-SF PIC 9(3)V9(4). ! -041100* TAUX DE FRAIS OPERATIONS SOC. FIDELES ! -041200 15 WS-4DCO-IDC-CTR-FDL-GT PIC X(001). ! -041300* INDICATEUR GESTION OPERATIONS SOC. FIDELES ! -041400* POUR LE CONTRAT TRAITE ! -041500 15 WS-4DCO-IDC-PTN-ITN PIC X(001). ! -041600* INDICATEUR INTERNET GENERAL (PTN OU IDENTIFIANT) ! -041700 15 WS-4DCO-TOPDIS PIC X(001). ! -041800* INDICATEUR RECHERCHE CONTRAT (CF. YS) ! -041900 15 WS-4DCO-PARTN-IDC-PTN-ITN PIC X(001). ! -042000* TOP "PARTENAIRE INTERNET" DU PARTENAIRE TRAIT� ! -042010 15 WS-4DCO-IDC-GTN-MG PIC X(001). ! -042200* indicateur gestion sous mandat ! -042300* ! -042400* ------------------------------------------------------------ ! -042500* INFOS STRUCTURE DE DISTRIBUTION GESTIONNAIRE DU CONTRAT ! -042600* ------------------------------------------------------------ ! -042700 10 WS-4DCO-FIX-STRUCTURE-GTN. ! -042800 15 WS-4DCO-FIX-NO-STR-GTN PIC X(006). ! -042900* STRUCTURE DE DISTRIBUTION DU CONTRAT ! -043000* correspond au no caisse r�seau credit mutuel ! -043100* ou au no agence reseau ptn ext ! -043200 15 WS-4DCO-FIX-LIB-STR-GTN PIC X(032). ! -043300* LIBELLE STRUCTURE DU CONTRAT ! -043400 15 WS-4DCO-FIX-NO-AGT-GTN PIC X(008). ! -043500* NUMERO D AGENT DU CONTRAT ! -043600* correspond au no salarie r�seau credit mutuel ! -043700* ou au no identificateur ptn ext ! -043800* ! -043900* ------------------------------------------------------------ ! -044000* INFORMATIONS PRODUIT (+ TYPE, + GAMME) TRAITE ! -044100* ------------------------------------------------------------ ! -044200 10 WS-4DCO-PRODUIT. ! -044300 15 WS-4DCO-CD-PRD PIC X(002). ! -044400* CODE EXTERNE DU PRODUIT ! -044500 15 WS-4DCO-GEN-PRD PIC X(003). ! -044600* NUMERO DE GENERATION DU PRODUIT ! -044700 15 WS-4DCO-LIB-PROD PIC X(032). ! -044800* LIBELLE PRODUIT ! -044900 15 WS-4DCO-LIB-PROD-CENTRE PIC X(032). ! -045000* LIBELLE DU PRODUIT ! -045100 15 WS-4DCO-TY-PRD PIC 9(002). ! -045200* TYPE DE PRODUIT ! -045300 15 WS-4DCO-LIB-TY-PRD PIC X(032). ! -045400* LIBELLE TYPE DE PRODUIT ! -045500 15 WS-4DCO-GEN-TY PIC X(003). ! -045600* NUMERO DE GENERATION DU TYPE DE PRODUIT ! -045700 15 WS-4DCO-GAM-PRD PIC 9(002). ! -045800* GAMME DE PRODUIT ! -045900 15 WS-4DCO-LIB-GAM-PRD PIC X(032). ! -046000* LIBELLE GAMME DE PRODUIT ! -046100* ! -046200* ------------------------------------------------------------ ! -046300* INFORMATIONS DERNIERE MISE A JOUR ! -046400* ------------------------------------------------------------ ! -046500 10 WS-4DCO-DERN-MAJ. ! -046600* DATE ET HEURE DE DERNIERE MAJ ! -046700* correspond � la date de derniere maj ! -046800* correspond � l'heure de derniere maj ! -046900 15 WS-4DCO-DATE-DERN-MAJ. ! -047000* DATE DE DERNIERE MAJ ! -047100 20 WS-4DCO-DMAJ-SS PIC X(002). ! -047200* SIECLE DATE DE DERNIERE MAJ ! -047300 20 WS-4DCO-DMAJ-AA PIC X(002). ! -047400* ANNEE DATE DE DERNIERE MAJ ! -047500 20 WS-4DCO-DMAJ-MM PIC X(002). ! -047600* MOIS DATE DE DERNIERE MAJ ! -047700 20 WS-4DCO-DMAJ-JJ PIC X(002). ! -047800* JOUR DATE DE DERNIERE MAJ ! -047900 15 WS-4DCO-HEUR-DERN-MAJ. ! -048000* HORAIRE DE DERNIERE MAJ ! -048100 20 WS-4DCO-DMAJ-HEU PIC X(002). ! -048200* HEURE HORAIRE DE DERNIERE MAJ ! -048300 20 WS-4DCO-DMAJ-MIN PIC X(002). ! -048400* MINUTE HORAIRE DE DERNIERE MAJ ! -048500 20 WS-4DCO-DMAJ-SEC PIC X(002). ! -048600* SECONDE HORAIRE DE DERNIERE MAJ ! -048700 10 WS-4DCO-TS-EDIT-CICS. ! -048800* IDENTIFICATION TS IMPRESSION CICS ! -048900 15 WS-4DCO-TRMID-CICS PIC X(004). ! -049000* TERMINAL DE CREATION TS EDITION CICS ! -049100 15 WS-4DCO-TIME-CICS PIC S9(7) COMP-3. ! -049200* HEURE DE CREATION TS EDITION CICS ! -049300* ------------------------------------------------------------ ! -049400* INFORMATIONS SPECIFIQUES A PREVI-OPTIONS ! -049500* ------------------------------------------------------------ ! -049600 10 WS-4DCO-PUC. ! -049700 15 WS-4DCO-IDC-PRD-UNT-CPT PIC X(001). ! -049800* INDICATEUR PRODUIT EN UNITE DE COMPTE ! -049900 10 WS-4DCO-TRAITEMENT-SCP PIC X(001). ! -050000* Etat souscription pour partenaire exterieur ! -050100 88 SOUSCRIPTION-VALIDEE VALUE 'O'. ! -050200 88 SOUSCRIPTION-NON-VALIDEE VALUE 'N'. ! -050300* ! -050400* ------------------------------------------------------------ ! -050500* INFORMATIONS SPECIFIQUES A PROVENANCE GESTION DECES ! -050600* ------------------------------------------------------------ ! -050700 10 WS-4DCO-PROV-GESTION-DECES PIC X(001). ! -050800* Souscription ou Versement ! -050900 88 PROV-DECES VALUE 'S' 'V'. ! -051000 88 SOUS-PROV-DECES VALUE 'S'. ! -051100 88 VERS-PROV-DECES VALUE 'V'. ! -051200* ! -051300* ------------------------------------------------------------ ! -051400* REFERENCES IMPRIMES ! -051500* ------------------------------------------------------------ ! -051600 10 WS-4DCO-REF-IMP. ! -051700 15 WS-4DCO-REF-IMP-CG PIC X(010). ! -051800 15 WS-4DCO-REF-IMP-SU PIC X(010). ! -051900* ! -052000* ------------------------------------------------------------ ! -052100* gestion profil ! -052200* ------------------------------------------------------------ ! -052300 10 WS-4DCO-IDC-PRD-CMP PIC X(001). ! -052400 10 WS-4DCO-CD-PFL-GES PIC X(003). ! -052500* ------------------------------------------------------------ ! -052600 10 WS-4DCO-CD-PER PIC X(001). ! -052700* ---------- indicateur d�qualification dsk ----------------- ! -052800 10 WS-4DCO-OUI-NON PIC X(001). ! -052900* ---------- indicateur produit dsk ----------------- ! -053000 10 WS-4DCO-IDC-PRD-DSK PIC X(001). ! -053100* ---------- indicateur pourcentage FCPR < 10 --------------- ! -053200 10 WS-4DCO-IDC-VAL-FCPR PIC X(001). ! -053300* ------------------------------------------------------------ ! -053400* code devise gestion ! -053500* ------------------------------------------------------------ ! -053600 10 WS-4DCO-CD-DVS-GTN PIC X(03). ! -053700* ------------------------------------------------------------ ! -053800* Indicateurs permettant la gestion des cadres ficaux (PEP, ! -053900* DSK, ...) en tant qu'option fiscale du contrat ! -054100* ------------------------------------------------------------ ! -054200 10 WS-4DCO-INFOS-OPT-FISCALE. ! -054300* ! -054400 15 WS-4DCO-IDC-PRD-FIS-UNQ PIC X(001). ! -054500* Indicateur produit commercial � option fiscale unique O/N ! -054501 88 PDT-AVEC-OPT-FIS-UNIQUE VALUE 'O'. ! -054502* Produit n'est reli� qu'� une seule cat�gorie ! -054503* fiscale ! -054504 88 PDT-AVEC-OPT-FIS-MULTIPLE VALUE 'N'. ! -054505* Produit reli� � plusieures cat�gories fiscales ! -054506 15 WS-4DCO-CD-CAT-FIS-CTR PIC X(002). ! -054507* Cat�gorie fiscale effective sur le contrat ! -054508 15 WS-4DCO-IDC-PRD-NSK PIC X(001). ! -054509 15 FILLER PIC X(003). ! -054510* R�serve pour gestion nouvelles options fiscales ! -054600* ! -055100* ------------------------------------------------------------ ! -055200* gestion offre li�e ! -055300* ------------------------------------------------------------ ! -055400 10 WS-4DCO-CD-OFFRE-LIEE PIC X(02). ! -055500* ------------------------------------------------------------ ! -055600 10 WS-4DCO-CD-MODE-OFFRE-LIEE PIC X(03). ! -055700* ------------------------------------------------------------ ! -055800* gestion demande internet ! -055900* ------------------------------------------------------------ ! -056000 10 WS-4DCO-IDC-TT-DEM-ITN PIC X(01). ! -056100* Indicateur de gestion des demandes internet ! -056200* ------------------------------------------------------------ ! -056300* numero sequentiel de document (reedition) ! -056400* ------------------------------------------------------------ ! -056500 10 WS-4DCO-NO-SEQ-DO PIC 9(3). ! -056600 10 WS-4DCO-IDC-CRE-FLUX PIC X(01). ! -056700* ------------------------------------------------------------ ! -056800* ZONE DISPONIBLE (infos trait�es) ! -056900* ------------------------------------------------------------ ! -057000 10 WS-4DCO-IDC-CDR-DRG PIC X(001). ! -057010 10 WS-4DCO-IDC-TY-PRD-DSK PIC X(001). ! -057100* ------------------------------------------------------------ ! -057200 10 WS-4DCO-DA-PREM-SCR PIC X(008). ! -057300* ------------------------------------------------------------ ! -057400 ! -057500 05 WS-4DCO-RESERVE. ! -057600* ================ ! -057700*--------------------------------------------------------------- * ! -057800* COMMAREA : PARTIE COMMUNE ==> RESERVE * ! -057900* LONGUEUR : 300 * ! -058000* PREFIXE : WS-4DCO- * ! -058100*--------------------------------------------------------------- * ! -058200 ! -058300* ------------------------------------------------------------ ! -058400* INDICATEURS DE MAJ COMMAREA PAR APPEL DU MODULE K4DINITC ! -058500* (MISE A JOUR GENERALISEE DE COMMAREA) ! -058600* ------------------------------------------------------------ ! -058700 10 WS-4DCO-IND-MAJ-COMMAREA. ! -058800 15 WS-4DCO-IND-MAJ-COM. ! -058900 20 WS-4DCO-IND-MAJ-PTN PIC X(001). ! -059000* INDICATEUR DE MAJ INFOS PARTENAIRE ! -059100 20 WS-4DCO-IND-MAJ-PRD PIC X(001). ! -059200* INDICATEUR DE MAJ INFOS PRODUIT ! -059300 20 WS-4DCO-IND-MAJ-CLT PIC X(001). ! -059400* INDICATEUR DE MAJ INFOS CLIENT ! -059500 20 WS-4DCO-IND-MAJ-CLT-CTR PIC X(001). ! -059600* INDICATEUR DE MAJ INFOS CLT AVEC INFOS CTR ! -059700 20 WS-4DCO-IND-MAJ-PRD-SSINIT PIC X(001). ! -059800* INDICATEUR DE MAJ INFOS PRODUIT SANS INIT ! -059900 20 WS-4DCO-IND-MAJ-HBI PIC X(001). ! -060000* INDICATEUR DE MAJ INFOS HABILITATION ! -060100 20 FILLER PIC X(002). ! -060200* ZONE DISPONIBLE ! -060300 15 WS-4DCO-CD-RET-MAJ-COM PIC S9(4) COMP. ! -060400* CODE RETOUR SUR MAJ COMMAREA ! -060500 ! -060600* ------------------------------------------------------------ ! -060700 10 WS-4DCO-CCHX PIC X(002). ! -060800* CODE CHOIX ! -060900 10 WS-4DCO-TS-IDENT PIC X(008). ! -061000* IDENTIFIANT DE LA TS D'EDITION ! -061100 10 WS-4DCO-LMSG PIC X(070). ! -061200* LIBELLE MESSAGE ! -061300 10 WS-4DCO-PGM PIC X(008). ! -061400* NOM DU PROGRAMME ! -061500 10 WS-4DCO-DATEJOUR. ! -061600* DATE DU JOUR ! -061700 15 WS-4DCO-DATESA. ! -061800* ANNEE ET SIECLE DATE DU JOUR ! -061900 20 WS-4DCO-DATESS PIC X(002). ! -062000* SIECLE DATE DU JOUR ! -062100 20 WS-4DCO-DATEAA PIC X(002). ! -062200* ANNEE DATE DU JOUR ! -062300 15 WS-4DCO-DATEMM PIC X(002). ! -062400* MOIS DATE DU JOUR ! -062500 15 WS-4DCO-DATEJJ PIC X(002). ! -062600* JOUR DATE DU JOUR ! -062700 10 WS-4DCO-HEUREJOUR. ! -062800* HORAIRE DE TRAITEMENT ! -062900 15 WS-4DCO-HEUREHH PIC X(002). ! -063000* HEURE HORAIRE DE TRAITEMENT ! -063100 15 WS-4DCO-HEUREMM PIC X(002). ! -063200* MINUTE HORAIRE DE TRAITEMENT ! -063300 10 WS-4DCO-OKVALID PIC X(001). ! -063400* FLAG DE VALIDATION DONNEES ! -063500* Rajout pour test sous telon ! -063600 88 ECRAN-ATTENTE-VALIDATION VALUE '*'. ! -063700 88 ECRAN-ATTENTE-NORMALE VALUE ' '. ! -063800 10 WS-4DCO-OKBEN PIC X(001). ! -063900* FLAG DE VALIDATION DONNEES ECRANS BENEF. ! -064000 10 WS-4DCO-BLOCAGE PIC X(001). ! -064100* FLAG DE BLOCAGE DE LA SAISIE ! -064200 10 WS-4DCO-BANQDOM PIC X(005). ! -064300* CODE BANQUE DU COMPTE DOM ! -064400 10 WS-4DCO-GUICHDOM. ! -064500* CODE GUICHET DU COMPTE DOM ! -064600 15 WS-4DCO-DEPDOM PIC X(002). ! -064700* NO DE DEPARTEMENT ! -064800 15 WS-4DCO-CAIDOM PIC X(003). ! -064900* NO DE CAISSE SUR 3 POS. ! -065000 10 WS-4DCO-NO-PAGE PIC 9(002). ! -065100* NUMERO DE PAGE ! -065200 10 WS-4DCO-NB-PAGES PIC 9(002). ! -065300* NOMBRE DE PAGES ! -065400 10 WS-4DCO-CD-DOC PIC X(007). ! -065500* REFERENCE DE L'EDITION ! -065600 10 WS-4DCO-RETOUR PIC X(001). ! -065700* CODE RETOUR ! -065800 10 WS-4DCO-IND-LETTRE-CHEQUE PIC X(001). ! -065900* FLAG TRAITEMENT LETTRES-CHEQUES ! -066000 10 WS-4DCO-MVT-RETRO PIC X(001). ! -066100* INDICATEUR AUTORISATION MVT RETROACTIF ! -066200 10 WS-4DCO-TS-ITEM PIC 9(002). ! -066300* NUMERO D'ITEM TS D'EDITION ! -066400 10 WS-4DCO-TRF-SORTIE PIC X(001). ! -066500* FLAG TRF EN SORTIE ! -066600 10 WS-4DCO-CD-RET PIC X(002). ! -066700* CODE RETOUR PROGRAMMES DE DEBRANCHEMENT ! -066800 10 WS-4DCO-FCT PIC X(001). ! -066900* CODE FONCTIONNEMENT DU COMPTE ! -067000 10 WS-4DCO-CHG-CPT-DOM PIC X(001). ! -067100* INDICATEUR DE CHANGEMENT DU COMPTE DOM ! -067200 10 WS-4DCO-NO-CTR PIC X(006). ! -067300* NUMERO DE CONTRAT FISCAL ! -067400 10 WS-4DCO-CD-NTS PIC X(001). ! -067500* INDICATEUR DE NANTISSEMENT ! -067600 10 WS-4DCO-DA-SCR. ! -067700* DATE SOUSCRIPTION ! -067800 15 WS-4DCO-DA-SCR-SSAA. ! -067900* SIECLE ANNEE DATE SOUSCR. ! -068000 20 WS-4DCO-DA-SCR-SS PIC X(002). ! -068100* SIECLE DATE SOUSCRIPTION ! -068200 20 WS-4DCO-DA-SCR-AA PIC X(002). ! -068300* ANNEE DATE SOUSCRIPTION ! -068400 15 WS-4DCO-DA-SCR-MM PIC X(002). ! -068500* MOIS DATE SOUSCRIPTION ! -068600 15 WS-4DCO-DA-SCR-JJ PIC X(002). ! -068700* JOUR DATE SOUSCRIPTION ! -068800 10 WS-4DCO-CPT-PAS. ! -068900* COMPTE DE PASSAGE DES CCM ! -069000 15 WS-4DCO-CPT-PAS-RAC PIC X(007). ! -069100* RACINE DE PASSAGE DES CCM ! -069200 15 WS-4DCO-CPT-PAS-CLE PIC X(001). ! -069300* RACINE DE PASSAGE DES CCM ! -069400 10 WS-4DCO-DEMANDE-PR PIC X(003). ! -069500* CODE CONSULTATION PRIME OU DEMANDE PRIME ! -069600 10 WS-4DCO-MTF-CLO PIC X(001). ! -069700* CODE MOTIF CLOTURE DU COMPTE ! -069800 10 WS-4DCO-NB-BNF PIC 9(002). ! -069900* NOMBRE DE BENEFICIAIRES ! -070000 10 WS-4DCO-NB-ESS-CNX PIC 9(001). ! -070100* NOMBRE ESSAIS CONNEXION ! -070200 ! -070300* ------------------------------------------------------------ ! -070400* PARTIE COMMUNE POUR AFFICHAGE MENU ! -070500* ------------------------------------------------------------ ! -070600 10 WS-4DCO-CD-APPLI PIC X(004). ! -070700* CODE APPLICATION DESTINATION ! -070800 10 WS-4DCO-CD-OPT-SAUV. ! -070900* OPTION CHOISIE DU MENU PRECEDENT ! -071000 15 WS-4DCO-CD-OPT-MP PIC X(002). ! -071100* OPTION CHOISIE DU MENU PRINCIPAL ! -071200 15 WS-4DCO-CD-OPT-MS PIC X(002). ! -071300* OPTION CHOISIE DU MENU SECONDAIRE ! -071400 15 WS-4DCO-CD-OPT-MT PIC X(002). ! -071500* OPTION CHOISIE DU MENU TERTIAIRE ! -071600 15 WS-4DCO-CD-OPT-MQ PIC X(002). ! -071700* OPTION CHOISIE DU MENU QUATERNAIRE ! -071800 15 FILLER PIC X(004). ! -071900* ZONES DISPO (pour autre type de menu) ! -072000 ! -072021 10 WS-4DCO-DATE-FIN. ! -072022 15 WS-4DCO-DATE-FIN-SSAA PIC 9(004). ! -072023 15 WS-4DCO-DATE-FIN-MM PIC 9(002). ! -072024 15 WS-4DCO-DATE-FIN-JJ PIC 9(002). ! -072025* date pour selection dans liste ! -072026* (voir date-selection plus haut) ! -072030 ! -072100* ------------------------------------------------------------ ! -072200* PARTIE COMMUNE POUR CONFIDENTIALITE ! -072300* ------------------------------------------------------------ ! -072400 10 WS-4DCO-CONFID PIC X(001). ! -072500* TYPE DE CONFIDENTIALITE ! -072600 88 CONFID-T VALUE 'T'. ! -072700* CONFIDENTIALITE TOUT PARTENAIRE ! -072800 88 CONFID-X VALUE 'X'. ! -072900* CONFIDENTIALITE TOUT PARTENAIRE SAUF ! -073000 88 CONFID-P VALUE 'P'. ! -073100* CONFIDENTIALITE PARTENAIRE (1 A N) ! -073200 88 CONFID-A VALUE 'A'. ! -073300* CONFIDENTIALITE AGENCE (1 A N) ! -073400 88 CONFID-G VALUE 'G'. ! -073500* CONFIDENTIALITE AGENT (1 A N) ! -073600 10 WS-4DCO-NB-OCC-CF PIC 9(003). ! -073700* NOMBRE OCCURENCES TS CONFIDENTIALITE ! -073800 ! -073900* ------------------------------------------------------------ ! -074000* PARTIE COMMUNE POUR DEROGATIONS ! -074100* ------------------------------------------------------------ ! -074200 10 WS-4DCO-DEROG. ! -074300* DEROGATIONS PAR TYPE DE DONNEE ! -074400 15 WS-4DCO-IDC-AUT-DRG-DA PIC X(1). ! -074500* INDICATEUR DEROGATION DATE ! -074600 15 WS-4DCO-IDC-AUT-DRG-AG PIC X(1). ! -074700* INDICATEUR DEROGATION AGE ! -074800 15 WS-4DCO-IDC-AUT-DRG-MT PIC X(1). ! -074900* INDICATEUR DEROGATION MONTANT ! -075000 15 WS-4DCO-IDC-AUT-DRG-NB PIC X(1). ! -075100* INDICATEUR DEROGATION NOMBRE ! -075200 15 WS-4DCO-IDC-AUT-DRG-TX PIC X(1). ! -075300* INDICATEUR DEROGATION TAUX ! -075400 15 WS-4DCO-IDC-AUT-DRG-CP PIC X(1). ! -075500* INDICATEUR DEROGATION COMPTE ! -075600 15 WS-4DCO-IDC-AUT-DRG-TT PIC X(1). ! -075700* INDICATEUR DEROGATION SUR TAUX PAR TRANCHE ! -075800 15 WS-4DCO-IDC-AUT-DRG-TC PIC X(1). ! -075900* INDICATEUR DEROGATION TRAITEMENT DES CHEQUES ! -076000 15 WS-4DCO-IDC-AUT-DRG-SF PIC X(1). ! -076100* INDICATEUR DEROGATION SOCIETAIRE FIDELE ! -076200 15 WS-4DCO-IDC-AUT-DRG-AN PIC X(1). ! -076300* INDICATEUR DEROGATION ANNULATION NON JOUR ! -076400 15 WS-4DCO-IDC-N-IMT PIC X(1). ! -076500* INDICATEUR DEROGATION AVIS DE NON IMPOSITION ! -076600 15 WS-4DCO-IDC-VAL-PCE PIC X(1). ! -076700* INDICATEUR DEROGATION VALIDATION PIECES ! -076800 15 WS-4DCO-IDC-PRS-MVTS-PMR PIC X(1). ! -076900* INDICATEUR DEROGATION CONTRAT AVEC MVTS ! -077000* POST-MORTEM SUR ANNEE N-1 ! -077100 15 WS-4DCO-IDC-AUT-DRG-CLA PIC X(1). ! -077200* INDICATEUR DEROGATION SAISIE CLAUSE ! -077300 15 WS-4DCO-IDC-AUT-DRG-PM PIC X(1). ! -077400* INDICATEUR DEROGATION SAISIE PERSONNE MORALE ! -077500 15 WS-4DCO-IDC-AUT-DQ-DSK PIC X(1). ! -077600* INDICATEUR DEROGATION DEQUALIFICATION DSK ! -077610 15 WS-4DCO-IDC-AUT-DRG-FRS-RPP PIC X(1). ! -077620* INDICATEUR DEROGATION FRAIS RACHAT PARTIEL PROGRAMME ! -077700 15 FILLER PIC X(08). ! -077800* RESERVE (25 DEROGATIONS ETANT PREVUES) ! -077900* ------------------------------------------------------- ! -078000* TOP DE CONTROLE SAISIE ! -078100* ------------------------------------------------------- ! -078200 10 WS-4DCO-IDC-AFF PIC X(001). ! -078300* FLAG DE DONNEES ! -078400* Rajout pour test / gestion des contrats ! -078500 88 AFF-COMPTE VALUE 'C'. ! -078600 88 AFF-POLICE VALUE 'P'. ! -078700 88 AFF-TOUT VALUE ' '. ! -078800* ------------------------------------------------------ ! -078900* MEF IDENTIFIANT CONTRAT EN FONCTION PARTENAIRE ! -079000* PARTENAIRE LIBELLE IDENTIFIANT ! -079100* ---------- -------------- ------------------------- ! -079200* CMB COMPTE A CREER RACINE CLE CATEGORIE RANG ! -079300* CMAB " " ! -079400* CMSO " " ! -079500* EXTERIEUR NO. ADHESION PRODUIT POLICE CLE ! -079600* CMLACO " " ! -079700* ------------------------------------------------------ ! -079800 10 WS-4DCO-FIX-LIB-IDT-CTR PIC X(016). ! -079900* Libelle contrat ! -080000* ------------------------------------------------------ ! -080100 10 WS-4DCO-FIX-NO-IDT-CTR PIC X(015). ! -080200* Identifiant contrat ! -080300* ------------------------------------------------------ ! -080400 10 WS-4DCO-RPP-ENCO PIC X(001). ! -080500* Indicateur rachat partiel programme en cours ! -080600* ! -080700* ------------------------------------------------------- ! -080800* TOP BLOCAGE APPLICATIF GEODES ! -080900* ------------------------------------------------------- ! -081000 10 WS-4DCO-FIX-BLOC-TRAN PIC X(001). ! -081100* Top blocage transaction ! -081200* ------------------------------------------------------- ! -081300* EDITION DE DOCUMENT INFORMATIONS RESERVEES ! -081400* ------------------------------------------------------- ! -081500 10 WS-4DCO-TOP-EDIT-DEM PIC X(003). ! -081600* Top reconnaissance edition demandee ! -081700 10 WS-4DCO-TOP-OPE-ORIG REDEFINES ! -081800 WS-4DCO-TOP-EDIT-DEM PIC X(003). ! -081900* Top reconnaissance origine de l'operation ! -082000 10 WS-4DCO-4DKA-FDP PIC X(010). ! -082100* Code reference document fond de page ! -082200 10 WS-4DCO-4DKA-TOP-PTN PIC X(001). ! -082300* Top edition libelle partenaire ! -082400 10 WS-4DCO-4DKA-TYPE-IMP PIC X(001). ! -082500* Reference de l'imprimante utilis�e ! -082600 10 WS-4DCO-4DKA-NBR-EX PIC 9(001). ! -082700* Reference de l'imprimante utilis�e ! -082800 10 WS-4DCO-4DKA-NO-IMP PIC X(004). ! -082900* Numero de l'imprimante cics utilis�e ! -083000 10 WS-4DCO-CD-MOD-CL PIC X(002). ! -083100* Type de modification ! -083200* ------------------------------------------------------- ! -083300* REEDITION DE DOCUMENT ! -083400* ------------------------------------------------------- ! -083500 10 WS-4DCO-CD-REEDITION PIC X(001). ! -083600* code reedition (o/n) ! -083700 10 WS-4DCO-CD-PRESENCE-ARCH PIC X(001). ! -083800* code presence archive (o/n) ! -083900* ------------------------------------------------------ ! -084000 10 WS-4DCO-CD-EVE-TY PIC X(006). ! -084100* CODE EVENEMENT TRAITE ! -084200 10 WS-4DCO-DT-EVE PIC X(008). ! -084300* DATE EVENEMENT TRAITE ! -084320 10 WS-4DCO-IDC-PRD-PERP PIC X(001). ! -084330* indicateur produit PERP ! -084600* ------------------------------------------------------ ! -084700* ! -084800 05 WS-4DCO-CONTRAT-ENT. ! -084900* =================== ! -085000*--------------------------------------------------------------- * ! -085100* COMMAREA : PARTIE COMMUNE RESERVEE AUX CONTRATS * ! -085200* LONGUEUR : 70 ENTREPRISE * ! -085300* PREFIXE : WS-4DCO- * ! -085400*--------------------------------------------------------------- * ! -085500 ! -085600 10 WS-4DCO-CD-TRANS PIC X(004). ! -085700* CODE TRANSACTION ASSOCIE AU PRODUIT ! -085800 10 WS-4DCO-NO-CLI-PTN-EN PIC S9(7) COMP-3. ! -085900* NUMERO INTERNE CLIENT ENTREPRISE ! -086000 10 WS-4DCO-NO-ORD-CTR-EN PIC S9(2) COMP-3. ! -086100* NUMERO D'ORDRE DU CONTRAT ENTREPRISE ! -086200 10 WS-4DCO-DA-NAI-CJ. ! -086300* DATE DE NAISSANCE DU CONJOINT ! -086400 15 WS-4DCO-DA-NAI-CJ-SSAA. ! -086500* SIECLE ANNEE NAISSANCE CONJOINT ! -086600 20 WS-4DCO-DA-NAI-CJ-SS PIC X(002). ! -086700* SIECLE NAISSANCE CONJOINT ! -086800 20 WS-4DCO-DA-NAI-CJ-AA PIC X(002). ! -086900* ANNEE NAISSANCE CONJOINT ! -087000 15 WS-4DCO-DA-NAI-CJ-MM PIC X(002). ! -087100* MOIS NAISSANCE CONJOINT ! -087200 15 WS-4DCO-DA-NAI-CJ-JJ PIC X(002). ! -087300* JOUR NAISSANCE CONJOINT ! -087400 10 WS-4DCO-MT-SAL-A PIC S9(13)V9(2) COMP-3. ! -087500* MONTANT DU SALAIRE ANNUEL ! -087600 10 WS-4DCO-DA-EMB. ! -087700* DATE D'EMBAUCHE ! -087800 15 WS-4DCO-DA-EMB-SSAA. ! -087900* SIECLE ANNEE EMBAUCHE ! -088000 20 WS-4DCO-DA-EMB-SS PIC X(002). ! -088100* SIECLE EMBAUCHE ! -088200 20 WS-4DCO-DA-EMB-AA PIC X(002). ! -088300* ANNEE EMBAUCHE ! -088400 15 WS-4DCO-DA-EMB-MM PIC X(002). ! -088500* MOIS EMBAUCHE ! -088600 15 WS-4DCO-DA-EMB-JJ PIC X(002). ! -088700* JOUR EMBAUCHE ! -088800 10 WS-4DCO-NO-FAX PIC X(012). ! -088900* MONTANT DU SALAIRE ANNUEL ! -089000* ------------------------------------------------------ ! -089100 10 WS-4DCO-TOP-DECES PIC X. ! -089200 10 WS-4DCO-DA-DECES PIC X(10). ! -089300* DATE DE DECES de l'adh�rent PIC X(10). ! -089400* 10 FILLER PIC X(013). ! -089500 10 WS-4DCO-PGM-SVT PIC X(08). ! -089600 10 FILLER PIC X(005). ! -089700* ZONES DISPONIBLES (CONTRATS ENTREPRISE) ! -089800* ------------------------------------------------------ ! - *----------------------------------------------! END Y4DFIXE ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY Y4DGEODE ! - *------------------------------------------------------------------- -000100****************************************************************** ! -000200* * ! -000300* G E O D E / S U R A V E N I R * ! -000400* * ! -000500****************************************************************** ! -000600*================================================================= ! -000700*= = ! -000800*= APPLICATION : COMMAREA COMMUNE PROGRAMME = ! -000900*= = ! -001000*================================================================= ! -001100 ! -001200 03 WS-4DCO-PROGRAM. ! -001300* ================ ! -001400 05 FILLER PIC X(1800). ! -001500 ! -001600* ------------------------------------------------------ * ! -001700* ! -001800*================================================================ ! -001900* ! -002000*= APPLICATION : GESTION DES CONTRATS = ! -002100* ! -002200*================================================================ ! -002300 ! -002400 03 WS-4DCO-MENU-CTR REDEFINES WS-4DCO-PROGRAM. ! -002500* ================ ! -002600* ------------------------------------------------------ * ! -002700* COMMAREA : MENU GESTION DES CONTRATS * ! -002800* LONGUEUR : 1800 * ! -002900* PREFIXE : WS-4DCO-MNC * ! -003000* ------------------------------------------------------ * ! -003100 ! -003200 05 WS-4DCO-MNC-BLOC-TRAN PIC X(001). ! -003300* TOP BLOCAGE TRANSACTION ! -003400 05 FILLER PIC X(1799). ! -003500* ZONES DISPONIBLES ! -003600* ------------------------------------------------------ * ! -003700 ! -003800 03 WS-4DCO-SOUS REDEFINES WS-4DCO-PROGRAM. ! -003900* ============ ! -004000* ------------------------------------------------------ * ! -004100* COMMAREA : SOUSCRIPTION / TRANSFERT EN ENTREE * ! -004200* LONGUEUR : 1800 * ! -004300* PREFIXE : WS-4DCO- * ! -004400* ------------------------------------------------------ * ! -004500 ! -004600 05 WS-4DCO-INTITULEB PIC X(002). ! -004700* CODE INTITULE BENEFICIAIRE ! -004800 05 WS-4DCO-NOMB PIC X(032). ! -004900* NOM BENEFICIAIRE ! -005000 05 WS-4DCO-RUEB-1 PIC X(032). ! -005100* RUE / ADRESSE BENEFICIAIRE ! -005200 05 WS-4DCO-RUEB-2 PIC X(032). ! -005300* RUE / ADRESSE BENEFICIAIRE ! -005400 05 WS-4DCO-COMMUB PIC X(032). ! -005500* COMMUNE / ADRESSE BENEFICIAIRE ! -005600 05 WS-4DCO-CODPOSB PIC X(005). ! -005700* CODE POSTAL / ADRESSE BENEFICIAIRE ! -005800 05 WS-4DCO-BENEF PIC 9(02). ! -005900* NO BENEFICIAIRE ! -006000 05 FILLER PIC X(001). ! -006100* ZONE DISPONIBLE ! -006200 05 WS-4DCO-EXPED PIC X(001). ! -006300* CODE EXPEDITION ! -006400 05 WS-4DCO-NBEN PIC 9(02). ! -006500* NOMBRE DE BENEFICIAIRES ! -006600 05 WS-4DCO-PERIOD PIC X(001). ! -006700* CODE PERIODICITE V.P. ! -006800 05 WS-4DCO-AJUST PIC X(001). ! -006900* INDICATEUR AJUSTEMENT DE COTISATION ! -007000 05 WS-4DCO-DSOUS. ! -007100* DATE DE SOUSCRIPTION ! -007200 10 WS-4DCO-DSOUSSA. ! -007300* SIECLE ANNEE DATE DE SOUSCRIPTION ! -007400 15 WS-4DCO-DSOUSS PIC X(002). ! -007500* SIECLE DATE DE SOUSCRIPTION ! -007600 15 WS-4DCO-DSOUSA PIC X(002). ! -007700* ANNEE DATE DE SOUSCRIPTION ! -007800 10 WS-4DCO-DSOUSM PIC X(002). ! -007900* MOIS DATE DE SOUSCRIPTION ! -008000 10 WS-4DCO-DSOUSJ PIC X(002). ! -008100* JOUR DATE DE SOUSCRIPTION ! -008200 05 WS-4DCO-DEFFET. ! -008300* DATE D'EFFET CONTRAT ! -008400 10 WS-4DCO-DEFFETSA. ! -008500* SIECLE ANNEE DATE D'EFFET ! -008600 15 WS-4DCO-DEFFETS PIC X(002). ! -008700* SIECLE DATE D'EFFET ! -008800 15 WS-4DCO-DEFFETA PIC X(002). ! -008900* ANNEE DATE D'EFFET ! -009000 10 WS-4DCO-DEFFETM PIC X(002). ! -009100* MOIS DATE D'EFFET ! -009200 10 WS-4DCO-DEFFETJ PIC X(002). ! -009300* JOUR DATE D'EFFET ! -009400 05 WS-4DCO-DURCNT. ! -009500* DUREE DU CONTRAT ! -009600 10 WS-4DCO-AADUR PIC X(002). ! -009700* ANNEE DUREE DU CONTRAT ! -009800 10 WS-4DCO-MMDUR PIC X(002). ! -009900* MOIS DUREE DU CONTRAT ! -010000 05 WS-4DCO-DRTENT PIC S9(07)V9(02). ! -010100* MONTANT DES DROITS D'ENTREE ! -010200 05 WS-4DCO-DRTENT-C REDEFINES WS-4DCO-DRTENT ! -010300 PIC S9(09). ! -010400* MONTANT DES DROITS D'ENTREE ! -010500 05 WS-4DCO-BRUTINI PIC S9(09)V9(02). ! -010600* MONTANT BRUT V.I. ! -010700 05 WS-4DCO-BRUTINI-C REDEFINES WS-4DCO-BRUTINI ! -010800 PIC S9(11). ! -010900* MONTANT BRUT V.I. ! -011000 05 WS-4DCO-BRUTPER PIC S9(09)V9(02). ! -011100* MONTANT BRUT V.P. ! -011200 05 WS-4DCO-BRUTPER-C REDEFINES WS-4DCO-BRUTPER ! -011300 PIC S9(11). ! -011400* MONTANT BRUT V.P. ! -011500 05 WS-4DCO-TXFRINI PIC 9(02)V9(03). ! -011600* TAUX DE FRAIS V.I. ! -011700 05 WS-4DCO-TXFRINI-C REDEFINES WS-4DCO-TXFRINI ! -011800 PIC 9(05). ! -011900* TAUX DE FRAIS V.I. ! -012000 05 WS-4DCO-TXFRPER PIC 9(02)V9(03). ! -012100* TAUX DE FRAIS V.P. ! -012200 05 WS-4DCO-TXFRPER-C REDEFINES WS-4DCO-TXFRPER ! -012300 PIC 9(05). ! -012400* TAUX DE FRAIS V.P. ! -012500 05 WS-4DCO-MTFRINI PIC S9(09)V9(02). ! -012600* MONTANT FRAIS V.I. ! -012700 05 WS-4DCO-MTFRINI-C REDEFINES WS-4DCO-MTFRINI ! -012800 PIC S9(11). ! -012900* MONTANT FRAIS V.I. ! -013000 05 WS-4DCO-MTFRPER PIC S9(09)V9(02). ! -013100* MONTANT FRAIS V.P. ! -013200 05 WS-4DCO-MTFRPER-C REDEFINES WS-4DCO-MTFRPER ! -013300 PIC S9(11). ! -013400* MONTANT FRAIS V.P. ! -013500 05 WS-4DCO-NETINI PIC S9(09)V9(02). ! -013600* MONTANT NET V.I. ! -013700 05 WS-4DCO-NETINI-C REDEFINES WS-4DCO-NETINI ! -013800 PIC S9(11). ! -013900* MONTANT NET V.I. ! -014000 05 WS-4DCO-NETPER PIC S9(09)V9(02). ! -014100* MONTANT NET V.P. ! -014200 05 WS-4DCO-NETPER-C REDEFINES WS-4DCO-NETPER ! -014300 PIC S9(11). ! -014400* MONTANT NET V.P. ! -014500 05 WS-4DCO-DVERSINI. ! -014600* DATE EFFET VERSEMENT INITIAL ! -014700 10 WS-4DCO-DVINISA. ! -014800* SIECLE ANNEE DATE EFFET V.I. ! -014900 15 WS-4DCO-DVINIS PIC X(002). ! -015000* SIECLE DATE EFFET V.I. ! -015100 15 WS-4DCO-DVINIA PIC X(002). ! -015200* ANNEE DATE EFFET V.I. ! -015300 10 WS-4DCO-DVINIM PIC X(002). ! -015400* MOIS DATE EFFET V.I. ! -015500 10 WS-4DCO-DVINIJ PIC X(002). ! -015600* JOUR DATE EFFET V.I. ! -015700 05 WS-4DCO-DVERSPER. ! -015800* DATE EFFET VERSEMENT PERIODIQUE ! -015900 10 WS-4DCO-DVPERSA. ! -016000* SIECLE ANNEE DATE EFFET V.P. ! -016100 15 WS-4DCO-DVPERS PIC X(002). ! -016200* SIECLE DATE EFFET V.P. ! -016300 15 WS-4DCO-DVPERA PIC X(002). ! -016400* ANNEE DATE EFFET V.P. ! -016500 10 WS-4DCO-DVPERM PIC X(002). ! -016600* MOIS DATE EFFET V.P. ! -016700 10 WS-4DCO-DVPERJ PIC X(002). ! -016800* JOUR DATE EFFET V.P. ! -016900 05 WS-4DCO-TXMNGAR PIC 9(02)V9(03). ! -017000* TAUX MINIMUM GARANTI ! -017100 05 WS-4DCO-COM-PTN-SO PIC S9(07)V9(02). ! -017200* MONTANT COMMISSION DU PARTENAIRE ! -017300 05 WS-4DCO-COM-PTN-SO-C REDEFINES WS-4DCO-COM-PTN-SO ! -017400 PIC S9(09). ! -017500* MONTANT COMMISSION PARTENAIRE ! -017600 05 WS-4DCO-COM-GTN-SO PIC S9(07)V9(02). ! -017700* MONTANT COMMISSION SURAVENIR ! -017800 05 WS-4DCO-COM-GTN-SO-C REDEFINES WS-4DCO-COM-GTN-SO ! -017900 PIC S9(09). ! -018000* MONTANT COMMISSION SURAVENIR ! -018100 05 WS-4DCO-QPART PIC 9(03). ! -018200* QUOTE PART ! -018300 05 WS-4DCO-CUMULQPART PIC 9(03). ! -018400* CUMUL QUOTE PART ! -018500 05 WS-4DCO-AANAIB. ! -018600* DATE DE NAISSANCE BENEFICIAIRE ! -018700 10 WS-4DCO-DNAISSAB. ! -018800* SIECLE ANNEE DATE DE NAISSANCE BENEF ! -018900 15 WS-4DCO-DNAISSB PIC X(002). ! -019000* SIECLE DATE DE NAISSANCE BENEF ! -019100 15 WS-4DCO-DNAISAB PIC X(002). ! -019200* ANNEE DATE DE NAISSANCE BENEF ! -019300 10 WS-4DCO-DNAISMB PIC X(002). ! -019400* MOIS DATE DE NAISSANCE BENEF ! -019500 10 WS-4DCO-DNAISJB PIC X(002). ! -019600* JOUR DATE DE NAISSANCE BENEF ! -019700 05 WS-4DCO-RIB-INI. ! -019800* COMPTE INTER-BANCAIRE VERSEMENT INITIAL ! -019900 10 WS-4DCO-BNQRIB-I PIC X(005). ! -020000* BANQUE RIB COMPTE DOM V.I. ! -020100 10 WS-4DCO-GCHRIB-I PIC X(005). ! -020200* GUICHET RIB COMPTE DOM V.I. ! -020300 10 WS-4DCO-RACRIB-I PIC X(011). ! -020400* RACINE RIB COMPTE DOM V.I. ! -020500 10 WS-4DCO-CLERIB-I PIC X(002). ! -020600* CLE RIB COMPTE DOM V.I. ! -020700 05 WS-4DCO-RIB-PER. ! -020800* COMPTE INTER-BANCAIRE VERSEMENT PERIODIQUE ! -020900 10 WS-4DCO-BNQRIB-P PIC X(005). ! -021000* BANQUE RIB COMPTE DOM V.P. ! -021100 10 WS-4DCO-GCHRIB-P PIC X(005). ! -021200* GUICHET RIB COMPTE DOM V.P. ! -021300 10 WS-4DCO-RACRIB-P PIC X(011). ! -021400* RACINE RIB COMPTE DOM V.P. ! -021500 10 WS-4DCO-CLERIB-P PIC X(002). ! -021600* CLE RIB COMPTE DOM V.P. ! -021700 05 WS-4DCO-ETABLB PIC X(005). ! -021800* BANQUE RIB COMPTE DOM BENEF ! -021900 05 WS-4DCO-GUICHB PIC X(005). ! -022000* GUICHET RIB COMPTE DOM BENEF ! -022100 05 WS-4DCO-NOCPTB PIC X(011). ! -022200* RACINE RIB COMPTE DOM BENEF ! -022300 05 WS-4DCO-CLERIBB PIC X(002). ! -022400* CLE RIB COMPTE DOM BENEF ! -022500 05 WS-4DCO-SOLDINI PIC S9(13)V9(02). ! -022600* SOLDE COMPTE VERSEMENT INITIAL ! -022700 05 WS-4DCO-SOLDINI-C REDEFINES WS-4DCO-SOLDINI ! -022800 PIC S9(15). ! -022900* SOLDE COMPTE VERSEMENT INITIAL ! -023000 05 WS-4DCO-SOLDPER PIC S9(13)V9(02). ! -023100* SOLDE COMPTE VERSEMENT PERIODIQUE ! -023200 05 WS-4DCO-SOLDPER-C REDEFINES WS-4DCO-SOLDPER ! -023300 PIC S9(15). ! -023400* SOLDE COMPTE VERSEMENT PERIODIQUE ! -023500 05 WS-4DCO-DGARAN. ! -023600* DATE LIMITE GARANTIE TAUX ! -023700 10 WS-4DCO-DGARANSA. ! -023800* SIECLE ANNEE DATE LIMITE GARANTIE TAUX ! -023900 15 WS-4DCO-DGARANS PIC X(002). ! -024000* SIECLE DATE LIMITE GARANTIE TAUX ! -024100 15 WS-4DCO-DGARANA PIC X(002). ! -024200* ANNEE DATE LIMITE GARANTIE TAUX ! -024300 10 WS-4DCO-DGARANM PIC X(002). ! -024400* MOIS DATE LIMITE GARANTIE TAUX ! -024500 10 WS-4DCO-DGARANJ PIC X(002). ! -024600* JOUR DATE LIMITE GARANTIE TAUX ! -024700 05 WS-4DCO-VERS-PERIOD PIC X(001). ! -024800* INDICATEUR DE VERSEMENT PERIODIQUE ! -024900 05 WS-4DCO-TY-AJU-CTS PIC X(001). ! -025000* INDICATEUR AJUSTEMENT VERSEMENT ! -025100 05 WS-4DCO-DRG-FRS-GTN PIC X(001). ! -025200* INDICATEUR DE DEROGATION TAUX FRAIS ! -025300 05 WS-4DCO-DRG-DRT-ENT PIC X(001). ! -025400* INDICATEUR DE DEROGATION DROIT ENTREE ! -025500 05 WS-4DCO-SOUS-MINI PIC X(001). ! -025600* CODE SOUSCRIPTION MINITEL O/N ! -025700 05 WS-4DCO-REF-EXT-INTV PIC X(015). ! -025800* REFERENCES EXTERNES ! -025900 05 WS-4DCO-FICH-MINI-FERME PIC X(001). ! -026000* CODE FICHIERS MINITEL FERMES ! -026100 05 WS-4DCO-D1IRV. ! -026200* DATE 1ERE INSCRIPTION REGIME VIEILLESSE LOI MADELIN ! -026300 10 WS-4DCO-D1IRVSA. ! -026400* SIECLE ANNEE DATE 1ERE INSCRIPTION RG ! -026500 15 WS-4DCO-D1IRVS PIC X(002). ! -026600* SIECLE DATE 1ERE INSCRIPTION RG ! -026700 15 WS-4DCO-D1IRVA PIC X(002). ! -026800* ANNEE DATE 1ERE INSCRIPTION RG ! -026900 10 WS-4DCO-D1IRVM PIC X(002). ! -027000* MOIS DATE 1ERE INSCRIPTION RG ! -027100 10 WS-4DCO-D1IRVJ PIC X(002). ! -027200* JOUR DATE 1ERE INSCRIPTION RG ! -027300 05 WS-4DCO-MTMANN PIC S9(13)V9(02). ! -027400* MONTANT MINIMUM DE VERSEMENT ANNUEL LOI MADELIN ! -027500 05 WS-4DCO-MTMANN-C REDEFINES WS-4DCO-MTMANN ! -027600 PIC S9(15). ! -027700 05 WS-4DCO-MTMXANN PIC S9(13)V9(02). ! -027800* MONTANT MAXIMUM DE VERSEMENT ANNUEL LOI MADELIN ! -027900 05 WS-4DCO-MTMXANN-C REDEFINES WS-4DCO-MTMXANN ! -028000 PIC S9(15). ! -028100 05 WS-4DCO-DA-ARR-FIS. ! -028200* DATE D'ARRETE FISCAL (PREVI RETRAITE INDEPENDANTS) ! -028300 10 WS-4DCO-DA-ARR-FIS-MM PIC XX. ! -028400 10 WS-4DCO-DA-ARR-FIS-JJ PIC XX. ! -028500* TYPE D'ECHANGE FINANCIER POUR LES ENTREES (EIB,..) ! -028600 05 WS-4DCO-CD-TY-ECG-FNC PIC X(05). ! -028700 05 WS-4DCO-S-TOP-PREM-PREL PIC X(01). ! -028800 05 WS-4DCO-CD-TY-CLA PIC X(04). ! -028900* Code Type Clause ! -029000 05 WS-4DCO-IDC-MSG-BNF PIC X(01). ! -029100* Affichage d'un message warning selon type de clause ! -029200 05 WS-4DCO-LA-TY-CLA PIC X(20). ! -029300* Libell� Type Clause ! -029400 05 WS-4DCO-SOUS-CD-CDR-ADH PIC X(001). ! -029500* CODE CADRE ADHESION ! -029600 05 WS-4DCO-SOUS-IDC-PRD-PD PIC X(001). ! -029700* INDICATEUR TYPE DE PRODUIT ! -029800 05 WS-4DCO-SOUS-LA-CD-CDR-ADH PIC X(20). ! -029900* Libell� Type Clause ! -030000 05 WS-4DCO-SOUS-IDC-AFG-AGT-PA PIC X(001). ! -030100* INDICATEUR AFFICHAGE AGENT ! -030200 05 WS-4DCO-SOUS-IDC-AFG-PA PIC X(001). ! -030300* INDICATEUR AFFICHAGE REFERENCE PARTENAIRE ! -030400* -- VIE196 ADHESION MULTI INTERVENANT 12/05 CAPGEMINI ! -030500 05 WS-4DCO-SOUS-IDC-ADH-MI PIC X(001). ! -030600* INDICATEUR ADHESION MULTI INTERVENANTS ! -030700 05 FILLER PIC X(020). ! -030800* ZONES DISPONIBLES (CORRECTION 17/12/91) ! -030900* ! -031000 05 WS-4DCO-TRANSFERT-ENTREE. ! -031100* ZONES SPECIFIQUES TRANSFERT EN ENTREE ! -031200 10 WS-4DCO-DSOUS-PEP1. ! -031300* DATE SOUSCRIPTION 1ER PEP ! -031400 15 WS-4DCO-DSOUS-PEP1SA. ! -031500* SIECLE ANNEE DATE SOUSCRIPTION 1ER PEP ! -031600 20 WS-4DCO-DSOUS-PEP1S PIC X(002). ! -031700* SIECLE DATE SOUSCRIPTION 1ER PEP ! -031800 20 WS-4DCO-DSOUS-PEP1A PIC X(002). ! -031900* ANNEE DATE SOUSCRIPTION 1ER PEP ! -032000 15 WS-4DCO-DSOUS-PEP1M PIC X(002). ! -032100* MOIS DATE SOUSCRIPTION 1ER PEP ! -032200 15 WS-4DCO-DSOUS-PEP1J PIC X(002). ! -032300* JOUR DATE SOUSCRIPTION 1ER PEP ! -032400 10 WS-4DCO-BRUTGLO PIC S9(07)V9(02). ! -032500* MONTANT BRUT GLOBAL VERSMT DE TRANSFERT ! -032600 10 WS-4DCO-TAB-MTNETVER OCCURS 11. ! -032700* TABLEAU DES VERSEMENTS PAR ANNEE ! -032800 15 WS-4DCO-MTNETVER PIC S9(07)V9(02). ! -032900* MONTANT NET DES VERSEMENTS ! -033000 10 WS-4DCO-MTINCAP PIC S9(07)V9(02). ! -033100* MONTANT DES INTERETS CAPITALISES ! -033200 10 WS-4DCO-MTINCAP-C REDEFINES WS-4DCO-MTINCAP ! -033300 PIC S9(09). ! -033400* MONTANT DES INTERETS CAPITALISES ! -033500 10 WS-4DCO-TOP-TRF-CMB PIC X(01). ! -033600* TOP TRANSFERT PEP EN ENTREE CMB (O/N) ! -033700 10 WS-4DCO-ERREUR-BLOQUANTE PIC X(001). ! -033800* TOP ERREUR BLOQUANTE (O/N) ! -033900 10 WS-4DCO-DA-OPE-TRF PIC X(008). ! -034000* date op�ration transfert ! -034100 05 WS-4DCO-TFE-MT-VER-CTR PIC S9(15) COMP-3. ! -034200* transfert en entr�e - montant versement contrat ! -034300 05 WS-4DCO-SOUS-RETRO PIC X(001). ! -034400* INDICATEUR DE SOUSCRIPTION RETROACTIVE ! -034500 05 WS-4DCO-SCR-NANT PIC X(001). ! -034600* INDICATEUR NANTISSEMENT (AJOUT 17/12/91) ! -034700 05 WS-4DCO-LIB-IDT-CTR PIC X(016). ! -034800* LIBELLE APPARESSANT DEVANT L'IDENTIFIANT CONTRAT ! -034900 05 WS-4DCO-NO-IDT-CTR PIC X(015). ! -035000* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT ! -035100 05 WS-4DCO-AGENT PIC X(008). ! -035200* N� D'AGENT GESTIONNAIRE DU CONTRAT ! -035300 05 WS-4DCO-NO-STR-GTN PIC X(006). ! -035400* N� DE STRUCTURE GESTIONNAIRE DU CONTRAT ! -035500 05 WS-4DCO-NO-STR-OPE PIC X(006). ! -035600* N� DE STRUCTURE QUI A EFFECTUEE L'OPERATION ! -035700 05 WS-4DCO-NO-ADR PIC 9(002). ! -035800* N� D'ADRESSE DU CLIENT ! -035900 05 WS-4DCO-NB-ADR-CLI PIC 9(003). ! -036000* NB D'ADRESSE DU CLIENT ! -036100 05 WS-4DCO-DET-FRS-AP. ! -036200* DETAIL DES FRAIS APPLIQUES ! -036300 10 WS-4DCO-TX-FRS-CUM-AP PIC 9(5) COMP-3. ! -036400* TAUX FRAIS CUMUL ! -036500 10 WS-4DCO-MT-FRS-OPE-AP PIC S9(9) COMP-3. ! -036600* MONTANT FRAIS OPERATION ! -036700 10 WS-4DCO-TX-FRS-GTN-AP PIC 9(5) COMP-3. ! -036800* TAUX FRAIS GESTION ! -036900 10 WS-4DCO-TX-FRS-COM-AP PIC 9(5) COMP-3. ! -037000* TAUX FRAIS COMMISSION ! -037100 10 WS-4DCO-MT-FRS-GTN-OPE-AP PIC S9(9) COMP-3. ! -037200* MONTANT FRAIS GESTION OPERATION ! -037300 10 WS-4DCO-MT-FRS-COM-OPE-AP PIC S9(9) COMP-3. ! -037400* MONTANT FRAIS COMMISSION OPERAT ! -037500 10 WS-4DCO-MT-NET-OPE-AP PIC S9(15) COMP-3. ! -037600* MONTANT NET OPERATION ! -037700 05 WS-4DCO-DET-FRS-ST. ! -037800* DETAIL DES FRAIS STANDARDS ! -037900 10 WS-4DCO-TX-FRS-CUM-ST PIC 9(5) COMP-3. ! -038000* TAUX FRAIS CUMUL ! -038100 10 WS-4DCO-MT-FRS-OPE-ST PIC S9(9) COMP-3. ! -038200* MONTANT FRAIS OPERATION ! -038300 10 WS-4DCO-TX-FRS-GTN-ST PIC 9(5) COMP-3. ! -038400* TAUX FRAIS GESTION ! -038500 10 WS-4DCO-TX-FRS-COM-ST PIC 9(5) COMP-3. ! -038600* TAUX FRAIS COMMISSION ! -038700 10 WS-4DCO-MT-FRS-GTN-OPE-ST PIC S9(9) COMP-3. ! -038800* MONTANT FRAIS GESTION OPERATION ! -038900 10 WS-4DCO-MT-FRS-COM-OPE-ST PIC S9(9) COMP-3. ! -039000* MONTANT FRAIS COMMISSION OPERAT ! -039100 10 WS-4DCO-MT-NET-OPE-ST PIC S9(15) COMP-3. ! -039200* MONTANT NET OPERATION ! -039300 05 WS-4DCO-TX-DERO-VI PIC X(001). ! -039400* INDICATEUR DE TAUX DEROGATOIRE SUR VI ! -039500 05 WS-4DCO-TX-DERO-VP PIC X(001). ! -039600* INDICATEUR DE TAUX DEROGATOIRE SUR VP ! -039700 05 WS-4DCO-NO-GEN-PRD PIC 9(003). ! -039800* NUMERO DE GENERATION DU PRODUIT ! -039900 05 WS-4DCO-NO-GEN-TYP PIC 9(003). ! -040000* NUMERO DE GENERATION DU TYPE DE PRODUIT ! -040100 05 WS-4DCO-BEN-MINI OCCURS 4. ! -040200* BENEFICIAIRES MINITEL 4 MAXI ! -040300 10 WS-4DCO-BEN-MINI-INT PIC X(02). ! -040400* INTITULE BENEFICIAIRE ! -040500 10 WS-4DCO-BEN-MINI-NOM PIC X(32). ! -040600* NOM + PRENOM BENEFICIAIRE ! -040700 10 WS-4DCO-BEN-MINI-DNAI. ! -040800 15 WS-4DCO-BEN-MINI-DNAI-SA. ! -040900 20 WS-4DCO-BEN-MINI-DNAI-SS PIC X(02). ! -041000 20 WS-4DCO-BEN-MINI-DNAI-AA PIC X(02). ! -041100 15 WS-4DCO-BEN-MINI-DNAI-MM PIC X(02). ! -041200 15 WS-4DCO-BEN-MINI-DNAI-JJ PIC X(02). ! -041300* DATE DE NAISSANCE BENEFICIAIRE ! -041400 10 WS-4DCO-BEN-MINI-QUOTPAR PIC 9(03). ! -041500* QUOTE PART ! -041600 05 WS-4DCO-IDC-CLA-PROR PIC X(001). ! -041700* CODE CLAUSE PROROGATION CONTRAT ! -041800 05 WS-4DCO-TXFRINI-X PIC X(006). ! -041900* SAUVEGARGE ZONE ECRAN (TX FRAIS VERS INI) ! -042000 05 WS-4DCO-TXFRPER-X PIC X(006). ! -042100* SAUVEGARGE ZONE ECRAN (TX FRAIS VERS PER) ! -042200 05 WS-4DCO-DRTENT-X PIC X(010). ! -042300* SAUVEGARGE ZONE ECRAN (TX FRAIS VERS PER) ! -042400 05 WS-4DCO-S-IDC-ACCORD-TX PIC X(001). ! -042500* INDICATEUR D'ACCORD TAUX DEROG SURAVENIR ! -042600 05 WS-4DCO-IDC-DRG-TT PIC X(001). ! -042700* INDICATEUR D'ACCORD TAUX / TRANCHE ! -042800 05 WS-4DCO-IDC-AUT-SOC-FDL PIC X(001). ! -042900* INDICATEUR AUTORISATION PARRAINAGE CONTRAT ! -043000 05 WS-4DCO-S-CESSION. ! -043100* INFORMATIONS TRANSFERT APRES SINISTRE ! -043200 10 WS-4DCO-S-CES-TM-STP PIC X(026). ! -043300 10 WS-4DCO-S-CES-NO-DOS-SIN PIC S9(013) COMP-3. ! -043400 10 WS-4DCO-S-CES-NO-BNF-SIN PIC S9(007) COMP-3. ! -043500 10 WS-4DCO-S-CES-DA-OPE PIC X(008). ! -043600 10 WS-4DCO-S-CES-NO-ORD-RGL PIC S9(002) COMP-3. ! -043700 10 WS-4DCO-S-CES-NO-CSN PIC S9(003) COMP-3. ! -043800 10 WS-4DCO-S-CES-MT-CSN PIC S9(013)V9(2) ! -043900 COMP-3. ! -044000 05 WS-4DCO-TOP-OPE-ORIG-SOUS PIC X(03). ! -044100 88 SOUSCRIPTION VALUE 'SOU'. ! -044200 88 PRE-SOUSCRIPTION VALUE 'SPR'. ! -044300 88 VALID-PRE-SOUSC VALUE 'VPR'. ! -044400 88 ANNUL-PRE-SOUSC VALUE 'APR'. ! -044500 88 SOUSC-SUITE-TRF VALUE 'STR'. ! -044600 88 TRF-EN-ENTREE VALUE 'TFE'. ! -044700***SOL ! -044800 05 WS-4DCO-4DJJ-CD-CLI-PTN-EN PIC X(15). ! -044900* CODE EXTERNE CLIENT ENTREPRISE ! -045000 05 WS-4DCO-4DJJ-NOM-CLI-PTN-EN PIC X(32). ! -045100* NOM CLIENT ENTREPRISE ! -045200* ! -045300*** 05 FILLER PIC X(714). ! -045400*** 05 FILLER PIC X(667). ! -045500***SOL ! -045600***DME ! -045700 05 WS-4DCO-DUR-CTR PIC X(04). ! -045800* DUREE CONTRAT ! -045900 05 WS-4DCO-AGE-MIN-SC PIC 9(03). ! -046000* AGE MINIMUN DU SOUSCRIPTEUR ! -046100 05 WS-4DCO-CD-IDT-STK PIC X(03). ! -046200* CODE IDENTIFIANT STOCK ! -046300 05 WS-4DCO-TX-FRS-STD-ENT PIC S9(2)V9(3) COMP-3. ! -046400* CODE IDENTIFIANT STOCK ! -046500***DME ! -046600 05 WS-4DCO-IDC-CLA-DMB PIC X. ! -046700 88 CLA-DMB-OK VALUE '1'. ! -046800* ! -046900 05 WS-4DCO-TRF-ENTREE-SUITE. ! -047000* ZONES SPECIFIQUES TRANSFERT EN ENTREE SUITE ! -047100 10 WS-4DCO-DA-RGU. ! -047200* DATE REGULARISATION ! -047300 15 WS-4DCO-DA-RGU-A PIC X(4). ! -047400* DATE REGULARISATION ANNEE ! -047500 15 WS-4DCO-DA-RGU-M PIC X(2). ! -047600* DATE REGULARISATION MOIS ! -047700 15 WS-4DCO-DA-RGU-J PIC X(2). ! -047800* DATE REGULARISATION JOUR ! -047900 10 WS-4DCO-CD-TY-RGU PIC X(1). ! -048000* CODE TYPE REGULARISATION ! -048100 10 WS-4DCO-LIB-TY-RGU PIC X(32). ! -048200* LIBELLE TYPE REGULARISATION ! -048300 10 WS-4DCO-MT-TRF-RGU PIC S9(13)V99 COMP-3. ! -048400* MONTANT TRANSFERT ! -048500* ! -048600 10 WS-4DCO-MT-TOTTRF-RGU PIC S9(07)V9(02). ! -048700* MONTANT TRANSFERT TOTAL ! -048800* ! -048900 10 WS-4DCO-MT-TOTCUM-VER PIC S9(07)V9(02). ! -049000* MONTANT VERSEMENT CUMULE TOTAL ! -049100* ! -049200 05 WS-4DCO-NUMCE PIC X(15). ! -049300* NUMERO DU CE ! -049400* ! -049500 05 WS-4DCO-LIBCE PIC X(16). ! -049600* LIBELLE DU CE ! -049700* ! -049800 05 WS-4DCO-IDC-PRS-FIS-SPC PIC X(01). ! -049900* indicateur anticipation PERP ! -050000* ! -050100 05 FILLER PIC X(554). ! -050200* ZONES DISPONIBLES ! -050300* ------------------------------------------------------ * ! -050400 ! -050500 03 WS-4DCO-VERS REDEFINES WS-4DCO-PROGRAM. ! -050600* ================ ! -050700* ------------------------------------------------------ * ! -050800* COMMAREA : VERSEMENT * ! -050900* LONGUEUR : 1800 * ! -051000* PREFIXE : WS-4DCO- * ! -051100* ------------------------------------------------------ * ! -051200 ! -051300 05 FILLER PIC X(016). ! -051400* ZONES DISPONIBLES ! -051500 05 WS-4DCO-RIBV. ! -051600* NO COMPTE INTERBANCAIRE V.E. ! -051700 10 WS-4DCO-BNQDOMV PIC X(005). ! -051800* BANQUE RIB COMPTE V.E. ! -051900 10 WS-4DCO-GUIDOMV PIC X(005). ! -052000* GUICHET RIB V.E. ! -052100 10 WS-4DCO-RACDOMV. ! -052200* RACINE RIB V.E. ! -052300 15 WS-4DCO-RACD0V PIC X(001). ! -052400* ! -052500 15 WS-4DCO-RACD1V PIC X(007). ! -052600* ! -052700 15 WS-4DCO-RACD2V PIC X(001). ! -052800* ! -052900 15 WS-4DCO-RACD3V PIC X(002). ! -053000* ! -053100 10 WS-4DCO-CLEDOMV PIC X(002). ! -053200* CLE RIB V.E. ! -053300 05 WS-4DCO-CPTDOMV. ! -053400* NO COMPTE DOMICILIATION ! -053500 10 WS-4DCO-CAICMBV PIC X(004). ! -053600* ! -053700 10 WS-4DCO-RACCMBV PIC X(007). ! -053800* ! -053900 10 WS-4DCO-CLECMBV PIC X(001). ! -054000* ! -054100 10 WS-4DCO-TYPCMBV PIC X(002). ! -054200* ! -054300 05 WS-4DCO-NOMVR PIC X(032). ! -054400* NOM CLIENT ! -054500 05 WS-4DCO-DUREEVR PIC X(004). ! -054600* DUREE DU CONTRAT ! -054700 05 WS-4DCO-CTRATVR PIC X(006). ! -054800* NO CONTRAT ! -054900 05 WS-4DCO-DSOUV. ! -055000* DATE SOUSCRIPTION CONTRAT ! -055100 10 WS-4DCO-DSOUVSA. ! -055200* SIECLE ANNEE DATE SOUSCRIPTION ! -055300 15 WS-4DCO-DSOUVS PIC X(002). ! -055400* SIECLE DATE SOUSCRIPTION ! -055500 15 WS-4DCO-DSOUVA PIC X(002). ! -055600* ANNEE DATE SOUSCRIPTION ! -055700 10 WS-4DCO-DSOUVM PIC X(002). ! -055800* MOIS DATE SOUSCRIPTION ! -055900 10 WS-4DCO-DSOUVJ PIC X(002). ! -056000* JOUR DATE SOUSCRIPTION ! -056100 05 WS-4DCO-DECHE. ! -056200* DATE ECHEANCE CONTRAT ! -056300 10 WS-4DCO-DECHESA. ! -056400* SIECLE ANNEE DATE ECHEANCE ! -056500 15 WS-4DCO-DECHES PIC X(002). ! -056600* SIECLE DATE ECHEANCE ! -056700 15 WS-4DCO-DECHEA PIC X(002). ! -056800* ANNEE DATE ECHEANCE ! -056900 10 WS-4DCO-DECHEM PIC X(002). ! -057000* MOIS DATE ECHEANCE ! -057100 10 WS-4DCO-DECHEJ PIC X(002). ! -057200* JOUR DATE ECHEANCE ! -057300 05 WS-4DCO-DVERS. ! -057400* DATE OPERATION VERSEMENT ! -057500 10 WS-4DCO-DVERSSA. ! -057600* SIECLE ANNEE DATE OPERATION V.E. ! -057700 15 WS-4DCO-DVERSS PIC X(002). ! -057800* SIECLE DATE OPERATION V.E. ! -057900 15 WS-4DCO-DVERSA PIC X(002). ! -058000* ANNEE DATE OPERATION V.E. ! -058100 10 WS-4DCO-DVERSM PIC X(002). ! -058200* MOIS DATE OPERATION V.E. ! -058300 10 WS-4DCO-DVERSJ PIC X(002). ! -058400* JOUR DATE OPERATION V.E. ! -058500 05 WS-4DCO-DEFFETV. ! -058600* DATE EFFET VERSEMENT ! -058700 10 WS-4DCO-DEFVSA. ! -058800* SIECLE ANNEE DATE EFFET V.E. ! -058900 15 WS-4DCO-DEFVS PIC X(002). ! -059000* SIECLE DATE EFFET V.E. ! -059100 15 WS-4DCO-DEFVA PIC X(002). ! -059200* ANNEE DATE EFFET V.E. ! -059300 10 WS-4DCO-DEFVM PIC X(002). ! -059400* MOIS DATE EFFET V.E. ! -059500 10 WS-4DCO-DEFVJ PIC X(002). ! -059600* JOUR DATE EFFET V.E. ! -059700 05 WS-4DCO-DSOUV-EFF. ! -059800* DATE EFFET SOUCRIPTION CONTRAT ! -059900 10 WS-4DCO-DSOUVSA-EFF. ! -060000* SIECLE ANNEE DATE EFFET SOUSCRIPTION ! -060100 15 WS-4DCO-DSOUVS-EFF PIC X(002). ! -060200* SIECLE DATE EFFET SOUSCRIPTION ! -060300 15 WS-4DCO-DSOUVA-EFF PIC X(002). ! -060400* ANNEE DATE EFFET SOUSCRIPTION ! -060500 10 WS-4DCO-DSOUVM-EFF PIC X(002). ! -060600* MOIS DATE EFFET SOUSCRIPTION ! -060700 10 WS-4DCO-DSOUVJ-EFF PIC X(002). ! -060800* JOUR DATE EFFET SOUCRIPTION ! -060900 05 WS-4DCO-DSOUV-OR. ! -061000* DATE SOUSCRIPTION CONTRAT BQE ORIGINE ! -061100 10 WS-4DCO-DSOUVSA-OR. ! -061200* SIECLE ANNEE DATE SOUSCRIPTION ! -061300 15 WS-4DCO-DSOUVS-OR PIC X(002). ! -061400* SIECLE DATE SOUSCRIPTION ! -061500 15 WS-4DCO-DSOUVA-OR PIC X(002). ! -061600* ANNEE DATE SOUSCRIPTION ! -061700 10 WS-4DCO-DSOUVM-OR PIC X(002). ! -061800* MOIS DATE SOUSCRIPTION ! -061900 10 WS-4DCO-DSOUVJ-OR PIC X(002). ! -062000* JOUR DATE SOUSCRIPTION ! -062100 05 FILLER PIC X(008). ! -062200* ZONES DISPONIBLES ! -062300 05 WS-4DCO-FINVAL. ! -062400* DATE LIMITE GARANTIE CONTRAT ! -062500 10 WS-4DCO-JJVAL PIC X(002). ! -062600* JOUR DATE LIMITE GARANTIE CONTRAT ! -062700 10 WS-4DCO-MMVAL PIC X(002). ! -062800* MOIS DATE LIMITE GARANTIE CONTRAT ! -062900 10 WS-4DCO-ANVAL. ! -063000* SIECLE ANNEE DATE LIMITE GRANTIE CONTRAT ! -063100 15 WS-4DCO-SSVAL PIC X(002). ! -063200* SIECLE DATE LIMITE GARANTIE CONTRAT ! -063300 15 WS-4DCO-AAVAL PIC X(002). ! -063400* ANNEE DATE LIMITE GARANTIE CONTRAT ! -063500 05 WS-4DCO-FINVAL2. ! -063600* DATE LIMITE GARANTIE VERSEMENT ! -063700 10 WS-4DCO-JJVAL2 PIC X(002). ! -063800* JOUR DATE LIMITE GARANTIE VERSMT ! -063900 10 WS-4DCO-MMVAL2 PIC X(002). ! -064000* MOIS DATE LIMITE GARANTIE VERSMT ! -064100 10 WS-4DCO-ANVAL2. ! -064200* SIECLE ANNEE DATE LIMITE GARANTIE VERSMT ! -064300 15 WS-4DCO-SSVAL2 PIC X(002). ! -064400* SIECLE DATE LIMITE GARANTIE VERSMT ! -064500 15 WS-4DCO-AAVAL2 PIC X(002). ! -064600* ANNEE DATE LIMITE GARANTIE VERSMT ! -064700 05 WS-4DCO-STR-GERV PIC X(06). ! -064800* STRUCTURE GESTIONNAIRE DU CONTRAT ! -064900 05 WS-4DCO-TXMINGAR PIC S9(02)V9(03). ! -065000* TAUX MINIMUM GARANTI CONTRAT ! -065100 05 WS-4DCO-TXMINGAR2 PIC S9(02)V9(03). ! -065200* TAUX MINIMUM GARANTI VERSEMENT ! -065300 05 WS-4DCO-TXFRAIS PIC S9(02)V9(03). ! -065400* TAUX DE FRAIS DE GESTION ! -065500 05 WS-4DCO-TXFRAIS-C REDEFINES WS-4DCO-TXFRAIS ! -065600 PIC S9(05). ! -065700* TAUX DE FRAIS DE GESTION ! -065800 05 WS-4DCO-CUMVERS PIC S9(09)V9(02). ! -065900* SOLDE ! -066000 05 WS-4DCO-CUMVERS-C REDEFINES WS-4DCO-CUMVERS ! -066100 PIC S9(11). ! -066200* SOLDE ! -066300 05 WS-4DCO-MTBRUT PIC S9(09)V9(02). ! -066400* MONTANT BRUT VERSEMENT ! -066500 05 WS-4DCO-MTBRUT-C REDEFINES WS-4DCO-MTBRUT ! -066600 PIC S9(11). ! -066700* MONTANT BRUT VERSEMENT ! -066800 05 WS-4DCO-MTFRAIS PIC S9(09)V9(02). ! -066900* MONTANT FRAIS VERSEMENT ! -067000 05 WS-4DCO-MTFRAIS-C REDEFINES WS-4DCO-MTFRAIS ! -067100 PIC S9(11). ! -067200* MONTANT FRAIS VERSEMENT ! -067300 05 WS-4DCO-MTNET PIC S9(09)V9(02). ! -067400* MONTANT NET VERSEMENT ! -067500 05 WS-4DCO-MTNET-C REDEFINES WS-4DCO-MTNET ! -067600 PIC S9(11). ! -067700* MONTANT NET VERSEMENT ! -067800 05 WS-4DCO-COM-PTN-VE PIC S9(07)V9(02). ! -067900* MONTANT COMMISSION PARTENAIRE ! -068000 05 WS-4DCO-COM-PTN-VE-C REDEFINES WS-4DCO-COM-PTN-VE ! -068100 PIC S9(09). ! -068200* MONTANT COMMISSION PARTENAIRE ! -068300 05 WS-4DCO-MTPEPOPT PIC S9(07)V9(02). ! -068400* MONTANT PEP OPTIMISE ! -068500 05 WS-4DCO-MTPRIME PIC S9(07)V9(02). ! -068600* MONTANT PRIME ! -068700 05 WS-4DCO-MTDEDUC PIC S9(07)V9(02). ! -068800* MONTANT DEDUCTION FISCALE ! -068900 05 WS-4DCO-NETCTR PIC S9(09)V9(02). ! -069000* MONTANT NET CONTRAT ! -069100 05 WS-4DCO-NETCTR-C REDEFINES WS-4DCO-NETCTR ! -069200 PIC S9(11). ! -069300* MONTANT NET CONTRAT ! -069400 05 WS-4DCO-NETEX PIC S9(09)V9(02). ! -069500* MONTANT NET EXERCICE ! -069600 05 WS-4DCO-NETEX-C REDEFINES WS-4DCO-NETEX ! -069700 PIC S9(11). ! -069800* MONTANT NET EXERCICE ! -069900 05 WS-4DCO-VERS-CD-PROR-CTR PIC X(001). ! -070000* indicateur prorogation ! -070100 05 FILLER PIC X(012). ! -070200* ZONES DISPONIBLES ! -070300 05 WS-4DCO-COM-GTN PIC S9(07)V9(02). ! -070400* MONTANT COMMISSION GESTIONNAIRE ! -070500 05 WS-4DCO-COM-GTN-C REDEFINES WS-4DCO-COM-GTN ! -070600 PIC S9(09). ! -070700* MONTANT COMMISSION GESTIONNAIRE ! -070800 05 WS-4DCO-VE-RETRO PIC X(001). ! -070900* INDICATEUR VERSEMENT RETROACTIF ! -071000 05 WS-4DCO-DMP PIC X(003). ! -071100* DUREE MOYENNE PONDEREE AVANT VE ! -071200 05 WS-4DCO-MTBRUT-CTR PIC S9(15). ! -071300* MONTANT BRUT VERSEMENT CONTRAT ! -071400 05 WS-4DCO-MT-PND PIC S9(15). ! -071500* MONTANT PONDERE ! -071600 05 WS-4DCO-DA-DNR-ACT PIC X(008). ! -071700* DATE DERNIERE ACTUALISATION MT PND ! -071800 05 WS-4DCO-DET-FRS-AP-VE. ! -071900* DETAIL DES FRAIS APPLIQUES ! -072000 10 WS-4DCO-TX-FRS-CUM-AP-VE PIC 9(5) COMP-3. ! -072100* TAUX FRAIS CUMUL ! -072200 10 WS-4DCO-MT-FRS-OPE-AP-VE PIC S9(9) COMP-3. ! -072300* MONTANT FRAIS OPERATION ! -072400 10 WS-4DCO-TX-FRS-GTN-AP-VE PIC 9(5) COMP-3. ! -072500* TAUX FRAIS GESTION ! -072600 10 WS-4DCO-TX-FRS-COM-AP-VE PIC 9(5) COMP-3. ! -072700* TAUX FRAIS COMMISSION ! -072800 10 WS-4DCO-MT-FRS-GTN-OPE-AP-VE PIC S9(9) COMP-3. ! -072900* MONTANT FRAIS GESTION OPERATION ! -073000 10 WS-4DCO-MT-FRS-COM-OPE-AP-VE PIC S9(9) COMP-3. ! -073100* MONTANT FRAIS COMMISSION OPERAT ! -073200 10 WS-4DCO-MT-NET-OPE-AP-VE PIC S9(15) COMP-3. ! -073300* MONTANT NET OPERATION ! -073400 05 WS-4DCO-DET-FRS-ST-VE. ! -073500* DETAIL DES FRAIS STANDARDS ! -073600 10 WS-4DCO-TX-FRS-CUM-ST-VE PIC 9(5) COMP-3. ! -073700* TAUX FRAIS CUMUL ! -073800 10 WS-4DCO-MT-FRS-OPE-ST-VE PIC S9(9) COMP-3. ! -073900* MONTANT FRAIS OPERATION ! -074000 10 WS-4DCO-TX-FRS-GTN-ST-VE PIC 9(5) COMP-3. ! -074100* TAUX FRAIS GESTION ! -074200 10 WS-4DCO-TX-FRS-COM-ST-VE PIC 9(5) COMP-3. ! -074300* TAUX FRAIS COMMISSION ! -074400 10 WS-4DCO-MT-FRS-GTN-OPE-ST-VE PIC S9(9) COMP-3. ! -074500* MONTANT FRAIS GESTION OPERATION ! -074600 10 WS-4DCO-MT-FRS-COM-OPE-ST-VE PIC S9(9) COMP-3. ! -074700* MONTANT FRAIS COMMISSION OPERAT ! -074800 10 WS-4DCO-MT-NET-OPE-ST-VE PIC S9(15) COMP-3. ! -074900* MONTANT NET OPERATION ! -075000 05 WS-4DCO-TX-DERO-VE PIC X(001). ! -075100* INDICATEUR DE TAUX DEROGATOIRE SUR VE ! -075200 05 WS-4DCO-LIB-IDT-CTR-VE PIC X(016). ! -075300* LIBELLE APPARESSANT DEVANT L'IDENTIFIANT CONTRAT ! -075400 05 WS-4DCO-NO-IDT-CTR-VE PIC X(015). ! -075500* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT ! -075600 05 WS-4DCO-AGT-GTNV PIC X(008). ! -075700* NO. D'AGENT GESTIONNAIRE DU CONTRAT ! -075800 05 WS-4DCO-CLECROVR. ! -075900* CLE CRO SELECTIONNE ! -076000 10 FILLER PIC X(029). ! -076100* FILLER ! -076200 10 WS-4DCO-TYPCROVR PIC X(003). ! -076300* TYPE DE CRO SELECTIONNE ! -076400 10 FILLER PIC X(018). ! -076500* FILLER ! -076600 05 WS-4DCO-LIB-AVN-VE PIC X(014). ! -076700* LIBELLE AVANCE ! -076800 05 WS-4DCO-SLD-AVN-VE-X PIC X(014). ! -076900* ! -077000 05 WS-4DCO-SLD-AVN-VE PIC S9(15) COMP-3. ! -077100* ! -077200 05 WS-4DCO-SLD-AVN-VE-R REDEFINES WS-4DCO-SLD-AVN-VE ! -077300 PIC S9(13)V9(02) COMP-3. ! -077400* ! -077500 05 WS-4DCO-NOSAISIE-VE PIC X(001). ! -077600* INDICATEUR DE SAISIE INTERDITE ! -077700* ! -077800 05 WS-4DCO-DVEX-MINI. ! -077900* DATE DEMANDE DE VERSEMENT SUR MINITEL ! -078000 10 WS-4DCO-DVEXSA-MINI. ! -078100* SIECLE ANNEE DATE DEM. VERSEMENT ! -078200 15 WS-4DCO-DVEXS-MINI PIC X(002). ! -078300* SIECLE DATE DEM. VERSEMENT ! -078400 15 WS-4DCO-DVEXA-MINI PIC X(002). ! -078500* ANNEE DATE DEM. VERSEMENT ! -078600 10 WS-4DCO-DVEXM-MINI PIC X(002). ! -078700* MOIS DATE DEM. VERSEMENT ! -078800 10 WS-4DCO-DVEXJ-MINI PIC X(002). ! -078900* JOUR DATE DEM. VERSEMENT ! -079000* ! -079100 05 WS-4DCO-HVEX-MINI. ! -079200* HEURE DEMANDE DE VERSEMENT SUR MINITEL ! -079300 10 WS-4DCO-HVEXH-MINI PIC X(002). ! -079400* HEURES DEM. VERSEMENT ! -079500 10 WS-4DCO-HVEXM-MINI PIC X(002). ! -079600* MINUTES DEM. VERSEMENT ! -079700 10 WS-4DCO-HVEXS-MINI PIC X(002). ! -079800* SECONDES DEM. VERSEMENT ! -079900* ! -080000 05 WS-4DCO-MTBR-MINI PIC S9(15) COMP-3. ! -080100* MONTANT BRUT DU REVERSEMENT MINITEL ! -080200 05 WS-4DCO-MTBR-MINI-R REDEFINES WS-4DCO-MTBR-MINI ! -080300 PIC S9(13)V9(02) COMP-3. ! -080400* ! -080500 05 WS-4DCO-RVCH-MINI PIC X(001). ! -080600* CODE REVERSEMENT MINITEL O/N ! -080700* ! -080800 05 WS-4DCO-V-IDC-ACCORD-TX PIC X(001). ! -080900* INDICATEUR D'ACCORD TAUX DEROG SURAVENIR ! -081000* ! -081100 05 WS-4DCO-IDC-AUT-SOC-FDL-VE PIC X(001). ! -081200* INDICATEUR AUTORISATION PARRAINAGE CONTRAT ! -081300 05 WS-4DCO-VEX-CD-TY-ECG-FNC PIC X(05). ! -081400* TYPE D'ECHANGE FINANCIER POUR LES ENTREES (EIB,..) ! -081500 ! -081600 05 WS-4DCO-V-CESSION. ! -081700* INFORMATIONS TRANSFERT APRES SINISTRE ! -081800 10 WS-4DCO-V-CES-TM-STP PIC X(026). ! -081900 10 WS-4DCO-V-CES-NO-DOS-SIN PIC S9(013) COMP-3. ! -082000 10 WS-4DCO-V-CES-NO-BNF-SIN PIC S9(007) COMP-3. ! -082100 10 WS-4DCO-V-CES-DA-OPE PIC X(008). ! -082200 10 WS-4DCO-V-CES-NO-ORD-RGL PIC S9(002) COMP-3. ! -082300 10 WS-4DCO-V-CES-NO-CSN PIC S9(003) COMP-3. ! -082400 10 WS-4DCO-V-CES-MT-CSN PIC S9(013)V9(2) ! -082500 COMP-3. ! -082600 05 WS-4DCO-4DPZ-PR-NOM PIC X(032). ! -082700 05 WS-4DCO-4DPZ-DUREE PIC X(004). ! -082800 05 WS-4DCO-4DPZ-DA-OUV. ! -082900 10 WS-4DCO-4DPZ-DA-OUV-SA. ! -083000 15 WS-4DCO-4DPZ-DA-OUV-S PIC X(002). ! -083100 15 WS-4DCO-4DPZ-DA-OUV-A PIC X(002). ! -083200 10 WS-4DCO-4DPZ-DA-OUV-M PIC X(002). ! -083300 10 WS-4DCO-4DPZ-DA-OUV-J PIC X(002). ! -083400 05 WS-4DCO-4DPZ-DA-ECH. ! -083500 10 WS-4DCO-4DPZ-DA-ECH-SA. ! -083600 15 WS-4DCO-4DPZ-DA-ECH-S PIC X(002). ! -083700 15 WS-4DCO-4DPZ-DA-ECH-A PIC X(002). ! -083800 10 WS-4DCO-4DPZ-DA-ECH-M PIC X(002). ! -083900 10 WS-4DCO-4DPZ-DA-ECH-J PIC X(002). ! -084000 05 WS-4DCO-4DPZ-LIB-IDT-CTR PIC X(016). ! -084100 05 WS-4DCO-4DPZ-NO-IDT-CTR PIC X(016). ! -084200 05 WS-4DCO-4DPZ-LIB-AV-VE PIC X(014). ! -084300 05 WS-4DCO-4DPZ-SOLDE-AV-VE-X PIC X(014). ! -084400 05 WS-4DCO-4DPZ-SOLDE-AV-VE PIC S9(15) COMP-3. ! -084500 05 WS-4DCO-4DPZ-SOLDE-AV-VE-R ! -084600 REDEFINES WS-4DCO-4DPZ-SOLDE-AV-VE ! -084700 PIC S9(13)V9(02) COMP-3. ! -084800 05 WS-4DCO-DA-ECN-PROR-AN PIC X(008). ! -084900* DERNIERE DATE ECHEANCE PROROGEE ! -085000 05 WS-4DCO-VE-CD-IDT-STK PIC X(003). ! -085100* CODE IDENTIFIANT STOCK ! -085200 05 WS-4DCO-VE-TX-FRS-STD-ENT PIC S9(02)V9(03) COMP-3. ! -085300* TAUX FRAIS STANDARD ! -085400 05 WS-4DCO-DA-BSC-EF PIC X(008). ! -085500* DATE BASCULEMENT ! -085600 05 WS-4DCO-DA-OPE-DNR-RP PIC X(008). ! -085700* DATE DERNIER RACHAT ! -085800 05 WS-4DCO-DA-ECN-PROR-AA PIC X(008). ! -085900* DERNIERE DATE ECHEANCE PROROGEE ANCIENNE ! -086000 05 WS-4DCO-VERS-IDC-RFS-CDN-NV PIC X(1). ! -086100* CODE REFUS NOUVELLES CONDITIONS ! -086200 05 WS-4DCO-TOP-CTRL-VER-MIN PIC X(1). ! -086300* TOP CONTROLE VERSEMENT MINIMUM ! -086400 05 FILLER PIC X(991). ! -086500 ! -086600* ZONES DISPONIBLES ! -086700* ------------------------------------------------------ * ! -086800 ! -086900 03 WS-4DCO-VISUALISATION REDEFINES WS-4DCO-PROGRAM. ! -087000* ===================== ! -087100* ------------------------------------------------------ * ! -087200* COMMAREA : CONSULTATION * ! -087300* LONGUEUR : 1800 * ! -087400* PREFIXE : WS-4DCO- * ! -087500* ------------------------------------------------------ * ! -087600 ! -087700 05 WS-4DCO-NOMV PIC X(032). ! -087800* CLIENT ! -087900 05 WS-4DCO-GENPRDV PIC X(003). ! -088000* NO. DE GENERATION DU PRODUIT ! -088100 05 WS-4DCO-GENTYPV PIC X(003). ! -088200* NO. DE GENERATION DU TYPE DE PRODUIT ! -088300 05 WS-4DCO-NBENV PIC 9(02). ! -088400* NBRE BENEF ! -088500 05 WS-4DCO-NBENEV PIC 9(03). ! -088600* NO BENEF ENCOURS ! -088700 05 WS-4DCO-NENREGV PIC 9(02). ! -088800* NO ENREG BENEF ! -088900 05 WS-4DCO-TSMVTV PIC 9(01). ! -089000* TS ECRITE ! -089100 05 WS-4DCO-NBPAGV PIC 9(02). ! -089200* NBRE PAGE MVTS ! -089300 05 WS-4DCO-PAGENV PIC 9(02). ! -089400* NO PAGE MVTS ENCOURS ! -089500 05 WS-4DCO-CLECROV. ! -089600* CLE CRO SELECTIONNE ! -089700 10 FILLER PIC X(029). ! -089800* FILLER ! -089900 10 WS-4DCO-TYPCROV PIC X(003). ! -090000* TYPE DE CRO SELECTIONNE ! -090100 10 FILLER PIC X(018). ! -090200* FILLER ! -090300 05 WS-4DCO-CURSV PIC X(001). ! -090400* POSITION DU CURSEUR ! -090500 05 WS-4DCO-CUMVTV PIC 9(02). ! -090600* POSITION DU CURSEUR ! -090700 05 WS-4DCO-DEREXE PIC 9(02). ! -090800* EXERCICE DAMIER LU ! -090900 05 WS-4DCO-ART07V PIC X(001). ! -091000* PRESENCE ARTICLE 07 PERMANENT PEP ! -091100 05 WS-4DCO-CPT-DESTV. ! -091200* NUMERO DU COMPTE DESTINATAIRE ! -091300 10 WS-4DCO-BNQDESTV PIC X(005). ! -091400* BANQUE RIB COMPTE DESTINATAIRE ! -091500 10 WS-4DCO-GCHDESTV PIC X(005). ! -091600* GUICHET RIB COMPTE DESTINATAIRE ! -091700 10 WS-4DCO-RACDESTV PIC X(011). ! -091800* RACINE RIB COMPTE DESTINATAIRE ! -091900 10 WS-4DCO-CLEDESTV PIC X(002). ! -092000* CLE RIB COMPTE DESTINATAIRE ! -092100 05 WS-4DCO-NOM-ETAV PIC X(033). ! -092200* NOM DE L'ETABLISSEMENT ! -092300 05 WS-4DCO-NOM-AGCV PIC X(033). ! -092400* NOM DE L'AGENCE ! -092500 05 WS-4DCO-ADR-AGCV. ! -092600* ADRESSE DE L'AGENCE ! -092700 10 WS-4DCO-RUE-AGCV PIC X(033). ! -092800* RUE / ADRESSE DE L'AGENCE ! -092900 10 WS-4DCO-CODPOS-AGCV PIC X(005). ! -093000* CODE POSTAL / ADRESSE DE L'AGENCE ! -093100 10 WS-4DCO-COMMU-AGCV PIC X(027). ! -093200* COMMUNE / ADRESSE DE L'AGENCE ! -093300 05 WS-4DCO-VIS-DA-CLO. ! -093400* DATE DE CLOTURE (16/03/92) ! -093500 10 WS-4DCO-VIS-DA-CLO-SSAA. ! -093600* SIECLE ANNEE DATE DE CLOTURE (16/03/92) ! -093700 15 WS-4DCO-VIS-DA-CLO-SS PIC 9(002). ! -093800* SIECLE DATE DE CLOTURE (16/03/92) ! -093900 15 WS-4DCO-VIS-DA-CLO-AA PIC 9(002). ! -094000* ANNEE DATE DE CLOTURE (16/03/92) ! -094100 10 WS-4DCO-VIS-DA-CLO-MM PIC 9(02). ! -094200* MOIS DATE DE CLOTURE (16/03/92) ! -094300 10 WS-4DCO-VIS-DA-CLO-JJ PIC 9(02). ! -094400* JOUR DATE DE CLOTURE (16/03/92) ! -094500 05 WS-4DCO-VIS-CLE-CTR PIC X(020). ! -094600* CLE ART 10 PEP / ZOOM BENEF (31/07/92) ! -094700 05 FILLER REDEFINES WS-4DCO-VIS-CLE-CTR. ! -094800* CLE ART 10 PEP / ZOOM BENEF (31/07/92) ! -094900 10 FILLER PIC X(017). ! -095000* FILLER (31/07/92) ! -095100 10 WS-4DCO-VIS-NO-ORD-ENREG PIC 9(03). ! -095200* NO ORDRE ENREGISTREMENT (31/07/92) ! -095300 05 WS-4DCO-VIS-IND-TAB-BNF PIC 9(02). ! -095400* INDICE LIGNE ZOOMEE (31/07/92) ! -095500 05 WS-4DCO-VIS-NO-PAGE PIC 9(02). ! -095600* NUMERO DE PAGE ECRAN M4DHZ0 ! -095700 05 WS-4DCO-VIS-NB-PAGES PIC 9(02). ! -095800* NOMBRE DE PAGES ECRAN M4DHZ0 ! -095900 05 WS-4DCO-LIB-IDT-CTR-VI PIC X(016). ! -096000* LIBELLE APPARESSANT DEVANT L'IDENTIFIANT CONTRAT ! -096100 05 WS-4DCO-NO-IDT-CTR-VI PIC X(015). ! -096200* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT ! -096300 05 WS-4DCO-LIB-AVN-VI PIC X(014). ! -096400* LIBELLE AVANCE ! -096500 05 WS-4DCO-SLD-AVN-VI-X PIC X(014). ! -096600* ! -096700 05 WS-4DCO-SLD-AVN-VI PIC S9(15) COMP-3. ! -096800* ! -096900 05 WS-4DCO-SLD-AVN-VI-R REDEFINES WS-4DCO-SLD-AVN-VI ! -097000 PIC S9(13)V9(02) COMP-3. ! -097100 05 FILLER PIC X(50). ! -097200* ZONES DISPONIBLES ! -097300* CE FILLER A ETE RAJOUTE POUR NE PAS ECRASER LES VALEURS DE LA ! -097400* COMMAREA PAR LES NOUVELLES ZONES QUAND ON VIENT DE L ANNULATION ! -097500 05 WS-4DCO-DT-OPE. ! -097600* DATE DE L'OPERATION ! -097700 10 WS-4DCO-DT-OPE-SA PIC X(4). ! -097800* DATE DE L'OPERATION SSAA ! -097900 10 WS-4DCO-DT-OPE-MM PIC X(2). ! -098000* DATE DE L'OPERATION MOIS ! -098100 10 WS-4DCO-DT-OPE-JJ PIC X(2). ! -098200* DATE DE L'OPERATION JOUR ! -098300 05 WS-4DCO-MT-OPE PIC S9(9)V99 COMP-3. ! -098400* MONTANT DE L OPERATION ! -098500 05 WS-4DCO-NOM-INTIT PIC X(036). ! -098600* NOM PATRONIMIQUE ET INTITULE ! -098700* ! -098800 05 WS-4DCO-PER. ! -098900* commarea pour affichage des infos complementaires PER ! -099000* sur l'�cran d�tail : tc4djl0 ! -099100 10 WS-4DCO-PER-NO-STR PIC X(006). ! -099200* n�structure du contrat ! -099300 10 WS-4DCO-PER-NO-CTR PIC X(006). ! -099400* n�de contrat comptable ! -099500 10 WS-4DCO-PER-INFOS. ! -099600* infos r�cup�r�es par l'appel au module TN4DPER ! -099700 15 WS-4DCO-PER-TY-CPT-PER PIC X. ! -099800* type de per (mixte ..) ! -099900 15 WS-4DCO-PER-NOM-PRN-CJ PIC X(032). ! -100000* nom du conjoint ! -100100 15 WS-4DCO-PER-DA-NAIS PIC X(008). ! -100200* date de naissance du conjoint ! -100300 15 WS-4DCO-PER-DA-PRM-RTT PIC X(008). ! -100400* date de 1er retrait apr�s 60 ans ! -100500 15 WS-4DCO-PER-MT OCCURS 10. ! -100600* occurence des soldes comptables � garder ! -100700 20 WS-4DCO-PER-SLD-CPB-R PIC S9(15) COMP-3. ! -100800 20 WS-4DCO-PER-SLD-CPB REDEFINES WS-4DCO-PER-SLD-CPB-R ! -100900 PIC S9(13)V9(02) COMP-3. ! -101000*avt 05 FILLER ( -141 pour le per) PIC X(1339). ! -101100 05 WS-4DCO-4DHU. ! -101200* commarea pour affichage d�tail fiscalit� ! -101300* sur l'�cran : tc4dfo0 ! -101400 10 WS-4DCO-4DHU-CD-ACT PIC X(01). ! -101500* Code action ! -101600* V pour visualisation ! -101700* A pour annulation ! -101800 10 WS-4DCO-4DHU-CURSA PIC 9(02). ! -101900* POSITION DU CURSEUR ! -102000 10 WS-4DCO-4DHU-MT-PV PIC S9(13)V99 COMP-3. ! -102100* montant plus value ! -102200 10 WS-4DCO-4DHU-MT-PV-F8 PIC S9(13)V99 COMP-3. ! -102300* montant plus value loi finance 98 ! -102400 10 WS-4DCO-4DHU-MT-PLV-LBL PIC S9(13)V99 COMP-3. ! -102500* montant pr�l�vement lib�ratoire ! -102600 10 WS-4DCO-4DHU-MT-PLV-SOC PIC S9(13)V99 COMP-3. ! -102700* montant pr�l�vement social ! -102800 10 WS-4DCO-4DHU-MT-PLV-CSG PIC S9(13)V99 COMP-3. ! -102900* montant pr�l�vement CSG ! -103000 10 WS-4DCO-4DHU-MT-CTB-DPT PIC S9(13)V99 COMP-3. ! -103100* montant contribution d�partementale ! -103200 10 WS-4DCO-4DHU-MT-VER-RDS PIC S9(13)V99 COMP-3. ! -103300* montant pr�l�vement CRDS ! -103400 10 WS-4DCO-4DHU-MT-ASST-CRDS PIC S9(13)V99 COMP-3. ! -103500* Assiette CRDS ! -103600 10 WS-4DCO-4DHU-MT-ASST-CSG PIC S9(13)V99 COMP-3. ! -103700* Assiette CSG ! -103800 10 WS-4DCO-4DHU-MT-ASST-SOC PIC S9(13)V99 COMP-3. ! -103900* Assiette SOC ! -104000 10 WS-4DCO-4DHU-TX-PLV-LBL PIC S9(02)V999 COMP-3. ! -104100* Assiette SOC ! -104200 10 WS-4DCO-4DHU-MT-CTS-VLL PIC S9(13)V99 COMP-3. ! -104300* montant cotisation vieillesse ! -104400 10 WS-4DCO-4DHU-DA-OPE-RACH PIC X(008). ! -104500* date op�ration de rachat ! -104600 10 WS-4DCO-4DHU-DA-EFF-RACH PIC X(008). ! -104700* date effet du rachat ! -104800 10 WS-4DCO-4DHU-MT-ASST-CTB PIC S9(13)V99 COMP-3. ! -104900* montant assiette contribution ! -105000 10 WS-4DCO-4DHU-MT-CTB PIC S9(13)V99 COMP-3. ! -105100* montant contribution ! -105200 05 FILLER PIC X(1072). ! -105300* ZONES DISPONIBLES ! -105400* ------------------------------------------------------ * ! -105500 ! -105600 03 WS-4DCO-ANOMALIES REDEFINES WS-4DCO-PROGRAM. ! -105700* ================= ! -105800* ------------------------------------------------------ * ! -105900* COMMAREA : CONSULTATION DES ANOMALIES * ! -106000* LONGUEUR : 1800 * ! -106100* PREFIXE : WS-4DCO-ANO- * ! -106200* ------------------------------------------------------ * ! -106300 ! -106400 05 WS-4DCO-ANO-STRUCT PIC X(006). ! -106500* NUMERO DE STRUCTURE ! -106600 05 WS-4DCO-ANO-DATE-DEB. ! -106700* DATE DE DEBUT ! -106800 10 WS-4DCO-ANO-ANDEB PIC X(004). ! -106900* SIECLE ANNEE DATE DE DEBUT ! -107000 10 WS-4DCO-ANO-MMDEB PIC X(002). ! -107100* MOIS DATE DE DEBUT ! -107200 10 WS-4DCO-ANO-JJDEB PIC X(002). ! -107300* JOUR DATE DE DEBUT ! -107400 05 WS-4DCO-ANO-DATE-FIN. ! -107500* DATE DE FIN ! -107600 10 WS-4DCO-ANO-ANFIN PIC X(004). ! -107700* SIECLE ANNEE DATE DE FIN ! -107800 10 WS-4DCO-ANO-MMFIN PIC X(002). ! -107900* MOIS DATE DE FIN ! -108000 10 WS-4DCO-ANO-JJFIN PIC X(002). ! -108100* JOUR DATE DE FIN ! -108200 05 WS-4DCO-ANO-OKVALID PIC X(001). ! -108300* INDICATEUR DE SAISIE ! -108400 05 WS-4DCO-ANO-PAGENV PIC S9(03). ! -108500* NUMERO DE PAGE ! -108600 05 WS-4DCO-ANO-NBPAGE PIC S9(03). ! -108700* NOMBRE DE PAGES ! -108800 05 WS-4DCO-ANO-CUM PIC S9(04). ! -108900* ! -109000 05 WS-4DCO-ANO-TSMVT PIC S9(04). ! -109100* ! -109200 05 WS-4DCO-ANO-CLE-ABEND PIC X(020). ! -109300* ! -109400 05 FILLER PIC X(1743). ! -109500* ZONES DISPONIBLES ! -109600* ------------------------------------------------------ * ! -109700 ! -109800 03 WS-4DCO-ANNU REDEFINES WS-4DCO-PROGRAM. ! -109900* ============ ! -110000* ------------------------------------------------------ * ! -110100* COMMAREA : ANNULATION * ! -110200* LONGUEUR : 1800 * ! -110300* PREFIXE : WS-4DCO- * ! -110400* ------------------------------------------------------ * ! -110500 ! -110600 05 WS-4DCO-TSMVTA PIC 9(01). ! -110700* TS ECRITE ! -110800 05 WS-4DCO-NBPAGA PIC 9(02). ! -110900* NBRE PAGE MVTS ! -111000 05 WS-4DCO-PAGENA PIC 9(02). ! -111100* NO PAGE MVTS ENCOURS ! -111200 05 WS-4DCO-CLECROA PIC X(040). ! -111300* CLE CRO SELECTIONNE ! -111400 05 WS-4DCO-CTRATA PIC X(006). ! -111500* CONTRAT ! -111600 05 WS-4DCO-NOMA PIC X(032). ! -111700* NOM ! -111800 05 WS-4DCO-CURSA PIC 9(02). ! -111900* POSITION DU CURSEUR ! -112000 05 FILLER PIC X(201). ! -112100* ZONES DISPONIBLES (CORRECTION 17/12/91) ! -112200 05 WS-4DCO-CPT-DOM-AN. ! -112300* COMPTE DOM ANNULATION ! -112400 10 WS-4DCO-BNQ-AN PIC X(005). ! -112500* BANQUE RIB CPTE DOM ANNULATION ! -112600 10 WS-4DCO-GUI-AN PIC X(005). ! -112700* GUICHET RIB COMPTE DOM ANNULATION ! -112800 10 WS-4DCO-CPT-AN PIC X(011). ! -112900* RACINE RIB COMPTE DOM ANNULATION ! -113000 10 WS-4DCO-CLE-AN PIC X(002). ! -113100* CLE RIB COMPTE DOM ANNULATION ! -113200 05 WS-4DCO-CLECROA-ZOOM PIC X(040). ! -113300* CLE CRO SELECTIONNE PAR LE ZOOM ! -113400 05 WS-4DCO-IDENT-CRO-ZOOM. ! -113500* IDENTIFICATION CRO ZOOM ! -113600 10 WS-4DCO-DAT-CRO-ZOOM PIC X(008). ! -113700* DATE CREATION CRO ZOOM ! -113800 10 WS-4DCO-HEU-CRO-ZOOM PIC X(006). ! -113900* HEURE CREATION CRO ZOOM ! -114000 10 WS-4DCO-TYP-CRO-ZOOM PIC X(003). ! -114100* TYPE CRO ZOOM ! -114200 05 WS-4DCO-ANN-DA-PAS-DNR-PAB PIC X(08). ! -114300* DATE DE PASSAGE DERNIER PAB ! -114400 05 WS-4DCO-ANN-TOP-MES-FONDS PIC X(01). ! -114500* TOP MESSAGE 'AVEZ-VOUS RECUPERE LES FONDS?' ! -114600 05 WS-4DCO-ANN-IDC-RAC-PART PIC X(01). ! -114700* INDICATEUR PRESENCE RACHAT PARTIEL ! -114800 05 WS-4DCO-NB-CRO-340 PIC 9(02). ! -114900* NOMBRE DE CRO SINISTRE AFFICHES A L ECRAN ! -115000 05 WS-4DCO-IDC-VAL-RIB PIC X(01). ! -115100* INDICATEUR DE VALIDITE DU COMPTE DOM ! -115200 05 WS-4DCO-NO-PTN-TR PIC 9(3). ! -115300* NUMERO PARTENAIRE EMMETTEUR TRANSFERT ! -115400 05 WS-4DCO-NO-PRD-PTN-TR PIC 9(3). ! -115500* NUMERO PRODUIT EMMETTEUR TRANSFERT ! -115600 05 WS-4DCO-NO-CLI-PTN-TR PIC 9(7). ! -115700* NUMERO CLIENT EMMETTEUR TRANSFERT ! -115800 05 WS-4DCO-NO-ORD-CTR-TR PIC 9(2). ! -115900* NUMERO ORDRE DU CONTRAT EMMETTEUR TRANSFERT ! -116000 05 WS-4DCO-TOP-TRF-PTN PIC X(1). ! -116100* INDICATEUR PRESENCE TRANSFERT PARTENAIRE ! -116200 05 WS-4DCO-DATE-TRF-PTN PIC 9(8). ! -116300 05 WS-4DCO-HEU-TRF-PTN PIC 9(6). ! -116400* HEURE DU TRANSFERT DE PARTENAIRE ! -116500 05 WS-4DCO-ANN-DA-OPE-DNR-RP PIC X(08). ! -116600* DATE OPERATION DERNIER RACHAT PARTIEL ! -116700 05 WS-4DCO-IDC-MVT-PUC-NON-ANNUL PIC X(01). ! -116800* INDICATEUR MVT PUC NON ANNULER ! -116900 05 WS-4DCO-CD-MSG PIC X(75). ! -117000* CODE MESSAGE ! -117100 05 WS-4DCO-IDC-PRES-CRO-JOUR PIC X(01). ! -117200* INDICATEUR PRESENCE CRO JOUR ! -117300 ! -117400 05 FILLER PIC X(1306). ! -117500* ZONES DISPONIBLES ! -117600* ------------------------------------------------------ * ! -117700 ! -117800 03 WS-4DCO-TRANS-CAIS REDEFINES WS-4DCO-PROGRAM. ! -117900* ================== ! -118000* ------------------------------------------------------ * ! -118100* COMMAREA : TRANSFERT DE STRUCTURE A STRUCTURE * ! -118200* LONGUEUR : 1800 * ! -118300* PREFIXE : WS-4DCO- * ! -118400* ------------------------------------------------------ * ! -118500 ! -118600 05 WS-4DCO-NO-STR-TRANS PIC X(006). ! -118700* NO STRUCTURE TRANSFEREE ! -118800 05 WS-4DCO-NO-AGT-TRANS PIC X(008). ! -118900* NO AGENT TRANSFERE ! -119000 05 WS-4DCO-CLIENT-TRANS PIC X(008). ! -119100* NO-CLIENT-TRANSFERE ! -119200 05 WS-4DCO-COMPTE-TRANS REDEFINES WS-4DCO-CLIENT-TRANS. ! -119300* NO COMPTE TRANSFERE ! -119400 10 WS-4DCO-RAC-TRANS PIC X(007). ! -119500* RACINE TRANSFEREE ! -119600 10 WS-4DCO-CLE-TRANS PIC X(001). ! -119700* CLE TRANSFEREE ! -119800 05 WS-4DCO-MT-TRF PIC S9(11) COMP-3. ! -119900* MONTANT DU TRANSFERT ! -120000 05 WS-4DCO-CPT-DOM-AV. ! -120100* RIB CPTE DOM AVANT TRANSFERT ! -120200 10 WS-4DCO-BNQ-DOM-AV PIC X(005). ! -120300* BANQUE RIB CPTE DOM AVANT TRANSFERT ! -120400 10 WS-4DCO-GCH-DOM-AV PIC X(005). ! -120500* GUICHET RIB CPTE DOM AVANT TRANSFERT ! -120600 10 WS-4DCO-RAC-DOM-AV PIC X(011). ! -120700* RACINE RIB CPTE DOM AVANT TRANSFERT ! -120800 10 WS-4DCO-CLE-DOM-AV PIC X(002). ! -120900* CLE RIB COMPTE DOM AVANT TRANSFERT ! -121000 05 WS-4DCO-CPT-DOM-AP. ! -121100* RIB CPTE DOM APRES TRANSFERT ! -121200 10 WS-4DCO-BNQ-DOM-AP PIC X(005). ! -121300* BANQUE RIB COMPTE DOM APRES TRANSFERT ! -121400 10 WS-4DCO-GCH-DOM-AP PIC X(005). ! -121500* GUICHET RIB COMPTE DOM APRES TRANSFERT ! -121600 10 WS-4DCO-RAC-DOM-AP PIC X(011). ! -121700* RACINE RIB COMPTE DOM APRES TRANSFERT ! -121800 10 WS-4DCO-CLE-DOM-AP PIC X(002). ! -121900* CLE RIB COMPTE DOM APRES TRANSFERT ! -122000 05 WS-4DCO-TITRE-ECRAN PIC X(032). ! -122100* LIBELLE TITRE ECRAN M4DHI0 ! -122200 05 WS-4DCO-TRFS-AUT-P PIC X(001). ! -122300* TOP AUTORISATION VERSEMENT PERIODIQUE ! -122400 05 WS-4DCO-4DHI-IDC-BLOC PIC X(001). ! -122500* TOP BLOCAGE TRFT caisse (CONTRAT PROROGEABLE) ! -122600 05 WS-4DCO-4DHI-DA-ECN-PROR PIC X(008). ! -122700* DATE ECHEANCE PROROGEE ! -122800 05 FILLER PIC X(1684). ! -122900* ZONES DISPONIBLES ! -123000* ------------------------------------------------------ * ! -123100 ! -123200 03 WS-4DCO-TRFRAC REDEFINES WS-4DCO-PROGRAM. ! -123300* ================== ! -123400* ------------------------------------------------------ * ! -123500* COMMAREA : TRANSFERT DE RACINE * ! -123600* LONGUEUR : 1800 * ! -123700* PREFIXE : WS-4DCO- * ! -123800* ------------------------------------------------------ * ! -123900 ! -124000 05 WS-4DCO-4DHJ-CLIENT PIC X(015). ! -124100* NOUVEAU N� DE CLIENT (EXTERNE) ! -124200 05 WS-4DCO-4DHJ-NO-CLI-PTN PIC 9(007). ! -124300* NOUVEAU N� DE CLIENT (INTERNE) ! -124400 05 WS-4DCO-4DHJ-NO-ORD-CTR PIC 9(002). ! -124500* NOUVEAU N� D'ORDRE DU CONTRAT ! -124600 05 WS-4DCO-4DHJ-CINT PIC X(002). ! -124700* CODE INTITULE ! -124800 05 WS-4DCO-4DHJ-NOM PIC X(032). ! -124900* NOM ! -125000 05 WS-4DCO-4DHJ-RUE1 PIC X(032). ! -125100* LIGNE ADRESSE 1 ! -125200 05 WS-4DCO-4DHJ-RUE2 PIC X(032). ! -125300* LIGNE ADRESSE 2 ! -125400 05 WS-4DCO-4DHJ-CODPOS PIC X(005). ! -125500* CODE POSTAL ! -125600 05 WS-4DCO-4DHJ-BUR-DIS PIC X(026). ! -125700* BUREAU DISTRIBUTEUR ! -125800 05 WS-4DCO-4DHJ-CPT-DOM-AV. ! -125900* RIB CPTE DOM AVANT TRANSFERT ! -126000 10 WS-4DCO-4DHJ-BNQ-DOM-AV PIC X(005). ! -126100* BANQUE RIB CPTE DOM AVANT TRANSFERT ! -126200 10 WS-4DCO-4DHJ-GCH-DOM-AV PIC X(005). ! -126300* GUICHET RIB CPTE DOM AVANT TRANSFERT ! -126400 10 WS-4DCO-4DHJ-RAC-DOM-AV PIC X(011). ! -126500* RACINE RIB CPTE DOM AVANT TRANSFERT ! -126600 10 WS-4DCO-4DHJ-CLE-DOM-AV PIC X(002). ! -126700* CLE RIB COMPTE DOM AVANT TRANSFERT ! -126800 05 WS-4DCO-4DHJ-CPT-DOM-AP. ! -126900* RIB CPTE DOM APRES TRANSFERT ! -127000 10 WS-4DCO-4DHJ-BNQ-DOM-AP PIC X(005). ! -127100* BANQUE RIB CPTE DOM APRES TRANSFERT ! -127200 10 WS-4DCO-4DHJ-GCH-DOM-AP PIC X(005). ! -127300* GUICHET RIB CPTE DOM APRES TRANSFERT ! -127400 10 WS-4DCO-4DHJ-RAC-DOM-AP PIC X(011). ! -127500* RACINE RIB CPTE DOM APRES TRANSFERT ! -127600 10 WS-4DCO-4DHJ-CLE-DOM-AP PIC X(002). ! -127700* CLE RIB COMPTE DOM APRES TRANSFERT ! -127800 05 WS-4DCO-4DHJ-LIB-TITRE PIC X(032). ! -127900* LIBELLE TITRE ECRAN M4DHI0 ! -128000 05 WS-4DCO-4DHJ-VP-OK PIC X(001). ! -128100* TOP AUTORISATION VERSEMENT PERIODIQUE ! -128200 05 WS-4DCO-4DHJ-AV-OK PIC X(001). ! -128300* TOP AUTORISATION AVANCE ! -128400 05 WS-4DCO-4DHJ-CD-VER-PER PIC X(001). ! -128500* CODE PERIODICITE ! -128600 05 WS-4DCO-4DHJ-LIB-CTR PIC X(013). ! -128700* LIBELLE APPARESSANT DEVANT L'IDENTIFIANT CONTRAT ! -128800 05 WS-4DCO-4DHJ-IDT-CTR PIC X(015). ! -128900* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT ! -129000 05 WS-4DCO-4DHJ-IDT-NV-CTR PIC X(015). ! -129100* MASQUE D'AFFICHAGE DE L'IDENTIFIANT NOUVEAU CONTRAT ! -129200 05 WS-4DCO-4DHJ-DA-NAI. ! -129300* DATE DE NAISSANCE ! -129400 10 WS-4DCO-4DHJ-DA-NAI-SA. ! -129500* SIECLE ANNEE DATE NAISSANCE ! -129600 15 WS-4DCO-4DHJ-DA-NAI-SS PIC X(002). ! -129700* SIECLE DATE NAISSANCE ! -129800 15 WS-4DCO-4DHJ-DA-NAI-AA PIC X(002). ! -129900* ANNEE DATE NAISSANCE ! -130000 10 WS-4DCO-4DHJ-DA-NAI-MM PIC X(002). ! -130100* MOIS DATE NAISSANCE ! -130200 10 WS-4DCO-4DHJ-DA-NAI-JJ PIC X(002). ! -130300* JOUR DATE NAISSANCE ! -130400 05 WS-4DCO-4DHJ-SLD-TP PIC S9(15) COMP-3. ! -130500* SOLDE TP TEMPS REEL ! -130600 05 WS-4DCO-4DHJ-NO-POL PIC X(009). ! -130700* NUMERO DE POLICE (PARTENAIRE EXTERIEUR) ! -130800 05 WS-4DCO-4DHJ-LIB-POL PIC X(011). ! -130900* LIBELLE "NO POLICE -->" ! -131000 05 WS-4DCO-4DHJ-NO-GEN-PRD PIC X(003). ! -131100* N� DE GENERATION DU PRODUIT ! -131200 05 WS-4DCO-4DHJ-NO-GEN-TY-PRD PIC X(003). ! -131300* N� DE GENERATION DU TYPE DE PRODUIT ! -131400 05 WS-4DCO-4DHJ-MOD-POL PIC X(001). ! -131500* SI = 'O' ==> SEUL LE N� DE POLICE A ETE MODIFIE ! -131600 05 WS-4DCO-4DHJ-IDC-BLOC PIC X(001). ! -131700* TOP BLOCAGE TRFT RACINE (CONTRAT PROROGEABLE) ! -131800 05 FILLER PIC X(1479). ! -131900* ZONES DISPONIBLES ! -132000* ------------------------------------------------------ * ! -132100 ! -132200 03 WS-4DCO-RENON REDEFINES WS-4DCO-PROGRAM. ! -132300* ============= ! -132400* ------------------------------------------------------ * ! -132500* COMMAREA : RENONCIATION * ! -132600* LONGUEUR : 1800 * ! -132700* PREFIXE : WS-4DCO- * ! -132800* ------------------------------------------------------ * ! -132900 ! -133000 05 WS-4DCO-RIBR. ! -133100* RIB CPTE DOM RENONCIATION ! -133200 10 WS-4DCO-BANDR PIC X(005). ! -133300* BANQUE RIB CPTE DOM RENONCIATION ! -133400 10 WS-4DCO-GUIDR PIC X(005). ! -133500* GUICHET RIB CPTE DOM RENONCIATION ! -133600 10 WS-4DCO-RACDR. ! -133700* RACINE RIB CPTE DOM RENONCIATION ! -133800 15 WS-4DCO-RACD0R PIC X(001). ! -133900* ! -134000 15 WS-4DCO-RACD1R PIC X(007). ! -134100* ! -134200 15 WS-4DCO-RACD2R PIC X(001). ! -134300* ! -134400 15 WS-4DCO-RACD3R PIC X(002). ! -134500* ! -134600 10 WS-4DCO-CLEDR PIC X(002). ! -134700* CLE RIB CPTE DOM RENONCIATION ! -134800 05 WS-4DCO-CPTDOMR. ! -134900* CPTE DOM RENONCIATION ! -135000 10 WS-4DCO-CAICMBR PIC X(004). ! -135100* CAISSE CPTE DOM RENONCIATION ! -135200 10 WS-4DCO-RACCMBR PIC X(007). ! -135300* RACINE CPTE DOM RENONCIATION ! -135400 10 WS-4DCO-CLECMBR PIC X(001). ! -135500* CLE CPTE DOM RENONCIATION ! -135600 10 WS-4DCO-TYPCMBR PIC X(002). ! -135700* TYPE CPTE DOM RENONCIATION ! -135800 05 WS-4DCO-DSOUSR. ! -135900* DATE SOUSCRIPTION ! -136000 10 WS-4DCO-DSOUSRSA. ! -136100* SIECLE ANNEE DATE SOUSCRIPTION ! -136200 15 WS-4DCO-DSOUSRS PIC X(002). ! -136300* SIECLE DATE SOUSCRIPTION ! -136400 15 WS-4DCO-DSOUSRA PIC X(002). ! -136500* ANNEE DATE SOUSCRIPTION ! -136600 10 WS-4DCO-DSOUSRM PIC X(002). ! -136700* MOIS DATE SOUSCRIPTION ! -136800 10 WS-4DCO-DSOUSRJ PIC X(002). ! -136900* JOUR DATE SOUSCRIPTION ! -137000 05 WS-4DCO-DECHER. ! -137100* DATE ECHEANCE ! -137200 10 WS-4DCO-DECHERSA. ! -137300* SIECLE ANNEE DATE ECHEANCE ! -137400 15 WS-4DCO-DECHERS PIC X(002). ! -137500* SIECLE DATE ECHEANCE ! -137600 15 WS-4DCO-DECHERA PIC X(002). ! -137700* ANNEE DATE ECHEANCE ! -137800 10 WS-4DCO-DECHERM PIC X(002). ! -137900* MOIS DATE ECHEANCE ! -138000 10 WS-4DCO-DECHERJ PIC X(002). ! -138100* JOUR DATE ECHEANCE ! -138200 05 WS-4DCO-DOPE. ! -138300* DATE VERSEMENT ! -138400 10 WS-4DCO-DOPESA. ! -138500* SIECLE ANNEE DATE VERSEMENT ! -138600 15 WS-4DCO-DOPES PIC X(002). ! -138700* SIECLE DATE VERSEMENT ! -138800 15 WS-4DCO-DOPEA PIC X(002). ! -138900* ANNEE DATE VERSEMENT ! -139000 10 WS-4DCO-DOPEM PIC X(002). ! -139100* MOIS DATE VERSEMENT ! -139200 10 WS-4DCO-DOPEJ PIC X(002). ! -139300* JOUR DATE VERSEMENT ! -139400 05 WS-4DCO-DEFCNTR. ! -139500* DATE EFFET CONTRAT ! -139600 10 WS-4DCO-DEFCNTRSA. ! -139700* SIECLE ANNEE DATE EFFET CONTRAT ! -139800 15 WS-4DCO-DEFCNTRS PIC X(002). ! -139900* SIECLE DATE EFFET CONTRAT ! -140000 15 WS-4DCO-DEFCNTRA PIC X(002). ! -140100* ANNEE DATE EFFET CONTRAT ! -140200 10 WS-4DCO-DEFCNTRM PIC X(002). ! -140300* MOIS DATE EFFET CONTRAT ! -140400 10 WS-4DCO-DEFCNTRJ PIC X(002). ! -140500* JOUR DATE EFFET CONTRAT ! -140600 05 WS-4DCO-FINDTGAR. ! -140700* ! -140800 10 WS-4DCO-JJDTGAR PIC X(002). ! -140900* ! -141000 10 WS-4DCO-MMDTGAR PIC X(002). ! -141100* ! -141200 10 WS-4DCO-ANDTGAR. ! -141300* ! -141400 15 WS-4DCO-SSDTGAR PIC X(002). ! -141500* ! -141600 15 WS-4DCO-AADTGAR PIC X(002). ! -141700* ! -141800 05 WS-4DCO-STR-GERR PIC X(006). ! -141900* STRUCTURE GERANTE DU CONTRAT ! -142000 05 WS-4DCO-TXMNGARR PIC S9(02)V9(03). ! -142100* TAUX MINIMUM GARANTI CONTRAT ! -142200 05 WS-4DCO-BRUTINIR PIC S9(09)V9(02). ! -142300* MONTANT BRUT VERSEMENT ! -142400 05 WS-4DCO-BRUTINIR-C REDEFINES WS-4DCO-BRUTINIR ! -142500 PIC S9(11). ! -142600* MONTANT BRUT VERSEMENT ! -142700 05 WS-4DCO-NETINIR PIC S9(09)V9(02). ! -142800* MONTANT NET VERSEMENT ! -142900 05 WS-4DCO-NETINIR-C REDEFINES WS-4DCO-NETINIR ! -143000 PIC S9(11). ! -143100* MONTANT NET VERSEMENT ! -143200 05 WS-4DCO-FRSINIR PIC S9(09)V9(02). ! -143300* MONTANT FRAIS VERSEMENT ! -143400 05 WS-4DCO-FRSINIR-C REDEFINES WS-4DCO-FRSINIR ! -143500 PIC S9(11). ! -143600* MONTANT FRAIS VERSEMENT ! -143700 05 WS-4DCO-NB-VER-EXC PIC 9(03) COMP-3. ! -143800* NOMBRE DE VERSEMENTS ! -143900 05 WS-4DCO-TYP-VERR PIC X(001). ! -144000* PERIODICITE DES VERSEMENTS ! -144100 05 WS-4DCO-REN-RETRO PIC X(001). ! -144200* INDICATEUR DE RETROACTIVITE ! -144300 05 WS-4DCO-REN-NBRE-PASSAGE PIC X(001). ! -144400* INDICATEUR NOMBRE PASSAGES ! -144500 05 WS-4DCO-LIB-IDT-CTR-RE PIC X(016). ! -144600* LIBELLE APPARESSANT DEVANT L'IDENTIFIANT CONTRAT ! -144700 05 WS-4DCO-NO-IDT-CTR-RE PIC X(015). ! -144800* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT ! -144900 05 WS-4DCO-NOMR PIC X(032). ! -145000* NOM PRENOM DU SOUSCRIPTEUR ! -145100 05 WS-4DCO-AGT-GTNR PIC X(008). ! -145200* NO. AGENT GESTIONNAIRE DU CONTRAT ! -145300 05 WS-4DCO-REN-MT-NET-VER-INI PIC S9(11) COMP-3. ! -145400* MONTANT NET DU VERSEMENT INITIAL ! -145500 05 WS-4DCO-REN-SLD-TPS-REAL PIC S9(15) COMP-3. ! -145600* SOLDE TP TEMPS REEL ! -145700 05 WS-4DCO-REN-IDC-EDI-CM PIC X(01). ! -145800* indicateur edition cheque ccm ! -145900 05 FILLER PIC X(1588). ! -146000* ZONES DISPONIBLES ! -146100* ------------------------------------------------------ * ! -146200 ! -146300 03 WS-4DCO-MODIFICATION REDEFINES WS-4DCO-PROGRAM. ! -146400* ==================== ! -146500* ------------------------------------------------------ * ! -146600* COMMAREA : MODIFICATION * ! -146700* LONGUEUR : 1800 * ! -146800* PREFIXE : WS-4DCO- * ! -146900* ------------------------------------------------------ * ! -147000* NOTE : 11/06/92 = CORRECTION COMMAREA MODIFICATION ! -147100 ! -147200 05 WS-4DCO-MOD-BEN-OK PIC X(001). ! -147300* INDICATEUR SAISIE BENEF. OK ! -147400 05 WS-4DCO-MOD-NB-ITEM-TS PIC 9(02). ! -147500* NB ITEM TS DES BENEFICIAIRES ! -147600 05 WS-4DCO-MOD-NB-BEN-PEP PIC 9(02). ! -147700* NB BENEF NON ANNULES PEP ! -147800 05 WS-4DCO-MOD-NB-NOUV-BEN PIC 9(02). ! -147900* NB NOUVEAUX BENEFICIAIRES ! -148000 05 WS-4DCO-MOD-DER-NO-ORD PIC 9(02). ! -148100* DERNIER NO ORDRE ART 10 PEP ! -148200 05 WS-4DCO-MOD-DER-NO-BNF PIC 9(02). ! -148300* DERNIER NO BENEF ART 10 PEP ! -148400 05 WS-4DCO-MOD-LIB-CTR PIC X(16). ! -148500* LIBELLE DU TYPE DE CONTRAT ! -148600 05 WS-4DCO-MOD-IDT-CTR PIC X(15). ! -148700* IDENTIFIANT DU CONTRAT ! -148800 05 WS-4DCO-MOD-STR-GTN PIC X(06). ! -148900* STRUCTURE GESTIONNAIRE DU CONTRAT ! -149000 05 WS-4DCO-MOD-AGT-GTN PIC X(08). ! -149100* AGENT GESTIONNAIRE DU CONTRAT ! -149200 05 WS-4DCO-MOD-NOM-CLI PIC X(32). ! -149300* NOM DU SOUSCRIPTEUR ! -149400 05 WS-4DCO-MOD-TX-DERO-VP PIC X(01). ! -149500* INDICATEUR DE TAUX DEROGATOIRE SUR V.P. ! -149600 05 FILLER PIC X(022). ! -149700* ZONES DISPONIBLES ! -149800 05 WS-4DCO-MOD-MAP-M42620A. ! -149900* ZONES MAP M42620A ! -150000 10 WS-4DCO-MOD-SAISIE-BENEF PIC X(001). ! -150100* INDICATEUR TRT BENEFICIAIRES ! -150200 10 WS-4DCO-MOD-CD-INT PIC X(002). ! -150300* CODE INTITULE DU TITULAIRE ! -150400 10 WS-4DCO-MOD-NOM-PATRO PIC X(032). ! -150500* NOM DU TITULAIRE ! -150600 10 WS-4DCO-MOD-DA-NAI. ! -150700* DATE NAISSANCE TITULAIRE ! -150800 15 WS-4DCO-MOD-DA-NAI-A PIC X(004). ! -150900* ANNEE NAISSANCE TITULAIRE ! -151000 15 WS-4DCO-MOD-DA-NAI-M PIC X(002). ! -151100* MOIS NAISSANCE TITULAIRE ! -151200 15 WS-4DCO-MOD-DA-NAI-J PIC X(002). ! -151300* JOUR NAISSANCE TITULAIRE ! -151400 10 WS-4DCO-MOD-DA-SCR. ! -151500* DATE SOUSCRIPTION ! -151600 15 WS-4DCO-MOD-DA-SCR-SA PIC 9(04). ! -151700* SIECLE ANNEE DATE SOUSCRIPTION ! -151800 15 WS-4DCO-MOD-DA-SCR-M PIC 9(02). ! -151900* MOIS DATE SOUSCRIPTION ! -152000 15 WS-4DCO-MOD-DA-SCR-J PIC 9(02). ! -152100* JOUR DATE SOUSCRIPTION ! -152200 10 WS-4DCO-MOD-DA-ECN-CTR PIC X(008). ! -152300* DATE ECHEANCE CONTRAT ! -152400 10 WS-4DCO-MOD-DUR-CTR-AV PIC X(004). ! -152500* DUREE DU CONTRAT AVANT MODIFICATION ! -152600 10 WS-4DCO-MOD-DUR-CTR. ! -152700* DUREE DU CONTRAT ! -152800 15 WS-4DCO-MOD-AA-DUR-CTR PIC X(002). ! -152900* NB ANNEES DUREE DU CONTRAT ! -153000 15 WS-4DCO-MOD-MM-DUR-CTR PIC X(002). ! -153100* NB MOIS DUREE DU CONTRAT ! -153200 10 FILLER REDEFINES WS-4DCO-MOD-DUR-CTR. ! -153300* DUREE DU CONTRAT (NUMERIQUE) ! -153400 15 WS-4DCO-MOD-AA-DUR-CTR-R PIC 9(02). ! -153500* NB ANNEES DUREE DU CONTRAT (NUMERIQUE) ! -153600 15 WS-4DCO-MOD-MM-DUR-CTR-R PIC 9(02). ! -153700* NB MOIS DUREE DU CONTRAT (NUMERIQUE) ! -153800 10 WS-4DCO-MOD-DA-ECN-AV PIC X(008). ! -153900* DATE ECHEANCE CONTRAT ! -154000 10 WS-4DCO-MOD-DA-ECN. ! -154100* DATE ECHEANCE CONTRAT ! -154200 15 WS-4DCO-MOD-DA-ECN-A PIC X(004). ! -154300* SIECLE ANNEE DATE ECHEANCE CONTRAT ! -154400 15 WS-4DCO-MOD-DA-ECN-M PIC X(002). ! -154500* MOIS DATE ECHEANCE CONTRAT ! -154600 15 WS-4DCO-MOD-DA-ECN-J PIC X(002). ! -154700* JOUR DATE ECHEANCE CONTRAT ! -154800 10 FILLER REDEFINES WS-4DCO-MOD-DA-ECN. ! -154900* DATE ECHEANCE CONTRAT (NUMERIQUE) ! -155000 15 WS-4DCO-MOD-DA-ECN-A-R PIC 9(04). ! -155100* SIECLE ANNEE DATE ECHEANCE CONTRAT ! -155200 15 WS-4DCO-MOD-DA-ECN-M-R PIC 9(02). ! -155300* MOIS DATE ECHEANCE CONTRAT ! -155400 15 WS-4DCO-MOD-DA-ECN-J-R PIC 9(02). ! -155500* JOUR DATE ECHEANCE CONTRAT ! -155600 10 WS-4DCO-MOD-TRT-BEN PIC X(001). ! -155700* INDICATEUR MODIF BENEFICIAIRES ! -155800 10 WS-4DCO-MOD-CD-EXP PIC X(001). ! -155900* CODE EXPEDITION ! -156000 10 WS-4DCO-MOD-CD-NTS-AV PIC X(001). ! -156100* VALEUR NANTISSEMENT AV MODIF ! -156200 10 WS-4DCO-MOD-CD-NTS PIC X(001). ! -156300* NOUVELLE VALEUR NANTISSEMENT ! -156400 10 WS-4DCO-MOD-EXIST-VP PIC X(001). ! -156500* INDICATEUR EXISTENCE V.P. POUR LE COMPTE ! -156600 10 WS-4DCO-MOD-VP-AUTORISE PIC X(001). ! -156700* INDICATEUR DE VERSEMENT PERIODIQUE ! -156800 10 WS-4DCO-MOD-NO-RIB-VP. ! -156900* RIB COMPTE DOM. VERSEMENTS PERIODIQUES ! -157000 15 WS-4DCO-MOD-CD-BNQ-VP PIC X(005). ! -157100* CODE BANQUE COMPTE DOM. V.P. ! -157200 15 WS-4DCO-MOD-CD-GCH-VP PIC X(005). ! -157300* CODE GUICHET COMPTE DOM. V.P. ! -157400 15 WS-4DCO-MOD-NO-CPT-VP PIC X(011). ! -157500* NUMERO DE COMPTE DOM. V.P. ! -157600 15 WS-4DCO-MOD-CLE-RIB-VP PIC X(002). ! -157700* CLE RIB COMPTE DOM. V.P. ! -157800 10 WS-4DCO-MOD-SLD-X PIC X(016). ! -157900* SOLDE COMPTE VERSEMENT PERIODIQUE ! -158000 10 WS-4DCO-MOD-SLD-F PIC S9(13)V9(02). ! -158100* SOLDE COMPTE VERSEMENT PERIODIQUE ! -158200 10 WS-4DCO-MOD-SLD-C REDEFINES WS-4DCO-MOD-SLD-F ! -158300 PIC S9(15). ! -158400* SOLDE COMPTE VERSEMENT PERIODIQUE ! -158500 10 WS-4DCO-MOD-DA-EFF-VP-AV PIC X(008). ! -158600* DATE EFFET V.P. AVANT MODIFICATION ! -158700 10 WS-4DCO-MOD-DA-EFF-VP. ! -158800* DATE EFFET V.P. ! -158900 15 WS-4DCO-MOD-DA-EFF-VP-SA PIC X(004). ! -159000* ANNEE DATE EFFET V.P. ! -159100 15 WS-4DCO-MOD-DA-EFF-VP-M PIC X(002). ! -159200* MOIS DATE EFFET V.P. ! -159300 15 WS-4DCO-MOD-DA-EFF-VP-J PIC X(002). ! -159400* JOUR DATE EFFET V.P. ! -159500 10 WS-4DCO-MOD-MT-BRT-X PIC X(10). ! -159600* MONTANT BRUT V.P. AFFICHE A L'ECRAN ! -159700 10 WS-4DCO-MOD-MT-BRT-F PIC S9(07)V9(02). ! -159800* MONTANT BRUT V.P. ! -159900 10 WS-4DCO-MOD-MT-BRT-C REDEFINES WS-4DCO-MOD-MT-BRT-F ! -160000 PIC S9(09). ! -160100* MONTANT BRUT V.P. ! -160200 10 WS-4DCO-MOD-TX-FRS-X PIC X(006). ! -160300* TAUX DE FRAIS V.P. AFFICHE A L'ECRAN ! -160400 10 WS-4DCO-MOD-TX-FRS-F PIC 9(02)V9(03). ! -160500* TAUX DE FRAIS V.P. ! -160600 10 WS-4DCO-MOD-TX-FRS-C REDEFINES WS-4DCO-MOD-TX-FRS-F ! -160700 PIC 9(05). ! -160800* TAUX DE FRAIS V.P. ! -160900 10 WS-4DCO-MOD-MT-FRS-X PIC X(010). ! -161000* MONTANT FRAIS V.P. AFFICHE A L'ECRAN ! -161100 10 WS-4DCO-MOD-MT-FRS-F PIC S9(07)V9(02). ! -161200* MONTANT FRAIS V.P. ! -161300 10 WS-4DCO-MOD-MT-FRS-C REDEFINES WS-4DCO-MOD-MT-FRS-F ! -161400 PIC S9(09). ! -161500* MONTANT FRAIS V.P. ! -161600 10 WS-4DCO-MOD-MT-NET-X PIC X(010). ! -161700* MONTANT NET V.P. AFFICHE A L'ECRAN ! -161800 10 WS-4DCO-MOD-MT-NET-F PIC S9(07)V9(02). ! -161900* MONTANT NET V.P. ! -162000 10 WS-4DCO-MOD-MT-NET-C REDEFINES WS-4DCO-MOD-MT-NET-F ! -162100 PIC S9(09). ! -162200* MONTANT NET V.P. ! -162300 10 WS-4DCO-MOD-NET-CTR PIC S9(07)V9(02). ! -162400* MONTANT NET DES VERSEMENTS DU CONTRAT ! -162500 10 WS-4DCO-MOD-NET-CTR-R REDEFINES WS-4DCO-MOD-NET-CTR ! -162600 PIC S9(09). ! -162700* MONTANT NET DES VERSEMENTS DU CONTRAT ! -162800 10 WS-4DCO-MOD-CD-PER-VP PIC X(001). ! -162900* CODE PERIODICITE ! -163000 10 WS-4DCO-MOD-AJU-CTS PIC X(001). ! -163100* INDICATEUR AJUSTEMENT VERSEMENTS ! -163200 10 WS-4DCO-MOD-DRG-FRS-GTN PIC X(001). ! -163300* INDICATEUR DE DEROGATION TAUX FRAIS ! -163400 10 WS-4DCO-MOD-MM-DUR-CTR-SAI PIC X(002). ! -163500* DUREE DE CONTRAT SAISIE MOIS ! -163600 10 WS-4DCO-MOD-AA-DUR-CTR-SAI PIC X(002). ! -163700* DUREE DE CONTRAT SAISIE ANNEE ! -163800 10 WS-4DCO-MOD-DA-ECN-M-SAI PIC X(002). ! -163900* DATE D'ECHEANCE SAISIE MOIS ! -164000 10 WS-4DCO-MOD-DA-ECN-A-SAI PIC X(004). ! -164100* DATE D'ECHEANCE SAISIE ANNEE ! -164200 10 WS-4DCO-MOD-DA-EFF-CTR PIC X(008). ! -164300* DATE EFFET CONTRAT ! -164400 10 FILLER PIC X(082). ! -164500* ZONES DISPONIBLES ! -164600 05 WS-4DCO-MOD-MAP-M42630A. ! -164700* ZONES BENEF. MAP M42630A ! -164800 10 WS-4DCO-MOD-NO-PAGE PIC 9(02). ! -164900* NUMERO DE PAGE ECRAN M42630A ! -165000 10 WS-4DCO-MOD-NB-PAGES PIC 9(02). ! -165100* NOMBRE DE PAGES ECRAN M42630A ! -165200 10 WS-4DCO-MOD-TAB-BENEF OCCURS 10. ! -165300* TABLEAU DES BENEF / M42630A ! -165400 15 WS-4DCO-MOD-NOM PIC X(032). ! -165500* NOM DU BENEFICIAIRE ! -165600 15 WS-4DCO-MOD-QP PIC X(003). ! -165700* QUOTE PART DU BENEFICIAIRE ! -165800 15 WS-4DCO-MOD-ETAT PIC X(003). ! -165900* ETAT DU BENEFICIAIRE ! -166000 10 WS-4DCO-MOD-TAB-TRT. ! -166100* TABLEAU TOP DE TRT BENEF. ! -166200 15 WS-4DCO-MOD-TRT PIC X(001) OCCURS 10. ! -166300* TOP DE SAISIE BENEFICIAIRE ! -166400 05 WS-4DCO-MOD-TS-BENEF-OK PIC X(001). ! -166500* INDICATEUR EXISTENCE TS BENEF. ! -166600 05 WS-4DCO-MOD-MAP-M42640A. ! -166700* ZONES BENEFICIAIRE MAP M42640A ! -166800 10 WS-4DCO-MOD-CD-INT-BNF PIC X(002). ! -166900* CODE INTITULE BENEFICIAIRE ! -167000 10 WS-4DCO-MOD-NOM-PATRO-BNF PIC X(032). ! -167100* NOM BENEFICIAIRE ! -167200 10 WS-4DCO-MOD-DA-NAI-BNF. ! -167300* DATE DE NAISSANCE BENEF ! -167400 15 WS-4DCO-MOD-DA-NAI-BNF-SA PIC X(004). ! -167500* SIECLE ANNEE DATE DE NAISSANCE ! -167600 15 WS-4DCO-MOD-DA-NAI-BNF-M PIC X(002). ! -167700* MOIS DATE DE NAISSANCE ! -167800 15 WS-4DCO-MOD-DA-NAI-BNF-J PIC X(002). ! -167900* JOUR DATE DE NAISSANCE ! -168000 10 WS-4DCO-MOD-NO-RIB. ! -168100* NUMERO DE COMPTE BENEFICIAIRE ! -168200 15 WS-4DCO-MOD-CD-BQE PIC X(005). ! -168300* CODE BANQUE RIB BENEFICIAIRE ! -168400 15 WS-4DCO-MOD-CD-GCH PIC X(005). ! -168500* CODE GUICHET RIB BENEFICIAIRE ! -168600 15 WS-4DCO-MOD-NO-CPT PIC X(011). ! -168700* NO COMPTE RIB BENEFICIAIRE ! -168800 15 WS-4DCO-MOD-CLE-RIB PIC X(002). ! -168900* CLE RIB BENEFICIAIRE ! -169000 10 WS-4DCO-MOD-QUOTE-PART PIC X(003). ! -169100* QUOTE PART DU BENEFICIAIRE ! -169200 10 WS-4DCO-MOD-LIB-RUE-1 PIC X(032). ! -169300* RUE ADRESSE BENEFICIAIRE ! -169400 10 WS-4DCO-MOD-CD-POST PIC X(005). ! -169500* CODE POSTAL ADRESSE BENEF. ! -169600 10 WS-4DCO-MOD-LIB-COMMUNE PIC X(032). ! -169700* VILLE ADRESSE BENEFICIAIRE ! -169800 10 WS-4DCO-MOD-LIB-RUE-2 PIC X(032). ! -169900* RUE ADRESSE BENEFICIAIRE ! -170000 05 WS-4DCO-MOD-LIB-AVN PIC X(019). ! -170100* LIBELLE AVANCE ! -170200 05 WS-4DCO-MOD-SLD-AVN-X PIC X(014). ! -170300* ! -170400 05 WS-4DCO-MOD-SLD-AVN PIC S9(15) COMP-3. ! -170500* ! -170600 05 WS-4DCO-MOD-SLD-AVN-R REDEFINES WS-4DCO-MOD-SLD-AVN ! -170700 PIC S9(13)V9(02) COMP-3. ! -170800* ! -170900 05 WS-4DCO-MOD-IDC-NTS PIC X(001). ! -171000* ! -171100 05 WS-4DCO-MOD-REF-EXT-INTV PIC X(015). ! -171200* ! -171300 05 WS-4DCO-MOD-EXPED PIC X(001). ! -171400* TYPE D'EXPEDITION ! -171500* ! -171600* ====> MODIFICATION DU CADRE DU CONTRAT : ! -171700* ---- EPARGNE HANDICAP ! -171800* ---- RENTE SURVIE ! -171900 05 WS-4DCO-MOD-CD-EPH-AV PIC X(001). ! -172000* VALEUR CODE EPARGNE HANDICAP ! -172100 05 WS-4DCO-MOD-CD-EPH PIC X(001). ! -172200* NOUVELLE VALEUR EPARGNE HANDICAP ! -172300 05 WS-4DCO-MOD-CD-RSU-AV PIC X(001). ! -172400* VALEUR CODE RENTE SURVIE ! -172500 05 WS-4DCO-MOD-CD-RSU PIC X(001). ! -172600* NOUVELLE VALEUR RENTE SURVIE ! -172700 05 WS-4DCO-MOD-CREAT-VP PIC X(001). ! -172800* INDICATEUR CREATION V.P. POUR LE COMPTE ! -172900 05 WS-4DCO-MOD-DA-ADH-RGM-VLL PIC X(008). ! -173000* DATE ADHESION REGIME VIEILLESSE (SSAAMMJJ) ! -173100 05 FILLER REDEFINES WS-4DCO-MOD-DA-ADH-RGM-VLL. ! -173200 07 WS-4DCO-MOD-DA-ADH-RGM-VLL-A PIC X(4). ! -173300 07 WS-4DCO-MOD-DA-ADH-RGM-VLL-M PIC X(2). ! -173400 07 WS-4DCO-MOD-DA-ADH-RGM-VLL-J PIC X(2). ! -173500 05 WS-4DCO-MOD-PER-ARR-FIS-CLI PIC X(004). ! -173600* PERIODE ARRETE FISCAL CLIENT (MMJJ) ! -173700 05 FILLER REDEFINES WS-4DCO-MOD-PER-ARR-FIS-CLI . ! -173800 07 WS-4DCO-MOD-PER-ARR-FIS-CLI-M PIC X(2). ! -173900 07 WS-4DCO-MOD-PER-ARR-FIS-CLI-J PIC X(2). ! -174000 05 WS-4DCO-MOD-TOP-PREM-PREL PIC X(01). ! -174100 05 WS-4DCO-MOD-TY-TRF-PP-AV PIC X(02). ! -174200* TYPE DE CLASSIFICATION PU/PP AVANT MOD ! -174300 05 WS-4DCO-MOD-TY-TRF-PP PIC X(02). ! -174400* TYPE DE CLASSIFICATION PU/PP ! -174500 05 WS-4DCO-CD-PER-RPP PIC X(01). ! -174600* CODE PERIODICITE RPP ! -174700 05 WS-4DCO-MOD-NO-GEN-TY-PRD PIC X(03). ! -174800* NO DE GENERATION TYPE DE PRODUIT ! -174900 05 WS-4DCO-MOD-IDC-RFS-CDN-NV-AV PIC X(01). ! -175000* INDICATEUR REFUS CONDITION NOUVELLE AVANT ! -175100 05 WS-4DCO-MOD-IDC-RFS-CDN-NV PIC X(01). ! -175200* INDICATEUR REFUS CONDITION NOUVELLE ! -175300 05 WS-4DCO-MOD-IDC-CTRL PIC X(1). ! -175400* INDICATEUR DE CONTROLE ! -175500 05 WS-4DCO-MOD-ERRMSG PIC X(6). ! -175600* SAUVEGARDE MESSAGE ERREUR ! -175700 05 WS-4DCO-MOD-4DME0. ! -175800 10 WS-4DCO-MOD-CD-BLOC-DOSS PIC X(01). ! -175900 10 WS-4DCO-MOD-CD-BLOC-DOSS-AV PIC X(01). ! -176000* DATE PROCHAIN RACHAT ! -176100 05 WS-4DCO-MOD-DA-NXT-RPP. ! -176200 10 WS-4DCO-MOD-DA-NXT-RPP-A PIC X(04). ! -176300 10 WS-4DCO-MOD-DA-NXT-RPP-M PIC X(02). ! -176400 10 WS-4DCO-MOD-DA-NXT-RPP-J PIC X(02). ! -176500* ! -176600* DATE DERNIER RACHAT ! -176700 05 WS-4DCO-MOD-DA-DNR-RPP. ! -176800 10 WS-4DCO-MOD-DA-DNR-RPP-A PIC X(04). ! -176900 10 WS-4DCO-MOD-DA-DNR-RPP-M PIC X(02). ! -177000 10 WS-4DCO-MOD-DA-DNR-RPP-J PIC X(02). ! -177100* TYPE DE TRAITEMENT ! -177200 05 WS-4DCO-SAV-4DMI0. ! -177300 10 WS-4DCO-SAV-OPERATION PIC X(02). ! -177400 88 WS-CREATION VALUE 'CR'. ! -177500 88 WS-MODIFICATION VALUE 'MO'. ! -177600 88 WS-CONSULTATION VALUE 'CS'. ! -177700 88 WS-SUPPRESSION VALUE 'SP'. ! -177800* ! -177900 05 FILLER PIC X(0673). ! -178000* ZONES DISPONIBLES ! -178100* ------------------------------------------------------ * ! -178200 ! -178300 03 WS-4DCO-RACHAT REDEFINES WS-4DCO-PROGRAM. ! -178400* ============== ! -178500* ------------------------------------------------------ * ! -178600* COMMAREA : RACHAT * ! -178700* LONGUEUR : 1800 * ! -178800* PREFIXE : WS-4DCO- * ! -178900* ------------------------------------------------------ * ! -179000 ! -179100 05 WS-4DCO-RIBRC. ! -179200* RIB CPTE DOM RACHAT ! -179300 10 WS-4DCO-BNQDRC PIC X(005). ! -179400* BANQUE RIB CPTE DOM RACHAT ! -179500 10 WS-4DCO-GUICDRC PIC X(005). ! -179600* GUICHET RIB CPTE DOM RACHAT ! -179700 10 WS-4DCO-RACDRC PIC X(011). ! -179800* RACINE RIB CPTE DOM RACHAT ! -179900 10 WS-4DCO-CLEDRC PIC X(002). ! -180000* CLE RIB CPTE DOM RACHAT ! -180100 05 WS-4DCO-STR-GTN-RC PIC X(006). ! -180200* STRUCTURE GESTIONNAIRE DU CONTRAT ! -180300 05 WS-4DCO-DSOURC. ! -180400* DATE SOUSCRIPTION CONTRAT ! -180500 10 WS-4DCO-AA-SOUSC. ! -180600* SIECLE ANNEE DATE SOUSCRIPTION CONTRAT ! -180700 15 WS-4DCO-AA1-SOUSC PIC X(002). ! -180800* SIECLE DATE SOUSCRIPTION CONTRAT ! -180900 15 WS-4DCO-AA2-SOUSC PIC X(002). ! -181000* ANNEE DATE SOUSCRIPTION CONTRAT ! -181100 10 WS-4DCO-MM-SOUSC PIC X(002). ! -181200* MOIS DATE SOUSCRIPTION CONTRAT ! -181300 10 WS-4DCO-JJ-SOUSC PIC X(002). ! -181400* JOUR DATE SOUSCRIPTION CONTRAT ! -181500 05 WS-4DCO-DSOURC-EFF. ! -181600* DATE EFFET SOUSCRIPTION ! -181700 10 WS-4DCO-AA-EFF-SOUSC. ! -181800* SIECLE ANNEE DATE EFFET SOUSCRIPTION ! -181900 15 WS-4DCO-AA1-EFF-SC PIC X(002). ! -182000* SIECLE DATE EFFET SOUSCRIPTION ! -182100 15 WS-4DCO-AA2-EFF-SC PIC X(002). ! -182200* ANNEE DATE EFFET SOUSCRIPTION ! -182300 10 WS-4DCO-MM-EFF-SOUSC PIC X(002). ! -182400* MOIS DATE EFFET SOUSCRIPTION ! -182500 10 WS-4DCO-JJ-EFF-SOUSC PIC X(002). ! -182600* JOUR DATE EFFET SOUSCRIPTION ! -182700 05 WS-4DCO-DOPE-RC. ! -182800* DATE OPERATION RACHAT ! -182900 10 WS-4DCO-AA-OPE. ! -183000* SIECLE ANNEE DATE OPERATION RACHAT ! -183100 15 WS-4DCO-AA1-OPE PIC X(002). ! -183200* SIECLE DATE OPERATION RACHAT ! -183300 15 WS-4DCO-AA2-OPE PIC X(002). ! -183400* ANNEE DATE OPERATION RACHAT ! -183500 10 WS-4DCO-MM-OPE PIC X(002). ! -183600* MOIS DATE OPERATION RACHAT ! -183700 10 WS-4DCO-JJ-OPE PIC X(002). ! -183800* JOUR DATE OPERATION RACHAT ! -183900 05 WS-4DCO-DEFFET-RC. ! -184000* DATE EFFET RACHAT ! -184100 10 WS-4DCO-AA-EFF. ! -184200* SIECLE ANNEE DATE EFFET RACHAT ! -184300 15 WS-4DCO-AA1-EFF PIC X(002). ! -184400* SIECLE DATE EFFET RACHAT ! -184500 15 WS-4DCO-AA2-EFF PIC X(002). ! -184600* ANNEE DATE EFFET RACHAT ! -184700 10 WS-4DCO-MM-EFF PIC X(002). ! -184800* MOIS DATE EFFET RACHAT ! -184900 10 WS-4DCO-JJ-EFF PIC X(002). ! -185000* JOUR DATE EFFET RACHAT ! -185100 05 WS-4DCO-IDC-DCS PIC X(001). ! -185200* INDICATEUR DE DECES ACCIDENTEL (PREVI-CROISSANCE) ! -185300 05 WS-4DCO-DECLA-INT PIC X(001). ! -185400* ! -185500 05 FILLER PIC X(001). ! -185600* ZONE DISPONIBLE ! -185700 05 WS-4DCO-CERTIF-IMP PIC X(001). ! -185800* ! -185900 05 WS-4DCO-ZOOM PIC X(001). ! -186000* ! -186100 05 WS-4DCO-NOMRC PIC X(032). ! -186200* ! -186300 05 WS-4DCO-LIB-AVN-RC PIC X(014). ! -186400* LIBELLE AVANCE ! -186500 05 WS-4DCO-SLD-AVN-RC-X PIC X(14). ! -186600* ! -186700 05 WS-4DCO-SLD-AVN-RC PIC S9(15) COMP-3. ! -186800* ! -186900 05 WS-4DCO-SLD-AVN-RC-R REDEFINES WS-4DCO-SLD-AVN-RC ! -187000 PIC S9(13)V9(02) COMP-3. ! -187100* ! -187200 05 WS-4DCO-DA-DNR-PAB-RC PIC X(08). ! -187300* DATE DE PASSAGE DE LA DERNIERE PAB ! -187400* ! -187500 05 WS-4DCO-IT-FR-A-RC PIC S9(15) COMP-3. ! -187600* INTERETS ET FRAIS SUR AVANCE ! -187700 05 WS-4DCO-IT-FR-A-RC-R REDEFINES WS-4DCO-IT-FR-A-RC ! -187800 PIC S9(13)V9(02) COMP-3. ! -187900* ! -188000 05 WS-4DCO-FRS-ANN-RC PIC S9(15) COMP-3. ! -188100* FRAIS ANNUELS DE GESTION ! -188200 05 WS-4DCO-FRS-ANN-RC-R REDEFINES WS-4DCO-FRS-ANN-RC ! -188300 PIC S9(13)V9(02) COMP-3. ! -188400* FRAIS ANNUELS DE GESTION -> NOUVEAU PRODUIT ! -188500 05 WS-4DCO-FRS-ANN-GTN PIC S9(15) COMP-3. ! -188600 05 WS-4DCO-FRS-ANN-GTN-R REDEFINES WS-4DCO-FRS-ANN-GTN ! -188700 PIC S9(13)V9(02) COMP-3. ! -188800 05 WS-4DCO-CRDS PIC S9(15) COMP-3. ! -188900 05 WS-4DCO-CRDS-R REDEFINES WS-4DCO-CRDS ! -189000 PIC S9(13)V9(02) COMP-3. ! -189100 05 FILLER PIC X(004). ! -189200* ZONES DISPONIBLES ! -189300 05 WS-4DCO-PREL-LIB-RC PIC S9(15) COMP-3. ! -189400* ! -189500 05 WS-4DCO-PR-LIB-RC-R REDEFINES WS-4DCO-PREL-LIB-RC ! -189600 PIC S9(13)V9(02) COMP-3. ! -189700* ! -189800 05 WS-4DCO-PREL-SOC-RC PIC S9(15) COMP-3. ! -189900* ! -190000 05 WS-4DCO-PR-SOC-RC-R REDEFINES WS-4DCO-PREL-SOC-RC ! -190100 PIC S9(13)V9(02) COMP-3. ! -190200* ! -190300 05 WS-4DCO-PREL-VIE-RC PIC S9(15) COMP-3. ! -190400* ! -190500 05 WS-4DCO-PR-VIE-RC-R REDEFINES WS-4DCO-PREL-VIE-RC ! -190600 PIC S9(13)V9(02) COMP-3. ! -190700* ! -190800 05 WS-4DCO-MT-VER-INI-RC PIC S9(11) COMP-3. ! -190900* ! -191000 05 WS-4DCO-SOLD-TP-RC PIC S9(15) COMP-3. ! -191100* ! -191200 05 WS-4DCO-SLD-TP-RC-R REDEFINES WS-4DCO-SOLD-TP-RC ! -191300 PIC S9(13)V9(02) COMP-3. ! -191400* ! -191500 05 WS-4DCO-SOLD-VERS PIC S9(15) COMP-3. ! -191600* SOMME VERSEE AU SOCIETAIRE ! -191700 05 WS-4DCO-SOLD-VERS-R REDEFINES WS-4DCO-SOLD-VERS ! -191800 PIC S9(13)V9(02) COMP-3. ! -191900* ! -192000 05 WS-4DCO-CD-VER-PER-RC PIC X(001). ! -192100* ! -192200 05 WS-4DCO-DRG-DA-SRC PIC X(001). ! -192300* ! -192400 05 WS-4DCO-DRAP-ZOOM-RC PIC X(001). ! -192500* ! -192600 05 WS-4DCO-NBRE-PASSAGE PIC X(001). ! -192700* ! -192800 05 WS-4DCO-DERN-NO-RACP PIC 9(003). ! -192900* ! -193000 05 WS-4DCO-MT-PART PIC S9(15) COMP-3. ! -193100* MONTANT DU RACHAT PARTIEL ! -193200 05 WS-4DCO-MT-PART-R REDEFINES WS-4DCO-MT-PART ! -193300 PIC S9(13)V9(02) COMP-3. ! -193400* MONTANT DU CREDIT SOCIETAIRE AFFICHE ! -193500 05 WS-4DCO-MT-CRD-SOC-AFF PIC X(011). ! -193600* ! -193700 05 WS-4DCO-SOLD-TP-A-RC PIC S9(15) COMP-3. ! -193800* ! -193900 05 WS-4DCO-SOLD-TP-A-RC-R REDEFINES WS-4DCO-SOLD-TP-A-RC ! -194000 PIC S9(13)V9(02) COMP-3. ! -194100 05 FILLER PIC X(015). ! -194200* ZONES DISPONIBLES ! -194300 05 WS-4DCO-LIB-DECLA-RC PIC X(045). ! -194400* ! -194500 05 WS-4DCO-LIB-IDT-CTR-RC PIC X(016). ! -194600* LIBELLE APPARESSANT DEVANT L'IDENTIFIANT CONTRAT ! -194700 05 WS-4DCO-NO-IDT-CTR-RC PIC X(015). ! -194800* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT ! -194900 05 WS-4DCO-AGT-GTN-RC PIC X(008). ! -195000* NO. D'AGENT GESTIONNAIRE DU CONTRAT ! -195100 05 FILLER PIC X(055). ! -195200* ZONES DISPONIBLES ! -195300 05 WS-4DCO-LIB-EXO-RC PIC X(0045). ! -195400* COMPLEMENT DE ZONES RACHAT ASSURANCE ! -195500 05 WS-4DCO-EXO-RC PIC X(001). ! -195600* ! -195700 05 WS-4DCO-DRAP-RC PIC X(001). ! -195800* ! -195900 05 WS-4DCO-INT-BRT-RC PIC S9(15) COMP-3. ! -196000* ! -196100 05 WS-4DCO-INT-BRT-RC-R REDEFINES WS-4DCO-INT-BRT-RC ! -196200 PIC S9(13)V9(02) COMP-3. ! -196300* ! -196400 05 WS-4DCO-MT-PRIM-RC PIC S9(15) COMP-3. ! -196500* ! -196600 05 WS-4DCO-INT-PRIM-RC PIC S9(15) COMP-3. ! -196700* ! -196800 05 WS-4DCO-PREL-TOT-RC PIC S9(15) COMP-3. ! -196900* TOTAL PRELEVEMENTS : PREL + SOC + VIE ! -197000 05 WS-4DCO-PREL-TOT-RC-R REDEFINES WS-4DCO-PREL-TOT-RC ! -197100 PIC S9(13)V9(02) COMP-3. ! -197200* ! -197300 05 WS-4DCO-TX-PREL PIC S9(02)V9(03). ! -197400* ! -197500 05 WS-4DCO-MT-PV-RC PIC S9(15) COMP-3. ! -197600* ! -197700 05 WS-4DCO-MT-PV-RC-R REDEFINES WS-4DCO-MT-PV-RC ! -197800 PIC S9(13)V9(02) COMP-3. ! -197900* ! -198000 05 WS-4DCO-MT-VA-RC PIC S9(15) COMP-3. ! -198100* ! -198200 05 WS-4DCO-MT-VA-RC-R REDEFINES WS-4DCO-MT-VA-RC ! -198300 PIC S9(13)V9(02) COMP-3. ! -198400* ! -198500 05 WS-4DCO-INDIC-ART10 PIC X(001). ! -198600* ! -198700 05 WS-4DCO-ETAT-BEN PIC X(001). ! -198800* ! -198900 05 WS-4DCO-NO-ITEM-BENEF PIC S9(02). ! -199000* ! -199100 05 FILLER PIC X(002). ! -199200* ! -199300 05 WS-4DCO-CUMUL-QP-B PIC S9(03)V9(02). ! -199400* ! -199500 05 WS-4DCO-INT-A-RC PIC S9(15) COMP-3. ! -199600* ! -199700 05 WS-4DCO-INT-A-1-RC PIC S9(15) COMP-3. ! -199800* ! -199900 05 WS-4DCO-TOT-QP-REMB PIC S9(05). ! -200000* ! -200100 05 WS-4DCO-TOT-QP-REMB-D REDEFINES WS-4DCO-TOT-QP-REMB ! -200200 PIC S9(03)V9(02). ! -200300* ! -200400 05 WS-4DCO-TOT-MT-REMB PIC S9(13) COMP-3. ! -200500* ! -200600 05 WS-4DCO-NBRE-ART10 PIC S9(02). ! -200700* ! -200800 05 WS-4DCO-QP-EPG-CAP PIC S9(03)V9(02). ! -200900* ! -201000 05 WS-4DCO-NBR-MAX-ITEM PIC 9(02). ! -201100* ! -201200 05 WS-4DCO-CD-PREM-BEN PIC X(001). ! -201300* ! -201400 05 WS-4DCO-NBR-ITEM-01 PIC 9(02). ! -201500* ! -201600 05 WS-4DCO-NBR-ECR-VIERGE PIC S9(02). ! -201700* ! -201800 05 WS-4DCO-INDIC-PF5 PIC X(001). ! -201900* ! -202000 05 WS-4DCO-BEN-AFF PIC X(001). ! -202100* ! -202200 05 WS-4DCO-NO-BEN-TS PIC 9(02). ! -202300* ! -202400 05 WS-4DCO-NBR-BEN-TS PIC S9(02). ! -202500* ! -202600 05 WS-4DCO-IND-FISC PIC X(001). ! -202700* ! -202800 05 FILLER PIC X(016). ! -202900* ZONES DISPONIBLES ! -203000 05 WS-4DCO-SAVE-MAX-ITEM PIC 9(02). ! -203100* NOMBRE DE PAGES MAXI ! -203200 05 WS-4DCO-NBR-PAGE-RC PIC 9(02). ! -203300* NO PAGE COURANTE ! -203400 05 WS-4DCO-NO-PAGE-RC PIC 9(02). ! -203500* MONTANT DE LA CSG ! -203600 05 WS-4DCO-PREL-CSG-RC PIC S9(15) COMP-3. ! -203700* ! -203800 05 WS-4DCO-PR-CSG-RC-R REDEFINES WS-4DCO-PREL-CSG-RC ! -203900 PIC S9(13)V9(02) COMP-3. ! -204000* ! -204100* MONTANT Disponible rachat partiel ! -204200 05 WS-4DCO-MAX-DISPO-RC PIC S9(15) COMP-3. ! -204300* ! -204400 05 WS-4DCO-MAX-DISPO-RC-X REDEFINES WS-4DCO-MAX-DISPO-RC ! -204500 PIC S9(13)V9(02) COMP-3. ! -204600* ! -204700 05 FILLER PIC X(038). ! -204800* ZONES DISPONIBLES ! -204900 05 WS-4DCO-PREL-DPT-RC PIC S9(15) COMP-3. ! -205000* MONTANT CONTRIBUTION DEPARTEMENTALE ! -205100 05 WS-4DCO-PR-DPT-RC-R REDEFINES WS-4DCO-PREL-DPT-RC ! -205200 PIC S9(13)V9(02) COMP-3. ! -205300* ! -205400* DATE PROCHAIN RACHAT ! -205500 05 WS-4DCO-DA-NXT-RPP. ! -205600 10 WS-4DCO-DA-NXT-RPP-A PIC X(04). ! -205700 10 WS-4DCO-DA-NXT-RPP-M PIC X(02). ! -205800 10 WS-4DCO-DA-NXT-RPP-J PIC X(02). ! -205900* ! -206000* DATE DERNIER RACHAT ! -206100 05 WS-4DCO-DA-DNR-RPP. ! -206200 10 WS-4DCO-DA-DNR-RPP-A PIC X(04). ! -206300 10 WS-4DCO-DA-DNR-RPP-M PIC X(02). ! -206400 10 WS-4DCO-DA-DNR-RPP-J PIC X(02). ! -206500* ! -206600 05 WS-4DCO-TX-AJU-A-RPP PIC 9(07) COMP-3. ! -206700* ! -206800 05 WS-4DCO-DA-DNR-MAJ-02 PIC X(8). ! -206900 05 WS-4DCO-HEU-MN-SS-MAJ-02 PIC X(6). ! -207000* ! -207100 05 WS-4DCO-IDC-RACHAT-PEP PIC X(1). ! -207200 05 WS-4DCO-MOT-RACHAT-PEP PIC X(1). ! -207300 05 WS-4DCO-RC-IDC-DEBL-ATP PIC X(1). ! -207400* INDICATEUR DEBLOCAGE ANTICIPE ! -207500 05 WS-4DCO-RC-DA-DEBL-ATP. ! -207600* DATE DEBLOCAGE ANTICIPE ! -207700 10 WS-4DCO-RC-DA-DEBL-ATP-A PIC X(4). ! -207800* DATE DEBLOCAGE ANTICIPE ANNEE ! -207900 10 WS-4DCO-RC-DA-DEBL-ATP-M PIC X(2). ! -208000* DATE DEBLOCAGE ANTICIPE MOIS ! -208100 10 WS-4DCO-RC-DA-DEBL-ATP-J PIC X(2). ! -208200* DATE DEBLOCAGE ANTICIPE JOUR ! -208300 05 WS-4DCO-RC-IDC-DEBL-RCH PIC X(1). ! -208400* INDICATEUR DEBLOCAGE RACHAT ! -208500 05 WS-4DCO-RC-DA-DEBL-RCH. ! -208600* DATE DEBLOCAGE RACHAT ! -208700 10 WS-4DCO-RC-DA-DEBL-RCH-A PIC 9(4). ! -208800* DATE DEBLOCAGE RACHAT ANNEE ! -208900 10 WS-4DCO-RC-DA-DEBL-RCH-M PIC 9(2). ! -209000* DATE DEBLOCAGE RACHAT MOIS ! -209100 10 WS-4DCO-RC-DA-DEBL-RCH-J PIC 9(2). ! -209200* DATE DEBLOCAGE RACHAT JOUR ! -209300 05 WS-4DCO-EXO-RC-REF PIC X(1). ! -209400* INDICATEUR DE confirmation du code exo. '9' ! -209500 05 WS-4DCO-TX-PRL-SOC PIC S99V999 COMP-3. ! -209600* taux pr�l�vement social ! -209700 05 WS-4DCO-TX-PRL-VIE PIC S99V999 COMP-3. ! -209800* taux pr�l�vement vieillesse ! -209900 05 WS-4DCO-IDC-EPG-HCP PIC X. ! -210000* Indicateur �pargne handicap ! -210100 05 WS-4DCO-CTR-DMP PIC X(003). ! -210200* duree moyenne ponderee ! -210300* ! -210400* montant credit d impot ! -210500 05 WS-4DCO-MT-CRD-IMP PIC S9(15) COMP-3. ! -210600 05 WS-4DCO-MT-CRD-IMP-R REDEFINES WS-4DCO-MT-CRD-IMP ! -210700 PIC S9(13)V99 COMP-3. ! -210800 05 WS-4DCO-AGE-RC PIC 999. ! -210900 05 WS-4DCO-PRM-RCT-PAR PIC X. ! -211000* ! -211100 05 WS-4DCO-MT-PV-F8 PIC S9(15) COMP-3. ! -211200* ! -211300 05 WS-4DCO-MT-PV-F8-R REDEFINES WS-4DCO-MT-PV-F8 ! -211400 PIC S9(13)V9(02) COMP-3. ! -211500 05 WS-4DCO-PREL-LIB-F8 PIC S9(15) COMP-3. ! -211600* ! -211700 05 WS-4DCO-PR-LIB-F8-R REDEFINES WS-4DCO-PREL-LIB-F8 ! -211800 PIC S9(13)V9(02) COMP-3. ! -211900 05 WS-4DCO-MT-PV-FI01-R PIC S9(15) COMP-3. ! -212000* ! -212100 05 WS-4DCO-MT-PV-FI01 REDEFINES WS-4DCO-MT-PV-FI01-R ! -212200 PIC S9(13)V9(02) COMP-3. ! -212300 05 WS-4DCO-MT-PV-FI02-R PIC S9(15) COMP-3. ! -212400* ! -212500 05 WS-4DCO-MT-PV-FI02 REDEFINES WS-4DCO-MT-PV-FI02-R ! -212600 PIC S9(13)V9(02) COMP-3. ! -212700 05 WS-4DCO-TY-CPT-PER PIC X(1). ! -212800* indicateur pr�cisant le type de contrat PER ! -212900* mixte = type 1,2,3,5 ! -213000* assurance = type 4,6 ! -213100 05 WS-4DCO-RC-DA-BSC-EF PIC X(08). ! -213200* DATE EFFET DERNIER BASCULEMENT ! -213300 05 WS-4DCO-RC-DA-ECN-PROR PIC X(08). ! -213400* DATE ECHEANCE PROROGATION ! -213500 05 WS-4DCO-CREAT-RPP PIC X(1). ! -213600* indicateur pour savoir si on est en cr�ation de RPP ! -213700* prend la valeur 'c' qd on est en mise en place de rpp ! -213800 05 WS-4DCO-SLD-TPS-REAL PIC S9(15) COMP-3. ! -213900* Montant reserv� pour appel y4g140 ! -214000 05 WS-4DCO-DMP-AAMM PIC X(4). ! -214100* dmp sous forme AAMM ! -214200 05 WS-4DCO-RC-TY-RCH PIC X(01). ! -214300* type de rachat (normal,conversion de rente,terme) ! -214400 05 WS-4DCO-RC-lib-TY-RCH PIC X(32). ! -214500* type de rachat (normal,conversion de rente,terme) ! -214600 05 WS-4DCO-PREL-CTB-RC PIC S9(15) COMP-3. ! -214700 05 WS-4DCO-PR-CTB-RC-R REDEFINES WS-4DCO-PREL-CTB-RC ! -214800 PIC S9(13)V9(02) COMP-3. ! -214900 05 WS-4DCO-RC-IDC-EDI-CM PIC X(01). ! -215000* indicateur edition cheque ccm ! -215100 05 WS-4DCO-RC-CD-PER-VER-PER PIC X(01). ! -215200* indicateur code p�riodicit� vp ! -215300* ! -215400 05 WS-4DCO-RC-DA-NXT-VER-PER. ! -215500* DATE PROCHAIN V.P. ! -215600 15 WS-4DCO-RC-DA-NXT-VER-PER-A PIC X(004). ! -215700* SIECLE ANNEE DATE PROCHAIN V.P. ! -215800 15 WS-4DCO-RC-DA-NXT-VER-PER-M PIC X(002). ! -215900* MOIS DATE PROCHAIN V.P. ! -216000 15 WS-4DCO-RC-DA-NXT-VER-PER-J PIC X(002). ! -216100* JOUR DATE PROCHAIN V.P. ! -216200 05 WS-4DCO-RC-CD-TY-TRT PIC X(1). ! -216300* CODE TYPE DE TRAITEMENT (P4DGQ0) ! -216400* 'V' : 'VERSEMENT A ECHEANCE ! -216500* 'D' : 'DEMANDE DE VERSEMENT A ECHEANCE' ! -216600* 'R' : 'RACHAT TOTAL' ! -216700*--AJOUT INFOS FISCALITE ! -216800 05 WS-4DCO-RC-FISC. ! -216900 15 WS-4DCO-RC-IDC-ETG-CNF PIC X. ! -217000 15 WS-4DCO-RC-CD-OSCE-PAYS PIC X(003). ! -217100 15 WS-4DCO-RC-LIB-PAYS PIC X(20). ! -217200 15 WS-4DCO-RC-CD-CNV PIC X. ! -217300 15 WS-4DCO-RC-TX-PLV-FIS PIC S9(4)V9(3). ! -217400*--FIN AJOUT INFOS FISCALITE ! -217500 05 FILLER PIC X(913). ! -217600* ! -217700* ZONES DISPONIBLES ! -217800* ------------------------------------------------------ * ! -217900 ! -218000*================================================================ ! -218100*= APPLICATION : PARAMETRAGE = ! -218200*================================================================ ! -218300* ! -218400 03 WS-4DCO-4DYA-PRM-OPT REDEFINES WS-4DCO-PROGRAM. ! -218500* ============ ! -218600 ! -218700* ============== ! -218800* ------------------------------------------------------ * ! -218900* COMMAREA : PARAMETRAGE : GESTION DES OPTIONS -* ! -219000* LONGUEUR : 1800 * ! -219100* PREFIXE : WS-4DCO-4DYA * ! -219200* ------------------------------------------------------ * ! -219300* ! -219400 05 WS-4DCO-4DYA-CD-TY-OPT PIC X(3). ! -219500 05 WS-4DCO-4DYA-NO-TY-PRD PIC X(2). ! -219600 05 WS-4DCO-4DYA-CD-PRD PIC X(2). ! -219700 05 WS-4DCO-4DYA-NO-GEN PIC X(3). ! -219800 05 WS-4DCO-4DYA-NO-PRD-PTN PIC X(3). ! -219900 05 WS-4DCO-4DYA-LIB-TY-PRD PIC X(32). ! -220000 05 WS-4DCO-4DYA-NO-TRF PIC 9(9). ! -220100* ! -220200 05 WS-4DCO-4DYA-CREAT. ! -220300 10 WS-4DCO-4DYA-NO-OPT PIC S9(9). ! -220400 10 WS-4DCO-4DYA-DA-DEB PIC X(8). ! -220500 10 WS-4DCO-4DYA-DA-FIN PIC X(8). ! -220600 10 WS-4DCO-4DYA-DEROG PIC X(1). ! -220700* sauve parametres de la liste recue ! -220800 05 WS-4DCO-4DYA-NB-PAG-TS PIC 9(02). ! -220900 05 WS-4DCO-4DYA-NB-OCC-TS PIC S9(4) COMP. ! -221000* sauve numeros items pour lesquels une action est demandee ! -221100 05 WS-4DCO-4DYA-SAUV-ACTION. ! -221200 10 WS-4DCO-4DYA-SAUV-ITEM PIC 9(2) OCCURS 12. ! -221300* indicateur mode de traitement : ! -221400* c=creation, d=consultation, a=annulation, m=modification ! -221500 05 WS-4DCO-4DYA-IDC-MOD-TRT PIC X(01). ! -221600 88 WS-4DCO-4DYA-CRE VALUE 'C'. ! -221700 88 WS-4DCO-4DYA-DET VALUE 'D'. ! -221800 88 WS-4DCO-4DYA-ANN VALUE 'A'. ! -221900 88 WS-4DCO-4DYA-MOD VALUE 'M'. ! -222000* code type option de cr�ation ! -222100 05 WS-4DCO-4DYA-CD-TY-OPT-C PIC X(3). ! -222200* code type option de liste ! -222300 05 WS-4DCO-4DYA-CD-TY-OPT-L PIC X(3). ! -222400* numero de partenaire ! -222500 05 WS-4DCO-4DYA-NO-PTN PIC 9(3). ! -222600* gestion du mode : param�trage des options ou des frais ! -222700 05 WS-4DCO-4DYA-FRS-OPT PIC X(01). ! -222800 88 WS-4DCO-4DYA-FRS VALUE 'F'. ! -222900 88 WS-4DCO-4DYA-OPT VALUE 'O'. ! -223000* ! -223100 05 FILLER PIC X(1679). ! -223200* ! -223300* ! -223400 03 WS-4DCO-4DYF-PRM-TRF REDEFINES WS-4DCO-PROGRAM. ! -223500* ============ ! -223600 ! -223700* ============== ! -223800* ------------------------------------------------------ * ! -223900* COMMAREA : PARAMETRAGE : GESTION DES TARIFS -* ! -224000* LONGUEUR : 1800 * ! -224100* PREFIXE : WS-4DCO-4DYF * ! -224200* ------------------------------------------------------ * ! -224300* ! -224400* code type tarif ! -224500 05 WS-4DCO-4DYF-CD-TY-TRF PIC X(2). ! -224600* num�ro de tarif ! -224700 05 WS-4DCO-4DYF-NO-TRF PIC 9(9). ! -224800* indicateur mode de traitement : ! -224900* c=creation, d=consultation, a=annulation, m=modification ! -225000 05 WS-4DCO-4DYF-IDC-MOD-TRT PIC X(01). ! -225100 88 WS-4DCO-4DYF-CRE VALUE 'C'. ! -225200 88 WS-4DCO-4DYF-DET VALUE 'D'. ! -225300 88 WS-4DCO-4DYF-ANN VALUE 'A'. ! -225400 88 WS-4DCO-4DYF-MOD VALUE 'M'. ! -225500* code type tarif de cr�ation ! -225600 05 WS-4DCO-4DYF-CD-TY-TRF-C PIC X(2). ! -225700* code type tarif de liste ! -225800 05 WS-4DCO-4DYF-CD-TY-TRF-L PIC X(2). ! -225900* ! -226000 05 FILLER PIC X(1784). ! -226100* ! -226200* ! -226300 03 WS-4DCO-4DYU-PRM-GAR REDEFINES WS-4DCO-PROGRAM. ! -226400* ============ ! -226500 ! -226600* ============== ! -226700* ------------------------------------------------------ * ! -226800* COMMAREA : PARAMETRAGE : GESTION DES GARANTIES -* ! -226900* LONGUEUR : 1800 * ! -227000* PREFIXE : WS-4DCO-4DYU * ! -227100* ------------------------------------------------------ * ! -227200* ! -227300 05 WS-4DCO-4DYU-CD-TY-GAR PIC X(3). ! -227400 05 WS-4DCO-4DYU-IDT-GAR PIC X(8). ! -227500 05 WS-4DCO-4DYU-NO-TY-PRD PIC X(2). ! -227600 05 WS-4DCO-4DYU-CD-PRD PIC X(2). ! -227700 05 WS-4DCO-4DYU-NO-GEN PIC X(3). ! -227800 05 WS-4DCO-4DYU-NO-PRD-PTN PIC X(3). ! -227900 05 WS-4DCO-4DYU-LIB-TY-PRD PIC X(32). ! -228000 05 WS-4DCO-4DYU-NO-TRF PIC 9(9). ! -228100* ! -228200 05 WS-4DCO-4DYU-CREAT. ! -228300 10 WS-4DCO-4DYU-NO-OPT PIC S9(9). ! -228400 10 WS-4DCO-4DYU-DA-DEB PIC X(8). ! -228500 10 WS-4DCO-4DYU-DA-FIN PIC X(8). ! -228600 10 WS-4DCO-4DYU-DEROG PIC X(1). ! -228700* sauve parametres de la liste recue ! -228800 05 WS-4DCO-4DYU-NB-PAG-TS PIC 9(02). ! -228900 05 WS-4DCO-4DYU-NB-OCC-TS PIC S9(4) COMP. ! -229000* sauve numeros items pour lesquels une action est demandee ! -229100 05 WS-4DCO-4DYU-SAUV-ACTION. ! -229200 10 WS-4DCO-4DYU-SAUV-ITEM PIC 9(2) OCCURS 12. ! -229300* indicateur mode de traitement : ! -229400* c=creation, d=consultation, a=annulation, m=modification ! -229500 05 WS-4DCO-4DYU-IDC-MOD-TRT PIC X(01). ! -229600 88 WS-4DCO-4DYU-CRE VALUE 'C'. ! -229700 88 WS-4DCO-4DYU-DET VALUE 'D'. ! -229800 88 WS-4DCO-4DYU-ANN VALUE 'A'. ! -229900 88 WS-4DCO-4DYU-MOD VALUE 'M'. ! -230000* code type option de cr�ation ! -230100 05 WS-4DCO-4DYU-CD-TY-GAR-C PIC X(3). ! -230200* code type option de liste ! -230300 05 WS-4DCO-4DYU-CD-TY-GAR-L PIC X(3). ! -230400* numero de partenaire ! -230500 05 WS-4DCO-4DYU-NO-PTN PIC 9(3). ! -230600* ! -230700 05 FILLER PIC X(1674). ! -230800* ! -230900* ! -231000*================================================================ ! -231100*= APPLICATION : prime etat (certificat non imposition) = ! -231200*================================================================ ! -231300* ! -231400 03 WS-4DCO-4DPS-PRM-ETAT REDEFINES WS-4DCO-PROGRAM. ! -231500* ============ ! -231600 ! -231700* ============== ! -231800* ------------------------------------------------------ * ! -231900* COMMAREA : PARAMETRAGE : GESTION DE LA PRIME ETAT -* ! -232000* LONGUEUR : 1800 * ! -232100* PREFIXE : WS-4DCO-4DPS * ! -232200* ------------------------------------------------------ * ! -232300* ! -232400* ZONES COMMUNES ! -232500* ! -232600 05 WS-4DCO-4DPS. ! -232700* ! -232800* ZONE DE PAGINATION ! -232900 15 WS-4DCO-4DPS-PAGE. ! -233000 20 WS-4DCO-4DPS-IDC-OCC-SPL PIC X(001). ! -233100 20 WS-4DCO-4DPS-NB-PAG-TS PIC 9(002). ! -233200 20 WS-4DCO-4DPS-SAUV-PAGE-AREA PIC X(198). ! -233300* ! -233400* ACTION SAUVEGARDEE ! -233500 15 WS-4DCO-4DPS-SAUV-ACT PIC X. ! -233600* ! -233700* CODE MESSAGE ERREUR ! -233800 15 WS-4DCO-4DPS-ERRMSG1 PIC X(006). ! -233900* ! -234000* NOMBRE D'OCCURENCES DE LA LISTE ! -234100 15 WS-4DCO-4DPS-NB-TS-ITEM PIC S9(04) COMP. ! -234200* ! -234300* POSITION DU CURSEUR DU 1ER DETAIL DEMANDE ! -234400 15 WS-4DCO-4DPS-POS-CURSOR PIC 9(002). ! -234500* NB DE DETAILS TRAITES ! -234600 15 WS-4DCO-4DPS-SAUV-ACT-TRT PIC S9(4) COMP. ! -234700* NB DE DETAILS DEMANDES ! -234800 15 WS-4DCO-4DPS-SAUV-ACT-NB PIC S9(4) COMP. ! -234900 15 WS-4DCO-4DPS-DA-OUV. ! -235000* DATE OUVERTURE CONTRAT ! -235100 20 WS-4DCO-4DPS-DA-OUV-A PIC 9(4). ! -235200 20 WS-4DCO-4DPS-DA-OUV-M PIC 9(2). ! -235300 20 WS-4DCO-4DPS-DA-OUV-J PIC 9(2). ! -235400 15 WS-4DCO-4DPS-DA-DEM. ! -235500* DATE DU JOUR ! -235600 20 WS-4DCO-4DPS-DA-DEM-A PIC 9(4). ! -235700 20 WS-4DCO-4DPS-DA-DEM-M PIC 9(2). ! -235800 20 WS-4DCO-4DPS-DA-DEM-J PIC 9(2). ! -235900 15 WS-4DCO-4DPS-CD-MTF-DEM PIC X(30). ! -236000 15 WS-4DCO-4DPS-CD-MTF PIC 9(02). ! -236100 15 WS-4DCO-4DPS-TY-TRF PIC X(2). ! -236200 15 WS-4DCO-4DPS-MT-PRIM-PEP PIC S9(13)V99 COMP-3. ! -236300 15 WS-4DCO-4DPS-MT-ITT-PRIM PIC S9(13)V99 COMP-3. ! -236400 15 WS-4DCO-4DPS-MT-PRIM-PLUS PIC S9(13)V99 COMP-3. ! -236500 15 WS-4DCO-4DPS-MT-PRIM-SANS PIC S9(13)V99 COMP-3. ! -236600 15 WS-4DCO-4DPS-MT-CRDS PIC S9(09)V99 COMP-3. ! -236700 15 WS-4DCO-4DPS-NB-EXE-CCN PIC 9(02). ! -236800 15 WS-4DCO-4DPS-AN-MAX PIC 9(02). ! -236900 15 WS-4DCO-4DPS-CD-ANOM PIC X(01). ! -237000 15 WS-4DCO-4DPS-MES-ANOM PIC X(32). ! -237100 15 WS-4DCO-4DPS-TAB. ! -237200 20 WS-4DCO-4DPS-POSTE OCCURS 10. ! -237300 22 WS-4DCO-4DPS-IND-LG PIC X(001). ! -237400* indicateur de ligne siginificative ! -237500 22 WS-4DCO-4DPS-CDIMT PIC X(001). ! -237600* indic. etat demande prime ecran ! -237700 22 WS-4DCO-4DPS-CDIMT-PREC PIC X(001). ! -237800* indic. etat demande prime precedent ! -237900 22 WS-4DCO-4DPS-A-ACQ-PRIM PIC X(004). ! -238000 22 WS-4DCO-4DPS-MT-GLB-PRIM ! -238100 PIC S9(13)V99 COMP-3. ! -238200 22 WS-4DCO-4DPS-MT-GLB-ITT-PRIM ! -238300 PIC S9(13)V99 COMP-3. ! -238400 22 WS-4DCO-4DPS-MT-ASST-CRDS ! -238500 PIC S9(13)V99 COMP-3. ! -238600 22 WS-4DCO-4DPS-MT-ASST-CSG ! -238700 PIC S9(13)V99 COMP-3. ! -238800 22 WS-4DCO-4DPS-MT-ASST-SOC ! -238900 PIC S9(13)V99 COMP-3. ! -239000 22 WS-4DCO-4DPS-DT-DEM. ! -239100* DATE DE DEMANDE ! -239200 25 WS-4DCO-4DPS-DT-DEM-A PIC 9(4). ! -239300 25 WS-4DCO-4DPS-DT-DEM-M PIC 9(2). ! -239400 25 WS-4DCO-4DPS-DT-DEM-J PIC 9(2). ! -239500 15 WS-4DCO-4DPS-TX-CRDS PIC S9(02)V999 COMP-3. ! -239600 15 WS-4DCO-4DPS-TX-CSG PIC S9(02)V999 COMP-3. ! -239700 15 WS-4DCO-4DPS-TX-PLV-SOC PIC S9(02)V999 COMP-3. ! -239800* taux crds et csg et ps ! -239900 15 WS-4DCO-4DPS-TOT-ASST-CRDS PIC S9(13)V99 COMP-3. ! -240000 15 WS-4DCO-4DPS-TOT-ASST-CSG PIC S9(13)V99 COMP-3. ! -240100 15 WS-4DCO-4DPS-TOT-ASST-SOC PIC S9(13)V99 COMP-3. ! -240200* cumul assiettes sur une annee ! -240300 15 WS-4DCO-4DPS-MT-VER-RDS PIC S9(13)V99 COMP-3. ! -240400 15 WS-4DCO-4DPS-MT-CSG PIC S9(13)V99 COMP-3. ! -240500 15 WS-4DCO-4DPS-MT-PLV-SOC PIC S9(13)V99 COMP-3. ! -240600* montants crds et csg et ps ! -240700 15 WS-4DCO-4DPU-LIBOPE PIC X(42). ! -240800 15 WS-4DCO-4DPU-LIBTOT PIC X(20). ! -240900 15 WS-4DCO-4DPU-TOT-GEN PIC S9(13)V99 COMP-3. ! -241000* ! -241100 15 WS-4DCO-4DPS-DA-ORIG. ! -241200* DATE OUVERTURE CONTRAT BQUE ORIGINE ! -241300 20 WS-4DCO-4DPS-DA-ORI-A PIC 9(4). ! -241400 20 WS-4DCO-4DPS-DA-ORI-M PIC 9(2). ! -241500 20 WS-4DCO-4DPS-DA-ORI-J PIC 9(2). ! -241600 05 FILLER PIC X(0774). ! -241700* ! -241800************************************ NOMBRE PRIS 216 ! -241900************************************ NOMBRE DISPONIBLE 1584 ! -242000 ! -242100 03 WS-4DCO-OPTION-VETRF REDEFINES WS-4DCO-PROGRAM. ! -242200* ==================== ! -242300* ------------------------------------------------------ * ! -242400* COMMAREA : TRANSFERT PER => PEP * ! -242500* LONGUEUR : 1800 * ! -242600* PREFIXE : WS-4DCO- * ! -242700* ------------------------------------------------------ * ! -242800 ! -242900 05 WS-4DCO-DSPEPT. ! -243000* DATE SOUSCRIPTION PEP ! -243100 10 WS-4DCO-DSPEPTSA. ! -243200* SIECLE ANNEE DATE SOUSCRIPTION PEP ! -243300 15 WS-4DCO-DSPEPTS PIC X(002). ! -243400* SIECLE DATE SOUSCRIPTION PEP ! -243500 15 WS-4DCO-DSPEPTA PIC X(002). ! -243600* ANNEE DATE SOUSCRIPTION PEP ! -243700 10 WS-4DCO-DSPEPTM PIC X(002). ! -243800* MOIS DATE SOUSCRIPTION PEP ! -243900 10 WS-4DCO-DSPEPTJ PIC X(002). ! -244000* JOUR DATE SOUSCRIPTION PEP ! -244100 05 WS-4DCO-DSPERT. ! -244200* DATE SOUSCRIPTION PER ! -244300 10 WS-4DCO-DSPERTSA. ! -244400* SIECLE ANNEE DATE SOUSCRIPTION PER ! -244500 15 WS-4DCO-DSPERTS PIC X(002). ! -244600* SIECLE DATE SOUSCRIPTION PER ! -244700 15 WS-4DCO-DSPERTA PIC X(002). ! -244800* ANNEE DATE SOUSCRIPTION PER ! -244900 10 WS-4DCO-DSPERTM PIC X(002). ! -245000* MOIS DATE SOUSCRIPTION PER ! -245100 10 WS-4DCO-DSPERTJ PIC X(002). ! -245200* JOUR DATE SOUSCRIPTION PER ! -245300 05 WS-4DCO-NOMT PIC X(032). ! -245400* NOM ! -245500 05 WS-4DCO-CPT-PER. ! -245600* NO CPTE PER ! -245700 10 WS-4DCO-CCMPERT PIC X(004). ! -245800* CAISSE NO CPTE PER ! -245900 10 WS-4DCO-RACPERT PIC X(007). ! -246000* RACINE NO CPTE PER ! -246100 10 WS-4DCO-CLEPERT PIC X(001). ! -246200* CLE NO CPTE PER ! -246300 10 WS-4DCO-CATPERT PIC X(002). ! -246400* CATEGORIE NO CPTE PER ! -246500 10 WS-4DCO-RNGPERT PIC X(002). ! -246600* RANG NO CPTE PER ! -246700 05 WS-4DCO-CPT-PEP. ! -246800* NO CPTE PEP ! -246900 10 WS-4DCO-CCMPEPT PIC X(004). ! -247000* CAISSE NO CPTE PEP ! -247100 10 WS-4DCO-RACPEPT PIC X(007). ! -247200* RACINE NO CPTE PEP ! -247300 10 WS-4DCO-CLEPEPT PIC X(001). ! -247400* CLE NO CPTE PEP ! -247500 10 WS-4DCO-CATPEPT PIC X(002). ! -247600* CATEGORIE NO CPTE PEP ! -247700 10 WS-4DCO-RNGPEPT PIC X(002). ! -247800* RANG NO CPTE PEP ! -247900 05 WS-4DCO-SOLDPEPT PIC S9(13)V9(02). ! -248000* SOLDE TP COMPTE PEP ! -248100 05 WS-4DCO-SOLDPEPT-C REDEFINES WS-4DCO-SOLDPEPT ! -248200 PIC S9(15). ! -248300* SOLDE TP COMPTE PEP ! -248400 05 WS-4DCO-BQEPERT PIC X(005). ! -248500* BANQUE COMPTE PER ! -248600 05 FILLER PIC X(1700). ! -248700* ZONES DISPONIBLES ! -248800* ------------------------------------------------------ * ! -248900 ! -249000 03 WS-4DCO-TRANS-SORTIE REDEFINES WS-4DCO-PROGRAM. ! -249100* ==================== ! -249200* ------------------------------------------------------ * ! -249300* COMMAREA : TRANSFERT EN SORTIE * ! -249400* LONGUEUR : 1800 * ! -249500* PREFIXE : WS-4DCO-TFS * ! -249600* ------------------------------------------------------ * ! -249700 ! -249800 05 WS-4DCO-TFS-INFOS-AUTRE-ETBL. ! -249900* ZONES ECRAN "INFO. AUTRE ETABLISSEMENT" ! -250000 10 WS-4DCO-TFS-CD-DEST-TRF PIC X(001). ! -250100* CODE DESTINATAIRE DU TRANSFERT ! -250200 10 WS-4DCO-TFS-CPT-DEST. ! -250300* RIB CPTE DESTINATAIRE ! -250400 15 WS-4DCO-TFS-BNQ-DEST PIC X(005). ! -250500* BANQUE RIB CPTE DESTINATAIRE ! -250600 15 WS-4DCO-TFS-GCH-DEST PIC X(005). ! -250700* GUICHET RIB CPTE DESTINATAIRE ! -250800 15 WS-4DCO-TFS-RAC-DEST PIC X(011). ! -250900* RACINE RIB CPTE DESTINATAIRE ! -251000 15 WS-4DCO-TFS-CLE-DEST PIC X(002). ! -251100* CLE RIB CPTE DESTINATAIRE ! -251200 10 WS-4DCO-TFS-ETA-DEST PIC X(032). ! -251300* NOM DE L'ETABLISSEMENT DESTINATAIRE ! -251400 10 WS-4DCO-TFS-AGC-DEST PIC X(032). ! -251500* NOM DE L'AGENCE DESTINATAIRE ! -251600 10 WS-4DCO-TFS-ADR-DEST. ! -251700* ADRESSE ETABL. DESTINATAIRE ! -251800 15 WS-4DCO-TFS-RUE-DEST PIC X(032). ! -251900* RUE / ADRESSE ETABL. DESTINATAIRE ! -252000 15 WS-4DCO-TFS-CDP-DEST PIC X(005). ! -252100* CODE POSTAL / ADRESSE ETABL. DESTINATAIRE ! -252200 15 WS-4DCO-TFS-BRD-DEST PIC X(026). ! -252300* COMMUNE / ADRESSE ETABL. DESTINATAIRE ! -252400 10 WS-4DCO-TFS-NB-PASSAGES PIC 9(01). ! -252500* NOMBRE DE PASSAGES ! -252600 10 WS-4DCO-TFS-NO-CTR PIC X(006). ! -252700* NUMERO DE CONTRAT ! -252800 10 WS-4DCO-4DHL-IDC-EPG-HCP PIC X(001). ! -252900* FLAG �pargne handicap ! -253000 10 WS-4DCO-TFS-DECHE. ! -253100* DATE ECHEANCE CONTRAT ! -253200 15 WS-4DCO-TFS-DECHESA. ! -253300* SIECLE ANNEE DATE ECHEANCE ! -253400 20 WS-4DCO-TFS-DECHES PIC X(002). ! -253500* SIECLE DATE ECHEANCE ! -253600 20 WS-4DCO-TFS-DECHEA PIC X(002). ! -253700* ANNEE DATE ECHEANCE ! -253800 15 WS-4DCO-TFS-DECHEM PIC X(002). ! -253900* MOIS DATE ECHEANCE ! -254000 15 WS-4DCO-TFS-DECHEJ PIC X(002). ! -254100* JOUR DATE ECHEANCE ! -254200 10 FILLER PIC X(033). ! -254300* ZONES DISPONIBLES ! -254400 05 WS-4DCO-TFS-SIMULATION. ! -254500* ZONES ECRAN "SIMULATION" ! -254600 10 WS-4DCO-TFS-OPE. ! -254700* DATE OPERATION ! -254800 15 WS-4DCO-TFS-OPESA. ! -254900* SIECLE ANNEE DATE OPERATION ! -255000 20 WS-4DCO-TFS-OPESS PIC X(002). ! -255100* SIECLE DATE OPERATION ! -255200 20 WS-4DCO-TFS-OPEAA PIC X(002). ! -255300* ANNEE DATE OPERATION ! -255400 15 WS-4DCO-TFS-OPEMM PIC X(002). ! -255500* MOIS DATE OPERATION ! -255600 15 WS-4DCO-TFS-OPEJJ PIC X(002). ! -255700* JOUR DATE OPERATION ! -255800 10 WS-4DCO-TFS-EFF. ! -255900* DATE EFFET ! -256000 15 WS-4DCO-TFS-EFFSA. ! -256100* SIECLE ANNEE DATE EFFET ! -256200 20 WS-4DCO-TFS-EFFSS PIC X(002). ! -256300* SIECLE DATE EFFET ! -256400 20 WS-4DCO-TFS-EFFAA PIC X(002). ! -256500* ANNEE DATE EFFET ! -256600 15 WS-4DCO-TFS-EFFMM PIC X(002). ! -256700* MOIS DATE EFFET ! -256800 15 WS-4DCO-TFS-EFFJJ PIC X(002). ! -256900* JOUR DATE EFFET ! -257000 10 WS-4DCO-TFS-MT-IK PIC S9(15) COMP-3. ! -257100* INTERETS CAPITALISES ! -257200 10 WS-4DCO-TFS-MT-IK-R REDEFINES WS-4DCO-TFS-MT-IK ! -257300 PIC S9(13)V9(02) COMP-3. ! -257400* INTERETS CAPITALISES ! -257500 10 WS-4DCO-TFS-PEN-IK PIC S9(15) COMP-3. ! -257600* PENALITES TRANSFERT SUR INT. CAPITALISES ! -257700 10 WS-4DCO-TFS-PEN-IK-R REDEFINES WS-4DCO-TFS-PEN-IK ! -257800 PIC S9(13)V9(02) COMP-3. ! -257900* PENALITES TRANSFERT SUR INT. CAPITALISES ! -258000 10 WS-4DCO-TFS-MT-GLO PIC S9(15) COMP-3. ! -258100* MONTANT GLOBAL DU TRANSFERT EN SORTIE ! -258200 10 WS-4DCO-TFS-MT-GLO-R REDEFINES WS-4DCO-TFS-MT-GLO ! -258300 PIC S9(13)V9(02) COMP-3. ! -258400* MONTANT GLOBAL DU TRANSFERT EN SORTIE ! -258500 10 WS-4DCO-TFS-CPT-CRE. ! -258600* RIB CPTE CREDITE ! -258700 15 WS-4DCO-TFS-BNQ-CRE PIC X(005). ! -258800* BANQUE RIB CPTE CREDITE ! -258900 15 WS-4DCO-TFS-GCH-CRE PIC X(005). ! -259000* GUICHET RIB CPTE CREDITE ! -259100 15 WS-4DCO-TFS-RAC-CRE PIC X(011). ! -259200* RACINE RIB CPTE CREDITE ! -259300 15 WS-4DCO-TFS-CLE-CRE PIC X(002). ! -259400* CLE RIB CPTE CREDITE ! -259500 10 WS-4DCO-TFS-PRIME OCCURS 10. ! -259600* MONTANT NET DES VERSEMENTS PAR ANNEE ! -259700 15 WS-4DCO-TFS-A-ACQ-PRM PIC X(004). ! -259800* ! -259900 15 WS-4DCO-TFS-TOT-VR-EX PIC S9(09) COMP-3. ! -260000* ! -260100 15 WS-4DCO-TFS-TOT-VR-EX-R REDEFINES ! -260200 WS-4DCO-TFS-TOT-VR-EX ! -260300 PIC S9(07)V9(02) COMP-3. ! -260400* ! -260500 10 WS-4DCO-TFS-DA-PAS-PAB. ! -260600* DATE PASSAGE PAB ! -260700 15 WS-4DCO-TFS-DA-PAS-PAB-SA. ! -260800* SIECLE ANNEE DATE PASSAGE PAB ! -260900 20 WS-4DCO-TFS-DA-PAS-PAB-SS PIC X(002). ! -261000* SIECLE DATE PASSAGE PAB ! -261100 20 WS-4DCO-TFS-DA-PAS-PAB-AA PIC X(002). ! -261200* ANNEE DATE PASSAGE PAB ! -261300 15 WS-4DCO-TFS-DA-PAS-PAB-MM PIC X(002). ! -261400* MOIS DATE PASSAGE PAB ! -261500 15 WS-4DCO-TFS-DA-PAS-PAB-JJ PIC X(002). ! -261600* JOUR DATE PASSAGE PAB ! -261700 10 WS-4DCO-TFS-DA-SCR. ! -261800* DATE SOUSCRIPTION ! -261900 15 WS-4DCO-TFS-DA-SCR-SA. ! -262000* SIECLE ANNEE DATE SOUSCRIPTION ! -262100 20 WS-4DCO-TFS-DA-SCR-SS PIC X(002). ! -262200* SIECLE DATE SOUSCRIPTION ! -262300 20 WS-4DCO-TFS-DA-SCR-AA PIC X(002). ! -262400* ANNEE DATE SOUSCRIPTION ! -262500 15 WS-4DCO-TFS-DA-SCR-MM PIC X(002). ! -262600* MOIS DATE SOUSCRIPTION ! -262700 15 WS-4DCO-TFS-DA-SCR-JJ PIC X(002). ! -262800* JOUR DATE SOUSCRIPTION ! -262900 10 WS-4DCO-TFS-DA-EFF-CTR. ! -263000* DATE EFFET CONTRAT ! -263100 15 FILLER PIC X(002). ! -263200* FILLER ! -263300 15 WS-4DCO-TFS-DA-EFF-CTR-A PIC X(002). ! -263400* ANNEE DATE EFFET CONTRAT ! -263500 15 FILLER PIC X(004). ! -263600* FILLER ! -263700 10 WS-4DCO-TFS-CD-PER-VER-PER PIC X(001). ! -263800* CODE PERIODICITE V.P. ! -263900 10 WS-4DCO-TFS-SLD-TPS-REAL PIC S9(15) COMP-3. ! -264000* SOLDE TEMPS REEL ! -264100 10 WS-4DCO-TFS-SLD-TPS-REAL-R ! -264200 REDEFINES ! -264300 WS-4DCO-TFS-SLD-TPS-REAL PIC S9(13)V9(02) COMP-3. ! -264400* ! -264500 10 WS-4DCO-TFS-DA-NXT-VER-PER. ! -264600* DATE PROCHAIN V.P. ! -264700 15 WS-4DCO-TFS-DA-NXT-VER-PER-A PIC X(004). ! -264800* SIECLE ANNEE DATE PROCHAIN V.P. ! -264900 15 WS-4DCO-TFS-DA-NXT-VER-PER-M PIC X(002). ! -265000* MOIS DATE PROCHAIN V.P. ! -265100 15 WS-4DCO-TFS-DA-NXT-VER-PER-J PIC X(002). ! -265200* JOUR DATE PROCHAIN V.P. ! -265300 10 WS-4DCO-TFS-MT-BRT-VER-CTR PIC S9(11) COMP-3. ! -265400* ! -265500 10 WS-4DCO-TFS-DA-ARR-CPB-1 PIC X(008). ! -265600* ! -265700 10 WS-4DCO-TFS-CD-DRG-DA-SCR PIC X(001). ! -265800* ! -265900 10 WS-4DCO-TFS-TX-MIN-GAR-S PIC S9(02)V9(03) COMP-3. ! -266000* ! -266100 10 WS-4DCO-TFS-TX-DNR-PAB-S PIC S9(03)V9(03) COMP-3. ! -266200* ! -266300 10 WS-4DCO-TFS-PRC-PAB-RCH-S PIC S9(03)V9(03) COMP-3. ! -266400* ! -266500 10 WS-4DCO-TFS-TX-MIN-GAR-A PIC S9(02)V9(03) COMP-3. ! -266600* ! -266700 10 WS-4DCO-TFS-TX-DNR-PAB-A PIC S9(03)V9(03) COMP-3. ! -266800* ! -266900 10 WS-4DCO-TFS-PRC-PAB-RCH-A PIC S9(03)V9(03) COMP-3. ! -267000* ! -267100 10 WS-4DCO-TFS-TX-MIN-GAR-A-1 PIC S9(02)V9(03) COMP-3. ! -267200* ! -267300 10 WS-4DCO-TFS-TX-DNR-PAB-A-1 PIC S9(03)V9(03) COMP-3. ! -267400* ! -267500 10 WS-4DCO-TFS-PRC-PAB-RCH-A-1 PIC S9(03)V9(03) COMP-3. ! -267600* ! -267700 10 WS-4DCO-TFS-TX-PNL-ITT-CP-I PIC S9(02)V9(03). ! -267800* ! -267900 10 WS-4DCO-TFS-TX-PNL-ITT-CU-I PIC S9(02)V9(03). ! -268000* ! -268100 10 WS-4DCO-TFS-TX-PNL-ITT-CP-E PIC S9(02)V9(03). ! -268200* ! -268300 10 WS-4DCO-TFS-TX-PNL-ITT-CU-E PIC S9(02)V9(03). ! -268400* ! -268500 10 WS-4DCO-TFS-MT-DASLD OCCURS 26. ! -268600* ZONES DAMIER DES SOLDES EXERCICE ! -268700 15 WS-4DCO-TFS-ENT-QZ PIC S9(15) COMP-3. ! -268800* ! -268900 15 WS-4DCO-TFS-SRT-QZ PIC S9(15) COMP-3. ! -269000* ! -269100 15 WS-4DCO-TFS-SLD-QZ PIC S9(15) COMP-3. ! -269200* ! -269300 10 WS-4DCO-TFS-MT-DASLD-1 OCCURS 26. ! -269400* ZONES DAMIER DES SOLDES EXERCICE -1 ! -269500 15 WS-4DCO-TFS-ENT-QZ-1 PIC S9(15) COMP-3. ! -269600* ! -269700 15 WS-4DCO-TFS-SRT-QZ-1 PIC S9(15) COMP-3. ! -269800* ! -269900 15 WS-4DCO-TFS-SLD-QZ-1 PIC S9(15) COMP-3. ! -270000* ! -270100 10 WS-4DCO-TFS-SLD-RCH PIC S9(15) COMP-3. ! -270200* ! -270300 10 WS-4DCO-TFS-INT-BRT PIC S9(15) COMP-3. ! -270400* ! -270500 10 WS-4DCO-TFS-INT-A-1 PIC S9(15) COMP-3. ! -270600* ! -270700 10 WS-4DCO-TFS-ERR-LEC PIC X(001). ! -270800* FLAG DE RENSEIGNEMENT DE LA COMMAREA ! -270900 10 WS-4DCO-TFS-DRAP-RC PIC X(001). ! -271000* FLAG DE VERSEMENT PERIODIQUE ! -271100* ! -271200 10 WS-4DCO-TFS-TOP-AVN PIC X(001). ! -271300* TOP PRECISANT APPEL P4DAVAN DEJA FAIT ! -271400* ! -271500 10 WS-4DCO-TFS-SLD-AVN PIC S9(15) COMP-3. ! -271600 10 WS-4DCO-TFS-SLD-AVN-R REDEFINES WS-4DCO-TFS-SLD-AVN ! -271700 PIC S9(13)V9(02) COMP-3. ! -271800* ! -271900 10 WS-4DCO-TFS-IF-AVN PIC S9(15) COMP-3. ! -272000 10 WS-4DCO-TFS-IF-AVN-R REDEFINES WS-4DCO-TFS-IF-AVN ! -272100 PIC S9(13)V9(02) COMP-3. ! -272200* ! -272300 10 WS-4DCO-TFS-FA-GES PIC S9(15) COMP-3. ! -272400 10 WS-4DCO-TFS-FA-GES-R REDEFINES WS-4DCO-TFS-FA-GES ! -272500 PIC S9(13)V9(02) COMP-3. ! -272600* ! -272700 10 WS-4DCO-TFS-VRB OCCURS 02. ! -272800 15 WS-4DCO-TFS-TOT-VRB-EX PIC S9(15) COMP-3. ! -272900 15 WS-4DCO-TFS-TOT-VRB-EX-R REDEFINES ! -273000 WS-4DCO-TFS-TOT-VRB-EX PIC S9(13)V9(02) COMP-3. ! -273100* ! -273200 10 WS-4DCO-TFS-MT-FAG PIC S9(15) COMP-3. ! -273300 10 WS-4DCO-TFS-MT-FAG-R REDEFINES WS-4DCO-TFS-MT-FAG ! -273400 PIC S9(13)V9(02) COMP-3. ! -273500* ! -273600* 10 WS-4DCO-TFS-MT-PV PIC S9(15) COMP-3. ! -273700* 10 WS-4DCO-TFS-MT-PV-R REDEFINES WS-4DCO-TFS-MT-PV ! -273800* PIC S9(13)V9(02) COMP-3. ! -273900 10 WS-4DCO-4DHL-MT-PLV-SOC PIC S9(09) COMP-3. ! -274000 10 WS-4DCO-4DHL-MT-PLV-SOC-R REDEFINES ! -274100 WS-4DCO-4DHL-MT-PLV-SOC PIC S9(07)V9(02) COMP-3. ! -274200* mt prel soc ! -274300* ! -274400 10 FILLER PIC X(0010). ! -274500* ZONES DISPONIBLES ! -274600* ------------------------------------------------------ * ! -274700 ! -274800 03 WS-4DCO-DEM-PRIME REDEFINES WS-4DCO-PROGRAM. ! -274900* ================= ! -275000* ------------------------------------------------------ * ! -275100* COMMAREA : DEMANDE DE PRIME DE L'ETAT * ! -275200* LONGUEUR : 1800 * ! -275300* PREFIXE : WS-4DCO-PR- * ! -275400* ------------------------------------------------------ * ! -275500 ! -275600 05 WS-4DCO-PR-IMP-AN-1 PIC X(001). ! -275700* INDIC EXISTENCE DEMANDE SUR ANNEE -1 ! -275800 05 WS-4DCO-PR-IMP-AN PIC X(001). ! -275900* INDIC EXISTENCE DEMANDE ANNEE EN COURS ! -276000 05 WS-4DCO-PR-CPT-DOM. ! -276100* RIB CPTE DOM PRIME D'ETAT ! -276200 10 WS-4DCO-PR-BQE-DOM PIC X(005). ! -276300* BANQUE RIB CPTE DOM PRIME D'ETAT ! -276400 10 WS-4DCO-PR-GUI-DOM PIC X(005). ! -276500* GUICHET RIB CPTE DOM PRIME D'ETAT ! -276600 10 WS-4DCO-PR-RAC-DOM PIC X(011). ! -276700* RACINE RIB CPTE DOM PRIME D'ETAT ! -276800 10 WS-4DCO-PR-CLE-DOM PIC X(002). ! -276900* CLE RIB CPTE DOM PRIME D'ETAT ! -277000 05 WS-4DCO-PR-TAB-TRAV. ! -277100* TABLE DES 10 EXERCICES DU COMPTE ! -277200 10 WS-4DCO-PR-TAB-POSTE OCCURS 10. ! -277300* ! -277400 15 WS-4DCO-PR-ANNEE PIC 9(04). ! -277500* ! -277600 15 WS-4DCO-PR-VER PIC S9(09) COMP-3. ! -277700* ! -277800 15 WS-4DCO-PR-VER-D REDEFINES WS-4DCO-PR-VER ! -277900 PIC S9(07)V9(02) COMP-3. ! -278000* ! -278100 15 WS-4DCO-PR-PRIM PIC S9(09) COMP-3. ! -278200* ! -278300 15 WS-4DCO-PR-PRIM-D REDEFINES WS-4DCO-PR-PRIM ! -278400 PIC S9(07)V9(02) COMP-3. ! -278500* ! -278600 15 WS-4DCO-PR-PRIM-X REDEFINES WS-4DCO-PR-PRIM ! -278700 PIC X(005). ! -278800* ! -278900 15 WS-4DCO-PR-TAUX PIC S9(02)V9(03). ! -279000* ! -279100 15 WS-4DCO-PR-INT PIC S9(09) COMP-3. ! -279200* ! -279300 15 WS-4DCO-PR-INT-D REDEFINES WS-4DCO-PR-INT ! -279400 PIC S9(07)V9(02) COMP-3. ! -279500* ! -279600 15 WS-4DCO-PR-INT-X REDEFINES WS-4DCO-PR-INT ! -279700 PIC X(005). ! -279800* ! -279900 15 WS-4DCO-PR-IMP PIC X(001). ! -280000* ! -280100 15 WS-4DCO-PR-CONF-IMP PIC X(001). ! -280200* ! -280300 15 WS-4DCO-PR-DAT-DEM. ! -280400* ! -280500 20 WS-4DCO-PR-DEM-SA. ! -280600* ! -280700 25 WS-4DCO-PR-DEM-S PIC X(002). ! -280800* ! -280900 25 WS-4DCO-PR-DEM-A PIC X(002). ! -281000* ! -281100 20 WS-4DCO-PR-DEM-M PIC X(002). ! -281200* ! -281300 20 WS-4DCO-PR-DEM-J PIC X(002). ! -281400* ! -281500 15 WS-4DCO-PR-DAT-PAIE. ! -281600* ! -281700 20 WS-4DCO-PR-PAIE-SA. ! -281800* ! -281900 25 WS-4DCO-PR-PAIE-S PIC X(002). ! -282000* ! -282100 25 WS-4DCO-PR-PAIE-A PIC X(002). ! -282200* ! -282300 20 WS-4DCO-PR-PAIE-M PIC X(002). ! -282400* ! -282500 20 WS-4DCO-PR-PAIE-J PIC X(002). ! -282600* ! -282700 05 WS-4DCO-PR-NBRE-EXER PIC 9(02). ! -282800* NBRE EXE CONCERNES PAR DEMANDE DE PRIME ! -282900 05 WS-4DCO-PR-CUM-PRI PIC S9(09) COMP-3. ! -283000* CUMUL DES PRIMES (TOUS EXE CONFONDUS) ! -283100 05 WS-4DCO-PR-CUM-PRI-D REDEFINES WS-4DCO-PR-CUM-PRI ! -283200 PIC S9(07)V9(02) COMP-3. ! -283300* CUMUL DES PRIMES (TOUS EXE CONFONDUS) ! -283400 05 WS-4DCO-PR-CUM-INT PIC S9(09) COMP-3. ! -283500* CUMUL INTERETS PRIMES (TOUS EXE CONFONDUS) ! -283600 05 WS-4DCO-PR-CUM-INT-D REDEFINES WS-4DCO-PR-CUM-INT ! -283700 PIC S9(07)V9(02) COMP-3. ! -283800* CUMUL INTERETS PRIMES (TOUS EXE CONFONDUS) ! -283900 05 WS-4DCO-PR-TOT PIC S9(11) COMP-3. ! -284000* TOTAL GENERAL ! -284100 05 WS-4DCO-PR-TOT-D REDEFINES WS-4DCO-PR-TOT ! -284200 PIC S9(09)V9(02) COMP-3. ! -284300* TOTAL GENERAL ! -284400 05 WS-4DCO-PR-PRI-DEM PIC S9(09) COMP-3. ! -284500* PRIMES DEMANDEES (SUR EXE CONCERNES) ! -284600 05 WS-4DCO-PR-PRI-DEM-D REDEFINES WS-4DCO-PR-PRI-DEM ! -284700 PIC S9(07)V9(02) COMP-3. ! -284800* PRIMES DEMANDEES (SUR EXE CONCERNES) ! -284900 05 WS-4DCO-PR-ITT-DEM PIC S9(09) COMP-3. ! -285000* INTERETS DEMANDES (SUR EXE CONCERNES) ! -285100 05 WS-4DCO-PR-ITT-DEM-D REDEFINES WS-4DCO-PR-ITT-DEM ! -285200 PIC S9(07)V9(02) COMP-3. ! -285300* INTERETS DEMANDES (SUR EXE CONCERNES) ! -285400 05 WS-4DCO-PR-PITT-DEM PIC S9(09) COMP-3. ! -285500* TOTAL PRIME DEMANDEE ! -285600 05 WS-4DCO-PR-PITT-DEM-D REDEFINES WS-4DCO-PR-PITT-DEM ! -285700 PIC S9(07)V9(02) COMP-3. ! -285800* TOTAL PRIME DEMANDEE ! -285900 05 WS-4DCO-PR-IND-AN PIC 9(02). ! -286000* INDICE POSTE ANNEE EN COURS ! -286100 05 WS-4DCO-PR-IND-AN-1 PIC 9(02). ! -286200* INDICE POSTE ANNEE PRECEDENTE ! -286300 05 WS-4DCO-PR-SAISIES PIC X(001). ! -286400* INDIC EXERCICES RESTANT A SAISIR ! -286500 05 WS-4DCO-PR-OK-VALID PIC X(001). ! -286600* INDIC DEMANDE POUR AU MOINS UN EXE ! -286700 05 WS-4DCO-PR-DA-CLO. ! -286800* DATE CLOTURE PEP ! -286900 10 WS-4DCO-PR-DA-CLO-SA. ! -287000* SIECLE ANNEE DATE CLOTURE PEP ! -287100 15 WS-4DCO-PR-DA-CLO-SS PIC 9(02). ! -287200* SIECLE DATE CLOTURE PEP ! -287300 15 WS-4DCO-PR-DA-CLO-AA PIC 9(02). ! -287400* ANNEE DATE CLOTURE PEP ! -287500 10 WS-4DCO-PR-DA-CLO-MM PIC 9(02). ! -287600* MOIS DATE CLOTURE PEP ! -287700 10 WS-4DCO-PR-DA-CLO-JJ PIC 9(02). ! -287800* JOUR DATE CLOTURE PEP ! -287900 05 WS-4DCO-PR-NOM PIC X(32). ! -288000* NOM ET PRENOM DU CONTRAT ! -288100 05 WS-4DCO-PR-IDC-DECES PIC X. ! -288200* INDICATEUR DECES ! -288300 05 WS-4DCO-PR-DA-DECES. ! -288400* DATE DE DECES ! -288500 10 WS-4DCO-PR-DA-DECES-SA. ! -288600* SIECLE ANNEE DATE DECES ! -288700 15 WS-4DCO-PR-DA-DECES-SS PIC 9(02). ! -288800* SIECLE DATE DECES ! -288900 15 WS-4DCO-PR-DA-DECES-AA PIC 9(02). ! -289000* ANNEE DATE DECES ! -289100 10 WS-4DCO-PR-DA-DECES-MM PIC 9(02). ! -289200* MOIS DATE DECES ! -289300 10 WS-4DCO-PR-DA-DECES-JJ PIC 9(02). ! -289400* jour date DECES ! -289500 05 WS-4DCO-PR-TY-PP PIC XX. ! -289600* CODIFICATION PU OU PP ! -289700 05 WS-4DCO-PR-IDC-DEBL-ATP PIC X(1). ! -289800* INDICATEUR DEBLOCAGE ANTICIPE ! -289900 05 WS-4DCO-PR-DA-DEBL-ATP. ! -290000* DATE DEBLOCAGE ANTICIPE ! -290100 10 WS-4DCO-PR-DA-DEBL-ATP-A PIC X(4). ! -290200* DATE DEBLOCAGE ANTICIPE ANNEE ! -290300 10 WS-4DCO-PR-DA-DEBL-ATP-M PIC X(2). ! -290400* DATE DEBLOCAGE ANTICIPE MOIS ! -290500 10 WS-4DCO-PR-DA-DEBL-ATP-J PIC X(2). ! -290600* DATE DEBLOCAGE ANTICIPE JOUR ! -290700 05 WS-4DCO-PR-IDC-DEBL-RCH PIC X(1). ! -290800* INDICATEUR DEBLOCAGE RACHAT ! -290900 05 WS-4DCO-PR-DA-DEBL-RCH. ! -291000* DATE DEBLOCAGE RACHAT ! -291100 10 WS-4DCO-PR-DA-DEBL-RCH-A PIC 9(4). ! -291200* DATE DEBLOCAGE RACHAT ANNEE ! -291300 10 WS-4DCO-PR-DA-DEBL-RCH-M PIC 9(2). ! -291400* DATE DEBLOCAGE RACHAT MOIS ! -291500 10 WS-4DCO-PR-DA-DEBL-RCH-J PIC 9(2). ! -291600* DATE DEBLOCAGE RACHAT JOUR ! -291700*** donnees specifiques au pgm c4dpv0 ! -291800 05 WS-4DCO-4DPV-NO-RIB-DOM. ! -291900* RIB CPTE DOM PRIME D'ETAT ! -292000 10 WS-4DCO-4DPV-CD-BANQUE PIC X(005). ! -292100* BANQUE RIB CPTE DOM PRIME D'ETAT ! -292200 10 WS-4DCO-4DPV-CD-GUICHET PIC X(005). ! -292300* GUICHET RIB CPTE DOM PRIME D'ETAT ! -292400 10 WS-4DCO-4DPV-NO-CPT-RIB PIC X(011). ! -292500* RACINE RIB CPTE DOM PRIME D'ETAT ! -292600 10 WS-4DCO-4DPV-CLE-RIB PIC X(002). ! -292700* CLE RIB CPTE DOM PRIME D'ETAT ! -292800 05 WS-4DCO-4DPV-MODE-RGL PIC X(001). ! -292900* MODE DE REGLEMENT ! -293000 05 WS-4DCO-4DPV-DA-OUV. ! -293100* DATE OUVERTURE CONTRAT ! -293200 10 WS-4DCO-4DPV-DA-OUV-A PIC 9(4). ! -293300 10 WS-4DCO-4DPV-DA-OUV-M PIC 9(2). ! -293400 10 WS-4DCO-4DPV-DA-OUV-J PIC 9(2). ! -293500 05 WS-4DCO-4DPV-DA-PRE. ! -293600* DATE PRESCRIPTION DU CONTRAT ! -293700 10 WS-4DCO-4DPV-DA-PRE-A PIC 9(4). ! -293800 10 WS-4DCO-4DPV-DA-PRE-M PIC 9(2). ! -293900 10 WS-4DCO-4DPV-DA-PRE-J PIC 9(2). ! -294000 05 WS-4DCO-4DPV-CD-FCT PIC X(001). ! -294100 05 WS-4DCO-4DPV-AVNIMP PIC X(001). ! -294200 05 WS-4DCO-4DPT-IDC-DEBL-RCH PIC X(1). ! -294300* INDICATEUR DEBLOCAGE RACHAT ! -294400 05 WS-4DCO-4DPT-DA-DEB. ! -294500* DATE debut deblocage anticipe ! -294600 10 WS-4DCO-4DPV-DA-DEB-A PIC 9(4). ! -294700 10 WS-4DCO-4DPV-DA-DEB-M PIC 9(2). ! -294800 10 WS-4DCO-4DPV-DA-DEB-J PIC 9(2). ! -294900 05 WS-4DCO-4DPT-DA-FIN. ! -295000* DATE fin deblocage anticipe ! -295100 10 WS-4DCO-4DPV-DA-FIN-A PIC 9(4). ! -295200 10 WS-4DCO-4DPV-DA-FIN-M PIC 9(2). ! -295300 10 WS-4DCO-4DPV-DA-FIN-J PIC 9(2). ! -295400 05 WS-4DCO-4DPT-MT-VER-EXE-1 PIC S9(15) COMP-3. ! -295500* Montant de l'exercice N-1 ! -295600 05 FILLER PIC X(1180). ! -295700* ZONES DISPONIBLES ! -295800* ------------------------------------------------------ * ! -295900 ! -296000 03 WS-4DCO-PRIME-4DPR REDEFINES WS-4DCO-PROGRAM. ! -296100* ================== ! -296200* ------------------------------------------------------ * ! -296300* COMMAREA : MODIFICATION CODE MOTIF EXONERATION * ! -296400* LONGUEUR : 1800 * ! -296500* PREFIXE : WS-4DCO-4DPR- * ! -296600* ------------------------------------------------------ * ! -296700 ! -296800 05 WS-4DCO-4DPR-DA-OUV-J PIC XX. ! -296900 05 WS-4DCO-4DPR-DA-OUV-M PIC XX. ! -297000 05 WS-4DCO-4DPR-DA-OUV-A PIC XXXX. ! -297100 05 WS-4DCO-4DPR-TY-PP PIC XX. ! -297200 05 WS-4DCO-4DPR-DA-RACH PIC X(10). ! -297300 05 WS-4DCO-4DPR-CD-DECLA PIC X. ! -297400 05 WS-4DCO-4DPR-CD-EXO PIC X. ! -297500 05 WS-4DCO-4DPR-CD-NEWMTF PIC X. ! -297600 05 WS-4DCO-4DPR-LIB-ITT PIC X(33). ! -297700 05 WS-4DCO-4DPR-LIB-EXO PIC X(33). ! -297800 05 WS-4DCO-4DPR-LIB-NEW PIC X(33). ! -297900 05 FILLER PIC X(1678). ! -298000* ZONES DISPONIBLES ! -298100 ! -298200 03 WS-4DCO-TRF-PEP-PR REDEFINES WS-4DCO-PROGRAM. ! -298300* ================== ! -298400* ------------------------------------------------------ * ! -298500* COMMAREA : TRANSFERT D'UN PEP EN PREVI-RETRAITE * ! -298600* LONGUEUR : 1800 * ! -298700* PREFIXE : WS-4DCO-4DHO- * ! -298800* ------------------------------------------------------ * ! -298900 ! -299000 05 WS-4DCO-4DHO-TRF PIC X(001). ! -299100* INDIC DEMANDE DE TRANSFERT (O/N) ! -299200 05 WS-4DCO-4DHO-SLD PIC S9(15) COMP-3. ! -299300* SOLDE AU TRANSFERT ! -299400 05 WS-4DCO-4DHO-SLD-CPB PIC S9(15) COMP-3. ! -299500* SOLDE COMPTABLE ! -299600 05 WS-4DCO-4DHO-VP-OK PIC X(001). ! -299700* INDIC DELAI VP OK ! -299800 05 WS-4DCO-4DHO-AV-OK PIC X(001). ! -299900* INDIC SOLDE AVANCE OK ! -300000 05 WS-4DCO-4DHO-DA-TRF. ! -300100* DATE D'EFFET DU TRANSFERT ! -300200 10 WS-4DCO-4DHO-DA-TRF-SA PIC 9(004). ! -300300* ANNEE ET SIECLE ! -300400 10 WS-4DCO-4DHO-DA-TRF-MM PIC X(002). ! -300500* MOIS ! -300600 10 WS-4DCO-4DHO-DA-TRF-JJ PIC X(002). ! -300700* JOUR ! -300800 05 WS-4DCO-4DHO-DSOUS. ! -300900* DATE DE SOUSCRIPTION (PEP) ! -301000 10 WS-4DCO-4DHO-ASOUS PIC 9(004). ! -301100* ANNEE ET SIECLE ! -301200 10 WS-4DCO-4DHO-MSOUS PIC X(002). ! -301300* MOIS ! -301400 10 WS-4DCO-4DHO-JSOUS PIC X(002). ! -301500* JOUR ! -301600 05 WS-4DCO-4DHO-MT-TRF PIC S9(15) COMP-3. ! -301700* MONTANT DU TRANSFERT ! -301800 05 WS-4DCO-4DHO-MT-PAB PIC S9(15) COMP-3. ! -301900* MONTANT DES 80 % DE LA PAB ! -302000 05 WS-4DCO-4DHO-CPT-TRF. ! -302100* COMPTE PR ISSU DU TRANSFERT ! -302200 10 WS-4DCO-4DHO-PTN PIC X(003). ! -302300* PARTENAIRE ! -302400 10 WS-4DCO-4DHO-PRD PIC X(003). ! -302500* PRODUIT ! -302600 10 WS-4DCO-4DHO-CLI PIC X(007). ! -302700* CLIENT ! -302800 10 WS-4DCO-4DHO-RNG PIC X(002). ! -302900* RANG ! -303000 05 WS-4DCO-4DHO-NOM PIC X(032). ! -303100* NOM DU CLIENT ! -303200 05 WS-4DCO-4DHO-STR-GTN PIC X(006). ! -303300* N� DE STRUCTURE GESTIONNAIRE DU CONTRAT ! -303400 05 WS-4DCO-4DHO-AGT-GTN PIC X(008). ! -303500* N� DE L'AGENT GESTIONNAIRE DU CONTRAT ! -303600 05 WS-4DCO-4DHO-CD-VER-PER PIC X(001). ! -303700* CODE VERSEMENT PERIODIQUE ! -303800 05 WS-4DCO-4DHO-LIB-IDT-CTR PIC X(016). ! -303900* LIBELLE APPARESSANT DEVANT L'IDENTIFIANT CONTRAT ! -304000 05 WS-4DCO-4DHO-NO-IDT-CTR PIC X(015). ! -304100* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT (68) ! -304200 05 WS-4DCO-4DHO-NO-IDT-CTR-2 PIC X(015). ! -304300* MASQUE D'AFFICHAGE DE L'IDENTIFIANT CONTRAT (76) ! -304400 05 WS-4DCO-4DHO-LIB-PRD-ORI PIC X(032). ! -304500* LIBELLE DU PRODUIT D'ORIGINE ! -304600 05 WS-4DCO-4DHO-NO-POL-PRB PIC X(009). ! -304700* N� DE POLICE PARTENAIRE EXTERIEUR ! -304800 05 WS-4DCO-4DHO-NO-STR-DIS PIC X(006). ! -304900* N� DE STRUCTURE DE DISTRIBUTION ! -305000 05 WS-4DCO-4DHO-NO-ORD-ADR-POST PIC S9(2) COMP-3. ! -305100* N� DE STRUCTURE DE DISTRIBUTION ! -305200 05 WS-4DCO-4DHO-NO-TY-PRD PIC S9(2) COMP-3. ! -305300* N� DU TYPE DE PRODUIT ! -305400 05 WS-4DCO-4DHO-NO-PRD-PTN PIC S9(3) COMP-3. ! -305500* N� DE PRODUIT DU PARTENAIRE ! -305600 05 WS-4DCO-4DHO-NO-ORD-CTR PIC S9(2) COMP-3. ! -305700* N� D'ORDRE DU CONTRAT (RANG) ! -305800 05 WS-4DCO-4DHO-68-GEN-PRD PIC X(003). ! -305900* N� DE GENERATION DE SOUSCRIPTION DU PRODUIT TYPE PEP ! -306000 05 WS-4DCO-4DHO-76-GEN-PRD PIC X(003). ! -306100* N� DE GENERATION EN COURS DU PRODUIT TYPE PREVI-RETRAIT ! -306200 05 WS-4DCO-4DHO-NO-GEN-TY-PRD PIC X(003). ! -306300* N� DE GENERATION DU PRODUIT ! -306400 05 WS-4DCO-4DHO-CD-PRD-ORI PIC X(002). ! -306500* CODE PRODUIT ORIGINE ! -306600 05 FILLER PIC X(1575). ! -306700* ZONES DISPONIBLES ! -306800* GSX ------------------------------------------------------ * ! -306900* ! -307000*================================================================ ! -307100*= APPLICATION : SIMILATION EPARGNE ACQUISE = ! -307200*================================================================ ! -307300* ! -307400 ! -307500 03 WS-4DCO-SIMUL REDEFINES WS-4DCO-PROGRAM. ! -307600* ============= ! -307700* ------------------------------------------------------ * ! -307800* COMMAREA : SIMULATION DE L'EPARGNE ACQUISE * ! -307900* LONGUEUR : 1800 * ! -308000* PREFIXE : WS-4DCO-SIM * ! -308100* ------------------------------------------------------ * ! -308200 ! -308300 05 WS-4DCO-SIM-M4D170A. ! -308400 10 WS-4DCO-SIM-MT-INIB PIC X(16). ! -308500* MONTANT INIT BRUT AFFICHE A L'ECRAN ! -308600 10 WS-4DCO-SIM-MT-INIB-N PIC S9(13)V9(02). ! -308700* MONTANT INITIAL BRUT ! -308800 10 WS-4DCO-SIM-MT-INIB-R REDEFINES ! -308900 WS-4DCO-SIM-MT-INIB-N ! -309000 PIC S9(15). ! -309100* MONTANT INITIAL BRUT ! -309200 10 WS-4DCO-SIM-MT-PERB PIC X(16). ! -309300* MONTANT PERB.BRUT AFFICHE A L'ECRAN ! -309400 10 WS-4DCO-SIM-MT-PERB-N PIC S9(13)V9(02). ! -309500* MONTANT PERIOD. BRUT ! -309600 10 WS-4DCO-SIM-MT-PERB-R REDEFINES ! -309700 WS-4DCO-SIM-MT-PERB-N ! -309800 PIC S9(15). ! -309900* MONTANT PERIODIQUE BRUT ! -310000 10 WS-4DCO-SIM-INDEX PIC X(006). ! -310100* POURCENTAGE INDEX AFFICHE A L'ECRAN ! -310200 10 WS-4DCO-SIM-INDEX-N PIC 9(02)V9(03). ! -310300* POURCENTAGE D'INDEXATION ANNUEL ! -310400 10 WS-4DCO-SIM-INDEX-R REDEFINES WS-4DCO-SIM-INDEX-N ! -310500 PIC 9(05). ! -310600* POURCENTAGE D'INDEXATION ANNUEL ! -310700 10 WS-4DCO-SIM-FREQ PIC X(002). ! -310800* NOMBRE DE VERSEMENT PAR AN ! -310900 10 WS-4DCO-SIM-FREQ-N PIC 9(02). ! -311000* NOMBRE DE VERSEMENT PAR AN ! -311100 10 WS-4DCO-SIM-FRAIS PIC X(006). ! -311200* FRAIS DE SOUSCRIPTION AFFICHE A L'ECRAN ! -311300 10 WS-4DCO-SIM-FRAIS-N PIC 9(02)V9(03). ! -311400* FRAIS DE SOUSCRIPTION ! -311500 10 WS-4DCO-SIM-FRAIS-R REDEFINES WS-4DCO-SIM-FRAIS-N ! -311600 PIC 9(05). ! -311700* FRAIS DE SOUSCRIPTION ! -311800 10 WS-4DCO-SIM-TXGST PIC X(006). ! -311900* TX FRAIS DE GESTION ! -312000 10 WS-4DCO-SIM-TXGST-N PIC 9(02)V9(03). ! -312100* TAUX FRAIS DE GESTION ! -312200 10 WS-4DCO-SIM-TXGST-R REDEFINES WS-4DCO-SIM-TXGST-N ! -312300 PIC 9(05). ! -312400 10 WS-4DCO-SIM-TXVAL PIC X(006). ! -312500* TX ANN DE REVALORISAT AFFICHE A L'ECRAN ! -312600 10 WS-4DCO-SIM-TXVAL-N PIC 9(02)V9(03). ! -312700* TAUX ANNUEL DE REVALORISATION ! -312800 10 WS-4DCO-SIM-TXVAL-R REDEFINES WS-4DCO-SIM-TXVAL-N ! -312900 PIC 9(05). ! -313000* TAUX ANNUEL DE REVALORISATION ! -313100 10 WS-4DCO-SIM-ANVERS PIC X(004). ! -313200* ANNEE DU PREMIER VERSEMENT A L'ECRAN ! -313300 10 WS-4DCO-SIM-ANVERS-N PIC 9(04). ! -313400* ANNEE DU PREMIER VERSEMENT ! -313500 10 WS-4DCO-SIM-DUREE PIC X(003). ! -313600* DUREE DU CONTRAT A L'ECRAN ! -313700 10 WS-4DCO-SIM-DUREE-N PIC 9(03). ! -313800* ANNEE DU CONTRAT ! -313900 10 WS-4DCO-SIM-MT-EPNI PIC X(16). ! -314000* EPARGNE INIT BRUT AFFICHE A L'ECRAN ! -314100 10 WS-4DCO-SIM-MT-EPNI-N PIC S9(13)V9(02). ! -314200* EPARGNE INITIALE BRUTE ! -314300 10 WS-4DCO-SIM-MT-EPNI-R REDEFINES ! -314400 WS-4DCO-SIM-MT-EPNI-N ! -314500 PIC S9(15). ! -314600* PART D'EPARGNE INITIALE BRUTE ! -314700 10 WS-4DCO-SIM-MT-EPNP PIC X(16). ! -314800* EPARGNE INIT BRUT AFFICHE A L'ECRAN ! -314900 10 WS-4DCO-SIM-MT-EPNP-N PIC S9(13)V9(02). ! -315000* EPARGNE PERIODIQUE BRUTE ! -315100 10 WS-4DCO-SIM-MT-EPNP-R REDEFINES ! -315200 WS-4DCO-SIM-MT-EPNP-N ! -315300 PIC S9(15). ! -315400* PART D'EPARGNE PERIODIQUE BRUTE ! -315500 10 WS-4DCO-SIM-TOTVBRUT-N PIC S9(13)V9(02). ! -315600* TOTAL DES VERSEMENTS BRUTS ! -315700 10 WS-4DCO-SIM-TOTEPGN-N PIC S9(13)V9(02). ! -315800* TOTAL DE LA PART D'EPARGNE ! -315900 10 WS-4DCO-SIM-TOTINT-N PIC S9(13)V9(02). ! -316000* TOTAL DES INTERETS ACQUIS ! -316100 10 WS-4DCO-SIM-EPGNFIN-N PIC S9(13)V9(02). ! -316200* EPARGNE ACQUISE AU TERME ! -316300 10 WS-4DCO-SIM-DEST PIC X(32). ! -316400* DESTINATAIRE DE LA SIMULATION ! -316500 10 WS-4DCO-SIM-SOLDE PIC X(16). ! -316600* MONTANT DU SOLDE AFFICHE A L'ECRAN ! -316700 10 WS-4DCO-SIM-SOLDE-N PIC S9(13)V9(02). ! -316800* MONTANT DU SOLDE ! -316900 10 WS-4DCO-SIM-SOLDE-R REDEFINES WS-4DCO-SIM-SOLDE-N ! -317000 PIC S9(15). ! -317100* MONTANT DU SOLDE ! -317200 10 WS-4DCO-SIM-ANFIN PIC X(004). ! -317300* ANNEE DU PREMIER VERSEMENT A L'ECRAN ! -317400 10 WS-4DCO-SIM-ANFIN-N PIC 9(04). ! -317500* ANNEE DU PREMIER VERSEMENT ! -317600 10 WS-4DCO-SIM-NORME-SURAV PIC X. ! -317700* VALEUR DU CODE NORME SURAVENIR ! -317800 05 WS-4DCO-SIM-TABLEAU. ! -317900 10 WS-4DCO-SIM-TANNEE OCCURS 32. ! -318000 15 WS-4DCO-SIM-TANNEE-ELT PIC X(4). ! -318100* ELEMENT ANNEE ! -318200 10 WS-4DCO-SIM-TVBRUT OCCURS 32. ! -318300 15 WS-4DCO-SIM-TVBRUT-ELT PIC S9(13)V99 COMP-3. ! -318400* ELEMENT VERSEMENT BRUT ! -318500 10 WS-4DCO-SIM-TVNET OCCURS 32. ! -318600 15 WS-4DCO-SIM-TVNET-ELT PIC S9(13)V99 COMP-3. ! -318700* ELEMENT VERSEMENT NET ! -318800 10 WS-4DCO-SIM-EPGAC OCCURS 32. ! -318900 15 WS-4DCO-SIM-EPGAC-ELT PIC S9(13)V99 COMP-3. ! -319000* ELEMENT EPARGNE ACQUISE ! -319100 05 WS-4DCO-SIM-M4D170A-SUITE. ! -319200 10 WS-4DCO-SIM-AGEADH PIC X(003). ! -319300* AGE DE L'ADHERENT ! -319400 10 WS-4DCO-SIM-AGEADH-N PIC 9(03). ! -319500* AGE DE L'ADHERENT (NUMERIQUE) ! -319600 10 WS-4DCO-SIM-AGECOR PIC X(003). ! -319700* AGE DE L'ADHERENT ! -319800 10 WS-4DCO-SIM-AGECOR-N PIC 9(03). ! -319900* AGE DE L'ADHERENT (NUMERIQUE) ! -320000 10 WS-4DCO-SIM-RENTNVER-N PIC S9(13)V9(02). ! -320100* TOTAL DE LA RENTE NON REVERSIBLE ! -320200 10 WS-4DCO-SIM-RENTR60-N PIC S9(13)V9(02). ! -320300* TOTAL DE LA RENTE REVERSIBLE A 60% ! -320400 10 WS-4DCO-SIM-RENTR100-N PIC S9(13)V9(02). ! -320500* TOTAL DE LA RENTE REVERSIBLE A 100% ! -320600 10 WS-4DCO-SIM-AGERET PIC X(003). ! -320700* AGE DE LA RETRAITE ! -320800 10 WS-4DCO-SIM-AGERET-N PIC 9(03). ! -320900* AGE DE LA RETRAITE ! -321000 10 WS-4DCO-SIM-MTRENT PIC X(16). ! -321100* MONTANT DE LA RENTE SOUHAITEE ! -321200 10 WS-4DCO-SIM-MTRENT-N PIC S9(13)V9(02). ! -321300* MONTANT DE LA RENTE SOUHAITEE ! -321400 10 WS-4DCO-SIM-MTRENT-R REDEFINES WS-4DCO-SIM-MTRENT-N ! -321500 PIC S9(15). ! -321600* MONTANT DE LA RENTE SOUHAITEE ! -321700 10 WS-4DCO-SIM-TXREV PIC X(003). ! -321800* TX REVERSION RENTE ! -321900 10 WS-4DCO-SIM-TXREV-N PIC 9(03). ! -322000* TAUX REVERSION RENTE ! -322100* ! -322200 05 WS-4DCO-SIM-TABI. ! -322300* OCCURENCE DE TAUX POUR NOUVELLES SIMULATIONS ! -322400 10 WS-4DCO-SIM-VALI PIC 9(3)V9(15) OCCURS 12. ! -322500* TAUX NET PERIODIQUE = (1 + Im) ** (m/12) ! -322600 10 WS-4DCO-SIM-TX-FREQ PIC 9(3)V9(15). ! -322700* TAUX CALCULE SELON LA FREQUENCE DU VP ! -322800 10 WS-4DCO-SIM-VP-NEW PIC S9(09)V9(09). ! -322900* MONTANT DU VP RECALCULE = V' ! -323000 10 WS-4DCO-SIM-EP-NEW PIC S9(09)V9(09). ! -323100* EPARGNE DU VP RECALCULE = E' ! -323200 ! -323300 05 WS-4DCO-SIM-TX-TCH-STD PIC X(06). ! -323400* taux technique ! -323500 05 WS-4DCO-SIM-TX-TCH-STD-N PIC S9(2)V9(3). ! -323600* taux technique ! -323700 05 WS-4DCO-SIM-TX-TCH-STD-R REDEFINES ! -323800 WS-4DCO-SIM-TX-TCH-STD-N PIC 9(05). ! -323900* taux technique ! -324000 05 WS-4DCO-SIM-MT-VP-N PIC S9(13)V9(02). ! -324100* MONTANT DES VERSEMENTS PROGRAMMES ! -324200 05 WS-4DCO-cd-afg-mes PIC x(1). ! -324300* ? ! -324400 05 WS-4DCO-SIM-CD-SEX-RNT PIC X(1). ! -324500* SEXE DU RENTIER ! -324600 05 WS-4DCO-SIM-CD-SEX-COR PIC X(1). ! -324700* SEXE DU CO-RENTIER ! -324800 05 WS-4DCO-SIM-CD-PER PIC X(1). ! -324900* code p�riodicit� ! -325000 05 WS-4DCO-SIM-TX-FRS-GTN PIC X(06). ! -325100* TAUX frais de gestion pour affichage ! -325200 05 WS-4DCO-SIM-TX-FRS-GTN-N PIC 9(3)V9(02). ! -325300* TAUX frais de gestion ! -325400 05 WS-4DCO-SIM-TX-FRS-GTN-R REDEFINES ! -325500 WS-4DCO-SIM-TX-FRS-GTN-N PIC 9(05). ! -325600* TAUX frais de gestion ! -325700* ! -325800 05 FILLER PIC X(0174). ! -325900* ZONES DISPONIBLES ! -326000* ------------------------------------------------------ * ! -326100 ! -326200 03 WS-4DCO-SIMAVC REDEFINES WS-4DCO-PROGRAM. ! -326300* ============== ! -326400* ------------------------------------------------------ * ! -326500* COMMAREA : SIMULATION DE L'EPARGNE ACQUISE (AVANCE) * ! -326600* LONGUEUR : 1800 * ! -326700* PREFIXE : WS-4DCO-SIMAVC * ! -326800* ------------------------------------------------------ * ! -326900 ! -327000 05 WS-4DCO-SIMAVC-M4D171A. ! -327100 10 WS-4DCO-SIMAVC-MT-VIB PIC X(16). ! -327200* MONTANT INIT BRUT AFFICHE A L'ECRAN ! -327300 10 WS-4DCO-SIMAVC-MT-VIBN PIC S9(13)V9(02). ! -327400* MONTANT INITIAL BRUT ! -327500 10 WS-4DCO-SIMAVC-MT-VIBR REDEFINES ! -327600 WS-4DCO-SIMAVC-MT-VIBN ! -327700 PIC S9(15). ! -327800* MONTANT INITIAL BRUT ! -327900 10 WS-4DCO-SIMAVC-FRS PIC X(006). ! -328000* FRAIS DE SOUSCRIPTION AFFICHE A L'ECRAN ! -328100 10 WS-4DCO-SIMAVC-FRS-N PIC 9(02)V9(03). ! -328200* FRAIS DE SOUSCRIPTION ! -328300 10 WS-4DCO-SIMAVC-FRS-R REDEFINES WS-4DCO-SIMAVC-FRS-N ! -328400 PIC 9(05). ! -328500 10 WS-4DCO-SIMAVC-TXGST PIC X(006). ! -328600* TX FRAIS DE GESTION AFFICHE A L'ECRAN ! -328700 10 WS-4DCO-SIMAVC-TXGST-N PIC 9(02)V9(03). ! -328800* TX FRAIS DE GESTION ! -328900 10 WS-4DCO-SIMAVC-TXGST-R REDEFINES ! -329000 WS-4DCO-SIMAVC-TXGST-N PIC 9(05). ! -329100* TX FRAIS DE GESTION ! -329200 10 WS-4DCO-SIMAVC-MTAVC PIC X(16). ! -329300* MONTANT DE L'AVANCE AFFICHE A L'ECRAN ! -329400 10 WS-4DCO-SIMAVC-MTAVCN PIC S9(13)V9(02). ! -329500* MONTANT DE L'AVANCE ! -329600 10 WS-4DCO-SIMAVC-MTAVCR REDEFINES ! -329700 WS-4DCO-SIMAVC-MTAVCN ! -329800 PIC S9(15). ! -329900* MONTANT DE L'AVANCE ! -330000 10 WS-4DCO-SIMAVC-TXAVC PIC X(006). ! -330100* TX DE CROISSANCE DE L'AVANCE AFFICHE ! -330200 10 WS-4DCO-SIMAVC-TXAVCN PIC 9(02)V9(03). ! -330300* TX DE CROISSANCE DE L'AVANCE ! -330400 10 WS-4DCO-SIMAVC-TXAVCR REDEFINES ! -330500 WS-4DCO-SIMAVC-TXAVCN ! -330600 PIC 9(05). ! -330700* TX DE CROISSANCE DE L'AVANCE ! -330800 10 WS-4DCO-SIMAVC-TXRVL PIC X(006). ! -330900* TX ANN DE REVALORISAT AFFICHE A L'ECRAN ! -331000 10 WS-4DCO-SIMAVC-TXRVLN PIC 9(02)V9(03). ! -331100* TAUX ANNUEL DE REVALORISATION ! -331200 10 WS-4DCO-SIMAVC-TXRVLR REDEFINES ! -331300 WS-4DCO-SIMAVC-TXRVLN ! -331400 PIC 9(05). ! -331500* TAUX ANNUEL DE REVALORISATION ! -331600 10 WS-4DCO-SIMAVC-TAUXAV PIC X(006). ! -331700* TAUX DE L'AVANCE AFFICHE A L'ECRAN ! -331800 10 WS-4DCO-SIMAVC-TAUXAVN PIC 9(02)V9(03). ! -331900* TAUX DE L'AVANCE DE L'AVANCE ! -332000 10 WS-4DCO-SIMAVC-TAUXAVR REDEFINES ! -332100 WS-4DCO-SIMAVC-TAUXAVN ! -332200 PIC 9(05). ! -332300* TAUX DE L'AVANCE ! -332400 10 WS-4DCO-SIMAVC-ANVERS PIC X(004). ! -332500* ANNEE DU PREMIER VERSEMENT A L'ECRAN ! -332600 10 WS-4DCO-SIMAVC-ANVERSN PIC 9(04). ! -332700* ANNEE DU PREMIER VERSEMENT ! -332800 10 WS-4DCO-SIMAVC-DUREE PIC X(003). ! -332900* DUREE DU CONTRAT A L'ECRAN ! -333000 10 WS-4DCO-SIMAVC-DUREE-N PIC 9(03). ! -333100* ANNEE DU CONTRAT ! -333200 10 WS-4DCO-SIMAVC-EPN-N PIC S9(13)V9(02). ! -333300* PART D'EPARGNE ! -333400 10 WS-4DCO-SIMAVC-EPND-N PIC S9(13)V9(02). ! -333500* PART D'EPARGNE DISPONIBLE ! -333600 10 WS-4DCO-SIMAVC-ANFIN PIC X(004). ! -333700* ANNEE DE FIN DE CONTRAT AFFICHE ! -333800 10 WS-4DCO-SIMAVC-ANFIN-N PIC 9(04). ! -333900* ANNEE DE FIN DE CONTRAT ! -334000 05 WS-4DCO-SIMAVC-TABLEAU. ! -334100 10 WS-4DCO-SIMAVC-TANNEE OCCURS 21. ! -334200 15 WS-4DCO-SIMAVC-TANNEE-ELT PIC X(4). ! -334300* ELEMENT ANNEE ! -334400 10 WS-4DCO-SIMAVC-EPGERE OCCURS 21. ! -334500 15 WS-4DCO-SIMAVC-EPGERE-ELT PIC S9(13)V99 COMP-3. ! -334600* ELEMENT EPARGNE GERE ! -334700 10 WS-4DCO-SIMAVC-UTAVC OCCURS 21. ! -334800 15 WS-4DCO-SIMAVC-UTAVC-ELT PIC S9(13)V99 COMP-3. ! -334900* ELEMENT UTILISATION AVANCE ! -335000 10 WS-4DCO-SIMAVC-PREV OCCURS 21. ! -335100 15 WS-4DCO-SIMAVC-PREV-ELT PIC S9(13)V99 COMP-3. ! -335200* ELEMENT MONTANT PRELEVEMENT ! -335300 10 WS-4DCO-SIMAVC-BASCA OCCURS 21. ! -335400 15 WS-4DCO-SIMAVC-BASCA-ELT PIC S9(13)V99 COMP-3. ! -335500* ELEMENT BASE DE CALCUL REVALORISATION ! -335600 10 WS-4DCO-SIMAVC-RVLN OCCURS 21. ! -335700 15 WS-4DCO-SIMAVC-RVLN-ELT PIC S9(13)V99 COMP-3. ! -335800* ELEMENT REVALORISATION NETTE ! -335900 10 WS-4DCO-SIMAVC-AVIR OCCURS 21. ! -336000 15 WS-4DCO-SIMAVC-AVIR-ELT PIC S9(13)V99 COMP-3. ! -336100* ELEMENT AVANCE AVEC INT A REMBOURSER ! -336200 10 WS-4DCO-SIMAVC-EPNDIS OCCURS 21. ! -336300 15 WS-4DCO-SIMAVC-EPNDIS-ELT PIC S9(13)V99 COMP-3. ! -336400* ELEMENT EPARGNE DISPONIBLE FIN D'ANNEE ! -336500 10 WS-4DCO-SIMAVC-EPN PIC X(16). ! -336600* PART D'EPARGNE ! -336700 10 WS-4DCO-SIMAVC-EPND PIC X(16). ! -336800* PART D'EPARGNE DISPONIBLE ! -336900 05 WS-4DCO-SIMAVC-NORME-SURAV PIC X. ! -337000* VALEUR DU CODE NORME SURAVENIR ! -337100 05 WS-4DCO-SIMAVC-MTABT PIC X(8). ! -337200 05 WS-4DCO-SIMAVC-MTABTN PIC 9(5)V99. ! -337300 05 FILLER PIC X(0323). ! -337400* ZONES DISPONIBLES ! -337500* ------------------------------------------------------ * ! -337600 ! -337700 03 WS-4DCO-SIMRET REDEFINES WS-4DCO-PROGRAM. ! -337800* ============== ! -337900* ------------------------------------------------------ * ! -338000* COMMAREA : SIMULATION DE L'EPARGNE ACQUISE (RETRAIT) * ! -338100* LONGUEUR : 1800 * ! -338200* PREFIXE : WS-4DCO-SIMRET * ! -338300* ------------------------------------------------------ * ! -338400 ! -338500 05 WS-4DCO-SIMRET-M42172A. ! -338600 10 WS-4DCO-SIMRET-MT-VIB PIC X(16). ! -338700* MONTANT INIT BRUT AFFICHE A L'ECRAN ! -338800 10 WS-4DCO-SIMRET-MT-VIBN PIC S9(13)V9(02). ! -338900* MONTANT INITIAL BRUT ! -339000 10 WS-4DCO-SIMRET-MT-VIBR REDEFINES ! -339100 WS-4DCO-SIMRET-MT-VIBN ! -339200 PIC S9(15). ! -339300* MONTANT INITIAL BRUT ! -339400 10 WS-4DCO-SIMRET-FRS PIC X(006). ! -339500* FRAIS DE SOUSCRIPTION AFFICHE A L'ECRAN ! -339600 10 WS-4DCO-SIMRET-FRS-N PIC 9(02)V9(03). ! -339700* FRAIS DE SOUSCRIPTION ! -339800 10 WS-4DCO-SIMRET-FRS-R REDEFINES ! -339900 WS-4DCO-SIMRET-FRS-N ! -340000 PIC 9(05). ! -340100* FRAIS DE SOUSCRIPTION ! -340200 10 WS-4DCO-SIMRET-MTRET PIC X(16). ! -340300* MONTANT DU RETRAIT AFFICHE A L'ECRAN ! -340400 10 WS-4DCO-SIMRET-MTRETN PIC S9(13)V9(02). ! -340500* MONTANT DU RETRAIT ! -340600 10 WS-4DCO-SIMRET-MTRETR REDEFINES ! -340700 WS-4DCO-SIMRET-MTRETN ! -340800 PIC S9(15). ! -340900* MONTANT DU RETRAIT ! -341000 10 WS-4DCO-SIMRET-TXRET PIC X(006). ! -341100* TX DE CROISSANCE DU RETRAIT AFFICHE ! -341200 10 WS-4DCO-SIMRET-TXRETN PIC 9(02)V9(03). ! -341300* TX DE CROISSANCE DU RETRAIT ! -341400 10 WS-4DCO-SIMRET-TXRETR REDEFINES ! -341500 WS-4DCO-SIMRET-TXRETN ! -341600 PIC 9(05). ! -341700* TX DE CROISSANCE DU RETRAIT ! -341800 10 WS-4DCO-SIMRET-TXRVL PIC X(006). ! -341900* TX ANN DE REVALORISAT AFFICHE A L'ECRAN ! -342000 10 WS-4DCO-SIMRET-TXRVLN PIC 9(02)V9(03). ! -342100* TAUX ANNUEL DE REVALORISATION ! -342200 10 WS-4DCO-SIMRET-TXRVLR REDEFINES ! -342300 WS-4DCO-SIMRET-TXRVLN ! -342400 PIC 9(05). ! -342500 10 WS-4DCO-SIMRET-TXGST PIC X(006). ! -342600* TX ANN DE GESTION AFFICHE A L'ECRAN ! -342700 10 WS-4DCO-SIMRET-TXGSTN PIC 9(02)V9(03). ! -342800* TAUX ANNUEL DE GESTION ! -342900 10 WS-4DCO-SIMRET-TXGSTR REDEFINES ! -343000 WS-4DCO-SIMRET-TXGSTN ! -343100 PIC 9(05). ! -343200* TAUX ANNUEL DE REVALORISATION ! -343300 10 WS-4DCO-SIMRET-ANVERS PIC X(004). ! -343400* ANNEE DU PREMIER VERSEMENT A L'ECRAN ! -343500 10 WS-4DCO-SIMRET-ANVERSN PIC 9(04). ! -343600* ANNEE DU PREMIER VERSEMENT ! -343700 10 WS-4DCO-SIMRET-DUREE PIC X(003). ! -343800* DUREE DU CONTRAT A L'ECRAN ! -343900 10 WS-4DCO-SIMRET-DUREE-N PIC 9(03). ! -344000* ANNEE DU CONTRAT ! -344100 10 WS-4DCO-SIMRET-ANFIN PIC X(004). ! -344200* ANNEE DE FIN DE CONTRAT AFFICHE ! -344300 10 WS-4DCO-SIMRET-ANFIN-N PIC 9(04). ! -344400* ANNEE DE FIN DE CONTRAT ! -344500 10 WS-4DCO-SIMRET-EPNR-N PIC S9(13)V9(02). ! -344600* PART D'EPARGNE RESTANTE ! -344700 05 WS-4DCO-SIMRET-TABLEAU. ! -344800 10 WS-4DCO-SIMRET-TANNEE OCCURS 21. ! -344900 15 WS-4DCO-SIMRET-TANNEE-ELT PIC X(4). ! -345000* ELEMENT ANNEE ! -345100 10 WS-4DCO-SIMRET-EPGAVR OCCURS 21. ! -345200 15 WS-4DCO-SIMRET-EPGAVR-ELT PIC S9(13)V99 COMP-3. ! -345300* ELEMENT EPARGNE AVANT RETRAIT ! -345400 10 WS-4DCO-SIMRET-RPAPI OCCURS 21. ! -345500 15 WS-4DCO-SIMRET-RPAPI-ELT PIC S9(13)V99 COMP-3. ! -345600* ELEMENT RETRAIT PARTIEL APRES IMPOT ! -345700 10 WS-4DCO-SIMRET-REAVI OCCURS 21. ! -345800 15 WS-4DCO-SIMRET-REAVI-ELT PIC S9(13)V99 COMP-3. ! -345900* ELEMENT RETRAIT EFFECTIF AVANT IMPOT ! -346000 10 WS-4DCO-SIMRET-PARIM OCCURS 21. ! -346100 15 WS-4DCO-SIMRET-PARIM-ELT PIC S9(13)V99 COMP-3. ! -346200* ELEMENT PARTIE IMPOSABLE ! -346300 10 WS-4DCO-SIMRET-TXIMP OCCURS 21. ! -346400 15 WS-4DCO-SIMRET-TXIMP-ELT PIC 99V99. ! -346500* ELEMENT TAUX D'IMPOSITION ! -346600 10 WS-4DCO-SIMRET-MTIMP OCCURS 21. ! -346700 15 WS-4DCO-SIMRET-MTIMP-ELT PIC S9(13)V99 COMP-3. ! -346800* ELEMENT MONTANT DE L'IMPOT ! -346900 10 WS-4DCO-SIMRET-EPNRES OCCURS 21. ! -347000 15 WS-4DCO-SIMRET-EPNRES-ELT PIC S9(13)V99 COMP-3. ! -347100* ELEMENT EPARGNE RESTANTE APRES IMPOT ! -347200 10 WS-4DCO-SIMRET-EPNR PIC X(16). ! -347300* PART D'EPARGNE RESTANTE ! -347400 05 WS-4DCO-SIMRET-NORME-SURAV PIC X. ! -347500* VALEUR DU CODE NORME SURAVENIR ! -347600 05 WS-4DCO-SIMRET-MTABT PIC X(8). ! -347700 05 WS-4DCO-SIMRET-MTABTN PIC 9(5)V99. ! -347800 05 FILLER PIC X(0449). ! -347900* ZONES DISPONIBLES ! -348000* ------------------------------------------------------ * ! -348100 ! -348200 03 WS-4DCO-SIMTRI REDEFINES WS-4DCO-PROGRAM. ! -348300* ============== ! -348400* ------------------------------------------------------ * ! -348500* COMMAREA : SIMULATION AVEC RACHATS TRIMESTRIELS * ! -348600* LONGUEUR : 1800 * ! -348700* PREFIXE : WS-4DCO-SIMTRI * ! -348800* ------------------------------------------------------ * ! -348900 ! -349000 05 WS-4DCO-SIMTRI-DONNEES. ! -349100* VERSEMENT INITIAL BRUT ! -349200 10 WS-4DCO-SIMTRI-MT-B-V PIC S9(13)V9(02) COMP-3. ! -349300* VERSEMENT INITIAL NET ! -349400 10 WS-4DCO-SIMTRI-MT-N-V PIC S9(13)V9(02) COMP-3. ! -349500* TAUX FRAIS SOUSCRIPTION ! -349600 10 WS-4DCO-SIMTRI-TX-FRS-INI PIC S9(2)V9(03) COMP-3. ! -349700* TAUX FRAIS GESTION ! -349800 10 WS-4DCO-SIMTRI-TX-FRS-GTN PIC S9(2)V9(03) COMP-3. ! -349900* MONTANT NET DES RACHATS ! -350000 10 WS-4DCO-SIMTRI-MT-RPP PIC S9(13)V9(02) COMP-3. ! -350100* CODE PERIODICITE ! -350200 10 WS-4DCO-SIMTRI-CD-PER PIC X. ! -350300* TAUX INDEXATION DES RACHATS ! -350400 10 WS-4DCO-SIMTRI-TX-IDX-RRT-STD PIC S9(2)V999 COMP-3. ! -350500* CODE FISCALITE ! -350600 10 WS-4DCO-SIMTRI-CD-FIS PIC X. ! -350700* TAUX REVALORISATION ! -350800 10 WS-4DCO-SIMTRI-TX-VLR PIC S9(2)V9(3) COMP-3. ! -350900* MONTANT ABATTEMENT ! -351000 10 WS-4DCO-SIMTRI-MT-ABT PIC S9(13)V99 COMP-3. ! -351100* MONTANT VERSEMENT NET ! -351200 10 WS-4DCO-SIMTRI-MT-VER-NET PIC S9(13)V99 COMP-3. ! -351300* MONTANT EPARGNE RESTANTE ! -351400 10 WS-4DCO-SIMTRI-MT-EPG-RES PIC S9(13)V99 COMP-3. ! -351500* MONTANT INTERET ! -351600 10 WS-4DCO-SIMTRI-MT-INT PIC S9(13)V99 COMP-3. ! -351700* NOMBRE RETRAIT EPARGNE ! -351800 10 WS-4DCO-SIMTRI-NB-RTT-EPG PIC 9(02) OCCURS 41. ! -351900* MONTANT CAPITAL ! -352000 10 WS-4DCO-SIMTRI-MT-CAP ! -352100 PIC S9(9)V99 COMP-3 OCCURS 41. ! -352200* MONTANT RETRAIT APRES ! -352300 10 WS-4DCO-SIMTRI-MT-RTT-AP ! -352400 PIC S9(9)V99 COMP-3 OCCURS 41. ! -352500* MONTANT RETRAIT AVANT ! -352600 10 WS-4DCO-SIMTRI-MT-RTT-AV ! -352700 PIC S9(9)V99 COMP-3 OCCURS 41. ! -352800* MONTANT INTERET ! -352900 10 WS-4DCO-SIMTRI-MT-ITT-I1 ! -353000 PIC S9(9)V99 COMP-3 OCCURS 41. ! -353100* TAUX PRELEVEMENT ! -353200 10 WS-4DCO-SIMTRI-TX-PLV-LBL ! -353300 PIC S9(2)V999 COMP-3 OCCURS 41. ! -353400* MONTANT IMPOT ! -353500 10 WS-4DCO-SIMTRI-MT-IMT ! -353600 PIC S9(9)V99 COMP-3 OCCURS 41. ! -353700* SOLDE CONTRAT ! -353800 10 WS-4DCO-SIMTRI-SLD-CTR ! -353900 PIC S9(9)V99 COMP-3 OCCURS 41. ! -354000 10 WS-4DCO-SIMTRI-NORME PIC X. ! -354100 ! -354200 10 FILLER PIC X(48). ! -354300 ! -354400 03 WS-4DCO-SIMRNT REDEFINES WS-4DCO-PROGRAM. ! -354500* ============== ! -354600* ------------------------------------------------------ * ! -354700* COMMAREA : SIMULATION RENTE VIAGERE IMMEDIATE * ! -354800* LONGUEUR : 1800 * ! -354900* PREFIXE : WS-4DCO-SIMRNT * ! -355000* ------------------------------------------------------ * ! -355100 ! -355200 05 WS-4DCO-SIMRNT-DONNEES. ! -355300* REFERENCE DU CONTRAT ! -355400 10 WS-4DCO-SIMRNT-REF-CTR PIC X(15). ! -355500* VERSEMENT INITIAL BRUT ! -355600 10 WS-4DCO-SIMRNT-MT-B-V PIC S9(13)V9(02) COMP-3. ! -355700* VERSEMENT INITIAL NET ! -355800 10 WS-4DCO-SIMRNT-MT-N-V PIC S9(13)V9(02) COMP-3. ! -355900* TAUX FRAIS SOUSCRIPTION ! -356000 10 WS-4DCO-SIMRNT-TX-FRS PIC S9(2)V9(03) COMP-3. ! -356100* VALEUR DE RACHAT DU CONTRAT ! -356200 10 WS-4DCO-SIMRNT-VLR-RAC PIC S9(13)V9(02) COMP-3. ! -356300* AGE DU RENTIER ! -356400 10 WS-4DCO-SIMRNT-VLR-AGE-RNT PIC 9(3). ! -356500* AGE DU CO-RENTIER ! -356600 10 WS-4DCO-SIMRNT-VLR-AGE-COR PIC 9(3). ! -356700* TAUX DE REVERSION ! -356800 10 WS-4DCO-SIMRNT-TX-REV PIC S9(3) COMP-3. ! -356900* TAUX TECHNIQUE ! -357000 10 WS-4DCO-SIMRNT-TX-TEC PIC S9(3)V9(02) COMP-3. ! -357100* MONTANT ANNUELLE DE LA RENTE ! -357200 10 WS-4DCO-SIMRNT-MT-REN PIC S9(13)V9(02) COMP-3. ! -357300* COEFFICIENT DE CONVERSION ! -357400 10 WS-4DCO-SIMRNT-COEF-CNVS PIC S9(2)V9(3) COMP-3. ! -357500* NORME ! -357600 10 WS-4DCO-SIMRNT-NORME PIC X. ! -357700* SEXE DU RENTIER ! -357800 10 WS-4DCO-SIMRNT-CD-SEX-RNT PIC X(1). ! -357900* SEXE DU CO-RENTIER ! -358000 10 WS-4DCO-SIMRNT-CD-SEX-COR PIC X(1). ! -358100* code p�riodicit� ! -358200 10 WS-4DCO-SIMRNT-CD-PER PIC X(1). ! -358300* TAUX frais de gestion ! -358400 10 WS-4DCO-SIMRNT-TX-FRS-GTN PIC S9(3)V9(02) COMP-3. ! -358500* ! -358600 10 FILLER PIC X(1729). ! -358700* ! -358800 ! -358900 03 WS-4DCO-SIMEVO REDEFINES WS-4DCO-PROGRAM. ! -359000* ============== ! -359100* ------------------------------------------------------ * ! -359200* COMMAREA : SIMULATION DE L'EPARGNE (EVOLUTION/TAUX) * ! -359300* LONGUEUR : 1800 * ! -359400* PREFIXE : WS-4DCO-SIMEVO * ! -359500* ------------------------------------------------------ * ! -359600 ! -359700 05 WS-4DCO-SIMEVO-M42173A. ! -359800 10 WS-4DCO-SIMEVO-MT-VIB PIC X(16). ! -359900* MONTANT INIT BRUT AFFICHE A L'ECRAN ! -360000 10 WS-4DCO-SIMEVO-MT-VIBN PIC S9(13)V9(02). ! -360100* MONTANT INITIAL BRUT ! -360200 10 WS-4DCO-SIMEVO-MT-VIBR REDEFINES ! -360300 WS-4DCO-SIMEVO-MT-VIBN ! -360400 PIC S9(15). ! -360500* MONTANT INITIAL BRUT ! -360600 10 WS-4DCO-SIMEVO-FRS PIC X(006). ! -360700* FRAIS DE SOUSCRIPTION AFFICHE A L'ECRAN ! -360800 10 WS-4DCO-SIMEVO-FRS-N PIC 9(02)V9(03). ! -360900* FRAIS DE SOUSCRIPTION ! -361000 10 WS-4DCO-SIMEVO-FRS-R REDEFINES ! -361100 WS-4DCO-SIMEVO-FRS-N ! -361200 PIC 9(05). ! -361300* FRAIS DE SOUSCRIPTION ! -361400 10 WS-4DCO-SIMEVO-TXGST PIC X(006). ! -361500* TX FRAIS DE GESTION AFFICHE A L'ECRAN ! -361600 10 WS-4DCO-SIMEVO-TXGST-N PIC 9(02)V9(03). ! -361700* TX FRAIS DE GESTION ! -361800 10 WS-4DCO-SIMEVO-TXGST-R REDEFINES ! -361900 WS-4DCO-SIMEVO-TXGST-N ! -362000 PIC 9(05). ! -362100* FRAIS DE GESTION ! -362200 10 WS-4DCO-SIMEVO-MTEPN PIC X(16). ! -362300* MONTANT PART D'EPARGNE AFFICHE A L'ECRAN ! -362400 10 WS-4DCO-SIMEVO-ANVERS PIC X(004). ! -362500* ANNEE DU PREMIER VERSEMENT A L'ECRAN ! -362600 10 WS-4DCO-SIMEVO-ANVERSN PIC 9(04). ! -362700* ANNEE DU PREMIER VERSEMENT ! -362800 10 WS-4DCO-SIMEVO-DUREE PIC X(003). ! -362900* DUREE DU CONTRAT A L'ECRAN ! -363000 10 WS-4DCO-SIMEVO-DUREE-N PIC 9(03). ! -363100* ANNEE DU CONTRAT ! -363200 10 WS-4DCO-SIMEVO-ANFIN PIC X(004). ! -363300* ANNEE DE FIN DE CONTRAT AFFICHE ! -363400 10 WS-4DCO-SIMEVO-ANFIN-N PIC 9(04). ! -363500* ANNEE DE FIN DE CONTRAT ! -363600 05 WS-4DCO-SIMEVO-TABTXRVL. ! -363700 10 WS-4DCO-SIMEVO-TABTX OCCURS 7. ! -363800 15 WS-4DCO-SIMEVO-TXRVL PIC X(006). ! -363900* TX ANN DE REVALORISAT AFFICHE A L'ECRAN ! -364000 15 WS-4DCO-SIMEVO-TXRVLN PIC 9(02)V9(03). ! -364100* TAUX ANNUEL DE REVALORISATION ! -364200 15 WS-4DCO-SIMEVO-TXRVLR REDEFINES ! -364300 WS-4DCO-SIMEVO-TXRVLN ! -364400 PIC 9(05). ! -364500* TAUX ANNUEL DE REVALORISATION ! -364600 05 WS-4DCO-SIMEVO-TABLEAU. ! -364700 10 WS-4DCO-SIMEVO-TANNEE OCCURS 21. ! -364800 15 WS-4DCO-SIMEVO-TANNEE-ELT PIC X(4). ! -364900* ELEMENT ANNEE ! -365000 10 WS-4DCO-SIMEVO-EPGTX1 OCCURS 21. ! -365100 15 WS-4DCO-SIMEVO-EPGTX1-ELT PIC S9(13)V99 COMP-3. ! -365200* ELEMENT EPARGNE ACQUISE AU TAUX NO 1 ! -365300 10 WS-4DCO-SIMEVO-EPGTX2 OCCURS 21. ! -365400 15 WS-4DCO-SIMEVO-EPGTX2-ELT PIC S9(13)V99 COMP-3. ! -365500* ELEMENT EPARGNE ACQUISE AU TAUX NO 2 ! -365600 10 WS-4DCO-SIMEVO-EPGTX3 OCCURS 21. ! -365700 15 WS-4DCO-SIMEVO-EPGTX3-ELT PIC S9(13)V99 COMP-3. ! -365800* ELEMENT EPARGNE ACQUISE AU TAUX NO 3 ! -365900 10 WS-4DCO-SIMEVO-EPGTX4 OCCURS 21. ! -366000 15 WS-4DCO-SIMEVO-EPGTX4-ELT PIC S9(13)V99 COMP-3. ! -366100* ELEMENT EPARGNE ACQUISE AU TAUX NO 4 ! -366200 10 WS-4DCO-SIMEVO-EPGTX5 OCCURS 21. ! -366300 15 WS-4DCO-SIMEVO-EPGTX5-ELT PIC S9(13)V99 COMP-3. ! -366400* ELEMENT EPARGNE ACQUISE AU TAUX NO 5 ! -366500 10 WS-4DCO-SIMEVO-EPGTX6 OCCURS 21. ! -366600 15 WS-4DCO-SIMEVO-EPGTX6-ELT PIC S9(13)V99 COMP-3. ! -366700* ELEMENT EPARGNE ACQUISE AU TAUX NO 6 ! -366800 10 WS-4DCO-SIMEVO-EPGTX7 OCCURS 21. ! -366900 15 WS-4DCO-SIMEVO-EPGTX7-ELT PIC S9(13)V99 COMP-3. ! -367000* ELEMENT EPARGNE ACQUISE AU TAUX NO 7 ! -367100 10 WS-4DCO-SIMEVO-MTEPN-N PIC S9(13)V99. ! -367200* MONTANT PART D'EPARGNE ! -367300 05 WS-4DCO-SIMEVO-NORME-SURAV PIC X. ! -367400* VALEUR DU CODE NORME SURAVENIR ! -367500 05 FILLER PIC X(0356). ! -367600* ZONES DISPONIBLES ! -367700* ! -367800 ! -367900 03 WS-4DCO-ZVER REDEFINES WS-4DCO-PROGRAM. ! -368000* ============== ! -368100* ------------------------------------------------------ * ! -368200* COMMAREA : ZOOM REEDITION VERSEMENT PROGRAMME * ! -368300* LONGUEUR : 1800 * ! -368400* PREFIXE : WS-4DCO-ZVER * ! -368500* ------------------------------------------------------ * ! -368600 ! -368700 05 WS-4DCO-ZVER-PAGE-AREA PIC X(198). ! -368800 05 WS-4DCO-ZVER-NB-PAG-TS PIC 9(3). ! -368900 05 WS-4DCO-ZVER-DONNEES. ! -369000* DATE CREATION CRO ! -369100 10 WS-4DCO-ZVER-DA-CRE-CRO PIC X(8). ! -369200* HEURE CREATION CRO ! -369300 10 WS-4DCO-ZVER-HEU-CRE-CRO PIC X(6). ! -369400* NUMERO STRUCTURE OPERATION ! -369500 10 WS-4DCO-ZVER-NO-STR-OPE PIC X(6). ! -369600* NUMERO AGENT OPERATION ! -369700 10 WS-4DCO-ZVER-NO-AGT-OPE PIC X(8). ! -369800* MONTANT BRUT VERSEMENT PERIODIQUE ! -369900 10 WS-4DCO-ZVER-MT-BRT-VER-PER PIC S9(15). ! -370000 10 WS-4DCO-ZVER-MT-BRT-VER-PER-R ! -370100 REDEFINES WS-4DCO-ZVER-MT-BRT-VER-PER PIC S9(13)V9(2). ! -370200* MONTANT FRAIS ! -370300 10 WS-4DCO-ZVER-FRS-VER-PER PIC S9(15). ! -370400 10 WS-4DCO-ZVER-FRS-VER-PER-R ! -370500 REDEFINES WS-4DCO-ZVER-FRS-VER-PER PIC S9(13)V9(2). ! -370600* MONTANT NET VERSEMENT PERIODIQUE ! -370700 10 WS-4DCO-ZVER-MT-NET-VER-PER PIC S9(15). ! -370800 10 WS-4DCO-ZVER-MT-NET-VER-PER-R ! -370900 REDEFINES WS-4DCO-ZVER-MT-NET-VER-PER PIC S9(13)V9(2). ! -371000* TAUX FRAIS ! -371100 10 WS-4DCO-ZVER-TX-FRS-VER-PER PIC S9(5). ! -371200 10 WS-4DCO-ZVER-TX-FRS-VER-PER-R ! -371300 REDEFINES WS-4DCO-ZVER-TX-FRS-VER-PER PIC S9(2)V9(3). ! -371400* DATE EFFET ! -371500 10 WS-4DCO-ZVER-DA-EFF-VER-PER PIC X(8). ! -371600* CODE PERIODICITE ! -371700 10 WS-4DCO-ZVER-CD-PER-VER-PER PIC X(1). ! -371800* COMPTE DOM VERSEMENT PERIODIQUE ! -371900 10 WS-4DCO-ZVER-RIB-VER-PER PIC X(23). ! -372000* TYPE AJUSTEMENT ! -372100 10 WS-4DCO-ZVER-TY-AJU-CTS PIC X(1). ! -372200 05 FILLER PIC X(1488). ! -372300* ! -372400 ! -372500 03 WS-4DCO-ZEXP REDEFINES WS-4DCO-PROGRAM. ! -372600* ============== ! -372700* ------------------------------------------------------ * ! -372800* COMMAREA : ZOOM REEDITION MODIFICATION CODE EXPED. * ! -372900* LONGUEUR : 1800 * ! -373000* PREFIXE : WS-4DCO-ZEXP * ! -373100* ------------------------------------------------------ * ! -373200 ! -373300 05 WS-4DCO-ZEXP-PAGE-AREA PIC X(198). ! -373400 05 WS-4DCO-ZEXP-NB-PAG-TS PIC 9(3). ! -373500 05 WS-4DCO-ZEXP-DONNEES. ! -373600* DATE CREATION CRO ! -373700 10 WS-4DCO-ZEXP-DA-CRE-CRO PIC X(8). ! -373800* HEURE CREATION CRO ! -373900 10 WS-4DCO-ZEXP-HEU-CRE-CRO PIC X(6). ! -374000* NUMERO STRUCTURE OPERATION ! -374100 10 WS-4DCO-ZEXP-NO-STR-OPE PIC X(6). ! -374200* NUMERO AGENT OPERATION ! -374300 10 WS-4DCO-ZEXP-NO-AGT-OPE PIC X(8). ! -374400* CODE EXPEDITION ! -374500 10 WS-4DCO-ZEXP-CD-EXP PIC X(1). ! -374600 05 FILLER PIC X(1570). ! -374700* ! -374800 ! -374900 03 WS-4DCO-ZRACP REDEFINES WS-4DCO-PROGRAM. ! -375000* ============== ! -375100* ------------------------------------------------------ * ! -375200* COMMAREA : ZOOM REEDITION RACHATS PARTIELS * ! -375300* LONGUEUR : 1800 * ! -375400* PREFIXE : WS-4DCO-ZRACP * ! -375500* ------------------------------------------------------ * ! -375600 ! -375700 05 WS-4DCO-ZRACP-PAGE-AREA PIC X(198). ! -375800 05 WS-4DCO-ZRACP-NB-PAG-TS PIC 9(3). ! -375900 05 WS-4DCO-ZRACP-DONNEES. ! -376000* DATE CREATION CRO ! -376100 10 WS-4DCO-ZRACP-DA-CRE-CRO PIC X(8). ! -376200* HEURE CREATION CRO ! -376300 10 WS-4DCO-ZRACP-HEU-CRE-CRO PIC X(6). ! -376400* NUMERO STRUCTURE OPERATION ! -376500 10 WS-4DCO-ZRACP-CD-TY-CRO PIC X(3). ! -376600* NUMERO STRUCTURE OPERATION ! -376700 10 WS-4DCO-ZRACP-NO-STR-OPE PIC X(6). ! -376800* NUMERO STRUCTURE GESTION ! -376900 10 WS-4DCO-ZRACP-NO-STR-GTN PIC X(6). ! -377000* NUMERO AGENT OPERATION ! -377100 10 WS-4DCO-ZRACP-NO-AGT-OPE PIC X(8). ! -377200* MONTANT CREDIT SOCIETAIRE ! -377300 10 WS-4DCO-ZRACP-MT-CRD-SOC PIC S9(15). ! -377400 10 WS-4DCO-ZRACP-MT-CRD-SOC-R REDEFINES ! -377500 WS-4DCO-ZRACP-MT-CRD-SOC PIC S9(13)V9(2). ! -377600* NUMERO RIB ! -377700 10 WS-4DCO-ZRACP-NO-RIB PIC X(23). ! -377800* TYPE IMPOSITION ! -377900 10 WS-4DCO-ZRACP-TY-IMT-ITT PIC X(1). ! -378000* MONTANT PLUS VALUE ! -378100 10 WS-4DCO-ZRACP-MT-PV PIC S9(15). ! -378200 10 WS-4DCO-ZRACP-MT-PV-R REDEFINES ! -378300 WS-4DCO-ZRACP-MT-PV PIC S9(13)V9(2). ! -378400* MONTANT PLUS VALUE F8 ! -378500 10 WS-4DCO-ZRACP-MT-PV-F8 PIC S9(15). ! -378600 10 WS-4DCO-ZRACP-MT-PV-F8-R REDEFINES ! -378700 WS-4DCO-ZRACP-MT-PV-F8 PIC S9(13)V9(2). ! -378800* DATE D'EFFET ! -378900 10 WS-4DCO-ZRACP-DA-EFF PIC X(8). ! -379000* MODE DE REGLEMENT ! -379100 10 WS-4DCO-ZRACP-MODE-RGL PIC X(1). ! -379200* TYPE DE LETTRE ! -379300 10 WS-4DCO-ZRACP-TY-LET PIC X(3). ! -379400* MONTANT CSG ! -379500 10 WS-4DCO-ZRACP-MT-CSG PIC S9(15). ! -379600 10 WS-4DCO-ZRACP-MT-CSG-R REDEFINES ! -379700 WS-4DCO-ZRACP-MT-CSG PIC S9(13)V9(2). ! -379800* MONTANT PRELEVEMENTS SOCIAUX ! -379900 10 WS-4DCO-ZRACP-MT-PLV-SOC PIC S9(15). ! -380000 10 WS-4DCO-ZRACP-MT-PLV-SOC-R REDEFINES ! -380100 WS-4DCO-ZRACP-MT-PLV-SOC PIC S9(13)V9(2). ! -380200* MONTANT PRELEVEMENT LIBERATOIRE ! -380300 10 WS-4DCO-ZRACP-MT-PLV-LBL PIC S9(15). ! -380400 10 WS-4DCO-ZRACP-MT-PLV-LBL-R REDEFINES ! -380500 WS-4DCO-ZRACP-MT-PLV-LBL PIC S9(13)V9(2). ! -380600* MONTANT PRELEVEMENT LIBERATOIRE F8 ! -380700 10 WS-4DCO-ZRACP-MT-PLV-LBL-F8 PIC S9(15). ! -380800 10 WS-4DCO-ZRACP-MT-PLV-LBL-F8-R REDEFINES ! -380900 WS-4DCO-ZRACP-MT-PLV-LBL-F8 PIC S9(13)V9(2). ! -381000* MONTANT VERSEMENT RDS ! -381100 10 WS-4DCO-ZRACP-MT-VER-RDS PIC S9(15). ! -381200 10 WS-4DCO-ZRACP-MT-VER-RDS-R REDEFINES ! -381300 WS-4DCO-ZRACP-MT-VER-RDS PIC S9(13)V9(2). ! -381400 05 FILLER PIC X(1406). ! -381500* ! -381600 ! -381700 03 WS-4DCO-ZCIVIL REDEFINES WS-4DCO-PROGRAM. ! -381800* ============== ! -381900* ------------------------------------------------------ * ! -382000* COMMAREA : ZOOM REEDITION MODIFICATION ETAT CIVIL * ! -382100* LONGUEUR : 1800 * ! -382200* PREFIXE : WS-4DCO-ZCIVIL * ! -382300* ------------------------------------------------------ * ! -382400 ! -382500 05 WS-4DCO-ZCIVIL-PAGE-AREA PIC X(198). ! -382600 05 WS-4DCO-ZCIVIL-NB-PAG-TS PIC 9(3). ! -382700 05 WS-4DCO-ZCIVIL-DONNEES. ! -382800* DATE CREATION CRO ! -382900 10 WS-4DCO-ZCIVIL-DA-CRE-CRO PIC X(8). ! -383000* HEURE CREATION CRO ! -383100 10 WS-4DCO-ZCIVIL-HEU-CRE-CRO PIC X(6). ! -383200* NUMERO STRUCTURE OPERATION ! -383300 10 WS-4DCO-ZCIVIL-NO-STR-OPE PIC X(6). ! -383400* NUMERO AGENT OPERATION ! -383500 10 WS-4DCO-ZCIVIL-NO-AGT-OPE PIC X(8). ! -383600* NOM MODIFICATION ! -383700 10 WS-4DCO-ZCIVIL-CD-NOM-MOD PIC X(32). ! -383800* INTITULE MODIFICATION ! -383900 10 WS-4DCO-ZCIVIL-CD-INT-MODIF PIC X(2). ! -384000* DATE NAISSANCE MODIFICATION ! -384100 10 WS-4DCO-ZCIVIL-DA-NAI-MODIF PIC X(8). ! -384200 05 FILLER PIC X(1529). ! -384300 ! -384400 ! -384500*================================================================ ! -384600*= APPLICATION : GESTION DES HABILITATIONS = ! -384700*================================================================ ! -384800* ! -384900 03 WS-4DCO-HABILITATION REDEFINES WS-4DCO-PROGRAM. ! -385000* ==================== ! -385100* ------------------------------------------------------ * ! -385200* COMMAREA : GESTION DES HABILITATIONS * ! -385300* LONGUEUR : 1800 * ! -385400* PREFIXE : WS-4DCO-98XX * ! -385500* ------------------------------------------------------ * ! -385600 ! -385700 05 WS-4DCO-HABI-9800. ! -385800* ------------------------------------------------------ * ! -385900* COMMAREA : APPLICATION HABILITATION (PARTIE COMMUNE) * ! -386000* LONGUEUR : 0400 * ! -386100* PREFIXE : WS-4DCO-9800 * ! -386200* ------------------------------------------------------ * ! -386300 ! -386400 10 WS-4DCO-9800-CD-PTN-DLGAIRE PIC X(05). ! -386500* CODE PARTENAIRE DELEGATAIRE ! -386600 10 WS-4DCO-9800-LA-PTN-DLGAIRE PIC X(16). ! -386700* LIBELLE COURT PARTENAIRE DELEGATAIRE ! -386800 10 WS-4DCO-9800-CD-PFL-DLGAIRE PIC X(03). ! -386900* CODE PROFIL DELEGATAIRE ! -387000 10 WS-4DCO-9800-LA-PFL-DLGAIRE PIC X(16). ! -387100* LIBELLE COURT PROFIL DELEGATAIRE ! -387200 10 WS-4DCO-9800-CD-IDT-DLGAIRE PIC X(08). ! -387300* CODE IDENTIFICATEUR DELEGATAIRE ! -387400 10 WS-4DCO-9800-CD-PTN-DLGUE PIC X(05). ! -387500* CODE PARTENAIRE DELEGUE ! -387600 10 WS-4DCO-9800-LA-PTN-DLGUE PIC X(16). ! -387700* LIBELLE COURT PARTENAIRE DELEGUE ! -387800 10 WS-4DCO-9800-CD-PFL-DLGUE PIC X(03). ! -387900* CODE PROFIL DELEGUE ! -388000 10 WS-4DCO-9800-LA-PFL-DLGUE PIC X(16). ! -388100* LIBELLE COURT PROFIL DELEGUE ! -388200 10 WS-4DCO-9800-CD-IDT-DLGUE PIC X(08). ! -388300* CODE IDENTIFICATEUR ! -388400 10 WS-4DCO-9800-IDC-MAJ PIC X(01). ! -388500* INDICATEUR DE MISE A JOUR ! -388600 10 WS-4DCO-9800-LIB-PTN-DLGAIRE PIC X(32). ! -388700* LIBELLE LONG PARTENAIRE EN LIGNE ! -388800 10 WS-4DCO-9800-CD-TY-PFL-DLGUE PIC X(01). ! -388900* CODE TYPE DE PROFIL DELEGUE ! -389000 10 WS-4DCO-9800-NO-PTN-DLGAIRE PIC 9(03). ! -389100* CODE PARTENAIRE DELEGATAIRE ! -389200 10 WS-4DCO-9800-NO-PTN-DLGUE PIC 9(03). ! -389300* CODE PARTENAIRE DELEGUE ! -389400 10 WS-4DCO-9800-IDC-IDT-ITN PIC X(1). ! -389500* INDICATEUR IDENTIFIANT INTERNET ! -389600 10 WS-4DCO-9800-NIV-DRG PIC 9(3). ! -389700* Niveau de d�rogation ! -389800 10 WS-4DCO-9800-NO-TEL-SL PIC X(11). ! -389900* NUMERO DE TELEPHONE ! -390000 10 WS-4DCO-9800-NO-TEL-DM PIC X(11). ! -390100* NUMERO DE TELEPHONE DOMAINE ! -390200 10 WS-4DCO-9800-NO-FAX PIC X(12). ! -390300* NUMERO DE FAX ! -390400 10 WS-4DCO-9800-CD-PROV PIC X(03). ! -390500 88 ADMINISTRATEUR VALUE 'ADM'. ! -390600 88 DELEGUE VALUE 'DLG'. ! -390700 88 IDENTIFICATEUR VALUE 'IDT'. ! -390800 10 WS-4DCO-9800-IDC-TC98060 PIC X(01). ! -390900* INDICATEUR PROVENANCE MENU HABI PARTENAIRE ! -391000* ! -391100 10 FILLER PIC X(222). ! -391200* ! -391300* ! -391400* ! -391500 05 WS-4DCO-HABI-DETAIL. ! -391600* ------------------------------------------------------ * ! -391700* COMMAREA : APPLICATION HABILITATION (DETAIL) * ! -391800* LONGUEUR : 1400 * ! -391900* PREFIXE : WS-4DCO-98NN * ! -392000* ------------------------------------------------------ * ! -392100 10 FILLER PIC X(1400). ! -392200 ! -392300***************************************************************** ! -392400 ! -392500 ! -392600 05 WS-4DCO-98400 REDEFINES WS-4DCO-HABI-DETAIL. ! -392700* ================= ! -392800* ------------------------------------------------------ * ! -392900* COMMAREA : CREATION D'UN IDENTIFICATEUR * ! -393000* LONGUEUR : 1400 * ! -393100* PREFIXE : WS-4DCO-9840 * ! -393200* ------------------------------------------------------ * ! -393300 07 WS-4DCO-98400-IDT. ! -393400 ! -393500 10 WS-4DCO-9840-CD-IDT PIC X(08). ! -393600* CODE IDENTIFICATEUR ! -393700 10 WS-4DCO-9840-CD-PFL PIC X(03). ! -393800* CODE PROFIL AFFECTE ! -393900 10 WS-4DCO-9840-LIBPFL PIC X(32). ! -394000* LIBELLE PROFIL AFFECTE ! -394100 10 WS-4DCO-9840-SELPFL PIC X. ! -394200* ZONE DE SELECT PF10 SUR PROFIL AFFECTE ! -394300 10 WS-4DCO-9840-CD-CFD PIC X(01). ! -394400* CODE PROFIL CONFIDENTIALITE ! -394500 10 WS-4DCO-9840-LIBCFD PIC X(32). ! -394600* LIBELLE PROFIL CONFIDENTIALITE ! -394700 10 WS-4DCO-9840-SELCDF PIC X. ! -394800* ZONE DE SELECT PF10 POUR DETAIL CONFIDENTIALITE ! -394900 10 WS-4DCO-9840-CD-DRG PIC X(01). ! -395000* CODE AUTORISATION DEROGATION ! -395100 10 WS-4DCO-9840-SELDRG PIC X. ! -395200* ZONE DE SELECT PF10 POUR DETAIL DEROGATION ! -395300 10 WS-4DCO-9840-LIBIDT PIC X(32). ! -395400* LIBELLE CODE IDENTIFICATEUR ! -395500 10 WS-4DCO-9840-NOSTR PIC X(06). ! -395600* NUMERO DE STRUCTURE D'APPARTENANCE ! -395700 10 WS-4DCO-9840-NOAGT PIC X(08). ! -395800* NUMERO D'AGENT PARTENAIRE ! -395900 10 WS-4DCO-9840-IDC-INIT-PFL PIC X(01). ! -396000* INDICATEUR PRESENCE F10 SUR PROFIL ! -396100 10 WS-4DCO-9840-IDC-INIT-DRG PIC X(01). ! -396200* INDICATEUR PRESENCE F10 SUR PROFIL ! -396300 10 WS-4DCO-9840-IDC-INIT-CFD PIC X(01). ! -396400* INDICATEUR PRESENCE F10 SUR PROFIL ! -396500 10 WS-4DCO-9840-LIBSTR PIC X(32). ! -396600* LIBELLE PROFIL STRUCTURE ! -396700 10 WS-4DCO-9840-IDC-INIT-IDT PIC X(01). ! -396800* INDICATEUR PRESENCE SAISIE CMPL ! -396900 10 WS-4DCO-9840-MDP PIC X(08). ! -397000* INDICATEUR PRESENCE SAISIE CMPL ! -397100 10 FILLER PIC X(30). ! -397200* ZONES DISPONIBLES ! -397300 ! -397400 07 WS-4DCO-98100-ADM REDEFINES WS-4DCO-98400-IDT. ! -397500 10 FILLER PIC X(200). ! -397600* ZONES DISPONIBLES ! -397700 ! -397800 ! -397900 07 WS-4DCO-98700-DLG REDEFINES WS-4DCO-98400-IDT. ! -398000 10 FILLER PIC X(200). ! -398100* ZONES DISPONIBLES ! -398200 ! -398300 07 WS-4DCO-98900. ! -398400* ============== ! -398500* ------------------------------------------------------ * ! -398600* COMMAREA : MODIFICATION OPTIONS DES APPLICATIONS * ! -398700* LONGUEUR : 1400 * ! -398800* PREFIXE : WS-4DCO-9890 * ! -398900* ------------------------------------------------------ * ! -399000 ! -399100 10 WS-4DCO-9890. ! -399200 ! -399300 15 WS-4DCO-9890-CD-APLI PIC X(04). ! -399400* CODE APPLICATION ! -399500 15 WS-4DCO-9890-LIB-APLI PIC X(50). ! -399600* LIBELLE APPLICATION ! -399700 15 WS-4DCO-9890-SEL. ! -399800 20 WS-4DCO-9890-SELOP PIC X(01) OCCURS 12. ! -399900* STOCKAGE SELECTION ! -400000 15 WS-4DCO-9890-CD-OPT-SAUV. ! -400100* OPTION CHOISIE DU MENU PRECEDENT ! -400200 20 WS-4DCO-9890-CD-OPT-MP PIC X(002). ! -400300* OPTION CHOISIE DU MENU PRINCIPAL ! -400400 20 WS-4DCO-9890-CD-OPT-MS PIC X(002). ! -400500* OPTION CHOISIE DU MENU SECONDAIRE ! -400600 20 WS-4DCO-9890-CD-OPT-MT PIC X(002). ! -400700* OPTION CHOISIE DU MENU TERTIAIRE ! -400800 20 WS-4DCO-9890-CD-OPT-MQ PIC X(002). ! -400900* OPTION CHOISIE DU MENU QUATERNAIRE ! -401000 15 WS-4DCO-9890-PAGE-AREA-MP PIC X(90). ! -401100* PAGE AREA START -ENCHAINEMENT PGMS AVEC SEGLOOP ! -401200 15 WS-4DCO-9890-PAGE-AREA-MS PIC X(90). ! -401300* PAGE AREA START -ENCHAINEMENT PGMS AVEC SEGLOOP ! -401400 15 WS-4DCO-9890-PAGE-AREA-MT PIC X(90). ! -401500* PAGE AREA START -ENCHAINEMENT PGMS AVEC SEGLOOP ! -401600 15 WS-4DCO-9890-PAGE-AREA-MQ PIC X(90). ! -401700* PAGE AREA START -ENCHAINEMENT PGMS AVEC SEGLOOP ! -401800 15 WS-4DCO-9890-LIB-CD-OPT-MS PIC X(50). ! -401900* LIBELLE OPTION CHOISIE DU MENU SECONDAIRE ! -402000 15 WS-4DCO-9890-LIB-CD-OPT-MT PIC X(50). ! -402100* LIBELLE OPTION CHOISIE DU MENU TERTIAIRE ! -402200 15 WS-4DCO-9890-LIB-CD-OPT-MQ PIC X(50). ! -402300* LIBELLE OPTION CHOISIE DU MENU QUATERNAIRE ! -402400 15 WS-4DCO-9890-NO-ITEM-TS-A PIC 9(04) COMP. ! -402500* PREMIER ITEM TS AI03 DU PRG ! -402600 15 WS-4DCO-9890-TOP-MAJ-EFFECTUEE PIC X(01). ! -402700* TOP MODIF PAGE ! -402800 15 WS-4DCO-9890-ITEM-MENUPRE-P PIC 9(04) COMP. ! -402900* ITEM AI03 DU MENU PRECEDENT PRIMAIRE ! -403000 15 WS-4DCO-9890-ITEM-MENUPRE-S PIC 9(04) COMP. ! -403100* ITEM AI03 DU MENU PRECEDENT SECONDAIRE ! -403200 15 WS-4DCO-9890-ITEM-MENUPRE-T PIC 9(04) COMP. ! -403300* ITEM AI03 DU MENU PRECEDENT TERTIAIRE ! -403400 15 WS-4DCO-9890-STOCK-AUTORIS. ! -403500 20 WS-4DCO-9890-ST-AUT PIC X(01) OCCURS 36. ! -403600* STOCKAGE AUTORISATIONS POUR REMONTEE DU NON ! -403700 07 WS-4DCO-98040-DRG. ! -403800* ================== ! -403900* ------------------------------------------------------ * ! -404000* COMMAREA : CREATION ET MODIFS DE DEROGATIONS * ! -404100* PREFIXE : WS-4DCO-9804-DRG * ! -404200* ------------------------------------------------------ * ! -404300 ! -404400 10 WS-4DCO-9804-DRG. ! -404500 ! -404600 15 WS-4DCO-9804-TABDEROG OCCURS 24. ! -404700* TABLE DEROGATIONS ! -404800 20 WS-4DCO-9804-CD-DRG PIC X(2). ! -404900* CODES DEROGATIONS ! -405000 20 WS-4DCO-9804-IDC-AUT-DRG PIC X. ! -405100* INDIC AUTO DEROGATION ! -405200 ! -405300 07 WS-4DCO-98040-TAB-TST. ! -405400* ====================== ! -405500* ------------------------------------------------------ * ! -405600* COMMAREA : CREATION ET MODIFS DE DEROGATIONS * ! -405700* PREFIXE : WS-4DCO-9804-DRG * ! -405800* ------------------------------------------------------ * ! -405900 ! -406000 15 WS-4DCO-9840-TABAPPLI OCCURS 20. ! -406100* TABLE APPLICATION GEODE ! -406200 20 WS-4DCO-9840-CD-TST-AS PIC X(4). ! -406300* APPLICATION GEODE ! -406400 20 WS-4DCO-9840-CD-TST-REEL PIC X(4). ! -406500* APPLICATION GEODE-REELLE ! -406600 ! -406700 07 FILLER PIC X(339). ! -406800* ZONES DISPONIBLES ! -406900 ! -407000 05 WS-4DCO-98590 REDEFINES WS-4DCO-HABI-DETAIL. ! -407100* ============== ! -407200* ------------------------------------------------------ * ! -407300* COMMAREA : LISTE DE IDENTIFICATEURS / PARTENAIRE * ! -407400* LONGUEUR : 1400 * ! -407500* PREFIXE : WS-4DCO-9890 * ! -407600* ------------------------------------------------------ * ! -407700 ! -407800 10 WS-4DCO-9890. ! -407900 ! -408000 15 WS-4DCO-9859-SEL. ! -408100 20 WS-4DCO-9859-SELIDT PIC X(01) OCCURS 12. ! -408200* STOCKAGE SELECTION ! -408300 15 WS-4DCO-9859-IDC-OCC-SPL PIC X(1). ! -408400* INDICATEUR OCCURENCE SUPPLEMENTAIRE ! -408500 15 WS-4DCO-9859-PAGE-AREA PIC X(198). ! -408600* ! -408700 15 FILLER PIC X(1189). ! -408800* ZONES DISPONIBLES ! -408900* ! -409000 05 WS-4DCO-98210 REDEFINES WS-4DCO-HABI-DETAIL. ! -409100* ============== ! -409200* ------------------------------------------------------ * ! -409300* COMMAREA : AFFECTATION DEROGATION * ! -409400* LONGUEUR : 1400 * ! -409500* PREFIXE : WS-4DCO-9890 * ! -409600* ------------------------------------------------------ * ! -409700 ! -409800 10 WS-4DCO-9821. ! -409900 ! -410000 15 WS-4DCO-9821-TABDEROG OCCURS 24. ! -410100* TABLE DEROGATIONS ! -410200 20 WS-4DCO-9821-CD-DRG PIC X(2). ! -410300* CODES DEROGATIONS ! -410400 20 WS-4DCO-9821-IDC-AUT-DRG PIC X. ! -410500* INDIC AUTO DEROGATION ! -410600 15 FILLER PIC X(1328). ! -410700* ZONES DISPONIBLES ! -410800 05 WS-4DCO-98220 REDEFINES WS-4DCO-HABI-DETAIL. ! -410900* ================= ! -411000* ------------------------------------------------------ * ! -411100* COMMAREA : AFFECTATION CONFIDENTIALITE ADM * ! -411200* LONGUEUR : 1400 * ! -411300* PREFIXE : WS-4DCO-9822 * ! -411400* ------------------------------------------------------ * ! -411500 07 WS-4DCO-98220-ADM. ! -411600 ! -411700 10 WS-4DCO-9822-CD-CFD PIC X(01). ! -411800* CODE PROFIL CONFIDENTIALITE ! -411900 10 WS-4DCO-9822-LIBCFD PIC X(32). ! -412000* LIBELLE PROFIL CONFIDENTIALITE ! -412100 10 FILLER PIC X(1367). ! -412200* ZONES DISPONIBLES ! -412300* ------------------------------------------------------ * ! -412400 05 WS-4DCO-98240 REDEFINES WS-4DCO-HABI-DETAIL. ! -412500* ============== ! -412600* ------------------------------------------------------ * ! -412700* COMMAREA : LISTE DES PROFILS / PARTENAIRE * ! -412800* LONGUEUR : 1400 * ! -412900* PREFIXE : WS-4DCO-9824 * ! -413000* ------------------------------------------------------ * ! -413100 ! -413200 10 WS-4DCO-9824-CD-PTN PIC XXXXX. ! -413300 10 WS-4DCO-9824-CD-PFL PIC XXX. ! -413400 10 WS-4DCO-9824. ! -413500 15 WS-4DCO-9824-SEL. ! -413600 20 WS-4DCO-9824-SELIDT PIC X(01) OCCURS 12. ! -413700* STOCKAGE SELECTION ! -413800 10 FILLER PIC X(1380). ! -413900* ZONES DISPONIBLES ! -414000* ------------------------------------------------------ * ! -414100 05 WS-4DCO-98850 REDEFINES WS-4DCO-HABI-DETAIL. ! -414200* ============== ! -414300* ------------------------------------------------------ * ! -414400* COMMAREA : LISTE DES demandes racf * ! -414500* LONGUEUR : 1400 * ! -414600* PREFIXE : ws-4dco-98850 * ! -414700* ------------------------------------------------------ * ! -414800* ! -414900 07 WS-4DCO-H0-COM-COMMAREA-APLI. ! -415000 10 WS-4DCO-H0-NIV-DLG PIC X(003). ! -415100 10 WS-4DCO-H0-NO-SAL PIC X(008). ! -415200 10 WS-4DCO-H0-NIV-DLG-MEN PIC X(003). ! -415300 10 WS-4DCO-H2-ZON-COMMAREA-APLI. ! -415400 15 WS-4DCO-H2-ZONE-SAISIE. ! -415500 20 WS-4DCO-H2-IDT-UTI-DE PIC X(008). ! -415600 20 WS-4DCO-H2-IDT-UTI PIC X(008). ! -415700 20 WS-4DCO-H2-LIB-NOM PIC X(032). ! -415800 20 WS-4DCO-H2-CD-GRP-RACF PIC X(008). ! -415900 20 WS-4DCO-H2-MDP PIC X(008). ! -416000 20 WS-4DCO-H2-CD-ACT-RACF PIC X(001). ! -416100 20 WS-4DCO-H2-IDC-GRP-DFT PIC X(001). ! -416200 10 WS-4DCO-H3-ZON-COMMAREA-APLI. ! -416300 15 WS-4DCO-H3-IDT-UTI-DE PIC X(008). ! -416400 15 WS-4DCO-H3-SAUV-ACT-DETAIL. ! -416500 20 WS-4DCO-H3-TM-STP-DEM-RACF ! -416600 PIC X(26) OCCURS 13. ! -416700 15 WS-4DCO-H3-IND PIC S9(4) COMP. ! -416800 10 WS-4DCO-H4-ZON-COMMAREA-APLI. ! -416900 15 WS-4DCO-H4-IDT-UTI-DE PIC X(8). ! -417000 15 WS-4DCO-H4-TM-STP-DEM-RACF PIC X(26). ! -417100 15 WS-4DCO-H4-TM-STP-RPN-RACF PIC X(26). ! -417200 15 WS-4DCO-H4-IDT-UTI PIC X(8). ! -417300 15 WS-4DCO-H4-CD-ACT-RACF PIC X(1). ! -417400 15 WS-4DCO-H4-CD-RET PIC X(4). ! -417500 15 WS-4DCO-H4-TXT-RAI-ANO PIC X(80). ! -417600 15 WS-4DCO-H4-LIB-NOM PIC X(32). ! -417700 15 WS-4DCO-H4-DA-CRE. ! -417800 20 WS-4DCO-H4-DA-CRE-S PIC X(2). ! -417900 20 WS-4DCO-H4-DT-CRE. ! -418000 25 WS-4DCO-H4-DT-CRE-A2 PIC X(2). ! -418100 25 WS-4DCO-H4-DT-CRE-M PIC X(2). ! -418200 25 WS-4DCO-H4-DT-CRE-J PIC X(2). ! -418300 15 WS-4DCO-H4-CD-GRP-RACF PIC X(8). ! -418400 15 WS-4DCO-H4-DA-DNR-MAJ-MDP PIC X(10). ! -418500 15 WS-4DCO-H4-DUR-ITV-MAJ-MDP PIC 9(9) COMP. ! -418600 15 WS-4DCO-H4-TXT-ATB-UTI PIC X(32). ! -418700 15 WS-4DCO-H4-TM-STP-DNR-UTI PIC X(26). ! -418800 15 FILLER PIC X(200). ! -418900 10 WS-4DCO-H0-TYP-ERR PIC X. ! -419000 88 WS-4DCO-H0-TRAITEMENT-OK VALUE SPACE. ! -419100 88 WS-4DCO-H0-ERREUR-BLOQUANTE VALUE 'B'. ! -419200 10 WS-4DCO-H0-ERRMSG1 PIC X(006). ! -419300 10 WS-4DCO-H0-LIB-CPL-MES PIC X(032). ! -419400 10 WS-4DCO-H0-CD-FCT PIC X(002). ! -419500 88 WS-4DCO-H0-MODE-VISUALISATION VALUE 'VI'. ! -419600 10 FILLER PIC X(456). ! -419700* ZONES DISPONIBLES ! -419800 ! -419900 ! -420000 05 WS-4DCO-98H00 REDEFINES WS-4DCO-HABI-DETAIL. ! -420100* ================= ! -420200* ------------------------------------------------------ * ! -420300* COMMAREA : GESTION HABILITATIONS PARTENAIRE: * ! -420400* CREATION D'UN IDENTIFICATEUR * ! -420500* LONGUEUR : 1400 * ! -420600* PREFIXE : WS-4DCO-98H0 * ! -420700* ------------------------------------------------------ * ! -420800 07 WS-4DCO-98H00-IDT. ! -420900 ! -421000 10 WS-4DCO-98H0-CD-IDT PIC X(08). ! -421100* CODE IDENTIFICATEUR ! -421200 10 WS-4DCO-98H0-CD-PFL PIC X(03). ! -421300* CODE PROFIL AFFECTE ! -421400 10 WS-4DCO-98H0-LIBPFL PIC X(32). ! -421500* LIBELLE PROFIL AFFECTE ! -421600 10 WS-4DCO-98H0-LIBIDT PIC X(32). ! -421700* LIBELLE CODE IDENTIFICATEUR ! -421800 10 WS-4DCO-98H0-NOSTR PIC X(06). ! -421900* NUMERO DE STRUCTURE D'APPARTENANCE ! -422000 10 WS-4DCO-98H0-LIBSTR PIC X(32). ! -422100* LIBELLE PROFIL STRUCTURE ! -422200 10 WS-4DCO-98H0-MDP PIC X(08). ! -422300* MOT DE PASSE ! -422400 10 FILLER PIC X(1271). ! -422500* ZONES DISPONIBLES ! -422600 ! -422700 ! -422800 05 WS-4DCO-98H40 REDEFINES WS-4DCO-HABI-DETAIL. ! -422900* ============== ! -423000* ------------------------------------------------------ * ! -423100* COMMAREA : LISTE DE IDENTIFICATEURS / PARTENAIRE * ! -423200* LONGUEUR : 1400 * ! -423300* PREFIXE : WS-4DCO-98H4 * ! -423400* ------------------------------------------------------ * ! -423500 ! -423600 10 WS-4DCO-98H4. ! -423700 ! -423800 15 WS-4DCO-98H4-SEL. ! -423900 20 WS-4DCO-98H4-SELIDT PIC X(01) OCCURS 12. ! -424000* STOCKAGE SELECTION ! -424100 15 WS-4DCO-98H4-IDC-OCC-SPL PIC X(1). ! -424200* INDICATEUR OCCURENCE SUPPLEMENTAIRE ! -424300 15 WS-4DCO-98H4-PAGE-AREA PIC X(198). ! -424400* ! -424500 15 FILLER PIC X(1189). ! -424600* ZONES DISPONIBLES ! -424700* ! -424800 ! -424900*================================================================ ! -425000*= APPLICATION : GESTION DU PARAMETRAGE = ! -425100*================================================================ ! -425200* ! -425300 03 WS-4DCO-4DAA REDEFINES WS-4DCO-PROGRAM. ! -425400* ============ ! -425500 ! -425600* ============== ! -425700* ------------------------------------------------------ * ! -425800* COMMAREA : PARAMETRAGE : MENU GENERAL * ! -425900* LONGUEUR : 1800 * ! -426000* PREFIXE : WS-4DCO-4DAA * ! -426100* ------------------------------------------------------ * ! -426200 ! -426300 10 WS-4DCO-4DAA. ! -426400 ! -426500 15 WS-4DCO-4DAA-CD-INT PIC X(02). ! -426600* CODE INTITULE ! -426700 15 WS-4DCO-4DAA-TIMESTAMP PIC X(26). ! -426800* TIME STAMP ! -426900 15 WS-4DCO-4DAA-PAGE-AREA PIC X(198). ! -427000* PAGE AREA START ! -427100 15 WS-4DCO-4DAA-CD-GAM PIC S9(02) COMP-3. ! -427200* CODE GAMME ! -427300 15 WS-4DCO-4DAA-CD-STR PIC X(06). ! -427400* NUMERO DE STRUCTURE COMMERCIALE ! -427500 15 WS-4DCO-4DAA-CD-ETB-FNC PIC X(05). ! -427600* CODE ORGANISME FINANCIER ! -427700 15 WS-4DCO-4DAA-CD-VLR PIC X(12). ! -427800* CODE SUPPORT ! -427900 15 WS-4DCO-4DAA-NO-ORG-FNC PIC S9(03) COMP-3. ! -428000* NUMERO INTERNE ORGANISME FINANCIER ! -428100 15 WS-4DCO-4DAA-TIMESTAMP-2 PIC X(26). ! -428200* TIME STAMP 2 ! -428300 15 WS-4DCO-4DAA-NO-SPP-FNC PIC S9(06) COMP-3. ! -428400* NUMERO SUPPORT FINANCIER ! -428500 15 WS-4DCO-4DAA-ECR-ORI PIC X(04). ! -428600* NUMERO SUPPORT FINANCIER ! -428700 15 WS-4DCO-4DAA-LIB-SPP PIC X(32). ! -428800* LIBELLE SUPPORT FINANCIER ! -428900 15 FILLER PIC X(1481). ! -429000* 15 FILLER PIC X(1513). ! -429100* 15 FILLER PIC X(1521). ! -429200* ZONES DISPONIBLES ! -429300* ! -429400 03 WS-4DCO-4DAB REDEFINES WS-4DCO-PROGRAM. ! -429500* ============ ! -429600 ! -429700* ============== ! -429800* ------------------------------------------------------ * ! -429900* COMMAREA : PARAMETRAGE * ! -430000* LONGUEUR : 1800 * ! -430100* PREFIXE : WS-4DCO-4DAB * ! -430200* ------------------------------------------------------ * ! -430300 ! -430400 05 WS-4DCO-4DAB. ! -430500 ! -430600 15 WS-4DCO-4DAB-NO-PTN PIC S9(03) COMP-3. ! -430700* NUMERO INTERNE PARTENAIRE ! -430800 15 WS-4DCO-4DAB-TIMESTAMP1 PIC X(26). ! -430900* TIME STAMP ! -431000 15 WS-4DCO-4DAB-TIMESTAMP2 PIC X(26). ! -431100* TIME STAMP ! -431200 15 WS-4DCO-4DAB-CD-PTN PIC X(05). ! -431300* NUMERO EXTERNE PARTENAIRE ! -431400 15 WS-4DCO-4DAB-PAGE-AREA PIC X(198). ! -431500* PAGE AREA START ! -431600 15 WS-4DCO-4DAB-NO-STR PIC X(06). ! -431700* NUMERO EXTERNE PARTENAIRE ! -431800 15 WS-4DCO-4DAB-MODE-RGL PIC X(01). ! -431900* MODE DE REGLEMENT PARTENAIRE ! -432000 15 WS-4DCO-4DAB-MAJ-PTN PIC X(01). ! -432100* INDICATEUR MISE A JOUR NO PARTENAIRE ! -432200 10 WS-4DCO-4DAB-1. ! -432300 15 WS-4DCO-4DAB-TYPRD PIC S9(02) COMP-3. ! -432400* NUMERO TYPE DE PRODUIT ! -432500 15 WS-4DCO-4DAB-NOGEN PIC X(03). ! -432600* NUMERO DE GENERATION ! -432700 15 WS-4DCO-4DAB-TY-PRD-INI PIC S9(02) COMP-3. ! -432800* NUMERO TYPE DE PRODUIT INITIAL ! -432900 15 WS-4DCO-4DAB-PRD PIC X(02). ! -433000* CODE PRODUIT ! -433100 15 WS-4DCO-4DAB-NO-PRD-INI PIC S9(03) COMP-3. ! -433200* NUMERO DE PRODUIT INITIAL ! -433300 15 WS-4DCO-4DAB-CD-PTN-INI PIC X(05). ! -433400* NUMERO EXTERNE PARTENAIRE INITIAL ! -433500 15 WS-4DCO-4DAB-DA-VAL-DBT PIC X(10). ! -433600* DATE DEBUT ! -433700 15 WS-4DCO-4DAB-DA-FIN-VAL PIC X(10). ! -433800* DATE FIN ! -433900 15 WS-4DCO-4DAB-NOM-PRD PIC X(32). ! -434000* LIBELLE PRODUIT ! -434100 15 WS-4DCO-4DAB-MAJ-PTN-PRD PIC X(01). ! -434200* INDICATEUR MISE A JOUR NO PARTENAIRE PRODUIT ! -434300 15 WS-4DCO-4DAB-NO-PRD PIC S9(03) COMP-3. ! -434400* NUMERO INTERNE PRODUIT ! -434500 15 WS-4DCO-4DAB-V4D01130. ! -434600* CONTENUE TABLE DES PRODUITS ! -434700 20 WS-4DCO-4DAB-LIB-PRD PIC X(32). ! -434800 20 WS-4DCO-4DAB-LA-PRD PIC X(16). ! -434900 20 WS-4DCO-4DAB-MT-MIN-VER-INI ! -435000 PIC S9(07)V99 COMP-3. ! -435100 20 WS-4DCO-4DAB-MT-MIN-VER-EXC ! -435200 PIC S9(07)V99 COMP-3. ! -435300 20 WS-4DCO-4DAB-MT-MX-DRT-ENT ! -435400 PIC S9(07)V99 COMP-3. ! -435500 20 WS-4DCO-4DAB-MT-MIN-RCH-PART ! -435600 PIC S9(07)V99 COMP-3. ! -435700 20 WS-4DCO-4DAB-MT-MIN-EPG-RST ! -435800 PIC S9(07)V99 COMP-3. ! -435900 20 WS-4DCO-4DAB-MT-MIN-AV ! -436000 PIC S9(13)V99 COMP-3. ! -436100 20 WS-4DCO-4DAB-MT-EPG-RST-AV ! -436200 PIC S9(13)V99 COMP-3. ! -436300 20 WS-4DCO-4DAB-TX-MX-EPG-DSP ! -436400 PIC S9(03)V999 COMP-3. ! -436500 20 WS-4DCO-4DAB-NB-MX-AV-A ! -436600 PIC S9(02) COMP-3. ! -436700 20 WS-4DCO-4DAB-IDC-ACC-COM PIC X(01). ! -436800 20 WS-4DCO-4DAB-AGE-MIN ! -436900 PIC S9(02) COMP-3. ! -437000 20 WS-4DCO-4DAB-IDC-VSU-STAT PIC X(01). ! -437100 20 WS-4DCO-4DAB-IDC-EDI-STAT PIC X(01). ! -437200 20 WS-4DCO-4DAB-IDC-EDI-ENC PIC X(01). ! -437300 20 WS-4DCO-4DAB-IDC-EDI-PRD PIC X(01). ! -437400 20 WS-4DCO-4DAB-CD-TRANS PIC X(04). ! -437500 20 WS-4DCO-4DAB-TX-MIN-FRS-GTN ! -437600 PIC S9(02)V999 COMP-3. ! -437700 15 WS-4DCO-4DAB-V4D01200. ! -437800* CONTENUE TABLE DES RIB PRODUITS ! -437900 17 WS-4DCO-4DAB-CPT-FIN. ! -438000 20 WS-4DCO-4DAB-CDBANQF PIC X(05). ! -438100 20 WS-4DCO-4DAB-CDGUICF PIC X(05). ! -438200 20 WS-4DCO-4DAB-CPTRIBF PIC X(11). ! -438300 20 WS-4DCO-4DAB-CLERIBF PIC X(02). ! -438400 17 WS-4DCO-4DAB-CPT-PAS. ! -438500 20 WS-4DCO-4DAB-CDBANQP PIC X(05). ! -438600 20 WS-4DCO-4DAB-CDGUICP PIC X(05). ! -438700 20 WS-4DCO-4DAB-CPTRIBP PIC X(11). ! -438800 20 WS-4DCO-4DAB-CLERIBP PIC X(02). ! -438900 17 WS-4DCO-4DAB-CPT-EIB. ! -439000 20 WS-4DCO-4DAB-CDBANQE PIC X(05). ! -439100 20 WS-4DCO-4DAB-CDGUICE PIC X(05). ! -439200 20 WS-4DCO-4DAB-CPTRIBE PIC X(11). ! -439300 20 WS-4DCO-4DAB-CLERIBE PIC X(02). ! -439400 17 WS-4DCO-4DAB-CPT-SDF. ! -439500 20 WS-4DCO-4DAB-CDBANQS PIC X(05). ! -439600 20 WS-4DCO-4DAB-CDGUICS PIC X(05). ! -439700 20 WS-4DCO-4DAB-CPTRIBS PIC X(11). ! -439800 20 WS-4DCO-4DAB-CLERIBS PIC X(02). ! -439900 15 WS-4DCO-4DAB-NB-SPP-INI PIC S9(03) COMP-3. ! -440000* NOMBRE DE SUPPORTS INITIAUX ! -440100 15 WS-4DCO-4DAB-NB-SPP-A-VAL PIC S9(03) COMP-3. ! -440200* NOMBRE DE SUPPORTS A VALIDER ! -440300 15 FILLER PIC X(02). ! -440400 15 WS-4DCO-4DAB-TIMESTAMPAB PIC X(26). ! -440500* TIMESTAMP DE MAJ TX LINEAIRE ARBITRAGE ! -440600 15 WS-4DCO-4DAB-TAUX-LIN PIC X(01). ! -440700* INDICATEUR CREATION PRODUIT TAUX LINEAIRE ! -440800 15 WS-4DCO-4DAB-VERS-PERIOD PIC X(01). ! -440900* INDICATEUR CREATION PRODUIT VERSEM PERIODIQUE ! -441000 15 WS-4DCO-4DAB-VERSEMENT OCCURS 5. ! -441100* CONTENUE TABLE DES VERSEMENTS PERIODIQUES ! -441200 20 WS-4DCO-4DAB-CD-PER ! -441300 PIC X(01). ! -441400 20 WS-4DCO-4DAB-LIB-TY-VER ! -441500 PIC X(32). ! -441600 20 WS-4DCO-4DAB-MT-MIN-VER ! -441700 PIC S9(07)V99 COMP-3. ! -441800 15 WS-4DCO-4DAB-NO-PTN-INI PIC S9(03) COMP-3. ! -441900* NUMERO DE PRODUIT INITIAL ! -442000 15 WS-4DCO-4DAB-CREATION-PRD PIC X(01). ! -442100* TOP CREATION PRODUIT ! -442200 15 WS-4DCO-4DAB-NO-GAM-PRD PIC S9(02) COMP-3. ! -442300* TOP CREATION PRODUIT ! -442400 15 WS-4DCO-4DAB-TAB-TIMESTAMP OCCURS 5. ! -442500* CONTENUE TABLE DES TIMESTAMPS MAJ TAUX ! -442600 20 WS-4DCO-4DAB-TIMESTAMP ! -442700 PIC X(26). ! -442800 15 WS-4DCO-4DAB-CHG-TYPVERS PIC X(01). ! -442900* TOP MODIFCATION TYPE DE VERSEMENT ! -443000 15 WS-4DCO-4DAB-TAB-TIMESTAMP2 OCCURS 3. ! -443100* CONTENUE TABLE DES TIMESTAMPS MAJ RIB PROD ! -443200 20 WS-4DCO-4DAB-TIMESTAMPT2 ! -443300 PIC X(26). ! -443400 15 WS-4DCO-4DAB-MESSAGE PIC X(01). ! -443500* FLAG MESSAGE CREATION NOUVELLE GENERATION ! -443600 15 WS-4DCO-4DAB-MESSAGE-INF PIC X(06). ! -443700* FLAG MESSAGE INFORMATIF CREATION NOUV GENER ! -443800 15 WS-4DCO-4DAB-REF-IMP-PRO PIC X(10). ! -443900*= reference CG de prorogation ! -444000 15 WS-4DCO-4DAB-IDC-DOC PIC X(1). ! -444100*= indicateur pour coupon ech�ance (O/N) ! -444200 15 WS-4DCO-4DAB-NO-SPP-FNC PIC 9(6). ! -444300*= NO SUPPORT FINANCIER ! -444400 15 WS-4DCO-4DAB-IDC-OCC-SPL PIC X(001). ! -444500* ZONE DEPAGINATION ! -444600* 15 FILLER PIC X(21). ! -444700 15 WS-4DCO-4DAB-MT-MIN-MDT PIC S9(13)V99 COMP-3. ! -444800* montant minimum du mandat de gestion ! -444900* modif projet vie167 capgemini : ! -445000* gestion sous mandat ! -445100 15 WS-4DCO-4DAB-IDC-VER-PER-LIM PIC X(1). ! -445200*da6586 as519 Indicateur versement periodique limite ! -445300 15 WS-4DCO-4DAB-MT-VER-PER-LIM ! -445400 PIC S9(13)V9(2) COMP-3. ! -445500*da6586 as519 Montant versement periodique limite ! -445600*da6586 as519 15 FILLER PIC X(13). ! -445700 15 FILLER PIC X(04). ! -445800 15 WS-4DCO-4DAB-CD-FRS-ARBT PIC X(01). ! -445900* INDICATEUR FRAIS ARBITRAGE ! -446000 15 WS-4DCO-4DAB-MT-FOF-GLB PIC S9(13)V99 COMP-3. ! -446100* MONTANT FORFAIT GLOBAL ! -446200 15 WS-4DCO-4DAB-MT-FOF-GTN PIC S9(13)V99 COMP-3. ! -446300* MONTANT FORFAIT GESTIONNAIRE ! -446400 15 WS-4DCO-4DAB-MT-FOF-PTN PIC S9(13)V99 COMP-3. ! -446500* MONTANT FORFAIT PARTENAIRE ! -446600 15 WS-4DCO-4DAB-NOGEN-INI PIC X(03). ! -446700* NUMERO DE GENERATION POUR INITIALIS ! -446800 15 WS-4DCO-4DAB-TAUX-M OCCURS 5. ! -446900 20 WS-4DCO-4DAB-TY-TAUX-M ! -447000 PIC X(01). ! -447100 20 WS-4DCO-4DAB-TX-ACD-GTN-M ! -447200 PIC S9(02)V999 COMP-3. ! -447300 20 WS-4DCO-4DAB-TX-ACD-PTN-M ! -447400 PIC S9(02)V999 COMP-3. ! -447500 20 WS-4DCO-4DAB-TX-EFF-GLB-M ! -447600 PIC S9(02)V9(05) COMP-3. ! -447700 15 WS-4DCO-4DAB-PROD-MINITEL. ! -447800 20 WS-4DCO-4DAB-MT-MIN-VER-INI-M ! -447900 PIC S9(07)V99 COMP-3. ! -448000 20 WS-4DCO-4DAB-MT-MIN-VER-EXC-M ! -448100 PIC S9(07)V99 COMP-3. ! -448200 20 WS-4DCO-4DAB-MT-MX-DRT-ENT-M ! -448300 PIC S9(07)V99 COMP-3. ! -448400 20 WS-4DCO-4DAB-MT-MIN-VER-PER-M ! -448500 PIC S9(07)V99 COMP-3. ! -448600 20 WS-4DCO-4DAB-MT-MIN-RCH-PART-M ! -448700 PIC S9(07)V99 COMP-3. ! -448800 20 WS-4DCO-4DAB-MT-MIN-EPG-RST-M ! -448900 PIC S9(07)V99 COMP-3. ! -449000 20 WS-4DCO-4DAB-MT-MIN-AV-M ! -449100 PIC S9(11)V99 COMP-3. ! -449200 20 WS-4DCO-4DAB-MT-EPG-RST-AV-M ! -449300 PIC S9(11)V99 COMP-3. ! -449400 20 WS-4DCO-4DAB-TX-MX-EPG-DSP-M ! -449500 PIC S9(03)V999 COMP-3. ! -449600 20 WS-4DCO-4DAB-NB-MX-AV-A-M ! -449700 PIC S9(02) COMP-3. ! -449800 20 WS-4DCO-4DAB-IDC-PRD-MTL-MJ ! -449900 PIC X(01). ! -450000*= APPLICATION : PARAMETRAGE : GESTION PARTENAIRE = ! -450100 10 WS-4DCO-4DAD-4DAB REDEFINES WS-4DCO-4DAB-1. ! -450200 12 WS-4DCO-4DAD-V4D01010. ! -450300 15 WS-4DCO-4DAD-NOM-PTN PIC X(32). ! -450400 15 WS-4DCO-4DAD-NOM-PTN-MI PIC X(32). ! -450500 15 WS-4DCO-4DAD-LA-PTN PIC X(16). ! -450600 15 WS-4DCO-4DAD-LA-PTN-MI PIC X(16). ! -450700 15 WS-4DCO-4DAD-NO-TEL PIC X(11). ! -450800 15 WS-4DCO-4DAD-NO-NTL-EM PIC X(6). ! -450900 15 WS-4DCO-4DAD-IDC-PTN-CM PIC X(1). ! -451000 15 WS-4DCO-4DAD-IDC-AUT-GTN-CLI PIC X(1). ! -451100 15 WS-4DCO-4DAD-LIB-ORD-CHQ PIC X(32). ! -451200 15 WS-4DCO-4DAD-NO-POL-MN PIC X(8). ! -451300 15 WS-4DCO-4DAD-NO-POL-MX PIC X(8). ! -451400 15 WS-4DCO-4DAD-LIB-SVR PIC X(32). ! -451500 15 WS-4DCO-4DAD-NB-QZ-DRG-AV PIC S9(2) COMP-3. ! -451600 15 WS-4DCO-4DAD-NB-QZ-DRG-AP PIC S9(2) COMP-3. ! -451700 15 WS-4DCO-4DAD-LIB-VIL PIC X(32). ! -451800 15 WS-4DCO-4DAD-CD-NAF PIC X(4). ! -451900 15 WS-4DCO-4DAD-NO-IDT-EPS-SIT PIC X(9). ! -452000 15 WS-4DCO-4DAD-NO-IDT-CPL-SIT PIC X(5). ! -452100 15 WS-4DCO-4DAD-CD-MODE-RGL-COM PIC X(1). ! -452200 15 WS-4DCO-4DAD-LIB-NOM-CRP-COM PIC X(32). ! -452300 15 WS-4DCO-4DAD-CD-PER-COM-PTN PIC X(1). ! -452400 15 WS-4DCO-4DAD-IDC-EDI PIC X(1). ! -452500 15 WS-4DCO-4DAD-IDC-PEC PIC X(1). ! -452600 15 WS-4DCO-4DAD-CD-INT PIC X(2). ! -452700 15 WS-4DCO-4DAD-LIB-NOM-CRP-SF PIC X(32). ! -452800 15 WS-4DCO-4DAD-TX-DRG-FRS-DOS-SF ! -452900 PIC S9(3)V9(4) COMP-3. ! -453000 15 WS-4DCO-4DAD-IDC-SOC-FDL-GT PIC X(1). ! -453100 15 WS-4DCO-4DAD-CD-GRP-PTN PIC X(3). ! -453200 15 WS-4DCO-4DAD-IDC-AFG-AGT PIC X(1). ! -453300 15 WS-4DCO-4DAD-CD-TY-ECG-FNC PIC X(5). ! -453400 15 WS-4DCO-4DAD-IDC-PTN-ITN PIC X(1). ! -453500 15 WS-4DCO-4DAD-LIB-MTN-LGL PIC X(72). ! -453600 15 WS-4DCO-4DAD-IDC-VSU-DO PIC X(1). ! -453700 15 WS-4DCO-4DAD-IDC-TT-ACT-AG PIC X(1). ! -453800 15 WS-4DCO-4DAD-IDC-AFG-PT PIC X(1). ! -453900 15 WS-4DCO-4DAD-HEU-LIM-PEC PIC X(05). ! -454000 15 WS-4DCO-4DAD-IDC-ADR-ETG PIC X(1). ! -454100 12 WS-4DCO-4DAD-V4D01180. ! -454200 15 WS-4DCO-4DAD-LIB-RUE-1 PIC X(32). ! -454300 15 WS-4DCO-4DAD-LIB-RUE-2 PIC X(32). ! -454400 15 WS-4DCO-4DAD-LIB-COMMUNE PIC X(32). ! -454500 15 WS-4DCO-4DAD-CD-POST PIC X(5). ! -454600 15 WS-4DCO-4DAD-LIB-BUR-DIST PIC X(26). ! -454700 12 WS-4DCO-4DAD-LIB-INT PIC X(12). ! -454800 12 WS-4DCO-4DAD-RIB. ! -454900 15 WS-4DCO-4DAD-CD-BQE PIC X(05). ! -455000 15 WS-4DCO-4DAD-CD-GUI PIC X(05). ! -455100 15 WS-4DCO-4DAD-CPT-RIB. ! -455200 20 FILLER PIC X(01). ! -455300 20 WS-4DCO-4DAD-RAC PIC 9(07). ! -455400 20 WS-4DCO-4DAD-CLE-RAC PIC X(01). ! -455500 20 WS-4DCO-4DAD-CAT-CPT PIC X(02). ! -455600 15 WS-4DCO-4DAD-CLE-RIB PIC X(02). ! -455700 12 WS-4DCO-4DAD-V4D01010-COMPL. ! -455800 15 WS-4DCO-4DAD-IDC-INF-IMP PIC X(1). ! -455900 15 WS-4DCO-4DAD-IDC-SPS-IMP PIC X(1). ! -456000 15 WS-4DCO-4DAD-NB-IMP-SPS-2ND PIC S9(3) COMP-3. ! -456100 15 WS-4DCO-4DAD-NB-IMP-SPS-PCL PIC S9(3) COMP-3. ! -456200 15 WS-4DCO-4DAD-CD-TY-VTE PIC X(3). ! -456300 15 WS-4DCO-4DAD-CD-FIL PIC X(4). ! -456400 15 WS-4DCO-4DAD-IDC-PRS-FIC PIC X(1). ! -456500*= APPLICATION : PARAMETRAGE : GESTION STRUCTURE = ! -456600 10 WS-4DCO-4DAD-4DAN REDEFINES WS-4DCO-4DAB-1. ! -456700 12 WS-4DCO-4DAN-V4D01101. ! -456800 15 WS-4DCO-4DAN-NO-TEL PIC X(11). ! -456900 15 WS-4DCO-4DAN-NO-FAX PIC X(12). ! -457000*= APPLICATION : PARAMETRAGE : GESTION orga. financier = ! -457100 10 WS-4DCO-4DAD-4DMA REDEFINES WS-4DCO-4DAB-1. ! -457200 12 WS-4DCO-4DMA-V4D01320. ! -457300 15 WS-4DCO-4DMA-NO-TEL PIC X(11). ! -457400 15 WS-4DCO-4DMA-NO-FAX PIC X(12). ! -457500 10 WS-4DCO-4DAB-MIN. ! -457600 15 WS-4DCO-4DAB-CREAT-MINITEL PIC X(01). ! -457700* TOP POUR CREATION PRODUIT MINITEL ! -457800 15 WS-4DCO-4DAB-CHG-MINI PIC X(01). ! -457900* TOP MODIFCATION MINITEL ! -458000 15 WS-4DCO-4DAB-TYAUT PIC X(06). ! -458100* TYPE OPERATION MINITEL ! -458200* NUMERO DE GENERATION POUR INITIALIS ! -458300 15 WS-4DCO-4DAB-LIB-PRD-M PIC X(32). ! -458400* NOM PRODUIT MINITEL ! -458500 15 WS-4DCO-4DAB-LA-PRD-M PIC X(16). ! -458600* NOM ABREGE PRODUIT MINITEL ! -458700 15 WS-4DCO-4DAB-TABLE-SEL. ! -458800 20 WS-4DCO-4DAB-SELECTION OCCURS 15. ! -458900 25 WS-4DCO-4DAB-CODE-SELECTION ! -459000 PIC X(01). ! -459100 15 WS-4DCO-4DAB-CHG-MINI-PRD PIC X(01). ! -459200* TOP MODIFICATION OPERATION MINITEL PRD ! -459300 15 WS-4DCO-4DAB-IDC-CLA-PROR PIC X(01). ! -459400* INDICATEUR CLAUSE DE PROROGATION ! -459500 15 WS-4DCO-4DAB-CD-PRD-OR PIC X(02). ! -459600* CODE EXTERNE DU PRODUIT D ORIGINE ! -459700 15 WS-4DCO-4DAB-NO-CTR-AS PIC X(08). ! -459800* NUMERO DE CONTRAT D ASSURANCE ! -459900 15 WS-4DCO-4DAB-IDC-PRD-UNT-CPT PIC X(01). ! -460000* NUMERO DE CONTRAT D ASSURANCE ! -460100 15 WS-4DCO-4DAB-MT-MIN-ARBT PIC S9(13)V9(2) COMP-3. ! -460200* MONTANT MINIMUM POUR ARBITRAGE ! -460300 15 WS-4DCO-4DAB-LIB-PRD-ED PIC X(32). ! -460400* LIBELLE POUR EDITION ! -460500 15 WS-4DCO-4DAB-CD-TY-VER-AUT PIC X(10). ! -460600* TYPE DE VERSEMENT AUTORISES ! -460700 15 WS-4DCO-4DAB-TAUX OCCURS 7. ! -460800 20 WS-4DCO-4DAB-TY-TAUX ! -460900 PIC X(01). ! -461000 20 WS-4DCO-4DAB-TX-ACD-GTN ! -461100 PIC S9(02)V999 COMP-3. ! -461200 20 WS-4DCO-4DAB-TX-ACD-PTN ! -461300 PIC S9(02)V999 COMP-3. ! -461400 20 WS-4DCO-4DAB-TX-EFF-GLB ! -461500 PIC S9(02)V9(05) COMP-3. ! -461600 15 WS-4DCO-4DAB-INITECR PIC X. ! -461700* INDICATEUR INIT ECRAN ! -461800 15 WS-4DCO-4DAB-NB-OCC PIC S9(3) COMP-3. ! -461900* NB OCCURENCES ! -462000 15 WS-4DCO-4DAB-NO-ORD PIC S9(3) COMP-3. ! -462100* POSTE DU SUPPORT TRAITE ! -462200 15 WS-4DCO-4DAB-TY-VER-AUT-GT PIC X(10). ! -462300* TYPE DE VERSEMENT AUTORISES ! -462400 15 WS-4DCO-4DAB-TX-EFF-GLB-GT ! -462500 PIC S9(02)V9(05) COMP-3. ! -462600* TAUX EFFECTIF GLOBAL ! -462700 15 WS-4DCO-4DAB-TX-ACD-PTN-GT ! -462800 PIC S9(02)V999 COMP-3. ! -462900* TAUX ACCORDE AU PARTENAIRE ! -463000 15 WS-4DCO-4DAB-TX-ACD-GTN-GT ! -463100 PIC S9(02)V999 COMP-3. ! -463200* TAUX ACCORDE AU GESTIONNAIRE ! -463300 15 WS-4DCO-4DAB-CD-ASS-AS PIC X(03). ! -463400 15 WS-4DCO-4DAB-NOM-PATRO-AS PIC X(32). ! -463500* CODE GROUPE PARTENAIRE ! -463600 15 WS-4DCO-4DAB-CD-GRP-PTN PIC X(03). ! -463700* NUMERO DE CONTRAT TYPE COMPTABLE ! -463800 15 WS-4DCO-4DAB-NO-CTR-TY-CPB PIC 9(3). ! -463900 10 WS-4DCO-4DAB-2. ! -464000* ZONE GROUPE POUR LE PROGRAMME TC4DDI0 ! -464100 15 WS-4DCO-4DDI. ! -464200* ZONE DE PAGINATION ! -464300 16 WS-4DCO-4DDI-PAGE. ! -464400 20 WS-4DCO-4DDI-IDC-OCC-SPL PIC X(001). ! -464500 20 WS-4DCO-4DDI-NB-PAG-TS PIC 9(002). ! -464600 20 WS-4DCO-4DDI-SAUV-PAGE-AREA PIC X(198). ! -464700* ! -464800* CODE GROUPE PARTENAIRE ! -464900 16 WS-4DCO-4DDI-CDGRP PIC X(003). ! -465000* CLE DE REPOSITIONNEMENT (CODE PARTENAIRE) ! -465100 16 WS-4DCO-4DDI-CLEPOS PIC X(005). ! -465200* ! -465300* CODE MESSAGE ERREUR ! -465400 16 WS-4DCO-4DDI-ERRMSG1 PIC X(006). ! -465500* ZOOM DEBUT ! -465600* DONNEES POUR LESQUELLES ON A DEMANDE LE DETAIL ! -465700 16 WS-4DCO-4DDI-TABLE. ! -465800 18 WS-4DCO-4DDI-VAL-DTL PIC X(005) ! -465900 OCCURS 12. ! -466000 ! -466100* POSITION DU CURSEUR DU 1ER DETAIL DEMANDE ! -466200 16 WS-4DCO-4DDI-POS-CURSOR PIC 9(002). ! -466300* NB DE DETAILS TRAITES ! -466400 16 WS-4DCO-4DDI-SAUV-ACT-TRT PIC S9(4) COMP. ! -466500* NB DE DETAILS DEMANDES ! -466600 16 WS-4DCO-4DDI-SAUV-ACT-NB PIC S9(4) COMP. ! -466700* ZOOM FIN ! -466800 15 WS-4DCO-4DAB-TIMESTAMPT3 PIC X(26). ! -466900 15 WS-4DCO-4DAB-MODIF-ZONE PIC X(01). ! -467000 15 WS-4DCO-4DAB-IDC-VALID PIC X(01). ! -467100 15 WS-4DCO-4DAB-REF-IMP-CG PIC X(10). ! -467200 15 WS-4DCO-4DAB-REF-IMP-SU PIC X(10). ! -467300 15 WS-4DCO-4DAB-IDC-PRD-CMP PIC X(01). ! -467400 15 WS-4DCO-4DAB-CD-PFL-GT PIC X(03). ! -467500 15 WS-4DCO-4DAD-NB-EDI-EX PIC 9(1). ! -467600 15 WS-4DCO-4DAD-CD-TY-ARC PIC X(1). ! -467700 15 WS-4DCO-4DAD-CD-SI-DI PIC X(3). ! -467800 15 WS-4DCO-4DAB-CD-TY-CTR-ARC PIC X(6). ! -467900***************** ZONES DISPONIBLES ******************* ! -468000 15 WS-4DCO-4DAD-DA-DBT-ARC-ADH PIC X(8). ! -468100 15 WS-4DCO-4DAD-DA-DBT-ARC-AVT PIC X(8). ! -468200 15 WS-4DCO-4DAD-DA-DNN-PTN PIC X(8). ! -468300***************** ZONES DISPONIBLES ******************* ! -468400 ! -468500 10 WS-4DCO-4DAB-3 REDEFINES WS-4DCO-4DAB-2. ! -468600 15 WS-4DCO-4DAB-TX-FRS-COM-SR ! -468700 PIC S9(02)V999 COMP-3. ! -468800* TAUX DE SURCOMMISSIONNEMENT ! -468900 ! -469000 ! -469100*================================================================ ! -469200*= APPLICATION : GESTION DES AVANCES = ! -469300*= REMUNERATION ET FISCALITE = ! -469400*================================================================ ! -469500 03 WS-4DCO-4DAC REDEFINES WS-4DCO-PROGRAM. ! -469600* ============ ! -469700 ! -469800* ============== ! -469900* ------------------------------------------------------ * ! -470000* COMMAREA : GESTION DES AVANCES * ! -470100* LONGUEUR : 1800 * ! -470200* PREFIXE : WS-4DCO-4DAC * ! -470300* ------------------------------------------------------ * ! -470400 ! -470500 10 WS-4DCO-4DAC. ! -470600 ! -470700 15 WS-4DCO-4DAC-ZON-APLI. ! -470800 20 WS-4DCO-4DAC-MT-MIN-AV ! -470900 PIC S9(13)V9(2) COMP-3. ! -471000* MONTANT MINIMUM AVANCE ! -471100 20 WS-4DCO-4DAC-MT-EPG-RST-AV ! -471200 PIC S9(13)V9(2) COMP-3. ! -471300* MONTANT EPARGNE RESTANTE ! -471400 20 WS-4DCO-4DAC-TX-MX-EPG-DSP ! -471500 PIC S9(3)V9(4) COMP-3. ! -471600* TAUX MAXIMUM EPARGNE DISPONIBLE ! -471700 20 WS-4DCO-4DAC-NB-MX-AV-A PIC 9(02). ! -471800* NOMBRE MAXIMUM AVANCES ANNUELLES ! -471900 20 WS-4DCO-4DAC-DUR-DEL-CRNC PIC 9(02). ! -472000* DUREE DELAI DE CARENCE ! -472100 ! -472200 15 WS-4DCO-4DAC-ZON-SAV. ! -472300 20 WS-4DCO-4DAC-SAV-MT-MIN-AV ! -472400 PIC S9(13)V9(2) COMP-3. ! -472500* MONTANT MINIMUM AVANCE ! -472600 20 WS-4DCO-4DAC-SAV-MT-EPG-RST-AV ! -472700 PIC S9(13)V9(2) COMP-3. ! -472800* MONTANT EPARGNE RESTANTE ! -472900 20 WS-4DCO-4DAC-SAV-TX-MX-EPG-DSP ! -473000 PIC S9(3)V9(4) COMP-3. ! -473100* TAUX MAXIMUM EPARGNE DISPONIBLE ! -473200 20 WS-4DCO-4DAC-SAV-NB-MX-AV-A ! -473300 PIC 9(02). ! -473400* NOMBRE MAXIMUM AVANCES ANNUELLES ! -473500 20 WS-4DCO-4DAC-SAV-DUR-DEL-CRNC ! -473600 PIC 9(02). ! -473700* DUREE DELAI DE CARENCE ! -473800 ! -473900 15 WS-4DCO-4DAC-LIB-OPE PIC X(12). ! -474000* LIBELLE OPERATION ! -474100 ! -474200 15 FILLER PIC X(1740). ! -474300* ZONES DISPONIBLES ! -474400* ! -474500*================================================================ ! -474600*= APPLICATION : GESTION DES AVANCES = ! -474700*= TAUX SUR AVANCES = ! -474800*================================================================ ! -474900 03 WS-4DCO-4DTX REDEFINES WS-4DCO-PROGRAM. ! -475000* ============ ! -475100 ! -475200* ============== ! -475300* ------------------------------------------------------ * ! -475400* COMMAREA : TAUX SUR AVANCES * ! -475500* LONGUEUR : 1800 * ! -475600* PREFIXE : WS-4DCO-4DTX * ! -475700* ------------------------------------------------------ * ! -475800 ! -475900 10 WS-4DCO-4DTX. ! -476000 ! -476100 15 WS-4DCO-4DTX-ZON-APLI. ! -476200 20 WS-4DCO-4DTX-SAUV-MODIF OCCURS 13. ! -476300* SAUVEGARDE DES ZONES MODIFIABLES ! -476400 25 WS-4DCO-4DTX-A-REF PIC 9(4). ! -476500* ANNEE DE REFERENCE ! -476600 25 WS-4DCO-4DTX-TX-FRS-AV ! -476700 PIC S9(3)V9(4). ! -476800* TAUX DE FRAIS SUR AVANCE ! -476900 25 WS-4DCO-4DTX-TX-INT-AV ! -477000 PIC S9(3)V9(4). ! -477100* TAUX D'INTERET SUR AVANCE ! -477200 20 WS-4DCO-4DTX-SEGLOOP-COUNT-MOD PIC 9(2). ! -477300* INDICE DE LA LIGNE A MODIFIER ! -477400 20 WS-4DCO-4DTX-SEGLOOP-COUNT-ANN PIC 9(2). ! -477500* INDICE DE LA LIGNE A ANNULER ! -477600 15 FILLER PIC X(1562). ! -477700* ZONES DISPONIBLES ! -477800* ! -477900 ! -478000*================================================================ ! -478100*= APPLICATION : PARAMETRAGE : GESTION PRODUITS COMPTABLES= ! -478200*================================================================ ! -478300* ! -478400* ! -478500 03 WS-4DCO-PRD-CPB REDEFINES WS-4DCO-PROGRAM. ! -478600* ============ ! -478700 ! -478800* ============== ! -478900* ------------------------------------------------------ ! -479000* COMMAREA : PARAMETRAGE : GESTION DES PRODUITS COMPTA- ! -479100* BLES (CONTRAT-TYPE ET PRODUIT COMPTABLE) ! -479200* LONGUEUR : 1800 ! -479300* PREFIXE : WS-4DCO-PRCP ! -479400* ------------------------------------------------------ ! -479500* ! -479600* ZONES COMMUNES ! -479700* ! -479800 10 WS-4DCO-PRCP-COMMUN. ! -479900 15 WS-4DCO-PRCP-ACT PIC X(1). ! -480000* ! -480100* CONTRAT-TYPE ! -480200* ! -480300 10 WS-4DCO-PRCP-CTR-TYPE. ! -480400 15 WS-4DCO-PRCP-NO-CTR-TY-CPB PIC X(3). ! -480500 15 WS-4DCO-PRCP-NO-CTR-TY-CC PIC X(3). ! -480600 15 WS-4DCO-PRCP-CD-CAT-MIT PIC X(3). ! -480700 15 WS-4DCO-PRCP-LIB-CTR-TY-CPB PIC X(32). ! -480800 15 WS-4DCO-PRCP-CD-PRD-GNR-CPB PIC X(2). ! -480900 15 WS-4DCO-PRCP-LIB-GNR-CPB PIC X(32). ! -481000 15 WS-4DCO-PRCP-CD-CDR-PRF-CPB PIC X(2). ! -481100 15 WS-4DCO-PRCP-CD-CAT-CPB PIC X(2). ! -481200 15 WS-4DCO-PRCP-CD-CLS-CTR-TY PIC X(1). ! -481300 15 WS-4DCO-PRCP-CD-CPB-AUX PIC X(4). ! -481400 15 WS-4DCO-PRCP-TBL-ACT-FNC OCCURS 3. ! -481500 20 WS-4DCO-PRCP-CD-UNT-SPP-TBL PIC X(1). ! -481600 20 WS-4DCO-PRCP-CD-ACT-FNC-TBL PIC X(5). ! -481700 15 FILLER PIC X(182). ! -481800* ! -481900* PRODUIT COMPTABLE ! -482000* ! -482100 10 WS-4DCO-PRCP-PRD-CPB. ! -482200 15 WS-4DCO-PRCP-NO-PRD-CPB-SURA PIC X(3). ! -482300 15 WS-4DCO-PRCP-CD-UNT-SPP PIC X(1). ! -482400 15 WS-4DCO-PRCP-NO-GEN-PRD-CPB PIC X(3). ! -482500 15 WS-4DCO-PRCP-DA-DBT-GEN PIC X(8). ! -482600 15 WS-4DCO-PRCP-DA-FIN-GEN PIC X(8). ! -482700 15 WS-4DCO-PRCP-LIB-PRD-CPB PIC X(32). ! -482800 15 WS-4DCO-PRCP-CD-ACT-FNC PIC X(5). ! -482900 15 WS-4DCO-PRCP-CD-RGM-PAB PIC X(2). ! -483000 15 WS-4DCO-PRCP-TX-FRS-GTN-AN PIC 9(2)V9(3) COMP-3. ! -483100 15 WS-4DCO-PRCP-TX-MIN-ITT-GAR PIC S9(2)V9(3) COMP-3. ! -483200* ! -483300************************************ NOMBRE PRIS 353 ! -483400************************************ NOMBRE DISPONIBLE 1447 ! -483500* ZONE GROUPE POUR LE PROGRAMME TC4DDM0 ! -483600* ! -483700 10 WS-4DCO-4DDM. ! -483800* ! -483900* ZONE DE PAGINATION ! -484000 15 WS-4DCO-4DDM-PAGE. ! -484100 20 WS-4DCO-4DDM-IDC-OCC-SPL PIC X(001). ! -484200 20 WS-4DCO-4DDM-NB-PAG-TS PIC 9(002). ! -484300 20 WS-4DCO-4DDM-SAUV-PAGE-AREA PIC X(198). ! -484400* ! -484500* CLE DE REPOSITIONNEMENT (N� PRODUIT COMPTABLE) ! -484600 15 WS-4DCO-4DDM-CLEPOS PIC 9(003). ! -484700* ! -484800* CODE MESSAGE ERREUR ! -484900 15 WS-4DCO-4DDM-ERRMSG1 PIC X(006). ! -485000* ! -485100* ZOOM DEBUT ! -485200* SAUVEGARDE DES DONNEES A TRANSMETTRE QUELLES ! -485300* LA VISUALISATION EST DEMANDEE ! -485400 15 WS-4DCO-4DDM-TABLE. ! -485500 20 WS-4DCO-4DDM-TAB-ACTION-DTL OCCURS 12. ! -485600 25 WS-4DCO-4DDM-VAL-DTL PIC 9(003). ! -485700* ! -485800* POSITION DU CURSEUR DU 1ER DETAIL DEMANDE ! -485900 15 WS-4DCO-4DDM-POS-CURSOR PIC 9(002). ! -486000* NB DE DETAILS TRAITES ! -486100 15 WS-4DCO-4DDM-SAUV-ACT-TRT PIC S9(4) COMP. ! -486200* NB DE DETAILS DEMANDES ! -486300 15 WS-4DCO-4DDM-SAUV-ACT-NB PIC S9(4) COMP. ! -486400* ZOOM FIN ! -486500* ! -486600************************************ NOMBRE PRIS 605 ! -486700************************************ NOMBRE DISPONIBLE 1195 ! -486800 ! -486900* ZONE GROUPE POUR LE PROGRAMME TC4DDN0 ! -487000* ! -487100 10 WS-4DCO-4DDN. ! -487200* ! -487300* ZONE DE PAGINATION ! -487400 15 WS-4DCO-4DDN-PAGE. ! -487500 20 WS-4DCO-4DDN-IDC-OCC-SPL PIC X(001). ! -487600 20 WS-4DCO-4DDN-NB-PAG-TS PIC 9(002). ! -487700 20 WS-4DCO-4DDN-SAUV-PAGE-AREA PIC X(198). ! -487800* ! -487900* CLE DE REPOSITIONNEMENT ! -488000* 1) CODE EXTERNE DU PARTENAIRE ! -488100* 2) CODE EXTERNE DU PRODUIT ! -488200* 3) N� DE GENERATION DU PRODUIT ! -488300* CLE DE REPOSITIONNEMENT (CODE PARTENAIRE) ! -488400 15 WS-4DCO-4DDN-CLEPOS. ! -488500 20 WS-4DCO-4DDN-CD-PTN PIC X(005). ! -488600 20 WS-4DCO-4DDN-CD-PRD PIC X(002). ! -488700 20 WS-4DCO-4DDN-NO-GEN-PRD PIC X(003). ! -488800* ! -488900* CODE MESSAGE ERREUR ! -489000 15 WS-4DCO-4DDN-ERRMSG1 PIC X(006). ! -489100* ! -489200* ZOOM DEBUT 217 ! -489300* DONNEES POUR LESQUELLES LE ZOOM EST DDE ! -489400 15 WS-4DCO-4DDN-TABLE. ! -489500 20 WS-4DCO-4DDN-TAB-ACTION-DTL OCCURS 12. ! -489600 25 WS-4DCO-4DDN-Z-CD-PTN PIC X(005). ! -489700 25 WS-4DCO-4DDN-Z-CD-PRD PIC X(002). ! -489800 25 WS-4DCO-4DDN-Z-NO-GEN-PRD PIC X(003). ! -489900* ! -490000* POSITION DU CURSEUR DU 1ER DETAIL DEMANDE ! -490100 15 WS-4DCO-4DDN-POS-CURSOR PIC 9(002). ! -490200* NB DE DETAILS TRAITES ! -490300 15 WS-4DCO-4DDN-SAUV-ACT-TRT PIC S9(4) COMP. ! -490400* NB DE DETAILS DEMANDES ! -490500 15 WS-4DCO-4DDN-SAUV-ACT-NB PIC S9(4) COMP. ! -490600 15 WS-4DCO-4DDN-NO-CTR-TY-CPB PIC X(3). ! -490700* ZOOM FIN ! -490800************************************ NOMBRE PRIS 951 ! -490900************************************ NOMBRE DISPONIBLE 849 ! -491000 ! -491100 10 FILLER PIC X(849). ! -491200 ! -491300*================================================================ ! -491400*= APPLICATION : PARAMETRAGE : PRIME ETAT = ! -491500*================================================================ ! -491600* ! -491700 03 WS-4DCO-4DZZ REDEFINES WS-4DCO-PROGRAM. ! -491800* ============ ! -491900 ! -492000* ============== ! -492100* ------------------------------------------------------ * ! -492200* COMMAREA : GEODE : MENU PRINCIPAL * ! -492300* LONGUEUR : 1800 * ! -492400* PREFIXE : WS-4DCO-4DZZ * ! -492500* ------------------------------------------------------ * ! -492600 ! -492700 10 WS-4DCO-4DZZ. ! -492800 ! -492900 15 WS-4DCO-4DZZ-TOPMODIF PIC 9. ! -493000* INDIC MAJ COMMAREA PARTENAIRE ! -493100 15 FILLER PIC X(1799). ! -493200* ZONES DISPONIBLES ! -493300 ! -493400*================================================================ ! -493500*= APPLICATION : GESTION DES PERSONNES = ! -493600*================================================================ ! -493700 03 WS-4DCO-PERS REDEFINES WS-4DCO-PROGRAM. ! -493800* ============ ! -493900 ! -494000* ============== ! -494100* ------------------------------------------------------ * ! -494200* COMMAREA : PERS : GESTION DES PERSONNES * ! -494300* LONGUEUR : 1800 * ! -494400* PREFIXE : WS-4DCO-PERS * ! -494500* ------------------------------------------------------ * ! -494600 ! -494700 05 WS-4DCO-PERS-COMMUNE. ! -494800* PARTIE COMMUNE PERSONNE PHYSIQUE ET MORALE ! -494900 07 WS-4DCO-PERS-NO-PTN-MAJ PIC S9(03) COMP-3. ! -495000* NUMERO INTERNE PARTENAIRE AUTEUR DE LA MAJ ! -495100 07 WS-4DCO-PERS-NO-PTN PIC S9(03) COMP-3. ! -495200* NUMERO INTERNE PARTENAIRE ! -495300 07 WS-4DCO-PERS-CD-PTN PIC X(05). ! -495400* NUMERO EXTERNE PARTENAIRE ! -495500 07 WS-4DCO-PERS-NO-CLI-PTN PIC S9(07) COMP-3. ! -495600* NUMERO INTERNE CLIENT ! -495700 07 WS-4DCO-PERS-CD-CLI-PTN. ! -495800* NUMERO EXTERNE CLIENT ! -495900 10 WS-4DCO-PERS-CD-CLI1-PTN PIC X(07). ! -496000* NUMERO EXTERNE CLIENT PARTIE 1 ! -496100 10 WS-4DCO-PERS-CD-CLI2-PTN PIC X(08). ! -496200* NUMERO EXTERNE CLIENT PARTIE 2 ! -496300 07 WS-4DCO-PERS-VLR-IDT-MJ PIC X(08). ! -496400* IDENTIFIANT AYANT FAIT LA MAJ ! -496500 07 WS-4DCO-PERS-NO-AGT-MJ PIC X(08). ! -496600* AGENT AYANT FAIT LA MAJ ! -496700 07 WS-4DCO-PERS-CLIENT. ! -496800* INFOS CLIENT ! -496900 10 WS-4DCO-PERS-CD-INT PIC X(02). ! -497000* CODE INTITULE ! -497100 10 WS-4DCO-PERS-NOM-USU-PSE PIC X(32). ! -497200* NOM + PRENOM OU ENSEIGNE ! -497300 10 WS-4DCO-PERS-CD-TY-PSE PIC X(01). ! -497400* TYPE DE PERSONNE ! -497500 10 WS-4DCO-PERS-IDC-DOS-ATT PIC X(01). ! -497600* INDICATEUR DOSSIER EN ATTENTE ! -497700 10 WS-4DCO-PERS-IDC-ACC-MTL PIC X(01). ! -497800* INDICATEUR ACCES MINITEL ! -497900 10 WS-4DCO-PERS-IDC-INF-CFL PIC X(01). ! -498000* INDICATEUR CONFIDENTIALITE INFOS. ! -498100 10 WS-4DCO-PERS-ADR OCCURS 5. ! -498200* ADRESSES ET NUM TELEPHONE DU CLIENT ! -498300 15 WS-4DCO-PERS-NO-ORD-ADR-POST PIC S9(02) COMP-3. ! -498400* NUMERO ORDRE ADRESSE POSTALE ! -498500 15 WS-4DCO-PERS-LIB-RUE-1 PIC X(32). ! -498600* 1 ERE LIGNE ADRESSE ! -498700 15 WS-4DCO-PERS-LIB-RUE-2 PIC X(32). ! -498800* 2 EME LIGNE ADRESSE ! -498900 15 WS-4DCO-PERS-LIB-COMMUNE PIC X(32). ! -499000* 3 EME LIGNE ADRESSE ! -499100 15 WS-4DCO-PERS-CD-POST PIC X(05). ! -499200* CODE POSTAL ! -499300 15 WS-4DCO-PERS-LIB-BUR-DIST PIC X(26). ! -499400* LIBELLE DU BUREAU DISTRIBUTEUR ! -499500 15 WS-4DCO-PERS-CD-DPT PIC X(02). ! -499600* CODE DEPARTEMENT ! -499700 15 WS-4DCO-PERS-CD-COMM PIC X(03). ! -499800* CODE INSEE COMMUNE ! -499900 15 WS-4DCO-PERS-NO-TEL PIC X(11). ! -500000* NUMERO DE TELEPHONE ! -500100 15 WS-4DCO-DA-MAJ-ADR-POST. ! -500200* DATE DE DERNIERE MAJ ADRESSE POSTALE ! -500300 20 WS-4DCO-MAJ-ADR-SSAA PIC X(04). ! -500400* ANNEE DE DERNIERE MAJ ADRESSE POSTALE ! -500500 20 FILLER PIC X. ! -500600 20 WS-4DCO-MAJ-ADR-MM PIC X(02). ! -500700* MOIS DE DERNIERE MAJ ADRESSE POSTALE ! -500800 20 FILLER PIC X. ! -500900 20 WS-4DCO-MAJ-ADR-JJ PIC X(02). ! -501000* JOUR DE DERNIERE MAJ ADRESSE POSTALE ! -501100 10 WS-4DCO-PERS-CFRS PIC X(6). ! -501200* CENTRE DE FRAIS ! -501300 07 WS-4DCO-PERS-IDC-AUT-GTN-CLI PIC X. ! -501400 88 AUT-GERER VALUE 'O'. ! -501500 88 NON-AUT-GERER VALUE 'N'. ! -501600* INDIC SI PTN AUTO A GERER SES CODES CLIENTS ! -501700 07 FILLER PIC X(2). ! -501800* FILLER ! -501900* ! -502000 05 WS-4DCO-PHYS. ! -502100* COMMAREA PERSONNE PHYSIQUE ! -502200 07 WS-4DCO-PHYS-LIB-NOM PIC X(32). ! -502300* NOM ! -502400 07 WS-4DCO-PHYS-LIB-PRN PIC X(32). ! -502500* PRENOM ! -502600 07 WS-4DCO-PHYS-DA-NAI. ! -502700* DATE DE NAISSANCE ! -502800 10 WS-4DCO-PHYS-DA-NAI-SSAA PIC X(04). ! -502900* SIECLE ANNEE ! -503000 10 CARSLASH1 PIC X. ! -503100 10 WS-4DCO-PHYS-DA-NAI-MM PIC X(02). ! -503200* MOIS DE NAISSANCE ! -503300 10 CARSLASH2 PIC X. ! -503400 10 WS-4DCO-PHYS-DA-NAI-JJ PIC X(02). ! -503500* JOUR DE NAISSANCE ! -503600 07 WS-4DCO-PHYS-LIEU-NAI PIC X(32). ! -503700* LIEU DE NAISSANCE ! -503800 07 WS-4DCO-PHYS-CD-DPT-NAIS PIC X(02). ! -503900* CODE DEPARTEMENT DE NAISSANCE ! -504000 07 WS-4DCO-PHYS-CD-COMM-NAIS PIC X(03). ! -504100* CODE INSEE COMMUNE DE NAISSANCE ! -504200 07 WS-4DCO-PHYS-NOM-PATRO PIC X(32). ! -504300* NOM PATRONIMIQUE ! -504400 07 WS-4DCO-PHYS-CD-SIT-FAM PIC X(01). ! -504500* CODE SITUATION FAMILIALE ! -504600 07 FILLER PIC X(02). ! -504700* ! -504800 07 WS-4DCO-PHYS-CD-SEXE PIC X(01). ! -504900* SEXE ! -505000 07 WS-4DCO-PHYS-CD-CSP PIC X(04). ! -505100* CODE CATEGORIE SOCIO PROFESSIONNELLE ! -505200 07 WS-4DCO-PHYS-DA-DCS PIC X(10). ! -505300* DATE DECES PERSONNE PHYSIQUE ! -505400 07 WS-4DCO-PHYS-CD-OSCE-PAYS-N PIC X(03). ! -505500* CODE OSCEE PAYS ! -505600 07 WS-4DCO-PHYS-CD-OSCE-PAYS-NT PIC X(03). ! -505700* CODE OSCEE PAYS ! -505800 07 WS-4DCO-PHYS-CD-OSCE-PAYS-F PIC X(03). ! -505900* CODE OSCEE PAYS ! -506000 07 WS-4DCO-PHYS-CD-RGM-MTM PIC X(01). ! -506100* CODE REGIME MATRIMONIALE ! -506200 07 WS-4DCO-PHYS-CD-SIT-LOG PIC X(01). ! -506300* CODE SITUATION LOGEMENT ! -506400 07 WS-4DCO-PHYS-CD-CPC-JUR PIC X(02). ! -506500* CODE CAPACITE JURIDIQUE ! -506600 07 WS-4DCO-PHYS-CD-NIV-CFL-PSE PIC X(01). ! -506700* CODE NIVEAU CONFIDENTIALITE PERSONNE ! -506800 07 WS-4DCO-PHYS-CD-ORIG-DC PIC X(01). ! -506900* CODE ORIGINE ! -507000 07 FILLER PIC X(124). ! -507100* FILLER ! -507200* ! -507300 05 WS-4DCO-PERS-MORA REDEFINES WS-4DCO-PHYS. ! -507400* COMMAREA PERSONNE MORALE ! -507500 07 WS-4DCO-MORA-DA-CRE-EPS. ! -507600* DATE DE CREATION ENTREPRISE ! -507700 10 WS-4DCO-MORA-DA-CRE-EPS-SSAA PIC X(04). ! -507800* SIECLE ANNEE ! -507900 10 WS-4DCO-MORA-DA-CRE-EPS-MM PIC X(02). ! -508000* MOIS DE NAISSANCE ! -508100 10 WS-4DCO-MORA-DA-CRE-EPS-JJ PIC X(02). ! -508200* JOUR DE NAISSANCE ! -508300 07 WS-4DCO-MORA-RAI-SOC PIC X(32). ! -508400* RAISON SOCIALE ! -508500 07 WS-4DCO-MORA-LIB-ENS PIC X(32). ! -508600* ENSEIGNE COMMERCIALE ! -508700 07 WS-4DCO-MORA-LIB-NOM PIC X(32). ! -508800* NOM REPRESENTANT LEGAL ! -508900 07 WS-4DCO-MORA-NO-SIRET. ! -509000* NUMERO DE SIRET ! -509100 10 WS-4DCO-MORA-NO-IDT-EPS-SIT PIC X(09). ! -509200* NUMERO DE SIREN ! -509300 10 WS-4DCO-MORA-NO-IDT-CPL-SIT PIC X(05). ! -509400* COMPLEMENT AU SIREN ! -509500 07 WS-4DCO-MORA-JURID. ! -509600* CLASSIFICATION JURIDIQUE DE L'ENTREPRISE ! -509700 10 WS-4DCO-MORA-CD-DIV-FRM-JUR PIC X(02). ! -509800* CODE DIVISION FORME JURIDIQUE ! -509900 10 WS-4DCO-MORA-CD-SUB-FRM-JUR PIC X(02). ! -510000* CODE SUBDIVISION FORME JURIDIQUE ! -510100 07 WS-4DCO-MORA-NAF. ! -510200* CODE NORME ACTIVITE FRANCAISE ! -510300 10 WS-4DCO-MORA-CD-DIV-NAF PIC X(02). ! -510400* CODE DIVISION NAF ! -510500 10 WS-4DCO-MORA-CD-CLS-NAF PIC X(02). ! -510600* CODE CLASSIFICATION NAF ! -510700 07 WS-4DCO-MORA-CD-INT-REP PIC X(02). ! -510800* CODE INTITULE REPRESENTANT LEGAL ! -510900 07 WS-4DCO-MORA-LIB-CD-INT-REP PIC X(12). ! -511000* LIBELLE INTITULE REPRESENTANT LEGAL ! -511100 07 WS-4DCO-MORA-NO-FAX PIC X(12). ! -511200* NUMERO DU FAX ! -511300 07 WS-4DCO-RECH-SEL-MO. ! -511400* SELECTION ! -511500 10 WS-4DCO-RECH-SELOP-MO PIC X OCCURS 15. ! -511600* SELECTION ZOOM ! -511700 07 WS-4DCO-MORA-PAGE. ! -511800 20 WS-4DCO-MORA-IDC-OCC-SPL PIC X(001). ! -511900 20 WS-4DCO-MORA-NB-PAG-TS PIC 9(002). ! -512000 20 WS-4DCO-MORA-SAUV-PAGE-AREA PIC X(090). ! -512100 07 FILLER PIC X(040). ! -512200* ! -512300 05 WS-4DCO-PERS-AUTADR PIC X. ! -512400* INDIC SI AUTRE ADRESSE ! -512500 05 WS-4DCO-PERS-LIB-CD-INT-CT PIC X(10). ! -512600* LIBELLE CODE INTITULE COURT ! -512700 05 WS-4DCO-TOP-HOMONY PIC X. ! -512800* TOP VERIF DES HOMONYMES ! -512900 05 WS-4DCO-NBPAGES PIC 9(002). ! -513000* NOMBRE DE PAGES ! -513100* ! -513200 05 WS-4DCO-RECHERCHE. ! -513300* COMMAREA RECHERCHE PERSONNE ! -513400 07 WS-4DCO-RECH-CD-PTN PIC X(05). ! -513500* NUMERO EXTERNE PARTENAIRE ! -513600 07 WS-4DCO-RECH-NO-STR-DIS PIC X(06). ! -513700* NUMERO STRUCTURE DE DISTRIBUTION ! -513800 07 WS-4DCO-RECH-CD-CLI-PTN. ! -513900* NUMERO EXTERNE CLIENT ! -514000 10 WS-4DCO-RECH-CD-CLI1-PTN PIC X(07). ! -514100* NUMERO EXTERNE CLIENT PARTIE 1 ! -514200 10 WS-4DCO-RECH-CD-CLI2-PTN PIC X(08). ! -514300* NUMERO EXTERNE CLIENT PARTIE 2 ! -514400 07 WS-4DCO-RECH-LIB-NOM PIC X(32). ! -514500* NOM ! -514600 07 WS-4DCO-RECH-LIB-PRN PIC X(32). ! -514700* PRENOM ! -514800 07 WS-4DCO-RECH-LIB-ENS REDEFINES ! -514900 WS-4DCO-RECH-LIB-PRN PIC X(32). ! -515000* ENSEIGNE ! -515100 07 WS-4DCO-RECH-NOM-PATRO PIC X(32). ! -515200* NOM PATRONIMIQUE ! -515300 07 WS-4DCO-RECH-RAI-SOC REDEFINES ! -515400 WS-4DCO-RECH-NOM-PATRO PIC X(32). ! -515500* RAISON SOCIALE ! -515600 07 WS-4DCO-RECH-DA-NAI. ! -515700* DATE DE NAISSANCE ! -515800 10 WS-4DCO-RECH-DA-NAI-SSAA PIC X(04). ! -515900* SIECLE ANNEE ! -516000 10 CARTIRET1 PIC X. ! -516100 10 WS-4DCO-RECH-DA-NAI-MM PIC X(02). ! -516200* MOIS DE NAISSANCE ! -516300 10 CARTIRET2 PIC X. ! -516400 10 WS-4DCO-RECH-DA-NAI-JJ PIC X(02). ! -516500* JOUR DE NAISSANCE ! -516600 05 WS-4DCO-RECH-SEL. ! -516700* SELECTION ! -516800 07 WS-4DCO-RECH-SELOP PIC X OCCURS 14. ! -516900* SELECTION ZOOM ! -517000 05 WS-4DCO-PERS-NO-STR-DIS PIC X(06). ! -517100* NUMERO STRUCTURE DE DISTRIBUTION ! -517200 05 WS-4DCO-RECH-PAGE-AREA PIC X(200). ! -517300* COMMAREA RECHERCHE PERSONNE ! -517400 05 WS-4DCO-MAJ-TM-STP. ! -517500* TIME STAMP ! -517600 07 WS-4DCO-TM-STP PIC X(26) OCCURS 3. ! -517700* TIMESTAMP DES TABLES ! -517800 05 WS-4DCO-CTR-SEL. ! -517900* SELECTION ! -518000 07 WS-4DCO-CTR-SELOP PIC X OCCURS 10. ! -518100* SELECTION ZOOM ! -518200 05 WS-4DCO-PERS-TRANS PIC X(004). ! -518300* CODE APPLICATION ! -518400 05 WS-4DCO-PERS-NBPAGES PIC 9(002). ! -518500* NOMBRE DE PAGES ! -518600 05 WS-4DCO-PERS-MONT PIC S9(15)V99 COMP-3. ! -518700* MONTANT SOLDE COMPTABLE ! -518800 05 WS-4DCO-TM-STP1 PIC X(26). ! -518900* TIMESTAMP SUPPLEMENTAIRE ! -519000 05 WS-4DCO-PERS-NO-ADR PIC 9(002). ! -519100* NOMBRE D'ADRESSES COURRIER ! -519200 05 WS-4DCO-PERS-NO-ADR-MAX PIC 9(002). ! -519300* NO D'ODRE ADR COURRIER LE PLUS GRAND ! -519400 05 WS-4DCO-PERS-NO-SAUV PIC 9(002). ! -519500* SAUVEGARDE DU NO PAGE ! -519600 05 WS-4DCO-PERS-LIB-CD-INT PIC X(12). ! -519700* LIBELLE CODE INTITULE AFFICHE ! -519800 05 WS-4DCO-PERS-CD-PRD PIC X(02). ! -519900* CODE PRODUIT ! -520000 05 WS-4DCO-PERS-NO-POL-PRB PIC X(09). ! -520100* NO DE CONTRAT ! -520200 05 WS-4DCO-PERS-IDC-PRD-UNT-CPT PIC X(01). ! -520300* INDICATEUR PRODUIT EN UNITE DE COMPTE ! -520400 05 WS-4DCO-PERS-DA-DCS. ! -520500* DATE DECES ! -520600 10 WS-4DCO-PERS-DA-DCS-JJ PIC X(02). ! -520700 10 FILLER PIC X. ! -520800 10 WS-4DCO-PERS-DA-DCS-MM PIC X(02). ! -520900 10 FILLER PIC X. ! -521000 10 WS-4DCO-PERS-DA-DCS-SSAA PIC X(04). ! -521100*-- DA3371 ! -521200*-- DATE DE MAJ DE L'ENCOURS GLOBAL ! -521300 05 WS-4DCO-PERS-DATMAJ. ! -521400 10 WS-DA-MAJP-SA PIC X(04). ! -521500 10 WS-DA-MAJP-MM PIC X(02). ! -521600 10 WS-DA-MAJP-JJ PIC X(02). ! -521700 05 FILLER PIC X(91). ! -521800* ! -521900*================================================================ ! -522000*= APPLICATION : GESTION DES AVANCES = ! -522100*================================================================ ! -522200 03 WS-4DCO-AVN REDEFINES WS-4DCO-PROGRAM. ! -522300* ============ ! -522400 ! -522500* ============== ! -522600* ------------------------------------------------------ * ! -522700* COMMAREA : AVN : GESTION DES AVANCES * ! -522800* LONGUEUR : 1800 * ! -522900* PREFIXE : WS-4DCO-AVN * ! -523000* ------------------------------------------------------ * ! -523100 ! -523200 05 WS-4DCO-AVN-NO-STR-GTN PIC X(06). ! -523300* NUMERO STRUCTURE GESTION ! -523400 05 WS-4DCO-AVN-NO-AGT-GTN PIC X(08). ! -523500* NUMERO AGENT GESTION ! -523600 05 WS-4DCO-AVN-DA-PAS-DNR-PAB PIC X(08). ! -523700* DATE DE PASSAGE DERNIER PAB ! -523800 05 WS-4DCO-AVN-SLD-TPS-REAL PIC S9(15) COMP-3. ! -523900* SOLDE TEMPS REEL CONTRAT ! -524000 05 WS-4DCO-AVN-SLD-AV PIC S9(15) COMP-3. ! -524100* SOLDE AVANCES ! -524200 05 WS-4DCO-AVN-NB-AV-ACD PIC 9(02). ! -524300* NOMBRE AVANCES DEJA ACCORDEES ! -524400 05 WS-4DCO-AVN-MT-ITT-EXE PIC S9(15) COMP-3. ! -524500* MT INTERETS AVANCES EXE EN-COURS ! -524600 05 WS-4DCO-AVN-MT-ITT-EXE-1 PIC S9(15) COMP-3. ! -524700* MT INTERETS AVANCES EXE -1 ! -524800 05 WS-4DCO-AVN-MT-FRS-EXE PIC S9(15) COMP-3. ! -524900* MT FRAIS AVANCES EXE EN-COURS ! -525000 05 WS-4DCO-AVN-MT-FRS-EXE-1 PIC S9(15) COMP-3. ! -525100* MT FRAIS AVANCES EXE -1 ! -525200 05 WS-4DCO-AVN-MT-FRS-EXEG PIC S9(15) COMP-3. ! -525300* MT FRAIS GESTION AVANCES EXE EN-COURS ! -525400 05 WS-4DCO-AVN-MT-FRS-EXE-1G PIC S9(15) COMP-3. ! -525500* MT FRAIS GESTION AVANCES EXE -1 ! -525600 05 WS-4DCO-AVN-MT-FRS-EXEC PIC S9(15) COMP-3. ! -525700* MT FRAIS COMMISSION AVANCES EXE EN-COURS ! -525800 05 WS-4DCO-AVN-MT-FRS-EXE-1G PIC S9(15) COMP-3. ! -525900* MT FRAIS COMMISSION AVANCES EXE -1 ! -526000 05 WS-4DCO-AVN-IDT-CLT PIC X(32). ! -526100* IDENTITE CLIENT ! -526200 05 WS-4DCO-AVN-LIB-CTR PIC X(16). ! -526300* LIBELLE CONTRAT ( NO ADHESION / NO COMPTE ) ! -526400 05 WS-4DCO-AVN-NO-CTR PIC X(15). ! -526500* NUMERO DE CONTRAT ! -526600 05 WS-4DCO-AVN-NO-CTR-CCM REDEFINES WS-4DCO-AVN-NO-CTR. ! -526700* NUMERO DE CONTRAT CCM ! -526800 10 WS-4DCO-AVN-RACINE PIC X(07). ! -526900 10 WS-4DCO-AVN-FILLER PIC X(01). ! -527000 10 WS-4DCO-AVN-CLE-RAC PIC X(01). ! -527100 10 WS-4DCO-AVN-FILLER PIC X(01). ! -527200 10 WS-4DCO-AVN-CAT PIC X(02). ! -527300 10 WS-4DCO-AVN-FILLER PIC X(01). ! -527400 10 WS-4DCO-AVN-RANG PIC X(02). ! -527500 05 WS-4DCO-AVN-NO-CTR-EXT REDEFINES WS-4DCO-AVN-NO-CTR. ! -527600* NUMERO DE CONTRAT PARTENAIRES EXTERIEURS ! -527700 10 WS-4DCO-AVN-PRD PIC X(02). ! -527800 10 WS-4DCO-AVN-FILLER PIC X(01). ! -527900 10 WS-4DCO-AVN-NO-POL PIC X(08). ! -528000 10 WS-4DCO-AVN-FILLER PIC X(01). ! -528100 10 WS-4DCO-AVN-CLE-POL PIC X(01). ! -528200 10 WS-4DCO-AVN-FILLER PIC X(02). ! -528300 05 WS-4DCO-AVN-DA-OPE. ! -528400* DATE D OPERATION ! -528500 10 WS-4DCO-AVN-DA-OPE-A PIC X(04). ! -528600 10 WS-4DCO-AVN-DA-OPE-M PIC X(02). ! -528700 10 WS-4DCO-AVN-DA-OPE-J PIC X(02). ! -528800 05 WS-4DCO-AVN-DA-EFF. ! -528900* DATE D EFFET ! -529000 10 WS-4DCO-AVN-DA-EFF-A PIC X(04). ! -529100 10 WS-4DCO-AVN-DA-EFF-M PIC X(02). ! -529200 10 WS-4DCO-AVN-DA-EFF-J PIC X(02). ! -529300 05 WS-4DCO-AVN-NO-RIB. ! -529400* NUMERO RIB ! -529500 10 WS-4DCO-AVN-CD-BANQUE PIC X(05). ! -529600 10 WS-4DCO-AVN-CD-GUICHET PIC X(05). ! -529700 10 WS-4DCO-AVN-NO-CPT-RIB PIC X(11). ! -529800 10 WS-4DCO-AVN-NO-CLE-RIB PIC X(02). ! -529900 05 WS-4DCO-AVN-MT-AV PIC S9(13)V9(2). ! -530000* MONTANT AVANCE ! -530100 05 FILLER PIC X(10). ! -530200* FILLER ! -530300 05 WS-4DCO-AVN-MODE-RGL PIC X(01). ! -530400* MODE REGLEMENT ! -530500 05 WS-4DCO-AVN-NO-CHQ PIC X(07). ! -530600* NUMERO DE CHEQUE ! -530700 05 WS-4DCO-AVN-TAB-MVT OCCURS 20. ! -530800* TABLE DES LIBELLES MOUVEMENTS ! -530900 10 WS-4DCO-AVN-LIB-MVT PIC X(32). ! -531000* LIBELLE MOUVEMENT ! -531100 10 WS-4DCO-AVN-CD-SENS-MVT PIC X(01). ! -531200* CODE SENS MOUVEMENT ! -531300 05 WS-4DCO-AVN-ITEM-ZOOM PIC S9(04) COMP. ! -531400* NO DE L'ITEM A ZOOMER ! -531500 05 WS-4DCO-AVN-PAGE-AREA PIC X(198). ! -531600* PAGE AREA START ! -531700 05 WS-4DCO-AVN-STOCK. ! -531800 10 WS-4DCO-AVN-NO-ENREG OCCURS 12 PIC X(02). ! -531900* STOCK TYPE DE MOUVEMENT DE LA PAGE ! -532000 10 WS-4DCO-AVN-MT-STOCK OCCURS 12 ! -532100 PIC S9(13)V99 COMP-3. ! -532200* STOCK MT DE MOUVEMENT DE LA PAGE ! -532300 05 WS-4DCO-AVN-NOM-PATRO PIC X(32). ! -532400* NOM PATRONYMIQUE ! -532500 05 WS-4DCO-AVN-CD-NTS PIC X(01). ! -532600* CODE NANTISSEMENT ! -532700 05 WS-4DCO-AVN-TYP-ANN PIC X. ! -532800 88 ANNULATION-JOUR VALUE ' '. ! -532900 88 ANNULATION-NON-JOUR VALUE 'N'. ! -533000* TOP ANNULATION AVANCE ! -533100 05 WS-4DCO-AVN-TYP-CONF PIC X(10). ! -533200* TYPE CONFIDENCIALITE ! -533300 05 WS-4DCO-AVN-CHX1 PIC X(02). ! -533400* CHOIX 1 ! -533500 05 WS-4DCO-AVN-CHX2 PIC X(02). ! -533600* CHOIX 2 ! -533700 05 WS-4DCO-AVN-LIB-CONF-1 PIC X(32). ! -533800* LIBELLE CONFIDENCIALITE 1 ! -533900 05 WS-4DCO-AVN-LIB-CONF-2 PIC X(32). ! -534000* LIBELLE CONFIDENCIALITE 2 ! -534100 05 WS-4DCO-AVN-DEBJ PIC X(02). ! -534200* DATE DEBUT JOUR ! -534300 05 WS-4DCO-AVN-DEBM PIC X(02). ! -534400* DATE DEBUT MOIS ! -534500 05 WS-4DCO-AVN-DEBSA PIC X(04). ! -534600* DATE DEBUT SIECLE ANNEE ! -534700 05 WS-4DCO-AVN-FINJ PIC X(02). ! -534800* DATE FIN JOUR ! -534900 05 WS-4DCO-AVN-FINM PIC X(02). ! -535000* DATE FIN MOIS ! -535100 05 WS-4DCO-AVN-FINSA PIC X(04). ! -535200* DATE FIN SIECLE ANNEE ! -535300 05 WS-4DCO-AVN-IMP PIC X(07). ! -535400* IMPRIMANTE ! -535500 05 WS-4DCO-AVN-MT-NET-VER-PER PIC S9(15) COMP-3. ! -535600* MT NET DU VERSEMENT PERIODIQUE ! -535700 05 WS-4DCO-AVN-CD-PROR-CTR PIC X(01). ! -535800* CODE PROROGATION DU CONTRAT ! -535900 05 WS-4DCO-AVN-DA-ECN-CTR PIC X(08). ! -536000* DATE ECHEANCE DU CONTRAT ! -536100 05 WS-4DCO-AVN-DA-ECN-PROR PIC X(08). ! -536200* DATE ECHEANCE PROROGEE DU CONTRAT ! -536300 05 WS-4DCO-AVN-DATRB PIC X(08). ! -536400* DATE DE REMBOURSEMENT TOTAL ! -536500 05 WS-4DCO-AVN-IDC-EDI-CM PIC X(01). ! -536600* indicateur edition cheque ccm ! -536700 05 WS-4DCO-AVN-NO-AV PIC 9(08) COMP. ! -536800* numero d'avance ! -536900 05 WS-4DCO-AVN-DA-DEM. ! -537000* DATE D EFFET ! -537100 10 WS-4DCO-AVN-DA-DEM-A PIC X(04). ! -537200 10 WS-4DCO-AVN-DA-DEM-M PIC X(02). ! -537300 10 WS-4DCO-AVN-DA-DEM-J PIC X(02). ! -537400 05 FILLER PIC X(400). ! -537500***************************************************************** ! -537600*================================================================ ! -537700*= APPLICATION : STATISTIQUES PRODUCTION ET ENCOURS = ! -537800*================================================================ ! -537900 03 WS-4DCO-STAT-PROD-ENC REDEFINES WS-4DCO-PROGRAM. ! -538000* ===================== ! -538100 ! -538200* ============== ! -538300* ------------------------------------------------------ * ! -538400* COMMAREA : STA : STATISTIQUES PRODUCTION ET ENCOURS * ! -538500* LONGUEUR : 1800 * ! -538600* PREFIXE : WS-4DCO-93C0 (PARTIE COMMUNE) 200C * ! -538700* ------------------------------------------------------ * ! -538800 ! -538900 05 WS-4DCO-93C0-GZONCOM. ! -539000* ZONE COMMUNE GESTION DES STATISTIQUES ! -539100* LIBELLE MESSAGE ! -539200 10 WS-4DCO-93C0-LMSG PIC X(050). ! -539300* CODE CHOIX ! -539400 10 WS-4DCO-93C0-CCHX PIC X(001). ! -539500* CODE ACTION ! -539600 10 WS-4DCO-93C0-CACT PIC X(001). ! -539700* CLE POLICE RACINE ! -539800 10 WS-4DCO-93C0-GCLE. ! -539900* CODE PARTENAIRE ! -540000 15 WS-4DCO-93C0-CPRN PIC X(005). ! -540100* NUMERO PRODUIT ! -540200 15 WS-4DCO-93C0-CPRD PIC X(002). ! -540300* NUMERO POLICE ! -540400 15 WS-4DCO-93C0-NPOL. ! -540500 20 WS-4DCO-93C0-NPOLRAC PIC X(008). ! -540600 20 WS-4DCO-93C0-NPOLCLE PIC X(001). ! -540700* NUMERO PROGRAMME ! -540800 10 WS-4DCO-93C0-PGM PIC X(008). ! -540900* ! -541000 10 WS-4DCO-93C0-LCOUPRN PIC X(012). ! -541100* ! -541200 10 WS-4DCO-93C0-LCOUPRD PIC X(012). ! -541300* ! -541400 10 WS-4DCO-93C0-LNOM PIC X(032). ! -541500* ! -541600 10 WS-4DCO-93C0-CTLAGE PIC X(008). ! -541700* ! -541800 10 WS-4DCO-93C0-TRMID PIC X(4). ! -541900* ! -542000 10 WS-4DCO-93C0-TIME PIC S9(7) COMP-3. ! -542100* ! -542200 10 WS-4DCO-93C0-NIVEAU PIC X. ! -542300* ! -542400 10 WS-4DCO-93C0-GESED PIC X. ! -542500* ! -542600 10 WS-4DCO-93C0-IND PIC X(1). ! -542700* CODE CHOIX SUR 2 CAR. ! -542800 10 WS-4DCO-93C0-CHOIX PIC X(002). ! -542900* ! -543000 10 WS-4DCO-93C0-VAL PIC X(001). ! -543100* ! -543200 10 WS-4DCO-93C0-NO-ECRAN PIC S9(04) COMP. ! -543300* ! -543400 10 WS-4DCO-93C0-NUM PIC 9(04). ! -543500* ! -543600 10 FILLER PIC X(040). ! -543700 ! -543800* ============== ! -543900* ------------------------------------------------------ * ! -544000* COMMAREA : STA : STATISTIQUES PRODUCTION ET ENCOURS * ! -544100* LONGUEUR : 1800 * ! -544200* PREFIXE : WS-4DCO-93C5 (PARTIE VARIABLE) 1600C * ! -544300* ------------------------------------------------------ * ! -544400* ! -544500 05 WS-4DCO-93C5-GZONSPC5. ! -544600 ! -544700* AGENCE PREAFFICHEE '0' (NON) ! -544800* '1' (OUI) ! -544900 10 WS-4DCO-93C5-TOPAGE PIC X(001). ! -545000* ZONES ECRAN ! -545100 10 WS-4DCO-93C5-ECRAN. ! -545200* CODE NATURE '1' OU '2' ! -545300 15 WS-4DCO-93C5-CNAT PIC X(001). ! -545400* CODE ACTION '1' '2' '3' ! -545500* '4' OU '5' ! -545600 15 WS-4DCO-93C5-CACT PIC X(001). ! -545700* CODES PRODUITS ! -545800 15 WS-4DCO-93C5-CPRD1 PIC X(002). ! -545900 15 WS-4DCO-93C5-CPRD2 PIC X(002). ! -546000 15 WS-4DCO-93C5-CPRD3 PIC X(002). ! -546100 15 WS-4DCO-93C5-CPRD4 PIC X(002). ! -546200 15 WS-4DCO-93C5-CPRD5 PIC X(002). ! -546300* CODE AGENCE ! -546400 15 WS-4DCO-93C5-AGENCE-S. ! -546500 20 FILLER PIC X(002). ! -546600 20 WS-4DCO-93C5-AGENCE PIC X(006). ! -546700* CODE AGENT ! -546800 15 WS-4DCO-93C5-AGENT PIC X(008). ! -546900* DATE DEBUT ! -547000 15 WS-4DCO-93C5-DDEB. ! -547100 20 WS-4DCO-93C5-DDEBSA PIC X(004). ! -547200 20 WS-4DCO-93C5-DDEBMM PIC X(002). ! -547300 20 WS-4DCO-93C5-DDEBJJ PIC X(002). ! -547400* DATE FIN ! -547500 15 WS-4DCO-93C5-DFIN. ! -547600 20 WS-4DCO-93C5-DFINSA PIC X(004). ! -547700 20 WS-4DCO-93C5-DFINMM PIC X(002). ! -547800 20 WS-4DCO-93C5-DFINJJ PIC X(002). ! -547900* ! -548000 15 WS-4DCO-93C5-CPRD1I PIC 9(003). ! -548100 15 WS-4DCO-93C5-CPRD2I PIC 9(003). ! -548200 15 WS-4DCO-93C5-CPRD3I PIC 9(003). ! -548300 15 WS-4DCO-93C5-CPRD4I PIC 9(003). ! -548400 15 WS-4DCO-93C5-CPRD5I PIC 9(003). ! -548500* ! -548600 10 WS-4DCO-93C5-LCOUPRD1 PIC X(032). ! -548700 10 WS-4DCO-93C5-LCOUPRD2 PIC X(032). ! -548800 10 WS-4DCO-93C5-LCOUPRD3 PIC X(032). ! -548900 10 WS-4DCO-93C5-LCOUPRD4 PIC X(032). ! -549000 10 WS-4DCO-93C5-LCOUPRD5 PIC X(032). ! -549100* POSSIBILITE ZOOM ECRAN M4DLG0 ' ' (NON) ! -549200* '*' (OUI) ! -549300 10 WS-4DCO-93C5-OUV-ZOOM PIC X(001). ! -549400* MONTANT ENCOURS NET POUR PRODUIT 74 ! -549500 10 WS-4DCO-93C5-MT-ENC-74 PIC S9(15) COMP-3. ! -549600* DATE REFERENCE POUR ZOOM 74 ! -549700 10 WS-4DCO-93C5-DAT-REF-74 PIC X(08). ! -549800* CODE PRODUIT POPT ! -549900 10 WS-4DCO-93C5-CPRD-74 PIC X(02). ! -550000* NUMERO INTERNE PRODUIT POPT ! -550100 10 WS-4DCO-93C5-CPRDI-74 PIC 9(03). ! -550200* LIBELLE PRODUIT 74 ! -550300 10 WS-4DCO-93C5-LPRD-74 PIC X(32). ! -550400* MONTANT ENCOURS VALORISE POUR PRODUIT 74 ! -550500 10 WS-4DCO-93C5-MT-VAL-74 PIC S9(15) COMP-3. ! -550600* ---- LIB ABR�G� PRODUITS ! -550700 10 WS-4DCO-93C5-LA-PRD OCCURS 5 PIC X(016). ! -550800* ---- LISTE DES PRODUITS EN ENTETE D'�CRAN ! -550900 10 WS-4DCO-93C5-LISTE-PRD PIC X(065). ! -551000* ---- INDICATEUR DE VISUALISATION DES STATS ! -551100 10 WS-4DCO-93C5-IDC-VSU-STAT OCCURS 5 PIC X(01). ! -551200* ! -551300 10 WS-4DCO-93C5-no-spp-fnc PIC 9(06). ! -551400* ! -551500 10 WS-4DCO-93C5-MODIF-ZONE pic x(01). ! -551600* ! -551700 10 WS-4DCO-93C5-IDC-OCC-SPL PIC X(001). ! -551800* ! -551900 10 WS-4DCO-93C5-IDC-nopage PIC X(001). ! -552000* ! -552100 10 FILLER PIC X(1159). ! -552200 ! -552300* ------------------------------------------------------ * ! -552400* COMMAREA : EDITIONS MINITEL * ! -552500* LONGUEUR : 1800 * ! -552600* PREFIXE : WS-4DCO-93C6 (PARTIE VARIABLE) 1600C * ! -552700* ------------------------------------------------------ * ! -552800* ! -552900 05 WS-4DCO-93C6-GZONSPC6 REDEFINES WS-4DCO-93C5-GZONSPC5. ! -553000 ! -553100* TOP REQUETE ! -553200 10 WS-4DCO-93C6-TOPREQ PIC X(001). ! -553300* ZONES ECRAN ! -553400 10 WS-4DCO-93C6-ECRAN. ! -553500* CHOIX '1' EDITION OU ! -553600* '2' REEDITION ! -553700 15 WS-4DCO-93C6-CHOIX PIC X(001). ! -553800* IMPRIMANTE ! -553900 15 WS-4DCO-93C6-IMPR PIC X(008). ! -554000* CODES PRODUITS ! -554100 15 WS-4DCO-93C6-CPRD1 PIC X(002). ! -554200 15 WS-4DCO-93C6-CPRD2 PIC X(002). ! -554300 15 WS-4DCO-93C6-CPRD3 PIC X(002). ! -554400 15 WS-4DCO-93C6-CPRD4 PIC X(002). ! -554500 15 WS-4DCO-93C6-CPRD5 PIC X(002). ! -554600* DATE DEBUT ! -554700 15 WS-4DCO-93C6-DDEB. ! -554800 20 WS-4DCO-93C6-DDEBSA PIC X(004). ! -554900 20 WS-4DCO-93C6-DDEBMJ. ! -555000 25 WS-4DCO-93C6-DDEBMM PIC X(002). ! -555100 25 WS-4DCO-93C6-DDEBJJ PIC X(002). ! -555200* DATE FIN ! -555300 15 WS-4DCO-93C6-DFIN. ! -555400 20 WS-4DCO-93C6-DFINSA PIC X(004). ! -555500 20 WS-4DCO-93C6-DFINMJ. ! -555600 25 WS-4DCO-93C6-DFINMM PIC X(002). ! -555700 25 WS-4DCO-93C6-DFINJJ PIC X(002). ! -555800* PROCHAINE DATE DEBUT EDITION ! -555900 15 WS-4DCO-93C6-DDED. ! -556000 20 WS-4DCO-93C6-DDEDJM. ! -556100 25 WS-4DCO-93C6-DDEDJJ PIC X(002). ! -556200 25 WS-4DCO-93C6-DDEDMM PIC X(002). ! -556300 20 WS-4DCO-93C6-DDEDSA PIC X(004). ! -556400* ! -556500 10 FILLER PIC X(1556). ! -556600* ! -556700* ============== ! -556800* ------------------------------------------------------ * ! -556900* COMMAREA : REQUETES * ! -557000* LONGUEUR : 1800 * ! -557100* PREFIXE : WS-4DCO-93C7 (PARTIE VARIABLE) 1600C * ! -557200* ------------------------------------------------------ * ! -557300* ! -557400 05 WS-4DCO-93C7-GZONSPC7 REDEFINES WS-4DCO-93C5-GZONSPC5. ! -557500* TOP EOF FICHER REQUETE ! -557600 10 WS-4DCO-93C7-REQ-BOF PIC X(1). ! -557700 10 WS-4DCO-93C7-REQ-EOF PIC X(1). ! -557800* OCCURENCE IMAGE REQUETE ! -557900 10 WS-4DCO-93C7-IMAREQ PIC S9(2). ! -558000* NBR DE REQUETES AFFICHEES ! -558100 10 WS-4DCO-93C7-NBREQ PIC S9(2). ! -558200* ! -558300* CLE REQUETE RETOUR ZOOM ! -558400 10 WS-4DCO-93C7-GCLEREQ. ! -558500* CODE REQUETE ! -558600 15 WS-4DCO-93C7-CODREQ PIC X(02). ! -558700* NO REQUETE ! -558800 15 WS-4DCO-93C7-NOREQ PIC X(04). ! -558900* PARTENAIRE ! -559000 15 WS-4DCO-93C7-CPRN PIC X(05). ! -559100* DATE / HEURE REQUETE ! -559200 15 WS-4DCO-93C7-DHREQ. ! -559300 20 WS-4DCO-93C7-DREQ. ! -559400 25 WS-4DCO-93C7-DREQ-SA. ! -559500 30 WS-4DCO-93C7-DREQ-SS PIC X(02). ! -559600 30 WS-4DCO-93C7-DREQ-AA PIC X(02). ! -559700 25 WS-4DCO-93C7-DREQ-MM PIC X(02). ! -559800 25 WS-4DCO-93C7-DREQ-JJ PIC X(02). ! -559900 20 WS-4DCO-93C7-HREQ. ! -560000 25 WS-4DCO-93C7-HREQ-HH PIC X(02). ! -560100 25 WS-4DCO-93C7-HREQ-MM PIC X(02). ! -560200 25 WS-4DCO-93C7-HREQ-SS PIC X(02). ! -560300* ! -560400* CLE REQUETE ZOOM ! -560500 10 WS-4DCO-93C7-GCLEREQZ. ! -560600* CODE REQUETE ! -560700 15 WS-4DCO-93C7-CODREQZ PIC X(02). ! -560800* NO REQUETE ! -560900 15 WS-4DCO-93C7-NOREQZ PIC X(04). ! -561000* PARTENAIRE ! -561100 15 WS-4DCO-93C7-CPRNZ PIC X(05). ! -561200* DATE / HEURE REQUETE ! -561300 15 WS-4DCO-93C7-DHREQZ. ! -561400 20 WS-4DCO-93C7-DREQZ. ! -561500 25 WS-4DCO-93C7-DREQZ-SA. ! -561600 30 WS-4DCO-93C7-DREQZ-SS PIC X(02). ! -561700 30 WS-4DCO-93C7-DREQZ-AA PIC X(02). ! -561800 25 WS-4DCO-93C7-DREQZ-MM PIC X(02). ! -561900 25 WS-4DCO-93C7-DREQZ-JJ PIC X(02). ! -562000 20 WS-4DCO-93C7-HREQZ. ! -562100 25 WS-4DCO-93C7-HREQZ-HH PIC X(02). ! -562200 25 WS-4DCO-93C7-HREQZ-MM PIC X(02). ! -562300 25 WS-4DCO-93C7-HREQZ-SS PIC X(02). ! -562400* ! -562500* TOP REQUETE ECRAN ! -562600 15 WS-4DCO-93C7-TOPREQ PIC X(01) OCCURS 14. ! -562700* ! -562800 10 FILLER PIC X(1530). ! -562900* ! -563000*================================================================ ! -563100*= APPLICATION : PROROGATION CONTRAT / EDITION AVENANT = ! -563200*================================================================ ! -563300 03 WS-4DCO-AVT REDEFINES WS-4DCO-PROGRAM. ! -563400* ============ ! -563500 ! -563600* ============== ! -563700* ------------------------------------------------------ * ! -563800* COMMAREA : AVT : PROROG. CONTRAT / EDIT. AVENANT * ! -563900* LONGUEUR : 1800 * ! -564000* PREFIXE : WS-4DCO-AVT * ! -564100* ------------------------------------------------------ * ! -564200 ! -564300 05 WS-4DCO-AVT-PRG-AVANT PIC X(01). ! -564400* CODE PROROGATION AVANT ! -564500 05 WS-4DCO-AVT-PRG-APRES PIC X(01). ! -564600* CODE PROROGATION APRES ! -564700 05 WS-4DCO-AVT-PRG-EDIT PIC X(01). ! -564800* CODE EDITION ! -564900 05 WS-4DCO-AVT-NOM-PATRO PIC X(32). ! -565000* NOM PRENOM ! -565100 05 WS-4DCO-AVT-DA-SCR. ! -565200* DATE SOUSCRIPTION ! -565300 10 WS-4DCO-AVT-DA-SCR-SA PIC X(04). ! -565400* DATE SOUSCRIPTION SIECLE ANNEE ! -565500 10 WS-4DCO-AVT-DA-SCR-MM PIC X(02). ! -565600* DATE SOUSCRIPTION MOIS ! -565700 10 WS-4DCO-AVT-DA-SCR-JJ PIC X(02). ! -565800* DATE SOUSCRIPTION JOUR ! -565900 05 WS-4DCO-AVT-DA-ECN. ! -566000* DATE ECHEANCE CONTRAT ! -566100 10 WS-4DCO-AVT-DA-ECN-SA PIC X(04). ! -566200* DATE ECHEANCE SIECLE ANNEE ! -566300 10 WS-4DCO-AVT-DA-ECN-MM PIC X(02). ! -566400* DATE ECHEANCE MOIS ! -566500 10 WS-4DCO-AVT-DA-ECN-JJ PIC X(02). ! -566600* DATE ECHEANCE JOUR ! -566700 05 WS-4DCO-AVT-RUE-1 PIC X(32). ! -566800* LIBELLE RUE 1 ! -566900 05 WS-4DCO-AVT-RUE-2 PIC X(32). ! -567000* LIBELLE RUE 2 ! -567100 05 WS-4DCO-AVT-CD-POST PIC X(05). ! -567200* CODE POSTAL ! -567300 05 WS-4DCO-AVT-COMMUNE PIC X(32). ! -567400* COMMUNE ! -567500 05 WS-4DCO-AVT-BUR-DIST PIC X(26). ! -567600* BUREAU DISTRIBUTEUR ! -567700 05 WS-4DCO-AVT-TX-MIN PIC 99V9(3). ! -567800* TX MINIMUM GARANTI ! -567900 05 WS-4DCO-AVT-DA-FIN-TX. ! -568000* DATE FIN TX MIN GARANTI ! -568100 10 WS-4DCO-AVT-DA-FIN-TX-SA PIC X(04). ! -568200* DATE FIN TX MIN GARANTI SIECLE ANNEE ! -568300 10 WS-4DCO-AVT-DA-FIN-TX-MM PIC X(02). ! -568400* DATE FIN TX MIN GARANTI MOIS ! -568500 10 WS-4DCO-AVT-DA-FIN-TX-JJ PIC X(02). ! -568600* DATE FIN TX MIN GARANTI JOUR ! -568700 05 WS-4DCO-AVT-BQE PIC X(05). ! -568800* BANQUE DOMICILIATAIRE ! -568900 05 WS-4DCO-AVT-GCHT PIC X(05). ! -569000* GUICHET DOMICILIATAIRE ! -569100 05 WS-4DCO-AVT-CPT PIC X(11). ! -569200* COMPTE DOMICILIATAIRE ! -569300 05 WS-4DCO-AVT-CLE PIC X(02). ! -569400* CLE DOMICILIATAIRE ! -569500 05 WS-4DCO-AVT-DA-ECN-PROR. ! -569600* DATE ECHEANCE PROROGATION ! -569700 10 WS-4DCO-AVT-DA-ECN-PRO-SA PIC X(04). ! -569800* DATE ECHEANCE SIECLE ANNEE ! -569900 10 WS-4DCO-AVT-DA-ECN-PRO-MM PIC X(02). ! -570000* DATE ECHEANCE MOIS ! -570100 10 WS-4DCO-AVT-DA-ECN-PRO-JJ PIC X(02). ! -570200* DATE ECHEANCE JOUR ! -570300 05 WS-4DCO-AVT-DA-PROR. ! -570400* DATE PROROGATION ! -570500 10 WS-4DCO-AVT-DA-PRO-SA PIC X(04). ! -570600* DATE ECHEANCE SIECLE ANNEE ! -570700 10 WS-4DCO-AVT-DA-PRO-MM PIC X(02). ! -570800* DATE ECHEANCE MOIS ! -570900 10 WS-4DCO-AVT-DA-PRO-JJ PIC X(02). ! -571000* DATE ECHEANCE JOUR ! -571100 05 WS-4DCO-AVT-DUREE-PRO PIC 9(02). ! -571200* DUREE DE LA PROROGATION ! -571300 05 WS-4DCO-AVT-TY-PROR PIC X(01) . ! -571400 88 WS-4DCO-AVT-TY-ANC VALUE '1' . ! -571500 88 WS-4DCO-AVT-TY-NOUV VALUE '2' . ! -571600 88 WS-4DCO-AVT-TY-TACITE VALUE '3' . ! -571700 05 FILLER PIC X(1567). ! -571800 ! -571900* ==================== ! -572000 03 WS-4DCO-PROROG-LISTE REDEFINES WS-4DCO-PROGRAM. ! -572100* ==================== ! -572200* ------------------------------------------------------ * ! -572300* COMMAREA : PROROGATION / REEDITION D AVENANT * ! -572400* LONGUEUR : 1800 * ! -572500* PREFIXE : WS-4DCO-PRG * ! -572600* ------------------------------------------------------ * ! -572700 10 WS-4DCO-4DIT-RETOUR PIC XXXX. ! -572800 10 WS-4DCO-PRG-TC4DIT0. ! -572900 15 WS-4DCO-PRG-TC4DIT0-SEL OCCURS 15. ! -573000 20 WS-4DCO-4DIT-SELEC PIC X. ! -573100* TOP SELECTION CONTRAT ! -573200 20 WS-4DCO-4DIT-NO-PTN PIC 999. ! -573300* NO PARTENAIRE INTERNE LIGNE CONTRAT ! -573400 20 WS-4DCO-4DIT-NO-PRD-PTN PIC 999. ! -573500* NO PRODUIT INTERNE LIGNE CONTRAT ! -573600 20 WS-4DCO-4DIT-NO-CLI-PTN PIC 9(7). ! -573700* NO CLIENT INTERNE LIGNE CONTRAT ! -573800 20 WS-4DCO-4DIT-NO-ORD-CTR PIC 99. ! -573900* NO ORDRE INTERNE LIGNE CONTRAT ! -574000 20 WS-4DCO-4DIT-IDC-CM PIC X. ! -574100* INDICATEUR CMM LIGNE CONTRAT ! -574200 20 WS-4DCO-4DIT-RAC PIC X(7). ! -574300* RACINE EXTERNE LIGNE CONTRAT ! -574400 20 WS-4DCO-4DIT-CLE-RAC PIC X(1). ! -574500* CLE EXTERNE LIGNE CONTRAT ! -574600 20 WS-4DCO-4DIT-CAT PIC X(2). ! -574700* CATEGORIE EXTERNE LIGNE CONTRAT ! -574800 20 WS-4DCO-4DIT-RANG PIC X(2). ! -574900* NUMERO DE RANG LIGNE CONTRAT ! -575000 20 WS-4DCO-4DIT-NO-POL-PRB PIC X(9). ! -575100* NUMERO DE RANG LIGNE CONTRAT ! -575200 20 WS-4DCO-4DIT-CD-PRD-PO PIC X(2). ! -575300* NUMERO DE PRODUIT EXTERNE CONTRAT ! -575400 20 WS-4DCO-4DIT-DUREE PIC 9(2). ! -575500* DUREE DE LA PROROGATION CONTRAT ! -575600* 20 WS-4DCO-4DIT-IDC-PRD-UNT-CPT PIC X(1). ! -575700* INDICATEUR PRODUIT EN UC ! -575800 10 WS-4DCO-NBR-AVENANT PIC 99. ! -575900* NOMBRE D'AVENANT A EDITER ! -576000 10 WS-4DCO-4DIT-NOSTR-SAI PIC X(6). ! -576100 10 WS-4DCO-4DIT-NOPTN-SAI PIC X(5). ! -576200 10 WS-4DCO-4DIT-CD-PROR PIC X(1) OCCURS 15. ! -576300 10 WS-4DCO-4DIT-DA-ECN PIC X(8) . ! -576400 10 WS-4DCO-4DIT-NO-STR-GTN PIC X(6) . ! -576500 10 WS-4DCO-4DIT-LIB-STR PIC X(32) . ! -576600 10 WS-4DCO-4DIT-IDC-STR PIC X(1) . ! -576700 10 WS-4DCO-4DIT-IDC-PRD-UNT-CPT PIC X(1) OCCURS 15. ! -576800 10 FILLER PIC X(1076). ! -576900* ZONES DISPONIBLES ! -577000***************************************************************** ! -577100* ! -577200*================================================================ ! -577300*= APPLICATION : SAISIE CONTRAT EN ANOMALIE = ! -577400*================================================================ ! -577500 03 WS-4DCO-CTR-ANO REDEFINES WS-4DCO-PROGRAM. ! -577600* ============ ! -577700* ============== ! -577800* ------------------------------------------------------ * ! -577900* COMMAREA : SAISIE CONTRAT EN ANOMALIE * ! -578000* LONGUEUR : 1800 * ! -578100* PREFIXE : WS-4DCO-CTR-ANO * ! -578200* ------------------------------------------------------ * ! -578300 ! -578400 05 WS-4DCO-4DJA-CD-CHX PIC X(02). ! -578500* CHOIX EDITION ! -578600 05 WS-4DCO-4DJA-STOCK. ! -578700* STOCKAGE ! -578800 07 WS-4DCO-4DJA-INTERNE OCCURS 78. ! -578900* ELEMENTS POUR CLE INTERNE ! -579000 09 WS-4DCO-4DJA-CLI PIC 9(07). ! -579100* NO CLIENT ! -579200 09 WS-4DCO-4DJA-RNG PIC 9(02). ! -579300* RANG ! -579400 07 WS-4DCO-4DJA-STOCK-CPT. ! -579500 09 WS-4DCO-4DJA-CPT OCCURS 78. ! -579600* COMPTE ! -579700 11 WS-4DCO-4DJA-RAC PIC X(07). ! -579800* RACINE ! -579900 11 WS-4DCO-4DJA-CLE-RAC PIC X(01). ! -580000* CLE ! -580100 11 WS-4DCO-4DJA-RNG-CPT PIC X(02). ! -580200* RANG ! -580300* ! -580400 07 WS-4DCO-4DJA-STOCK-POL REDEFINES ! -580500 WS-4DCO-4DJA-STOCK-CPT. ! -580600 09 WS-4DCO-4DJA-POL OCCURS 78. ! -580700* POLICE 9 CAR ! -580800 11 WS-4DCO-4DJA-NOPOL PIC X(08). ! -580900* NO POLICE ! -581000 11 WS-4DCO-4DJA-CLEPOL PIC X(01). ! -581100* CLE POLICE ! -581200 09 FILLER PIC X(78). ! -581300* ! -581400 05 FILLER PIC X(0316). ! -581500* FILLER DE WS-4DCO-ANOMALIE ! -581600***************************************************************** ! -581700* ! -581800*================================================================ ! -581900*= APPLICATION : EDITION DE FIN D ANNEE = ! -582000*================================================================ ! -582100 03 WS-4DCO-4E REDEFINES WS-4DCO-PROGRAM. ! -582200* ============ ! -582300* ------------------------------------------------------ * ! -582400* COMMAREA : EDITION DE FIN D ANNEE * ! -582500* LONGUEUR : 1800 * ! -582600* PREFIXE : WS-4DCO-4E * ! -582700* ------------------------------------------------------ * ! -582800 ! -582900 05 WS-4DCO-4E-CD-DOC PIC X(05). ! -583000* CODE DOCUMENT ('CF ','IFU ', OU 'RDC ') ! -583100 05 WS-4DCO-4E-NOM-USU-PSE PIC X(32). ! -583200* NOM USUEL PERSONNE DU CONTRAT ! -583300 05 WS-4DCO-4E-CLE . ! -583400* STOCKAGE CLE FICHIER ANOMALIE ! -583500* STUCTURE = CODE PARTENAIRE, STRUCTURE DISTRIBUTION ! -583600* NUMERO DE COMPTE EDIT RANG ! -583700 10 WS-4DCO-4E-CD-PTN PIC X(05). ! -583800 10 WS-4DCO-4E-NO-STR-DIS PIC X(06). ! -583900 10 WS-4DCO-4E-NUM-CPT PIC X(20). ! -584000 10 WS-4DCO-4E-RANG PIC X(02). ! -584100 10 FILLER PIC X(01). ! -584200* ! -584300 05 WS-4DCO-4E-ENR PIC X(1300). ! -584400* STOCKAGE ENREGISTREMENT ANOMALIE POUR CORRECTION ! -584500 05 WS-4DCO-4E050-LIBELLES REDEFINES WS-4DCO-4E-ENR. ! -584600* LIBELLES A TRANSMETTRE POUR EDITION CERT FISCAUX ! -584700 10 WS-4DCO-4E050-NO-FDS-PG PIC X(4). ! -584800* NUMERO DE FOND DE PAGE ! -584900 10 WS-4DCO-4E050-LIBELLE-PRODUIT PIC X(32). ! -585000* LIBELLE DU PRODUIT ! -585100 10 WS-4DCO-4E050-LIBELLE-NOM-PTN PIC X(50). ! -585200* NOM DU PARTENAIRE ! -585300 10 WS-4DCO-4E050-LIBELLE-SPECIAL PIC X(16). ! -585400* LIBELLE SPECIAL (RENTE SURVIE OU EPARGNE HANDICAP ! -585500 10 WS-4DCO-4E050-LIBELLE-BENEF PIC X(80). ! -585600* LIBELLE BENEF SI RENTE SURVIE ! -585700 10 WS-4DCO-4E050-COMMENT-PRIME-1 PIC X(80). ! -585800* COMMENTAIRE PRIME LIGNE 1 ! -585900 10 WS-4DCO-4E050-COMMENT-PRIME-2 PIC X(80). ! -586000* COMMENTAIRE PRIME LIGNE 2 ! -586100 10 WS-4DCO-4E050-COMMENT-CF-1 PIC X(80). ! -586200* COMMENTAIRE PRIME CERT FISCAUX LIGNE 1 ! -586300 10 WS-4DCO-4E050-COMMENT-CF-2 PIC X(80). ! -586400* COMMENTAIRE PRIME CERT FISCAUX LIGNE 2 ! -586500 10 WS-4DCO-4E050-DAT-EDI PIC X(10). ! -586600* DATE D'EDITION ! -586700 10 FILLER PIC X(788). ! -586800*** ZONE POUR REEDITION DES IMPRIMMES ! -586900 05 WS-4DCO-4E020-LIBELLES REDEFINES WS-4DCO-4E-ENR. ! -587000 10 WS-4DCO-4E020-CD-CHOIX PIC X(1). ! -587100* CHOIX IMPRESSION TOUS LES CONTRATS OU NON ! -587200 10 WS-4DCO-4E020-NB-CPT PIC 99. ! -587300* NOMBRE DE CONTRATS A IMPRIMER ! -587400 10 WS-4DCO-4E020-LISTE-CPT. ! -587500 12 WS-4DCO-4E020-LISTE OCCURS 11. ! -587600* CLES DES CONTRATS A IMPRIMER ! -587700 15 WS-4DCO-4E020-NUM-CPT PIC X(20). ! -587800 15 WS-4DCO-4E020-RANG PIC X(2). ! -587900 10 WS-4DCO-4E020-PAGE-SUIV PIC X. ! -588000 10 FILLER PIC X(1054). ! -588100*** ZONE POUR REEDITION RDC PREVI-OPTIONS ! -588200 05 WS-4DCO-4E090-LIBELLES REDEFINES WS-4DCO-4E-ENR. ! -588300 10 WS-4DCO-4E090-CD-CHOIX PIC X(1). ! -588400* CHOIX IMPRESSION TOUS LES CONTRATS OU NON ! -588500 10 WS-4DCO-4E090-NB-CPT PIC 99. ! -588600* NOMBRE DE CONTRATS A IMPRIMER ! -588700 10 WS-4DCO-4E090-LISTE-CPT. ! -588800 12 WS-4DCO-4E090-LISTE OCCURS 11. ! -588900* CLES DES CONTRATS A IMPRIMER ! -589000 15 WS-4DCO-4E090-CD-PTN PIC X(5). ! -589100 15 WS-4DCO-4E090-CD-PRD PIC X(2). ! -589200 15 WS-4DCO-4E090-DAT-EDI PIC X(8). ! -589300 15 WS-4DCO-4E090-NUM-CPT PIC X(20). ! -589400 15 WS-4DCO-4E090-CD-TY-DOC PIC X(5). ! -589500 10 WS-4DCO-4E090-PAGE-SUIV PIC X. ! -589600 10 FILLER PIC X(856). ! -589700 05 WS-4DCO-4E800-LIBELLES REDEFINES WS-4DCO-4E-ENR. ! -589800 10 WS-4DCO-4E800-CD-CHOIX PIC X(1). ! -589900* CHOIX IMPRESSION TOUS LES CONTRATS OU NON ! -590000 10 WS-4DCO-4E800-NB-CPT PIC 99. ! -590100* NOMBRE DE CONTRATS A IMPRIMER ! -590200 10 WS-4DCO-4E800-PAGE-SUIV PIC X. ! -590300 10 WS-4DCO-4E800-SEL PIC X. ! -590400 10 WS-4DCO-4E800-LISTE-CPT. ! -590500 12 WS-4DCO-4E800-LISTE OCCURS 11. ! -590600* CLES DES CONTRATS A IMPRIMER ! -590700 15 WS-4DCO-4E800-NO-PSE PIC 9(8). ! -590800 15 WS-4DCO-4E800-LIB-NOM-PRN PIC X(32). ! -590900 15 WS-4DCO-4E800-CD-ANO PIC X(2). ! -591000 10 WS-4DCO-4E800-SV-LIGN. ! -591100 12 WS-4DCO-4E800-LIB-ACT PIC X(79). ! -591200 12 WS-4DCO-4E800-TAB OCCURS 10. ! -591300 15 WS-4DCO-4E800-CD-ACTION PIC X(01). ! -591400 12 WS-4DCO-4E800-NB-ACT PIC 9(02). ! -591500 12 WS-4DCO-4E800-CD-AUT PIC X(01). ! -591600 10 FILLER PIC X(741). ! -591700 05 WS-4DCO-4E-SEL. ! -591800 10 WS-4DCO-4E-SELOP PIC X(01) OCCURS 14. ! -591900* STOCKAGE SELECTION ! -592000 05 WS-4DCO-4E-CODE-ADRESSE PIC X. ! -592100 05 WS-4DCO-4E-NOM-BENEF PIC X(32). ! -592200 05 WS-4DCO-4E-PAGE-NUMBER-SAVE PIC 99. ! -592300 05 WS-4DCO-4E-NB-PAGES PIC 99. ! -592400 05 WS-4DCO-4E-PAGE-AREA PIC X(200). ! -592500* COMMAREA SAUVEGARDE LIST ! -592600*** 4E010 : ZONES SAUVEGARDE SAISIE COMPTE OU CLIENT ! -592700*** AU NIVEAU DU MENU ! -592800 05 WS-4DCO-4E010-NUM-CPT PIC X(20). ! -592900 05 WS-4DCO-4E010-NO-PSE PIC X(8). ! -593000*** 4E070 : ZONES SAUVEGARDES - CORRECTION DES RDC ! -593100 05 WS-4DCO-4E070-NB-LIGNE PIC 9(02). ! -593200 05 WS-4DCO-4E070-NAME-TS PIC X(8). ! -593300 05 WS-4DCO-4E070-NB-OCC-RES PIC 9(04). ! -593400*** 4E010 : ZONES SAUVEGARDE CHOIX PUC ! -593500 05 WS-4DCO-4E010-PUC PIC X(1). ! -593600** 4E050 ! -593700 05 WS-4DCO-ANC-SAISIE PIC X(1). ! -593800 05 WS-4DCO-4E-MONTANT-9 PIC 9(15). ! -593900 05 FILLER PIC X(0119). ! -594000* FILLER DE WS-4DCO-4E ! -594100* ! -594200*================================================================ ! -594300*= APPLICATION : EDITION DES DAMIERS CUMULES = ! -594400*================================================================ ! -594500 03 WS-4DCO-DAM REDEFINES WS-4DCO-PROGRAM. ! -594600* ============ ! -594700* ------------------------------------------------------ * ! -594800* COMMAREA : EDITION DES DAMIERS CUMULES * ! -594900* LONGUEUR : 1800 * ! -595000* PREFIXE : WS-4DCO-DAM * ! -595100* ------------------------------------------------------ * ! -595200 ! -595300 05 WS-4DCO-DAM-LI-ECR PIC X(32). ! -595400* LIBELLE ECRAN ! -595500 05 WS-4DCO-DAM-CD-APPL PIC X(02). ! -595600* CODE APPLICATION ! -595700 05 WS-4DCO-DAM-LI-APPL PIC X(32). ! -595800* LIBELLE APPLICATION ! -595900 05 WS-4DCO-DAM-CD-PTN PIC X(05). ! -596000* CODE PARTENAIRE ! -596100 05 WS-4DCO-DAM-NOM-PTN PIC X(32). ! -596200* NOM PARTENAIRE ! -596300 05 WS-4DCO-DAM-CD-PRD PIC X(02). ! -596400* CODE PRODUIT ! -596500 05 WS-4DCO-DAM-LI-PRD PIC X(32). ! -596600* CODE PRODUIT ! -596700 05 WS-4DCO-DAM-NO-GEN PIC X(03). ! -596800* CODE PRODUIT ! -596900 05 WS-4DCO-DAM-CD-RGP PIC X(03). ! -597000* CODE REGROUPEMENT ! -597100 05 WS-4DCO-DAM-LI-RGP PIC X(32). ! -597200* LIBELLE REGROUPEMENT ! -597300 05 WS-4DCO-DAM-NO-TY-PRD PIC 9(02). ! -597400* NUMERO TYPE PRODUIT ! -597500 05 WS-4DCO-DAM-REVAL OCCURS 4. ! -597600* ANNEE ET TAUX DE REVALORISATION ! -597700 10 WS-4DCO-DAM-AN-CLOT PIC X(04). ! -597800 10 WS-4DCO-DAM-TX-REVAL PIC 9(03)V9(03). ! -597900 05 WS-4DCO-DAM-TY-TRT PIC 9. ! -598000* TYPE TRAITEMENT ! -598100 88 DAMIER-APPLICATION VALUE 1. ! -598200 88 DAMIER-PARTICULIER VALUE 2. ! -598300 88 DAMIER-REGROUPE VALUE 3. ! -598400 05 WS-4DCO-DAM-TY-DAM PIC 9. ! -598500* TYPE DAMIER ! -598600 88 DAMIER-PRODUCTION VALUE 1. ! -598700 88 DAMIER-AVANCES VALUE 2. ! -598800 05 FILLER PIC X(1581). ! -598900 ! -599000*================================================================ ! -599100*= APPLICATION : GESTION DES CALENDRIERS PUC = ! -599200*================================================================ ! -599300 03 WS-4DCO-4DNE REDEFINES WS-4DCO-PROGRAM. ! -599400* ============ ! -599500* ------------------------------------------------------ * ! -599600* COMMAREA : GESTION DES CALENDRIERS PREVI-OPTION * ! -599700* LONGUEUR : 1800 * ! -599800* PREFIXE : WS-4DCO-4DNE * ! -599900* ------------------------------------------------------ * ! -600000 ! -600100 05 WS-4DCO-4DNE-COMMA. ! -600200* ZONNE DE COMMAREA POUR LE P4DQB0 ! -600300 07 WS-4DCO-4DNE-ANNEE PIC 9(4). ! -600400* ANNEE SAISIE ! -600500 07 WS-4DCO-4DNE-CHOIX PIC XX. ! -600600* CHOIX CALENDRIER ! -600700 07 WS-4DCO-4DNE-LIBEL PIC X(25). ! -600800* LIBELLE CALENDRIER ! -600900 07 WS-4DCO-4DNE-MESS PIC X(32). ! -601000* MESSAGE ! -601100 07 WS-4DCO-4DNE-MOD PIC X. ! -601200* MODIF ! -601300 07 WS-4DCO-4DNE-SUP PIC X. ! -601400* SUPPRESSION ! -601500 07 WS-4DCO-4DNE-CRE PIC X. ! -601600* CREATION ! -601700 07 WS-4DCO-4DNE-ENT PIC X. ! -601800* ENTETE ! -601900 07 WS-4DCO-4DNE-NUMJJ PIC 99. ! -602000* NUMJJ-RET ! -602100 07 WS-4DCO-4DNE-NBJ PIC 999. ! -602200* NBJ-RET ! -602300 07 FILLER PIC X(27). ! -602400 07 WS-4DCO-4DNE-RETOUR PIC X. ! -602500* RETOUR DU P4DQB0 ! -602600* ! -602700* ! -602800 05 WS-4DCO-4DNE-ZONE-SAISIE. ! -602900 07 WS-4DCO-4DNE-CAL PIC 9(2). ! -603000* NUMERO DU CALENDRIER ! -603100 07 WS-4DCO-4DNE-LIB-CAL PIC X(25). ! -603200* LIBELLE DU CALENDRIER ! -603300 07 WS-4DCO-4DNE-NB-UTI-RUB PIC 9(6). ! -603400* NOMBRE D UTILISATION DE LA RUBRIQUE ! -603500 07 FILLER PIC X(67). ! -603600 ! -603700* SAUVEGARDE DES NUMEROS DE CAL POUR LESQUELLES LA ! -603800* VISU DU DETAIL EST DEMANDEE ! -603900 ! -604000 05 WS-4DCO-4DNE-SAUV-ACT-DETAIL. ! -604100 07 WS-4DCO-4DNE-SAUV-ACT-CAL PIC 9(2) OCCURS 14. ! -604200 07 WS-4DCO-4DNE-SAUV-ACT-LIB PIC X(25) OCCURS 14. ! -604300* ! -604400 05 WS-4DCO-4DNE-SAUV-ACT-NB PIC 9(2). ! -604500* NOMBRE D ACTIONS A TRAITER ! -604600 05 WS-4DCO-4DNE-SAUV-ACT-TRT PIC 9(2). ! -604700* NOMBRE D ACTIONS TRAITEES ! -604800 ! -604900 05 WS-4DCO-4DNE-TYP-ACTION PIC X. ! -605000 88 MODIFICATION VALUE 'M'. ! -605100 88 ANNULATION VALUE 'D'. ! -605200 ! -605300* ZONNE DE PAGINATION ! -605400 05 WS-4DCO-4DNE-NB-PAG-TS PIC 9(02). ! -605500 05 WS-4DCO-4DNE-SAUV-PAGE-AREA PIC X(160). ! -605600 ! -605700* FILLER DE RESERVE ! -605800 05 FILLER PIC X(1055). ! -605900 ! -606000*================================================================ ! -606100*= APPLICATION : CONSOLIDATION SUPPORTS = ! -606200*================================================================ ! -606300 03 WS-4DCO-4DNF REDEFINES WS-4DCO-PROGRAM. ! -606400* ============ ! -606500* ------------------------------------------------------ * ! -606600* COMMAREA : CONSOLIDATION SUPPORTS ! -606700* LONGUEUR : 1800 * ! -606800* PREFIXE : WS-4DCO-4DNF * ! -606900* ------------------------------------------------------ * ! -607000 ! -607100* SAUVEGARDE DES NUMEROS DE SUPPORT DONT LA ! -607200* VISU DU DETAIL EST DEMANDEE ! -607300 ! -607400 05 WS-4DCO-4DNF-ACT-DETAIL. ! -607500 07 WS-4DCO-4DNF-NO-SPP-FNC-DTL ! -607600 PIC 9(6) COMP-3 OCCURS 14. ! -607700 07 WS-4DCO-4DNF-NO-CAL-DTL ! -607800 PIC X(2) OCCURS 14. ! -607900 07 WS-4DCO-4DNF-LIB-SPP-DTL ! -608000 PIC X(32) OCCURS 14. ! -608100 ! -608200* SAUVEGARDE DES NUMEROS DE SUPPORT DONT LA ! -608300* MODIF DU DETAIL EST DEMANDEE ! -608400* ! -608500 05 WS-4DCO-4DNF-ACT-MODIF REDEFINES ! -608600 WS-4DCO-4DNF-ACT-DETAIL. ! -608700 07 WS-4DCO-4DNF-NO-SPP-FNC-MOD ! -608800 PIC 9(6) COMP-3 OCCURS 14. ! -608900 07 WS-4DCO-4DNF-NO-CAL-MOD ! -609000 PIC X(2) OCCURS 14. ! -609100 07 WS-4DCO-4DNF-LIB-SPP-MOD ! -609200 PIC X(32) OCCURS 14. ! -609300 ! -609400* SAUVEGARDE DES NUMEROS DE SUPPORT DONT L'AJOUT ! -609500* DE MVT MANUELS EST DEMANDEE ! -609600* ! -609700 05 WS-4DCO-4DNF-ACT-AJOUT REDEFINES ! -609800 WS-4DCO-4DNF-ACT-DETAIL. ! -609900 07 WS-4DCO-4DNF-NO-SPP-FNC-AJT ! -610000 PIC 9(6) COMP-3 OCCURS 14. ! -610100 07 WS-4DCO-4DNF-NO-CAL-AJT ! -610200 PIC X(2) OCCURS 14. ! -610300 07 WS-4DCO-4DNF-LIB-SPP-AJT ! -610400 PIC X(32) OCCURS 14. ! -610500* ! -610600 05 WS-4DCO-4DNF-DA-CSL-SPP-FNC PIC X(8). ! -610700 05 WS-4DCO-4DNF-NO-SPP-FNC PIC 9(6). ! -610800 05 WS-4DCO-4DNF-NO-CAL PIC X(2). ! -610900 05 WS-4DCO-4DNF-LIB-SPP PIC X(32). ! -611000 ! -611100 05 WS-4DCO-4DNF-ACT-NB PIC 9(2). ! -611200* NOMBRE D ACTIONS A TRAITER ! -611300 05 WS-4DCO-4DNF-ACT-TRT PIC 9(2). ! -611400* NOMBRE D ACTIONS TRAITEES ! -611500 ! -611600 05 WS-4DCO-4DNF-TYP-ACTION PIC X. ! -611700 88 ENAJOUT VALUE 'A'. ! -611800 88 ENMODIF VALUE 'M'. ! -611900 88 ENVISU VALUE 'D'. ! -612000 ! -612100* ZONE DE PAGINATION ! -612200 05 WS-4DCO-4DNF-NB-PAG-TS PIC 9(02). ! -612300 05 WS-4DCO-4DNF-PAGE-AREA PIC X(160). ! -612400 05 wS-4DCO-4DNF-IDC-OCC-SPL pic x(1). ! -612500 ! -612600 05 WS-4DCO-4DNG-ENR. ! -612700 10 WS-4DCO-4DNF-MT-ORD-ACH PIC S9(13)V99 COMP-3. ! -612800 10 WS-4DCO-4DNF-NB-PART-VTE PIC 9(11)V9(4) COMP-3. ! -612900 10 WS-4DCO-4DNF-NB-OPE-ORD-ACH PIC 9(7) COMP-3. ! -613000 10 WS-4DCO-4DNF-NB-OPE-ORD-VTE PIC 9(7) COMP-3. ! -613100 10 WS-4DCO-4DNF-NB-CTR-ORD-ACH PIC 9(7) COMP-3. ! -613200 10 WS-4DCO-4DNF-NB-CTR-ORD-VTE PIC 9(7) COMP-3. ! -613300 05 WS-4DCO-4DNG-ZONE-SAISIE. ! -613400 10 WS-4DCO-4DNF-MT PIC S9(13)V99 COMP-3. ! -613500 10 WS-4DCO-4DNF-NB PIC 9(11)V9(04) COMP-3. ! -613600 05 WS-4DCO-4DNG-INDIC PIC 9. ! -613700* FILLER DE RESERVE ! -613800 05 FILLER PIC X(1003). ! -613900 ! -614000*================================================================ ! -614100*= APPLICATION : ENREGISTREMENT DES VALEURS LIQUIDATIVES = ! -614200*================================================================ ! -614300 03 WS-4DCO-4DNI REDEFINES WS-4DCO-PROGRAM. ! -614400* ============ ! -614500* ------------------------------------------------------ * ! -614600* COMMAREA : ENREGISTREMENT DES VL ! -614700* LONGUEUR : 1800 * ! -614800* PREFIXE : WS-4DCO-4DNI * ! -614900* ------------------------------------------------------ * ! -615000 ! -615100* -- 1ER ECRAN. SAUVEGARDE DES DONNEES A PASSER AU 2EME ECRAN ! -615200 05 WS-4DCO-4DNI-ACT-SAUVE. ! -615300 07 WS-4DCO-4DNI-NO-SPP-FNC ! -615400 PIC 9(6) COMP-3 OCCURS 14. ! -615500 07 WS-4DCO-4DNI-CD-VLR ! -615600 PIC X(12) OCCURS 14. ! -615700 07 WS-4DCO-4DNI-LIB-SPP ! -615800 PIC X(32) OCCURS 14. ! -615900 07 WS-4DCO-4DNI-CD-TY-VLR ! -616000 PIC X(01) OCCURS 14. ! -616100 07 WS-4DCO-4DNI-NO-CAL ! -616200 PIC X(2) OCCURS 14. ! -616300 07 WS-4DCO-4DNI-DEL-ENV-ORD ! -616400 PIC S9(3) COMP-3 OCCURS 14. ! -616500 07 WS-4DCO-4DNI-CD-TY-SPP ! -616600 PIC X(01) OCCURS 14. ! -616700* ! -616800 05 WS-4DCO-4DNI-ACT-NB PIC 9(2). ! -616900* NOMBRE D ACTIONS A TRAITER ! -617000 05 WS-4DCO-4DNI-ACT-TRT PIC 9(2). ! -617100* NOMBRE D ACTIONS TRAITEES ! -617200 ! -617300* ZONE DE PAGINATION ! -617400 05 WS-4DCO-4DNi-IDC-OCC-SPL pic x(1). ! -617500 05 WS-4DCO-4DNI-NB-PAG-TS PIC 9(02). ! -617600 05 WS-4DCO-4DNI-PAGE-AREA PIC X(160). ! -617700* ! -617800 05 WS-4DCO-4DNI-SUITE PIC 9. ! -617900* INDICATEUR MEME PROGRAMME MAIS ENREG SUIVANT ! -618000* ! -618100* CLE DE REPOSITIONNEMENT ! -618200 05 WS-4DCO-4DNI-NO-SUP-FNC PIC X(0006). ! -618300 ! -618400* -- 2ER ECRAN. SAUVEGARDE DES DONNEES A PASSER AU 3EME ECRAN ! -618500 05 WS-4DCO-4DNJ-ACT-SAUVE. ! -618600 07 WS-4DCO-4DNJ-DA-VLR-LIQ ! -618700 PIC X(8) OCCURS 12. ! -618800 07 WS-4DCO-4DNJ-MT-VLR-LIQ-A ! -618900 PIC S9(13)V99 COMP-3 OCCURS 12. ! -619000 07 WS-4DCO-4DNJ-MT-VLR-LIQ-V ! -619100 PIC S9(13)V99 COMP-3 OCCURS 12. ! -619200 07 WS-4DCO-4DNJ-NB-PART-SURA ! -619300 PIC 9(11)V9(4) COMP-3 OCCURS 12. ! -619400 07 WS-4DCO-4DNJ-MT-GLB-ORD-ACH ! -619500 PIC S9(13)V99 COMP-3 OCCURS 12. ! -619600 07 WS-4DCO-4DNJ-NB-PART-VTE ! -619700 PIC 9(11)V9(4) COMP-3 OCCURS 12. ! -619800 07 WS-4DCO-4DNJ-MT-GLB-ORD-VTE ! -619900 PIC S9(13)V99 COMP-3 OCCURS 12. ! -620000* ! -620100 05 WS-4DCO-4DNJ-ACT-NB PIC 9(2). ! -620200* NOMBRE D ACTIONS A TRAITER ! -620300 05 WS-4DCO-4DNJ-ACT-TRT PIC 9(2). ! -620400* NOMBRE D ACTIONS TRAITEES ! -620500 ! -620600* TYPE D'ACTION SUR L'ECRAN MC4DNK0 ! -620700 05 WS-4DCO-4DNK-TYP-ACTION PIC X. ! -620800 88 4DNK-ENAJOUT VALUE 'A'. ! -620900 88 4DNK-ENVISU VALUE 'D'. ! -621000 88 4DNK-ENMODIF VALUE 'M'. ! -621100 88 4DNK-ENCONF VALUE 'C'. ! -621200 88 4DNK-ENTOLER VALUE 'T'. ! -621300 88 4DNK-ENSUPPR VALUE 'S'. ! -621400 ! -621500* SAUVEGARDE DES ZONES SAISIES ! -621600 05 WS-4DCO-4DNK-VLAC PIC S9(13)V99 COMP-3. ! -621700 05 WS-4DCO-4DNK-VLVC PIC S9(13)V99 COMP-3. ! -621800* ! -621900 05 WS-4DCO-4DNK-ACTION PIC X. ! -622000* ZONE DE PAGINATION ! -622100 05 WS-4DCO-4DNM. ! -622200 07 WS-4DCO-4DNM-IDC-OCC-SPL PIC X(001). ! -622300 07 WS-4DCO-4DNM-NB-PAG-TS PIC 9(02). ! -622400 07 WS-4DCO-4DNM-PAGE-AREA PIC X(160). ! -622500* CLE DE REPOSITIONNEMENT ! -622600 07 WS-4DCO-4DNM-DA-VLR-LIQ PIC X(0008). ! -622700* FILLER DE RESERVE ! -622800 05 FILLER PIC X(0004). ! -622900 ! -623000 ! -623100*================================================================ ! -623200*= APPLICATION : GESTION TAUX PAR TRANCHES = ! -623300*================================================================ ! -623400 03 WS-4DCO-4DDA REDEFINES WS-4DCO-PROGRAM. ! -623500* ============ ! -623600* ------------------------------------------------------ * ! -623700* COMMAREA : TAUX PAR TRANCHES ! -623800* LONGUEUR : 1800 * ! -623900* PREFIXE : WS-4DCO-4DDA * ! -624000* ------------------------------------------------------ * ! -624100 ! -624200 05 WS-4DCO-4DDA-TOPMODIF PIC 9. ! -624300* INDIC MAJ COMMAREA PARTENAIRE ! -624400* -- 1ER ECRAN. SAUVEGARDE DES DONNEES A PASSER AU 2EME ECRAN ! -624500 05 WS-4DCO-4DDA-TY-TAUX PIC 9. ! -624600* TYPE DE TAUX CHOISI ! -624700* -- 2EM ECRAN. MAJ DES TAUX PAR TRANCHES ! -624800 05 WS-4DCO-4DDA-NB-OCC PIC 99. ! -624900* NOMBRE DE TAUX PAR TRANCHE TROUVE ! -625000 05 WS-4DCO-4DDA-INITECR PIC X. ! -625100* INITIALISATION DE L'ECRAN ! -625200 05 WS-4DCO-4DDA-ACTION PIC X. ! -625300 88 4DDA-CREAT VALUE ' '. ! -625400 88 4DDA-MODIF VALUE 'M'. ! -625500 88 4DDA-SUPPR VALUE 'A'. ! -625600* ACTION SAISIE (MAJ,SUP,CREATION) ! -625700 05 WS-4DCO-4DDA-TESTMAJ PIC X. ! -625800* TOP INDIC ECRAN MODE MAJ ! -625900 05 WS-4DCO-4DDA-ITEM PIC 99. ! -626000* NO DE L'ITEM SELECTIONNEE ! -626100 05 WS-4DCO-4DDA-TRANCHE. ! -626200* INFOS DE LA TRANCHE EN COURS DE (CREAT, MAJ, SUP) ! -626300 10 WS-4DCO-4DDA-TMSTP PIC X(26). ! -626400* TIMESTAMP DE LA TRANCHE (MAJ ET SUP) ! -626500 10 WS-4DCO-4DDA-TX-POSS PIC 9(3)V9(4) COMP-3. ! -626600* TAUX DE LA TRACHE ! -626700 10 WS-4DCO-4DDA-MT-MIN PIC 9(13)V99 COMP-3. ! -626800* MONTANT MINIMUM ! -626900 10 WS-4DCO-4DDA-MT-MAX PIC 9(13)V99 COMP-3. ! -627000* MONTANT MAXIMUM ! -627100 ! -627200 05 FILLER PIC X(1745). ! -627300 ! -627400*================================================================ ! -627500*= APPLICATION : AUTRES DEROGATIONS TAUX PAR TRANCHE = ! -627600*================================================================ ! -627700 03 WS-4DCO-4DDD REDEFINES WS-4DCO-PROGRAM. ! -627800* ============ ! -627900* ------------------------------------------------------ * ! -628000* COMMAREA : AUTRES DEROGATIONS * ! -628100* LONGUEUR : 1800 * ! -628200* PREFIXE : WS-4DCO-4DDD * ! -628300* ------------------------------------------------------ * ! -628400 ! -628500 05 WS-4DCO-4DDD-TOPMODIF PIC 9. ! -628600* INDIC MAJ COMMAREA PARTENAIRE ! -628700 05 WS-4DCO-4DDD-NB-OCC PIC 99. ! -628800* NBRE OCCURENCES SELECTIONNEES ! -628900 ! -629000* -- 1ER ECRAN. SAUVEGARDE DES DONNEES TAUX HORS TRANCHE ! -629100 05 WS-4DCO-4DDD-ACT-SAUVE. ! -629200 07 WS-4DCO-4DDD-TM-STP PIC X(26). ! -629300 07 WS-4DCO-4DDD-NO-PTN PIC 9(3) COMP-3. ! -629400 07 WS-4DCO-4DDD-NO-CTR-PTN PIC X(15). ! -629500 07 WS-4DCO-4DDD-DA-OPE PIC X(10). ! -629600 07 WS-4DCO-4DDD-NO-OPE-TX PIC 9(3) COMP-3. ! -629700 07 WS-4DCO-4DDD-NO-PRD-PTN PIC 9(3) COMP-3. ! -629800 07 WS-4DCO-4DDD-NO-STR-DIS PIC X(6). ! -629900 07 WS-4DCO-4DDD-MT-BRT-OPE PIC S9(13)V9(2) COMP-3. ! -630000 07 WS-4DCO-4DDD-TY-TX PIC X. ! -630100 07 WS-4DCO-4DDD-TX-TCH-DRG PIC S9(3)V9(4) COMP-3. ! -630200 07 WS-4DCO-4DDD-CD-MAJ PIC X. ! -630300 07 WS-4DCO-4DDD-DA-MAJ PIC X(8). ! -630400 07 WS-4DCO-4DDD-TXT-CMT. ! -630500 09 WS-4DCO-4DDD-LIB-ETA-1 PIC X(70). ! -630600 09 WS-4DCO-4DDD-LIB-ETA-2 PIC X(70). ! -630700 09 WS-4DCO-4DDD-LIB-ETA-3 PIC X(70). ! -630800 09 WS-4DCO-4DDD-LIB-ETA-4 PIC X(70). ! -630900 09 WS-4DCO-4DDD-LIB-ETA-5 PIC X(70). ! -631000* ! -631100* TYPE D'ACTION SUR L'ECRAN MC4DDD0 ! -631200 05 WS-4DCO-4DDD-TYP-ACTION PIC X. ! -631300 88 4DDD-CREAT VALUE 'W'. ! -631400 88 4DDD-MODIF VALUE 'M'. ! -631500 88 4DDD-SUPP VALUE 'A'. ! -631600 88 4DDD-VISU VALUE 'C'. ! -631700* ! -631800 05 WS-4DCO-4DDD-ACTION PIC X. ! -631900 88 4DDD-CONSULTATION VALUE 'C'. ! -632000 88 4DDD-MODIFICATION VALUE 'M'. ! -632100* ! -632200 05 WS-4DCO-4DDD-PARA. ! -632300* REPRISE DES INFOS DE WS-4DCO-4DAB UTILISEES PAR ! -632400* LES TRANSACTIONS TC4DCE0 ET TC4DCF0 ! -632500 07 WS-4DCO-4DDD-TIMESTAMP1 PIC X(26). ! -632600 07 WS-4DCO-4DDD-MT-MIN-VER-INI PIC S9(07)V99 COMP-3. ! -632700 07 WS-4DCO-4DDD-MT-MIN-VER-EXC PIC S9(07)V99 COMP-3. ! -632800 07 WS-4DCO-4DDD-MT-MX-DRT-ENT PIC S9(07)V99 COMP-3. ! -632900 07 WS-4DCO-4DDD-MT-MIN-RCH-PART ! -633000 PIC S9(07)V99 COMP-3. ! -633100 07 WS-4DCO-4DDD-MT-MIN-EPG-RST PIC S9(07)V99 COMP-3. ! -633200 07 WS-4DCO-4DDD-MT-MIN-AV PIC S9(13)V99 COMP-3. ! -633300 07 WS-4DCO-4DDD-MT-EPG-RST-AV PIC S9(13)V99 COMP-3. ! -633400 07 WS-4DCO-4DDD-TX-MX-EPG-DSP PIC S9(03)V999 COMP-3. ! -633500 07 WS-4DCO-4DDD-NB-MX-AV-A PIC S9(02) COMP-3. ! -633600 07 WS-4DCO-4DDD-IDC-PRD-MTL PIC X(01). ! -633700 07 WS-4DCO-4DDD-AGE-MIN PIC S9(02) COMP-3. ! -633800 07 WS-4DCO-4DDD-MT-MIN-VER PIC S9(07)V99 COMP-3. ! -633900 ! -634000 05 WS-4DCO-4DDD-EXT-POL PIC X(09). ! -634100 05 WS-4DCO-4DDD-NO-STR-CLE PIC X(06). ! -634200 05 WS-4DCO-4DDD-POSIT PIC X. ! -634300 05 WS-4DCO-4DDD-PAGE-SUIV PIC X. ! -634400* FILLER DE RESERVE X(1262) ! -634500*= SOUS-APPLICATION : SAISIE DES ASSOCIATIONS : 400 DE LONG = ! -634600 05 WS-4DCO-4DDG-ECRAN. ! -634700 07 WS-4DCO-4DDG-TM-STP PIC X(26). ! -634800 07 WS-4DCO-4DDG-CD-ASS-AS PIC X(03). ! -634900 07 WS-4DCO-4DDG-NOM-PATRO-PR PIC X(32). ! -635000 07 WS-4DCO-4DDG-NOM-PATRO-AS PIC X(32). ! -635100 07 WS-4DCO-4DDG-LIB-ENS-1 PIC X(32). ! -635200 07 WS-4DCO-4DDG-LIB-ENS-2 PIC X(32). ! -635300 07 WS-4DCO-4DDG-LIB-RUE-1 PIC X(32). ! -635400 07 WS-4DCO-4DDG-LIB-RUE-2 PIC X(32). ! -635500 07 WS-4DCO-4DDG-LIB-COMMUNE PIC X(32). ! -635600 07 WS-4DCO-4DDG-CD-POST PIC X(05). ! -635700 07 WS-4DCO-4DDG-LIB-BUR-DIST PIC X(27). ! -635800 07 WS-4DCO-4DDG-NO-TEL PIC X(11). ! -635900* MAX(CD-ASS-AS) POUR INCREMENTATION LORS DE CREATION ! -636000 07 WS-4DCO-4DDG-CD-ASS-MAX PIC 9(03). ! -636100 07 FILLER PIC X(101). ! -636200 05 WS-4DCO-4DDD-AGE-LIM PIC 9(02). ! -636300 05 WS-4DCO-4DDD-MT-MIN-ARBT PIC S9(13)V9(2) COMP-3. ! -636400* FILLER DE RESERVE X(1252) - X(400) ! -636500 05 FILLER PIC X(852). ! -636600*================================================================ ! -636700*= APPLICATION : PREPARATION EDITIONS = ! -636800*================================================================ ! -636900 03 WS-4DCO-SA REDEFINES WS-4DCO-PROGRAM. ! -637000* ============ ! -637100 05 WS-4DCO-SA-ECRAN. ! -637200 10 WS-4DCO-SA-TY-LET PIC X(03). ! -637300 10 WS-4DCO-SA-LIB-DEST PIC X(10). ! -637400 10 WS-4DCO-SA-LIB-PTN PIC X(32). ! -637500 10 WS-4DCO-SA-LIB-CD-INT-D PIC X(32). ! -637600 10 WS-4DCO-SA-NOM-PATRO-D PIC X(32). ! -637700 10 WS-4DCO-SA-NO-ORD-ADR-D PIC 9(02). ! -637800 10 WS-4DCO-SA-LIB-RUE-D1 PIC X(32). ! -637900 10 WS-4DCO-SA-LIB-RUE-D2 PIC X(32). ! -638000 10 WS-4DCO-SA-LIB-COMMUNE-D PIC X(32). ! -638100 10 WS-4DCO-SA-CD-POST-D PIC X(05). ! -638200 10 WS-4DCO-SA-LIB-BUR-DIST-D PIC X(26). ! -638300 10 WS-4DCO-SA-IDC-COP-AVIS-CL PIC X(01). ! -638400 10 WS-4DCO-SA-IDC-COP-AVIS-PT PIC X(01). ! -638500 10 WS-4DCO-SA-IDC-ARC PIC X(01). ! -638600 05 WS-4DCO-SA-CONTROL-TY-LET PIC X(01). ! -638700 88 TYPE-LETTRE-RECHERCHE VALUE 'R'. ! -638800 88 TYPE-LETTRE-TROUVE VALUE 'O'. ! -638900 88 TYPE-LETTRE-NON-TROUVE VALUE 'N'. ! -639000 05 WS-4DCO-SA-TABLE-ADRESSE PIC X(645). ! -639100 05 FILLER REDEFINES ! -639200 WS-4DCO-SA-TABLE-ADRESSE OCCURS 5. ! -639300 10 WS-4DCO-SA-NO-ORD-ADR-POST PIC 9(02). ! -639400 10 WS-4DCO-SA-LIB-RUE-1 PIC X(32). ! -639500 10 WS-4DCO-SA-LIB-RUE-2 PIC X(32). ! -639600 10 WS-4DCO-SA-LIB-COMMUNE PIC X(32). ! -639700 10 WS-4DCO-SA-CD-POST PIC X(05). ! -639800 10 WS-4DCO-SA-LIB-BUR-DIST PIC X(26). ! -639900 05 FILLER REDEFINES ! -640000 WS-4DCO-SA-TABLE-ADRESSE. ! -640100 10 FILLER PIC X(129) OCCURS 4. ! -640200 10 FILLER PIC X(97). ! -640300 10 WS-4DCO-SA-NOM-RETRAITE PIC X(32). ! -640400 05 WS-4DCO-SA-CONTROL-ECRAN PIC X(01). ! -640500 88 OUI-ECRAN-AFFICHE VALUE 'O'. ! -640600 88 NON-ECRAN-AFFICHE VALUE 'N'. ! -640700 05 WS-4DCO-SA-TY-LET-ORIGINE PIC X(03). ! -640800 05 WS-4DCO-SA-TY-LET-EQ-1 PIC X(03). ! -640900 05 WS-4DCO-SA-TY-LET-EQ-2 PIC X(03). ! -641000 05 WS-4DCO-SA-TY-LET-EQ-3 PIC X(03). ! -641100 05 WS-4DCO-SA-TY-LET-EQ-4 PIC X(03). ! -641200 05 WS-4DCO-SA-IDC-PAI-CHQ PIC X(01). ! -641300 05 WS-4DCO-SA-CD-EXP PIC X(01). ! -641400 05 WS-4DCO-SA-CD-TT PIC X(01). ! -641500 05 WS-4DCO-SA-CD-EVE-TY PIC X(06). ! -641600 05 WS-4DCO-SA-LIB-OPE PIC X(32). ! -641700 05 WS-4DCO-SA-IDC-COP-AVIS-S1 PIC X(01). ! -641800 05 WS-4DCO-SA-IDC-COP-AVIS-S2 PIC X(01). ! -641900 05 WS-4DCO-SA-IDC-COP-AVIS-S3 PIC X(01). ! -642000 05 WS-4DCO-SA-LIB-CD-INT PIC X(32). ! -642100 05 WS-4DCO-SA-NOM-PATRO PIC X(32). ! -642200 05 WS-4DCO-SA-TRAN PIC X(04). ! -642300* ZONES POUR LE PROGRAMME TC4DPI0 ! -642400* ! -642500* ZONE DE PAGINATION ! -642600 05 WS-4DCO-SA-4DPI. ! -642700 15 WS-4DCO-4DPI-PAGE. ! -642800 20 WS-4DCO-4DPI-IDC-OCC-SPL PIC X(001). ! -642900 20 WS-4DCO-4DPI-NB-PAG-TS PIC 9(002). ! -643000 20 WS-4DCO-4DPI-SAUV-PAGE-AREA PIC X(198). ! -643100* ACTION SAUVEGARDEE ! -643200 15 WS-4DCO-4DPI-SAUV-ACT PIC X. ! -643300* NOMBRE D'OCCURENCES DE LA LISTE ! -643400 15 WS-4DCO-4DPI-NB-TS-ITEM PIC S9(04) COMP. ! -643500* NUMERO D'ITEM SELECTIONNE ! -643600 15 WS-4DCO-4DPI-NO-ITEM-SEL PIC S9(04) COMP. ! -643700* CLE DE REPOSITIONNEMENT ! -643800 15 WS-4DCO-4DPI-CLE. ! -643900 20 WS-4DCO-4DPI-NO-ETAT-PRIM PIC 9(06). ! -644000 20 WS-4DCO-4DPI-CD-PTN PIC 9(05). ! -644100 20 WS-4DCO-4DPI-CD-MTF-DEM PIC X(02). ! -644200 20 WS-4DCO-4DPI-NO-SEQ-MVT-POS PIC 9(05). ! -644300* CLE DE SAUVEGARDE. ! -644400 15 WS-4DCO-4DPI-SAV-CLE. ! -644500 20 WS-4DCO-4DPI-SAV-PRIM PIC 9(06). ! -644600 20 WS-4DCO-4DPI-SAV-PTN PIC 9(05). ! -644700 20 WS-4DCO-4DPI-SAV-MTF PIC X(02). ! -644800 20 WS-4DCO-4DPI-SAV-NO-POS PIC 9(05). ! -644900* INITIALISATION ECRAN SUIVANT. ! -645000 15 WS-4DCO-4DPI-NOM-PTN PIC X(32). ! -645100 15 WS-4DCO-4DPI-DATE-OPE. ! -645200 20 WS-4DCO-4DPI-AAOPE PIC X(04). ! -645300 20 WS-4DCO-4DPI-MMOPE PIC X(02). ! -645400 20 WS-4DCO-4DPI-JJOPE PIC X(02). ! -645500 15 WS-4DCO-4DPI-MDREGL PIC X(01). ! -645600 15 WS-4DCO-4DPI-NO-RIB-DOM. ! -645700 20 WS-4DCO-4DPI-CD-BQE PIC X(05). ! -645800 20 WS-4DCO-4DPI-CD-GUI PIC X(05). ! -645900 20 WS-4DCO-4DPI-NO-CPT PIC X(11). ! -646000 20 WS-4DCO-4DPI-CLE-RIB PIC X(02). ! -646100 15 WS-4DCO-4DPI-SLD-A-PAYER PIC S9(15)V99 COMP-3. ! -646200*===> variables -4dpj- ! -646300 05 WS-4DCO-SA-4DPJ. ! -646400 15 WS-4DCO-4DPJ-MT-ASST-CRDS PIC S9(13)V99 COMP-3. ! -646500* assiette crds ! -646600 15 WS-4DCO-4DPJ-MT-ASST-CSG PIC S9(13)V99 COMP-3. ! -646700* assiette csg ! -646800 15 WS-4DCO-4DPJ-MT-VER-RDS PIC S9(13)V99 COMP-3. ! -646900* montant crds ! -647000 15 WS-4DCO-4DPJ-MT-CSG PIC S9(13)V99 COMP-3. ! -647100* montant csg ! -647200 15 WS-4DCO-4DPJ-TOT-CRDS-CSG PIC S9(13)V99 COMP-3. ! -647300* cumul montant (crds & csg) ! -647400 15 WS-4DCO-4DPJ-MT-NET PIC S9(13)V99 COMP-3. ! -647500* montant net vers� au client ! -647600 15 WS-4DCO-4DPJ-IDC-DEBL-ATP PIC X. ! -647700* indicateur de d�blocage anticip� ! -647800 15 WS-4DCO-4DPJ-IDC-CRDS PIC X. ! -647900* indicateur de pr�l�vement CRDS & CSG ! -648000 15 WS-4DCO-4DPJ-MDREGL-DA PIC X. ! -648100* mode r�glement compte de passage(dbloc. ant.) ! -648200 15 WS-4DCO-4DPJ-MT-ASST-SOC PIC S9(13)V99 COMP-3. ! -648300* assiette soc ! -648400 15 WS-4DCO-4DPJ-MT-PLV-SOC PIC S9(13)V99 COMP-3. ! -648500* montant prelevement ! -648600* FILLER DE RESERVE ! -648700 05 FILLER PIC X(0401). ! -648800*================================================================ ! -648900*= APPLICATION : SORTIES DE FONDS = ! -649000*================================================================ ! -649100 03 WS-4DCO-ESDF REDEFINES WS-4DCO-PROGRAM. ! -649200* ============ ! -649300* ------------------------------------------------------ * ! -649400* COMMAREA : EDITION SORTIE DE FONDS * ! -649500* LONGUEUR : 1800 * ! -649600* PREFIXE : WS-4DCO-ESDF * ! -649700* ------------------------------------------------------ * ! -649800 05 WS-4DCO-ESDF-NO-ADH PIC X(20). ! -649900* NUMERO D'ADHESION ! -650000 05 WS-4DCO-ESDF-NOM-PATRO PIC X(32). ! -650100* NOM PATRONIMIQUE ! -650200 05 WS-4DCO-ESDF-TY-LET PIC X(03). ! -650300* TYPE DE LETTRE ! -650400 05 WS-4DCO-ESDF-TY-OPE PIC X(06). ! -650500* TYPE D'OPERATION ! -650600 05 WS-4DCO-ESDF-MT-OPE PIC S9(09)V99. ! -650700* TYPE D'OPERATION ! -650800 05 WS-4DCO-ESDF-DA-OPE. ! -650900* DATE DE L'OPERATION ! -651000 07 WS-4DCO-ESDF-DA-OPE-A PIC X(04). ! -651100 07 WS-4DCO-ESDF-DA-OPE-M PIC X(02). ! -651200 07 WS-4DCO-ESDF-DA-OPE-J PIC X(02). ! -651300 05 WS-4DCO-ESDF-NO-CHQ PIC X(07). ! -651400* NUMERO DE CHEQUE ! -651500 05 WS-4DCO-ESDF-AFFICHE PIC X(01). ! -651600* TOP AFFICHAGE ECRAN ! -651700 05 WS-4DCO-F463 PIC X(01). ! -651800* TOP BLOCAGE ECRAN ! -651900 05 WS-4DCO-ESDF-TRAN PIC X(04). ! -652000* TOP BLOCAGE ECRAN ! -652100 05 FILLER PIC X(1707). ! -652200* ! -652300* ! -652400*================================================================ ! -652500*= APPLICATION : TRAITEMENT DES CHEQUES = ! -652600*================================================================ ! -652700 03 WS-4DCO-CHEQ REDEFINES WS-4DCO-PROGRAM. ! -652800* ============ ! -652900* ------------------------------------------------------ * ! -653000* COMMAREA : TRAITEMENT DES CHEQUES * ! -653100* LONGUEUR : 1800 * ! -653200* PREFIXE : WS-4DCO-CHEQ : TOUS PROG GES CHEQUES * ! -653300* WS-4DCO-LOTS : TOUS PROG GES LOTS * ! -653400* WS-4DCO-4DF? : SPECIFIQUES PROGRAM * ! -653500* ------------------------------------------------------ * ! -653600* ==> SAISIE MENUS ! -653700 05 WS-4DCO-CHEQ-NO-LOT PIC 9(3) COMP-3. ! -653800* NUMERO DU LOT ! -653900 05 WS-4DCO-CHEQ-DA-LOT PIC X(10). ! -654000* DATE DU LOT ! -654100* ! -654200* ==> INFORMATIONS D'UN CHEQUE ! -654300 05 WS-4DCO-INFOS-CHEQUE. ! -654400* IMAGE DE V4D01380 ! -654500 10 WS-4DCO-CHEQ-TM-STP PIC X(26). ! -654600* TIME STAMP ! -654700 10 WS-4DCO-CHEQ-DA-CRE-LOT PIC X(10). ! -654800* DATE DE CREATION DU LOT ! -654900 10 WS-4DCO-CHEQ-NO-LOT-CHQ PIC 9(3) COMP-3. ! -655000* NUMERO LOT CHEQUE ! -655100 10 WS-4DCO-CHEQ-NO-ORD-LOT-CHQ PIC 9(3) COMP-3. ! -655200* NUMERO ORDRE LOT CHEQUE ! -655300 10 WS-4DCO-CHEQ-NO-PTN PIC 9(3) COMP-3. ! -655400* NUMERO PARTENAIRE ! -655500 10 WS-4DCO-CHEQ-NO-CTR-PTN PIC X(15). ! -655600* NUMERO CONTRAT PARTENAIRE ! -655700 10 WS-4DCO-CHEQ-CD-VTL PIC X(1). ! -655800* CODE VENTILATION ! -655900 10 WS-4DCO-CHEQ-REM-CHQ PIC S9(13)V9(2) COMP-3. ! -656000* MONTANT REMISE CHEQUE ! -656100 10 WS-4DCO-CHEQ-LIB-ABR-DOM PIC X(6). ! -656200* LIBELLE ABREGE DOMICILIATION ! -656300 10 WS-4DCO-CHEQ-NOM-PATRO PIC X(16). ! -656400* NOM PATRONYMIQUE ! -656500 10 WS-4DCO-CHEQ-DA-OPE-VER PIC X(10). ! -656600* DATE OPERATION VERSEMENT ! -656700 10 WS-4DCO-CHEQ-NO-STR-OPE PIC X(6). ! -656800* NUMERO STRUCTURE OPERATIONNELLE ! -656900 10 WS-4DCO-CHEQ-NO-AGT-OPE PIC X(8). ! -657000* NUMERO AGENT OPERATION ! -657100 10 WS-4DCO-CHEQ-LIB-CPL PIC X(32). ! -657200* LIBELLE COMPLEMENT ! -657300 10 WS-4DCO-CHEQ-CD-MAJ PIC X(1). ! -657400* CODE MAJ ! -657500 10 WS-4DCO-CHEQ-CD-PTN PIC X(5). ! -657600* CODE PERTENAIRE EXTERNE ! -657700 10 WS-4DCO-CHEQ-IDC-PTN-CM PIC X. ! -657800* INDICATEUR PARTENAIRE CREDIT-MUTUEL ! -657900 88 CHEQ-CCM VALUE 'O'. ! -658000 88 CHEQ-EXT VALUE 'N'. ! -658100* ! -658200* ==> INFORMATIONS D'UN LOT ! -658300 05 WS-4DCO-INFOS-LOT. ! -658400* IMAGE DE V4D01390 ! -658500 15 WS-4DCO-LOTS-TM-STP PIC X(26). ! -658600* TIME STAMP ! -658700 15 WS-4DCO-LOTS-DA-CRE-LOT PIC X(10). ! -658800* DATE DE CREATION DU LOT ! -658900 15 WS-4DCO-LOTS-NO-LOT-CHQ PIC 9(3) COMP-3. ! -659000* NUMERO LOT CHEQUE ! -659100 15 WS-4DCO-LOTS-COMPTE. ! -659200* NUMERO DE COMPTE ! -659300 20 WS-4DCO-LOTS-CD-BANQUE PIC X(5). ! -659400* CODE BANQUE ! -659500 20 WS-4DCO-LOTS-CD-GUICHET PIC X(5). ! -659600* CODE GUICHET ! -659700 20 WS-4DCO-LOTS-NO-CPT-RIB PIC X(11). ! -659800* NUMERO COMPTE RIB ! -659900 20 WS-4DCO-LOTS-CLE-RIB PIC X(2). ! -660000* CLE RIB ! -660100 15 WS-4DCO-LOTS-NO-PTN-OP PIC 9(3) COMP-3. ! -660200* NUMERO PARTENAIRE ! -660300 15 WS-4DCO-LOTS-NO-STR-OPE PIC X(6). ! -660400* NUMERO STRUCTURE OPERATIONNELLE ! -660500 15 WS-4DCO-LOTS-NO-AGT-OPE PIC X(8). ! -660600* NUMERO AGENT OPERATION ! -660700 15 WS-4DCO-LOTS-MT-REM-LO PIC S9(13)V9(2) COMP-3. ! -660800* MONTANT REMISE ! -660900 15 WS-4DCO-LOTS-CD-MAJ PIC X(1). ! -661000* CODE MAJ ! -661100 15 WS-4DCO-LOTS-CD-ENV PIC X(1). ! -661200* CODE ENVOI ! -661300 15 WS-4DCO-LOTS-DA-ENV-LOT PIC X(10). ! -661400* DATE ENVOI LOT ! -661500 15 WS-4DCO-LOTS-MT-REM-CHQ PIC S9(13)V9(2) COMP-3. ! -661600* MONTANT REMISES CHEQUES TOTALISES ! -661700 15 WS-4DCO-LOTS-NB-REM-CHQ PIC 9(7) COMP-3. ! -661800* NOMBRE REMISES CHEQUES TOTALISES ! -661900 15 WS-4DCO-LOTS-CD-PTN PIC X(5). ! -662000* CODE PARTENAIRE EXTERNE ! -662100 ! -662200* ==> ZONES DE TRAVAIL POUR SAISIE CRITERES DE SELECTION ! -662300* POUR LISTE DE LOTS ! -662400 ! -662500 05 WS-4DCO-SELECTION-LOT. ! -662600* SELECTION : DATE DEBUT ! -662700 07 WS-4DCO-4DFF-DA-DEB. ! -662800 10 WS-4DCO-4DFF-DA-DEB-SA PIC X(04). ! -662900 10 WS-4DCO-4DFF-DA-DEB-MM PIC X(02). ! -663000 10 WS-4DCO-4DFF-DA-DEB-JJ PIC X(02). ! -663100* SELECTION : DATE FIN ! -663200 07 WS-4DCO-4DFF-DA-FIN. ! -663300 10 WS-4DCO-4DFF-DA-FIN-SA PIC X(04). ! -663400 10 WS-4DCO-4DFF-DA-FIN-MM PIC X(02). ! -663500 10 WS-4DCO-4DFF-DA-FIN-JJ PIC X(02). ! -663600* SELECTION : NUMERO LOT DEBUT ! -663700 07 WS-4DCO-4DFF-NO-LOT-DEB PIC 9(03) COMP-3. ! -663800* SELECTION : NUMERO LOT FIN ! -663900 07 WS-4DCO-4DFF-NO-LOT-FIN PIC 9(03) COMP-3. ! -664000* SELECTION : COMPTE BANCAIRE DESTINATAIRE ! -664100 07 WS-4DCO-4DFF-CD-BANQUE PIC X(05). ! -664200 07 WS-4DCO-4DFF-CD-GUICHET PIC X(05). ! -664300 07 WS-4DCO-4DFF-NO-CPT-RIB PIC X(11). ! -664400 07 WS-4DCO-4DFF-CLE-RIB PIC X(02). ! -664500 ! -664600* ==> ZONES DE TRAVAIL POUR DETAIL SUCCESSIF DE LOTS ! -664700 ! -664800 05 WS-4DCO-SUCCESSION-LOT. ! -664900* ZONE DE PAGINATION ! -665000 07 WS-4DCO-4DFG-NB-PAG-TS PIC 9(02). ! -665100 07 WS-4DCO-4DFG-PAGE-AREA PIC X(198). ! -665200* ! -665300 07 WS-4DCO-4DFG-SAUV-ACTION. ! -665400 10 WS-4DCO-4DFG-SAUV-ITEM PIC 9(3) OCCURS 12. ! -665500* ! -665600 07 WS-4DCO-4DFG-SAUV-ACT-NB PIC 9(2). ! -665700* NOMBRE D ACTIONS A TRAITER ! -665800 07 WS-4DCO-4DFG-SAUV-ACT-TRT PIC 9(2). ! -665900* NOMBRE D ACTIONS TRAITEES ! -666000 ! -666100 07 WS-4DCO-4DFG-TYP-ACTION PIC X. ! -666200 88 CONSULTATION-LOT VALUE '1'. ! -666300 88 MODIFICATION-LOT VALUE '2'. ! -666400 88 SUPPRESSION-LOT VALUE '3'. ! -666500 88 ENVOI-LOT VALUE '4'. ! -666600 88 ANNULATION-ENVOI-LOT VALUE '5'. ! -666700 ! -666800 07 WS-4DCO-4DFC-IDC-OCC-SPL PIC X. ! -666900 07 WS-4DCO-4DFC-SANS-CREAT PIC X. ! -667000 07 WS-4DCO-4DFG-SANS-ENV PIC X. ! -667100 ! -667200* ==> ZONES DE TRAVAIL POUR SAISIE CRITERES DE SELECTION ! -667300* POUR LISTE DE CHEQUES ! -667400 ! -667500 05 WS-4DCO-SELECTION-CHEQUE. ! -667600* SELECTION : DATE DEBUT ! -667700 07 WS-4DCO-4DFI-DA-DEB. ! -667800 10 WS-4DCO-4DFI-DA-DEB-SA PIC X(04). ! -667900 10 WS-4DCO-4DFI-DA-DEB-MM PIC X(02). ! -668000 10 WS-4DCO-4DFI-DA-DEB-JJ PIC X(02). ! -668100* SELECTION : DATE FIN ! -668200 07 WS-4DCO-4DFI-DA-FIN. ! -668300 10 WS-4DCO-4DFI-DA-FIN-SA PIC X(04). ! -668400 10 WS-4DCO-4DFI-DA-FIN-MM PIC X(02). ! -668500 10 WS-4DCO-4DFI-DA-FIN-JJ PIC X(02). ! -668600* SELECTION : NUMERO LOT DEBUT ! -668700 07 WS-4DCO-4DFI-NO-LOT-DEB PIC 9(03) COMP-3. ! -668800* SELECTION : NUMERO LOT FIN ! -668900 07 WS-4DCO-4DFI-NO-LOT-FIN PIC 9(03) COMP-3. ! -669000* SELECTION : COMPTE BANCAIRE DESTINATAIRE ! -669100 07 WS-4DCO-4DFI-CD-BANQUE PIC X(05). ! -669200 07 WS-4DCO-4DFI-CD-GUICHET PIC X(05). ! -669300 07 WS-4DCO-4DFI-NO-CPT-RIB PIC X(11). ! -669400 07 WS-4DCO-4DFI-CLE-RIB PIC X(02). ! -669500* SELECTION : LIBELLE ABREGE DOMICILIATION ! -669600 07 WS-4DCO-4DFI-LIB-ABR-DOM PIC X(06). ! -669700* SELECTION : NOM CLIENT ! -669800 07 WS-4DCO-4DFI-NOM-PATRO PIC X(16). ! -669900* SELECTION : PARTENAIRE DE GESTION ! -670000 07 WS-4DCO-4DFI-CD-PTN PIC X(05). ! -670100* SELECTION : NUMERO CONTRAT ! -670200 07 WS-4DCO-4DFI-NO-CTR-PTN PIC X(09). ! -670300* SELECTION : CODE VENTILATION ! -670400 07 WS-4DCO-4DFI-CD-VTL PIC X. ! -670500* SELECTION : MONTANT MINIMUM ! -670600 07 WS-4DCO-4DFI-MT-MINI PIC S9(13)V9(2) COMP-3. ! -670700* SELECTION : MONTANT MAXIMUM ! -670800 07 WS-4DCO-4DFI-MT-MAXI PIC S9(13)V9(2) COMP-3. ! -670900 07 WS-4DCO-4DFI-NO-PTN PIC 9(3) COMP-3. ! -671000 ! -671100* ==> ZONES DE TRAVAIL POUR DETAIL SUCCESSIF DE CHEQUES ! -671200 ! -671300 05 WS-4DCO-SUCCESSION-CHEQUE. ! -671400* ZONE DE PAGINATION ! -671500 ! -671600 07 WS-4DCO-4DFJ-NB-PAG-TS PIC 9(02). ! -671700 07 WS-4DCO-4DFJ-PAGE-AREA PIC X(198). ! -671800* ! -671900 07 WS-4DCO-4DFJ-SAUV-ACTION. ! -672000 10 WS-4DCO-4DFJ-SAUV-ITEM PIC 9(3) OCCURS 12. ! -672100* ! -672200 07 WS-4DCO-4DFJ-SAUV-ACT-NB PIC 9(2). ! -672300* NOMBRE D ACTIONS A TRAITER ! -672400 07 WS-4DCO-4DFJ-SAUV-ACT-TRT PIC 9(2). ! -672500* NOMBRE D ACTIONS TRAITEES ! -672600 ! -672700 07 WS-4DCO-4DFJ-TYP-ACTION PIC X. ! -672800 88 CONSULTATION-CHEQUE VALUE '1'. ! -672900 88 MODIFICATION-CHEQUE VALUE '2'. ! -673000 88 SUPPRESSION-CHEQUE VALUE '3'. ! -673100 ! -673200 07 WS-4DCO-4DFJ-IDC-CHQ PIC X. ! -673300 07 WS-4DCO-4DFJ-CD-PTN-SAUV PIC X(05). ! -673400* ! -673500 07 WS-4DCO-4DFH-IDC-OCC-SPL PIC X. ! -673600* ! -673700 05 WS-4DCO-SELECTION-PTN. ! -673800* SELECTION : DATE DEBUT ! -673900 07 WS-4DCO-4DFK-DA-DEB. ! -674000 10 WS-4DCO-4DFK-DA-DEB-SA PIC X(04). ! -674100 10 WS-4DCO-4DFK-DA-DEB-MM PIC X(02). ! -674200 10 WS-4DCO-4DFK-DA-DEB-JJ PIC X(02). ! -674300* SELECTION : DATE FIN ! -674400 07 WS-4DCO-4DFK-DA-FIN. ! -674500 10 WS-4DCO-4DFK-DA-FIN-SA PIC X(04). ! -674600 10 WS-4DCO-4DFK-DA-FIN-MM PIC X(02). ! -674700 10 WS-4DCO-4DFK-DA-FIN-JJ PIC X(02). ! -674800* SELECTION : CODE EXTERNE PTN ! -674900 07 WS-4DCO-4DFK-CD-PTN PIC X(05). ! -675000* SELECTION : NUMERO PTN INTERNE ! -675100 07 WS-4DCO-4DFK-NO-PTN PIC 9(03) COMP-3. ! -675200* MONTANT REMISES CHEQUES TOTALISES ! -675300 07 WS-4DCO-4DFK-MT-REM-CHQ PIC S9(13)V9(2) COMP-3. ! -675400* NOMBRE REMISES CHEQUES TOTALISES ! -675500 07 WS-4DCO-4DFK-NB-REM-CHQ PIC 9(7) COMP-3. ! -675600 05 FILLER PIC X(855). ! -675700* ! -675800* ! -675900*================================================================ ! -676000*= APPLICATION : RACHATS PREVI-7 = ! -676100*================================================================ ! -676200 03 WS-4DCO-RCH-P7 REDEFINES WS-4DCO-PROGRAM. ! -676300* ============ ! -676400* ------------------------------------------------------ * ! -676500* COMMAREA : RACHATS PREVI-7 * ! -676600* LONGUEUR : 1800 * ! -676700* PREFIXE : WS-P7CO-RCH * ! -676800* ------------------------------------------------------ * ! -676900* ! -677000 05 WS-P7CO-RCH-INFO-SCP. ! -677100* INFORMATIONS GENERALES SOUSCRIPTION ! -677200 07 WS-P7CO-RCH-CAPO PIC X(005). ! -677300 07 WS-P7CO-RCH-NGEN PIC X(002). ! -677400 07 WS-P7CO-RCH-NSCP PIC X(008). ! -677500 07 WS-P7CO-RCH-DSCP. ! -677600 09 WS-P7CO-RCH-DSCP-SA. ! -677700 11 WS-P7CO-RCH-DSCP-SS PIC 9(002). ! -677800 11 WS-P7CO-RCH-DSCP-AA PIC 9(002). ! -677900 09 WS-P7CO-RCH-DSCP-MM PIC 9(002). ! -678000 09 WS-P7CO-RCH-DSCP-JJ PIC 9(002). ! -678100 07 WS-P7CO-RCH-DEFF. ! -678200 09 WS-P7CO-RCH-DEFF-SA. ! -678300 11 WS-P7CO-RCH-DEFF-SS PIC 9(002). ! -678400 11 WS-P7CO-RCH-DEFF-AA PIC 9(002). ! -678500 09 WS-P7CO-RCH-DEFF-MM PIC 9(002). ! -678600 09 WS-P7CO-RCH-DEFF-JJ PIC 9(002). ! -678700 07 WS-P7CO-RCH-TXGARMIN PIC S9(3)V9(4) COMP-3. ! -678800 07 WS-P7CO-RCH-TXFRSGES PIC S9(3)V9(4) COMP-3. ! -678900 07 WS-P7CO-RCH-TXCOMSCP PIC S9(3)V9(4) COMP-3. ! -679000 07 WS-P7CO-RCH-NOM-PATRO-SC PIC X(032). ! -679100* NOM PATRONYMIQUE DU SOUSCRIPTEUR ! -679200 07 WS-P7CO-RCH-NCERDEP PIC X(008). ! -679300* ! -679400 05 WS-P7CO-RCH-INFO-RCH. ! -679500* INFORMATIONS GENERALES RACHAT ! -679600 07 WS-P7CO-RCH-DRAC. ! -679700 09 WS-P7CO-RCH-DRACSA. ! -679800 11 WS-P7CO-RCH-DRACSS PIC X(002). ! -679900 11 WS-P7CO-RCH-DRACAA PIC X(002). ! -680000 09 WS-P7CO-RCH-DRACMM PIC X(002). ! -680100 09 WS-P7CO-RCH-DRACJJ PIC X(002). ! -680200* ! -680300 07 WS-P7CO-RCH-OPTRAC PIC X(001). ! -680400 07 WS-P7CO-RCH-NO-STR-GTN PIC X(006). ! -680500 07 WS-P7CO-RCH-LIB-STR PIC X(032). ! -680600 07 WS-P7CO-RCH-CPT-DOM. ! -680700* COMPTE BANCAIRE ! -680800 09 WS-P7CO-RCH-CD-BQE-DOM PIC X(005). ! -680900 09 WS-P7CO-RCH-CD-GUI-DOM PIC X(005). ! -681000 09 WS-P7CO-RCH-NO-CPT-DOM PIC X(011). ! -681100 09 WS-P7CO-RCH-CLE-RIB-DOM PIC X(002). ! -681200 07 WS-P7CO-RCH-IDT-FIS. ! -681300* IDENTIFIANT FISCAL ! -681400 09 WS-P7CO-RCH-CD-BQE-FIS PIC X(005). ! -681500 09 WS-P7CO-RCH-CD-GUI-FIS PIC X(005). ! -681600 09 WS-P7CO-RCH-NO-CPT-FIS PIC X(011). ! -681700 09 WS-P7CO-RCH-CLE-RIB-FIS PIC X(002). ! -681800 07 WS-P7CO-RCH-IDC-PAI-CHQ PIC X(001). ! -681900* ! -682000 05 WS-P7CO-RCH-INFO-VAL-RCH. ! -682100* INFORMATIONS MONTANTS RACHAT ! -682200 07 WS-P7CO-RCH-PLUVAL PIC S9(11)V99 COMP-3. ! -682300 07 WS-P7CO-RCH-MNTPL PIC S9(11)V99 COMP-3. ! -682400 07 WS-P7CO-RCH-MNTCS PIC S9(11)V99 COMP-3. ! -682500 07 WS-P7CO-RCH-MNTPS PIC S9(11)V99 COMP-3. ! -682600 07 WS-P7CO-RCH-MNTCSG PIC S9(11)V99 COMP-3. ! -682700 07 WS-P7CO-RCH-MNTIGF PIC S9(11)V99 COMP-3. ! -682800 07 WS-P7CO-RCH-MNTDEP PIC S9(11)V99 COMP-3. ! -682900 07 WS-P7CO-RCH-VRACNET PIC S9(11)V99 COMP-3. ! -683000 07 WS-P7CO-RCH-VRACBRU PIC S9(11)V99 COMP-3. ! -683100 07 WS-P7CO-MT-ASST-CRDS PIC S9(11)V99 COMP-3. ! -683200 07 WS-P7CO-MT-VER-RDS PIC S9(11)V99 COMP-3. ! -683300 07 WS-P7CO-MT-ASST-CSG PIC S9(11)V99 COMP-3. ! -683400 07 FILLER PIC X(1) . ! -683500 07 WS-P7CO-TX-CTB-TP PIC S9(2)V9(3) COMP-3. ! -683600 07 WS-P7CO-TX-CSG-TP PIC S9(2)V9(3) COMP-3. ! -683700 07 WS-P7CO-TX-CRDS-TP PIC S9(2)V9(3) COMP-3. ! -683800* ! -683900 05 WS-P7CO-RCH-INFO-COUR. ! -684000* INFORMATIONS COURRIER ! -684100 07 WS-P7CO-RCH-INFO-COUR-PORT. ! -684200* INFORMATIONS SUR LE PORTEUR DES TITRES ! -684300 09 WS-P7CO-RCH-TY-LET PIC X(003). ! -684400 09 WS-P7CO-RCH-CODINT PIC X(001). ! -684500 09 WS-P7CO-RCH-LI-INT PIC X(016). ! -684600 09 WS-P7CO-RCH-LI-INT-CT PIC X(010). ! -684700 09 WS-P7CO-RCH-NOM PIC X(032). ! -684800 09 WS-P7CO-RCH-PRENOM PIC X(032). ! -684900 09 WS-P7CO-RCH-NOMJF PIC X(032). ! -685000 09 WS-P7CO-RCH-ADR1 PIC X(032). ! -685100 09 WS-P7CO-RCH-ADR2 PIC X(032). ! -685200 09 WS-P7CO-RCH-CODPOS PIC X(005). ! -685300 09 WS-P7CO-RCH-BURDIS PIC X(026). ! -685400 07 WS-P7CO-RCH-INFO-TRT. ! -685500 09 WS-P7CO-RCH-IDC-CPT PIC X(01). ! -685600 09 WS-P7CO-RCH-IDC-CCL PIC X(01). ! -685700 09 WS-P7CO-RCH-IDC-ARC PIC X(01). ! -685800 09 WS-P7CO-RCH-CD-EXP PIC X(01). ! -685900 09 WS-P7CO-RCH-CTRL-TY-LET PIC X(01). ! -686000 88 TY-LET-RECHERCHE VALUE 'R'. ! -686100 88 TY-LET-TROUVE VALUE 'O'. ! -686200 88 TY-LET-NON-TROUVE VALUE 'N'. ! -686300 09 WS-P7CO-RCH-TY-LET-ORI PIC X(03). ! -686400 ! -686500 07 WS-P7CO-RCH-INFO-COUR-DEST. ! -686600* INFORMATIONS SUR LE DESTINATAIRE DU COURRIER ! -686700 09 WS-P7CO-RCH-NOM-DST PIC X(032). ! -686800 09 WS-P7CO-RCH-PRENOM-DST PIC X(032). ! -686900 09 WS-P7CO-RCH-ADR1-DST PIC X(032). ! -687000 09 WS-P7CO-RCH-ADR2-DST PIC X(032). ! -687100 09 WS-P7CO-RCH-CODPOS-DST PIC X(005). ! -687200 09 WS-P7CO-RCH-BURDIS-DST PIC X(026). ! -687300 ! -687400 07 WS-P7CO-RCH-NBR-EX PIC 9(001). ! -687500* NBRE D'EXEMPLAIRES A EDITER ! -687600* ! -687700 07 WS-P7CO-RCH-NO-CHQ PIC X(007). ! -687800* NUMERO DE CHEQUE ! -687900* ! -688000 05 WS-P7CO-RCH-INFO-SPIT. ! -688100* INFORMATIONS ISSUES DU PARAMETRAGE SPITAB ! -688200 07 WS-P7CO-RCH-CD-TY-CRO PIC X(003). ! -688300 07 WS-P7CO-RCH-CD-EVE-TY PIC X(006). ! -688400 07 WS-P7CO-RCH-LIB-OPE PIC X(032). ! -688500 07 WS-P7CO-RCH-LIB-LET PIC X(032). ! -688600* ! -688700 05 WS-P7CO-RCH-INFO-TS. ! -688800* INFORMATIONS CONCERNANT LA TS - LISTE TITRES ! -688900 07 WS-P7CO-RCH-TS-LG PIC S9(04) COMP. ! -689000 07 WS-P7CO-RCH-TS-ITEM OCCURS 15 PIC S9(04) COMP. ! -689100 07 WS-P7CO-RCH-TS-NB-ITEM PIC S9(04) COMP. ! -689200 07 WS-P7CO-RCH-TS-NB-ZOOM PIC S9(04) COMP. ! -689300 07 WS-P7CO-RCH-TS-NOM PIC X(07). ! -689400 07 WS-P7CO-RCH-TS-NB-MODIF PIC 9(2). ! -689500* ! -689600 05 WS-P7CO-RCH-EDIT. ! -689700 07 WS-P7CO-RCH-LIB-LET-0 PIC X(30). ! -689800 07 WS-P7CO-RCH-LIB-LET-1 PIC X(30). ! -689900 07 WS-P7CO-RCH-REF-IMP-EXT PIC X(10). ! -690000* ! -690100*-- DUREE DU CONTRAT EN NOMBRE DE JOURS ! -690200 05 WS-P7CO-RCH-NB-JOURS PIC 9(05). ! -690300*-- INDICE FISCALITE ! -690400 05 WS-P7CO-RCH-IND-FIS PIC X(01). ! -690500 ! -690600*-- INDICATEUR EDITION POUR IMPRESSION RDI ! -690700 05 WS-P7CO-E-IDC-EDIT PIC X(04). ! -690800 88 IMPR-SUIVANTE VALUE 'SU'. ! -690900 88 IMPR-TERMINER VALUE 'FF'. ! -691000*-- NOM PROGRAMME RETOUR APRES IMPRESSION RDI ! -691100 05 WS-P7CO-E-NO-PGM-CICS-RE PIC X(08). ! -691200*-- DATE ET HEURE DE MISE A JOUR DES CROS ! -691300 05 WS-P7CO-RCH-DA-CRE-CRO PIC X(08). ! -691400 05 WS-P7CO-RCH-HEU-CRE-CRO PIC 9(06). ! -691500*-- NOM DE LA TS D'EDITION ! -691600 05 WS-P7CO-RCH-E-TS-NOM PIC X(08). ! -691700*-- COMPTE EXONERE ! -691800 05 WS-P7CO-RCH-EXO PIC X(01). ! -691900 ! -692000* - AGENCE ! -692100 05 WS-P7CO-SCR-NAPO PIC X(8). ! -692200* - NUMERO DE CLIENT INTERNE DU CLIENT SOUSCRIPTEUR ! -692300 05 WS-P7CO-SCR-NO-CLI PIC 9(7). ! -692400* - CODE EXTERNE DU CLIENT SOUSCRIPTEUR ! -692500 05 WS-P7CO-SCR-CD-CLI. ! -692600* - CODE EXTERNE DU CLIENT SOUSCRIPTEUR PARTIE 1 ! -692700 10 WS-P7CO-SCR-CD-CLI-PART1 PIC X(7). ! -692800* - CODE EXTERNE DU CLIENT SOUSCRIPTEUR PARTIE 2 ! -692900 10 WS-P7CO-SCR-CD-CLI-PART2 PIC X(8). ! -693000* - DATE NAISSANCE ! -693100 05 WS-P7CO-SCR-DNAI. ! -693200 10 WS-P7CO-SCR-DNAI-SA. ! -693300 15 WS-P7CO-SCR-DNAI-SS PIC 9(2). ! -693400 15 WS-P7CO-SCR-DNAI-AA PIC 9(2). ! -693500 10 WS-P7CO-SCR-DNAI-MM PIC 9(2). ! -693600 10 WS-P7CO-SCR-DNAI-JJ PIC 9(2). ! -693700* - LIEU NAISSANCE ! -693800 05 WS-P7CO-SCR-LOCNAI PIC X(32). ! -693900* - DEPARTEMENT NAISSANCE ! -694000 05 WS-P7CO-SCR-DEPNAI PIC X(32). ! -694100* - CODE EXPEDITION (TYPE D'ENVOI) 1:EN CCM 2:A DOMICILE ! -694200 05 WS-P7CO-SCR-CEXPEDI PIC X(1). ! -694300* - DATE ACCUSE DE RECEPTION ! -694400 05 WS-P7CO-SCR-DACRECEP. ! -694500 10 WS-P7CO-SCR-DACRECP-SA. ! -694600 15 WS-P7CO-SCR-DACRECP-SS PIC X(2). ! -694700 15 WS-P7CO-SCR-DACRECP-AA PIC X(2). ! -694800 10 WS-P7CO-SCR-DACRECP-MM PIC X(2). ! -694900 10 WS-P7CO-SCR-DACRECP-JJ PIC X(2). ! -695000* - OPTION GARDIENNAGE A LA SOUSCRIPTION ! -695100 05 WS-P7CO-SCR-OPTGARD PIC X(1). ! -695200* ! -695300 05 WS-P7CO-SCR-NANTI PIC X(1). ! -695400* - CODE RENONCIATION 0:NON 1:OUI ! -695500 05 WS-P7CO-SCR-CRENONC PIC X(1). ! -695600* - DATE RENONCIATION ! -695700 05 WS-P7CO-SCR-DREN. ! -695800 10 WS-P7CO-SCR-DREN-SA. ! -695900 15 WS-P7CO-SCR-DREN-SS PIC 9(2). ! -696000 15 WS-P7CO-SCR-DREN-AA PIC 9(2). ! -696100 10 WS-P7CO-SCR-DREN-MM PIC 9(2). ! -696200 10 WS-P7CO-SCR-DREN-JJ PIC 9(2). ! -696300* - MONTANT SOUSCRIT ! -696400 05 WS-P7CO-SCR-MNTSCP PIC S9(13) COMP-3. ! -696500* - FRAIS GESTION ! -696600 05 WS-P7CO-SCR-FRSGES PIC S9(13) COMP-3. ! -696700* - TAUX FRAIS GESTION ! -696800 05 WS-P7CO-SCR-TXFRSGES PIC S9(3)V9(4) COMP-3. ! -696900* - COMMISSION ! -697000 05 WS-P7CO-SCR-COMSCP PIC S9(13) COMP-3. ! -697100* - TAUX COMMISSION ! -697200 05 WS-P7CO-SCR-TXCOMSCP PIC S9(3)V9(4) COMP-3. ! -697300* - NOMBRE ET MONTANT DES TITRES SOUSCRITS ! -697400 05 WS-P7CO-SCR-GTITRE OCCURS 7. ! -697500* - MONTANT DU TITRE ! -697600 10 WS-P7CO-SCR-MNTTIT PIC S9(13) COMP-3. ! -697700* - NB TIT DE CE MONTANT ! -697800 10 WS-P7CO-SCR-NBTIT PIC S9(5) COMP-3. ! -697900* - NOMBRE D'ITEMS DANS LA TS TITS ! -698000 05 WS-P7CO-TIT-NB-ITEM PIC S9(4) COMP. ! -698100* - NUMERO D'ITEM DE LA TS TITS ! -698200 05 WS-P7CO-TIT-NO-ITEM PIC S9(4) COMP. ! -698300* - CODE OPTION FISCALE ! -698400 05 WS-P7CO-CD-OPT-FIS PIC X(01). ! -698500* - CODE NATURE PIECE IDENTITE ! -698600 05 WS-P7CO-CD-NAT-PCE-IDT PIC X(02). ! -698700* - CODE INSEE COMMUNE ! -698800 05 WS-P7CO-RCH-CD-DPT PIC X(02). ! -698900* - NUMERO INSEE COMMUNE ! -699000 05 WS-P7CO-RCH-CD-COMM PIC X(03). ! -699100* - INDICATEUR SOUSCRIPTION ECHUE ( TERME PR�VI-7 ) ! -699200 05 WS-P7CO-SCR-IDC-ECH PIC X(01). ! -699300* - DATE ECHEANCE SOUSCRIPTION ! -699400 05 WS-P7CO-SCR-DAECHSCP. ! -699500 10 WS-P7CO-SCR-DAECHSCPSA. ! -699600 15 WS-P7CO-SCR-DAECHSC-SS PIC 9(2). ! -699700 15 WS-P7CO-SCR-DAECHSC-AA PIC 9(2). ! -699800 10 WS-P7CO-SCR-DAECHSC-MM PIC 9(2). ! -699900 10 WS-P7CO-SCR-DAECHSC-JJ PIC 9(2). ! -700000* - AFFICHAGE TCP7510 ! -700100 05 WS-P7CO-LIB-SEL PIC X(030). ! -700200 05 WS-P7CO-SEL-TS-TIT PIC X(001). ! -700300* - AFFICHAGE TCP7520- APPEL DE VALEUR ! -700400 05 WS-P7CO-RCH-CODINT2 PIC X(002). ! -700500 05 WS-P7CO-RCH-LI-INT2 PIC X(016). ! -700600* - RESERVATION DU NUMERO DE TITRE SAISI ! -700700 05 WS-P7CO-RCH-NSER PIC X(04). ! -700800 05 WS-P7CO-RCH-NCAR PIC X(07). ! -700900 05 WS-P7CO-RCH-NTIT PIC X(07). ! -701000 05 WS-P7CO-RCH-IDC-MESS-FISCALITE PIC X(01). ! -701100* - CONTRIBUTION ADDITIONNELLE ! -701200 05 WS-P7CO-RCH-MT-CTB PIC S9(11)V99 COMP-3. ! -701300* - NOUVEAU FILLER DE FIN ! -701400 05 FILLER PIC X(587). ! -701500 ! -701600* ! -701700*================================================================ ! -701800*= APPLICATION : GESTION SINISTRE DECES = ! -701900*================================================================ ! -702000 03 WS-4DCO-4DDS REDEFINES WS-4DCO-PROGRAM. ! -702100* ============ ! -702200 ! -702300* ============== ! -702400* ------------------------------------------------------ * ! -702500* COMMAREA : PARAMETRAGE : REGLE DE DELEGATION * ! -702600* LONGUEUR : 1800 * ! -702700* PREFIXE : WS-4DCO-4DDS * ! -702800* ------------------------------------------------------ * ! -702900 ! -703000 10 WS-4DCO-4DDS. ! -703100 ! -703200 15 FILLER PIC X(28). ! -703300* AJUSTEMENT ! -703400 15 WS-4DCO-4DDS-PAGE-AREA PIC X(198). ! -703500* PAGE AREA POUR LISTE ! -703600 15 WS-4DCO-4DDS-NO-PTN PIC S9(05) COMP-3. ! -703700* NUMERO INTERNE PARTENAIRE ! -703800 15 WS-4DCO-4DDS-CD-PTN PIC 9(05). ! -703900* NUMERO EXTERNE PARTENAIRE ! -704000 15 WS-4DCO-4DDS-NO-STR PIC X(06). ! -704100* NUMERO EXTERNE PARTENAIRE ! -704200 15 WS-4DCO-4DDS-CD-RGL-DLG PIC X(03). ! -704300* CODE REGLE DELEGATION ! -704400 15 WS-4DCO-4DDS-DA-VAL-DBT PIC X(08). ! -704500* DATE DEBUT-VALIDITE ! -704600 15 WS-4DCO-4DDS-DA-FIN-VAL PIC X(08). ! -704700* DATE FIN VALIDITE ! -704800 15 WS-4DCO-4DDS-MT-MX-PRIM ! -704900 PIC S9(13)V9(02) COMP-3. ! -705000* INDICATEUR FONCTION DEMANDE ! -705100 15 WS-4DCO-4DDS-FCT-DEM PIC X(03). ! -705200* MONTANT MAXIMUM DE PRESTATION ! -705300 15 WS-4DCO-4DDS-CD-RGL-DLG-LST PIC X(03). ! -705400* CODE REGLE DELEGATION ! -705500 15 WS-4DCO-4DDS-DA-VAL-DBT-LST PIC X(08). ! -705600* DATE DEBUT-VALIDITE ! -705700 15 FILLER PIC X(1519). ! -705800* ! -705900*================================================================ ! -706000*= APPLICATION : TRANSFERT PARTENAIRE = ! -706100*================================================================ ! -706200 03 WS-4DCO-TRANSFER-DEST REDEFINES WS-4DCO-PROGRAM. ! -706300* ============ ! -706400* ------------------------------------------------------ * ! -706500* COMMAREA : TRANSFERT PARTENAIRE * ! -706600* LONGUEUR : 1800 * ! -706700* PREFIXE : ! -706800* ------------------------------------------------------ * ! -706900* ! -707000 05 WS-4DCO-TRANSF-DEST. ! -707100* NUMERO DE PARTENAIRE EXTERNE (DESTINATAIRE) ! -707200 10 WS-4DCO-CD-PTN-DEST PIC X(005). ! -707300* LIBELLE PARTENAIRE EXTERNE (DESTINATAIRE) ! -707400 10 WS-4DCO-LIB-PTN-DEST PIC X(032). ! -707500* NUMERO DE PARTENAIRE INTERNE (DESTINATAIRE) ! -707600 10 WS-4DCO-NO-PTN-DEST PIC 9(003). ! -707700* NUMERO AGENCE (DESTINATAIRE) ! -707800 10 WS-4DCO-NO-AGC-DEST PIC X(006). ! -707900* NOM AGENCE (DESTINATAIRE) ! -708000 10 WS-4DCO-NOM-AGC-DEST PIC X(032). ! -708100* ADRESSE AGENCE (DESTINATAIRE) ! -708200 10 WS-4DCO-LIB-RUE-1-STR-DEST PIC X(032). ! -708300 10 WS-4DCO-LIB-RUE-2-STR-DEST PIC X(032). ! -708400 10 WS-4DCO-LIB-COMMUNE-STR-DES PIC X(032). ! -708500 10 WS-4DCO-CD-POST-STR-DEST PIC X(005). ! -708600 10 WS-4DCO-LIB-BUR-DIST-STR-DEST PIC X(026). ! -708700* NUMERO STRUCTURE GESTIONNAIRE (EMMETTEUR ) ! -708800 10 WS-4DCO-NO-STR-GTN-EMET PIC X(006). ! -708900* NUMERO AGENECE GESTIONNAIRE (EMMETTEUR ) ! -709000 10 WS-4DCO-NO-AGT-GTN-EMET PIC X(008). ! -709100 10 WS-4DCO-PRODUIT-DEST. ! -709200* NUMERO DE PRODUIT EXTERNE (DESTINATAIRE) ! -709300 15 WS-4DCO-CD-PRD-DEST PIC X(002). ! -709400* LIBELLE PRODUIT EXTERNE (DESTINATAIRE) ! -709500 15 WS-4DCO-LIB-PROD-DEST PIC X(032). ! -709600* NUMERO DE PRODUIT INTERNE (DESTINATAIRE) ! -709700 15 WS-4DCO-NO-PRD-DEST PIC 9(003). ! -709800* NUMERO GENERATION PRODUIT (DESTINATAIRE) ! -709900 15 WS-4DCO-NO-GEN-PRD-DEST PIC X(003). ! -710000* TYPE GENERATION PRODUIT (DESTINATAIRE) ! -710100 15 WS-4DCO-NO-TYP-PRD-DEST PIC 9(002). ! -710200* NUMERO CLIENT EXTERNE (DESTINATAIRE) ! -710300 10 WS-4DCO-CD-CLI-DEST PIC X(015). ! -710400* NUMERO CLIENT INTERNE (DESTINATAIRE) ! -710500 10 WS-4DCO-NO-CLI-DEST PIC 9(007). ! -710600* NOM PRENOM CLIENT (DESTINATAIRE) ! -710700 10 WS-4DCO-NOM-CLIENT-DEST PIC X(032). ! -710800* NOM CLIENT (DESTINATAIRE) ! -710900 10 WS-4DCO-NOM-DEST PIC X(032). ! -711000* PRENOM CLIENT (DESTINATAIRE) ! -711100 10 WS-4DCO-PRENOM-DEST PIC X(032). ! -711200* CODE INTITULE CLIENT (DESTINATAIRE) ! -711300 10 WS-4DCO-CD-INT-CLI-DEST PIC X(002). ! -711400* ADRESSE CLIENT (DESTINATAIRE) ! -711500 10 WS-4DCO-LIB-RUE-1-CLI-DEST PIC X(032). ! -711600 10 WS-4DCO-LIB-RUE-2-CLI-DEST PIC X(032). ! -711700 10 WS-4DCO-LIB-COMMUNE-CLI-DEST PIC X(032). ! -711800 10 WS-4DCO-CD-POST-CLI-DEST PIC X(005). ! -711900 10 WS-4DCO-LIB-BUR-DIST-CLI-DEST PIC X(026). ! -712000* DATE DE NAISSANCE CLIENT (DESTINATAIRE) ! -712100 10 WS-4DCO-DA-NAIS-DEST. ! -712200 15 WS-4DCO-DA-NAIS-SSAA-DEST PIC X(004). ! -712300 15 FILLER PIC X(001). ! -712400 15 WS-4DCO-DA-NAIS-MM-DEST PIC X(002). ! -712500 15 FILLER PIC X(001). ! -712600 15 WS-4DCO-DA-NAIS-JJ-DEST PIC X(002). ! -712700* NUMERO DU CONTRAT (DESTINATAIRE) ! -712800 10 WS-4DCO-CONTRAT-DEST PIC X(009). ! -712900* NUMERO D ORDRE CONTRAT (DESTINATAIRE) ! -713000 10 WS-4DCO-NO-ORD-CTR-DEST PIC 9(002). ! -713100 10 WS-4DCO-DRAP-RC-DEST PIC X(001). ! -713200* NUMERO RIB DOM (DESTINATAIRE) ! -713300 10 WS-4DCO-RIB-PER-DEST. ! -713400 15 WS-4DCO-BNQ-DOM-DEST PIC X(005). ! -713500 15 WS-4DCO-GCH-DOM-DEST PIC X(005). ! -713600 15 WS-4DCO-RAC-DOM-DEST PIC X(011). ! -713700 15 WS-4DCO-CLE-DOM-DEST PIC X(002). ! -713800* NUMERO RIB DOM (EMMETTEUR ) ! -713900 10 WS-4DCO-RIB-PER-EMET. ! -714000 15 WS-4DCO-BNQ-DOM-EMET PIC X(005). ! -714100 15 WS-4DCO-GCH-DOM-EMET PIC X(005). ! -714200 15 WS-4DCO-RAC-DOM-EMET PIC X(011). ! -714300 15 WS-4DCO-CLE-DOM-EMET PIC X(002). ! -714400* PROVISION MATHEMATIQUE OUVERT (DESTINATAIRE) ! -714500 10 WS-4DCO-PVS-MTH-OUV-EXE PIC S9(15) COMP-3. ! -714600* MONANT NET VERSEMENT ANNEE (DESTINATAIRE) ! -714700 10 WS-4DCO-MT-NET-VER-EXE PIC S9(15) COMP-3. ! -714800* MONANT CREDIT SOCIETAIRE (DESTINATAIRE) ! -714900 10 WS-4DCO-MT-CRD-SOC PIC S9(15) COMP-3. ! -715000* MONANT COTISATION VIEILLESSE (DESTINATAIRE) ! -715100 10 WS-4DCO-MT-CTS-VLL PIC S9(9) COMP-3. ! -715200* MONANT PRELEVEMENT SOCIALE (DESTINATAIRE) ! -715300 10 WS-4DCO-MT-PLV-SOC PIC S9(9) COMP-3. ! -715400* MONANT C.S.G (DESTINATAIRE) ! -715500 10 WS-4DCO-MT-CSG PIC S9(13)V9(2) COMP-3. ! -715600* MONANT CONTRIBUTION DEPERTEMT (DESTINATAIRE) ! -715700 10 WS-4DCO-MT-CTB-DPT PIC S9(15) COMP-3. ! -715800* MONANT PRELEVEMENT LIBERATOIRE(DESTINATAIRE) ! -715900 10 WS-4DCO-MT-PLV-LBL PIC S9(13)V9(2) COMP-3. ! -716000* SOLDE DES AVANCES (DESTINATAIRE) ! -716100 10 WS-4DCO-SLD-AV-DEST PIC 9(15) COMP-3. ! -716200* MONTANT DES FRAIS SUR AVANCES (DESTINATAIRE) ! -716300 10 WS-4DCO-MT-FRS-AV-EXE PIC S9(15) COMP-3. ! -716400* MONTANT DES FRAIS RPP (DESTINATAIRE) ! -716500 10 WS-4DCO-MT-FRS-RPP-A PIC S9(13)V9(2) COMP-3. ! -716600* SOLDE TEMPS REEL (DESTINATAIRE) ! -716700 10 WS-4DCO-SLD-TPS-REAL-DEST PIC S9(15) COMP-3. ! -716800* INDICATEUR CREDIT MUTUEL ! -716900 10 WS-4DCO-IDC-PTN-CM-DEST PIC X(001). ! -717000* INDICATEUR NANTISSEMENT ! -717100 10 WS-4DCO-CD-NTS-DEST PIC X(001). ! -717200* INDICATEUR FONCTIONNALITE ! -717300 10 WS-4DCO-CD-FCT-DEST PIC X(001). ! -717400* INDICATEUR MOUVEMENTS DANS LA JOURNNE ! -717500 10 WS-4DCO-MVT-JOUR-DEST PIC X(001). ! -717600* INDICATEUR P.A.B ! -717700 10 WS-4DCO-DNR-PAB-DEST PIC X(001). ! -717800* DATE P.A.B ! -717900 10 WS-4DCO-DA-PAS-PAB PIC X(008). ! -718000* INDICATEUR VERSEMENT PERIODIQUE ! -718100 10 WS-4DCO-CD-VER-PER-DEST PIC X(001). ! -718200 10 WS-4DCO-NB-PASSAGE-DEST PIC 9(001). ! -718300 10 WS-4DCO-TX-FRS-DEST PIC S9(2)V9(5) COMP-3. ! -718400 10 WS-4DCO-IDC-TRF-DSK PIC X(001). ! -718500 10 WS-4DCO-CD-PTN-DEST-A PIC X(005). ! -718600 10 WS-4DCO-NO-CTR-DEST-A PIC X(009). ! -718700 10 WS-4DCO-MT-CTB-DEST PIC S9(13)V99 COMP-3. ! -718800* MONTANT PRELEVEMENT LIBERATOIRE(DESTINATAIRE) ! -718900 10 WS-4DCO-MT-PLV-LBL-F8 PIC S9(13)V9(2) COMP-3. ! -719000 10 FILLER PIC X(1084). ! -719100 ! -719200*================================================================ ! -719300*= APPLICATION : PARAMETRAGE : GESTION PRIME ETAT = ! -719400*================================================================ ! -719500* ! -719600 03 WS-4DCO-PRM-ETAT REDEFINES WS-4DCO-PROGRAM. ! -719700* ============ ! -719800 ! -719900* ============== ! -720000* ------------------------------------------------------ * ! -720100* COMMAREA : PARAMETRAGE : GESTION DE LA PRIME ETAT -* ! -720200* LONGUEUR : 1800 * ! -720300* PREFIXE : WS-4DCO-PRCP * ! -720400* ------------------------------------------------------ * ! -720500* ! -720600* ZONES COMMUNES ! -720700* ZONE GROUPE POUR LE PROGRAMME TC4DPD0 ! -720800* ! -720900 05 WS-4DCO-4DPD. ! -721000* ! -721100* ZONE DE PAGINATION ! -721200 15 WS-4DCO-4DPD-PAGE. ! -721300 20 WS-4DCO-4DPD-IDC-OCC-SPL PIC X(001). ! -721400 20 WS-4DCO-4DPD-NB-PAG-TS PIC 9(002). ! -721500 20 WS-4DCO-4DPD-SAUV-PAGE-AREA PIC X(198). ! -721600* ! -721700* ACTION SAUVEGARDEE ! -721800 15 WS-4DCO-4DPD-SAUV-ACT PIC X. ! -721900* ! -722000* CODE MESSAGE ERREUR ! -722100 15 WS-4DCO-4DPD-ERRMSG1 PIC X(006). ! -722200* ! -722300* NOMBRE D'OCCURENCES DE LA LISTE ! -722400 15 WS-4DCO-4DPD-NB-TS-ITEM PIC S9(04) COMP. ! -722500* ! -722600* POSITION DU CURSEUR DU 1ER DETAIL DEMANDE ! -722700 15 WS-4DCO-4DPD-POS-CURSOR PIC 9(002). ! -722800* NB DE DETAILS TRAITES ! -722900 15 WS-4DCO-4DPD-SAUV-ACT-TRT PIC S9(4) COMP. ! -723000* NB DE DETAILS DEMANDES ! -723100 15 WS-4DCO-4DPD-SAUV-ACT-NB PIC S9(4) COMP. ! -723200* ! -723300************************************ NOMBRE PRIS 216 ! -723400************************************ NOMBRE DISPONIBLE 1584 ! -723500 ! -723600* ZONE GROUPE POUR LE PROGRAMME TC4DPH0 ! -723700* ! -723800 05 WS-4DCO-4DPH. ! -723900* ! -724000* ZONE DE PAGINATION ! -724100 15 WS-4DCO-4DPH-PAGE. ! -724200 20 WS-4DCO-4DPH-IDC-OCC-SPL PIC X(001). ! -724300 20 WS-4DCO-4DPH-NB-PAG-TS PIC 9(002). ! -724400 20 WS-4DCO-4DPH-SAUV-PAGE-AREA PIC X(198). ! -724500* ! -724600* CLE DE REPOSITIONNEMENT ! -724700 15 WS-4DCO-4DPH-CLE. ! -724800 20 WS-4DCO-4DPH-CD-PTN PIC 9(005). ! -724900 20 WS-4DCO-4DPH-NO-SEQ-MVT-POS PIC 9(005). ! -725000* CLE DE SAUVEGARDE. ! -725100 15 WS-4DCO-4DPH-CLE-REF. ! -725200 20 WS-4DCO-4DPH-CD-PTN-REF PIC 9(05). ! -725300 20 WS-4DCO-4DPH-NO-SEQ-MVT-REF PIC 9(5). ! -725400* ! -725500* ACTION SAUVEGARDEE ! -725600 15 WS-4DCO-4DPH-SAUV-ACT PIC X. ! -725700* ! -725800* CODE MESSAGE ERREUR ! -725900 15 WS-4DCO-4DPH-ERRMSG1 PIC X(006). ! -726000* ! -726100* NOMBRE D'OCCURENCES DE LA LISTE ! -726200 15 WS-4DCO-4DPH-NB-TS-ITEM PIC S9(04) COMP. ! -726300* ! -726400* ZOOM DEBUT 447 ! -726500* POSITION DU CURSEUR DU 1ER DETAIL DEMANDE ! -726600 15 WS-4DCO-4DPH-POS-CURSOR PIC 9(002). ! -726700* NB DE DETAILS TRAITES ! -726800 15 WS-4DCO-4DPH-SAUV-ACT-TRT PIC S9(4) COMP. ! -726900* NB DE DETAILS DEMANDES ! -727000 15 WS-4DCO-4DPH-SAUV-ACT-NB PIC S9(4) COMP. ! -727100* ZOOM FIN ! -727200************************************ NOMBRE PRIS 452 ! -727300************************************ NOMBRE DISPONIBLE 1348 ! -727400* ! -727500* ZONE GROUPE POUR ZOOM (C4DPE0, C4DPF0, C4DPG0, C4DPH0) ! -727600 ! -727700 05 WS-4DCO-4DPD-ZOOM. ! -727800 ! -727900 15 WS-4DCO-4DPD-NO-ETAT-PRIM PIC S9(6) COMP-3. ! -728000 15 WS-4DCO-4DPD-DA-TT-PRIM PIC X(10). ! -728100 15 WS-4DCO-4DPD-DA-PAI-PRIM PIC X(10). ! -728200 15 WS-4DCO-4DPD-NB-CPT-CCN PIC S9(6) COMP-3. ! -728300 15 WS-4DCO-4DPD-MT-GLB-PRIM-DEM PIC S9(13)V99 COMP-3. ! -728400 15 WS-4DCO-4DPD-MT-GLB-PRIM-VER PIC S9(13)V99 COMP-3. ! -728500 15 WS-4DCO-4DPD-CD-VAL-PAI PIC X. ! -728600* RUBRIQUES SPECIFIQUES C4DPF0 ! -728700 15 WS-4DCO-4DPF-MT-GLB-PRIM-RJ PIC S9(13)V99 COMP-3. ! -728800 15 WS-4DCO-4DPF-MT-GLB-PRIM-SAI PIC S9(13)V99 COMP-3. ! -728900* RUBRIQUES SPECIFIQUES C4DPE0 ! -729000 15 WS-4DCO-4DPE-NO-IMPL PIC X(08). ! -729100 15 WS-4DCO-4DPE-NB-EXEMP PIC 99. ! -729200* RUBRIQUES SPECIFIQUES C4DPH0 ! -729300 15 WS-4DCO-4DPH-IDC-PTN-CM PIC X. ! -729400 ! -729500************************************ NOMBRE PRIS 523 ! -729600************************************ NOMBRE DISPONIBLE 1276 ! -729700 ! -729800* 03 WS-4DCO-PAIEMENT-PRIME REDEFINES WS-4DCO-PROGRAM. ! -729900* ====================== ! -730000* !!! CETTE PARTIE EST INTEGREE A LA NOUVELLE APPLICATION !!!!!!! ! -730100* ------------------------------------------------------ * ! -730200* COMMAREA : PAIEMENT DE LA PRIME DE L'ETAT * ! -730300* LONGUEUR : 1800 * ! -730400* PREFIXE : WS-4DCO-PA- / WS-4DCO-MD- * ! -730500* ------------------------------------------------------ * ! -730600* COMMAREA SPECIFIQUE P4DHE0 ! -730700 ! -730800 05 WS-4DCO-PA-NOM-TIT-PEP PIC X(032). ! -730900* NOM ! -731000 05 WS-4DCO-PA-DA-SEL. ! -731100* DATE DE DEMANDE ENR Y4D99P ! -731200 10 WS-4DCO-PA-DA-SA-SEL PIC X(4). ! -731300 10 WS-4DCO-PA-DA-MM-SEL PIC X(2). ! -731400 10 WS-4DCO-PA-DA-JJ-SEL PIC X(2). ! -731500 05 WS-4DCO-PA-POS-CURS PIC S9(04) COMP. ! -731600* POSITION DU CURSEUR ! -731700 05 WS-4DCO-PA-IND-FIC PIC X(001). ! -731800* CODE RETOUR POUR FICHIER (P4299P) VIDE ! -731900 05 WS-4DCO-PA-TAB-TRAV. ! -732000* TABLE DES 12 ENREGISTREMENTS P4299P ! -732100 10 WS-4DCO-PA-TAB-POSTE OCCURS 12. ! -732200* ! -732300 15 WS-4DCO-PA-NO-ORD-ENR-99 PIC 9(03). ! -732400* ! -732500 15 WS-4DCO-PA-DAT-DEM. ! -732600* ! -732700 20 WS-4DCO-PA-DAT-DEM-SA. ! -732800* ! -732900 25 WS-4DCO-PA-DAT-DEM-S PIC X(002). ! -733000* ! -733100 25 WS-4DCO-PA-DAT-DEM-A PIC X(002). ! -733200* ! -733300 20 WS-4DCO-PA-DAT-DEM-MM PIC X(002). ! -733400* ! -733500 20 WS-4DCO-PA-DAT-DEM-JJ PIC X(002). ! -733600* ! -733700 15 WS-4DCO-PA-MT-DEM PIC S9(15) COMP-3. ! -733800* ! -733900 15 WS-4DCO-PA-MT-DEM-D REDEFINES WS-4DCO-PA-MT-DEM ! -734000 PIC S9(13)V9(02) COMP-3. ! -734100* ! -734200 15 WS-4DCO-PA-NBRE-PEP PIC S9(05). ! -734300* ! -734400 15 WS-4DCO-PA-DAT-PAI. ! -734500* ! -734600 20 WS-4DCO-PA-DAT-PAI-SA. ! -734700* ! -734800 25 WS-4DCO-PA-DAT-PAI-S PIC X(002). ! -734900* ! -735000 25 WS-4DCO-PA-DAT-PAI-A PIC X(002). ! -735100* ! -735200 20 WS-4DCO-PA-DAT-PAI-MM PIC X(002). ! -735300* ! -735400 20 WS-4DCO-PA-DAT-PAI-JJ PIC X(002). ! -735500* ! -735600 15 WS-4DCO-PA-CD-PAI PIC X(001). ! -735700* ! -735800 15 WS-4DCO-PA-CD-VAL-PAI PIC 9(01). ! -735900* ! -736000 15 WS-4DCO-PA-MT-PAI PIC S9(15) COMP-3. ! -736100* ! -736200 15 WS-4DCO-PA-MT-PAI-D REDEFINES WS-4DCO-PA-MT-PAI ! -736300 PIC S9(13)V9(02) COMP-3. ! -736400* ! -736500 15 WS-4DCO-PA-MT-PAI-X REDEFINES WS-4DCO-PA-MT-PAI ! -736600 PIC X(008). ! -736700* ! -736800 05 WS-4DCO-PA-ENR-99-AFF PIC S9(02). ! -736900* NB ENREG P4299P LUS ET STOCKES ! -737000 05 WS-4DCO-PA-SAISIES PIC X(001). ! -737100* INDIC EXERCICES RESTANT A SAISIR ! -737200 ! -737300* ------------------------------------------------------ * ! -737400* ZONES SPECIFIQUES PROGRAMME DE MODIFICATION DU MONTANT * ! -737500* PRIME POUR REJET APPELE PAR ZOOM PF10 * ! -737600* ------------------------------------------------------ * ! -737700 ! -737800 05 WS-4DCO-MD-TAB-TRAV. ! -737900* ! -738000 10 WS-4DCO-MD-02-COURANT PIC 9(2). ! -738100* INDICE DE L' ARTICLE 02 QUE L'ON TRAITE ! -738200 10 WS-4DCO-MD-TAB-POSTE OCCURS 10. ! -738300* ! -738400 15 WS-4DCO-MD-ANNEE-VER PIC 9(04). ! -738500* ! -738600 15 WS-4DCO-MD-ANNEE-IMP PIC 9(04). ! -738700* ! -738800 15 WS-4DCO-MD-VER PIC S9(09) COMP-3. ! -738900* ! -739000 15 WS-4DCO-MD-VER-D REDEFINES WS-4DCO-MD-VER ! -739100 PIC S9(07)V9(02) COMP-3. ! -739200* ! -739300 15 WS-4DCO-MD-PRIM PIC S9(09) COMP-3. ! -739400* ! -739500 15 WS-4DCO-MD-PRIM-D REDEFINES WS-4DCO-MD-PRIM ! -739600 PIC S9(07)V9(02) COMP-3. ! -739700* ! -739800 15 WS-4DCO-MD-TAUX PIC S9(02)V9(03). ! -739900* ! -740000 15 WS-4DCO-MD-INT PIC S9(09) COMP-3. ! -740100* ! -740200 15 WS-4DCO-MD-INT-D REDEFINES WS-4DCO-MD-INT ! -740300 PIC S9(07)V9(02) COMP-3. ! -740400* ! -740500 15 WS-4DCO-MD-IMP PIC X(001). ! -740600* ! -740700 15 WS-4DCO-MD-DAT-DEM. ! -740800* ! -740900 20 WS-4DCO-MD-DEM-SA. ! -741000* ! -741100 25 WS-4DCO-MD-DEM-S PIC X(002). ! -741200* ! -741300 25 WS-4DCO-MD-DEM-A PIC X(002). ! -741400* ! -741500 20 WS-4DCO-MD-DEM-M PIC X(002). ! -741600* ! -741700 20 WS-4DCO-MD-DEM-J PIC X(002). ! -741800* ! -741900 15 WS-4DCO-MD-SAISIE-REJET PIC X. ! -742000* CODE REJET PAIEMENT (O OU N) ! -742100 15 WS-4DCO-MD-NO-IND-03 PIC 9(02). ! -742200* INDICE DU TABLEAU WS-4DCO-MD-ART03-POSTE DU PAIEMENT CORR ! -742300 15 WS-4DCO-MD-NO-ETAT-PRIM PIC S9(6) COMP-3. ! -742400* N� ETAT CONTENANT LA DEMANDE DE PRIME POUR L'ANNEE ! -742500* ! -742600 05 WS-4DCO-MD-TAB-ART03. ! -742700* ! -742800 10 WS-4DCO-MD-ART03-POSTE OCCURS 10. ! -742900* ! -743000 15 WS-4DCO-MD-NO-ORD PIC 9(03). ! -743100* NUMERO D' ORDRE LE L'ENREG 03 CORRESPONDANT A CETTE ANNEE ! -743200 15 WS-4DCO-MD-CD-ETAT-PRIME PIC X. ! -743300* CODE ETAT DE LA DEMANDE DE PRIME ! -743400 15 WS-4DCO-MD-MT-GLB-PRIM-DEM PIC S9(13)V9(2) COMP-3. ! -743500* MONTANT DEMANDE DANS CETTE DEMANDE ! -743600 15 WS-4DCO-MD-MT-GLB-PRIM-VER PIC S9(13)V9(2) COMP-3. ! -743700* MONTANT ACCEPTE DANS CETTE DEMANDE ! -743800 05 WS-4DCO-MD-CUM-PRI PIC S9(09) COMP-3. ! -743900* CUMUL PRIMES (POUR EXE CONCERNES) ! -744000 05 WS-4DCO-MD-CUM-PRI-D REDEFINES WS-4DCO-MD-CUM-PRI ! -744100 PIC S9(07)V9(02) COMP-3. ! -744200* CUMUL PRIMES (POUR EXE CONCERNES) ! -744300 05 WS-4DCO-MD-CUM-INT PIC S9(09) COMP-3. ! -744400* CUMUL INTERETS PRIMES (EXE CONCERNES) ! -744500 05 WS-4DCO-MD-CUM-INT-D REDEFINES WS-4DCO-MD-CUM-INT ! -744600 PIC S9(07)V9(02) COMP-3. ! -744700* CUMUL INTERETS PRIMES (EXE CONCERNES) ! -744800 05 WS-4DCO-MD-TOT PIC S9(11) COMP-3. ! -744900* TOTAL GENERAL ! -745000 05 WS-4DCO-MD-TOT-D REDEFINES WS-4DCO-MD-TOT ! -745100 PIC S9(09)V9(02) COMP-3. ! -745200* TOTAL GENERAL ! -745300 05 WS-4DCO-MD-PRIM-ACC PIC S9(09) COMP-3. ! -745400* PRIME ACCEPTEE ! -745500 05 WS-4DCO-MD-PRIM-ACC-D REDEFINES WS-4DCO-MD-PRIM-ACC ! -745600 PIC S9(07)V9(02) COMP-3. ! -745700* PRIME ACCEPTEE ! -745800 05 WS-4DCO-MD-NBRE-EXER PIC S9(02). ! -745900* NB EXERCICES NON IMPOSABLES ! -746000 05 WS-4DCO-MD-NBRE-DEM PIC S9(02). ! -746100* NB ART 03 CONCERNES PAR DEMANDE GLOBALE ! -746200 05 WS-4DCO-MD-CD-REJET PIC X(002). ! -746300* CODE REJET ! -746400 05 WS-4DCO-MD-PRIM-RJ PIC S9(15) COMP-3. ! -746500* CUMUL PRIMES (POUR EXE CONCERNES) ! -746600 05 WS-4DCO-MD-PRIM-RJ-D REDEFINES WS-4DCO-MD-PRIM-RJ ! -746700 PIC S9(13)V9(02) COMP-3. ! -746800 05 FILLER PIC X(0049). ! -746900* ZONES DISPONIBLES ! -747000* ------------------------------------------------------ * ! -747100 ! -747200*================================================================ ! -747300*= APPLICATION : saisie ponctuelle de dde prime ! -747400*================================================================ ! -747500* ! -747600 03 WS-4DCO-PRM-PONCT REDEFINES WS-4DCO-PROGRAM. ! -747700* ============ ! -747800 ! -747900* ============== ! -748000* ------------------------------------------------------ * ! -748100* COMMAREA : PARAMETRAGE : GESTION DEMANDE PONCTUELLE -* ! -748200* LONGUEUR : 1800 PRIME ETAT * ! -748300* PREFIXE : WS-4DCO-4DPW * ! -748400* ------------------------------------------------------ * ! -748500* ! -748600* ZONES COMMUNES ! -748700* ZONE GROUPE POUR LE PROGRAMME TC4DPW0 ! -748800* ! -748900 ! -749000 05 WS-4DCO-4DPW-DET. ! -749100 ! -749200 15 WS-4DCO-4DPW-NO-PTN PIC 9(03). ! -749300 15 WS-4DCO-4DPW-NO-PRD-PTN PIC 9(03). ! -749400 15 WS-4DCO-4DPW-NO-CLI-PTN PIC 9(07). ! -749500 15 WS-4DCO-4DPW-NO-ORD-CTR PIC 9(02). ! -749600 15 WS-4DCO-4DPW-CD-PTN PIC X(05). ! -749700 15 WS-4DCO-4DPW-NUMCPT PIC X(12). ! -749800 15 WS-4DCO-4DPW-LIB-NOM PIC X(32). ! -749900 15 WS-4DCO-4DPW-LIB-PRENOM PIC X(32). ! -750000 15 WS-4DCO-4DPW-NOM-PATRO PIC X(32). ! -750100 15 WS-4DCO-4DPW-LIB-STR PIC X(32). ! -750200 15 WS-4DCO-4DPW-RUE1 PIC X(32). ! -750300 15 WS-4DCO-4DPW-RUE2 PIC X(32). ! -750400 15 WS-4DCO-4DPW-RUE3 PIC X(32). ! -750500 15 WS-4DCO-4DPW-RUE4 PIC X(32). ! -750600 15 WS-4DCO-4DPW-CDPOST PIC 9(05). ! -750700 15 WS-4DCO-4DPW-BURDIST PIC X(28). ! -750800 15 WS-4DCO-4DPW-DA-SCR. ! -750900 20 WS-4DCO-4DPW-SASCR PIC X(04). ! -751000 20 WS-4DCO-4DPW-MMSCR PIC X(02). ! -751100 20 WS-4DCO-4DPW-JJSCR PIC X(02). ! -751200 15 WS-4DCO-4DPW-DA-DDE. ! -751300 20 WS-4DCO-4DPW-SADEM PIC X(04). ! -751400 20 WS-4DCO-4DPW-MMDEM PIC X(02). ! -751500 20 WS-4DCO-4DPW-JJDEM PIC X(02). ! -751600 15 WS-4DCO-4DPW-COMPL PIC X(01). ! -751700 15 WS-4DCO-4DPW-NOSTR PIC X(06). ! -751800 15 WS-4DCO-4DPW-NBEXE PIC 9(02). ! -751900 15 WS-4DCO-4DPW-CDMTF PIC X(02). ! -752000 15 WS-4DCO-4DPW-MTPRIM PIC S9(13)V99 COMP-3. ! -752100 15 WS-4DCO-4DPW-MTITT PIC S9(13)V99 COMP-3. ! -752200 15 WS-4DCO-4DPW-TOP PIC X(01). ! -752300* indicateur de blocage ! -752400 15 WS-4DCO-4DPW-ACTION PIC X(01). ! -752500* ind. action (creation, modif, sup) ! -752600 15 WS-4DCO-4DPW-DDE PIC X(01). ! -752700* ind. prime ponctuelle deja demandee ! -752800 15 WS-4DCO-4DPW-COMPLM PIC X(01). ! -752900* ind. demande normale ou compl�mentaire ! -753000 15 WS-4DCO-4DPW-TOP-ENTREE PIC X(01). ! -753100* ind. pour affichage msg+entr�e avant validation ! -753200 15 WS-4DCO-4DPW-MTPRIM-OLD PIC S9(13)V99 COMP-3. ! -753300 15 FILLER PIC X(1423). ! -753400*================================================================ ! -753500*= APPLICATION : PRELEVEMENTS LIBERATOIRES = ! -753600*================================================================ ! -753700* ! -753800 03 WS-4DCO-PLIB REDEFINES WS-4DCO-PROGRAM. ! -753900* ============ ! -754000 ! -754100* ============== ! -754200* ------------------------------------------------------ * ! -754300* COMMAREA : PARAMETRAGE : PRELEV. LIB. POUR LA DGI * ! -754400* LONGUEUR : 1800 * ! -754500* PREFIXE : WS-4DCO-PLIB * ! -754600* ------------------------------------------------------ * ! -754700* ! -754800* ZONES COMMUNES ! -754900* ZONE GROUPE POUR LE PROGRAMME TC4DPN0 ! -755000* ! -755100 05 WS-4DCO-PLIB-MVT. ! -755200* MOUVEMENT AU FORMAT DGI 250 CARACTERES ! -755300 10 WS-4DCO-PLIB-CD-TY-MVT-DGI PIC X(3). ! -755400* CODE TYPE MOUVEMENT DGI ! -755500 10 WS-4DCO-PLIB-NO-PTN PIC 9(3). ! -755600* NUMERO PARTENAIRE ! -755700 10 WS-4DCO-PLIB-NO-PRD-PTN PIC 9(3). ! -755800* NUMERO PRODUIT PARTENAIRE ! -755900 10 WS-4DCO-PLIB-REF-GEODES. ! -756000* REFERENCE GEODES ! -756100 15 WS-4DCO-PLIB-NO-CLI-PTN PIC 9(7). ! -756200* NUMERO CLIENT PARTENAIRE ! -756300 15 WS-4DCO-PLIB-NO-ORD-CTR PIC 9(2). ! -756400* NUMERO ORDRE CONTRAT ! -756500 15 FILLER PIC X(9). ! -756600* ! -756700 10 WS-4DCO-PLIB-REF-PREVI7. ! -756800* REFERENCE PREVI 7 ! -756900 15 WS-4DCO-PLIB-NO-SER PIC X(4). ! -757000* NUMERO SERIE BON CAPITALISATION ! -757100 15 WS-4DCO-PLIB-NO-CNT PIC 9(7). ! -757200* NUMERO CARNET BON CAPITALISATION ! -757300 15 WS-4DCO-PLIB-NO-TIT PIC 9(7). ! -757400* NUMERO TITRE BON CAPITALISATION ! -757500 10 WS-4DCO-PLIB-DA-CRE-CRO PIC X(8). ! -757600* DATE CREATION CRO ! -757700 10 WS-4DCO-PLIB-HEU-CRE-CRO. ! -757800* HEURE CREATION CRO ! -757900 15 WS-4DCO-PLIB-HEU-CRE-HH PIC 9(2). ! -758000 15 WS-4DCO-PLIB-HEU-CRE-MM PIC 9(2). ! -758100 15 WS-4DCO-PLIB-HEU-CRE-SS PIC 9(2). ! -758200 10 WS-4DCO-PLIB-CD-CRO PIC X(3). ! -758300* CODE TYPE CRO ! -758400 10 WS-4DCO-PLIB-CD-APT-APLI PIC X(2). ! -758500* CODE APPARTENANCE APPLICATION ! -758600 10 WS-4DCO-PLIB-NOM-PATRO PIC X(32). ! -758700* NOM PATRONYMIQUE ! -758800 10 WS-4DCO-PLIB-CD-FIS PIC X(3). ! -758900* CODE FISCALITE PRELEVEMENT ! -759000 10 WS-4DCO-PLIB-CD-PTN PIC X(5). ! -759100* CODE PARTENAIRE ! -759200 10 WS-4DCO-PLIB-CD-PRD PIC X(2). ! -759300* CODE PRODUIT ! -759400 10 WS-4DCO-PLIB-NO-GEN-PRD PIC X(3). ! -759500* NUM�RO DE G�N�RATION DANS LE PRODUIT ! -759600 10 WS-4DCO-PLIB-REF-DOS PIC X(10). ! -759700* VALEUR REFERENCE DOSSIER ! -759800 10 WS-4DCO-PLIB-NO-GAM-PRD PIC 9(2). ! -759900* NUMERO GAMME PRODUIT ! -760000 10 WS-4DCO-PLIB-NO-TY-PRD PIC 9(2). ! -760100* NUMERO TYPE PRODUIT ! -760200 10 WS-4DCO-PLIB-NO-GEN-TY-PRD PIC X(3). ! -760300* NUMERO GENERATION TYPE PRODUIT ! -760400 10 WS-4DCO-PLIB-NO-SCR-BON-CAP PIC X(8). ! -760500* NUMERO SOUSCRIPTION BON CAPITALISATION ! -760600 10 WS-4DCO-PLIB-CD-SI PIC X(3). ! -760700* CODE S.I. ! -760800 10 WS-4DCO-PLIB-CD-ORIG-MVT PIC X(2). ! -760900* CODE ORIGINE MOUVEMENT ! -761000 10 WS-4DCO-PLIB-IDC-PTN-CM PIC X(1). ! -761100* INDICATEUR PARTENAIRE CREDIT-MUTUEL ! -761200 10 WS-4DCO-PLIB-OPT-ANY PIC X(1). ! -761300* INDICATEUR OPTION ANONYMAT ! -761400 10 WS-4DCO-PLIB-DA-SCR PIC X(8). ! -761500* DATE SOUSCRIPTION ! -761600 10 WS-4DCO-PLIB-DA-RAC. ! -761700* DATE OPERATION RACHAT ! -761800 15 WS-4DCO-PLIB-DA-RAC-A PIC X(4). ! -761900* DATE OPERATION ANNEE ! -762000 15 WS-4DCO-PLIB-DA-RAC-M PIC X(2). ! -762100* DATE OPERATION MOIS ! -762200 15 WS-4DCO-PLIB-DA-RAC-J PIC X(2). ! -762300* DATE OPERATION JOUR ! -762400 10 WS-4DCO-PLIB-DA-CRE-TEC PIC X(8). ! -762500* DATE CREATION TECHNIQUE ! -762600 10 WS-4DCO-PLIB-DA-AFF. ! -762700* DATE D'AFFECTATION PRODUIT COMPTABLE ! -762800 15 WS-4DCO-PLIB-DA-AFF-A PIC X(4). ! -762900* DATE AFFECTATION ANNEE ! -763000 15 WS-4DCO-PLIB-DA-AFF-M PIC X(2). ! -763100* DATE AFFECTATION MOIS ! -763200 15 WS-4DCO-PLIB-DA-AFF-J PIC X(2). ! -763300* DATE AFFECTATION JOUR ! -763400 10 WS-4DCO-PLIB-MT-CLO PIC S9(13)V9(2) COMP-3. ! -763500* MONTANT CLOTURE ! -763600 10 WS-4DCO-PLIB-MT-PLV PIC S9(13)V9(2) COMP-3. ! -763700* MONTANT PLUS-VALUE ! -763800 10 WS-4DCO-PLIB-PLV-LBL PIC S9(13)V9(2) COMP-3. ! -763900* MONTANT PRELEVEMENT LIBERATOIRE ! -764000 10 WS-4DCO-PLIB-PLV-SOC PIC S9(13)V9(2) COMP-3. ! -764100* MONTANT PRELEVEMENT SOCIALE ! -764200 10 WS-4DCO-PLIB-CTS-VLL PIC S9(13)V9(2) COMP-3. ! -764300* MONTANT COTISATION VIEILLESSE ! -764400 10 WS-4DCO-PLIB-MT-CSG PIC S9(13)V9(2) COMP-3. ! -764500* MONTANT C.S.G. ! -764600 10 WS-4DCO-PLIB-ASST-CRDS PIC S9(13)V9(2) COMP-3. ! -764700* MONTANT ASSIETTE CRDS ! -764800 10 WS-4DCO-PLIB-MT-ISF PIC S9(13)V9(2) COMP-3. ! -764900* MONTANT ISF ! -765000 10 WS-4DCO-PLIB-MT-RDS PIC S9(13)V9(2) COMP-3. ! -765100* MONTANT VERSEMENT RDS ! -765200 10 WS-4DCO-PLIB-CD-SNS-MVT PIC X. ! -765300* MONTANT VERSEMENT RDS ! -765400 10 WS-4DCO-PLIB-PAY-ISO PIC X(3). ! -765500* NUMERO PAYS ! -765600 10 WS-4DCO-PLIB-ASST-CSG PIC S9(13)V9(2) COMP-3. ! -765700* MONTANT ASSIETTE CSG ! -765800 10 WS-4DCO-PLIB-DATE-SAISIE PIC X(10). ! -765900* DATE saisie acompte ! -766000 10 FILLER PIC X(01). ! -766100* ! -766200 05 WS-4DCO-PLIB-LIB-PTN PIC X(32). ! -766300* LIBELLE DU PARTENAIRE ! -766400 05 WS-4DCO-PLIB-CAPO PIC X(5). ! -766500* CODE APPORTEUR PREVI-7 ! -766600 05 WS-4DCO-PLIB-LIB-PRD PIC X(32). ! -766700* LIBELLE DU PRODUIT ! -766800 05 WS-4DCO-PLIB-IDC-PRD-UNT PIC X. ! -766900* INDIC PRODUIT EN UC ! -767000 05 WS-4DCO-PLIB-TYP-CTR PIC X. ! -767100* TYPE DE CONTRAT ! -767200 88 CONTRAT-CMB VALUE 'C'. ! -767300 88 CONTRAT-EXT VALUE 'E'. ! -767400 88 CONTRAT-PR7 VALUE '7'. ! -767500* ! -767600* ZONES COMMUNES ! -767700* ZONE GROUPE POUR LE PROGRAMME TC4DPO0 ! -767800 ! -767900* SAUVEGARDE CLE DE LA DECLARATION SELECTIONNEE ! -768000 05 WS-4DCO-PLIB-SAUV-DECLA. ! -768100 10 WS-4DCO-PLIB-SAUV-CD-SI PIC X(3). ! -768200 10 WS-4DCO-PLIB-SAUV-TY-FCT PIC X(4). ! -768300 10 WS-4DCO-PLIB-SAUV-AA-DEC PIC X(4). ! -768400 10 WS-4DCO-PLIB-SAUV-MM-DEC PIC X(2). ! -768500 10 WS-4DCO-PLIB-SAUV-CD-DCR PIC 9. ! -768600* NUMERO D'ITEM SELECTIONNE ! -768700 05 WS-4DCO-PLIB-SAUV-ITEM PIC 99. ! -768800* ACTION SELECTIONNEE ! -768900 05 WS-4DCO-PLIB-TYP-ACTION PIC X. ! -769000 88 DETAIL-DECLA VALUE 'D'. ! -769100 88 VALID-DECLA VALUE 'V'. ! -769200 88 ANNUL-DECLA VALUE 'A'. ! -769300 ! -769400* ZONNE DE PAGINATION ! -769500 05 WS-4DCO-PLIB-NB-PAG-TS PIC 9(02). ! -769600 05 WS-4DCO-PLIB-PAGE-AREA PIC X(160). ! -769700 ! -769800* ZONE GROUPE POUR LE PROGRAMME TC4DPP0 ! -769900* ENREGITREMENT DECLARATION 2777 (=Y4DDGIDE) ! -770000 05 WS-4DCO-PLIB-DECLA. ! -770100 07 WS-4DCO-PLIB-DECL-CD-SI PIC X(3). ! -770200 07 WS-4DCO-PLIB-DECL-TY-FCT PIC X(4). ! -770300 07 WS-4DCO-PLIB-DECL-DA-DCR-A PIC X(4). ! -770400 07 WS-4DCO-PLIB-DECL-DA-DCR-M PIC X(2). ! -770500 07 WS-4DCO-PLIB-DECL-CD-DCR PIC 9(1). ! -770600 07 WS-4DCO-PLIB-DECL-NB-MVT-LOT PIC S9(7) COMP-3. ! -770700 07 WS-4DCO-PLIB-DECL-CD-STA PIC X(1). ! -770800 07 WS-4DCO-PLIB-DECL-CD-MODE-RGL PIC X(1). ! -770900 07 WS-4DCO-PLIB-DECL-DA-CRE-TEC PIC X(8). ! -771000 07 WS-4DCO-PLIB-DECL-DA-RGL PIC X(8). ! -771100 07 WS-4DCO-PLIB-DECL-MT-BASE-DE PIC S9(13)V9(2) COMP-3. ! -771200 07 WS-4DCO-PLIB-DECL-MT-DE PIC S9(13)V9(2) COMP-3. ! -771300 07 WS-4DCO-PLIB-DECL-MT-BASE-DF PIC S9(13)V9(2) COMP-3. ! -771400 07 WS-4DCO-PLIB-DECL-MT-DF PIC S9(13)V9(2) COMP-3. ! -771500 07 WS-4DCO-PLIB-DECL-MT-BASE-DG PIC S9(13)V9(2) COMP-3. ! -771600 07 WS-4DCO-PLIB-DECL-MT-DG PIC S9(13)V9(2) COMP-3. ! -771700 07 WS-4DCO-PLIB-DECL-MT-BASE-DH PIC S9(13)V9(2) COMP-3. ! -771800 07 WS-4DCO-PLIB-DECL-MT-DH PIC S9(13)V9(2) COMP-3. ! -771900 07 WS-4DCO-PLIB-DECL-MT-BASE-DI PIC S9(13)V9(2) COMP-3. ! -772000 07 WS-4DCO-PLIB-DECL-MT-DI PIC S9(13)V9(2) COMP-3. ! -772100 07 WS-4DCO-PLIB-DECL-MT-BASE-DJ PIC S9(13)V9(2) COMP-3. ! -772200 07 WS-4DCO-PLIB-DECL-MT-DJ PIC S9(13)V9(2) COMP-3. ! -772300 07 WS-4DCO-PLIB-DECL-MT-BASE-FJ PIC S9(13)V9(2) COMP-3. ! -772400 07 WS-4DCO-PLIB-DECL-MT-FJ PIC S9(13)V9(2) COMP-3. ! -772500 07 WS-4DCO-PLIB-DECL-MT-MM PIC S9(13)V9(2) COMP-3. ! -772600 07 WS-4DCO-PLIB-DECL-MT-OP PIC S9(13)V9(2) COMP-3. ! -772700 07 WS-4DCO-PLIB-DECL-MT-BASE-PO PIC S9(13)V9(2) COMP-3. ! -772800 07 WS-4DCO-PLIB-DECL-MT-PO PIC S9(13)V9(2) COMP-3. ! -772900 07 WS-4DCO-PLIB-DECL-MT-BASE-PP PIC S9(13)V9(2) COMP-3. ! -773000 07 WS-4DCO-PLIB-DECL-MT-PP PIC S9(13)V9(2) COMP-3. ! -773100 07 WS-4DCO-PLIB-DECL-MT-BASE-PR PIC S9(13)V9(2) COMP-3. ! -773200 07 WS-4DCO-PLIB-DECL-MT-PR PIC S9(13)V9(2) COMP-3. ! -773300 07 WS-4DCO-PLIB-DECL-MT-BASE-PS PIC S9(13)V9(2) COMP-3. ! -773400 07 WS-4DCO-PLIB-DECL-MT-PS PIC S9(13)V9(2) COMP-3. ! -773500 07 WS-4DCO-PLIB-DECL-MT-BASE-PT PIC S9(13)V9(2) COMP-3. ! -773600 07 WS-4DCO-PLIB-DECL-MT-PT PIC S9(13)V9(2) COMP-3. ! -773700 07 WS-4DCO-PLIB-DECL-MT-BASE-PU PIC S9(13)V9(2) COMP-3. ! -773800 07 WS-4DCO-PLIB-DECL-MT-PU PIC S9(13)V9(2) COMP-3. ! -773900 07 WS-4DCO-PLIB-DECL-MT-BASE-RS PIC S9(13)V9(2) COMP-3. ! -774000 07 WS-4DCO-PLIB-DECL-MT-RS PIC S9(13)V9(2) COMP-3. ! -774100 07 WS-4DCO-PLIB-DECL-MT-BASE-RT PIC S9(13)V9(2) COMP-3. ! -774200 07 WS-4DCO-PLIB-DECL-MT-RT PIC S9(13)V9(2) COMP-3. ! -774300 07 WS-4DCO-PLIB-DECL-MT-TB PIC S9(13)V9(2) COMP-3. ! -774400 07 WS-4DCO-PLIB-DECL-MT-SB REDEFINES ! -774500 WS-4DCO-PLIB-DECL-MT-TB PIC S9(13)V9(2) COMP-3. ! -774600 07 WS-4DCO-PLIB-DECL-MT-TC PIC S9(13)V9(2) COMP-3. ! -774700 07 WS-4DCO-PLIB-DECL-MT-TD PIC S9(13)V9(2) COMP-3. ! -774800 07 WS-4DCO-PLIB-DECL-MT-SC REDEFINES ! -774900 WS-4DCO-PLIB-DECL-MT-TD PIC S9(13)V9(2) COMP-3. ! -775000 07 WS-4DCO-PLIB-DECL-MT-TG PIC S9(13)V9(2) COMP-3. ! -775100 07 WS-4DCO-PLIB-DECL-MT-SF REDEFINES ! -775200 WS-4DCO-PLIB-DECL-MT-TG PIC S9(13)V9(2) COMP-3. ! -775300 07 WS-4DCO-PLIB-DECL-MT-QR PIC S9(13)V9(2) COMP-3. ! -775400 07 WS-4DCO-PLIB-DECL-MT-BASE-DK PIC S9(13)V9(2) COMP-3. ! -775500 07 WS-4DCO-PLIB-DECL-MT-DK PIC S9(13)V9(2) COMP-3. ! -775600 07 WS-4DCO-PLIB-DECL-MT-BASE-DL PIC S9(13)V9(2) COMP-3. ! -775700 07 WS-4DCO-PLIB-DECL-MT-DL PIC S9(13)V9(2) COMP-3. ! -775800 07 WS-4DCO-PLIB-DECL-MT-BASE-PW PIC S9(13)V9(2) COMP-3. ! -775900 07 WS-4DCO-PLIB-DECL-MT-PW PIC S9(13)V9(2) COMP-3. ! -776000 07 WS-4DCO-PLIB-DECL-MT-BASE-PX PIC S9(13)V9(2) COMP-3. ! -776100 07 WS-4DCO-PLIB-DECL-MT-PX PIC S9(13)V9(2) COMP-3. ! -776200 07 WS-4DCO-PLIB-DECL-MT-BASE-PY PIC S9(13)V9(2) COMP-3. ! -776300 07 WS-4DCO-PLIB-DECL-MT-PY PIC S9(13)V9(2) COMP-3. ! -776400 07 WS-4DCO-PLIB-DECL-MT-BASE-RV PIC S9(13)V9(2) COMP-3. ! -776500 07 WS-4DCO-PLIB-DECL-MT-RV PIC S9(13)V9(2) COMP-3. ! -776600 07 WS-4DCO-PLIB-DECL-MT-BASE-RW PIC S9(13)V9(2) COMP-3. ! -776700 07 WS-4DCO-PLIB-DECL-MT-RW PIC S9(13)V9(2) COMP-3. ! -776800 07 WS-4DCO-PLIB-DECL-MT-RX PIC S9(13)V9(2) COMP-3. ! -776900 07 WS-4DCO-PLIB-DECL-MT-RZ PIC S9(13)V9(2) COMP-3. ! -777000 07 WS-4DCO-PLIB-DECL-MT-BASE-DA PIC S9(13)V9(2) COMP-3. ! -777100 07 WS-4DCO-PLIB-DECL-MT-DA PIC S9(13)V9(2) COMP-3. ! -777200 07 WS-4DCO-PLIB-DECL-MT-BASE-DB PIC S9(13)V9(2) COMP-3. ! -777300 07 WS-4DCO-PLIB-DECL-MT-DB PIC S9(13)V9(2) COMP-3. ! -777400 07 WS-4DCO-PLIB-DECL-MT-BASE-PJ PIC S9(13)V9(2) COMP-3. ! -777500 07 WS-4DCO-PLIB-DECL-MT-PJ PIC S9(13)V9(2) COMP-3. ! -777600 07 WS-4DCO-PLIB-DECL-MT-BASE-PM PIC S9(13)V9(2) COMP-3. ! -777700 07 WS-4DCO-PLIB-DECL-MT-PM PIC S9(13)V9(2) COMP-3. ! -777800 07 WS-4DCO-PLIB-DECL-MT-PZ PIC S9(13)V9(2) COMP-3. ! -777900 07 WS-4DCO-PLIB-DECL-MT-RU PIC S9(13)V9(2) COMP-3. ! -778000 07 WS-4DCO-PLIB-DECL-MT-BASE-RR PIC S9(13)V9(2) COMP-3. ! -778100 07 WS-4DCO-PLIB-DECL-MT-RR PIC S9(13)V9(2) COMP-3. ! -778200 07 WS-4DCO-PLIB-DECL-MT-BASE-RY PIC S9(13)V9(2) COMP-3. ! -778300 07 WS-4DCO-PLIB-DECL-MT-RY PIC S9(13)V9(2) COMP-3. ! -778400 07 WS-4DCO-PLIB-DECL-MT-RA PIC S9(13)V9(2) COMP-3. ! -778500 07 FILLER PIC X(120). ! -778600* MONTANTS CALCULES POUR L'ECRAN C4DPP0 ! -778700 05 WS-4DCO-PLIB-MONT. ! -778800 07 WS-4DCO-PLIB-MONT-IL PIC S9(13)V9(2) COMP-3. ! -778900 07 WS-4DCO-PLIB-MONT-PQ PIC S9(13)V9(2) COMP-3. ! -779000 07 WS-4DCO-PLIB-BASE-PQ PIC S9(13)V9(2) COMP-3. ! -779100 07 WS-4DCO-PLIB-MONT-PV PIC S9(13)V9(2) COMP-3. ! -779200 07 WS-4DCO-PLIB-BASE-PV PIC S9(13)V9(2) COMP-3. ! -779300 07 WS-4DCO-PLIB-MONT-RU PIC S9(13)V9(2) COMP-3. ! -779400 07 WS-4DCO-PLIB-MONT-SA PIC S9(13)V9(2) COMP-3. ! -779500 07 WS-4DCO-PLIB-MONT-TA PIC S9(13)V9(2) COMP-3. ! -779600 07 WS-4DCO-PLIB-MONT-SB PIC S9(13)V9(2) COMP-3. ! -779700 07 WS-4DCO-PLIB-MONT-TB PIC S9(13)V9(2) COMP-3. ! -779800 07 WS-4DCO-PLIB-MONT-SC PIC S9(13)V9(2) COMP-3. ! -779900 07 WS-4DCO-PLIB-MONT-TC PIC S9(13)V9(2) COMP-3. ! -780000 07 WS-4DCO-PLIB-MONT-SD PIC S9(13)V9(2) COMP-3. ! -780100 07 WS-4DCO-PLIB-MONT-TD PIC S9(13)V9(2) COMP-3. ! -780200 07 WS-4DCO-PLIB-MONT-SE PIC S9(13)V9(2) COMP-3. ! -780300 07 WS-4DCO-PLIB-MONT-TE PIC S9(13)V9(2) COMP-3. ! -780400 07 WS-4DCO-PLIB-MONT-SF PIC S9(13)V9(2) COMP-3. ! -780500 07 WS-4DCO-PLIB-MONT-TF PIC S9(13)V9(2) COMP-3. ! -780600 07 WS-4DCO-PLIB-MONT-TG PIC S9(13)V9(2) COMP-3. ! -780700 07 WS-4DCO-PLIB-MONT-PFL PIC S9(13)V9(2) COMP-3. ! -780800* ne pas oublier de diminuer le filler en cas d'ajout ici ! -780900* ! -781000* ZONES COMMUNES ! -781100* ZONE GROUPE POUR LE PROGRAMME TC4DPY0 ! -781200 05 WS-4DCO-PLIB-MT-CSG-J PIC S9(13)V9(2) COMP-3. ! -781300* MONTANT C.S.G. janvier ! -781400 05 WS-4DCO-PLIB-ASST-CSG-J PIC S9(13)V9(2) COMP-3. ! -781500* MONTANT ASSIETTE CSG janvier ! -781600 05 WS-4DCO-PLIB-CD-SNS-MVT-J PIC X. ! -781700* MONTANT VERSEMENT RDS ! -781800 05 WS-4DCO-PLIB-VALIDATION PIC X. ! -781900* passage sur deuxieme ecran ! -782000 05 WS-4DCO-PLIB-MT-SOC PIC S9(13)V9(2) COMP-3. ! -782100* MONTANT pr�l�vement social d�cembre ! -782200 05 WS-4DCO-PLIB-ASST-SOC PIC S9(13)V9(2) COMP-3. ! -782300* MONTANT ASSIETTE prelevement social d�cembre ! -782400 05 WS-4DCO-PLIB-CD-SNS-MVT-SOC PIC X. ! -782500* MONTANT sens mvt prel soc d�cembre ! -782600 05 WS-4DCO-PLIB-MT-SOC-J PIC S9(13)V9(2) COMP-3. ! -782700* MONTANT pr�l�vement social janvier ! -782800 05 WS-4DCO-PLIB-ASST-SOC-J PIC S9(13)V9(2) COMP-3. ! -782900* MONTANT ASSIETTE prelevement social janvier ! -783000 05 WS-4DCO-PLIB-CD-SNS-MVT-SOC-J PIC X. ! -783100* MONTANT sens mvt prel soc janvier ! -783200* ===> ZONE GROUPE POUR LE PROGRAMME TC4DPN0 ! -783300 05 WS-4DCO-PLIB-MT-CSG97 PIC S9(13)V9(2) COMP-3. ! -783400* MONTANT C.S.G. de 1997 (3,4%) ! -783500 05 WS-4DCO-PLIB-ASST-CSG97 PIC S9(13)V9(2) COMP-3. ! -783600* MONTANT ASSIETTE CSG 1997 ! -783700 05 WS-4DCO-PLIB-ASST-PLV-SOC PIC S9(13)V9(2) COMP-3. ! -783800* MONTANT assiette prelev. soc. ! -783900 05 WS-4DCO-PLIB-ASST-PLV-LBL-8A PIC S9(13)V9(2) COMP-3. ! -784000* MONTANT ASSIETTE prelev. liber. � 7,5% ! -784100 05 WS-4DCO-PLIB-MT-CTB PIC S9(13)V9(2) COMP-3. ! -784200* MONTANT Contribution additionnelle ! -784300 05 WS-4DCO-PLIB-ASST-CTB PIC S9(13)V9(2) COMP-3. ! -784400* MONTANT ASSIETTE Contribution additionnelle ! -784500 05 WS-4DCO-PLIB-MT-CTB-J PIC S9(13)V9(2) COMP-3. ! -784600* MONTANT Contribution additionnelle janvier ! -784700 05 WS-4DCO-PLIB-ASST-CTB-J PIC S9(13)V9(2) COMP-3. ! -784800* MONTANT ASSIETTE Contribution additionnelle janvier ! -784900 05 WS-4DCO-PLIB-DATELIB PIC X(15). ! -785000* date acompte ! -785100 05 WS-4DCO-PLIB-CICS PIC X(04). ! -785200* type de cics ! -785300 ! -785400* ZONES DISPONIBLES ! -785500 05 FILLER PIC X(0287). ! -785600*================================================================ ! -785700*= APPLICATION : GESTION DES CONTRATS ENTREPRISE = ! -785800*================================================================ ! -785900* ! -786000 03 WS-4DCO-CTR-ENT REDEFINES WS-4DCO-PROGRAM. ! -786100* ============ ! -786200 ! -786300* ============== ! -786400* ------------------------------------------------------ * ! -786500* COMMAREA : GESTION DES CONTRATS ENTREPRISE * ! -786600* LONGUEUR : 1800 * ! -786700* PREFIXE : WS-4DCO-CTRE * ! -786800* ------------------------------------------------------ * ! -786900* ! -787000 05 WS-4DCO-CTRE-DA-SCR. ! -787100* DATE DE SOUSCRITPION ! -787200 10 WS-4DCO-CTRE-DA-SCR-JJ PIC X(2). ! -787300* DATE DE SOUSCRITPION - JOUR ! -787400 10 FILLER PIC X(1). ! -787500* SEPARATEUR DE DATE ! -787600 10 WS-4DCO-CTRE-DA-SCR-MM PIC X(2). ! -787700* DATE DE SOUSCRIPTION - MOIS ! -787800 10 FILLER PIC X(1). ! -787900* SEPARATEUR DE DATE ! -788000 10 WS-4DCO-CTRE-DA-SCR-SSAA PIC X(4). ! -788100* DATE DE SOUSCRIPTION - ANNEE ! -788200 05 WS-4DCO-CTRE-NO-STR-GTN PIC X(6). ! -788300* NUMERO STRUCTURE GESTIONNAIRE ! -788400 05 WS-4DCO-CTRE-LIB-STR-GTN PIC X(32). ! -788500* LIBELLE STRUCTURE GESTIONNAIRE ! -788600 05 WS-4DCO-CTRE-LIB-EFF-1 PIC X(50). ! -788700* LIEBLLE EFFECTIF 1 ! -788800 05 WS-4DCO-CTRE-LIB-EFF-2 PIC X(50). ! -788900* LIEBLLE EFFECTIF 2 ! -789000 05 WS-4DCO-CTRE-CD-CLC-IFC PIC X(1). ! -789100* MODE DE CALCUL INDEMNIT�S FIN CARRI�RE ! -789200 05 WS-4DCO-CTRE-TX-CTS-SAL-CO PIC S9(3)V99. ! -789300* TX COTISATION SALAIRE CONTRAT COLLECTIF ! -789400 05 WS-4DCO-CTRE-TX-CTS-TCH-A-CO PIC S9(3)V99. ! -789500* TX COTISATION TRANCHE A CONTRAT COLLECTIF ! -789600 05 WS-4DCO-CTRE-TX-CTS-TCH-B-CO PIC S9(3)V99. ! -789700* TX COTISATION TRANCHE B CONTRAT COLLECTIF ! -789800 05 WS-4DCO-CTRE-TX-CTS-TCH-C-CO PIC S9(3)V99. ! -789900* TX COTISATION TRANCHE C CONTRAT COLLECTIF ! -790000 05 WS-4DCO-CTRE-TX-CTS-SAL-IN PIC S9(3)V99. ! -790100* TX COTISATION SALAIRE CONTRAT INDIVIDUEL ! -790200 05 WS-4DCO-CTRE-TX-CTS-TCH-A-IN PIC S9(3)V99. ! -790300* TX COTISATION TRANCHE A CONTRAT INDIVIDUEL ! -790400 05 WS-4DCO-CTRE-TX-CTS-TCH-B-IN PIC S9(3)V99. ! -790500* TX COTISATION TRANCHE B CONTRAT INDIVIDUEL ! -790600 05 WS-4DCO-CTRE-TX-CTS-TCH-C-IN PIC S9(3)V99. ! -790700* TX COTISATION TRANCHE C CONTRAT INDIVIDUEL ! -790800 05 WS-4DCO-CTRE-MT-VER-INI PIC S9(13)V99. ! -790900* MONTANT VERSEMENT INITIAL ! -791000 05 WS-4DCO-CTRE-NB-A-RATR PIC S9(2). ! -791100* MONTANT VERSEMENT INITIAL ! -791200 05 WS-4DCO-CTRE-LIB-TY-CLA-1 PIC X(50). ! -791300* LIBELLE TYPE CLAUSE 1 ! -791400 05 WS-4DCO-CTRE-LIB-TY-CLA-2 PIC X(50). ! -791500* LIBELLE TYPE CLAUSE 2 ! -791600 05 WS-4DCO-CTRE-TM-STP PIC X(26). ! -791700* TIMESTAMP DE LA LECTURE CONTRAT ENTREPRISE ! -791800 05 WS-4DCO-CTRE-PAGE-AREA PIC X(198). ! -791900* SAUVEGARDE PAGE AREA START ! -792000 05 WS-4DCO-CTRE-NOM-USU-PSE PIC X(32). ! -792100* NOM + PRENOM OU ENSEIGNE ! -792200 05 WS-4DCO-CTRE-MONT PIC S9(15)V99 COMP-3. ! -792300* MONTANT SOLDE COMPTABLE ! -792400 05 WS-4DCO-CTRE-NBPAGES PIC 9(002). ! -792500* NOMBRE DE PAGES ! -792600 05 WS-4DCO-CTRE1-NBPAGES PIC 9(002). ! -792700* NOMBRE DE PAGES SUR TC4DRT0 ! -792800*-- DA3371 ! -792900*-- DATE DE MAJ DE L'ENCOURS GLOBAL ! -793000 05 WS-4DCO-CTRE-DATMAJ. ! -793100 10 WS-DA-MAJC-SA PIC X(004). ! -793200 10 WS-DA-MAJC-MM PIC X(002). ! -793300 10 WS-DA-MAJC-JJ PIC X(002). ! -793400*================================================================ ! -793500*= APPLICATION : VERSEMENT SUR CONTRATS LIES AU = ! -793600*= CONTRAT ENTREPRISE (TC4DRV0) = ! -793700*================================================================ ! -793800* ! -793900 03 WS-4DCO-4DRV REDEFINES WS-4DCO-PROGRAM. ! -794000* ============ ! -794100 ! -794200* ============== ! -794300* ------------------------------------------------------ * ! -794400* COMMAREA : VERSEMENT SUR LES CONTRATS LIES AU * ! -794500* CONTRAT ENTREPRISE * ! -794600* LONGUEUR : 1800 * ! -794700* PREFIXE : WS-4DCO-4DRV * ! -794800* ------------------------------------------------------ * ! -794900 05 WS-4DCO-4DRV-CPT-DOM. ! -795000* COMPTE DOM ! -795100 10 WS-4DCO-4DRV-CD-BQE PIC X(005). ! -795200* CODE BANQUE ! -795300 10 WS-4DCO-4DRV-CD-GUI PIC X(005). ! -795400* CODE GUICHET ! -795500 10 WS-4DCO-4DRV-NO-CPT PIC X(011). ! -795600* NUMERO COMPTE ! -795700 10 WS-4DCO-4DRV-CLE-RIB PIC X(002). ! -795800* CLE RIB ! -795900 05 WS-4DCO-4DRV-TX-FRAIS PIC 9(02)V9(03). ! -796000* TAUX DE FRAIS ! -796100 05 WS-4DCO-4DRV-DA-OPE. ! -796200* DATE D'OPERATION ! -796300 10 WS-4DCO-4DRV-DA-OPE-J PIC X(2). ! -796400* DATE D'OPERATION - JOUR ! -796500 10 FILLER PIC X(1). ! -796600* SEPARATEUR DE DATE ! -796700 10 WS-4DCO-4DRV-DA-OPE-M PIC X(2). ! -796800* DATE D'OPERATION - MOIS ! -796900 10 FILLER PIC X(1). ! -797000* SEPARATEUR DE DATE ! -797100 10 WS-4DCO-4DRV-DA-OPE-A PIC X(4). ! -797200* DATE D'OPERATION - ANNEE ! -797300 05 WS-4DCO-4DRV-DA-EFF. ! -797400* DATE D'EFFET ! -797500 10 WS-4DCO-4DRV-DA-EFF-J PIC X(2). ! -797600* DATE D'EFFET - JOUR ! -797700 10 FILLER PIC X(1). ! -797800* SEPARATEUR DE DATE ! -797900 10 WS-4DCO-4DRV-DA-EFF-M PIC X(2). ! -798000* DATE D'EFFET - MOIS ! -798100 10 FILLER PIC X(1). ! -798200* SEPARATEUR DE DATE ! -798300 10 WS-4DCO-4DRV-DA-EFF-A PIC X(4). ! -798400* DATE D'EFFET - ANNEE ! -798500 05 WS-4DCO-4DRV-MT-BRUT PIC S9(09)V9(02). ! -798600* MONTANT BRUT ! -798700 05 WS-4DCO-4DRV-LIB-CPT PIC X(13). ! -798800* LIBELLE COMPTE SUR ECRAN ! -798900 05 WS-4DCO-4DRV-NOM-TS-PARAM PIC X(08). ! -799000* NOM TS PARAMETRE PRODUIT ! -799100 05 WS-4DCO-4DRV-DA-EFF-CTR PIC X(08). ! -799200* DATE D'EFFET DU CONTRAT GEODES ! -799300 05 WS-4DCO-4DRV-DA-EFF-CLC PIC X(08). ! -799400* DATE D'EFFET CALCULEE ! -799500 05 WS-4DCO-4DRV-MTBRUT PIC S9(09)V9(02). ! -799600* MONTANT BRUT VERSEMENT ! -799700 05 WS-4DCO-4DRV-MTBRUT-C REDEFINES ! -799800 WS-4DCO-4DRV-MTBRUT ! -799900 PIC S9(11). ! -800000* MONTANT BRUT VERSEMENT ! -800100 05 WS-4DCO-4DRV-MTNET PIC S9(09)V9(02). ! -800200* MONTANT NET VERSEMENT ! -800300 05 WS-4DCO-4DRV-MTNET-C REDEFINES ! -800400 WS-4DCO-4DRV-MTNET ! -800500 PIC S9(11). ! -800600 05 WS-4DCO-4DRV-NOM-TS-VERS PIC X(08). ! -800700* NOM TS VERSEMENT ! -800800 05 WS-4DCO-4DRV-NB-OCC-RES PIC 9(03). ! -800900* NOMBRE D'ELEMENTS RESTITUES PAR TN00LIS ! -801000 05 WS-4DCO-4DRV-NO-STR-GTN-CTR PIC X(06). ! -801100* NUMERO STRUCTURE GESTIONNAIRE CONTRAT ! -801200 05 WS-4DCO-4DRV-NO-AGT-GTN-CTR PIC X(08). ! -801300* NUMERO AGENT GESTIONNAIRE CONTRAT ! -801400 05 WS-4DCO-4DRV-CD-TY-ECG-FNC PIC X(05). ! -801500* CODE TYPE ECHEANCE ! -801600 05 WS-4DCO-4DRV-ERREUR PIC X(01). ! -801700* INDICATEUR ERREUR BLOQUANTE ! -801800 88 ERREUR-BLOQUANTE VALUE 'O'. ! -801900* CODE MESSAGE ERREUR BLOQUANTE ! -802000 05 WS-4DCO-4DRV-CD-MES-ERR PIC X(06). ! -802100* LIBELLE COMPLEMENTAIRE MESSAGE ERREUR ! -802200 05 WS-4DCO-4DRV-LIB-CPL-MES PIC X(32). ! -802300*--DME DEBUT ! -802400* CODE IDENTIFIANT STOCK ! -802500 05 WS-4DCO-4DRV-CD-IDT-STK PIC X(03). ! -802600* DATE BASCULEMENT EFFECTIVE ! -802700 05 WS-4DCO-4DRV-DA-BSC-EFF PIC X(08). ! -802800* DATE BASCULEMENT EFFECTIVE ! -802900 05 WS-4DCO-4DRV-DA-OPE-DNR-RP PIC X(08). ! -803000*--DME FIN ! -803100*--DA3371 deb ! -803200 05 WS-4DCO-4DRV-NOM-USU-PSE PIC X(32). ! -803300* NOM + PRENOM OU ENSEIGNE ! -803400*--DA3371 fin ! -803500*================================================================ ! -803600*= APPLICATION : DADS2 : declaration des donnees sociales = ! -803700*= a la dgi = ! -803800*================================================================ ! -803900* ! -804000 03 WS-4DCO-DADS REDEFINES WS-4DCO-PROGRAM. ! -804100* ============ ! -804200 ! -804300* ============== ! -804400* ------------------------------------------------------ * ! -804500* COMMAREA : GESTION TC4DZF0 : SAISE MVT DADS2 * ! -804600* LONGUEUR : 1800 * ! -804700* PREFIXE : WS-4DCO-dads * ! -804800* ------------------------------------------------------ * ! -804900 05 WS-4DCO-DADS-MVT. ! -805000* DECLARATION D'UN MOUVEMENT ! -805100 10 WS-4DCO-DADS-CD-TY-FRN PIC X(2). ! -805200 10 WS-4DCO-DADS-NO-FRN PIC 9(8). ! -805300 10 WS-4DCO-DADS-A-DCR PIC 9(4). ! -805400 10 WS-4DCO-DADS-NO-ORD-MT PIC 9(3). ! -805500 10 WS-4DCO-DADS-LIB-NOM-FRN PIC X(30). ! -805600 10 WS-4DCO-DADS-LIB-PRN PIC X(20). ! -805700 10 WS-4DCO-DADS-LIB-RAI-SOC-FRN PIC X(50). ! -805800 10 WS-4DCO-DADS-LIB-RUE PIC X(32). ! -805900 10 WS-4DCO-DADS-LIB-CPL PIC X(32). ! -806000 10 WS-4DCO-DADS-CD-POST PIC X(5). ! -806100 10 WS-4DCO-DADS-LIB-BUR-DIST PIC X(26). ! -806200 10 WS-4DCO-DADS-MT-DGI-HN PIC S9(13)V99 COMP-3. ! -806300 10 WS-4DCO-DADS-MT-DGI-JT PIC S9(13)V99 COMP-3. ! -806400 10 WS-4DCO-DADS-FILLER PIC X(72). ! -806500 05 WS-4DCO-DADS-LIB-MAP PIC X(050). ! -806600* ! -806700 05 WS-4DCO-DADS-LIST. ! -806800* DONNEES UTILIS�ES POUR LA TRANSACTION DE LISTE 4DZG ! -806900 10 WS-4DCO-DADS-TOP-POS PIC X. ! -807000 10 WS-4DCO-DADS-TY-FOUSAIS PIC XX. ! -807100 10 WS-4DCO-DADS-NO-FOUSAIS PIC 9(8). ! -807200 10 WS-4DCO-DADS-AA-FOUSAIS PIC 9(4). ! -807300* ! -807400 05 FILLER PIC X(1435). ! -807500* ! -807600* ! -807700*================================================================ ! -807800*= APPLICATION : PAB : declaration a la DGI des mvts = ! -807900*= PAB (CSG et CRDS) = ! -808000*================================================================ ! -808100* ! -808200 03 WS-4DCO-PAB REDEFINES WS-4DCO-PROGRAM. ! -808300* ============ ! -808400* ! -808500* ============== ! -808600* ------------------------------------------------------ * ! -808700* COMMAREA : GESTION TC4DPZ0 : Saisie mvts PAB * ! -808800* LONGUEUR : 1800 * ! -808900* PREFIXE : WS-4DCO-PAB * ! -809000* ------------------------------------------------------ * ! -809100 05 WS-4DCO-PAB-DONNEES. ! -809200 10 WS-4DCO-PAB-CD-PTN PIC X(5). ! -809300 10 WS-4DCO-PAB-LIB-PTN PIC X(5). ! -809400 10 WS-4DCO-PAB-NO-PTN PIC 9(3). ! -809500 10 WS-4DCO-PAB-CD-APT-APLI PIC X(2). ! -809600 10 WS-4DCO-PAB-MT-CSG PIC S9(13)V99 COMP-3. ! -809700 10 WS-4DCO-PAB-MT-ASST-CSG PIC S9(13)V99 COMP-3. ! -809800 10 WS-4DCO-PAB-MT-VER-RDS PIC S9(13)V99 COMP-3. ! -809900 10 WS-4DCO-PAB-MT-ASST-CRDS PIC S9(13)V99 COMP-3. ! -810000 10 WS-4DCO-PAB-MT-PLV-SOC PIC S9(13)V99 COMP-3. ! -810100 10 WS-4DCO-PAB-MT-ASST-SOC PIC S9(13)V99 COMP-3. ! -810200 10 WS-4DCO-PAB-MT-CTS-VLL PIC S9(7)V99 COMP-3. ! -810300 10 WS-4DCO-PAB-MT-CTB PIC S9(13)V99 COMP-3. ! -810400 10 WS-4DCO-PAB-MT-ASST-CTB PIC S9(13)V99 COMP-3. ! -810500 10 WS-4DCO-PAB-MT-CSG-P7 PIC S9(13)V99 COMP-3. ! -810600 10 WS-4DCO-PAB-MT-ASST-CSG-P7 PIC S9(13)V99 COMP-3. ! -810700 10 WS-4DCO-PAB-MT-VER-RDS-P7 PIC S9(13)V99 COMP-3. ! -810800 10 WS-4DCO-PAB-MT-ASST-CRDS-P7 PIC S9(13)V99 COMP-3. ! -810900 10 WS-4DCO-PAB-MT-PLV-SOC-P7 PIC S9(13)V99 COMP-3. ! -811000 10 WS-4DCO-PAB-MT-ASST-SOC-P7 PIC S9(13)V99 COMP-3. ! -811100 10 WS-4DCO-PAB-MT-CTS-VLL-P7 PIC S9(7)V99 COMP-3. ! -811200 10 WS-4DCO-PAB-MT-CTB-P7 PIC S9(13)V99 COMP-3. ! -811300 10 WS-4DCO-PAB-MT-ASST-CTB-P7 PIC S9(13)V99 COMP-3. ! -811400 10 WS-4DCO-PAB-MODIF-PR PIC X(1). ! -811500 10 WS-4DCO-PAB-MODIF-P7 PIC X(1). ! -811600 05 FILLER PIC X(1644). ! -811700* ------------------------------------------------------ * ! -811800* ! -811900*================================================================ ! -812000*= APPLICATION : DIH : liste des mouvements dgi = ! -812100*================================================================ ! -812200* ! -812300 03 WS-4DCO-DIH REDEFINES WS-4DCO-PROGRAM. ! -812400* ============ ! -812500* ! -812600* ============== ! -812700* ------------------------------------------------------ * ! -812800* COMMAREA : GESTION TC4DQA0 et TC4DQB0 * ! -812900* Liste des mouvements DGI et detail * ! -813000* LONGUEUR : 1800 * ! -813100* PREFIXE : WS-4DCO-DIH * ! -813200* ------------------------------------------------------ * ! -813300 05 WS-4DCO-DIH-DONNEES. ! -813400 10 WS-4DCO-DIH-DA-CRE-CRO PIC X(8). ! -813500 10 WS-4DCO-DIH-CD-TY-MVT-DGI PIC X(3). ! -813600 10 WS-4DCO-DIH-DA-CRE-TEC PIC X(8). ! -813700 10 WS-4DCO-DIH-CD-TY-MVT-DGI-CL PIC X(3). ! -813800 10 WS-4DCO-DIH-NO-SEQ PIC X(6). ! -813900 10 WS-4DCO-DIH-NO-PTN PIC X(3). ! -814000 10 WS-4DCO-DIH-NO-PRD-PTN PIC X(3). ! -814100 10 WS-4DCO-DIH-REF-GEODES PIC X(18). ! -814200 10 WS-4DCO-DIH-DA-CRE-CRO-CL PIC X(8). ! -814300 10 WS-4DCO-DIH-HEU-CRE-CRO PIC X(6). ! -814400 10 WS-4DCO-DIH-CD-TY-CRO PIC X(3). ! -814500 10 WS-4DCO-DIH-TOP-POS PIC X(1). ! -814600 10 WS-4DCO-DIH-CD-ORI-ENR PIC X(1). ! -814700 10 WS-4DCO-DIH-TABLE OCCURS 15. ! -814800 15 WS-4DCO-DIH-NO-SEQ-TB PIC X(06). ! -814900 15 WS-4DCO-DIH-CD-ORI-ENR-TB PIC X(01). ! -815000 05 FILLER PIC X(1624). ! -815100* ------------------------------------------------------ * ! -815200*================================================================ ! -815300*= APPLICATION : parametrage des clauses = ! -815400*================================================================ ! -815500* ! -815600 03 WS-4DCO-CLA REDEFINES WS-4DCO-PROGRAM. ! -815700* ============ ! -815800* ! -815900* ============== ! -816000* ------------------------------------------------------ * ! -816100* COMMAREA : GESTION TC4GQA0, QB0, QC0, QE0, QF0 * ! -816200* LONGUEUR : 1800 * ! -816300* PREFIXE : WS-4DCO-CLA * ! -816400* ------------------------------------------------------ * ! -816500 05 WS-4DCO-CLA-DONNEES. ! -816600 10 WS-4DCO-CLA-TY-CLA-BNF PIC X(04). ! -816700* Type de clause b�n�ficiaire ! -816800 10 WS-4DCO-CLA-NO-GEN PIC 9(03). ! -816900* No de g�n�ration ! -817000 10 WS-4DCO-CLA-LIB-TY-CLA-BNF PIC X(32). ! -817100* Libell� type de clause ! -817200 10 WS-4DCO-CLA-IDC-TXT-STD PIC X(01). ! -817300* Indicateur texte standard ! -817400 10 WS-4DCO-CLA-IDC-CLA-NOMI PIC X(01). ! -817500* Indicateur Clause nominative ! -817600 10 WS-4DCO-CLA-IDC-ACC-BENF PIC X(01). ! -817700* Indicateur Acceptation b�n�fice ! -817800 10 WS-4DCO-CLA-IDC-AUT-DRG PIC X(01). ! -817900* Indicateur Autorisation D�r�gation ! -818000 10 WS-4DCO-CLA-CLE-REPO. ! -818100 15 WS-4DCO-CLA-TY-CLA-BNF-R PIC X(04). ! -818200* Repositionnement Type de clause b�n�ficiaire ! -818300 15 WS-4DCO-CLA-NO-GEN-R PIC 9(03). ! -818400* Repositionnement No de g�n�ration ! -818500 10 WS-4DCO-CLA-CPOSN PIC S9(04) COMP. ! -818600* Curseur positionnement ! -818700 10 WS-4DCO-CLA-PAGE-AREA PIC X(80). ! -818800* SAUVEGARDE PAGE AREA START ! -818900 10 WS-4DCO-CLA-TM-STP PIC X(26). ! -819000* TIME STAMP ! -819100 10 WS-4DCO-CLA-LA-TY-CLA-BNF PIC X(20). ! -819200* Libell� type de clause ! -819300 10 WS-4DCO-CLA-IDC-CLA-NTR PIC X(01). ! -819400* Indicateur Clause notaire ! -819500 10 WS-4DCO-CLA-IDC-CLA-DMB PIC X(01). ! -819600* Indicateur Clause d�membrement ! -819700 10 WS-4DCO-CLA-IDC-CLA-DFT PIC X(01). ! -819800* Indicateur Clause par d�faut ! -819900 10 WS-4DCO-CLA-IDC-CLA-TUT PIC X(01). ! -820000* Indicateur Clause mineur majeur sous tutelle ! -820100* ! -820200 05 FILLER PIC X(618). ! -820300* lien clause / autres applications ! -820400 05 WS-4DCO-LIEN-CLA PIC X(1000). ! -820500* APPLICATION : parametrage Clause / type de produit ! -820600 05 WS-4DCO-4DDY-CLA REDEFINES WS-4DCO-LIEN-CLA. ! -820700* ================= ! -820800 10 WS-4DCO-4DDY-TYPRD PIC S9(02) COMP-3. ! -820900* NUMERO TYPE DE PRODUIT ! -821000 10 WS-4DCO-4DDY-LIB-TY-PRD PIC X(32). ! -821100* LIBELLE TYPE DE PRODUIT ! -821200 10 WS-4DCO-4DDY-NOGEN PIC X(03). ! -821300* NUMERO DE GENERATION ! -821400 10 WS-4DCO-4DDY-DA-VAL-DBT PIC X(10). ! -821500* DATE DEBUT ! -821600 10 WS-4DCO-4DDY-DA-FIN-VAL PIC X(10). ! -821700* DATE FIN ! -821800 10 WS-4DCO-4DDY-NO-GAM-PRD PIC S9(02) COMP-3. ! -821900* NUMERO GAMME DE PRODUIT ! -822000 10 WS-4DCO-4DDY-TX-MIN-ITT-GAR PIC X(06). ! -822100* Taux minimum de garde ! -822200 10 WS-4DCO-4DDY-TX-AJU-CTS PIC X(06). ! -822300* Taux ajustement contrat ! -822400 10 WS-4DCO-4DDY-PRC-PAB-RCH PIC X(07). ! -822500* Pourcent. PAB Rachat ! -822600 10 WS-4DCO-4DDY-PRC-PAB-SIN PIC X(07). ! -822700* Pourcent. PAB Sinistre ! -822800 10 WS-4DCO-4DDY-DEL-SAI-RNO PIC S9(02) COMP-3. ! -822900* Delai de renonciation ! -823000 10 WS-4DCO-4DDY-MT-PLAF-VER-CTR PIC X(10). ! -823100* Mtant max contrat ! -823200 10 WS-4DCO-4DDY-MT-CTRL-OPE-DTX PIC X(16). ! -823300* Mtant controle op�ration insolite ! -823400 10 WS-4DCO-4DDY-MT-MIN-CTRL-CLI PIC X(16). ! -823500* Mtant controle client ! -823600 10 WS-4DCO-4DDY-MT-MIN-VER-A PIC X(10). ! -823700* Mtant minimum annuel ouvrant droit � d�duction fiscale ! -823800 10 WS-4DCO-4DDY-MT-MAX-VER-A PIC X(10). ! -823900* Mtant maximum annuel ouvrant droit � d�duction fiscale ! -824000 10 WS-4DCO-4DDY-TX-SML-PAB PIC X(06). ! -824100* Taux simulation PAB ! -824200 10 WS-4DCO-4DDY-TX-DNR-PAB PIC X(08). ! -824300* Taux derniere PAB ! -824400 10 WS-4DCO-4DDY-TX-DNR-PAB-MI PIC X(08). ! -824500* Taux derniere PAB ! -824600 10 WS-4DCO-4DDY-TX-CRDS PIC X(07). ! -824700* Taux CRDS ! -824800 10 WS-4DCO-4DDY-TX-CSG PIC X(07). ! -824900* Taux CSG ! -825000 10 WS-4DCO-4DDY-TX-CSG-97 PIC X(07). ! -825100* Taux CSG 97 ! -825200 10 WS-4DCO-4DDY-DA-PAB-A-MI PIC X(10). ! -825300* Date PAB minitel ! -825400 10 WS-4DCO-4DDY-CD-TY-TX-RMN PIC X(01). ! -825500* Code Type taux min. ! -825600 10 WS-4DCO-4DDY-CD-TY-RCH-AUT PIC X(10). ! -825700* Code Type rachat automatique ! -825800 10 WS-4DCO-4DDY-CD-TY-VER-AUT PIC X(10). ! -825900* Code Type versement automatique ! -826000 10 WS-4DCO-4DDY-CD-PER-VER-AUT PIC X(10). ! -826100* Code p�riodicit� versement automatique ! -826200 10 WS-4DCO-4DDY-DUR-CTR PIC X(04). ! -826300* Dur�e contrat ! -826400 10 WS-4DCO-4DDY-CD-FIS-AUT PIC X(10). ! -826500* Code fiscal autoris� ! -826600 10 WS-4DCO-4DDY-CD-MTF-RCH-AUT PIC X(10). ! -826700* Code motif rachat autoris� ! -826800 10 WS-4DCO-4DDY-IDC-NTS PIC X(01). ! -826900* Indicateur nantissement ! -827000 10 WS-4DCO-4DDY-CD-TY-PSE PIC X(01). ! -827100* Code type personne ! -827200 10 WS-4DCO-4DDY-IDC-UNI-PRD PIC X(01). ! -827300* Unicit� type produit ! -827400 10 WS-4DCO-4DDY-CD-CAT-FIS PIC X(02). ! -827500* Code cat�gorie fiscale ! -827600 10 WS-4DCO-4DDY-CD-TAB-DU PIC X(02). ! -827700* Code dur�e ! -827800 10 WS-4DCO-4DDY-IDC-PRD-UNT-CPT PIC X(01). ! -827900* indicateur P.U.C ! -828000 10 WS-4DCO-4DDY-IDC-ACTION PIC X(01). ! -828100 88 WS-4DCO-4DDY-CREATION VALUE 'C'. ! -828200* indicateur action ! -828300 10 WS-4DCO-4DDY-IDC-PRD-pd PIC X(01). ! -828400* indicateur type produit eligible previ-duo trans ! -828500 10 FILLER PIC X(733). ! -828600* ! -828700 ! -828800 03 WS-4DCO-PMO-4DFL REDEFINES WS-4DCO-PROGRAM. ! -828900* ================== ! -829000* ------------------------------------------------------ * ! -829100* COMMAREA : MODIFICATION MONTANT PMO/VERST BRUT * ! -829200* LONGUEUR : 1800 * ! -829300* PREFIXE : WS-4DCO-4DFL- * ! -829400* ------------------------------------------------------ * ! -829500 ! -829600 05 WS-4DCO-4DFL-TAB-STO-GEST OCCURS 10. ! -829700 07 WS-4DCO-4DFL-PMO-AV PIC S9(13)V9(2) COMP-3. ! -829800 07 WS-4DCO-4DFL-PMO-AP PIC S9(13)V9(2) COMP-3. ! -829900 07 WS-4DCO-4DFL-FLAG-MODIF-PMO PIC X(01). ! -830000 07 WS-4DCO-4DFL-MT-BRT-VER-AV PIC S9(13)V9(2) COMP-3. ! -830100 07 WS-4DCO-4DFL-MT-BRT-VER-AP PIC S9(13)V9(2) COMP-3. ! -830200 07 WS-4DCO-4DFL-FLAG-MODIF-VER PIC X(01). ! -830300 07 WS-4DCO-4DFL-FLAG-EXIST-STOCK PIC X(01). ! -830400 05 WS-4DCO-4DFL-TAB-STO-FISCA OCCURS 2. ! -830500 07 WS-4DCO-4DFL-MT-RCH-NET-AV PIC S9(13)V9(2) COMP-3. ! -830600 07 WS-4DCO-4DFL-MT-RCH-NET-AP PIC S9(13)V9(2) COMP-3. ! -830700 07 WS-4DCO-4DFL-FLAG-MODIF-RN PIC X(01). ! -830800 07 WS-4DCO-4DFL-MT-PV-AV PIC S9(13)V9(2) COMP-3. ! -830900 07 WS-4DCO-4DFL-MT-PV-AP PIC S9(13)V9(2) COMP-3. ! -831000 07 WS-4DCO-4DFL-FLAG-MODIF-PV PIC X(01). ! -831100 07 WS-4DCO-4DFL-FLAG-EXIST-FISCA PIC X(01). ! -831200 05 WS-4DCO-4DFL-MT-PMO-TOT-AV PIC S9(15) COMP-3. ! -831300 05 WS-4DCO-4DFL-MT-PMO-TOT-R REDEFINES ! -831400 WS-4DCO-4DFL-MT-PMO-TOT-AV PIC S9(13)V9(2) COMP-3. ! -831500 05 WS-4DCO-4DFL-MT-PMO-TOT-AP PIC S9(13)V9(2) COMP-3. ! -831600 05 WS-4DCO-4DFL-TAB-EXIST-STOC OCCURS 6. ! -831700 07 WS-4DCO-4DFL-FLAG-EXIST-STOC PIC X(01). ! -831800 05 FILLER PIC X(1358). ! -831900* ZONES DISPONIBLES ! -832000 ! -832100 03 WS-4DCO-4DDU REDEFINES WS-4DCO-PROGRAM. ! -832200* ============ ! -832300* ! -832400* ============== ! -832500* ------------------------------------------------------ * ! -832600* COMMAREA : GESTION TC4DDU0, DDZ * ! -832700* LONGUEUR : 1800 * ! -832800* PREFIXE : WS-4DCO-4DDU * ! -832900* ------------------------------------------------------ * ! -833000 05 WS-4DCO-4DDU-DONNEES. ! -833100 10 WS-4DCO-4DDU-CD-RGL-SURA PIC X(06). ! -833200* Code r�gle param�trage ! -833300 10 WS-4DCO-4DDU-LIB-RGL-SURA PIC X(32). ! -833400* Code r�gle param�trage ! -833500 10 WS-4DCO-4DDU-CLE-REPO. ! -833600 15 WS-4DCO-4DDU-CD-RGL-SURA-R PIC X(06). ! -833700* Repositionnement Code R�gle param�trage ! -833800 10 WS-4DCO-4DDU-CPOSN PIC S9(04) COMP. ! -833900* Curseur positionnement ! -834000 10 WS-4DCO-4DDU-PAGE-AREA PIC X(80). ! -834100* SAUVEGARDE PAGE AREA START ! -834200* ! -834300 05 FILLER PIC X(1674). ! -834400 03 WS-4DCO-4DDV REDEFINES WS-4DCO-PROGRAM. ! -834500* ============ ! -834600* ! -834700* ============== ! -834800* ------------------------------------------------------ * ! -834900* COMMAREA : GESTION TC4DDV0 * ! -835000* LONGUEUR : 1800 * ! -835100* PREFIXE : WS-4DCO-4DDV * ! -835200* ------------------------------------------------------ * ! -835300 05 WS-4DCO-4DDV-DONNEES. ! -835400 10 WS-4DCO-4DDV-CD-EVE-SURA PIC X(07). ! -835500* Code �v�nement param�trage ! -835600 10 WS-4DCO-4DDV-LIB-EVE-SURA PIC X(32). ! -835700* libell� �v�nement param�trage ! -835800 10 WS-4DCO-4DDV-LA-EVE-SURA PIC X(20). ! -835900* libell� court �v�nement param�trage ! -836000 10 WS-4DCO-4DDV-CLE-REPO. ! -836100 15 WS-4DCO-4DDV-CD-EVE-SURA-R PIC X(07). ! -836200* Repositionnement Code �v�nement param�trage ! -836300 10 WS-4DCO-4DDV-PAGE-AREA PIC X(80). ! -836400* SAUVEGARDE PAGE AREA START ! -836500 10 WS-4DCO-4DDV-CD-EVE-SURA-SE PIC X(07). ! -836600* Code �v�nement param�trage ! -836700* ! -836800 05 FILLER PIC X(1647). ! -836900 03 WS-4DCO-4DDW REDEFINES WS-4DCO-PROGRAM. ! -837000* ============ ! -837100* ! -837200* ============== ! -837300* ------------------------------------------------------ * ! -837400* COMMAREA : GESTION TC4DDW0, DDF * ! -837500* LONGUEUR : 1800 * ! -837600* PREFIXE : WS-4DCO-4DDW * ! -837700* ------------------------------------------------------ * ! -837800 05 WS-4DCO-4DDW-DONNEES. ! -837900 10 WS-4DCO-4DDW-CD-EVE-SURA PIC X(07). ! -838000* Code Ev�nement param�trage ! -838100 10 WS-4DCO-4DDW-LIB-EVE PIC X(32). ! -838200* Libell� �v�nement ! -838300 10 WS-4DCO-4DDW-CD-RGL-SURA PIC X(06). ! -838400* Code r�gle param�trage ! -838500 10 WS-4DCO-4DDW-LIB-RGL PIC X(32). ! -838600* Libell� R�gle ! -838700 10 WS-4DCO-4DDW-NO-ORD-APLI PIC 9(03). ! -838800* Num�ro d'ordre apli ! -838900 10 WS-4DCO-4DDW-CLE-REPO. ! -839000 15 WS-4DCO-4DDW-CD-EVE-SURA-R PIC X(07). ! -839100* Repositionnement Code Ev�nement param�trage ! -839200 10 WS-4DCO-4DDW-CPOSN PIC S9(04) COMP. ! -839300* Curseur positionnement ! -839400 10 WS-4DCO-4DDW-PAGE-AREA PIC X(80). ! -839500* SAUVEGARDE PAGE AREA START ! -839600 10 WS-4DCO-4DDW-CD-RGL-SEL PIC X(06). ! -839700* Code r�gle s�lectionn� ! -839800 10 WS-4DCO-4DDW-SCAT-EVE PIC X(04). ! -839900* sous cat�gorie �v�nement ! -840000 10 WS-4DCO-4DDW-SCAT-RGL PIC X(04). ! -840100* sous cat�gorie r�gle ! -840200 10 WS-4DCO-4DDW-SCAT-DFT PIC X(04). ! -840300* sous cat�gorie par d�faut ! -840400 10 WS-4DCO-4DDW-CD-EVE-SURA-GR PIC X(07). ! -840500* Code Ev�nement groupe ! -840600 10 WS-4DCO-4DDW-IDC-DET PIC X(01). ! -840700* indicateur d�tail ! -840800 10 WS-4DCO-4DDW-CAT-EVE PIC X(04). ! -840900* cat�gorie �v�nement ! -841000* ! -841100 05 FILLER PIC X(1601). ! -841200* ! -841300 03 WS-4DCO-4DD1 REDEFINES WS-4DCO-PROGRAM. ! -841400* ============ ! -841500* ! -841600* ============== ! -841700* ------------------------------------------------------ * ! -841800* COMMAREA : GESTION TC4DD10 * ! -841900* LONGUEUR : 1800 * ! -842000* PREFIXE : WS-4DCO-4DD1 * ! -842100* ------------------------------------------------------ * ! -842200 05 WS-4DCO-4DD1-DONNEES. ! -842300 10 WS-4DCO-4DD1-DA-DEB-PER PIC X(08). ! -842400* Date D�but p�riode ! -842500 10 WS-4DCO-4DD1-DA-FIN-PER PIC X(08). ! -842600* Date Fin p�riode ! -842700 10 WS-4DCO-4DD1-CD-ACT PIC X(01). ! -842800* Code action ! -842900 10 WS-4DCO-4DD1-CD-TY-ENR PIC X(01). ! -843000* Code Type Enregistrement ! -843100 10 WS-4DCO-4DD1-WK-ZON-CLE PIC X(50). ! -843200* Argument cl� ! -843300 10 WS-4DCO-4DD1-TM-STP PIC X(26). ! -843400* Time stamp pass� ! -843500 10 WS-4DCO-4DD1-NO-SAL-MAJ PIC X(08). ! -843600* Num�ro Sal. Maj ! -843700 10 WS-4DCO-4DD1-CPOSN PIC S9(04) COMP. ! -843800* Curseur positionnement ! -843900 10 WS-4DCO-4DD1-PAGE-AREA PIC X(80). ! -844000* SAUVEGARDE PAGE AREA START ! -844100 10 WS-4DCO-4DD1-DA-DEB-PER-SEL PIC X(08). ! -844200* Date D�but p�riode ! -844300 10 WS-4DCO-4DD1-DA-FIN-PER-SEL PIC X(08). ! -844400* Date Fin p�riode ! -844500 10 WS-4DCO-4DD1-CD-ACT-SEL PIC X(01). ! -844600* Code Action ! -844700 10 WS-4DCO-4DD1-CD-TY-ENR-SEL PIC X(01). ! -844800* Code type enregist ! -844900 10 WS-4DCO-4DD1-NO-SAL-MAJ-SEL PIC X(06). ! -845000* Code salarie ! -845100 05 FILLER PIC X(1592). ! -845200* ! -845300 03 WS-4DCO-4DD7 REDEFINES WS-4DCO-PROGRAM. ! -845400* ============ ! -845500* ! -845600* ============== ! -845700* ------------------------------------------------------ * ! -845800* COMMAREA : GESTION TC4DD70 * ! -845900* LONGUEUR : 1800 * ! -846000* PREFIXE : WS-4DCO-4DD7 * ! -846100* ------------------------------------------------------ * ! -846200 05 WS-4DCO-4DD7-DONNEES. ! -846300 10 WS-4DCO-4DD7-CD-IMPR PIC X(08). ! -846400* Code imprimante ! -846500 05 FILLER PIC X(1792). ! -846600* ! -846700 03 WS-4DCO-4DG1 REDEFINES WS-4DCO-PROGRAM. ! -846800* ============ ! -846900* ! -847000* ============== ! -847100* ------------------------------------------------------ * ! -847200* COMMAREA : GESTION TC4DG10 * ! -847300* LONGUEUR : 1800 * ! -847400* PREFIXE : WS-4DCO-4DG1 * ! -847500* ------------------------------------------------------ * ! -847600 05 WS-4DCO-4DG1-ZON-CLE. ! -847700 07 WS-4DCO-4DG1-DONNEES. ! -847800 10 WS-4DCO-4DG1-NO-RGM-GE PIC 9(03). ! -847900 10 WS-4DCO-4DG1-A-REF PIC 9(04). ! -848000* TYPE D'ACTION SUR L'ECRAN MC4DG10 ! -848100 07 WS-4DCO-4DG1-SAV-ACTION PIC X. ! -848200 88 4DG1-CREAT VALUE 'C'. ! -848300 88 4DG1-MODIF VALUE 'M'. ! -848400 88 4DG1-SUPP VALUE 'A'. ! -848500 88 4DG1-VISU VALUE 'D'. ! -848600* ! -848700 05 WS-4DCO-4DG1-NB-OCC-RES PIC 9(04). ! -848800 05 WS-4DCO-4DG1-SAUV-PAGE-AREA PIC X(198). ! -848900 05 WS-4DCO-4DG1-NB-PAGES PIC 9(02). ! -849000 05 WS-4DCO-4DG1-NO-RGM-GE-SEL PIC S9(03) COMP-3. ! -849100 05 WS-4DCO-4DG1-A-REF-SEL PIC X(04). ! -849200 05 FILLER PIC X(1582). ! -849300* ! -849400 03 WS-4DCO-4DG2 REDEFINES WS-4DCO-PROGRAM. ! -849500* ============ ! -849600* ! -849700* ====m========= ! -849800* ------------------------------------------------------ * ! -849900* COMMAREA : GESTION TC4DG20 * ! -850000* LONGUEUR : 1800 * ! -850100* PREFIXE : WS-4DCO-4DG2 * ! -850200* ------------------------------------------------------ * ! -850300 05 WS-4DCO-4DG2-DONNEES. ! -850400 ! -850500 10 WS-4DCO-4DG2-ZON-CLE. ! -850600 15 WS-4DCO-4DG2-NO-RGM-GE PIC 9(03). ! -850700* NUMERO REGIME ! -850800 15 WS-4DCO-4DG2-A-REF PIC 9(04). ! -850900* ANNEE REFERENCE ! -851000 15 WS-4DCO-4DG2-SAV-ACTION PIC X. ! -851100 88 4DG2-CREAT VALUE 'C'. ! -851200 88 4DG2-MODIF VALUE 'M'. ! -851300 88 4DG2-SUPP VALUE 'A'. ! -851400 88 4DG2-VISU VALUE 'D'. ! -851500 ! -851600 10 WS-4DCO-4DG2-ZON-APLI. ! -851700 15 WS-4DCO-4DG2-LIB-RGM-GE PIC X(32). ! -851800* LIBELLE REGIME ! -851900 15 WS-4DCO-4DG2-TX-MIN-ITT-GAR ! -852000 PIC S9(2)V9(3) COMP-3. ! -852100* TAUX MINIMUM INT�R�TS GARANTIS ! -852200 15 WS-4DCO-4DG2-TX-PAB PIC S9(2)V9(3) COMP-3. ! -852300* TAUX PAB ! -852400 15 WS-4DCO-4DG2-TX-FRS-GTN-AN ! -852500 PIC S9(2)V9(3) COMP-3. ! -852600* TAUX FRAIS GESTION ! -852700 15 WS-4DCO-4DG2-TX-FRS-STD-ENT ! -852800 PIC S9(2)V9(3) COMP-3. ! -852900* TAUX FRAIS STANDARD ENTREE ! -853000 15 WS-4DCO-4DG2-TX-RBT-SR ! -853100 PIC S9(3)V9(4) COMP-3. ! -853200* TAUX REMBOURSEMENT ! -853300 15 WS-4DCO-4DG2-TX-FRS-ARBT ! -853400 PIC S9(3)V9(4) COMP-3. ! -853500* TAUX FRAIS ARBITRAGE ! -853600 15 WS-4DCO-4DG2-MT-FOF-GLB ! -853700 PIC S9(13)V9(2) COMP-3. ! -853800* MONTANT FORFAITAIRE FRAIS ARBITRAGE ! -853900 15 WS-4DCO-4DG2-MT-MIN-ARBT ! -854000 PIC S9(13)V9(2) COMP-3. ! -854100* MONTANT MINIMUM PAR ARBITRAGE ! -854200 15 WS-4DCO-4DG2-MT-MX-ARBT ! -854300 PIC S9(13)V9(2) COMP-3. ! -854400* MONTANT MAXIMUM PAR ARBITRAGE ! -854500* ! -854600 10 WS-4DCO-4DG2-ZON-SAV. ! -854700 15 WS-4DCO-4DG2-SV-LIB-RGM-GE PIC X(32). ! -854800* LIBELLE REGIME ! -854900 15 WS-4DCO-4DG2-SV-TX-MIN-ITT-GAR ! -855000 PIC S9(2)V9(3) COMP-3. ! -855100* TAUX MINIMUM INT�R�TS GARANTIS ! -855200 15 WS-4DCO-4DG2-SV-TX-PAB ! -855300 PIC S9(2)V9(3) COMP-3. ! -855400* TAUX PAB ! -855500 15 WS-4DCO-4DG2-SV-TX-FRS-GTN-AN ! -855600 PIC S9(2)V9(3) COMP-3. ! -855700* TAUX FRAIS GESTION ! -855800 15 WS-4DCO-4DG2-SV-TX-FRS-STD-ENT ! -855900 PIC S9(2)V9(3) COMP-3. ! -856000* TAUX FRAIS STANDARD ENTREE ! -856100 15 WS-4DCO-4DG2-SV-TX-RBT-SR ! -856200 PIC S9(3)V9(4) COMP-3. ! -856300* TAUX REMBOURSEMENT ! -856400 15 WS-4DCO-4DG2-SV-TX-FRS-ARBT ! -856500 PIC S9(3)V9(4) COMP-3. ! -856600* TAUX FRAIS ARBITRAGE ! -856700 15 WS-4DCO-4DG2-SV-MT-FOF-GLB ! -856800 PIC S9(13)V9(2) COMP-3. ! -856900* MONTANT FORFAITAIRE FRAIS ARBITRAGE ! -857000 15 WS-4DCO-4DG2-SV-MT-MIN-ARBT ! -857100 PIC S9(13)V9(2) COMP-3. ! -857200* MONTANT MINIMUM PAR ARBITRAGE ! -857300 15 WS-4DCO-4DG2-SV-MT-MX-ARBT ! -857400 PIC S9(13)V9(2) COMP-3. ! -857500* MONTANT MAXIMUM PAR ARBITRAGE ! -857600 ! -857700 10 WS-4DCO-4DG2-LIB-OPE PIC X(30). ! -857800* LIBELLE OPERATION ! -857900 ! -858000 05 FILLER PIC X(1610). ! -858100* ! -858200 03 WS-4DCO-4DTP REDEFINES WS-4DCO-PROGRAM. ! -858300* ============ ! -858400* ! -858500* ============== ! -858600* ------------------------------------------------------ * ! -858700* COMMAREA : GESTION TC4DTP0 * ! -858800* LONGUEUR : 1800 * ! -858900* PREFIXE : WS-4DCO-4DTP * ! -859000* ------------------------------------------------------ * ! -859100 05 WS-4DCO-4DTP-DONNEES. ! -859200 15 WS-4DCO-4DTP-TYPRD PIC S9(02) COMP-3. ! -859300* NUMERO TYPE DE PRODUIT ! -859400 15 WS-4DCO-4DTP-LIB-TYPRD PIC X(32). ! -859500* LIBELLE TYPE DE PRODUIT ! -859600 15 WS-4DCO-4DTP-NOGEN PIC X(03). ! -859700* NUMERO DE GENERATION ! -859800 15 WS-4DCO-4DTP-CDGAR PIC X(02). ! -859900* CODE DE GARANTIE ! -860000* ! -860100 05 WS-4DCO-4DTP-SAUV-PAGE-AREA PIC X(198). ! -860200 05 WS-4DCO-4DTP-SAV-ACTION PIC X. ! -860300 05 FILLER PIC X(1562). ! -860400* ! -860500 03 WS-4DCO-4DM1 REDEFINES WS-4DCO-PROGRAM. ! -860600* ============ ! -860700* ! -860800* ============== ! -860900* ------------------------------------------------------ * ! -861000* COMMAREA : GESTION TC4DM10 * ! -861100* PARAMETRAGE MS:LISTE RESULTATS PAR STOCK * ! -861200* LONGUEUR : 1800 * ! -861300* PREFIXE : WS-4DCO-4DM1 * ! -861400* ------------------------------------------------------ * ! -861500 05 WS-4DCO-4DM1-DONNEES. ! -861600 15 WS-4DCO-4DM1-DA-DBT-PR-1 PIC X(10). ! -861700* DATE DEBUT PROROGATION 1 ! -861800 15 WS-4DCO-4DM1-DA-DBT-PR-2 PIC X(10). ! -861900* DATE DEBUT PROROGATION 2 ! -862000 15 WS-4DCO-4DM1-DA-DBT-PR-3 PIC X(10). ! -862100* DATE DEBUT PROROGATION 3 ! -862200 15 WS-4DCO-4DM1-DA-FIN-PR-1 PIC X(10). ! -862300* DATE DEBUT PROROGATION 1 ! -862400 15 WS-4DCO-4DM1-DA-FIN-PR-2 PIC X(10). ! -862500* DATE DEBUT PROROGATION 2 ! -862600 15 WS-4DCO-4DM1-DA-FIN-PR-3 PIC X(10). ! -862700* DATE DEBUT PROROGATION 3 ! -862800 05 WS-4DCO-4DM1-SAUV-PAGE-AREA PIC X(198). ! -862900 05 WS-4DCO-4DM1-SAV-ACT1 PIC X. ! -863000 05 WS-4DCO-4DM1-SAV-ACT2 PIC X. ! -863100 05 WS-4DCO-4DM1-SAV-ACT3 PIC X. ! -863200 05 WS-4DCO-4DM1-OCCUR PIC X. ! -863300 88 WS-4DCO-4DM1-OCCUR-OK VALUE 'O'. ! -863400 88 WS-4DCO-4DM1-OCCUR-KO VALUE 'N'. ! -863500 05 FILLER PIC X(1538). ! -863600* ! -863700 03 WS-4DCO-4DM2 REDEFINES WS-4DCO-PROGRAM. ! -863800* ============ ! -863900* ! -864000* ============== ! -864100* ------------------------------------------------------ * ! -864200* COMMAREA : GESTION TC4DM20 * ! -864300* PARAMETRAGE MS:resultats regimes gestion * ! -864400* LONGUEUR : 1800 * ! -864500* PREFIXE : WS-4DCO-4DM2 * ! -864600* ------------------------------------------------------ * ! -864700 05 WS-4DCO-4DM2-DONNEES. ! -864800 15 WS-4DCO-4DM2-A-REF PIC X(4). ! -864900* ANNEE DE REFERENCE ! -865000 15 WS-4DCO-4DM2-LIB-RGM-GE PIC X(32). ! -865100* ANNEE DE REFERENCE ! -865200 15 WS-4DCO-4DM2-TX-MIN-ITT-GAR PIC S9(2)V9(3). ! -865300* TAUX MINIMUM INTERETS GARANTIS ! -865400 15 WS-4DCO-4DM2-TX-PAB PIC S9(2)V9(3). ! -865500* TAUX DE PAB ! -865600 15 WS-4DCO-4DM2-TX-FRS-GTN-AN PIC S9(2)V9(3). ! -865700* TAUX DE FRAIS DE GESTION ! -865800 15 WS-4DCO-4DM2-TX-FRS-STD-ENT PIC S9(2)V9(3). ! -865900* TAUX DE FRAIS STANDARD ! -866000 15 WS-4DCO-4DM2-TX-RBT-SR PIC S9(3)V9(4). ! -866100* TAUX DE REMBOURSEMENT ! -866200 15 WS-4DCO-4DM2-TX-FRS-ARBT PIC S9(3)V9(4). ! -866300* TAUX DE FRAIS D'ARBITRAGE ! -866400 15 WS-4DCO-4DM2-MT-FOF-GLB PIC S9(13)V9(2). ! -866500* MONTANT FORFAITAIRE FRAIS D'ARBITRAGE ! -866600 05 WS-4DCO-4DM2-SAUV-PAGE-AREA PIC X(198). ! -866700 05 WS-4DCO-4DM2-SAV-ACTION PIC X. ! -866800 05 FILLER PIC X(1516). ! -866900* ! -867000 03 WS-4DCO-4DM4 REDEFINES WS-4DCO-PROGRAM. ! -867100* ============ ! -867200* ! -867300* ============== ! -867400* ------------------------------------------------------ * ! -867500* COMMAREA : GESTION TC4DM40 * ! -867600* PARAMETRAGE MS: regimes fiscaux * ! -867700* LONGUEUR : 1800 * ! -867800* PREFIXE : WS-4DCO-4DM4 * ! -867900* ------------------------------------------------------ * ! -868000 05 WS-4DCO-4DM4-DONNEES. ! -868100 15 WS-4DCO-4DM4-NO-GEN-RF PIC 9(3). ! -868200* NUMERO DE GENERATION ! -868300 15 WS-4DCO-4DM4-CD-DRG-RF PIC X(2). ! -868400* CODE DEROGATION ! -868500 15 WS-4DCO-4DM4-DA-VAL-DBT-RF PIC X(10). ! -868600* DATE DEBUT REGIME ! -868700 15 WS-4DCO-4DM4-DA-FIN-VAL-RF PIC X(10). ! -868800* DATE FIN REGIME ! -868900 15 WS-4DCO-4DM4-LIB-RGM-FI PIC X(32). ! -869000* LIBELLE REGIME ! -869100 15 WS-4DCO-4DM4-TX-PLV-SOC PIC S9(3)V9(8). ! -869200* TAUX PRELEVEMENT SOCIAL ! -869300 15 WS-4DCO-4DM4-LIB-TY-TX-SO PIC X(32). ! -869400* LIBELLE TYPE DE TAUX ! -869500 15 WS-4DCO-4DM4-TX-CRDS PIC S9(2)V9(3). ! -869600* TAUX CRDS ! -869700 15 WS-4DCO-4DM4-LIB-TY-TX-CR PIC X(32). ! -869800* LIBELLE TYPE DE TAUX ! -869900 15 WS-4DCO-4DM4-TX-CTB PIC S9(2)V9(3). ! -870000* TAUX CTB ! -870100 15 WS-4DCO-4DM4-LIB-TX-CTB PIC X(32). ! -870200* LIBELLE TYPE DE TAUX ! -870300 15 WS-4DCO-4DM4-TX-CSG PIC S9(2)V9(3). ! -870400* TAUX CSG ! -870500 15 WS-4DCO-4DM4-LIB-TY-TX-CS PIC X(32). ! -870600* LIBELLE TYPE DE TAUX ! -870700 15 WS-4DCO-4DM4-TX-CSG-97 PIC S9(2)V9(3). ! -870800* TAUX CSG 97 ! -870900 15 WS-4DCO-4DM4-LIB-TY-TX-97 PIC X(32). ! -871000* LIBELLE TYPE DE TAUX CSG 97 ! -871100 15 WS-4DCO-4DM4-TX-CSG-98 PIC S9(2)V9(3). ! -871200* TAUX CSG 98 ! -871300 15 WS-4DCO-4DM4-LIB-TY-TX-98 PIC X(32). ! -871400* LIBELLE TYPE DE TAUX CSG 98 ! -871500 15 WS-4DCO-4DM4-TX-PLV-LBL-1 PIC S9(2)V9(3). ! -871600* TAUX PRELEVEMENT LIBERATOIRE 1 ! -871700 15 WS-4DCO-4DM4-LIB-TY-TX-1 PIC X(32). ! -871800* LIBELLE TYPE DE TAUX 1 ! -871900 15 WS-4DCO-4DM4-DUR-FIS-1 PIC 9(4). ! -872000* DUREE FISCALE 1 ! -872100 15 WS-4DCO-4DM4-TX-PLV-LBL-2 PIC S9(2)V9(3). ! -872200* TAUX PRELEVEMENT LIBERATOIRE 2 ! -872300 15 WS-4DCO-4DM4-LIB-TY-TX-2 PIC X(32). ! -872400* LIBELLE TYPE DE TAUX 2 ! -872500 15 WS-4DCO-4DM4-DUR-FIS-2 PIC 9(4). ! -872600* DUREE FISCALE 2 ! -872700 15 WS-4DCO-4DM4-TX-PLV-LBL-3 PIC S9(2)V9(3). ! -872800* TAUX PRELEVEMENT LIBERATOIRE 3 ! -872900 15 WS-4DCO-4DM4-LIB-TY-TX-3 PIC X(32). ! -873000* LIBELLE TYPE DE TAUX 3 ! -873100 15 WS-4DCO-4DM4-DUR-FIS-3 PIC 9(4). ! -873200* DUREE FISCALE 3 ! -873300 15 WS-4DCO-4DM4-TX-PLV-LBL-4 PIC S9(2)V9(3). ! -873400* TAUX PRELEVEMENT LIBERATOIRE 4 ! -873500 15 WS-4DCO-4DM4-LIB-TY-TX-4 PIC X(32). ! -873600* LIBELLE TYPE DE TAUX 4 ! -873700 15 WS-4DCO-4DM4-DUR-FIS-4 PIC 9(4). ! -873800* DUREE FISCALE 4 ! -873900 15 WS-4DCO-4DM4-TX-PLV-LBL-5 PIC S9(2)V9(3). ! -874000* TAUX PRELEVEMENT LIBERATOIRE 5 ! -874100 15 WS-4DCO-4DM4-LIB-TY-TX-5 PIC X(32). ! -874200* LIBELLE TYPE DE TAUX 5 ! -874300 15 WS-4DCO-4DM4-DUR-FIS-5 PIC 9(4). ! -874400* DUREE FISCALE 5 ! -874500 05 WS-4DCO-4DM4-SAUV-PAGE-AREA PIC X(198). ! -874600 05 WS-4DCO-4DM4-SAV-ACTION PIC X. ! -874700 05 FILLER PIC X(1109). ! -874800* ! -874900 03 WS-4DCO-4DF1 REDEFINES WS-4DCO-PROGRAM. ! -875000* ============ ! -875100* ! -875200* ============== ! -875300* ------------------------------------------------------ * ! -875400* COMMAREA : GESTION TC4DF10 * ! -875500* LONGUEUR : 1800 * ! -875600* PREFIXE : WS-4DCO-4DF1 * ! -875700* ------------------------------------------------------ * ! -875800 05 WS-4DCO-4DF1-ZON-CLE. ! -875900 07 WS-4DCO-4DF1-DONNEES. ! -876000 10 WS-4DCO-4DF1-NO-RGM-FI PIC 9(03). ! -876100 10 WS-4DCO-4DF1-NO-GEN-RF PIC 9(03). ! -876200 10 WS-4DCO-4DF1-CD-DRG-RF PIC X(02). ! -876300 07 WS-4DCO-4DF1-ACTIONS. ! -876400* TYPE D'ACTION SUR L'ECRAN MC4DF10 ! -876500 10 WS-4DCO-4DF1-SAV-ACTION PIC X. ! -876600 88 4DF1-CREAT VALUE 'C'. ! -876700 88 4DF1-MODIF VALUE 'M'. ! -876800 88 4DF1-SUPP VALUE 'A'. ! -876900 88 4DF1-VISU VALUE 'D'. ! -877000* ! -877100 05 WS-4DCO-4DF1-NB-OCC-RES PIC 9(04). ! -877200 05 WS-4DCO-4DF1-SAUV-PAGE-AREA PIC X(198). ! -877300 05 WS-4DCO-4DF1-NB-PAGES PIC 9(02). ! -877400 05 FILLER PIC X(1587). ! -877500* ! -877600* ! -877700 03 WS-4DCO-4DF2 REDEFINES WS-4DCO-PROGRAM. ! -877800* ============ ! -877900* ! -878000* ============== ! -878100* ------------------------------------------------------ * ! -878200* COMMAREA : GESTION TC4DF20 * ! -878300* LONGUEUR : 1800 * ! -878400* PREFIXE : WS-4DCO-4DF2 * ! -878500* ------------------------------------------------------ * ! -878600 05 WS-4DCO-4DF2-ZON-CLE. ! -878700 07 WS-4DCO-4DF2-SAISIES. ! -878800 10 WS-4DCO-4DF2-NO-RGM-FI PIC 9(03). ! -878900 10 WS-4DCO-4DF2-NO-GEN-RF PIC 9(03). ! -879000 10 WS-4DCO-4DF2-CD-DRG-RF PIC X(02). ! -879100 07 WS-4DCO-4DF2-ACTIONS. ! -879200* TYPE D'ACTION SUR L'ECRAN MC4DF10 ! -879300 10 WS-4DCO-4DF2-SAV-ACTION PIC X. ! -879400 88 4DF2-CREAT VALUE 'C'. ! -879500 88 4DF2-MODIF VALUE 'M'. ! -879600 88 4DF2-SUPP VALUE 'A'. ! -879700 88 4DF2-VISU VALUE 'D'. ! -879800 05 WS-4DCO-4DF2-DONNEES. ! -879900 10 WS-4DCO-4DF2-DA-VAL-DBT-RF PIC X(10). ! -880000 10 WS-4DCO-4DF2-DA-FIN-VAL-RF PIC X(10). ! -880100 10 WS-4DCO-4DF2-LIB-RGM-FI PIC X(32). ! -880200 10 WS-4DCO-4DF2-TX-PLV-SOC PIC S9(3)V9(8) COMP-3. ! -880300 10 WS-4DCO-4DF2-LIB-TY-TX-SO PIC X(32). ! -880400 10 WS-4DCO-4DF2-TX-CRDS PIC S9(3)V9(8) COMP-3. ! -880500 10 WS-4DCO-4DF2-LIB-TY-TX-CR PIC X(32). ! -880600 10 WS-4DCO-4DF2-TX-CSG PIC S9(3)V9(8) COMP-3. ! -880700 10 WS-4DCO-4DF2-LIB-TY-TX-CS PIC X(32). ! -880800 10 WS-4DCO-4DF2-TX-CSG-97 PIC S9(3)V9(8) COMP-3. ! -880900 10 WS-4DCO-4DF2-LIB-TY-TX-97 PIC X(32). ! -881000 10 WS-4DCO-4DF2-TX-CSG-98 PIC S9(3)V9(8) COMP-3. ! -881100 10 WS-4DCO-4DF2-LIB-TY-TX-98 PIC X(32). ! -881200 10 WS-4DCO-4DF2-TX-CTB-AD PIC S9(3)V9(8) COMP-3. ! -881300 10 WS-4DCO-4DF2-LIB-TY-TX-AD PIC X(32). ! -881200 10 WS-4DCO-4DF2-TX-RSA PIC S9(3)V9(8) COMP-3. ! -881300 10 WS-4DCO-4DF2-LIB-TY-TX-RSA PIC X(32). ! -881400 10 WS-4DCO-4DF2-TX-PLV-LBL-1 PIC S9(3)V9(8) COMP-3. ! -881500 10 WS-4DCO-4DF2-LIB-TY-TX-1 PIC X(32). ! -881600 10 WS-4DCO-4DF2-DUR-FIS-1 PIC S9(4). ! -881700 10 WS-4DCO-4DF2-TX-PLV-LBL-2 PIC S9(3)V9(8) COMP-3. ! -881800 10 WS-4DCO-4DF2-LIB-TY-TX-2 PIC X(32). ! -881900 10 WS-4DCO-4DF2-DUR-FIS-2 PIC S9(4). ! -882000 10 WS-4DCO-4DF2-TX-PLV-LBL-3 PIC S9(3)V9(8) COMP-3. ! -882100 10 WS-4DCO-4DF2-LIB-TY-TX-3 PIC X(32). ! -882200 10 WS-4DCO-4DF2-DUR-FIS-3 PIC S9(4). ! -882300 10 WS-4DCO-4DF2-TX-PLV-LBL-4 PIC S9(3)V9(8) COMP-3. ! -882400 10 WS-4DCO-4DF2-LIB-TY-TX-4 PIC X(32). ! -882500 10 WS-4DCO-4DF2-DUR-FIS-4 PIC S9(4). ! -882600 10 WS-4DCO-4DF2-TX-PLV-LBL-5 PIC S9(3)V9(8) COMP-3. ! -882700 10 WS-4DCO-4DF2-LIB-TY-TX-5 PIC X(32). ! -882800 10 WS-4DCO-4DF2-DUR-FIS-5 PIC S9(4). ! -882900 05 WS-4DCO-4DF2-LIB-OPE PIC X(30). ! -883000 05 WS-4DCO-4DF2-SV-DONNEES. ! -883100 10 WS-4DCO-4DF2-SV-NO-RGM-FI PIC 9(03). ! -883200 10 WS-4DCO-4DF2-SV-NO-GEN-RF PIC 9(03). ! -883300 10 WS-4DCO-4DF2-SV-CD-DRG-RF PIC X(02). ! -883400 10 WS-4DCO-4DF2-SV-DA-VAL-DBT-RF PIC X(10). ! -883500 10 WS-4DCO-4DF2-SV-DA-FIN-VAL-RF PIC X(10). ! -883600 10 WS-4DCO-4DF2-SV-LIB-RGM-FI PIC X(32). ! -883700 10 WS-4DCO-4DF2-SV-TX-PLV-SOC PIC S9(3)V9(8) COMP-3. ! -883800 10 WS-4DCO-4DF2-SV-LIB-TY-TX-SO PIC X(32). ! -883900 10 WS-4DCO-4DF2-SV-TX-CRDS PIC S9(3)V9(8) COMP-3. ! -884000 10 WS-4DCO-4DF2-SV-LIB-TY-TX-CR PIC X(32). ! -884100 10 WS-4DCO-4DF2-SV-TX-CSG PIC S9(3)V9(8) COMP-3. ! -884200 10 WS-4DCO-4DF2-SV-LIB-TY-TX-CS PIC X(32). ! -884300 10 WS-4DCO-4DF2-SV-TX-CSG-97 PIC S9(3)V9(8) COMP-3. ! -884400 10 WS-4DCO-4DF2-SV-LIB-TY-TX-97 PIC X(32). ! -884500 10 WS-4DCO-4DF2-SV-TX-CSG-98 PIC S9(3)V9(8) COMP-3. ! -884600 10 WS-4DCO-4DF2-SV-LIB-TY-TX-98 PIC X(32). ! -884700 10 WS-4DCO-4DF2-SV-TX-CTB-AD PIC S9(3)V9(8) COMP-3. ! -884800 10 WS-4DCO-4DF2-SV-LIB-TY-TX-AD PIC X(32). ! -884700 10 WS-4DCO-4DF2-SV-TX-RSA PIC S9(3)V9(8) COMP-3. ! -884800 10 WS-4DCO-4DF2-SV-LIB-TY-TX-RSA PIC X(32). ! -884900 10 WS-4DCO-4DF2-SV-TX-PLV-LBL-1 PIC S9(3)V9(8) COMP-3. ! -885000 10 WS-4DCO-4DF2-SV-LIB-TY-TX-1 PIC X(32). ! -885100 10 WS-4DCO-4DF2-SV-DUR-FIS-1 PIC S9(4). ! -885200 10 WS-4DCO-4DF2-SV-TX-PLV-LBL-2 PIC S9(3)V9(8) COMP-3. ! -885300 10 WS-4DCO-4DF2-SV-LIB-TY-TX-2 PIC X(32). ! -885400 10 WS-4DCO-4DF2-SV-DUR-FIS-2 PIC S9(4). ! -885500 10 WS-4DCO-4DF2-SV-TX-PLV-LBL-3 PIC S9(3)V9(8) COMP-3. ! -885600 10 WS-4DCO-4DF2-SV-LIB-TY-TX-3 PIC X(32). ! -885700 10 WS-4DCO-4DF2-SV-DUR-FIS-3 PIC S9(4). ! -885800 10 WS-4DCO-4DF2-SV-TX-PLV-LBL-4 PIC S9(3)V9(8) COMP-3. ! -885900 10 WS-4DCO-4DF2-SV-LIB-TY-TX-4 PIC X(32). ! -886000 10 WS-4DCO-4DF2-SV-DUR-FIS-4 PIC S9(4). ! -886100 10 WS-4DCO-4DF2-SV-TX-PLV-LBL-5 PIC S9(3)V9(8) COMP-3. ! -886200 10 WS-4DCO-4DF2-SV-LIB-TY-TX-5 PIC X(32). ! -886300 10 WS-4DCO-4DF2-SV-DUR-FIS-5 PIC S9(4). ! -882900 05 FILLER PIC X(697). ! -886400* ! -886500 03 WS-4DCO-BLOCNOTE REDEFINES WS-4DCO-PROGRAM. ! -886600* ============ ! -886700* ! -886800* ============== ! -886900* ------------------------------------------------------ * ! -887000* COMMAREA : GESTION TC4DB60 -TC4DB70 * ! -887100* LONGUEUR : 1800 * ! -887200* PREFIXE : WS-4DCO-4DB6 * ! -887300* ------------------------------------------------------ * ! -887400 05 WS-4DCO-4DB6-CMT-RSC PIC X(79). ! -887500 05 WS-4DCO-4DB6-NAME-TS PIC X(08). ! -887600 05 WS-4DCO-4DB6-NO-ITEM PIC 9(04) COMP. ! -887700 05 WS-4DCO-4DB6-NB-ITEM PIC 9(04) COMP. ! -887800 05 WS-4DCO-4DB6-NB-OCC-RES PIC 9(04). ! -887900 05 WS-4DCO-4DB6-SAUV-PAGE-AREA PIC X(198). ! -888000 05 WS-4DCO-4DB6-NB-PAGES PIC 9(02). ! -888100 05 WS-4DCO-4DB6-IDC-OCC-SPL PIC X(01). ! -888200 05 WS-4DCO-4DB6-NO-SEQ-HIS PIC S9(07) COMP-3. ! -888300* TYPE D'ACTION SUR ECRANS MC4DB60 - MC4DB70 ! -888400 05 WS-4DCO-4DB6-TOP-ACTION PIC X. ! -888500 88 4DB6-CREAT VALUE 'C'. ! -888600 88 4DB6-MODIF VALUE 'M'. ! -888700 88 4DB6-SUPP VALUE 'A'. ! -888800 88 4DB6-VISU VALUE 'D'. ! -888900 05 FILLER PIC X(1306). ! -889000* ! -889100 03 WS-4DCO-4ET1 REDEFINES WS-4DCO-PROGRAM. ! -889200* ============ ! -889300* ! -889400* ============== ! -889500* ------------------------------------------------------ * ! -889600* COMMAREA : GESTION TC4ET10 * ! -889700* LONGUEUR : 1800 * ! -889800* PREFIXE : WS-4DCO-4ET1 * ! -889900* ------------------------------------------------------ * ! -890000 05 WS-4DCO-4ET1-PAGE-AREA-START PIC X(80). ! -890100* SAUVEGARDE DE L'ECRAN DE LISTE ! -890200 05 WS-4DCO-4ET1-LIB-EVE-TY PIC X(32). ! -890300* LIBELLE EVENEMENT ! -890400 05 WS-4DCO-4ET1-NO-SEQ-DO PIC 9(03). ! -890500* NUMERO SEQUENTIELLE DOCUMENT ! -890600 05 WS-4DCO-4ET1-IDC-DUP PIC X(01). ! -890700* INDICATEUR DUPLICATA ! -890800 05 WS-4DCO-4ET1-IDC-NV-CD PIC X(01). ! -890900* INDICATEUR CODE BARRE ! -891000 05 WS-4DCO-4ET1-IDC-REL-TT PIC X(01). ! -891100* INDICATEUR RELANCE ! -891200 05 WS-4DCO-4ET1-DA-CRE PIC X(08). ! -891300* DATE CREATION DOCUMENT ! -891400 05 WS-4DCO-4ET1-HEU-CRE PIC X(06). ! -891500* HEURE CREATION DOCUMENT ! -891600 05 WS-4DCO-4ET1-CD-EVE-TY PIC X(06). ! -891700* CODE EVENEMENT TYPE ! -891800 05 WS-4DCO-4ET1-NB-PG-DOC-REDI PIC 9(04) COMP. ! -891900* NOMBRE DE PAGE EDITION ! -892000 05 WS-4DCO-4ET1-CD-DEL PIC X(02). ! -892100* CODE DELAI ! -892200 05 WS-4DCO-4ET1-CD-EVE-TY-CF PIC X(06). ! -892300* CODE EVENEMENT TYPE CONFIRMATION ! -892400 05 WS-4DCO-4ET1-CONF-FORCEE PIC X(01). ! -892500* CODE EVENEMENT TYPE CONFIRMATION ! -892600 05 FILLER PIC X(1651). ! -892700* ! -892800 03 WS-4DCO-4DA4 REDEFINES WS-4DCO-PROGRAM. ! -892900* ============ ! -893000* ! -893100* ============== ! -893200* ------------------------------------------------------ * ! -893300* COMMAREA : GESTION DEROGATION PAR PROFIL ET TRANCHES * ! -893400* LONGUEUR : 1800 * ! -893500* PREFIXE : WS-4DCO-4DA4- * ! -893600* ------------------------------------------------------ * ! -893700* AFFICHAGE ENTETE (TC4DA40) ! -893800 05 WS-4DCO-4DA4-CD-PTN-TT PIC X(5). ! -893900 05 WS-4DCO-4DA4-NO-PTN-TT PIC 9(3) COMP-3. ! -894000 05 WS-4DCO-4DA4-LIB-PTN PIC X(32). ! -894100 05 WS-4DCO-4DA4-CD-PRF PIC X(3). ! -894200 05 WS-4DCO-4DA4-LIB-PRF PIC X(32). ! -894300 05 WS-4DCO-4DA4-CD-PRD1 PIC X(2). ! -894400 05 WS-4DCO-4DA4-NO-PRD-TT PIC 9(3) COMP-3. ! -894500 05 WS-4DCO-4DA4-CD-PRD-TT PIC X(2). ! -894600 05 WS-4DCO-4DA4-LIB-ACT PIC X(79). ! -894700 05 WS-4DCO-4DA4-TX-STD PIC S9(2)V9(5). ! -894800 05 WS-4DCO-4DA4-TY-TX PIC X(1). ! -894900 05 WS-4DCO-4DA4-LIB-TX PIC X(32). ! -895000 05 WS-4DCO-4DA4-LIB-PRD1 PIC X(32). ! -895100* ZONE DE SAUVEGARDE DU BORDEREAU ENTETE (CAS 2) ! -895200 05 WS-4DCO-4DA4-CD-PTN-TT-S PIC X(5). ! -895300 05 WS-4DCO-4DA4-NO-PTN-TT-S PIC 9(3) COMP-3. ! -895400 05 WS-4DCO-4DA4-LIB-PTN-S PIC X(32). ! -895500 05 WS-4DCO-4DA4-CD-PRF-S PIC X(3). ! -895600 05 WS-4DCO-4DA4-LIB-PRF-S PIC X(32). ! -895700 05 WS-4DCO-4DA4-CD-PRD1-S PIC X(2). ! -895800 05 WS-4DCO-4DA4-NO-PRD-TT-S PIC 9(3) COMP-3. ! -895900 05 WS-4DCO-4DA4-TX-STD-S PIC S9(2)V9(5). ! -896000 05 WS-4DCO-4DA4-TY-TX-S PIC X(1). ! -896100 05 WS-4DCO-4DA4-LIB-TX-S PIC X(32). ! -896200 05 WS-4DCO-4DA4-LIB-PRD1-S PIC X(32). ! -896300 05 WS-4DCO-4DA4-IND-PAGE PIC X(1). ! -896400 05 WS-4DCO-4DA4-IND PIC X(1). ! -896500* ZONE DEDIEE A LA LISTE (TC4DA40) ! -896600 05 WS-4DCO-4DA4-NB-PAGES PIC 9(2). ! -896700 05 WS-4DCO-4DA4-NO-PAGES PIC 9(2). ! -896800 05 WS-4DCO-4DA4-PAGE-AREA PIC X(198). ! -896900 05 WS-4DCO-4DA4-CD-ACTION PIC X(1). ! -897000* ZONE DEDIEE A LA CREATION (TC4DA50) ! -897100 05 WS-4DCO-4DA4-PFL-CRE PIC X(3). ! -897200 05 WS-4DCO-4DA4-PRD-CRE PIC X(2). ! -897300 05 WS-4DCO-4DA4-TX-STD-CRE PIC S9(2)V9(5). ! -897400 05 WS-4DCO-4DA4-TY-CRE PIC X(1). ! -897500* ZONE DEDIEE A LA SAUVEGARDE DE L'ENTETE ! -897600 05 WS-4DCO-4DA4-SVG-PTN PIC X(5). ! -897700 05 WS-4DCO-4DA4-SVG-PFL PIC X(3). ! -897800 05 WS-4DCO-4DA4-SVG-PRD PIC X(2). ! -897900 05 WS-4DCO-4DA4-SVG-STD PIC S9(2)V9(5). ! -898000 05 WS-4DCO-4DA4-SVG-TY PIC X(1). ! -898100* ZONE DEDIEE AUX DIVERS INDICATEURS (TOUS) ! -898200 05 WS-4DCO-4DA4-INDICE PIC 9(1). ! -898300 05 WS-4DCO-4DA4-CD-INDICATEUR PIC 9(1). ! -898400 05 WS-4DCO-4DA4-CD-INDICATEUR2 PIC 9(1). ! -898500 05 WS-4DCO-4DA4-CD-INDICATEUR3 PIC 9(1). ! -898600* ZONE DEDIEE A L'AIDE A LA CREATION (TC4DA60) ! -898700 05 WS-4DCO-4DA4-CD-PTN-AIDE PIC X(5). ! -898800 05 WS-4DCO-4DA4-CD-PFL-AIDE PIC X(3). ! -898900 05 WS-4DCO-4DA4-CD-PRD-AIDE PIC X(2). ! -899000 05 WS-4DCO-4DA4-TY-TX-AIDE PIC X(1). ! -899100 05 WS-4DCO-4DA4-TX-STD-AIDE PIC S9(2)V9(5). ! -899200* AFFICHAGE DU % (TC4DA50) ! -899300 05 WS-4DCO-4DA4-AFFICHAGE OCCURS 12. ! -899400 10 WS-4DCO-4DA4-SIGLE PIC X(1). ! -899500* SAUVEGARDE DES TRANCHES CREEES (TC4DA50) ! -899600 05 WS-4DCO-4DA4-SVG OCCURS 12. ! -899700 10 WS-4DCO-4DA4-SVG-TX-DRD PIC S9(3)V9(4). ! -899800 10 WS-4DCO-4DA4-SVG-MT-MIN PIC S9(13)V99 COMP-3. ! -899900 10 WS-4DCO-4DA4-SVG-MT-MAX PIC S9(13)V99 COMP-3. ! -900000* SAUVEGARDE DES TRANCHES (TC4DA50) ! -900100 05 WS-4DCO-4DA4-TRANCHE OCCURS 12. ! -900200 10 WS-4DCO-4DA4-TX-TCH-DRG PIC S9(3)V9(4) COMP-3. ! -900300 10 WS-4DCO-4DA4-MIN-TCH-DRG PIC S9(13)V99 COMP-3. ! -900400 10 WS-4DCO-4DA4-MAX-TCH-DRG PIC S9(13)V99 COMP-3. ! -900500* SAUVEGARDE DE LA CLE DE REPOSITIONNEMENT (TC4DA40) ! -900600 05 WS-4DCO-4DA4-SV-CLE-PRD1 PIC 9(3) COMP-3. ! -900700 05 WS-4DCO-4DA4-CLE-POS. ! -900800 10 WS-4DCO-4DA4-SV-CLE-PRF PIC X(3). ! -900900 10 WS-4DCO-4DA4-SV-CLE-PRD PIC X(2). ! -901000 10 WS-4DCO-4DA4-SV-CLE-TYTX PIC X(1). ! -901100 10 WS-4DCO-4DA4-SV-CLE-TXSTD PIC 9(2)V9(5). ! -901200* APPLICATION HABILITATION (PARTIE COMMUNE) (TC98720) ! -901300 05 WS-4DCO-HABI-4DA4. ! -901400* LONGUEUR : 0400 ! -901500 10 WS-4DCO-4AD4-CD-PTN-DLGAIRE PIC X(05). ! -901600 10 WS-4DCO-4DA4-LA-PTN-DLGAIRE PIC X(16). ! -901700 10 WS-4DCO-4DA4-CD-PFL-DLGAIRE PIC X(03). ! -901800 10 WS-4DCO-4DA4-LA-PFL-DLGAIRE PIC X(16). ! -901900 10 WS-4DCO-4DA4-CD-IDT-DLGAIRE PIC X(08). ! -902000 10 WS-4DCO-4DA4-CD-PTN-DLGUE PIC X(05). ! -902100 10 WS-4DCO-4DA4-LA-PTN-DLGUE PIC X(16). ! -902200 10 WS-4DCO-4DA4-CD-PFL-DLGUE PIC X(03). ! -902300 10 WS-4DCO-4DA4-LA-PFL-DLGUE PIC X(16). ! -902400 10 WS-4DCO-4DA4-CD-IDT-DLGUE PIC X(08). ! -902500 10 WS-4DCO-4DA4-IDC-MAJ PIC X(01). ! -902600 10 WS-4DCO-4DA4-LIB-PTN-DLGAIRE PIC X(32). ! -902700 10 WS-4DCO-4DA4-CD-TY-PFL-DLGUE PIC X(01). ! -902800 10 WS-4DCO-4DA4-NO-PTN-DLGAIRE PIC 9(03). ! -902900 10 WS-4DCO-4DA4-NO-PTN-DLGUE PIC 9(03). ! -903000 10 WS-4DCO-4DA4-IDC-IDT-ITN PIC X(1). ! -903100 10 WS-4DCO-4DA4-NIV-DRG PIC 9(3). ! -903200 10 WS-4DCO-4DA4-NO-TEL-SL PIC X(11). ! -903300 10 WS-4DCO-4DA4-NO-TEL-DM PIC X(11). ! -903400 10 WS-4DCO-4DA4-NO-FAX PIC X(12). ! -903500 10 WS-4DCO-4DA4-CD-PROV PIC X(03). ! -903600 88 ADMINISTRATEUR VALUE 'ADM'. ! -903700 88 DELEGUE VALUE 'DLG'. ! -903800 88 IDENTIFICATEUR VALUE 'IDT'. ! -903900 10 FILLER PIC X(223). ! -904000* LIBELLE DE L'ACTION EN COURS (C4DA50) ! -904100 05 WS-4DCO-4DA4-LIB-TITRE PIC X(012). ! -904200* TAUX TRANCHE DEROGATOIRE MAXIMUM (C4DA50) ! -904300 05 WS-4DCO-4DA4-TRANCE-MAXI OCCURS 12. ! -904400 10 WS-4DCO-4DA4-TX-TCH-DRG-MX PIC S9(3)V9(4) COMP-3. ! -904500* FILLER ! -904600 05 FILLER PIC X(038). ! -904700* ! -904800 03 WS-4DCO-4ERIA REDEFINES WS-4DCO-PROGRAM. ! -904900* ============ ! -905000* ! -905100* ============== ! -905200* ------------------------------------------------------ * ! -905300* COMMAREA : GESTION DES RELEVES D'INFO ANNUELLE * ! -905400* LONGUEUR : 1800 * ! -905500* PREFIXE : WS-4DCO-4ERIA * ! -905600* ------------------------------------------------------ * ! -905700 05 WS-4DCO-4ERIA-NUM-CPT PIC X(15). ! -905800 05 WS-4DCO-4ERIA-NOM-PATRO PIC X(32). ! -905900 05 WS-4DCO-4ERIA-LIB-PFL PIC X(32). ! -906000 05 WS-4DCO-4ERIA-SAV-ACTION PIC X(01). ! -906100 05 WS-4DCO-4ERIA-CD-ACTION PIC X(01). ! -906200 05 WS-4DCO-4ERIA-A-REF-RLV-CPT PIC 9(04). ! -906300 05 WS-4DCO-4ERIA-CD-PTN PIC X(05). ! -906400 05 WS-4DCO-4ERIA-PERIODE PIC X(01). ! -906500 88 RIA-ANNEE-1 VALUE '1'. ! -906600 88 RIA-ANNEE-2 VALUE '2'. ! -906700 05 FILLER PIC X(44). ! -906800 05 WS-4DCO-4E13. ! -906900 10 WS-4DCO-4E13-LIB-TITRE PIC X(30). ! -907000 10 WS-4DCO-4E13-NB-PAGES PIC 9(02). ! -907100 10 WS-4DCO-4E13-NO-PAGES PIC 9(02). ! -907200 10 WS-4DCO-4E13-PAGE-AREA PIC X(198). ! -907300 10 WS-4DCO-4E13-LIB-ACT PIC X(78). ! -907400 10 WS-4DCO-4E13-UC-CRE PIC X(16). ! -907500 10 WS-4DCO-4E13-DAT-CRE PIC S9(10)V9(04). ! -907600 10 WS-4DCO-4E13-ACH-CRE PIC S9(10)V9(04). ! -907700 10 WS-4DCO-4E13-VEN-CRE PIC S9(10)V9(04). ! -907800 10 WS-4DCO-4E13-FAG-CRE PIC S9(10)V9(04). ! -907900 10 WS-4DCO-4E13-IDC-MODIF PIC 9(1). ! -908000 10 WS-4DCO-4E13-CPN-CRE PIC S9(10)V9(04). ! -908100 10 FILLER PIC X(85). ! -908200 05 WS-4DCO-4E12. ! -908300 10 WS-4DCO-4E12-LIB-TITRE PIC X(37). ! -908400 10 FILLER PIC X(63). ! -908500 05 WS-4DCO-4E16. ! -908600 10 WS-4DCO-4E16-NB-PAGES PIC 9(02). ! -908700 10 WS-4DCO-4E16-NO-PAGES PIC 9(02). ! -908800 10 WS-4DCO-4E16-PAGE-AREA PIC X(198). ! -908900 10 WS-4DCO-4E16-NO-PART PIC X(03). ! -909000 10 WS-4DCO-4E16-NO-CTR PIC X(15). ! -909100 10 FILLER PIC X(30). ! -909200 05 WS-4DCO-4E14. ! -909300 10 WS-4DCO-4E14-NB-PAGES PIC 9(02). ! -909400 10 WS-4DCO-4E14-NO-PAGES PIC 9(02). ! -909500 10 WS-4DCO-4E14-PAGE-AREA PIC X(198). ! -909600 10 FILLER PIC X(48). ! -909700 05 WS-4DCO-4E15. ! -909800 10 WS-4DCO-4E15-IND-MODIF PIC X(01). ! -909900 10 WS-4DCO-4E15-IND-PAGE PIC 9(01). ! -910000 10 WS-4DCO-4E15-LIB-TITRE PIC X(37). ! -910100 10 WS-4DCO-4E15-LIB-ACTION PIC X(40). ! -910200 10 WS-4DCO-4E15-PAGE-AREA PIC X(198). ! -910300 10 WS-4DCO-4E15-NB-PAGES PIC 9(02). ! -910400 10 WS-4DCO-4E15-CD-ACTION PIC X(01). ! -910500 10 WS-4DCO-4E15-SVG-INDICE PIC 9(03). ! -910600 10 WS-4DCO-4E15-LIBOPEC PIC X(32). ! -910700 10 WS-4DCO-4E15-DA-EFF-C PIC X(10). ! -910800 10 WS-4DCO-4E15-DEBITC PIC X(14). ! -910900 10 WS-4DCO-4E15-CREDITC PIC X(14). ! -911000 10 FILLER PIC X(07). ! -911100 05 WS-4DCO-4E18. ! -911200 10 WS-4DCO-4E18-LIB-TITRE PIC X(42). ! -911300 10 FILLER PIC X(08). ! -911400 05 FILLER PIC X(040). ! -911500* ! -911600 03 WS-4DCO-GLG REDEFINES WS-4DCO-PROGRAM. ! -911700* ================ ! -911800* ------------------------------------------------------ * ! -911900* COMMAREA : VERSEMENT SUITE A TRANSFERT C4GLG0 * ! -912000* LONGUEUR : 1800 * ! -912100* PREFIXE : WS-4DCO-MNC * ! -912200* ------------------------------------------------------ * ! -912300 ! -912400 05 WS-4DCO-GLG-CTR-ECHU PIC X(001). ! -912500* TOP INDICATEUR DE CONTRAT ECHU ! -912600 05 FILLER PIC X(1799). ! -912700* ZONES DISPONIBLES ! -912800* ------------------------------------------------------ * ! -912900* ! -913000 03 WS-4DCO-4FMB REDEFINES WS-4DCO-PROGRAM. ! -913100* ================ ! -913200* ------------------------------------------------------ * ! -913300* COMMAREA : RENTES DETAIL TC4FMB0 * ! -913400* LONGUEUR : 1800 * ! -913500* PREFIXE : WS-4DCO-4FMB * ! -913600* ------------------------------------------------------ * ! -913700 ! -913800 05 WS-4DCO-4FMB-CD-PTN PIC X(05). ! -913900* CODE PARTENAIRE ! -914000 05 WS-4DCO-4FMB-IDT-CTR PIC X(15). ! -914100* IDENTIFIANT CONTRAT ! -914200 05 WS-4DCO-4FMB-NOM-PRN PIC X(32). ! -914300* NOM PRENOM ! -914400 05 WS-4DCO-4FMB-DA-NAIS PIC X(08). ! -914500* DATE NAISSANCE ! -914600 05 WS-4DCO-4FMB-DA-DCS PIC X(08). ! -914700* DATE DECES ! -914800 05 WS-4DCO-4FMB-NO-RIB-RT PIC X(23). ! -914900* NUMERO RIB RENTE ! -915000 05 FILLER PIC X(1709). ! -915100* ZONES DISPONIBLES ! -915200* ------------------------------------------------------ * ! -915300* ! -915400 03 WS-4DCO-4DCR REDEFINES WS-4DCO-PROGRAM. ! -915500* ================ ! -915600* ------------------------------------------------------ * ! -915700* COMMAREA : CALCUL CLE RIB TC4DCR0 * ! -915800* LONGUEUR : 1800 * ! -915900* PREFIXE : WS-4DCO-4DCR * ! -916000* ------------------------------------------------------ * ! -916100 ! -916200 05 WS-4DCO-4DCR-CD-BANQUE PIC X(05). ! -916300* CODE BANQUE ! -916400 05 WS-4DCO-4DCR-CD-GUICHET PIC X(05). ! -916500* CODE GUICHET ! -916600 05 WS-4DCO-4DCR-NO-CPT-RIB PIC X(11). ! -916700* NUMERO COMPTE RIB ! -916800 05 WS-4DCO-4DCR-CLE-RIB PIC X(02). ! -916900* CLE RIB ! -917000 05 FILLER PIC X(1777). ! -917100* ZONES DISPONIBLES ! -917200* ------------------------------------------------------ * ! -917300 03 WS-4DCO-4FPT REDEFINES WS-4DCO-PROGRAM. ! -917400* ============ ! -917500* ! -917600* ============== ! -917700* ------------------------------------------------------ * ! -917800* GESTION SOUS MANDAT : LISTE PROFIL MANDAT DE GESTION * ! -917900* COMMAREA : GESTION TC4FPT0 * ! -918000* LONGUEUR : 1800 * ! -918100* PREFIXE : WS-4DCO-4FPT * ! -918200* ------------------------------------------------------ * ! -918300 05 WS-4DCO-4FPT-ZON-CLE. ! -918400 07 WS-4DCO-4FPT-DONNEES. ! -918500 10 WS-4DCO-4FPT-CD-PFL-MDT PIC X(03). ! -918600* TYPE D'ACTION SUR L'ECRAN MC4FPT0 ! -918700 07 WS-4DCO-4FPT-SAV-ACTION PIC X. ! -918800 88 4FPT-CREAT VALUE 'C'. ! -918900 88 4FPT-MODIF VALUE 'M'. ! -919000 88 4FPT-SUPP VALUE 'A'. ! -919100 88 4FPT-VISU VALUE 'D'. ! -919200* ! -919300 05 WS-4DCO-4FPT-DA-OUV-PFL PIC X(08). ! -919400 05 WS-4DCO-4FPT-DA-FIN-PFL PIC X(08). ! -919500 05 WS-4DCO-4FPT-NB-OCC-RES PIC 9(04). ! -919600 05 WS-4DCO-4FPT-SAUV-PAGE-AREA PIC X(198). ! -919700 05 WS-4DCO-4FPT-NB-PAGES PIC 9(02). ! -919800 05 WS-4DCO-4FPT-CD-PFL-MDT-SEL PIC X(03). ! -919900 05 FILLER PIC X(1573). ! -920000* ! -920100 03 WS-4DCO-4FPU REDEFINES WS-4DCO-PROGRAM. ! -920200* ============= ! -920300* ! -920400* ====m========= ! -920500* ------------------------------------------------------ * ! -920600* COMMAREA : GESTION sous mandat zoom, creation, supp * ! -920700* COMMAREA : TC4FPU0 * ! -920800* LONGUEUR : 1800 * ! -920900* PREFIXE : WS-4DCO-4FPT2 * ! -921000* ------------------------------------------------------ * ! -921100 05 WS-4DCO-4FPU-DONNEES. ! -921200 ! -921300 10 WS-4DCO-4FPU-ZON-CLE. ! -921400 15 WS-4DCO-4FPU-CD-PFL-MDT PIC X(03). ! -921500* CODE PROFIL MANDAT GESTION ! -921600 15 WS-4DCO-4FPU-SAV-ACTION PIC X. ! -921700 88 4FPU-CREAT VALUE 'C'. ! -921800 88 4FPU-MODIF VALUE 'M'. ! -921900 88 4FPU-SUPP VALUE 'A'. ! -922000 88 4FPU-VISU VALUE 'D'. ! -922100 ! -922200 10 WS-4DCO-4FPU-ZON-APLI. ! -922300 15 WS-4DCO-4FPU-LIB-PFL-MDT ! -922400 PIC X(32). ! -922500* LIBELL� LONG DU PROFIL ! -922600 15 WS-4DCO-4FPU-LA-PFL-MDT ! -922700 PIC X(20). ! -922800* LIBELL� COURT DU PROFIL ! -922900 15 WS-4DCO-4FPU-DA-OUV-PFL ! -923000 PIC X(10). ! -923100* DATE OUVERTURE ! -923200 15 WS-4DCO-4FPU-DA-FIN-PFL ! -923300 PIC X(10). ! -923400* DATE FERMETURE ! -923500 15 WS-4DCO-4FPU-PCG-MIN-ACT ! -923600 PIC S9(3)V9(4) COMP-3. ! -923700* POURCENTAGE MINIMUM ACTION ! -923800 15 WS-4DCO-4FPU-PCG-MX-ACT ! -923900 PIC S9(3)V9(4) COMP-3. ! -924000* POURCENTAGE MAXIMUM ACTION ! -924100 15 WS-4DCO-4FPU-PCG-MIN-EURO ! -924200 PIC S9(3)V9(4) COMP-3. ! -924300* POURCENTAGE MINIMUM FONDS EN EUROS ! -924400 15 WS-4DCO-4FPU-TX-FRS-PV ! -924500 PIC S9(3)V9(4) COMP-3. ! -924600* TAUX FRAIS SUR PLUS VALUE ! -924700 ! -924800 ! -924900 10 WS-4DCO-4FPU-ZON-SAV. ! -925000 15 WS-4DCO-4FPU-SV-LIB-PFL-MDT ! -925100 PIC X(32). ! -925200* LIBELL� LONG DU PROFIL ! -925300 15 WS-4DCO-4FPU-SV-LA-PFL-MDT ! -925400 PIC X(20). ! -925500* LIBELL� COURT DU PROFIL ! -925600 15 WS-4DCO-4FPU-SV-DA-OUV-PFL ! -925700 PIC X(10). ! -925800* DATE OUVERTURE ! -925900 15 WS-4DCO-4FPU-SV-DA-FIN-PFL ! -926000 PIC X(10). ! -926100* DATE FERMETURE ! -926200 15 WS-4DCO-4FPU-SV-PCG-MIN-ACT ! -926300 PIC S9(3)V9(4) COMP-3. ! -926400* POURCENTAGE MINIMUM ACTION ! -926500 15 WS-4DCO-4FPU-SV-PCG-MX-ACT ! -926600 PIC S9(3)V9(4) COMP-3. ! -926700* POURCENTAGE MAXIMUM ACTION ! -926800 15 WS-4DCO-4FPU-SV-PCG-MIN-EURO ! -926900 PIC S9(3)V9(4) COMP-3. ! -927000* POURCENTAGE MINIMUM FONDS EN EUROS ! -927100 15 WS-4DCO-4FPU-SV-TX-FRS-PV ! -927200 PIC S9(3)V9(4) COMP-3. ! -927300* TAUX FRAIS SUR PLUS VALUE ! -927400 ! -927500 ! -927600 10 WS-4DCO-4FPU-LIB-OPE PIC X(40). ! -927700* LIBELLE OPERATION ! -927800 05 FILLER PIC X(1580). ! -927900* ! -928000 03 WS-4DCO-4ELB REDEFINES WS-4DCO-PROGRAM. ! -928100* ============= ! -928200* ! -928300* ====m========= ! -928400* ------------------------------------------------------ * ! -928500* COMMAREA : EVOLUTION DE L'APPLICATIF LAB SURAVENIR * ! -928600* COMMAREA : TC4ELB0 * ! -928700* LONGUEUR : 1800 * ! -928800* PREFIXE : WS-4DCO-4ELB0 * ! -928900* ------------------------------------------------------ * ! -929000 05 WS-4DCO-4ELB-DONNEES. ! -929100 ! -929200 10 WS-4DCO-4ELB-DA-DBT-OPE. ! -929300 20 WS-4DCO-4ELB-DA-DBT-OPE-A PIC X(04). ! -929400 20 WS-4DCO-4ELB-DA-DBT-OPE-M PIC X(02). ! -929500 20 WS-4DCO-4ELB-DA-DBT-OPE-J PIC X(02). ! -929600* DATE DEBUT OPERATION ! -929700 10 WS-4DCO-4ELB-DA-FIN-OPE. ! -929800 20 WS-4DCO-4ELB-DA-FIN-OPE-A PIC X(04). ! -929900 20 WS-4DCO-4ELB-DA-FIN-OPE-M PIC X(02). ! -930000 20 WS-4DCO-4ELB-DA-FIN-OPE-J PIC X(02). ! -930100* DATE FIN OPERATION ! -930200 10 WS-4DCO-4ELB-CD-MTF PIC X(03). ! -930300* MOTIF ! -930400 10 WS-4DCO-4ELB-CD-PTN PIC X(05). ! -930500* PARTENAIRE ! -930600 10 WS-4DCO-4ELB-CD-CLI-PTN PIC X(15). ! -930700* IDENTIFIANT ! -930800 10 WS-4DCO-4ELB-SAUV-PAGE-AREA PIC X(160). ! -930900* ! -931000 10 WS-4DCO-4ELB-NB-PAG-TS PIC 9(002). ! -931100* ! -931200 05 FILLER PIC X(1599). ! -931300* 05 FILLER PIC X(1761). ! -931400* ! -931500 03 WS-4DCO-4ECOM REDEFINES WS-4DCO-PROGRAM. ! -931600* ============= ! -931700* ! -931800* ============== ! -931900* ------------------------------------------------------ * ! -932000* COMMAREA : GESTION DU R�F�RENTIEL COMMISSIONS * ! -932100* COMMAREA : TC4EM10 * ! -932200* LONGUEUR : 1800 * ! -932300* PREFIXE : WS-4DCO-4ECOM * ! -932400* ------------------------------------------------------ * ! -932500 05 WS-4DCO-4ECOM-DONNEES. ! -932600*--- GESTION DES HABILITATIONS LIGNE ACTIONS SUR �CRAN DE LISTE ! -932700 10 WS-4DCO-4ECOM-SV-LIGN. ! -932800 12 WS-4DCO-4ECOM-LIB-ACT PIC X(79). ! -932900 12 WS-4DCO-4ECOM-TAB OCCURS 10. ! -933000 15 WS-4DCO-4ECOM-CD-ACTION PIC X(01). ! -933100 12 WS-4DCO-4ECOM-NB-ACT PIC 9(02). ! -933200 12 WS-4DCO-4ECOM-CD-AUT-APLI-S PIC X(01). ! -933300*--- INFORMATIONS CODE EFS ! -933400 10 WS-4DCO-4ECOM-CD-EFS PIC X(02). ! -933500*--- INFORMATIONS DISTRIBUTEURS ! -933600 10 WS-4DCO-4ECOM-NO-DIS PIC 9(08). ! -933700 10 WS-4DCO-4ECOM-LIB-DIS PIC X(32). ! -933800 10 WS-4DCO-4ECOM-CD-NIV-HIE PIC X(03). ! -933900 10 WS-4DCO-4ECOM-CD-FCT-COM PIC X(01). ! -934000*--- INFORMATIONS CONVENTION ! -934100 10 WS-4DCO-4ECOM-NO-CNV-COM PIC X(25). ! -934200 10 WS-4DCO-4ECOM-DA-DBT-CNV-COM PIC X(08). ! -934300 10 WS-4DCO-4ECOM-DA-FIN-CNV-COM PIC X(08). ! -934400*--- INFORMATIONS entites rglt ! -934500 10 WS-4DCO-4ECOM-NO-ETT-RGL PIC S9(9) COMP. ! -934600*--- sauvegarde du contexte avant d�branchement ! -934700 10 WS-4DCO-4ECOM-SAUV-PAGE-AREA PIC X(200). ! -934800*--- sauvegarde cle de repositionnement avant d�branchement ! -934900 10 WS-4DCO-4ECOM-SAUV-CLE-POS PIC X(32). ! -935000*--- 10 WS-4DCO-4ECOM-SAUV-CLE-POS PIC Z(7)9. ! -935100*--- code partenaire ! -935200 10 WS-4DCO-4ECOM-CD-PTN PIC X(5). ! -935300*--- INFORMATIONS FAMILLES DE COMMISSION ! -935400 10 WS-4DCO-4ECOM-NO-FML-COM PIC X(3). ! -935500 10 WS-4DCO-4ECOM-CD-GRP-COM PIC X(2). ! -935600 10 WS-4DCO-4ECOM-CD-TY-COM PIC X(2). ! -935700 10 WS-4DCO-4ECOM-CD-CAT-COM PIC X(2). ! -935800 10 WS-4DCO-4ECOM-CD-CRI-COM PIC X(3). ! -935900 10 WS-4DCO-4ECOM-LIB-FML-COM PIC X(32). ! -936000 ! -936100 05 FILLER PIC X(1336). ! -936200*--- 05 FILLER PIC X(1380). ! -936300*--- 05 FILLER PIC X(1409). ! -936400 ! -936500 03 WS-4DCO-SIMPLV REDEFINES WS-4DCO-PROGRAM. ! -936600* ============== ! -936700* ------------------------------------------------------ * ! -936800* COMMAREA : SIMULATION PLAN DE VERSEMENT * ! -936900* LONGUEUR : 1800 * ! -937000* PREFIXE : WS-4DCO-SIMPLV * ! -937100* ------------------------------------------------------ * ! -937200 ! -937300 05 WS-4DCO-SIMPLV-DONNEES. ! -937400 10 WS-4DCO-SIMPLV-MT-CAP PIC S9(13)V99 COMP-3. ! -937500 10 WS-4DCO-SIMPLV-MT-BRT-VER-INI PIC S9(13)V99 COMP-3. ! -937600 10 WS-4DCO-SIMPLV-MT-NET-VER-INI PIC S9(13)V99 COMP-3. ! -937700 10 WS-4DCO-SIMPLV-TX-FRS-SCR PIC 9(02)V9(03). ! -937800 10 WS-4DCO-SIMPLV-TX-FRS PIC 9(02)V9(03). ! -937900 10 WS-4DCO-SIMPLV-TX-RVL-PRIM PIC 9(02)V9(03). ! -938000 10 WS-4DCO-SIMPLV-DUR-A PIC 9(02). ! -938100 10 WS-4DCO-SIMPLV-MT-BRT-VER-PER PIC S9(13)V99 COMP-3. ! -938200 10 WS-4DCO-SIMPLV-MT-NET-VER-PER PIC S9(13)V99 COMP-3. ! -938300 10 WS-4DCO-SIMPLV-NB-VER-AN PIC 9(02). ! -938400 10 WS-4DCO-SIMPLV-AN-1 PIC 9(04). ! -938500 10 WS-4DCO-SIMPLV-AN-FIN PIC 9(04). ! -938600 05 FILLER PIC X(1733). ! -938700*================================================================ ! -938800* ! -938900*= APPLICATION : GESTION SPECIFIQUE SURAVENIR = ! -939000* ! -939100*================================================================ ! -939200 ! -939300 03 WS-4DCO-GSS REDEFINES WS-4DCO-PROGRAM. ! -939400* ================ ! -939500* ------------------------------------------------------ * ! -939600* COMMAREA : * ! -939700* LONGUEUR : 1800 * ! -939800* PREFIXE : WS-4DCO-GSS * ! -939900* ------------------------------------------------------ * ! -940000 ! -940100 05 WS-4DCO-GSS-SAUV-PAGE-AREA PIC X(160). ! -940200* SAUVEGARDE PAGE AREA START ! -940300 05 WS-4DCO-GSS-NB-PAG-TS PIC 9(2). ! -940400* SAUVEGARDE NB PAGE TS ! -940500 05 FILLER PIC X(1638). ! -940600* ZONES DISPONIBLES ! -940700*================================================================ ! -940800* ! -940900*= APPLICATION : GESTION DES ADMINISTRATEURS = ! -941000* ! -941100*================================================================ ! -941200 ! -941300 03 WS-4DCO-ADM REDEFINES WS-4DCO-PROGRAM. ! -941400* ================ ! -941500* ------------------------------------------------------ * ! -941600* COMMAREA : * ! -941700* LONGUEUR : 1800 * ! -941800* PREFIXE : WS-4DCO-ADM * ! -941900* ------------------------------------------------------ * ! -942000 ! -942100 05 WS-4DCO-ADM-NO-GRP-PSE PIC 9(10) COMP. ! -942200* NUMERO GROUPE PERSONNE ! -942300 05 WS-4DCO-ADM-CD-ROL PIC X(06). ! -942400* CODE ROLE ! -942500 05 WS-4DCO-ADM-A-FIS PIC 9(04). ! -942600* ANNEE FISCALE ! -942700 05 FILLER PIC X(1782). ! -942800* ZONES DISPONIBLES ! -942900*================================================================ ! -943000* ! -943100*= APPLICATION : EDITION AVIS D'OPERE = ! -943200* ! -943300*================================================================ ! -943400 03 WS-4DCO-AVOP REDEFINES WS-4DCO-PROGRAM. ! -943500* ============ ! -943600* ------------------------------------------------------ * ! -943700* COMMAREA : * ! -943800* LONGUEUR : 1800 * ! -943900* PREFIXE : WS-4DCO-AVOP * ! -944000* ------------------------------------------------------ * ! -944100 05 FILLER PIC X(1793). ! -944200* ZONES DISPONIBLES ! -944300 05 WS-4DCO-AVOP-TRAN-PROV PIC X(04). ! -944400* TRANSACTION PRECEDENT AVIS OPERE ! -944500 05 WS-4DCO-AVOP-IDC-AVOP PIC X. ! -944600* INDICATEUR EDITION AVIS D'OPERATION ! -944700 05 WS-4DCO-AVOP-CD-AVOP PIC X(02). ! -944800* TYPE D'AVIS D'OPERE A EDITER ! -944900*================================================================ ! -945000* ! -945100*= APPLICATION : gestion du terme mono-supports = ! -945200* ! -945300*================================================================ ! -945400 03 WS-4DCO-4DGA REDEFINES WS-4DCO-PROGRAM. ! -945500* ============ ! -945600* ------------------------------------------------------ * ! -945700* COMMAREA : * ! -945800* LONGUEUR : 1800 * ! -945900* PREFIXE : WS-4DCO-4DGA * ! -946000* ------------------------------------------------------ * ! -946100 05 WS-4DCO-4DGA-IDC-TT-ECN PIC X(01). ! -946200* INDICATEUR TRAITEMENT ECHEANCE ! -946300 05 FILLER PIC X(1799). ! -946400* ZONES DISPONIBLES ! -946500*================================================================ ! -946600* ! -946700*= APPLICATION : rattachement au type de produit = ! -946800* ! -946900*================================================================ ! -947000 03 WS-4DCO-4DYT-PRM-FSC REDEFINES WS-4DCO-PROGRAM. ! -947100* ============ ! -947200* ------------------------------------------------------ * ! -947300* COMMAREA : * ! -947400* LONGUEUR : 1800 * ! -947500* PREFIXE : WS-4DCO-4DYT * ! -947600* ------------------------------------------------------ * ! -947700 05 WS-4DCO-4DYT-NO-GEN PIC X(003). ! -947800 05 WS-4DCO-4DYT-NO-TY-PRD PIC 9(002). ! -947900 05 WS-4DCO-4DYT-NO-GEN-TY-PRD PIC X(003). ! -948000 05 WS-4DCO-4DYT-CD-PTN PIC X(005). ! -948100 05 WS-4DCO-4DYT-CD-PRD PIC X(002). ! -948200 05 FILLER PIC X(1785). ! -948300* ZONES DISPONIBLES ! -948400*================================================================ ! -948500* ! -948600*= APPLICATION : rattachement au produit commercial ! -948700* ! -948800*================================================================ ! -948900 03 WS-4DCO-4DYs-PRM-FSC REDEFINES WS-4DCO-PROGRAM. ! -949000* ============ ! -949100* ------------------------------------------------------ * ! -949200* COMMAREA : * ! -949300* LONGUEUR : 1800 * ! -949400* PREFIXE : WS-4DCO-4DYs * ! -949500* ------------------------------------------------------ * ! -949600 05 WS-4DCO-4DYs-NO-GEN PIC X(003). ! -949700 05 WS-4DCO-4DYs-NO-TY-PRD PIC 9(002). ! -949800 05 WS-4DCO-4DYs-NO-GEN-TY-PRD PIC X(003). ! -949900 05 WS-4DCO-4DYs-CD-PTN PIC X(005). ! -950000 05 WS-4DCO-4DYs-CD-PRD PIC X(002). ! -950100 05 FILLER PIC X(1785). ! -950200* ZONES DISPONIBLES ! -950300 03 WS-4DCO-4DX REDEFINES WS-4DCO-PROGRAM. ! -950400* =========== ! -950500* ! -950600* ============== ! -950700* ------------------------------------------------------ * ! -950800* COMMAREA : GESTION DES CONTRATS ET CAM * ! -950900* LONGUEUR : 1800 * ! -951000* PREFIXE : WS-4DCO-4DX * ! -951100* ------------------------------------------------------ * ! -951200 05 WS-4DCO-4DX-DONNEES. ! -951300 10 WS-4DCO-4DX-CD-CTR PIC X(08). ! -951400* Code contrat assurance ! -951500 10 WS-4DCO-4DX-LIB-CTR-AS PIC X(32). ! -951600* Libell� contrat assurance ! -951700 10 WS-4DCO-4DX-PAGE-AREA PIC X(80). ! -951800* SAUVEGARDE PAGE AREA START ! -951900* Code �v�nement param�trage ! -952000 10 WS-4DCO-4DX-CD-CAT-MIT PIC X(06). ! -952100* CODE CATEGORIE MINISTERIELLE ! -952110* sauve parametres de la liste recue ! -952111 05 WS-4DCO-4DX-LISTE-TS. ! -952120 10 WS-4DCO-4DX-NB-PAG-TS PIC 9(02). ! -952130 10 WS-4DCO-4DX-NB-OCC-TS PIC S9(4) COMP. ! -952200* ! -952300 05 FILLER PIC X(1670). ! - *----------------------------------------------! END Y4DGEODE ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY YC4ESDSF ! - *------------------------------------------------------------------- -000010*CPG* 11 YC4ESDSF COPY COMMAREA PLATEFORME ! -000020* LG=02000, STRUCTURE MAJ LE 14/04/06 PAR AS232 ! -000030* GENERE LE 14/04/06 A 10H55, PFX : YC4ESD- MEMBRE : YC4ESDSF ! -000040 03 YC4ESD-YC4ESDSF. ! -000050* COPY COMMAREA PLATEFORME 1 13/11/98 ! -000060 10 YC4ESD-PGM-CICS-APL PIC X(8). ! -000070* PROGRAMME CICS APPLICATION 1 30/07/03 ! -000080 10 YC4ESD-PGM-CICS-APL-D PIC X(8). ! -000090* PROGRAMME CICS APPLICATION SX:-D 9 - - ! -000100 10 YC4ESD-NB-PAG-TS PIC 9(3) COMP. ! -000110* NOMBRE DE PAGES EN TS 17 - - ! -000120 10 YC4ESD-CD-MES-ERR PIC X(6). ! -000130* CODE MESSAGE ERREUR 19 - - ! -000140 10 YC4ESD-ZONE-RCP. ! -010010* ZONE GROUPE POUR ECRANS RECAP 25 13/11/98 ! -010020 15 YC4ESD-DA-DBT PIC X(8). ! -010030* DATE DEBUT 25 30/07/03 ! -010040 15 YC4ESD-DA-FIN PIC X(8). ! -010050* DATE FIN 33 - - ! -010060 15 YC4ESD-CD-ENT-SRT PIC X(1). ! -010070* CODE ENTREE SORTIE 41 - - ! -010080 15 YC4ESD-CD-DMN-OPE PIC X(2) OCCURS 12. ! -010090* CODE DOMAINE OPERATION 42 - - ! -010100 10 YC4ESD-NB-OCC PIC 9(2). ! -010110* NOMBRE OCCURRENCE 66 - - ! -010120 10 YC4ESD-LIST-DOM-HAB OCCURS 20. ! -010130* LISTE DOMAINES HABILIT�S PAR SALARI� 68 12/11/98 ! -010140 15 YC4ESD-CD-DMN-OPE PIC X(2). ! -020010* CODE DOMAINE OPERATION 68 30/07/03 ! -020020 15 YC4ESD-MT-MIN-M PIC 9(13)V9(2) COMP-3. ! -020030* MONTANT MINIMUM MOIS 70 - - ! -020040 15 YC4ESD-MT-MX-M PIC 9(13)V9(2) COMP-3. ! -020050* MONTANT MAXIMUM MOIS 78 - - ! -020060 15 YC4ESD-IDC-CRI PIC X(1). ! -020070* INDICATEUR CRITERE 86 - - ! -020080 10 YC4ESD-ZONE-VISU. ! -020090* ZONE GROUPE POUR LES ECRANS DE VISU 448 13/11/98 ! -020100 15 YC4ESD-LIB-NOM PIC X(32). ! -020110* LIBELLE NOM 448 30/07/03 ! -020120 15 YC4ESD-LIB-PRN PIC X(32). ! -020130* LIBELLE PRENOM 480 - - ! -020140 15 YC4ESD-CD-PTN PIC X(5). ! -030010* CODE PARTENAIRE 512 - - ! -030020 15 YC4ESD-NO-POL-9. ! -030030* NUMERO POLICE NEUF 517 12/08/05 ! -030040 17 YC4ESD-NO-POL PIC X(8). ! -030050* NUMERO POLICE 517 30/07/03 ! -030060 17 YC4ESD-CLE-POL PIC X(1). ! -030070* CLE POLICE 525 - - ! -030080 15 YC4ESD-NO-DOS-SIN-DCS PIC 9(13) COMP-3. ! -030090* NUMERO DOSSIER SINISTRE DECES 526 - - ! -030100 15 YC4ESD-MT-OPE-SIT PIC 9(13)V9(2). ! -030110* MONTANT OPERATION SIT 533 - - ! -030120 15 YC4ESD-CD-STA-OPE PIC X(1). ! -030130* CODE STATUT OPERATION 548 - - ! -030140 15 YC4ESD-CD-DMN-OPE PIC X(2). ! -040010* CODE DOMAINE OPERATION 549 - - ! -040020 15 YC4ESD-CD-ENT-SRT PIC X(1). ! -040030* CODE ENTREE SORTIE 551 - - ! -040040 15 YC4ESD-RAC-CLE. ! -040050* GROUPE COMPTE 552 25/10/05 ! -040060 17 YC4ESD-RACINE PIC X(7). ! -040070* RACINE DU CLIENT 552 30/07/03 ! -040080 17 YC4ESD-CLE-RACINE PIC X(1). ! -040090* CL� DE LA RACINE DU CLIENT 559 - - ! -040100 15 YC4ESD-CD-PRD PIC X(2). ! -040110* CODE PRODUIT 560 - - ! -040120 10 YC4ESD-ZONE-VISU-DET. ! -040130* ZONE GROUPE POUR ECRANS VISU DETAIL 562 12/01/99 ! -040140 15 YC4ESD-CD-STA-OPE PIC X(1). ! -050010* CODE STATUT OPERATION 562 30/07/03 ! -050020 15 YC4ESD-CD-ENT-SRT PIC X(1). ! -050030* CODE ENTREE SORTIE 563 - - ! -050040 15 YC4ESD-DA-ENT-OPE PIC X(8). ! -050050* DATE ENTREE OPERATION 564 - - ! -050060 15 YC4ESD-NO-SEQ-OP PIC X(6). ! -050070* NUMERO SEQUENCE SX:-OP 572 - - ! -050080 10 YC4ESD-ZONE-VALID. ! -050090* ZONE GROUPE POUR ECRANS DE VALIDATION 578 13/11/98 ! -050100 15 YC4ESD-CD-STA-OPE PIC X(1). ! -050110* CODE STATUT OPERATION 578 30/07/03 ! -050120 15 YC4ESD-CD-ENT-SRT PIC X(1). ! -050130* CODE ENTREE SORTIE 579 - - ! -050140 15 YC4ESD-DA-ENT-OPE PIC X(8). ! -060010* DATE ENTREE OPERATION 580 - - ! -060020 15 YC4ESD-DA-THR-GEN-OPE PIC X(8). ! -060030* DATE THEORIQUE GENERATION OPERATION 588 - - ! -060040 15 YC4ESD-NO-SEQ PIC X(6). ! -060050* NUMERO SEQUENCE 596 - - ! -060060 15 YC4ESD-CD-DMN-OPE PIC X(2). ! -060070* CODE DOMAINE OPERATION 602 - - ! -060080 15 YC4ESD-LIB-DMN-OPE PIC X(32). ! -060090* LIBELLE DOMAINE OPERATION 604 - - ! -060100 15 YC4ESD-CD-PTN PIC X(5). ! -060110* CODE PARTENAIRE 636 - - ! -060120 15 YC4ESD-NO-DOS-SIN-DCS PIC 9(13) COMP-3. ! -060130* NUMERO DOSSIER SINISTRE DECES 641 - - ! -060140 15 YC4ESD-CD-PTN-R PIC X(5). ! -070010* CODE PARTENAIRE SX:-R 648 - - ! -070020 15 YC4ESD-NO-DOS-SIN-DCS-R PIC 9(13) COMP-3. ! -070030* NUMERO DOSSIER SINISTRE DECES SX:-R 653 - - ! -070040 15 YC4ESD-MT-OPE-SIT PIC 9(13)V9(2). ! -070050* MONTANT OPERATION SIT 660 - - ! -070060 10 YC4ESD-NO-OCC-M PIC 9(2). ! -070070* NUMERO OCCURRENCE SX:-M 675 - - ! -070080 10 YC4ESD-ZONE-MANUEL. ! -070090* ZONE GROUPE POUR ECRANS VIR. MANUEL 677 13/11/98 ! -070100 15 YC4ESD-NO-CHX-MNU PIC X(2). ! -070110* NUMERO CHOIX MENU 677 30/07/03 ! -070120 15 YC4ESD-ZONE-OCC-MAN OCCURS 14. ! -070130* ZONE OCC POUR MULTI-DETAIL MVTS MANUEL 679 02/03/99 ! -070140 20 YC4ESD-DA-ENT-OPE PIC X(8). ! -080010* DATE ENTREE OPERATION 679 30/07/03 ! -080020 20 YC4ESD-NO-SEQ PIC X(6). ! -080030* NUMERO SEQUENCE 687 - - ! -080040 20 YC4ESD-IDC-PEC-OPE PIC X(1). ! -080050* INDICATEUR PRISE-EN-COMPTE OPERATION 693 - - ! -080060 15 YC4ESD-IDT-CPT-FNC PIC X(4). ! -080070* IDENTIFIANT COMPTE FINANCIER 889 18/09/03 ! -080080 15 YC4ESD-MT-TOT-CPT-DEB PIC S9(13)V9(2) COMP-3. ! -080090* MONTANT TOTAL COMPTE DEBIT 893 30/07/03 ! -080100 15 YC4ESD-MT-OPE-CU PIC S9(13)V9(2) COMP-3. ! -080110* MONTANT OPERATION SX:-CU 901 - - ! -080120 15 YC4ESD-CD-BQE-EM PIC 9(5). ! -080130* CODE BANQUE EMETTEUR 909 - - ! -080140 15 YC4ESD-CD-GUI-EM PIC X(5). ! -090010* CODE GUICHET EMETTEUR 914 - - ! -090020 15 YC4ESD-NO-CPT-EM PIC X(11). ! -090030* NUMERO COMPTE EMETTEUR 919 - - ! -090040 15 YC4ESD-DA-VAL PIC X(8). ! -090050* DATE VALIDITE 930 - - ! -090060 15 YC4ESD-MT-OPE PIC S9(13)V9(2) COMP-3. ! -090070* MONTANT OPERATION 938 - - ! -090080 15 YC4ESD-CD-DVS-OPE PIC X(3). ! -090090* CODE DEVISE OPERATION 946 - - ! -090100 15 YC4ESD-RAI-SOC PIC X(32). ! -090110* RAISON SOCIALE 949 - - ! -090120 15 YC4ESD-LIB-DEB-VIR PIC X(32). ! -090130* LIBELLE DEBIT VIREMENT 981 - - ! -090140 10 YC4ESD-ZONE-MODIF. ! -100010* ZONE GROUPE POUR ECRANS MODIF ANOMALIE1013 01/12/98 ! -100020 15 YC4ESD-CD-STA-OPE PIC X(1). ! -100030* CODE STATUT OPERATION 1013 30/07/03 ! -100040 15 YC4ESD-CD-ENT-SRT PIC X(1). ! -100050* CODE ENTREE SORTIE 1014 - - ! -100060 15 YC4ESD-DA-THR-GEN-OPE PIC X(8). ! -100070* DATE THEORIQUE GENERATION OPERATION 1015 - - ! -100080 15 YC4ESD-NO-SEQ PIC X(6). ! -100090* NUMERO SEQUENCE 1023 - - ! -100100 15 YC4ESD-CD-APLI-OPE PIC X(2). ! -100110* CODE APPLICATION OPERATION 1029 - - ! -100120 15 YC4ESD-LIB-APLI-OPE PIC X(32). ! -100130* LIBELLE APPLICATION OPERATION 1031 - - ! -100140 15 YC4ESD-CD-PTN PIC X(5). ! -110010* CODE PARTENAIRE 1063 - - ! -110020 15 YC4ESD-NO-DOS-SIN-DCS PIC 9(13) COMP-3. ! -110030* NUMERO DOSSIER SINISTRE DECES 1068 - - ! -110040 15 YC4ESD-MT-OPE-SIT PIC 9(13)V9(2). ! -110050* MONTANT OPERATION SIT 1075 - - ! -110060 10 YC4ESD-ZONE-DETAIL OCCURS 14. ! -110070* ZONE GROUPE POUR ECRANS DETAIL 1090 14/12/98 ! -110080 15 YC4ESD-DA-CRE-LOT PIC X(8). ! -110090* DATE CREATION LOT 1090 30/07/03 ! -110100 15 YC4ESD-NO-LOT-SIT PIC X(3). ! -110110* NUMERO LOT SIT 1098 - - ! -110120 10 YC4ESD-NO-OCC-D PIC 9(2). ! -110130* NUMERO OCCURRENCE SX:-D 1244 - - ! -110140 10 YC4ESD-ZONE-OCC-DET OCCURS 12. ! -120010* ZONE OCC POUR MULTI-DETAIL MVTS SIT 1246 26/02/99 ! -120020 15 YC4ESD-CD-ENT-SRT PIC X(1). ! -120030* CODE ENTREE SORTIE 1246 30/07/03 ! -120040 15 YC4ESD-DA-ENT-OPE PIC X(8). ! -120050* DATE ENTREE OPERATION 1247 - - ! -120060 15 YC4ESD-NO-SEQ PIC X(6). ! -120070* NUMERO SEQUENCE 1255 - - ! -120080 15 YC4ESD-CD-STA-OPE PIC X(1). ! -120090* CODE STATUT OPERATION 1261 - - ! -120100 15 YC4ESD-NB-PRT-OPE PIC S9(9) COMP-3. ! -120110* NOMBRE PRESENTATION OPERATION 1262 - - ! -120120 10 YC4ESD-CD-PVN-DATA OCCURS 12. ! -120130* CODE PROVENANCE DONNEES 1498 22/12/93 ! -120140 14 FILLER PIC X(1). ! -130010* 1498 ! -130020 10 YC4ESD-IDC-CRI-VP PIC X(1). ! -130030* INDICATEUR CRITERE SX:-VP1510 30/07/03 ! -130040 10 YC4ESD-IDC-REDI-CR PIC X(1). ! -130050* INDICATEUR REEDITION COURRIER 1511 - - ! -130060 10 YC4ESD-CD-MODE-RGL PIC X(1). ! -130070* CODE MODE REGLEMENT 1512 - - ! -130080 10 YC4ESD-NO-AGT-OPE PIC X(8). ! -130090* NUMERO AGENT OPERATION 1513 - - ! -130100 10 YC4ESD-MT-MX PIC S9(13)V9(2) COMP-3. ! -130110* MONTANT MAXIMUM 1521 24/11/04 ! -130120 03 FILLER PIC X(472). ! -130130* FIN DE STRUCTURE PRINCIPALE 1529 ! - *----------------------------------------------! END YC4ESDSF ---- - - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY XFER3H0 ! - *------------------------------------------------------------------- - ************************************************************* ! - * WORKING PARTICULIERE * ! - ************************************************************* ! - * ! - * SAUVEGARDE DES VALEURS AFFICHEES A L'ECRAN ! - * ! - 03 XF-ZONE-AFF. ! - 05 XF-AFF-DA-PEC-DEM-SP. ! - 10 XF-AFF-DA-PEC-DEM-JJ PIC X(02). ! - 10 XF-AFF-DA-PEC-DEM-MM PIC X(02). ! - 10 XF-AFF-DA-PEC-DEM-SA PIC X(04). ! - 05 XF-AFF-DA-ECN-OPE. ! - 10 XF-AFF-DA-ECN-OPE-JJ PIC X(02). ! - 10 XF-AFF-DA-ECN-OPE-MM PIC X(02). ! - 10 XF-AFF-DA-ECN-OPE-SA PIC X(04). ! - 05 XF-AFF-CD-BQE-DST1 PIC X(05). ! - 05 XF-AFF-CD-GUI-DST1 PIC X(05). ! - 05 XF-AFF-NO-CPT-DST1 PIC X(11). ! - 05 XF-AFF-CLE-RIB1 PIC X(02). ! - 05 XF-AFF-NO-CHQ PIC X(07). ! - 05 XF-AFF-CD-PTN PIC X(05). ! - 05 XF-AFF-REF1L15 PIC X(13). ! - 05 XF-AFF-REF2L15 PIC X(04). ! - 05 XF-AFF-REF1L16 PIC X(02). ! - 05 XF-AFF-REF4L16 PIC X(06). ! - 05 XF-AFF-REF1L17 PIC X(32). ! - 05 XF-AFF-REF1L18. ! - 10 XF-AFF-RF1L18-J PIC X(02). ! - 10 XF-AFF-RF1L18-M PIC X(02). ! - 10 XF-AFF-RF1L18-S PIC X(04). ! - 05 XF-AFF-REF2L18. ! - 10 XF-AFF-RF2L18-J PIC X(02). ! - 10 XF-AFF-RF2L18-M PIC X(02). ! - 10 XF-AFF-RF2L18-S PIC X(04). ! - 05 XF-AFF-REF1L19. ! - 10 XF-AFF-RF1L19-J PIC X(02). ! - 10 XF-AFF-RF1L19-M PIC X(02). ! - 10 XF-AFF-RF1L19-S PIC X(04). ! - 05 XF-AFF-REF2L19 PIC X(03). ! - 05 XF-AFF-REF3L19 PIC X(01). ! - 05 XF-AFF-REF5L19 PIC X(01). ! - 05 XF-AFF-MEMO-YN4ESPS. ! - 10 XF-AFF-MEMO-ZON1 PIC X(127). ! - 10 XF-AFF-MEMO-ZON2 PIC 9(3) COMP-3. ! - 10 XF-AFF-MEMO-ZON3 PIC 9(3) COMP-3. ! - 10 XF-AFF-MEMO-ZON4 PIC 9(7) COMP-3. ! - 10 XF-AFF-MEMO-ZON5 PIC 9(2) COMP-3. ! - 10 XF-AFF-MEMO-ZON6 PIC X(124). ! - 10 XF-AFF-MEMO-ZON7 PIC 9(13) COMP-3. ! - 10 XF-AFF-MEMO-ZON8 PIC X(113). ! - 05 XF-VALIDATION PIC X. ! - 88 DEMANDE-DE-VALIDATION VALUE 'V'. ! - 88 ENTREE-PGM VALUE 'E'. ! - ! - *----------------------------------------------! END XFER3H0 ---- - - 02 SCREEN-IMAGE-AREA. - 05 SCI-AREA-HEADER. - 10 FILLER PIC X. - 10 SCI-WRITE-INDICATOR PIC X. - 88 SCREEN-HAS-BEEN-WRITTEN VALUE HIGH-VALUES. - 88 SCREEN-FIRST-WRITE VALUE LOW-VALUES. - 10 SCI-MODIFY-INDICATOR PIC X. - 88 FIELD-HAS-BEEN-MODIFIED VALUE HIGH-VALUES. - 88 NO-FIELD-MODIFIED VALUE LOW-VALUES. - 10 SCI-ALARM-INDICATOR PIC X. - 88 SET-ALARM-ON-WRITE VALUE HIGH-VALUES. - 88 NO-ALARM-ON-WRITE VALUE LOW-VALUES. - 10 FILLER PIC X(8). - 05 SCREEN-IMAGE PIC X(1051). - 05 SCREEN-IMAGE-END PIC X. - LINKAGE SECTION. - EJECT - ******************************************************** - * L I N K A G E S E C T I O N * - ******************************************************** - SKIP2 - SKIP2 - 01 DFHCOMMAREA. - 05 COM-SPA-AREA PIC X OCCURS 1 TO 32500 TIMES - DEPENDING ON EIBCALEN. - SKIP2 - EJECT - EJECT - ******************************************************** - * * - * P R O C E D U R E D I V I S I O N * - * * - ******************************************************** - PROCEDURE DIVISION. - SKIP3 - MAIN-LINE SECTION. - ******************************************************** - * M A I N L I N E * - ******************************************************** - SET SEC-INDEX TO 1. - MOVE 'TELON ID' TO TELON-RELEASE-EYECATCH. - SKIP1 - * PROGRAM CUSTOM CONTROL MAINI - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEMAINI ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEMAINI R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * Fonctionnalites : * ! - * GIEMAINI : * ! - * * ! - * traitement normalise effectue au debut de chaque programme * ! - * insere automatiquement au debut de la section MAIN-LINE * ! - * mise au format heure et date de traitement a afficher, puis * ! - * decalage de la commarea si programme de provenance NON TELON.* ! - * conversion des touches de fonction en fonctions. * ! - * * ! - * Dependance avec autres sections : * ! - * GIEC300I * ! - **************************************************************** ! - ! - MOVE EIBTIME TO WS-TLN-TIME. ! - MOVE EIBDATE TO WORKFLD-NUMERIC. ! - CALL 'OJULIAN' USING WS-TLN-DATE ! - WS-TLN-DATE-LTH ! - WORKFLD-NUMERIC. ! - MOVE WS-TLN-JJ TO WS-TLN-MM-AFF. ! - MOVE WS-TLN-MM TO WS-TLN-JJ-AFF. ! - MOVE WS-TLN-AA TO WS-TLN-AA-AFF. ! - ! - MOVE WS-TLN-HH TO WS-TLN-HH-AFF. ! - MOVE WS-TLN-MN TO WS-TLN-MN-AFF. ! - ! - EXEC CICS ASKTIME ABSTIME (WS-TLN-ASKTIME) ! - END-EXEC. ! - ! - EXEC CICS FORMATTIME ABSTIME (WS-TLN-ASKTIME) ! - YEAR (WS-TLN-YEAR) ! - END-EXEC. ! - ! - MOVE WS-TLN-YEAR TO WS-TLN-YEAR-NUM. ! - MOVE WS-TLN-YEAR-NUM TO WS-TLN-SA-AFF. ! - ! - IF EIBCALEN > ZERO ! - MOVE SPACE TO WS-TLN-TYP-PROV ! - MOVE DFHCOMMAREA TO WS-TLN-DEB-SPA ! - IF (WS-TLN-BIN-SPA < WS-TLN-BIN-MIN OR ! - WS-TLN-BIN-SPA > WS-TLN-BIN-MAX) ! - MOVE 'A' TO WS-TLN-TYP-PROV ! - MOVE DFHCOMMAREA TO XFER-DBT-ZON-APL ! - MOVE EIBCALEN TO XFER-LG-SPA-PVN-TLN ! - MOVE ZERO TO EIBCALEN ! - ELSE NEXT SENTENCE ! - ELSE MOVE 'N' TO WS-TLN-TYP-PROV. ! - ! - MOVE 'P00721 ' TO WS-TLN-MODULE. ! - CALL WS-TLN-MODULE USING DFHEIBLK ! - DFHCOMMAREA ! - WS-TLN-PFKEY-INDICATOR ! - WS-TLN-FCT-VALIDATION. ! - ! - *----------------------------------------------! END GIEMAINI ---- - - SKIP1 - IF EIBCALEN = 0 - PERFORM Q-100-CICS-INIT - MOVE LOW-VALUES TO SPA-TRANSACTION-CODE - MOVE NEXT-PROGRAM-NAME TO SPA-NEXT-PROGRAM-NAME - MOVE 08192 TO SPA-LENGTH - MOVE PROCESS-OUTPUT-LIT TO CONTROL-INDICATOR - ELSE - MOVE DFHCOMMAREA TO SPA-AREA - PERFORM Q-100-CICS-INIT - IF SPA-TRANSACTION-CODE = PROGRAM-TRANSACTION-CODE - MOVE PROCESS-INPUT-LIT TO CONTROL-INDICATOR - PERFORM C-100-TERMIO-READ - ELSE - MOVE PROCESS-OUTPUT-LIT TO CONTROL-INDICATOR. - * - * PROCESS THE TRANSACTION - * - MOVE CONTROL-INDICATOR TO ENTRY-CONTROL-INDICATOR. - PERFORM MAIN-PROCESS UNTIL TRANSACTION-COMPLETE. - MAIN-LINE-RETURN. - SKIP1 - * PROGRAM CUSTOM CONTROL MAINT - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEMAINT ! - *------------------------------------------------------------------- - **************************************************************** ! - * CODE PERSONNALISATION : GIEMAINT R1 V1 * ! - * Date de creation : 13/11/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * Permettre un chainage par "RETURN TRANSID" avec une commarea* ! - * constitu�e de : * ! - * - entete telon (16 caracteres). * ! - * - 24 premiers caract�res de la partie applicative. * ! - * Dependance avec autres sections : * ! - **************************************************************** ! - ! - CALL 'ADLAATX' USING DFHEIBLK DFHCOMMAREA. ! - IF SPA-TRANSACTION-CODE = SPACES ! - EXEC CICS RETURN END-EXEC ! - ELSE ! - MOVE PROGRAM-TRANSACTION-CODE TO SPA-TRANSACTION-CODE ! - MOVE WS-TLN-SPA-LENGTH TO SPA-LENGTH ! - MOVE WS-TLN-HOLD-AREA-NAME-DFLT TO WS-TLN-HOLD-AREA-NAME ! - PERFORM K-300-HOLD-SAVE ! - MOVE 40 TO SPA-LENGTH ! - MOVE XFER-DBT-ZON-APL TO SPA-XFER-WORK-AREA ! - EXEC CICS RETURN TRANSID(SPA-TRANSACTION-CODE) ! - COMMAREA(SPA-AREA) ! - LENGTH(SPA-LENGTH) ! - END-EXEC. ! - GOBACK. ! - *----------------------------------------------! END GIEMAINT ---- - - SKIP1 - SKIP3 - ******************************************************** - * R E T U R N T O C I C S * - ******************************************************** - RETURN-TO-CICS. - SKIP1 - CALL 'ADLAATX' USING DFHEIBLK DFHCOMMAREA. - IF SPA-TRANSACTION-CODE = SPACES - EXEC CICS RETURN END-EXEC - ELSE - MOVE PROGRAM-TRANSACTION-CODE TO SPA-TRANSACTION-CODE - MOVE 08192 TO SPA-LENGTH - EXEC CICS RETURN TRANSID(SPA-TRANSACTION-CODE) - COMMAREA(SPA-AREA) - LENGTH(SPA-LENGTH) - END-EXEC. - GOBACK. - EJECT - SKIP3 - MAIN-PROCESS SECTION. - ******************************************************** - * * - * M A I N P R O C E S S * - * * - * PGMSTRUCT 3 * - * * - * THE FLOW OF THE PROGRAM IS CONTROLLED BY THE * - * VARIABLE NAMED CONTROL-INDICATOR. * - * * - * THERE ARE SIX VALUES WHICH INDICATE ACTION. THE * - * INDICATOR IS TESTED WITH THE 88 LEVEL ITEMS LISTED * - * BELOW. THERE ARE ALSO CORRESPONDING DATA ITEMS * - * WITH THE SUFFIX '-LIT' WHICH ARE USED TO SET THE * - * CONTROL-INDICATOR. * - * * - * 88 LEVEL NAME A C T I O N * - * ------------------- ----------------------- * - * PROCESS-OUTPUT - BUILD A SCREEN FOR OUTPUT * - * DO-WRITE - WRITE A SCREEN * - * PROCESS-INPUT - PROCESS AN INPUT MESSAGE * - * DO-TRANSFER - TRANSFER TO NEXT PROGRAM * - * TRANSACTION-COMPLETE - RETURN CONTROL TO CALLER * - * CONTINUE-PROCESS - PERFORM NEXT ROUTINE * - * * - ******************************************************** - SKIP1 - IF PROCESS-OUTPUT - PERFORM MAIN-OUTPUT - ELSE - IF DO-WRITE - PERFORM C-200-TERMIO-WRITE - ELSE - IF PROCESS-INPUT - PERFORM MAIN-INPUT - ELSE - IF DO-TRANSFER - PERFORM C-300-TERMIO-XFER - ELSE - PERFORM Z-990-PROGRAM-ERROR. - SKIP1 - MAIN-PROCESS-RETURN. - EXIT. - EJECT - MAIN-OUTPUT SECTION. - ******************************************************** - * M A I N O U T P U T * - ******************************************************** - SKIP1 - MOVE SPACE TO CONTROL-INDICATOR. - IF XFER-HOLD-INDICATOR = 'P' OR 'D' - MOVE XFER-HOLD-INDICATOR TO HOLD-AREA-TYPE - PERFORM K-100-HOLD-RESTORE - ELSE - PERFORM A-100-OUTPUT-INIT - IF CONTINUE-PROCESS - PERFORM B-100-OUTPUT-EDITS. - * - * SET DEFAULT ACTION TO DO-WRITE - * - IF CONTINUE-PROCESS - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR. - SKIP1 - MAIN-OUTPUT-RETURN. - EXIT. - SKIP3 - MAIN-INPUT SECTION. - ******************************************************** - * M A I N I N P U T * - ******************************************************** - SKIP1 - MOVE SPACE TO CONTROL-INDICATOR. - MOVE PROGRAM-NAME OF SYS-WORK-AREA TO NEXT-PROGRAM-NAME-ID. - PERFORM P-100-PFKEYS. - IF CONTINUE-PROCESS - PERFORM D-100-INPUT-INIT - IF CONTINUE-PROCESS - PERFORM E-100-INPUT-EDITS - IF CONTINUE-PROCESS - PERFORM X-100-CONSIS-EDITS - IF CONTINUE-PROCESS - PERFORM H-100-INPUT-TERM. - * - * SET DEFAULT ACTION TO DO-TRANSFER - * - IF CONTINUE-PROCESS - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR. - * - * IF TRANSFER IS TO THE SAME PROGRAM, PROCESS OUTPUT - * - IF DO-TRANSFER - AND (SPA-TRANSACTION-CODE NOT = SPACES) - IF NEXT-PROGRAM-NAME = CURRENT-PROGRAM-NAME - MOVE PROCESS-OUTPUT-LIT TO CONTROL-INDICATOR - ENTRY-CONTROL-INDICATOR. - SKIP1 - MAIN-INPUT-RETURN. - EXIT. - EJECT - A-100-OUTPUT-INIT SECTION. - ******************************************************** - * A - 1 0 0 - O U T P U T - I N I T * - ******************************************************** - * THIS ROUTINE INITIALIZES ANY FIELDS NECESSARY PRIOR * - * TO OUTPUT PROCESSING AND RETRIEVES OUTPUT/OUTIN * - * DATABASE SEGMENTS. * - * * - * GENERATED - TP-OUTPUT-BUFFER FIELD INITIALIZATION * - * COPY CODE - SCREEN/OINIT1 * - * GENERATED - OUTPUT/OUTIN DATA ACCESS AUTO CALLS * - * COPY CODE - SCREEN/OINIT2 * - ******************************************************** - SKIP1 - MOVE LOW-VALUES TO SCREEN-IMAGE-AREA TP-BUFFER. - SKIP1 - * SCREEN/OINIT1 COPY CODE - SKIP1 - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY OINIT1 ! - *------------------------------------------------------------------- - * INITIALISATION DIVERSES ! - ! - *---------------------------------------------------------------- ! - * GESTION DE LA PROVENANCE * ! - * COPY GIECPROV : CE COPY PERMET DE CONTROLER QUE L'APPEL A * ! - * +++++++ CET ECRAN S'EST FAIT A TRAVERS LES MENUS * ! - *---------------------------------------------------------------- ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIECPROV 2! - *------------------------------------------------------------------- - **************************************************************** 2! - * CODE PERSONNALISATION : CMB GIECPROV R1 V1 * 2! - * Date de creation : 27/01/1992 * 2! - * Date de modification : / / * 2! - * * 2! - * Fonctionnalites : * 2! - * Traitement normalise pour controle la validite de l'appel * 2! - * d'une application (appel � partir des menus alice et * 2! - * demande valider par 'f5'. * 2! - * * 2! - * Dependance avec autres sections : * 2! - **************************************************************** 2! - IF APPEL-NATIF 2! - THEN 2! - EXEC CICS SEND TEXT 2! - FROM (WS-TLN-MES-ERR-PROV) 2! - LENGTH (WS-TLN-LG-MES) 2! - ERASE 2! - END-EXEC 2! - MOVE TRANSACTION-COMPLETE-LIT TO CONTROL-INDICATOR 2! - MOVE SPACES TO SPA-TRANSACTION-CODE. 2! - *----------------------------------------------! END GIECPROV ---- - - IF NOT CONTINUE-PROCESS ! - GO TO A-100-OUTPUT-INIT-RETURN. ! - * ! - **************************************************************** ! - * Codification n�cessaire � la gestion automatis�e des * ! - * fonctions RETOUR MENU GENERAL, RETOUR MENU PRECEDENT, * ! - * RETOUR ECRAN PRECEDENT. * ! - **************************************************************** ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEINITI 2! - *------------------------------------------------------------------- - **************************************************************** 2! - * Code personnalisation : CMB GIEINITI R1 V1 * 2! - * Date de creation : 27/01/1992 * 2! - * Date de modification : / / * 2! - * * 2! - * Fonctionnalites : * 2! - * Traitement normalise effectue au debut de la section a-100 * 2! - * pour gestion des fonctions retour a l'ecran precedent, * 2! - * retour au menu precedent, retour au menu principal. * 2! - * permet de preciser que l'on se trouve sur un menu * 2! - * intermediaire. * 2! - * * 2! - * Dependance avec autres sections : * 2! - **************************************************************** 2! - PERFORM 2! - VARYING WS-TLN-IND FROM 1 BY 1 UNTIL 2! - WS-TLN-IND > XFER-NB 2! - IF XFER-PROG(WS-TLN-IND) = CURRENT-PROGRAM-NAME 2! - THEN MOVE WS-TLN-IND TO XFER-NB 2! - MOVE 98 TO WS-TLN-IND 2! - END-IF 2! - END-PERFORM 2! - IF CURRENT-PROGRAM-NAME = XFER-PROG(XFER-NB) 2! - NEXT SENTENCE 2! - ELSE 2! - IF XFER-NB < XFER-NB-MAX 2! - ADD 1 TO XFER-NB 2! - MOVE CURRENT-PROGRAM-NAME TO XFER-PROG(XFER-NB) 2! - MOVE 'M' TO XFER-MENU(XFER-NB) 2! - ELSE 2! - MOVE XFER-PROG2 TO XFER-TABLE-PROG2 2! - MOVE CURRENT-PROGRAM-NAME TO XFER-PROG(XFER-NB) 2! - MOVE 'M' TO XFER-MENU(XFER-NB) 2! - END-IF 2! - END-IF. 2! - 2! - *----------------------------------------------! END GIEINITI ---- - - ! - MOVE PROGRAM-TRANSACTION-CODE TO Y00TLN-CD-TRANS-PROV. ! - ! - MOVE 'TC4E3H0' TO YC4ESD-PGM-CICS-APL-D. ! - SET ENTREE-PGM TO TRUE. ! - PERFORM ACCES-TN4ESPS-005 THRU ACCES-TN4ESPS-005-FIN. ! - * ! - *----------------------------------------------! END OINIT1 ---- - - SKIP1 - SKIP1 - * SCREEN/OINIT2 COPY CODE - SKIP1 - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY OINIT2 ! - *------------------------------------------------------------------- - **************************************************************** ! - * * ! - * OINIT2 * ! - * * ! - **************************************************************** ! - MOVE 'YSP4E064' TO WS-TLN-CODTAB. ! - MOVE 2 TO WS-TLN-LTH-KEY. ! - MOVE '*AB' TO WS-TLN-EL-DEMANDES. ! - * ! - ****************************************************************** ! - * POUR AFFICHAGE DE L'ECRAN DES DIFFERENTES ZONES ! - * SUIVANT LE CODE APPLICATION ! - ****************************************************************** ! - MOVE 'D03' TO WS-TLN-TYPDATE ! - ! - MOVE YN4ESP-DA-PEC-DEM-SP OF YN4ESP-DETAIL-SIT ! - TO WS-DA-PEC-DEM-SP ! - XF-AFF-DA-PEC-DEM-SP. ! - ! - MOVE YN4ESP-DA-ECN-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-ECN-OPE ! - XF-AFF-DA-ECN-OPE. ! - ! - * CALCUL DE LA CLE RIB ! - ! - MOVE YN4ESP-CD-BQE-DST OF YN4ESP-DETAIL-SIT ! - TO WS-CPT-BQE. ! - MOVE YN4ESP-CD-GUI-DST OF YN4ESP-DETAIL-SIT ! - TO WS-CPT-GUI. ! - MOVE YN4ESP-NO-CPT-DST OF YN4ESP-DETAIL-SIT ! - TO WS-CPT-CPT. ! - MOVE ZERO TO WS-CPT-RIB-CLE. ! - ! - PERFORM ACCES-P00271 THRU ACCES-P00271-FIN. ! - MOVE WS-CPT-RIB-CLE TO WS-CLE-RIB. ! - ! - MOVE YN4ESP-CD-BQE-DST OF YN4ESP-DETAIL-SIT ! - TO WS-CD-BQE-DST1 ! - XF-AFF-CD-BQE-DST1 ! - MOVE YN4ESP-CD-GUI-DST OF YN4ESP-DETAIL-SIT ! - TO WS-CD-GUI-DST1 ! - XF-AFF-CD-GUI-DST1 ! - MOVE YN4ESP-NO-CPT-DST OF YN4ESP-DETAIL-SIT ! - TO WS-NO-CPT-DST1 ! - XF-AFF-NO-CPT-DST1 ! - ! - MOVE WS-CD-BQE-DST1 TO WS-CPT-BQE. ! - MOVE WS-CD-GUI-DST1 TO WS-CPT-GUI. ! - MOVE WS-NO-CPT-DST1 TO WS-CPT-CPT. ! - MOVE ZERO TO WS-CPT-RIB-CLE. ! - ! - PERFORM ACCES-P00271 THRU ACCES-P00271-FIN. ! - MOVE WS-CPT-RIB-CLE TO WS-CLE-RIB1. ! - ! - PERFORM ACCES-SPI053 THRU ACCES-SPI053-FIN. ! - MOVE YSP4E053-LIB-MODE-RGL TO WS-LIB-RGL. ! - ! - IF YN4ESP-CD-MODE-RGL-OPE OF YN4ESP-DETAIL-SIT NOT = 'C' ! - MOVE PROT-ATTR TO TPO-NOCHQ-ATTR ! - END-IF. ! - ! - MOVE YN4ESP-NO-CHQ OF YN4ESP-DETAIL-SIT ! - TO WS-NO-CHQ ! - XF-AFF-NO-CHQ ! - ! - * VALORISATION DES ZONES DE REFERENCE DE GESTION ! - * SELON LA VALEUR DU CODE APPLICATION ! - ! - EVALUATE YN4ESP-CD-APLI-OPE OF YN4ESP-DETAIL-SIT ! - WHEN 'CH' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER 'TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'NUM LOT CHEQUE :' TO WS-LIB2 ! - MOVE PROT-ATTR TO TPO-REF1L15-ATTR ! - MOVE YN4ESP-NO-LOT-CHQ OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - MOVE PROT-ATTR TO TPO-REF2L15-ATTR ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE SPACES TO WS-LIB5 ! - MOVE PROT-ATTR TO TPO-REF1L17-ATTR ! - * LIGNE 18 ! - MOVE PROT-ATTR TO TPO-RF1L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18A-ATTR ! - MOVE 'DATE EFFET ' TO WS-LIB6B ! - MOVE YN4ESP-DA-EFF OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L18 ! - XF-AFF-REF2L18 ! - * LIGNE 19 ! - MOVE PROT-ATTR TO TPO-RF1L19J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19A-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF5L19-ATTR ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN 'P7' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER 'TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'SOUSCRIPTION :' TO WS-LIB2 ! - MOVE YN4ESP-NO-POL-9 OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - MOVE 'PRODUIT :' TO WS-LIB3 ! - MOVE YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L15 ! - XF-AFF-REF2L15 ! - IF YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT = SPACES ! - MOVE SPACES TO WS-REF3L15 ! - ELSE ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S NOT = ZERO ! - MOVE SPACES TO XF-AFF-REF2L15 ! - END-IF ! - END-IF ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE 'NOM-PRENOM :' TO WS-LIB5 ! - MOVE YN4ESP-LIB-NOM OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L17 ! - XF-AFF-REF1L17 ! - * LIGNE 18 ! - MOVE 'DATE SOUSCRIP. :' TO WS-LIB6 ! - MOVE YN4ESP-DA-SCR-CTR OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L18 ! - XF-AFF-REF1L18 ! - ! - MOVE 'DATE EFFET ' TO WS-LIB6B ! - MOVE YN4ESP-DA-EFF OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L18 ! - XF-AFF-REF2L18 ! - * LIGNE 19 ! - MOVE 'EVENEMENT :' TO WS-LIB7 ! - MOVE YN4ESP-DA-CRE-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L19 ! - XF-AFF-REF1L19 ! - ! - MOVE YN4ESP-CD-TY-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L19 ! - XF-AFF-REF2L19 ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - MOVE 'CODE MINITEL ' TO WS-LIB8 ! - MOVE YN4ESP-CD-MTL OF YN4ESP-DETAIL-SIT ! - TO WS-REF5L19 ! - XF-AFF-REF5L19 ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN '4D' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'CONTRAT :' TO WS-LIB2 ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE YN4ESP-RAC-CLE OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - ELSE ! - MOVE YN4ESP-NO-POL-9 OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - END-IF ! - MOVE 'PRODUIT :' TO WS-LIB3 ! - MOVE YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L15 ! - XF-AFF-REF2L15 ! - IF YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT = SPACES ! - MOVE SPACES TO WS-REF3L15 ! - ELSE ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S NOT = ZERO ! - MOVE SPACES TO XF-AFF-REF2L15 ! - END-IF ! - END-IF ! - * LIGNE 16 ! - MOVE 'RANG ' TO WS-LIB4 ! - MOVE YN4ESP-NO-ORD-CTR OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L16 ! - XF-AFF-REF1L16 ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE 'NOM-PRENOM :' TO WS-LIB5 ! - MOVE YN4ESP-LIB-NOM OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L17 ! - XF-AFF-REF1L17 ! - * LIGNE 18 ! - MOVE 'DATE SOUSCRIP. :' TO WS-LIB6 ! - MOVE YN4ESP-DA-SCR-CTR OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L18 ! - XF-AFF-REF1L18 ! - ! - MOVE 'DATE EFFET ' TO WS-LIB6B ! - MOVE YN4ESP-DA-EFF OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L18 ! - XF-AFF-REF2L18 ! - * LIGNE 19 ! - MOVE 'EVENEMENT :' TO WS-LIB7 ! - MOVE YN4ESP-DA-CRE-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L19 ! - XF-AFF-REF1L19 ! - ! - MOVE YN4ESP-CD-TY-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L19 ! - XF-AFF-REF2L19 ! - MOVE YN4ESP-CD-CLO-ECN OF YN4ESP-DETAIL-SIT ! - TO WS-REF3L19 ! - XF-AFF-REF3L19 ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - MOVE 'CODE MINITEL ' TO WS-LIB8 ! - MOVE YN4ESP-CD-MTL OF YN4ESP-DETAIL-SIT ! - TO WS-REF5L19 ! - XF-AFF-REF5L19 ! - YN4ESP-CD-MTL OF YN4ESP-ZONE-ALLER ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN '4F' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'CONTRAT :' TO WS-LIB2 ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE YN4ESP-RAC-CLE OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - ELSE ! - MOVE YN4ESP-NO-POL-9 OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - END-IF ! - MOVE 'PRODUIT :' TO WS-LIB3 ! - MOVE YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L15 ! - XF-AFF-REF2L15 ! - IF YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT = SPACES ! - MOVE SPACES TO WS-REF3L15 ! - ELSE ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S NOT = ZERO ! - MOVE SPACES TO XF-AFF-REF2L15 ! - END-IF ! - END-IF ! - * LIGNE 16 ! - MOVE 'RANG ' TO WS-LIB4 ! - MOVE YN4ESP-NO-ORD-CTR OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L16 ! - XF-AFF-REF1L16 ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE 'NOM-PRENOM :' TO WS-LIB5 ! - MOVE YN4ESP-LIB-NOM OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L17 ! - XF-AFF-REF1L17 ! - * LIGNE 18 ! - MOVE 'DATE SOUSCRIP. :' TO WS-LIB6 ! - MOVE YN4ESP-DA-SCR-CTR OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L18 ! - XF-AFF-REF1L18 ! - ! - MOVE 'DATE EFFET ' TO WS-LIB6B ! - MOVE YN4ESP-DA-EFF OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L18 ! - XF-AFF-REF2L18 ! - * LIGNE 19 ! - MOVE 'EVENEMENT :' TO WS-LIB7 ! - MOVE YN4ESP-DA-CRE-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L19 ! - XF-AFF-REF1L19 ! - ! - MOVE YN4ESP-CD-TY-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L19 ! - XF-AFF-REF2L19 ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - MOVE 'CODE MINITEL ' TO WS-LIB8 ! - MOVE YN4ESP-CD-MTL OF YN4ESP-DETAIL-SIT ! - TO WS-REF5L19 ! - XF-AFF-REF5L19 ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN '37' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'NUMERO ADHESION :' TO WS-LIB2 ! - MOVE YN4ESP-NO-CLI-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - MOVE 'PRODUIT :' TO WS-LIB3 ! - MOVE YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L15 ! - XF-AFF-REF2L15 ! - IF YN4ESP-CD-PRD OF YN4ESP-DETAIL-SIT = SPACES ! - MOVE SPACES TO WS-REF3L15 ! - ELSE ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S NOT = ZERO ! - MOVE SPACES TO XF-AFF-REF2L15 ! - END-IF ! - END-IF ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE 'NOM-PRENOM :' TO WS-LIB5 ! - MOVE YN4ESP-LIB-NOM OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L17 ! - XF-AFF-REF1L17 ! - * LIGNE 18 ! - MOVE 'DATE SOUSCRIP. :' TO WS-LIB6 ! - MOVE YN4ESP-DA-SCR-CTR OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L18 ! - XF-AFF-REF1L18 ! - MOVE PROT-ATTR TO TPO-RF2L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18A-ATTR ! - * LIGNE 19 ! - MOVE 'EVENEMENT :' TO WS-LIB7 ! - MOVE YN4ESP-DA-CRE-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L19 ! - XF-AFF-REF1L19 ! - ! - MOVE YN4ESP-CD-TY-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L19 ! - XF-AFF-REF2L19 ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - MOVE 'CODE MINITEL ' TO WS-LIB8 ! - MOVE YN4ESP-CD-MTL OF YN4ESP-DETAIL-SIT ! - TO WS-REF5L19 ! - XF-AFF-REF5L19 ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN '4G' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'SINISTRE :' TO WS-LIB2 ! - MOVE YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-ZONE-ALLER ! - MOVE PROT-ATTR TO TPO-REF2L15-ATTR ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE 'NOM-PRENOM :' TO WS-LIB5 ! - MOVE YN4ESP-LIB-NOM OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L17 ! - XF-AFF-REF1L17 ! - * LIGNE 18 ! - MOVE PROT-ATTR TO TPO-RF1L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18A-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18A-ATTR ! - * LIGNE 19 ! - MOVE 'EVENEMENT :' TO WS-LIB7 ! - MOVE YN4ESP-DA-CRE-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L19 ! - XF-AFF-REF1L19 ! - ! - MOVE YN4ESP-CD-TY-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L19 ! - XF-AFF-REF2L19 ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - MOVE SPACES TO WS-LIB8 ! - MOVE SPACES TO WS-REF5L19 ! - ! - MOVE PROT-ATTR TO TPO-REF5L19-ATTR ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN 'CO' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'DATE COMMISSION :' TO WS-LIB2 ! - MOVE YN4ESP-DA-CRE-LOT-COM OF YN4ESP-DETAIL-SIT ! - TO WS-DA8 ! - MOVE WS-DA8-JJ TO WS-DA10-JJ ! - MOVE WS-DA8-MM TO WS-DA10-MM ! - MOVE WS-DA8-SS TO WS-DA10-SS ! - MOVE WS-DA8-AA TO WS-DA10-AA ! - MOVE WS-DA10 TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - MOVE PROT-ATTR TO TPO-REF1L15-ATTR ! - ! - MOVE 'TYPE ' TO WS-LIB3 ! - MOVE YN4ESP-CD-TY-COM OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L15 ! - XF-AFF-REF2L15 ! - MOVE PROT-ATTR TO TPO-REF2L15-ATTR ! - IF YN4ESP-CD-TY-COM OF YN4ESP-DETAIL-SIT = 'M' ! - MOVE 'PRODUCTION' TO WS-REF3L15 ! - ELSE ! - IF YN4ESP-CD-TY-COM OF YN4ESP-DETAIL-SIT = 'E' ! - MOVE 'ENCOURS' TO WS-REF3L15 ! - ELSE ! - IF YN4ESP-CD-TY-COM OF YN4ESP-DETAIL-SIT = 'Z' ! - MOVE 'PRODUCTION RETROACTIVE' ! - TO WS-REF3L15 ! - END-IF ! - END-IF ! - END-IF ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE 'CORRESPONDANT :' TO WS-LIB5 ! - MOVE YN4ESP-LIB-NOM-CRP-COM OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L17 ! - XF-AFF-REF1L17 ! - * LIGNE 18 ! - MOVE PROT-ATTR TO TPO-RF1L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18A-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18A-ATTR ! - * LIGNE 19 ! - MOVE PROT-ATTR TO TPO-RF1L19J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19A-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF5L19-ATTR ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN 'AS' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'NO DOSSIER :' TO WS-LIB2 ! - MOVE YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-ZONE-ALLER ! - MOVE PROT-ATTR TO TPO-REF1L15-ATTR ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - * LIGNE 18 ! - MOVE PROT-ATTR TO TPO-RF1L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18A-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18A-ATTR ! - * LIGNE 19 ! - MOVE PROT-ATTR TO TPO-RF1L19J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19A-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF5L19-ATTR ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN 'RE' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE 'NO DOSSIER :' TO WS-LIB2 ! - MOVE YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L15 ! - XF-AFF-REF1L15 ! - YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-ZONE-ALLER ! - MOVE PROT-ATTR TO TPO-REF1L15-ATTR ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE 'NOM-PRENOM :' TO WS-LIB5 ! - MOVE YN4ESP-LIB-NOM OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L17 ! - XF-AFF-REF1L17 ! - * LIGNE 18 ! - MOVE PROT-ATTR TO TPO-RF1L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18A-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18A-ATTR ! - * LIGNE 19 ! - MOVE PROT-ATTR TO TPO-RF1L19J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19A-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF5L19-ATTR ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN 'DG' ! - * LIGNE 14 ! - MOVE PROT-ATTR TO TPO-CDPTN-ATTR ! - MOVE 'ECHANGE FINANCIER ' TO WS-LIB1B ! - MOVE YN4ESP-CD-TY-ECG-FNC OF YN4ESP-DETAIL-SIT ! - TO WS-ECG-FIN ! - * LIGNE 15 ! - MOVE PROT-ATTR TO TPO-REF1L15-ATTR ! - TPO-REF2L15-ATTR ! - TPO-REF3L15-ATTR ! - * LIGNE 16 ! - MOVE '-' TO WS-TIRET ! - MOVE 'DECLARATION :' TO WS-LIB4A ! - MOVE YN4ESP-CD-TY-DCR-DGI OF YN4ESP-DETAIL-SIT ! - TO WS-REF3L16 ! - MOVE YN4ESP-PER-DCR-DGI OF YN4ESP-DETAIL-SIT ! - TO WS-REF4L16 ! - XF-AFF-REF4L16 ! - MOVE 'CODE ' TO WS-LIB4 ! - MOVE YN4ESP-CD-DCR-DGI OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L16 ! - XF-AFF-REF1L16 ! - IF YN4ESP-CD-DCR-DGI OF YN4ESP-DETAIL-SIT = '0' ! - MOVE 'ACOMPTE' TO WS-REF2L16 ! - ELSE ! - IF YN4ESP-CD-DCR-DGI OF YN4ESP-DETAIL-SIT = '1' ! - MOVE 'MENSUEL' TO WS-REF2L16 ! - END-IF ! - END-IF ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE PROT-ATTR TO TPO-REF1L17-ATTR ! - * LIGNE 18 ! - MOVE PROT-ATTR TO TPO-RF1L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18A-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18A-ATTR ! - * LIGNE 19 ! - MOVE PROT-ATTR TO TPO-RF1L19J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L19A-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - MOVE PROT-ATTR TO TPO-REF5L19-ATTR ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - WHEN 'FI' ! - * LIGNE 14 ! - MOVE 'CODE PARTENAIRE :' TO WS-LIB1 ! - MOVE YN4ESP-CD-PTN OF YN4ESP-DETAIL-SIT ! - TO WS-CD-PTN ! - XF-AFF-CD-PTN ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-DETAIL-SIT = 'O' ! - MOVE 'CM' TO WS-IDC-PTN ! - ELSE ! - MOVE SPACES TO WS-IDC-PTN ! - END-IF ! - * LIGNE 15 ! - MOVE PROT-ATTR TO TPO-REF1L15-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L15-ATTR ! - * LIGNE 16 ! - MOVE PROT-ATTR TO TPO-REF1L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF2L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF3L16-ATTR ! - MOVE PROT-ATTR TO TPO-REF4L16-ATTR ! - * LIGNE 17 ! - MOVE PROT-ATTR TO TPO-REF1L17-ATTR ! - * LIGNE 18 ! - MOVE PROT-ATTR TO TPO-RF1L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF1L18A-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18J-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18M-ATTR ! - MOVE PROT-ATTR TO TPO-RF2L18A-ATTR ! - * LIGNE 19 ! - MOVE 'EVENEMENT :' TO WS-LIB7 ! - MOVE YN4ESP-DA-CRE-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF1L19 ! - XF-AFF-REF1L19 ! - ! - MOVE YN4ESP-CD-TY-CRO OF YN4ESP-DETAIL-SIT ! - TO WS-REF2L19 ! - XF-AFF-REF2L19 ! - MOVE PROT-ATTR TO TPO-REF3L19-ATTR ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - MOVE SPACES TO WS-LIB8 ! - MOVE SPACES TO WS-REF5L19 ! - * LIGNE 21 ! - PERFORM ACCES-SPI017 THRU ACCES-SPI017-FIN ! - MOVE YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO WS-DA-REJ-OPE ! - END-EVALUATE. ! - ! - ! - *----------------------------------------------! END OINIT2 ---- - - SKIP1 - SKIP1 - PERFORM N-100-CURSOR-POSITION. - SKIP1 - A-100-OUTPUT-INIT-RETURN. - EXIT. - EJECT - B-100-OUTPUT-EDITS SECTION. - ******************************************************** - * B - 1 0 0 - O U T P U T - E D I T S * - ******************************************************** - * THIS ROUTINE CONTAINS THE OUTPUT EDIT LOGIC * - * GENERATED FROM THE FIELD STATEMENTS. FIELDS ARE * - * MOVED FROM THE DBNAME FIELD AND EDITED BASED UPON * - * THE FIELD EDIT PARAMETERS SPECIFIED. SPECIAL * - * FLDTYPE EDITS ARE LINKED TO WITH CALL STATEMENTS. * - * * - * GENERATED - FIELD EDIT LOGIC * - * COPY CODE - SCREEN/OUTTERM * - ******************************************************** - SKIP1 - SKIP2 - * NOMMAP FIELD - SKIP1 - MOVE BMSMAP-NAME TO TPO-NOMMAP. - SKIP2 - * NUMECR FIELD - SKIP1 - MOVE EIBTRMID TO TPO-NUMECR. - SKIP2 - * CDAPL FIELD - SKIP1 - MOVE YN4ESP-CD-APLI-OPE OF YN4ESP-DETAIL-SIT TO TPO-CDAPL. - SKIP2 - * LIBAPL FIELD - SKIP1 - CALL 'OSPITAB' USING TPO-LIBAPL - TPO-LIBAPL-LTH - YN4ESP-CD-APLI-OPE OF YN4ESP-DETAIL-SIT - WS-TLN-CODTAB - WS-TLN-LTH-KEY - WS-TLN-EL-DEMANDES. - SKIP2 - * DAPECJ FIELD - SKIP1 - CALL 'ODATEJ' USING TPO-DAPECJ - TPO-DAPECJ-LTH - WS-DA-PEC-DEM-SP - TPO-DAPECM - TPO-DAPECA - WS-TLN-TYPDATE. - SKIP2 - * DAECNJ FIELD - SKIP1 - CALL 'ODATEJ' USING TPO-DAECNJ - TPO-DAECNJ-LTH - WS-DA-ECN-OPE - TPO-DAECNM - TPO-DAECNA - WS-TLN-TYPDATE. - SKIP2 - * MTOPE FIELD - SKIP1 - MOVE YN4ESP-MT-OPE-SIT OF YN4ESP-DETAIL-SIT TO TPO-MTOPE. - SKIP2 - * CDDVS FIELD - SKIP1 - MOVE YN4ESP-CD-DVS-OPE OF YN4ESP-DETAIL-SIT TO TPO-CDDVS. - SKIP2 - * CDBQE FIELD - SKIP1 - MOVE YN4ESP-CD-BQE-DST OF YN4ESP-DETAIL-SIT TO TPO-CDBQE. - SKIP2 - * CDGUI FIELD - SKIP1 - MOVE YN4ESP-CD-GUI-DST OF YN4ESP-DETAIL-SIT TO TPO-CDGUI. - SKIP2 - * NOCPT FIELD - SKIP1 - MOVE YN4ESP-NO-CPT-DST OF YN4ESP-DETAIL-SIT TO TPO-NOCPT. - SKIP2 - * CLERIB FIELD - SKIP1 - MOVE WS-CLE-RIB TO TPO-CLERIB. - SKIP2 - * CDBQE1 FIELD - SKIP1 - MOVE WS-CD-BQE-DST1 TO TPO-CDBQE1. - SKIP2 - * CDGUI1 FIELD - SKIP1 - MOVE WS-CD-GUI-DST1 TO TPO-CDGUI1. - SKIP2 - * NOCPT1 FIELD - SKIP1 - MOVE WS-NO-CPT-DST1 TO TPO-NOCPT1. - SKIP2 - * CLERIB1 FIELD - SKIP1 - MOVE WS-CLE-RIB1 TO TPO-CLERIB1. - SKIP2 - * NBELT FIELD - SKIP1 - MOVE YN4ESP-NB-ELT-OPE OF YN4ESP-DETAIL-SIT TO TPO-NBELT. - SKIP2 - * MODRGL FIELD - SKIP1 - MOVE YN4ESP-CD-MODE-RGL-OPE OF YN4ESP-DETAIL-SIT TO - TPO-MODRGL. - SKIP2 - * LIBRGL FIELD - SKIP1 - MOVE WS-LIB-RGL TO TPO-LIBRGL. - SKIP2 - * NBPREST FIELD - SKIP1 - MOVE YN4ESP-NB-PRT-OPE OF YN4ESP-DETAIL-SIT TO TPO-NBPREST. - SKIP2 - * NOCHQ FIELD - SKIP1 - MOVE WS-NO-CHQ TO TPO-NOCHQ. - SKIP2 - * LIB1 FIELD - SKIP1 - MOVE WS-LIB1 TO TPO-LIB1. - SKIP2 - * CDPTN FIELD - SKIP1 - MOVE WS-CD-PTN TO TPO-CDPTN. - SKIP2 - * LIBPTN FIELD - SKIP1 - MOVE WS-LIB-PTN TO TPO-LIBPTN. - SKIP2 - * IDCPTN FIELD - SKIP1 - MOVE WS-IDC-PTN TO TPO-IDCPTN. - SKIP2 - * LIB1B FIELD - SKIP1 - MOVE WS-LIB1B TO TPO-LIB1B. - SKIP2 - * ECGFIN FIELD - SKIP1 - MOVE WS-ECG-FIN TO TPO-ECGFIN. - SKIP2 - * LIB2 FIELD - SKIP1 - MOVE WS-LIB2 TO TPO-LIB2. - SKIP2 - * REF1L15 FIELD - SKIP1 - MOVE WS-REF1L15 TO TPO-REF1L15. - SKIP2 - * LIB3 FIELD - SKIP1 - MOVE WS-LIB3 TO TPO-LIB3. - SKIP2 - * REF2L15 FIELD - SKIP1 - MOVE WS-REF2L15 TO TPO-REF2L15. - SKIP2 - * REF3L15 FIELD - SKIP1 - MOVE WS-REF3L15 TO TPO-REF3L15. - SKIP2 - * LIB4A FIELD - SKIP1 - MOVE WS-LIB4A TO TPO-LIB4A. - SKIP2 - * REF3L16 FIELD - SKIP1 - MOVE WS-REF3L16 TO TPO-REF3L16. - SKIP2 - * TIRET FIELD - SKIP1 - MOVE WS-TIRET TO TPO-TIRET. - SKIP2 - * REF4L16 FIELD - SKIP1 - MOVE WS-REF4L16 TO TPO-REF4L16. - SKIP2 - * LIB4 FIELD - SKIP1 - MOVE WS-LIB4 TO TPO-LIB4. - SKIP2 - * REF1L16 FIELD - SKIP1 - MOVE WS-REF1L16 TO TPO-REF1L16. - SKIP2 - * REF2L16 FIELD - SKIP1 - MOVE WS-REF2L16 TO TPO-REF2L16. - SKIP2 - * LIB5 FIELD - SKIP1 - MOVE WS-LIB5 TO TPO-LIB5. - SKIP2 - * REF1L17 FIELD - SKIP1 - MOVE WS-REF1L17 TO TPO-REF1L17. - SKIP2 - * LIB6 FIELD - SKIP1 - MOVE WS-LIB6 TO TPO-LIB6. - SKIP2 - * RF1L18J FIELD - SKIP1 - CALL 'ODATEJ' USING TPO-RF1L18J - TPO-RF1L18J-LTH - WS-REF1L18 - TPO-RF1L18M - TPO-RF1L18A - WS-TLN-TYPDATE. - SKIP2 - * LIB6B FIELD - SKIP1 - MOVE WS-LIB6B TO TPO-LIB6B. - SKIP2 - * RF2L18J FIELD - SKIP1 - CALL 'ODATEJ' USING TPO-RF2L18J - TPO-RF2L18J-LTH - WS-REF2L18 - TPO-RF2L18M - TPO-RF2L18A - WS-TLN-TYPDATE. - SKIP2 - * LIB7 FIELD - SKIP1 - MOVE WS-LIB7 TO TPO-LIB7. - SKIP2 - * RF1L19J FIELD - SKIP1 - CALL 'ODATEJ' USING TPO-RF1L19J - TPO-RF1L19J-LTH - WS-REF1L19 - TPO-RF1L19M - TPO-RF1L19A - WS-TLN-TYPDATE. - SKIP2 - * REF2L19 FIELD - SKIP1 - MOVE WS-REF2L19 TO TPO-REF2L19. - SKIP2 - * REF3L19 FIELD - SKIP1 - MOVE WS-REF3L19 TO TPO-REF3L19. - SKIP2 - * REF4L19 FIELD - SKIP1 - MOVE WS-REF4L19 TO TPO-REF4L19. - SKIP2 - * LIB8 FIELD - SKIP1 - MOVE WS-LIB8 TO TPO-LIB8. - SKIP2 - * REF5L19 FIELD - SKIP1 - MOVE WS-REF5L19 TO TPO-REF5L19. - SKIP2 - * CDREJ FIELD - SKIP1 - MOVE YN4ESP-CD-REJ-OPE OF YN4ESP-DETAIL-SIT TO TPO-CDREJ. - SKIP2 - * LIBREJ FIELD - SKIP1 - MOVE WS-LIB-REJ-OPE TO TPO-LIBREJ. - SKIP2 - * DAREJ FIELD - SKIP1 - CALL 'ODATAMJ' USING TPO-DAREJ - TPO-DAREJ-LTH - YN4ESP-DA-REJ-OPE OF YN4ESP-DETAIL-SIT - WS-TLN-TYPDATE. - SKIP1 - SKIP1 - * SCREEN/OUTTERM COPY CODE - SKIP1 - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY OUTTERM ! - *------------------------------------------------------------------- - *---------------------------------------------------------------- ! - * AFFICHAGE DES TOUCHES DE FONCTION PERMANENTE * ! - *---------------------------------------------------------------- ! - MOVE 'O' TO WS-TLN-DOCU-UTI ! - WS-TLN-AIDE-UTI ! - WS-TLN-ECRPRE-UTI ! - WS-TLN-MENUPRE-UTI ! - WS-TLN-MENUGEN-UTI. ! - *----------------------------------------------! END OUTTERM ---- - - SKIP1 - SKIP1 - B-100-OUTPUT-EDITS-RETURN. - SKIP1 - * PROGRAM CUSTOM CONTROL B100T - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEB100T ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEB100T R1 V1 * ! - * Date de creation : 30/11/1992 * ! - * Date de modification : / / * ! - * Fonctionnalites : * ! - * GIECB00T : * ! - * Appel au module p00722 pour formattage du bandeau inf�rieur * ! - * de l'�cran. Remplace le P00720 pour prise en compte F22. * ! - * * ! - * Dependance avec autres sections : * ! - * GIEMAINI * ! - **************************************************************** ! - ! - MOVE 'P00722 ' TO WS-TLN-MODULE. ! - CALL WS-TLN-MODULE USING DFHEIBLK ! - DFHCOMMAREA ! - TPO-LIG23 ! - TPO-LIG24 ! - WS-TLN-TCH-LIBRE1 ! - WS-TLN-TCH-LIBRE2 ! - WS-TLN-TABLE-FONCTION. ! - *----------------------------------------------! END GIEB100T ---- - - SKIP1 - EJECT - C-100-TERMIO-READ SECTION. - ******************************************************** - * C - 1 0 0 - T E R M I O - R E A D * - ******************************************************** - * * - * THIS SECTION READS THE INPUT MESSAGE FROM THE * - * TERMINAL. PROGRAM SECTION C-930 IS CALLED * - * FOLLOWING THE RECIEVE MAP COMMAND TO PERFORM A * - * MERGE OF THE TP BUFFER WITH THE SCREEN IMAGE. ALL * - * FIELDS WHICH ARE ENTERED FROM THE SCREEN HAVE NULLS * - * AND OPTIONALLY UNDERSCORES CONVERTED TO SPACES. * - * NOTE THAT THE FLAG BYTE AND LENGTH FIELD RETURNED * - * FROM BMS ARE RESET AND ARE NOT REFERENCED IN THE * - * TP-BUFFER. ALL FIELDS WHICH ARE NOT RECEIVED FROM * - * THE TERMINAL ARE MOVED INTO THE TP-BUFFER FROM THE * - * SCREEN IMAGE. ALL INPUT FIELDS THAT WERE WRITTEN * - * PREVIOUSLY WITH AN ERROR-ATTR, HAVE THE TP-BUFFER * - * ATTRIBUTE FIELD RESET FOR THE NEXT TRANSMISSION. * - * AT THE END OF INPUT MERGING, THE TP-BUFFER CONTAINS * - * ALL OF THE FIELDS WHICH HAVE BEEN INPUT FROM THE * - * FROM THE SCREEN, AND OPTIONALLY ALL OUTPUT ONLY * - * FIELDS. * - * THE EIBAID BYTE IS CONVERTED TO A NUMERIC VALUE AND * - * RETURNED IN THE FIELD PFKEY-INDICATOR. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - * PROGRAM CUSTOM CONTROL C100I - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEC100I ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEC100I R1 V1 * ! - * Date de creation : 09/12/1992 * ! - * Date de modification : / / * ! - * Fonctionnalites : * ! - * GIEC100I : * ! - * restore de la commarea stockee en ts. * ! - * * ! - * Dependance avec autres sections : * ! - * gieMAINt * ! - **************************************************************** ! - MOVE WS-TLN-HOLD-AREA-NAME-DFLT TO WS-TLN-HOLD-AREA-NAME. ! - PERFORM K-300-HOLD-RESTORE. ! - *----------------------------------------------! END GIEC100I ---- - - SKIP1 - SKIP1 - EXEC CICS HANDLE CONDITION ERROR - MAPFAIL(C-100-MERGE-IN) - END-EXEC. - SKIP1 - MOVE LOW-VALUES TO TP-BUFFER. - EXEC CICS RECEIVE MAP(BMSMAP-NAME) - INTO(TP-BUFFER) - END-EXEC. - SKIP1 - C-100-MERGE-IN. - SKIP1 - PERFORM C-930-INPUT-MERGE. - SKIP1 - C-100-TERMIO-READ-RETURN. - EXIT. - EJECT - C-200-TERMIO-WRITE SECTION. - ******************************************************** - * C - 2 0 0 - T E R M I O - W R I T E * - ******************************************************** - * THIS SECTION WRITES THE OUTPUT MESSAGE TO THE * - * TERMINAL. PROGRAM SECTION C-940 IS CALLED TO * - * MERGE THE TP BUFFER WITH THE SCREEN IMAGE. * - * ONLY DATA FROM THE BUFFER WHICH IS NOT IN THE SCREEN* - * IMAGE IS TRANSMITTED. INPUT FIELDS ARE OPTIONALLY * - * FILLED WITH LOW-VALUES OR UNDERSCORES. OUTPUT ONLY * - * FIELDS ARE PADDED ON THE RIGHT WITH LOW-VALUES. * - * AT THE END OF OUTPUT MERGING THE TP BUFFER CONTAINS * - * LOW VALUES FOR ALL FIELDS THAT ARE ALREADY ON THE * - * SCREEN AND THE DATA TO BE SENT WITH THE APPROPRIATE * - * FILL CHARACTERS FOR FIELDS TO BE TRANSMITTED. * - * THE CONTROL INDICATOR IS ALSO SET TO INDICATE * - * TRANSACTION COMPLETE. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - * PROGRAM CUSTOM CONTROL C200I - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY GIEC200I ! - *------------------------------------------------------------------- - ******************************************************** ! - * CODE PERSONNALISATION : CMB GIEC200I R1 V1 * ! - * DATE DE CREATION : 27/01/1992 * ! - * DATE DE MODIFICATION : / / * ! - * FONCTIONNALITES : * ! - * GIEC200I : * ! - * ALIMENTATION ZONES BMS DATE ET HEURE A PARTIR DES * ! - * ZONES DEFINIES EN WORKING ET FORMATTEES EN SECTION * ! - * MAINI. * ! - * DEPENDANCE AVEC AUTRES SECTIONS : * ! - * CMBMAINI * ! - ******************************************************** ! - ! - MOVE WS-TLN-DATE-AFF TO TPO-DATE. ! - MOVE WS-TLN-TIME-AFF TO TPO-HEURE. ! - MOVE 'P00710' TO WS-TLN-MODULE. ! - CALL WS-TLN-MODULE USING DFHEIBLK DFHCOMMAREA ! - TPO-ERRMSG1 ! - TPO-ERRMSG1-ATTR ! - WS-TLN-ADR-PGM ! - WS-TLN-LIB-CPL-MES. ! - ! - *----------------------------------------------! END GIEC200I ---- - - SKIP1 - SKIP1 - PERFORM C-940-OUTPUT-MERGE. - SKIP1 - IF SCI-WRITE-INDICATOR = LOW-VALUES - PERFORM C-210-TERMIO-WRITE-INITIAL - MOVE HIGH-VALUES TO SCI-WRITE-INDICATOR - ELSE - PERFORM C-220-TERMIO-WRITE-SUBSEQUENT. - MOVE TRANSACTION-COMPLETE-LIT TO CONTROL-INDICATOR. - SKIP1 - C-200-TERMIO-WRITE-RETURN. - EXIT. - EJECT - C-210-TERMIO-WRITE-INITIAL SECTION. - ******************************************************** - * C - 2 1 0 - T E R M I O - W R I T E - I N I T I A L * - ******************************************************** - * THIS SECTION DOES THE INITIAL OUTPUT TO THE * - * TERMINAL. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - EXEC CICS SEND MAP(BMSMAP-NAME) - FROM(TP-BUFFER) - ERASE - FREEKB - FRSET - CURSOR - END-EXEC. - SKIP1 - SKIP3 - C-220-TERMIO-WRITE-SUBSEQUENT SECTION. - ******************************************************** - * C - 2 2 0 - T E R M I O - W R I T E - S U B Q U E N T* - ******************************************************** - * THIS SECTION WRITES ONLY CHANGED FIELDS TO THE * - * TERMINAL. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - EXEC CICS SEND MAP(BMSMAP-NAME) - FROM(TP-BUFFER) - DATAONLY - FREEKB - FRSET - CURSOR - END-EXEC. - EJECT - C-300-TERMIO-XFER SECTION. - ******************************************************** - * C - 3 0 0 - T E R M I O - X F E R * - ******************************************************** - * THIS SECTION TRANSFERS CONTROL TO THE NEXT PROGRAM * - * TO PROCESS OUTPUT USING THE XCTL COMMAND. IT PASSES * - * THE SPA-AREA IN DFHCOMMAREA. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - IF SPA-TRANSACTION-CODE NOT = SPACES - MOVE LOW-VALUES TO SPA-TRANSACTION-CODE. - SKIP1 - * PROGRAM CUSTOM CONTROL C300I - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEC300I ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEC300I R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * GIEC300I : Module permettant le decalage de la commarea * ! - * de 16 caracteres vers la gauche pour appel * ! - * d'un pgm NON TELON ou chainage vers le programme * ! - * de gestion des anomalies. * ! - * Un point de synchronisation est effectue si * ! - * l'indicateur ws-tln-idc-syncpoint est valorise * ! - * � 'O'.* ! - * * ! - * Dependance avec autres sections : * ! - * GIEMAINI * ! - **************************************************************** ! - ! - MOVE WS-TLN-SPA-LENGTH TO SPA-LENGTH. ! - IF NEXT-PROGRAM-NAME-ID = '00ABD' ! - EXEC CICS SYNCPOINT ROLLBACK ! - END-EXEC ! - MOVE WS-TLN-ABT-PGM TO ABT-NEXT-PROGRAM-NAME ! - NEXT-PROGRAM-NAME ! - MOVE XFER-DBT-ZON-APL TO XFER-HELP-DATA ! - MOVE PROGRAM-TRANSACTION-CODE ! - TO ABT-PGM-TRAN-CODE ! - MOVE ABNORMAL-TERMINATION-AREA ! - TO SPA-AREA(419:240) ! - MOVE SPACE TO WS-TLN-TYP-XCTL. ! - ! - IF TRAITER-SYNCPOINT ! - THEN EXEC CICS SYNCPOINT ! - END-EXEC. ! - ! - IF WS-TLN-XCTL-NON-TELON ! - THEN MOVE NEXT-PROGRAM-NAME TO SPA-NEXT-PROGRAM-NAME ! - EXEC CICS XCTL PROGRAM (SPA-NEXT-PROGRAM-NAME) ! - COMMAREA (XFER-DBT-ZON-APL) ! - LENGTH (XFER-LG-SPA-PVN-TLN) ! - END-EXEC. ! - *----------------------------------------------! END GIEC300I ---- - - SKIP1 - SKIP1 - IF SPA-TRANSACTION-CODE = SPACES - MOVE TRANSACTION-COMPLETE-LIT TO CONTROL-INDICATOR - GO TO C-300-TERMIO-XFER-RETURN. - CALL 'ADLAATX' USING DFHEIBLK DFHCOMMAREA. - SKIP1 - MOVE NEXT-PROGRAM-NAME TO SPA-NEXT-PROGRAM-NAME. - EXEC CICS XCTL PROGRAM(SPA-NEXT-PROGRAM-NAME) - COMMAREA(SPA-AREA) - LENGTH(SPA-LENGTH) - END-EXEC. - SKIP1 - C-300-TERMIO-XFER-RETURN. - EXIT. - EJECT - C-930-INPUT-MERGE SECTION. - ******************************************************** - * C - 9 3 0 - I N P U T - M E R G E * - ******************************************************** - * THIS SECTION MERGES THE OUTPUT BUFFER WITH THE * - * SCREEN IMAGE ON INPUT. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - * - * CALL THE TELON MERGE ROUTINE FOR INPUT PROCESSING - * - CALL 'TLRAMRI' USING DFHEIBLK - DFHCOMMAREA - TP-OUTPUT-TABLE - TP-OUTPUT-BUFFER-FIELDS - SCREEN-IMAGE-AREA - PFKEY-INDICATOR - EIBAID. - SKIP1 - C-930-INPUT-MERGE-RETURN. - EXIT. - EJECT - C-940-OUTPUT-MERGE SECTION. - ******************************************************** - * C - 9 4 0 - O U T P U T - M E R G E * - ******************************************************** - * THIS SECTION MERGES THE OUTPUT BUFFER WITH THE * - * SCREEN IMAGE ON OUTPUT. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - * - * CALL THE TELON MERGE ROUTINE FOR OUTPUT PROCESSING - * - CALL 'TLRAMRO' USING DFHEIBLK - DFHCOMMAREA - TP-OUTPUT-TABLE - TP-OUTPUT-BUFFER-FIELDS - SCREEN-IMAGE-AREA. - SKIP1 - C-940-OUTPUT-MERGE-RETURN. - EXIT. - EJECT - D-100-INPUT-INIT SECTION. - ******************************************************** - * D - 1 0 0 - I N P U T - I N I T * - ******************************************************** - * THIS ROUTINE INITIALIZES ANY FIELDS NECESSARY * - * PRIOR TO INPUT PROCESSING AND RETRIEVES INPUT/OUTIN * - * UPDATE DATABASE SEGMENTS. * - * * - * COPY CODE - SCREEN/ININIT1 * - * GENERATED - INPUT/OUTPUT/UPDATE DATABASE AUTO CALLS * - * COPY CODE - SCREEN/ININIT2(ININIT) * - ******************************************************** - SKIP1 - SKIP1 - * SCREEN/ININIT1 NOT CODED - SKIP1 - SKIP1 - SKIP1 - * SCREEN/ININIT2 NOT CODED - SKIP1 - SKIP1 - D-100-INPUT-INIT-RETURN. - EXIT. - EJECT - E-100-INPUT-EDITS SECTION. - ******************************************************** - * E - 1 0 0 - I N P U T - E D I T S * - ******************************************************** - * THIS ROUTINE CONTAINS THE INPUT EDIT LOGIC GENERATED* - * FROM THE FIELD STATEMENT PARAMETERS. STANDARD * - * EDITS SUCH AS REQ, CONVERT AND VALUES ARE GENERATED * - * IN THIS SECTION. SPECIAL FLDTYPES ARE LINKED TO * - * WITH CALL STATEMENTS. * - * * - * GENERATED - FIELD EDIT LOGIC * - * COPY CODE - SEGLOOP/ICUST1 (PRE EDIT) * - * COPY CODE - SEGLOOP/ICUST2 * - * COPY CODE - SCREEN/FLDEDIT * - ******************************************************** - SKIP1 - SKIP2 - * DAPECJ FIELD - SKIP1 - CALL 'IDATEJ' USING FIELD-EDIT-ERROR - TPI-DAPECJ-LTH - TPI-DAPECJ - WORKFLD-ALPHA - TPI-DAPECM - TPO-DAPECM-ATTR - TPI-DAPECA - TPO-DAPECA-ATTR - WS-TLN-TYPDATE - CONTROL-INDICATOR - IF FIELD-EDIT-GOOD - MOVE WORKFLD-ALPHA TO WS-DA-PEC-DEM-SP - ELSE - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR - MOVE ERROR-ATTR TO TPO-DAPECJ-ATTR. - SKIP2 - * DAECNJ FIELD - SKIP1 - CALL 'IDATEJ' USING FIELD-EDIT-ERROR - TPI-DAECNJ-LTH - TPI-DAECNJ - WORKFLD-ALPHA - TPI-DAECNM - TPO-DAECNM-ATTR - TPI-DAECNA - TPO-DAECNA-ATTR - WS-TLN-TYPDATE - CONTROL-INDICATOR - IF FIELD-EDIT-GOOD - MOVE WORKFLD-ALPHA TO WS-DA-ECN-OPE - ELSE - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR - MOVE ERROR-ATTR TO TPO-DAECNJ-ATTR. - SKIP2 - * CDBQE1 FIELD - SKIP1 - IF TPI-CDBQE1 NOT = SPACE - MOVE TPI-CDBQE1 TO WS-CD-BQE-DST1 - ELSE - MOVE SPACES TO WS-CD-BQE-DST1. - SKIP2 - * CDGUI1 FIELD - SKIP1 - IF TPI-CDGUI1 NOT = SPACE - MOVE TPI-CDGUI1 TO WS-CD-GUI-DST1 - ELSE - MOVE SPACES TO WS-CD-GUI-DST1. - SKIP2 - * NOCPT1 FIELD - SKIP1 - IF TPI-NOCPT1 NOT = SPACE - MOVE TPI-NOCPT1 TO WS-NO-CPT-DST1 - ELSE - MOVE SPACES TO WS-NO-CPT-DST1. - SKIP2 - * NOCHQ FIELD - SKIP1 - IF TPI-NOCHQ NOT = SPACE - MOVE TPI-NOCHQ TO WS-NO-CHQ - ELSE - MOVE SPACES TO WS-NO-CHQ. - SKIP2 - * CDPTN FIELD - SKIP1 - IF TPI-CDPTN NOT = SPACE - MOVE TPI-CDPTN TO WS-CD-PTN - ELSE - MOVE SPACES TO WS-CD-PTN. - SKIP2 - * REF1L15 FIELD - SKIP1 - IF TPI-REF1L15 NOT = SPACE - MOVE TPI-REF1L15 TO WS-REF1L15 - ELSE - MOVE SPACES TO WS-REF1L15. - SKIP2 - * REF2L15 FIELD - SKIP1 - IF TPI-REF2L15 NOT = SPACE - MOVE TPI-REF2L15 TO WS-REF2L15 - ELSE - MOVE SPACES TO WS-REF2L15. - SKIP2 - * REF4L16 FIELD - SKIP1 - IF TPI-REF4L16 NOT = SPACE - MOVE TPI-REF4L16 TO WS-REF4L16 - ELSE - MOVE SPACES TO WS-REF4L16. - SKIP2 - * REF1L16 FIELD - SKIP1 - IF TPI-REF1L16 NOT = SPACE - MOVE TPI-REF1L16 TO WS-REF1L16 - ELSE - MOVE SPACES TO WS-REF1L16. - SKIP2 - * REF1L17 FIELD - SKIP1 - IF TPI-REF1L17 NOT = SPACE - MOVE TPI-REF1L17 TO WS-REF1L17 - ELSE - MOVE SPACES TO WS-REF1L17. - SKIP2 - * RF1L18J FIELD - SKIP1 - CALL 'IDATEJ' USING FIELD-EDIT-ERROR - TPI-RF1L18J-LTH - TPI-RF1L18J - WORKFLD-ALPHA - TPI-RF1L18M - TPO-RF1L18M-ATTR - TPI-RF1L18A - TPO-RF1L18M-ATTR - WS-TLN-TYPDATE - CONTROL-INDICATOR - IF FIELD-EDIT-GOOD - MOVE WORKFLD-ALPHA TO WS-REF1L18 - ELSE - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR - MOVE ERROR-ATTR TO TPO-RF1L18J-ATTR. - SKIP2 - * RF2L18J FIELD - SKIP1 - CALL 'IDATEJ' USING FIELD-EDIT-ERROR - TPI-RF2L18J-LTH - TPI-RF2L18J - WORKFLD-ALPHA - TPI-RF2L18M - TPO-RF2L18M-ATTR - TPI-RF2L18A - TPO-RF2L18A-ATTR - WS-TLN-TYPDATE - CONTROL-INDICATOR - IF FIELD-EDIT-GOOD - MOVE WORKFLD-ALPHA TO WS-REF2L18 - ELSE - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR - MOVE ERROR-ATTR TO TPO-RF2L18J-ATTR. - SKIP2 - * RF1L19J FIELD - SKIP1 - CALL 'IDATEJ' USING FIELD-EDIT-ERROR - TPI-RF1L19J-LTH - TPI-RF1L19J - WORKFLD-ALPHA - TPI-RF1L19M - TPO-RF1L19M-ATTR - TPI-RF1L19A - TPO-RF1L19A-ATTR - WS-TLN-TYPDATE - CONTROL-INDICATOR - IF FIELD-EDIT-GOOD - MOVE WORKFLD-ALPHA TO WS-REF1L19 - ELSE - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR - MOVE ERROR-ATTR TO TPO-RF1L19J-ATTR. - SKIP2 - * REF2L19 FIELD - SKIP1 - IF TPI-REF2L19 NOT = SPACE - MOVE TPI-REF2L19 TO WS-REF2L19 - ELSE - MOVE SPACES TO WS-REF2L19. - SKIP2 - * REF3L19 FIELD - SKIP1 - IF TPI-REF3L19 NOT = SPACE - MOVE TPI-REF3L19 TO WS-REF3L19 - ELSE - MOVE SPACES TO WS-REF3L19. - SKIP2 - * REF5L19 FIELD - SKIP1 - IF TPI-REF5L19 NOT = SPACE - MOVE TPI-REF5L19 TO WS-REF5L19 - ELSE - MOVE SPACES TO WS-REF5L19. - SKIP1 - * - * IF ERROR INDICATED, SET DEFAULT ERROR MESSAGE - * - SKIP1 - IF NOT CONTINUE-PROCESS - MOVE ERROR-MESSAGE-HIGHLIGHT TO TPO-ERRMSG1. - SKIP1 - * SCREEN/FLDEDIT NOT CODED - SKIP1 - SKIP1 - E-100-INPUT-EDITS-RETURN. - SKIP1 - * PROGRAM CUSTOM CONTROL E100T - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEE100T ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEC300I R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * HELP CURSEUR - custom code E100T * ! - * Help demand� mais aucune cle de help sur le panel * ! - * * ! - * Dependance avec autres sections : * ! - * GIEL100I,GIEK100I,GIEK100T,GIEK200I,GIEM100T,GIEP100I * ! - **************************************************************** ! - ! - IF APPVAL AND WS-TLN-M100 = 'N' ! - CALL 'HELPCURS' USING XFER-HELP-CUR HELP-CHAR ! - EIBCPOSN TAB-POS-NB TAB-POS TPO-INPUT-FIELDS ! - TELON-EATTR-FEATURE ! - MOVE 0 TO XFER-HELP-POS-COD XFER-HELP-POS-LIB ! - MOVE '000160' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR. ! - *----------------------------------------------! END GIEE100T ---- - - SKIP1 - EJECT - H-100-INPUT-TERM SECTION. - ******************************************************** - * H - 1 0 0 - I N P U T - T E R M * - ******************************************************** - * THIS SECTION IS EXECUTED AT THE END OF INPUT * - * PROCESSING. * - * * - * GENERATED - CREATE/UPDATE DATA ACCESS AUTO CALLS * - * COPY CODE - SCREEN/INTERM * - ******************************************************** - SKIP1 - SKIP1 - * SCREEN/INTERM COPY CODE - SKIP1 - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY INTERM ! - *------------------------------------------------------------------- - * INTERM ! - * ! - * SI LISTE DE DETAIL DEMANDE ON RESTE SUR CET ECRAN TANT QU'ON ! - * N'EST PAS A LA FIN DE LA LISTE ! - * SI FIN RETOUR A L'ECRAN LISTE ! - IF CONTINUE-PROCESS ! - IF VALIDATION ! - AND DEMANDE-DE-VALIDATION ! - * INITIALISATION ZONE D'APPEL AU TN4ESPS ! - MOVE XF-AFF-MEMO-ZON1 TO YN4ESP-ZONE-ALLER(1:127) ! - MOVE XF-AFF-MEMO-ZON2 TO ! - YN4ESP-NO-PTN OF YN4ESP-ZONE-ALLER ! - MOVE XF-AFF-MEMO-ZON3 TO ! - YN4ESP-NO-PRD-PTN OF YN4ESP-ZONE-ALLER ! - MOVE XF-AFF-MEMO-ZON4 TO ! - YN4ESP-NO-CLI-PTN OF YN4ESP-ZONE-ALLER ! - MOVE XF-AFF-MEMO-ZON5 TO ! - YN4ESP-NO-ORD-CTR OF YN4ESP-ZONE-ALLER ! - MOVE XF-AFF-MEMO-ZON6 TO YN4ESP-ZONE-ALLER(138:124) ! - MOVE XF-AFF-MEMO-ZON7 TO ! - YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-ZONE-ALLER ! - MOVE XF-AFF-MEMO-ZON8 TO YN4ESP-ZONE-ALLER(268:113) ! - ! - PERFORM ACCES-TN4ESPS-006 THRU ! - ACCES-TN4ESPS-006-FIN ! - IF CONTINUE-PROCESS ! - ADD 1 TO YC4ESD-NO-OCC-D ! - IF YC4ESD-DA-ENT-OPE OF ! - YC4ESD-ZONE-OCC-DET(YC4ESD-NO-OCC-D) NOT > SPACES ! - MOVE '4E3G0' TO NEXT-PROGRAM-NAME-ID ! - SUBTRACT 1 FROM YC4ESD-NO-OCC-D ! - SET DO-TRANSFER TO TRUE ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - ! - ! - *----------------------------------------------! END INTERM ---- - - SKIP1 - H-100-INPUT-TERM-RETURN. - EXIT. - EJECT - K-100-HOLD-RESTORE SECTION. - ******************************************************** - * K - 1 0 0 - H O L D - R E S T O R E * - ******************************************************** - * THIS ROUTINE RESTORES THE TRANSFER AREA UPON RETURN * - * FROM THE HELP OR HOLD FUNCTION. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - * PROGRAM CUSTOM CONTROL K100I - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEK100I ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEK100I R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * HELP CURSEUR - custom code K100I * ! - * sauvegarde zone xfer-help-cur renseigne dans programme * ! - * appel de valeur. * ! - * * ! - * Dependance avec autres sections : * ! - * GIEE100T,GIEL100I,GIEK100T,GIEK200I,GIEM100T,GIEP100I * ! - **************************************************************** ! - MOVE XFER-HELP-CUR TO WORKFLD-ALPHA. ! - MOVE XFER-MODIFY-INDICATOR TO WS-TLN-MODIFY-INDICATOR. ! - *----------------------------------------------! END GIEK100I ---- - - SKIP1 - SKIP1 - MOVE EIBTRMID TO HOLD-AREA-LTERM. - MOVE HOLD-AREA-APPLID-DFLT TO HOLD-AREA-APPLID. - MOVE 8208 TO HOLD-AREA-SIZE. - SKIP1 - EXEC CICS READQ TS - INTO(HOLD-AREA) - LENGTH(HOLD-AREA-SIZE) - QUEUE(HOLD-AREA-KEY) - ITEM(1) - END-EXEC. - EXEC CICS DELETEQ TS - QUEUE(HOLD-AREA-KEY) - END-EXEC. - SKIP1 - MOVE SCREEN-IMAGE TO TP-OUTPUT-BUFFER-FIELDS. - MOVE LOW-VALUES TO SCREEN-IMAGE-AREA. - SKIP1 - IF HOLD-AREA-TYPE EQUAL 'D' - MOVE ERROR-MESSAGE-HOLD TO TPO-ERRMSG1 - ELSE - MOVE ERROR-MESSAGE-HELP TO TPO-ERRMSG1. - SKIP1 - K-100-HOLD-RESTORE-RETURN. - SKIP1 - * PROGRAM CUSTOM CONTROL K100T - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEK100T ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEK100T R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * HELP CURSEUR - custom code K100T * ! - * Restauration zones de help sauvegard�es en K100I, puis * ! - * r�cup�ration de la donn�e select�e dans le help. * ! - * * ! - * Dependance avec autres sections : * ! - * GIEE100T,GIEL100I,GIEK100I,GIEK200I,GIEM100T,GIEP100I * ! - **************************************************************** ! - MOVE WORKFLD-ALPHA TO XFER-HELP-CUR. ! - IF XFER-HELP-POS-COD > 0 ! - CALL 'HELPCURS' USING XFER-HELP-CUR HELP-CHAR ! - EIBCPOSN TAB-POS-NB TAB-POS TPO-INPUT-FIELDS ! - TELON-EATTR-FEATURE ! - MOVE 0 TO XFER-HELP-POS-COD XFER-HELP-POS-LIB. ! - *----------------------------------------------! END GIEK100T ---- - - SKIP1 - EJECT - K-200-HOLD-RESUME SECTION. - ******************************************************** - * K - 2 0 0 - H O L D - R E S U M E * - ******************************************************** - * THIS ROUTINE RETRIEVES THE HOLD AREA HEADER IF IT * - * EXISTS, SETS THE NEXT PROGRAM NAME BASED ON THE * - * HOLD-RESUME-PGM-ID AND INDICATES TO DO-TRANSFER. * - * IF NO RECORD IS ON HOLD, IT RETURNS AN ERROR. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - * PROGRAM CUSTOM CONTROL K200I - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEK200I ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEK200I R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * HELP CURSEUR - custom code K200I * ! - * initialisation header a partir de la valeur contenu dans * ! - * xfer-hold-area-hdr initialise en L100I du pgm appelant * ! - * * ! - * Dependance avec autres sections : * ! - * GIEE100T,GIEL100I,GIEK100I,GIEK200T,GIEM100T,GIEP100I * ! - **************************************************************** ! - MOVE XFER-HELP-AREA-HDR TO NEXT-PROGRAM-NAME-HDR ! - HOLD-AREA-APPLID-DFLT. ! - *----------------------------------------------! END GIEK200I ---- - - SKIP1 - SKIP1 - MOVE EIBTRMID TO HOLD-AREA-LTERM. - MOVE HOLD-AREA-APPLID-DFLT TO HOLD-AREA-APPLID. - MOVE 16 TO HOLD-AREA-SIZE. - SKIP1 - EXEC CICS HANDLE CONDITION - QIDERR(K-200-HOLD-NOTFND) - LENGERR(K-200-RESUME-OK) - END-EXEC. - EXEC CICS READQ TS - INTO(HOLD-AREA) - LENGTH(HOLD-AREA-SIZE) - QUEUE(HOLD-AREA-KEY) - ITEM(1) - END-EXEC. - SKIP1 - K-200-RESUME-OK. - MOVE HOLD-RESUME-PGM-ID TO NEXT-PROGRAM-NAME-ID. - MOVE HOLD-AREA-TYPE TO XFER-HOLD-INDICATOR. - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR. - GO TO K-200-HOLD-RESUME-RETURN. - SKIP1 - K-200-HOLD-NOTFND. - MOVE ERROR-MESSAGE-RESUME TO TPO-ERRMSG1. - PERFORM N-100-CURSOR-POSITION. - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR. - SKIP2 - K-200-HOLD-RESUME-RETURN. - EXEC CICS HANDLE CONDITION QIDERR LENGERR END-EXEC. - SKIP1 - * PROGRAM CUSTOM CONTROL K200T - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEK300 ! - *------------------------------------------------------------------- - K-300-HOLD-SAVE SECTION. ! - ******************************************************** ! - * K - 3 0 0 - H O L D - S A V E * ! - ******************************************************** ! - * * ! - * CETTE ROUTINE SAUVEGARDE LA COMMAREA EN TS * ! - * * ! - ******************************************************** ! - SKIP1 ! - MOVE EIBTRMID TO WS-TLN-HOLD-AREA-LTERM. ! - SKIP1 ! - EXEC CICS HANDLE CONDITION ! - QIDERR(K-300-OK-TO-HOLD) ! - END-EXEC. ! - * ! - * SI EXISTE SUPPRESION DE LA TS ! - * ! - EXEC CICS DELETEQ TS ! - QUEUE(WS-TLN-HOLD-AREA-KEY) ! - END-EXEC. ! - K-300-OK-TO-HOLD. ! - * ! - * CREATION DE LA TS POUR SAUVEGARDE COMMAREA ! - * ! - EXEC CICS WRITEQ TS MAIN ! - FROM (SPA-AREA) ! - LENGTH(WS-TLN-SPA-LENGTH) ! - QUEUE(WS-TLN-HOLD-AREA-KEY) ! - END-EXEC. ! - SKIP1 ! - K-300-HOLD-SAVE-RETURN. ! - EXIT. ! - SKIP1 ! - K-300-HOLD-RESTORE SECTION. ! - ******************************************************** ! - * K - 3 0 0 - H O L D - R E S T O R E * ! - ******************************************************** ! - * CETTE ROUTINE PERMET DE RESTAURER LA COMMAREA * ! - * APRES ACTION DE L'OPERATEUR * ! - ******************************************************** ! - SKIP1 ! - EXEC CICS HANDLE CONDITION ! - QIDERR(K-300-ABNORMAL-RESTORE) ! - END-EXEC. ! - SKIP1 ! - MOVE EIBTRMID TO WS-TLN-HOLD-AREA-LTERM. ! - SKIP1 ! - EXEC CICS READQ TS ! - INTO(SPA-AREA) ! - LENGTH(WS-TLN-SPA-LENGTH) ! - QUEUE(WS-TLN-HOLD-AREA-KEY) ! - ITEM(1) ! - END-EXEC. ! - EXEC CICS DELETEQ TS ! - QUEUE(WS-TLN-HOLD-AREA-KEY) ! - END-EXEC. ! - SKIP1 ! - GO TO K-300-HOLD-RESTORE-RETURN. ! - SKIP1 ! - K-300-ABNORMAL-RESTORE. ! - ******************************************************** ! - * K - 3 0 0 - H O L D - R E S T O R E * ! - ******************************************************** ! - * SI PROBLEME DANS LECTURE TS, ON RENSEIGNE LES * ! - * DONN�ES RELATIVES � L'ANOMALIE DANS LA VARIABLE * ! - * ABNORMAL-TERMINATION-AREA PUIS ON CHAINE SUR LE * ! - * TRAITEMENT DE GESTION DE L'ANOMALIE * ! - ******************************************************** ! - SKIP1 ! - MOVE WS-TLN-HOLD-AREA-KEY TO ABT-DA-ACCESS-NAME. ! - MOVE 'READ ' TO ABT-DA-FUNCTION. ! - MOVE 'N' TO ABT-TEST-FACILITY-IND ! - ABT-IN-PROGRESS. ! - MOVE 'P' TO ABT-TEST-MODE-IND. ! - MOVE 'CICS' TO ABT-PGM-GEN-TYPE. ! - MOVE +3500 TO ABT-ERROR-ABEND-CODE. ! - MOVE 'QIE' TO ABT-DA-GENERIC-STATUS. ! - MOVE CURRENT-PROGRAM-NAME TO ABT-PGM-NAME. ! - MOVE 'QUEUE ' TO ABT-ERROR-ACTIVITY. ! - MOVE 'K-300 ' TO ABT-ERROR-SECTION-NAME. ! - MOVE SPA-AREA (17:24) TO XFER-DBT-ZON-APL. ! - MOVE WS-TLN-SPA-LENGTH TO SPA-LENGTH. ! - MOVE '00ABD' TO NEXT-PROGRAM-NAME-ID. ! - SKIP1 ! - PERFORM C-300-TERMIO-XFER. ! - SKIP1 ! - K-300-HOLD-RESTORE-RETURN. ! - *----------------------------------------------! END GIEK300 ---- - - SKIP1 - EJECT - L-100-HOLD-SAVE SECTION. - ******************************************************** - * L - 1 0 0 - H O L D - S A V E * - ******************************************************** - * THIS ROUTINE SAVES THE TRANSFER AREA IN THE HOLD * - * FILE. IT IS PERFORMED FOR THE HOLD OR HELP * - * FUNCTION. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - * PROGRAM CUSTOM CONTROL L100I - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEL100I ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEL100I R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * HELP CURSEUR - custom code L100I * ! - * Sauvegarde header programme declenchant l'appel de valeur * ! - * pour le nom de la ts a restaurer dans le pgm appele, et * ! - * le nom du pgm a reactiver. * ! - * * ! - * Dependance avec autres sections : * ! - * GIEE100T,GIEK100I,GIEK100T,GIEK200I,GIEM100T,GIEP100I * ! - **************************************************************** ! - MOVE TPO-INPUT-FIELDS TO SCREEN-IMAGE. ! - MOVE HOLD-AREA-APPLID-DFLT TO XFER-HELP-AREA-HDR. ! - MOVE SCI-MODIFY-INDICATOR TO XFER-MODIFY-INDICATOR. ! - *----------------------------------------------! END GIEL100I ---- - - SKIP1 - SKIP1 - MOVE PROGRAM-NAME OF SYS-WORK-AREA TO HOLD-RESUME-PGM-ID. - MOVE EIBTRMID TO HOLD-AREA-LTERM. - MOVE HOLD-AREA-APPLID-DFLT TO HOLD-AREA-APPLID. - MOVE 16 TO HOLD-AREA-SIZE. - SKIP1 - EXEC CICS HANDLE CONDITION - QIDERR(L-100-OK-TO-HOLD) - LENGERR(L-100-HOLD-ERROR) - END-EXEC. - EXEC CICS READQ TS - SET(UPDATE-PTR) - LENGTH(HOLD-AREA-SIZE) - QUEUE(HOLD-AREA-KEY) - ITEM(1) - END-EXEC. - L-100-HOLD-ERROR. - * - * FOR HELP FUNCTION, DELETE THE PRIOR HOLD RECORD - * FOR HOLD FUNCTION, MULTIPLE HOLDS ARE NOT ALLOWED - * - IF HOLD-AREA-TYPE = 'P' - EXEC CICS DELETEQ TS - QUEUE(HOLD-AREA-KEY) - END-EXEC - ELSE - MOVE ERROR-MESSAGE-HOLD-ISRT TO TPO-ERRMSG1 - PERFORM N-100-CURSOR-POSITION - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR - GO TO L-100-HOLD-SAVE-RETURN. - SKIP1 - L-100-OK-TO-HOLD. - * - * INSERT THE HOLD AREA TO TEMPORARY STORAGE - * - MOVE 8208 TO HOLD-AREA-SIZE. - EXEC CICS WRITEQ TS MAIN - FROM (HOLD-AREA) - LENGTH(HOLD-AREA-SIZE) - QUEUE(HOLD-AREA-KEY) - END-EXEC. - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR. - SKIP1 - L-100-HOLD-SAVE-RETURN. - EXEC CICS HANDLE CONDITION QIDERR LENGERR END-EXEC. - EJECT - N-100-CURSOR-POSITION SECTION. - ******************************************************** - * N - 1 0 0 - C U R S O R - P O S I T I O N * - ******************************************************** - * THIS SECTION POSITIONS THE CURSOR TO THE PROPER * - * FIELD FOR OUTPUT. * - * * - * GENERATED - MOVE CURSOR-ATTR TO SCREEN/CURSOR FIELD * - * COPY CODE - SCREEN/CURSCUS * - ******************************************************** - SKIP1 - MOVE CURSOR-ATTR TO TPO-DAPECJ-ATTR. - SKIP1 - * SCREEN/CURSCUS NOT CODED - SKIP1 - SKIP1 - N-100-CURSOR-POSITION-RETURN. - EXIT. - EJECT - P-100-PFKEYS SECTION. - ******************************************************** - * P - 1 0 0 - P F K E Y S * - ******************************************************** - * THIS SECTION PROCESSES PFKEYS. * - * * - * COPY CODE - SCREEN/PFKEYS * - ******************************************************** - SKIP1 - * PROGRAM CUSTOM CONTROL P100I - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEP100I ! - *------------------------------------------------------------------- - **************************************************************** ! - * Code personnalisation : CMB GIEP100I R1 V1 * ! - * Date de creation : 27/01/1992 * ! - * Date de modification : / / * ! - * * ! - * Fonctionnalites : * ! - * HELP CURSEUR - custom code P100I * ! - * recherche des zones initialis�es manuellement � '?' pour * ! - * initialisation de ces zones a space. * ! - * Si help demand� alors qu'il est d�j� actif, envoi d'un * ! - * message. Sinon, marquage du champ par un '?' si la * ! - * position du curseur est valide. * ! - * * ! - * Dependance avec autres sections : * ! - * GIEE100I,GIEL100I,GIEK100I,GIEK100T,GIEK200I,GIEM100I * ! - **************************************************************** ! - CALL 'HELPINIT' USING TAB-POS-NB TAB-POS ! - TPO-INPUT-FIELDS TELON-EATTR-FEATURE ! - IF APPVAL ! - IF XFER-HELP-POS-COD > 0 ! - MOVE '000158' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - GO TO P-100-PFKEYS-RETURN ! - ELSE ! - MOVE 0 TO XFER-HELP-POS-COD ! - CALL 'HELPCURS' USING XFER-HELP-CUR HELP-CHAR ! - EIBCPOSN TAB-POS-NB TAB-POS TPO-INPUT-FIELDS ! - TELON-EATTR-FEATURE ! - IF XFER-HELP-POS-COD = 0 ! - MOVE '000159' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - GO TO P-100-PFKEYS-RETURN ! - ELSE ! - MOVE BMSMAP-NAME TO XFER-HELP-MAP-NAME ! - GO TO P-100-PFKEYS-RETURN. ! - *----------------------------------------------! END GIEP100I ---- - - SKIP1 - SKIP1 - MOVE SPACES TO TPO-ERRMSG1. - SKIP1 - * - * PFKEY X ROUTINE - * - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY CPFKX ! - *------------------------------------------------------------------- - **************************************************************** ! - * COPY PERMETTANT UNE GESTION AUTOMATIQUE DES FONCTIONS * ! - * - RETOUR A L'ECRAN PRECEDENT * ! - * - RETOUR AU MENU PRECEDENT * ! - * - RETOUR AU MENU GENERAL * ! - **************************************************************** ! - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEMNGEN 2! - *------------------------------------------------------------------- - * !!!!! attention si maintenance * 2! - * lors de compil de program cics natif on ne va pas chercher * 2! - * la clause copy dans cette bibliotheque * 2! - * --> copy de eccx.ppo00.srctlib(giemngen) dans * 2! - * de ec00.ppo00.srclib(giemngen) * 2! - **************************************************************** 2! - * Code personnalisation : CMB GIEMNGEN R1 V1 * 2! - * Date de creation : 27/01/1992 * 2! - * Date de modification : / / * 2! - * * 2! - * Fonctionnalites : * 2! - * TRAITEMENT NORMALISE DE LA FONCTION RETOUR MENU PRINCIPAL * 2! - * * 2! - * Dependance avec autres sections : * 2! - **************************************************************** 2! - IF MENUGEN 2! - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR 2! - IF XFER-NB > 1 2! - MOVE XFER-PROG(1) TO NEXT-PROGRAM-NAME 2! - WS-TLN-TYP-PROG 2! - IF NOT WS-TLN-PROG-TELON 2! - THEN MOVE 'C' TO WS-TLN-TYP-XCTL 2! - END-IF 2! - ELSE MOVE 'P001F4 ' TO NEXT-PROGRAM-NAME 2! - MOVE 'C' TO WS-TLN-TYP-XCTL. 2! - *----------------------------------------------! END GIEMNGEN ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEECPRE 2! - *------------------------------------------------------------------- - **************************************************************** 2! - * Code personnalisation : CMB GIEECPRE R1 V1 * 2! - * Date de creation : 27/01/1992 * 2! - * Date de modification : / / * 2! - * * 2! - * Fonctionnalites : * 2! - * TRAITEMENT NORMALISE POUR LA FONCTION ECRAN PRECEDENT * 2! - * * 2! - * Dependance avec autres sections : * 2! - * GIEMNGEN,GIEMNINT,GIEECRINT * 2! - **************************************************************** 2! - IF ECRPRE OR CLEAR 2! - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR 2! - IF XFER-NB > 1 2! - COMPUTE XFER-NB = XFER-NB - 1 2! - MOVE XFER-PROG(XFER-NB) TO NEXT-PROGRAM-NAME 2! - WS-TLN-TYP-PROG 2! - IF NOT WS-TLN-PROG-TELON 2! - THEN MOVE 'C' TO WS-TLN-TYP-XCTL 2! - END-IF 2! - ELSE MOVE 'P001F3 ' TO NEXT-PROGRAM-NAME 2! - MOVE 'C' TO WS-TLN-TYP-XCTL. 2! - *----------------------------------------------! END GIEECPRE ---- - - - *TELON-------------------------------------------------------------- - *DS: PCFL.PPO00REF.COPY ! COPY GIEMNPRE 2! - *------------------------------------------------------------------- - * !!!!! attention si maintenance * 2! - * lors de compil de program cics natif on ne va pas chercher * 2! - * la clause copy dans cette bibliotheque * 2! - * --> copy de eccx.ppo00.srctlib(giemnpre) dans * 2! - * de ec00.ppo00.srclib(giemnpre) * 2! - **************************************************************** 2! - * CODE PERSONNALISATION : CMB GIEMNPRE R1 V1 * 2! - * Date de creation : 27/01/1992 * 2! - * Date de modification : / / * 2! - * * 2! - * Fonctionnalites : * 2! - * gestion de la fonction menu precedent * 2! - * * 2! - * Dependance avec autres sections : * 2! - **************************************************************** 2! - IF MENUPRE 2! - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR 2! - IF XFER-NB > 1 2! - COMPUTE WS-TLN-IND = XFER-NB - 1 2! - PERFORM UNTIL WS-TLN-IND = ZERO 2! - IF XFER-MENU(WS-TLN-IND) = 'M' 2! - THEN MOVE WS-TLN-IND TO XFER-NB 2! - MOVE XFER-PROG(XFER-NB) TO NEXT-PROGRAM-NAME 2! - WS-TLN-TYP-PROG 2! - IF NOT WS-TLN-PROG-TELON 2! - THEN MOVE 'C' TO WS-TLN-TYP-XCTL 2! - END-IF 2! - MOVE ZERO TO WS-TLN-IND 2! - ELSE SUBTRACT 1 FROM WS-TLN-IND 2! - END-IF 2! - END-PERFORM 2! - ELSE MOVE 'P001F4 ' TO NEXT-PROGRAM-NAME 2! - MOVE 'C' TO WS-TLN-TYP-XCTL. 2! - *----------------------------------------------! END GIEMNPRE ---- - - ! - **************************************************************** ! - * GESTION DES TOUCHES DE FOCNTION NON AUTORISEES. * ! - **************************************************************** ! - ! - IF NOT (ENTER-KEY OR ECRPRE OR CLEAR OR ! - MENUPRE OR MENUGEN OR VALIDATION) ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - MOVE '000001' TO TPO-ERRMSG1. ! - ! - ! - *----------------------------------------------! END CPFKX ---- - - IF (CLEAR AND CONTINUE-PROCESS) - MOVE SPACES TO SPA-TRANSACTION-CODE - EXEC CICS SEND - FROM(SPA-TRANSACTION-CODE) - LENGTH(1) - END-EXEC - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR. - SKIP1 - P-100-PFKEYS-RETURN. - EXIT. - EJECT - Q-100-CICS-INIT SECTION. - ******************************************************** - * Q - 1 0 0 - C I C S - I N I T R O U T I N E * - ******************************************************** - * THIS ROUTINE OPTIONALLY CALLS THE TELON TEST * - * FACILITY FOR PROGRAM TRACE AND SCHEDULES THE DLI * - * PSB WHEN APPLICABLE. * - * * - * GENERATED - ENTIRE SECTION * - ******************************************************** - SKIP1 - CALL 'ADLAATI' USING DFHEIBLK DFHCOMMAREA. - SKIP1 - Q-100-CICS-INIT-RETURN. - EXIT. - EJECT - X-100-CONSIS-EDITS SECTION. - ******************************************************** - * X - 1 0 0 - C O N S I S - E D I T S * - ******************************************************** - * THIS SECTION CONTAINS THE COPY CODE FOR ALL * - * CONSISTENCY EDITS REQUIRED ON INPUT. * - * * - * COPY CODE - SCREEN/CONSIS * - ******************************************************** - SKIP1 - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY CONSIS ! - *------------------------------------------------------------------- - * CONTROLE DE SAISIE SUR ENTETE COMMUN ! - IF NOT VALIDATION ! - ! - INITIALIZE XF-AFF-MEMO-YN4ESPS ! - INITIALIZE Y00CIA-Y00CIA ! - INITIALIZE YN4ESP-ZONE-ALLER ! - ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - ! - PERFORM CTRL-SAISIE1 THRU CTRL-SAISIE1-FIN ! - IF CONTINUE-PROCESS ! - ! - EVALUATE YC4ESD-CD-APLI-OPE OF YC4ESD-ZONE-MODIF ! - WHEN 'CH' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLSCH THRU CTRLSCH-FIN ! - ! - END-IF ! - ! - WHEN 'P7' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLSP7 THRU CTRLSP7-FIN ! - ! - END-IF ! - ! - WHEN '4D' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLS4DF THRU CTRLS4DF-FIN ! - ! - END-IF ! - ! - WHEN '4F' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLS4DF THRU CTRLS4DF-FIN ! - ! - END-IF ! - ! - WHEN '37' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLS37 THRU CTRLS37-FIN ! - ! - END-IF ! - ! - WHEN '4G' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLS4G THRU CTRLS4G-FIN ! - ! - END-IF ! - ! - WHEN 'CO' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLSCO THRU CTRLSCO-FIN ! - ! - END-IF ! - ! - WHEN 'DG' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLSDG THRU CTRLSDG-FIN ! - ! - END-IF ! - ! - WHEN 'FI' ! - IF CONTINUE-PROCESS AND NOT VALIDATION ! - PERFORM CTRLSFI THRU CTRLSFI-FIN ! - ! - END-IF ! - END-EVALUATE ! - END-IF ! - ! - IF CONTINUE-PROCESS ! - * SAUVEGARDE DE LA ZONE DE COMMUNICATION YN4ESPS ! - MOVE YN4ESP-ZONE-ALLER(1:127) TO XF-AFF-MEMO-ZON1 ! - MOVE YN4ESP-NO-PTN OF YN4ESP-ZONE-ALLER ! - TO XF-AFF-MEMO-ZON2 ! - MOVE YN4ESP-NO-PRD-PTN OF YN4ESP-ZONE-ALLER ! - TO XF-AFF-MEMO-ZON3 ! - MOVE YN4ESP-NO-CLI-PTN OF YN4ESP-ZONE-ALLER ! - TO XF-AFF-MEMO-ZON4 ! - MOVE YN4ESP-NO-ORD-CTR OF YN4ESP-ZONE-ALLER ! - TO XF-AFF-MEMO-ZON5 ! - MOVE YN4ESP-ZONE-ALLER(138:124) TO XF-AFF-MEMO-ZON6 ! - MOVE YN4ESP-NO-DOS-SIN-DCS OF YN4ESP-ZONE-ALLER ! - TO XF-AFF-MEMO-ZON7 ! - MOVE YN4ESP-ZONE-ALLER(268:113) TO XF-AFF-MEMO-ZON8 ! - ! - * PROTEGER LES ZONES SAISISSABLES DE L'ECRAN ! - MOVE PROT-ATTR TO TPO-DAPECJ-ATTR ! - TPO-DAPECM-ATTR ! - TPO-DAPECA-ATTR ! - TPO-DAECNJ-ATTR ! - TPO-DAECNM-ATTR ! - TPO-DAECNA-ATTR ! - TPO-CDBQE1-ATTR ! - TPO-CDGUI1-ATTR ! - TPO-NOCPT1-ATTR ! - TPO-NOCHQ-ATTR ! - TPO-CDPTN-ATTR ! - TPO-REF1L15-ATTR ! - TPO-REF2L15-ATTR ! - TPO-REF1L16-ATTR ! - TPO-REF4L16-ATTR ! - TPO-REF1L17-ATTR ! - TPO-RF1L18J-ATTR ! - TPO-RF1L18M-ATTR ! - TPO-RF1L18A-ATTR ! - TPO-RF2L18J-ATTR ! - TPO-RF2L18M-ATTR ! - TPO-RF2L18A-ATTR ! - TPO-RF1L19J-ATTR ! - TPO-RF1L19M-ATTR ! - TPO-RF1L19A-ATTR ! - TPO-REF2L19-ATTR ! - TPO-REF3L19-ATTR ! - TPO-REF5L19-ATTR ! - ! - MOVE '000010' TO TPO-ERRMSG1 ! - SET DEMANDE-DE-VALIDATION TO TRUE ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - END-IF ! - END-IF. ! - ! - *----------------------------------------------! END CONSIS ---- - - SKIP1 - X-100-CONSIS-EDITS-RETURN. - EXIT. - EJECT - Z-100-SECTIONS-COPY SECTION. - ******************************************************** - * S E C T I O N C O P Y C O D E * - ******************************************************** - * THIS SECTION CONTAINS THE COPY CODE FOR THE SECTION * - * PARAMETER. * - * * - * NOTE: Z-100-SECTIONS-COPY SHOULD NEVER BE PERFORMED * - * DIRECTLY, AS THIS SECTION ALWAYS ABENDS. * - * * - * A USER 99 ABEND IS ISSUED BY THE COBOL ABEND * - * ROUTINE. THIS IS USUALLY CAUSED BY CUSTOM CODE IN * - * J-100 THAT DOES A "GO TO X-100-CONSIS-EDITS-RETURN" * - * (I.E. FIELD/SELECT/SCONSIS CODE). * - * * - * COPY CODE - SCREEN/SECTION * - ******************************************************** - EXEC CICS ABEND ABCODE(FALLOUT-ABEND-CODE) END-EXEC. - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY SPRACCES ! - *------------------------------------------------------------------- - * ACCES ACCESSEUR ! - * ! - ACCES-P4DTRANT. ! - *-------------- ! - MOVE '3' TO Y4DTRA-CD-TY-CTRL-E ! - MOVE ZERO TO Y4DTRA-NO-PTN-E ! - ! - MOVE WS-REF2L15 TO Y4DTRA-CD-PRD-E ! - MOVE WS-CD-PTN TO Y4DTRA-CD-PTN-E ! - MOVE SPACES TO Y4DTRA-CD-CLI-PTN-E ! - Y4DTRA-NO-CTR-PTN-E ! - EXEC CICS LINK PROGRAM ('P4DTRANT') ! - COMMAREA (Y4DTRA-Y4DTRAN) ! - LENGTH (Y4DTRA-LONG-SEG) ! - END-EXEC. ! - IF Y4DTRA-CD-RET-S NOT = ZERO AND ! - NOT = '0007' ! - MOVE 'P4DTRANT' TO ABT-ERROR-SECTION ! - MOVE 'DBM' TO ABT-DA-GENERIC-STATUS ! - MOVE Y4DTRA-NOM-PROC-S ! - TO ABT-DA-FUNCTION ! - MOVE 'DB2' TO ABT-ERROR-ACTIVITY ! - MOVE Y4DTRA-NOM-FIC-S ! - TO ABT-DA-ACCESS-NAME ! - MOVE Y4DTRA-CD-RET-SQL-S TO ABT-DB2-STATUS ! - MOVE '00ABD' TO NEXT-PROGRAM-NAME-ID ! - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF Y4DTRA-CD-RET-S = ZERO ! - MOVE Y4DTRA-LIB-PRD-S TO WS-REF3L15 ! - ELSE ! - MOVE '4E0022' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE ERROR-ATTR TO TPO-CDPTN-ATTR ! - END-IF ! - END-IF. ! - ! - ACCES-P4DTRANT-FIN. ! - *------------------ ! - EXIT. ! - ! - * CALCUL DU RIB ! - ACCES-P00271. ! - ! - ! - IF NOT DO-TRANSFER ! - ! - MOVE SPACES TO ZL00271-ENR ! - MOVE 'P00271 ' TO ZL00271-NO-PGM ! - MOVE '2' TO ZL00271-CD-CHX ! - MOVE WS-CPT TO ZL00271-RIB-21-CAR ! - ! - EXEC CICS LINK PROGRAM ('P00271') ! - COMMAREA (ZL00271-ENR) ! - LENGTH (ZL00271-LG-COMM) ! - END-EXEC ! - ! - MOVE ZL00271-RIB-CLE TO WS-CPT-RIB-CLE ! - ! - END-IF. ! - ! - ACCES-P00271-FIN. EXIT. ! - **************************************************************** ! - * * ! - * SPRACCES * ! - * * ! - **************************************************************** ! - ! - ACCES-TN4ESPS-005. ! - ! - INITIALIZE Y00CIA-Y00CIA. ! - MOVE '005' TO Y00CIA-FCT-DEM ! - MOVE 'TN4ESPS' TO Y00CIA-NO-PGM-CICS-APP. ! - MOVE 'TC4E3H0' TO Y00CIA-NO-PGM-CICS-AT. ! - MOVE 'M' TO Y00CIA-CD-PVN-APP. ! - ! - MOVE SPACES TO Y00CIA-ZON-APLI. ! - ! - INITIALIZE WS-YN4ESPS-APLI. ! - ! - MOVE YC4ESD-NO-SEQ OF YC4ESD-ZONE-OCC-DET(YC4ESD-NO-OCC-D) ! - TO YN4ESP-NO-SEQ-SP OF YN4ESP-ZONE-ALLER. ! - MOVE YC4ESD-DA-ENT-OPE ! - OF YC4ESD-ZONE-OCC-DET(YC4ESD-NO-OCC-D) ! - TO YN4ESP-DA-ENT-OPE-SP OF YN4ESP-ZONE-ALLER. ! - MOVE 'N' TO YN4ESP-IDC-PEC-OPE-SP OF ! - YN4ESP-ZONE-ALLER. ! - ! - ! - EXEC CICS LINK PROGRAM ('TN4ESPS') ! - COMMAREA (Y00CIA) ! - LENGTH (16000) ! - END-EXEC. ! - ! - EVALUATE Y00CIA-CD-RET-PGM ! - WHEN 16 ! - MOVE Y00CIA-ZON-APLI TO ABNORMAL-TERMINATION-AREA ! - MOVE '00ABD ' TO NEXT-PROGRAM-NAME-ID ! - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR ! - WHEN 08 ! - MOVE Y00CIA-CD-MES-ERR TO TPO-ERRMSG1 ! - MOVE Y00CIA-LIB-CPL-MES-ERR ! - TO WS-TLN-LIB-CPL-MES ! - SET DO-WRITE TO TRUE ! - END-EVALUATE. ! - ! - ACCES-TN4ESPS-005-FIN. ! - EXIT. ! - ! - ACCES-TN4ESPS-006. ! - ! - MOVE '006' TO Y00CIA-FCT-DEM ! - MOVE 'TN4ESPS' TO Y00CIA-NO-PGM-CICS-APP. ! - MOVE 'TC4E3H0' TO Y00CIA-NO-PGM-CICS-AT. ! - MOVE 'M' TO Y00CIA-CD-PVN-APP. ! - ! - MOVE YC4ESD-NO-SEQ OF YC4ESD-ZONE-OCC-DET(YC4ESD-NO-OCC-D) ! - TO YN4ESP-NO-SEQ-SP OF YN4ESP-ZONE-ALLER. ! - MOVE YC4ESD-DA-ENT-OPE ! - OF YC4ESD-ZONE-OCC-DET(YC4ESD-NO-OCC-D) ! - TO YN4ESP-DA-ENT-OPE-SP OF YN4ESP-ZONE-ALLER. ! - MOVE 'N' TO YN4ESP-IDC-PEC-OPE-SP OF YN4ESP-ZONE-ALLER. ! - MOVE YC4ESD-CD-APLI-OPE OF YC4ESD-ZONE-MODIF ! - TO YN4ESP-CD-APLI-OPE OF YN4ESP-ZONE-ALLER. ! - ! - ! - EXEC CICS LINK PROGRAM ('TN4ESPS') ! - COMMAREA (Y00CIA) ! - LENGTH (16000) ! - END-EXEC. ! - ! - EVALUATE Y00CIA-CD-RET-PGM ! - WHEN 16 ! - MOVE Y00CIA-ZON-APLI TO ABNORMAL-TERMINATION-AREA ! - MOVE '00ABD ' TO NEXT-PROGRAM-NAME-ID ! - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR ! - WHEN 08 ! - MOVE Y00CIA-CD-MES-ERR TO TPO-ERRMSG1 ! - MOVE Y00CIA-LIB-CPL-MES-ERR ! - TO WS-TLN-LIB-CPL-MES ! - SET DO-WRITE TO TRUE ! - WHEN 00 ! - MOVE '000193' TO YC4ESD-CD-MES-ERR ! - END-EVALUATE. ! - ! - ACCES-TN4ESPS-006-FIN. ! - EXIT. ! - ACCES-TN4D101. ! - *---------------* ! - INITIALIZE Y4D101-Y4DN101. ! - MOVE WS-CD-PTN TO Y4D101-CD-PTN. ! - MOVE 'TN4D101' TO Y00WIA-NO-PGM-CICS-APP ! - MOVE 'TC4E3H0' TO Y00WIA-NO-PGM-CICS-AT ! - MOVE '002' TO Y00WIA-FCT-DEM ! - EXEC CICS LINK PROGRAM ('TN4D101') ! - COMMAREA (Y00WIA) ! - LENGTH (4096) ! - END-EXEC ! - IF Y00WIA-CD-RET-PGM = 16 ! - MOVE Y00WIA-ZON-APLI TO ABNORMAL-TERMINATION-AREA ! - MOVE '00ABD ' TO NEXT-PROGRAM-NAME-ID ! - MOVE DO-TRANSFER-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF Y00WIA-CD-RET-PGM NOT = 0 ! - MOVE Y00WIA-LIB-CPL-MES-ERR TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF Y4D101-LA-PTN = SPACES ! - MOVE Y4D101-NOM-PTN TO WS-LIB-PTN ! - ELSE ! - MOVE Y4D101-LA-PTN TO WS-LIB-PTN ! - END-IF ! - END-IF ! - END-IF. ! - ACCES-TN4D101-FIN. EXIT. ! - *----------------------------------------------! END SPRACCES ---- - - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY SPITAB ! - *------------------------------------------------------------------- - * ACCES SPITAB ! - * ACCES SPITAB ! - ************************************************************** ! - * ACCES A LA TABLE YSP4E013 POUR TROUVER LE LIBELLE COURT ! - * DU CRO ! - ************************************************************** ! - ! -056400 ACCES-SPI013. ! -056800 ! -058800 MOVE LOW-VALUES TO YSP4E013-YSP4E013. ! -058900 MOVE '00' TO SPI-RETCOD. ! - MOVE SPACE TO SPI-PARMCICS. ! - MOVE 'GP' TO SPI-FONCTION. ! -700 MOVE '= ' TO SPI-OPERATEUR. ! - MOVE 'YSP4E013' TO SPI-CODTAB. ! - MOVE +2500 TO SPI-LONG. ! - MOVE 'SPI2TAB' TO SPI-FICHIER. ! -900 MOVE WS-REF2L19 TO YSP4E013-CD-TY-CRO ! - MOVE YN4ESP-CD-APLI-OPE OF YN4ESP-DETAIL-SIT ! - TO YSP4E013-CD-APLI-OPE. ! - MOVE YSP4E013-YSP4E013 TO SPI-REF-POSTE. ! -000 ! - EXEC CICS LINK PROGRAM ('SPI2TCV') ! - COMMAREA (SPI-PARMCICS) ! - LENGTH (SPI-LONG) ! - END-EXEC. ! -400 ! -400 ! -500 EVALUATE SPI-RETCOD ! -600 WHEN '00' ! -700 MOVE SPI-IOAREA TO YSP4E013-YSP4E013 ! - MOVE YSP4E013-LIB-TY-VER TO WS-REF4L19 ! - ! - WHEN '02' ! - MOVE 'TYPE CRO INCONNU, VOIR TABLE YSP4E013' ! - TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! -300 WHEN OTHER ! - MOVE Y00CIA-ZON-APLI TO ABNORMAL-TERMINATION-AREA ! - MOVE '00ABD ' TO NEXT-PROGRAM-NAME-ID ! - SET DO-TRANSFER TO TRUE ! -900 END-EVALUATE. ! -065000 ! -056400 ACCES-SPI013-FIN. EXIT. ! -065000 ! -065000 ! - ************************************************************** ! - * ACCES A LA TABLE YSP4E053 POUR TROUVER LE LIBELLE MODE ! - * REGLEMENT ! - ************************************************************** ! - ! -056400 ACCES-SPI053. ! -056800 ! -058800 MOVE LOW-VALUES TO YSP4E053-YSP4E053. ! -058900 MOVE '00' TO SPI-RETCOD. ! - MOVE SPACE TO SPI-PARMCICS. ! - MOVE 'GP' TO SPI-FONCTION. ! -700 MOVE '= ' TO SPI-OPERATEUR. ! - MOVE 'YSP4E053' TO SPI-CODTAB. ! - MOVE +2500 TO SPI-LONG. ! - MOVE 'SPI2TAB' TO SPI-FICHIER. ! - MOVE YN4ESP-CD-MODE-RGL-OPE OF YN4ESP-DETAIL-SIT ! - TO YSP4E053-CD-MODE-RGL-OPE. ! - MOVE YSP4E053-YSP4E053 TO SPI-REF-POSTE. ! -000 ! - EXEC CICS LINK PROGRAM ('SPI2TCV') ! - COMMAREA (SPI-PARMCICS) ! - LENGTH (SPI-LONG) ! - END-EXEC. ! -400 ! -400 ! -500 EVALUATE SPI-RETCOD ! -600 WHEN '00' ! -700 MOVE SPI-IOAREA TO YSP4E053-YSP4E053 ! - WHEN '02' ! - MOVE SPACES TO TPO-LIBRGL ! -300 WHEN OTHER ! - MOVE Y00CIA-ZON-APLI TO ABNORMAL-TERMINATION-AREA ! - MOVE '00ABD ' TO NEXT-PROGRAM-NAME-ID ! - SET DO-TRANSFER TO TRUE ! -900 END-EVALUATE. ! -065000 ! -056400 ACCES-SPI053-FIN. EXIT. ! -065000 ! - ************************************************************** ! - * ACCES A LA TABLE YSP4E017 POUR TROUVER LE LIBELLE DU CODE ! - * REJET DU MOUVEMENT ! - ************************************************************** ! - ! -056400 ACCES-SPI017. ! -056800 ! -058800 MOVE LOW-VALUES TO YSP4E017-YSP4E017. ! -058900 MOVE '00' TO SPI-RETCOD. ! - MOVE SPACE TO SPI-PARMCICS. ! - MOVE 'GP' TO SPI-FONCTION. ! -700 MOVE '= ' TO SPI-OPERATEUR. ! - MOVE 'YSP4E017' TO SPI-CODTAB. ! - MOVE +2500 TO SPI-LONG. ! - MOVE 'SPI2TAB' TO SPI-FICHIER. ! - MOVE YN4ESP-CD-REJ-OPE OF YN4ESP-DETAIL-SIT ! - TO YSP4E017-CD-REJ-OPE. ! - MOVE YSP4E017-YSP4E017 TO SPI-REF-POSTE. ! -000 ! - EXEC CICS LINK PROGRAM ('SPI2TCV') ! - COMMAREA (SPI-PARMCICS) ! - LENGTH (SPI-LONG) ! - END-EXEC. ! -400 ! -400 ! -500 EVALUATE SPI-RETCOD ! -600 WHEN '00' ! -700 MOVE SPI-IOAREA TO YSP4E017-YSP4E017 ! -900 MOVE YSP4E017-LIB-REJ-OPE TO WS-LIB-REJ-OPE ! - WHEN '02' ! - MOVE SPACES TO TPO-LIBREJ ! -300 WHEN OTHER ! - MOVE Y00CIA-ZON-APLI TO ABNORMAL-TERMINATION-AREA ! - MOVE '00ABD ' TO NEXT-PROGRAM-NAME-ID ! - SET DO-TRANSFER TO TRUE ! -900 END-EVALUATE. ! -065000 ! -056400 ACCES-SPI017-FIN. EXIT. ! -065000 ! - *----------------------------------------------! END SPITAB ---- - - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY CTRL1 ! - *------------------------------------------------------------------- - * CONTROLE SAISIE UTILISATEUR ! - ! - * CONTROLE SAISIE UTILISATEUR ! - ****************************** ! - CTRL-SAISIE1. ! - ! - IF TPO-DAPECJ-ATTR = ERROR-ATTR ! - OR TPO-DAPECM-ATTR = ERROR-ATTR ! - OR TPO-DAPECA-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-DAPECJ NOT = XF-AFF-DA-PEC-DEM-JJ ! - OR TPI-DAPECM NOT = XF-AFF-DA-PEC-DEM-MM ! - OR TPI-DAPECA NOT = XF-AFF-DA-PEC-DEM-SA ! - MOVE TPI-DAPECJ TO WS-DA10-JJ ! - MOVE TPI-DAPECM TO WS-DA10-MM ! - MOVE TPI-DAPECA TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-PEC-DEM-SP ! - OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-DA-PEC-DEM-JJ TO WS-DAFIC-JJ ! - MOVE XF-AFF-DA-PEC-DEM-MM TO WS-DAFIC-MM ! - MOVE XF-AFF-DA-PEC-DEM-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-PEC-DEM-SP ! - OF YN4ESP-ZONE-ALLER ! - END-IF. ! - ! - IF TPO-DAECNJ-ATTR = ERROR-ATTR ! - OR TPO-DAECNM-ATTR = ERROR-ATTR ! - OR TPO-DAECNA-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-DAECNJ NOT = XF-AFF-DA-ECN-OPE-JJ ! - OR TPI-DAECNM NOT = XF-AFF-DA-ECN-OPE-MM ! - OR TPI-DAECNA NOT = XF-AFF-DA-ECN-OPE-SA ! - MOVE TPI-DAECNJ TO WS-DA10-JJ ! - MOVE TPI-DAECNM TO WS-DA10-MM ! - MOVE TPI-DAECNA TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-ECN-OPE ! - OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-DA-ECN-OPE-JJ TO WS-DAFIC-JJ ! - MOVE XF-AFF-DA-ECN-OPE-MM TO WS-DAFIC-MM ! - MOVE XF-AFF-DA-ECN-OPE-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-ECN-OPE OF ! - YN4ESP-ZONE-ALLER ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF WS-CD-BQE-DST1 NOT NUMERIC ! - MOVE '4E0041' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-CDBQE1-ATTR ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF WS-CD-GUI-DST1 NOT NUMERIC ! - MOVE '4E0042' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-CDGUI1-ATTR ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - END-IF. ! - ! - ! - IF CONTINUE-PROCESS ! - IF WS-CD-BQE-DST1 NOT = XF-AFF-CD-BQE-DST1 ! - OR WS-CD-GUI-DST1 NOT = XF-AFF-CD-GUI-DST1 ! - OR WS-NO-CPT-DST1 NOT = XF-AFF-NO-CPT-DST1 ! - ! - MOVE WS-CD-BQE-DST1 TO WS-CPT-BQE ! - MOVE WS-CD-GUI-DST1 TO WS-CPT-GUI ! - MOVE WS-NO-CPT-DST1 TO WS-CPT-CPT ! - MOVE ZERO TO WS-CPT-RIB-CLE ! - ! - PERFORM ACCES-P00271 THRU ACCES-P00271-FIN ! - MOVE WS-CPT-RIB-CLE TO WS-CLE-RIB1 ! - MOVE WS-CLE-RIB1 TO TPO-CLERIB1 ! - ! - MOVE WS-CD-BQE-DST1 TO YN4ESP-CD-BQE-DST ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-CD-GUI-DST1 TO YN4ESP-CD-GUI-DST ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-NO-CPT-DST1 TO YN4ESP-NO-CPT-DST ! - OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-CD-BQE-DST1 TO YN4ESP-CD-BQE-DST ! - OF YN4ESP-ZONE-ALLER ! - MOVE XF-AFF-CD-GUI-DST1 TO YN4ESP-CD-GUI-DST ! - OF YN4ESP-ZONE-ALLER ! - MOVE XF-AFF-NO-CPT-DST1 TO YN4ESP-NO-CPT-DST ! - OF YN4ESP-ZONE-ALLER ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF WS-NO-CHQ NOT NUMERIC AND WS-NO-CHQ NOT = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000270' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-NOCHQ-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF WS-NO-CHQ NOT = XF-AFF-NO-CHQ ! - MOVE WS-NO-CHQ TO YN4ESP-NO-CHQ ! - OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-NO-CHQ TO YN4ESP-NO-CHQ ! - OF YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-CDAPL NOT = 'DG' AND NOT = '5G' ! - MOVE TPI-CDPTN TO WS-CD-PTN ! - * PERFORM ACCES-SPIPTN THRU ACCES-SPIPTN-FIN ! - * IF SPI-RETCOD NOT = '00' ! - * SET TOP-SAISIE-KO TO TRUE ! - * MOVE '000141' TO TPO-ERRMSG1 ! - * MOVE ERROR-ATTR TO TPO-CDPTN-ATTR ! - * MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - PERFORM ACCES-TN4D101 THRU ACCES-TN4D101-FIN ! - IF Y00CIA-CD-RET-PGM NOT = 0 ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE Y00CIA-CD-MES-ERR TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-CDPTN-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - MOVE WS-CD-PTN TO YN4ESP-CD-PTN ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-LIB-PTN TO TPO-LIBPTN ! - END-IF ! - IF TOP-SAISIE-OK ! - IF TPO-CDAPL = 'P7' OR '4D' OR '4F' ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S = '0007' ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - ! - CTRL-SAISIE1-FIN. ! - EXIT. ! - ! - *----------------------------------------------! END CTRL1 ---- - - - *TELON-------------------------------------------------------------- - *DS: H01 ! COPY CTRLS ! - *------------------------------------------------------------------- - * CONTROLE NIVEAU REFERENCE DE GESTION ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATION CH * ! - ******************************************************** ! - CTRLSCH. ! - ! - * CONTROLE SAISIE DU PRENOM ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L17 > SPACES ! - MOVE TPI-REF1L17 TO WS-REF1L17 ! - MOVE WS-REF1L17 TO YN4ESP-LIB-NOM ! - OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - CTRLSCH-FIN. ! - EXIT. ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATION P7 * ! - ******************************************************** ! - CTRLSP7. ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L15 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0060' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L15(1:8) NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000270' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L15 NOT = XF-AFF-REF1L15 ! - MOVE TPI-REF1L15 TO WS-REF1L15 ! - MOVE WS-REF1L15 TO YN4ESP-NO-POL-9 OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L15 TO YN4ESP-NO-POL-9 ! - OF YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L15 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000148' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L15(1:2) NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000270' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L15 NOT = XF-AFF-REF2L15 ! - MOVE TPI-REF2L15 TO WS-REF2L15 ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S = '0007' ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - MOVE WS-REF2L15 TO YN4ESP-CD-PRD OF ! - YN4ESP-ZONE-ALLER ! - MOVE WS-REF3L15 TO TPO-REF3L15 ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L15 TO YN4ESP-CD-PRD OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - * CONTROLE SAISIE DU PRENOM ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L17 NOT = XF-AFF-REF1L17 ! - MOVE TPI-REF1L17 TO WS-REF1L17 ! - MOVE WS-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L18J-ATTR = ERROR-ATTR ! - OR TPO-RF1L18M-ATTR = ERROR-ATTR ! - OR TPO-RF1L18A-ATTR = ERROR-ATTR ! - OR TPO-RF2L18J-ATTR = ERROR-ATTR ! - OR TPO-RF2L18M-ATTR = ERROR-ATTR ! - OR TPO-RF2L18A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - ! - IF TPI-RF1L18J NOT = XF-AFF-RF1L18-J ! - OR TPI-RF1L18M NOT = XF-AFF-RF1L18-M ! - OR TPI-RF1L18A NOT = XF-AFF-RF1L18-S ! - ! - MOVE TPI-RF1L18J TO WS-DA10-JJ ! - MOVE TPI-RF1L18M TO WS-DA10-MM ! - MOVE TPI-RF1L18A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-SCR-CTR OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L18-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L18-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L18-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-SCR-CTR OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - ! - IF TPI-RF2L18J NOT = XF-AFF-RF2L18-J ! - OR TPI-RF2L18M NOT = XF-AFF-RF2L18-M ! - OR TPI-RF2L18A NOT = XF-AFF-RF2L18-S ! - MOVE TPI-RF2L18J TO WS-DA10-JJ ! - MOVE TPI-RF2L18M TO WS-DA10-MM ! - MOVE TPI-RF2L18A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-EFF OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF2L18-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF2L18-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF2L18-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-EFF OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L19J-ATTR = ERROR-ATTR ! - OR TPO-RF1L19M-ATTR = ERROR-ATTR ! - OR TPO-RF1L19A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-RF1L19J NOT = XF-AFF-RF1L19-J ! - OR TPI-RF1L19M NOT = XF-AFF-RF1L19-M ! - OR TPI-RF1L19A NOT = XF-AFF-RF1L19-S ! - MOVE TPI-RF1L19J TO WS-DA10-JJ ! - MOVE TPI-RF1L19M TO WS-DA10-MM ! - MOVE TPI-RF1L19A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L19-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L19-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L19-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L19 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0065' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L19 NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000270' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L19 NOT = XF-AFF-REF2L19 ! - MOVE TPI-REF2L19 TO WS-REF2L19 ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - IF SPI-RETCOD = '00' ! - MOVE WS-REF2L19 TO YN4ESP-CD-TY-CRO ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-REF4L19 TO TPO-REF4L19 ! - ELSE ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0066' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L19 TO YN4ESP-CD-TY-CRO ! - OF YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF5L19 NOT = XF-AFF-REF5L19 ! - MOVE TPI-REF5L19 TO WS-REF5L19 ! - MOVE WS-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - CTRLSP7-FIN. ! - EXIT. ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATION CO * ! - ******************************************************** ! - CTRLSCO. ! - ! - * CONTROLE SAISIE DU NOM DU CORRESPONDANT ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L17 NOT = XF-AFF-REF1L17 ! - MOVE TPI-REF1L17 TO WS-REF1L17 ! - MOVE WS-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - CTRLSCO-FIN. ! - EXIT. ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATION DG * ! - ******************************************************** ! - CTRLSDG. ! - * TEST LA PERIODE DG RESAISIE ! - IF TPI-REF4L16 NOT > SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0064' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF4L16-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF4L16 NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000270' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF4L16-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF4L16 NOT = XF-AFF-REF4L16 ! - MOVE TPI-REF4L16 TO WS-REF4L16 ! - MOVE WS-REF4L16 TO YN4ESP-PER-DCR-DGI OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF4L16 TO YN4ESP-PER-DCR-DGI OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - CTRLSDG-FIN. ! - EXIT. ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATION FI * ! - ******************************************************** ! - CTRLSFI. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L19J-ATTR = ERROR-ATTR ! - OR TPO-RF1L19M-ATTR = ERROR-ATTR ! - OR TPO-RF1L19A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-RF1L19J NOT = XF-AFF-RF1L19-J ! - OR TPI-RF1L19M NOT = XF-AFF-RF1L19-M ! - OR TPI-RF1L19A NOT = XF-AFF-RF1L19-S ! - MOVE TPI-RF1L19J TO WS-DA10-JJ ! - MOVE TPI-RF1L19M TO WS-DA10-MM ! - MOVE TPI-RF1L19A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L19-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L19-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L19-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L19 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0065' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - MOVE 'O' TO WS-CHANGEMENT ! - ELSE ! - IF TPI-REF2L19 NOT = XF-AFF-REF2L19 ! - MOVE TPI-REF2L19 TO WS-REF2L19 ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - IF SPI-RETCOD = '00' ! - MOVE WS-REF2L19 TO YN4ESP-CD-TY-CRO ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-REF4L19 TO TPO-REF4L19 ! - ELSE ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0066' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L19 TO YN4ESP-CD-TY-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF5L19 NOT = XF-AFF-REF5L19 ! - MOVE TPI-REF5L19 TO WS-REF5L19 ! - MOVE WS-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - CTRLSFI-FIN. ! - EXIT. ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATION 37 * ! - ******************************************************** ! - CTRLS37. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L15 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000148' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L15(1:7) NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0062' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L15 NOT = XF-AFF-REF1L15 ! - MOVE TPI-REF1L15 TO WS-REF1L15 ! - MOVE WS-REF1L15 TO YN4ESP-NO-CLI-PTN ! - OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L15 TO YN4ESP-NO-CLI-PTN OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L15 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000148' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L15(1:2) NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000270' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L15 NOT = XF-AFF-REF2L15 ! - MOVE TPI-REF2L15 TO WS-REF2L15 ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S = '0007' ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - MOVE WS-REF2L15 TO YN4ESP-CD-PRD OF ! - YN4ESP-ZONE-ALLER ! - MOVE WS-REF3L15 TO TPO-REF3L15 ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L15 TO YN4ESP-CD-PRD OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - * CONTROLE SAISIE DU NOM ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L17 NOT = XF-AFF-REF1L17 ! - MOVE TPI-REF1L17 TO WS-REF1L17 ! - MOVE WS-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L18J-ATTR = ERROR-ATTR ! - OR TPO-RF1L18M-ATTR = ERROR-ATTR ! - OR TPO-RF1L18A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-RF1L18J NOT = XF-AFF-RF1L18-J ! - OR TPI-RF1L18M NOT = XF-AFF-RF1L18-M ! - OR TPI-RF1L18A NOT = XF-AFF-RF1L18-S ! - MOVE TPI-RF1L18J TO WS-DA10-JJ ! - MOVE TPI-RF1L18M TO WS-DA10-MM ! - MOVE TPI-RF1L18A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-SCR-CTR OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L18-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L18-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L18-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-SCR-CTR OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L19J-ATTR = ERROR-ATTR ! - OR TPO-RF1L19M-ATTR = ERROR-ATTR ! - OR TPO-RF1L19A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-RF1L19J NOT = XF-AFF-RF1L19-J ! - OR TPI-RF1L19M NOT = XF-AFF-RF1L19-M ! - OR TPI-RF1L19A NOT = XF-AFF-RF1L19-S ! - MOVE TPI-RF1L19J TO WS-DA10-JJ ! - MOVE TPI-RF1L19M TO WS-DA10-MM ! - MOVE TPI-RF1L19A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L19-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L19-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L19-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L19 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0065' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L19 NOT = XF-AFF-REF2L19 ! - MOVE TPI-REF2L19 TO WS-REF2L19 ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - IF SPI-RETCOD = '00' ! - MOVE WS-REF2L19 TO YN4ESP-CD-TY-CRO ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-REF4L19 TO TPO-REF4L19 ! - ELSE ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0066' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L19 TO YN4ESP-CD-TY-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF5L19 NOT = XF-AFF-REF5L19 ! - MOVE TPI-REF5L19 TO WS-REF5L19 ! - MOVE WS-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - CTRLS37-FIN. ! - EXIT. ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATIONS 4D ET 4F * ! - ******************************************************** ! - CTRLS4DF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L15 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000148' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L15(1:8) NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0061' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPO-IDCPTN = 'CM' ! - MOVE 'O' ! - TO YN4ESP-IDC-PTN-CM OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE 'N' ! - TO YN4ESP-IDC-PTN-CM OF YN4ESP-ZONE-ALLER ! - END-IF ! - IF TPI-REF1L15 NOT = XF-AFF-REF1L15 ! - MOVE TPI-REF1L15 TO WS-REF1L15 ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-ZONE-ALLER= 'O' ! - MOVE WS-REF1L15 TO YN4ESP-RAC-CLE OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE WS-REF1L15 TO YN4ESP-NO-POL-9 OF YN4ESP-ZONE-ALLER ! - END-IF ! - ELSE ! - IF YN4ESP-IDC-PTN-CM OF YN4ESP-ZONE-ALLER= 'O' ! - MOVE XF-AFF-REF1L15 TO YN4ESP-RAC-CLE ! - OF YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L15 TO YN4ESP-NO-POL-9 ! - OF YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L15 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000148' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L15 NOT = XF-AFF-REF2L15 ! - MOVE TPI-REF2L15 TO WS-REF2L15 ! - PERFORM ACCES-P4DTRANT THRU ACCES-P4DTRANT-FIN ! - IF Y4DTRA-CD-RET-S = '0007' ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - MOVE WS-REF2L15 TO YN4ESP-CD-PRD OF ! - YN4ESP-ZONE-ALLER ! - MOVE WS-REF3L15 TO TPO-REF3L15 ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L15 TO YN4ESP-CD-PRD OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L16 NOT > 0 ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000148' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L16 NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000270' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L16 NOT = XF-AFF-REF1L16 ! - MOVE WS-REF1L16 TO YN4ESP-NO-ORD-CTR OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L16 TO YN4ESP-NO-ORD-CTR OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - * CONTROLE SAISIE DU NOM ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L17 NOT = XF-AFF-REF1L17 ! - MOVE TPI-REF1L17 TO WS-REF1L17 ! - MOVE WS-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L18J-ATTR = ERROR-ATTR ! - OR TPO-RF1L18M-ATTR = ERROR-ATTR ! - OR TPO-RF1L18A-ATTR = ERROR-ATTR ! - OR TPO-RF2L18J-ATTR = ERROR-ATTR ! - OR TPO-RF2L18M-ATTR = ERROR-ATTR ! - OR TPO-RF2L18A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-RF1L18J NOT = XF-AFF-RF1L18-J ! - OR TPI-RF1L18M NOT = XF-AFF-RF1L18-M ! - OR TPI-RF1L18A NOT = XF-AFF-RF1L18-S ! - ! - MOVE TPI-RF1L18J TO WS-DA10-JJ ! - MOVE TPI-RF1L18M TO WS-DA10-MM ! - MOVE TPI-RF1L18A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-SCR-CTR OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L18-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L18-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L18-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-SCR-CTR OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - ! - IF TPI-RF2L18J NOT = XF-AFF-RF2L18-J ! - OR TPI-RF2L18M NOT = XF-AFF-RF2L18-M ! - OR TPI-RF2L18A NOT = XF-AFF-RF2L18-S ! - MOVE TPI-RF2L18J TO WS-DA10-JJ ! - MOVE TPI-RF2L18M TO WS-DA10-MM ! - MOVE TPI-RF2L18A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-EFF OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF2L18-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF2L18-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF2L18-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-EFF OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L19J-ATTR = ERROR-ATTR ! - OR TPO-RF1L19M-ATTR = ERROR-ATTR ! - OR TPO-RF1L19A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-RF1L19J NOT = XF-AFF-RF1L19-J ! - OR TPI-RF1L19M NOT = XF-AFF-RF1L19-M ! - OR TPI-RF1L19A NOT = XF-AFF-RF1L19-S ! - MOVE TPI-RF1L19J TO WS-DA10-JJ ! - MOVE TPI-RF1L19M TO WS-DA10-MM ! - MOVE TPI-RF1L19A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L19-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L19-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L19-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L19 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0065' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L19 NOT = XF-AFF-REF2L19 ! - MOVE TPI-REF2L19 TO WS-REF2L19 ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - IF SPI-RETCOD = '00' ! - MOVE WS-REF2L19 TO YN4ESP-CD-TY-CRO ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-REF4L19 TO TPO-REF4L19 ! - ELSE ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0066' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L19 TO YN4ESP-CD-TY-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS AND ! - YC4ESD-CD-APLI-OPE OF YC4ESD-ZONE-MODIF = '4D' ! - IF TPI-REF3L19 NOT = XF-AFF-REF3L19 ! - MOVE XF-AFF-REF3L19 TO YN4ESP-CD-CLO-ECN OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF3L19 TO YN4ESP-CD-CLO-ECN OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF5L19 NOT = XF-AFF-REF5L19 ! - MOVE TPI-REF5L19 TO WS-REF5L19 ! - MOVE WS-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - CTRLS4DF-FIN. ! - EXIT. ! - ! - ******************************************************** ! - * CONTROLE ZONES SAISIES DANS REFERENCES DE GESTION * ! - * APPLICATION 4G * ! - ******************************************************** ! - CTRLS4G. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L15 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '000148' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L15 NOT NUMERIC ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0063' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF1L15-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF1L15 NOT = XF-AFF-REF1L15 ! - MOVE TPI-REF1L15 TO WS-REF1L15 ! - MOVE WS-REF1L15 TO YN4ESP-NO-DOS-SIN-DCS OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L15 TO YN4ESP-NO-DOS-SIN-DCS OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF ! - END-IF. ! - ! - * CONTROLE SAISIE DU NOM ! - IF CONTINUE-PROCESS ! - IF TPI-REF1L17 NOT = XF-AFF-REF1L17 ! - MOVE TPI-REF1L17 TO WS-REF1L17 ! - MOVE WS-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF1L17 TO YN4ESP-LIB-NOM OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPO-RF1L19J-ATTR = ERROR-ATTR ! - OR TPO-RF1L19M-ATTR = ERROR-ATTR ! - OR TPO-RF1L19A-ATTR = ERROR-ATTR ! - MOVE '000029' TO TPO-ERRMSG1 ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - SET TOP-SAISIE-KO TO TRUE ! - ELSE ! - IF TPI-RF1L19J NOT = XF-AFF-RF1L19-J ! - OR TPI-RF1L19M NOT = XF-AFF-RF1L19-M ! - OR TPI-RF1L19A NOT = XF-AFF-RF1L19-S ! - MOVE TPI-RF1L19J TO WS-DA10-JJ ! - MOVE TPI-RF1L19M TO WS-DA10-MM ! - MOVE TPI-RF1L19A TO WS-DA10-SA ! - MOVE WS-DA10-JJ TO WS-DAFIC-JJ ! - MOVE WS-DA10-MM TO WS-DAFIC-MM ! - MOVE WS-DA10-SA TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-RF1L19-J TO WS-DAFIC-JJ ! - MOVE XF-AFF-RF1L19-M TO WS-DAFIC-MM ! - MOVE XF-AFF-RF1L19-S TO WS-DAFIC-SA ! - MOVE WS-DAFIC TO YN4ESP-DA-CRE-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF2L19 = SPACES ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0065' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - ELSE ! - IF TPI-REF2L19 NOT = XF-AFF-REF2L19 ! - MOVE TPI-REF2L19 TO WS-REF2L19 ! - PERFORM ACCES-SPI013 THRU ACCES-SPI013-FIN ! - IF SPI-RETCOD = '00' ! - MOVE WS-REF2L19 TO YN4ESP-CD-TY-CRO ! - OF YN4ESP-ZONE-ALLER ! - MOVE WS-REF4L19 TO TPO-REF4L19 ! - ELSE ! - SET TOP-SAISIE-KO TO TRUE ! - MOVE '4E0066' TO TPO-ERRMSG1 ! - MOVE ERROR-ATTR TO TPO-REF2L19-ATTR ! - MOVE DO-WRITE-LIT TO CONTROL-INDICATOR ! - END-IF ! - ELSE ! - MOVE XF-AFF-REF2L19 TO YN4ESP-CD-TY-CRO OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF ! - END-IF. ! - ! - IF CONTINUE-PROCESS ! - IF TPI-REF5L19 NOT = XF-AFF-REF5L19 ! - MOVE TPI-REF5L19 TO WS-REF5L19 ! - MOVE WS-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - ELSE ! - MOVE XF-AFF-REF5L19 TO YN4ESP-CD-MTL OF ! - YN4ESP-ZONE-ALLER ! - END-IF ! - END-IF. ! - ! - CTRLS4G-FIN. ! - EXIT. ! - ! - *----------------------------------------------! END CTRLS ---- - - EJECT - Z-900-SECTION-FALLOUT SECTION. - ******************************************************** - * Z - 9 0 0 - S E C T I O N - F A L L O U T * - ******************************************************** - * * - * THIS ROUTINE EXECUTES AN EXEC CICS ABEND WITH THE * - * ABEND CODE SPECIFIED BY FALLOUT-ABEND-CODE. * - * THE CODE IN THIS SECTION WILL ONLY BE EXECUTED IF * - * CONTROL FALLS OUT OF A PREVIOUS SECTION. * - * * - ******************************************************** - EXEC CICS ABEND ABCODE(FALLOUT-ABEND-CODE) END-EXEC. - EJECT - Z-990-PROGRAM-ERROR SECTION. - ******************************************************** - * Z - 9 9 0 - P R O G R A M - E R R O R * - ******************************************************** - * * - * THIS SECTION CALLS THE COBOL ABEND ROUTINE WITH AN * - * ABEND CODE SPECIFIED BY CNTLERR-ABEND-CODE. IT IS * - * PERFORMED IF CONTROL-INDICATOR IS AN UNDEFINED * - * VALUE IN THE MAINLINE. * - ******************************************************** - EXEC CICS ABEND ABCODE(CNTLERR-ABEND-CODE) END-EXEC. - SKIP1 diff --git a/tests/projects/plugins/project/src/cpp/BiggestUnInt.cc b/tests/projects/plugins/project/src/cpp/BiggestUnInt.cc deleted file mode 100644 index 3cd1acff87b..00000000000 --- a/tests/projects/plugins/project/src/cpp/BiggestUnInt.cc +++ /dev/null @@ -1,51 +0,0 @@ -// BiggestUnInt2.cc -// usage: -// BiggestUnInt2 (optional argument, default is 1) -// example: -// BiggestUnInt2 4194305 -// features: - -#include -#include - -using namespace std; - -void bitsout( unsigned int n ); - -int main(int argc, char* argv[]) -{ - int N=0; - unsigned int i=1 , oldi , j ; - if(argc>1) { - sscanf( argv[1], "%u", &i ) ; // starting value - } - cout << "#\ti \ti+(i-1)\t2i\n" ; - cout << "#\t#### \t#######\t###\n" ; - do { - oldi = i ; - j = i-1 ; - j += i ; // this sets j = 2i-1 (we hope) - i *= 2 ; // this doubles i (we hope) - cout << N << ":\t" << oldi << "\t" << j << "\t" << i << "\t"; - bitsout(i); - cout << endl ; - N++; - } while ( j+1==i && i!=0 ) ; // keep going until something odd happens - // (Under normal arithmetic, - // we always expect A: j+1 to equal i, and - // we always expect B: i not to be 0 - // we keep going while _both_ A _and_ B are true.) - // ( '&&' means "_and_" ) -} - -void bitsout( unsigned int m ) -{ - int lastbit ; - unsigned int two_to_power_i ; - - for ( int i = 31 ; i >= 0 ; i -- ) { - two_to_power_i = (1< -#include -#include - -using namespace std; - -#define ranf() \ - ((double)random()/(1.0+(double)RAND_MAX)) // Uniform from interval [0,1) */ - -int main() -{ - int outcome, N=0, count_in=0 ; - double fraction_in ; - - // Initialise random number generator with value of system time. - srandom(time(NULL)); - - // Get user input in correct range. - while(N<1) - { - cout << "Input the number of experiments: "; - cin >> N; - } - - // Perform N experiments. - for(int n=1; n<=N; n++) - { - double x = ranf(); - double y = ranf(); - outcome = ( x*x + y*y > 1.0 ) ? 0 : 1 ; - if(outcome==1) count_in++; - cout << outcome << "\t" << x << "\t" << y << "\t" - << count_in << "\t" << n << endl; - } - - // Sample goto to raise a violation - goto L1; - - //Sample switch with default - switch (bob) - { - case 1: { - cout << "1"; - break; - } - case 2: - { - cout <<"2"; - break; - } - default: - { - cout << "3"; - } - } - - //Sample switch without default - switch (bob) - { - case 1: { - cout << "1"; - break; - } - case 2: - { - cout <<"2"; - break; - } - } - - //Integer variables must be converted (cast) for correct division - fraction_in = static_cast(count_in)/N; - - // Output results - cout << "# Proportion of outcomes 'in' " - << fraction_in << endl; - // Output results - cout << "# pi-hat = " - << 4.0 * fraction_in << endl; - return 0; -} diff --git a/tests/projects/plugins/project/src/cpp/SimpleClass.cc b/tests/projects/plugins/project/src/cpp/SimpleClass.cc deleted file mode 100644 index 4f4ceba3aae..00000000000 --- a/tests/projects/plugins/project/src/cpp/SimpleClass.cc +++ /dev/null @@ -1,70 +0,0 @@ -// DateClass.cc -// Program to demonstrate the definition of a simple class -// and member functions - -#include -using namespace std; - - -// Declaration of Date class -class Date { - -public: - Date(int, int, int); - void set(int, int, int); - void print(); - -private: - int year; - int month; - int day; -}; - - -int main() -{ - // Declare today to be object of class Date - // Values are automatically intialised by calling constructor function - Date today(1,9,1999); - - cout << "This program was written on "; - today.print(); - - cout << "This program was modified on "; - today.set(5,10,1999); - today.print(); - - return 0; -} - -// Date constructor function definition -Date::Date(int d, int m, int y) -{ - if(d>0 && d<31) day = d; - if(m>0 && m<13) month = m; - if(y>0) year =y; -} - -// Date member function definitions -void Date::set(int d, int m, int y) -{ - if(d>0) { - if (d<31){ - if(m>0) { - if (m<13) { - if(y>0) { - year =y; - month = m; - day = d; - } - } - } - } - } -} - -void Date::print() -{ - cout << day << "-" << month << "-" << year << endl; -} - diff --git a/tests/projects/plugins/project/src/cpp/main.c b/tests/projects/plugins/project/src/cpp/main.c deleted file mode 100644 index 05a68cccd30..00000000000 --- a/tests/projects/plugins/project/src/cpp/main.c +++ /dev/null @@ -1,18 +0,0 @@ -#include /* NOK, according to the MISRA C 2004 20.9 rule, stdio.h must not be used in embedded system's production code */ - -#include - -/* - * Compile & run from current folder: - * gcc -Wall -pedantic -std=c99 -I../lib -o main main.c && ./main - */ - -int main(void) { - int x = ADD(40, 2); - - if (x != 42) - { /* NOK, empty code blocks generate violations */ - } - - printf("40 + 2 = %d\n", x); -} diff --git a/tests/projects/plugins/project/src/css/sample.css b/tests/projects/plugins/project/src/css/sample.css deleted file mode 100644 index 88a2ce9fdb4..00000000000 --- a/tests/projects/plugins/project/src/css/sample.css +++ /dev/null @@ -1,89 +0,0 @@ -.quality-gates-navigator .navigator-side { - display: table-cell; - vertical-align: top; - width: 250px; - min-width: 0; -} -.quality-gates-navigator .navigator-header { - margin-left: 0; -} -.quality-gates-navigator .navigator-header .spinner { - margin-top: 9px; -} -.quality-gates-navigator .navigator-actions { - height: 40px; - width: 230px; - margin: 10px; - padding: 0 10px; -} -.quality-gates-navigator .navigator-actions .navigator-header-title { - color: #444; - font-size: 13px; - font-weight: 700; - text-transform: uppercase; -} -.quality-gates-navigator .navigator-results { - width: 230px; - min-width: 0; -} -.quality-gates-navigator .navigator-details { - margin-left: 0; -} -.quality-gates-nav .navigator-results-list>li { - border-color: transparent; -} -.quality-gates-nav .navigator-results-list>li:hover:not(.active):not(.empty) { - background-color: #f3f3f3; -} -.quality-gates-nav .navigator-results-list>li.active { - border-color: #4B9FD5; -} -.quality-gates-nav .navigator-results-list>li.empty { - cursor: default; -} -.quality-gates-nav .navigator-results-list>li .line { - padding-top: 2px; - padding-bottom: 2px; -} -.quality-gates-nav .navigator-results-list>li .subtitle { - text-transform: lowercase; -} -.quality-gate-section+.quality-gate-section { - margin-top: 10px; - padding-top: 20px; -} -.quality-gate-section-empty+.quality-gate-section { - border-top: 1px solid #e6e6e6; -} -.quality-gate-section-name { - margin-bottom: 10px; - font-weight: 700; - text-transform: uppercase; -} -.quality-gate-introduction { - margin-bottom: 20px; -} -.quality-gate-new-condition { - margin-bottom: 10px; -} -.quality-gate-condition-actions { - position: relative; -} -.quality-gate-default-message { - padding: 6px 5px; - border: 1px solid #ddd; - background-color: #efefef; -} -.quality-gate-conditions-wrap { - border-left: 1px solid #ddd; - border-right: 1px solid #ddd; -} -.quality-gate-conditions .deprecated { - color: #777; - text-transform: lowercase; - font-variant: small-caps; -} -.quality-gate-conditions tbody { - border-left: none!important; - border-right: none!important; -} diff --git a/tests/projects/plugins/project/src/flex/Circle.as b/tests/projects/plugins/project/src/flex/Circle.as deleted file mode 100644 index 29ebe94393f..00000000000 --- a/tests/projects/plugins/project/src/flex/Circle.as +++ /dev/null @@ -1,14 +0,0 @@ -package { - - public class Circle { - public var diameter:int = 0; - - function Circle (d:int) { - if (d == 0) { - this.diameter = -1; - } else { - this.diameter = d; - } - } - } -} diff --git a/tests/projects/plugins/project/src/flex/HasIssues.as b/tests/projects/plugins/project/src/flex/HasIssues.as deleted file mode 100644 index 410b52709b4..00000000000 --- a/tests/projects/plugins/project/src/flex/HasIssues.as +++ /dev/null @@ -1,12 +0,0 @@ -package { - - public class HasIssues { - - function HasIssues (d:int) { - if (d == 0) { - break - } - break - } - } -} diff --git a/tests/projects/plugins/project/src/flex/UncoveredCircle.as b/tests/projects/plugins/project/src/flex/UncoveredCircle.as deleted file mode 100644 index e0a6650345b..00000000000 --- a/tests/projects/plugins/project/src/flex/UncoveredCircle.as +++ /dev/null @@ -1,10 +0,0 @@ -package { - - public class UncoveredCircle { - public var diameter:int = 0; - - function UncoveredCircle (d:int) { - this.diameter = d; - } - } -} diff --git a/tests/projects/plugins/project/src/go/sample.go b/tests/projects/plugins/project/src/go/sample.go deleted file mode 100644 index ff9d051946a..00000000000 --- a/tests/projects/plugins/project/src/go/sample.go +++ /dev/null @@ -1,43 +0,0 @@ -package main - -import "fmt" - -func f(from string) { - for i := 0; i < 3; i++ { - fmt.Println(from, ":", i) - } -} - -func identicalIfConditions(cond bool) { - if cond { - - } else if cond { - - } -} - -func main() { - - // Suppose we have a function call `f(s)`. Here's how - // we'd call that in the usual way, running it - // synchronously. - f("direct") - - // To invoke this function in a goroutine, use - // `go f(s)`. This new goroutine will execute - // concurrently with the calling one. - go f("goroutine") - - // You can also start a goroutine for an anonymous - // function call. - go func(msg string) { - fmt.Println(msg) - }("going") - - // Our two function calls are running asynchronously in - // separate goroutines now, so execution falls through - // to here. This `Scanln` requires we press a key - // before the program exits. - fmt.Scanln() - fmt.Println("done") -} diff --git a/tests/projects/plugins/project/src/groovy/example/Greeting.groovy b/tests/projects/plugins/project/src/groovy/example/Greeting.groovy deleted file mode 100644 index ef635498267..00000000000 --- a/tests/projects/plugins/project/src/groovy/example/Greeting.groovy +++ /dev/null @@ -1,7 +0,0 @@ -package example - -class Greeting { - def say() { - println 'Hello World' - } -} diff --git a/tests/projects/plugins/project/src/groovy/innerclass/InnerClassExample.groovy b/tests/projects/plugins/project/src/groovy/innerclass/InnerClassExample.groovy deleted file mode 100644 index caf298d205c..00000000000 --- a/tests/projects/plugins/project/src/groovy/innerclass/InnerClassExample.groovy +++ /dev/null @@ -1,14 +0,0 @@ -package innerclass - -class InnerClassExample -{ - def show() { - println 'Hello World' - new ExampleInnerClass().show() - } - - class ExampleInnerClass { - def show() { println "Hello Inner"} - } - -} diff --git a/tests/projects/plugins/project/src/java/foo/Foo.java b/tests/projects/plugins/project/src/java/foo/Foo.java deleted file mode 100644 index 20bf396881c..00000000000 --- a/tests/projects/plugins/project/src/java/foo/Foo.java +++ /dev/null @@ -1,15 +0,0 @@ -package foo; - -/** - * Foo class - */ -public class Foo { - - public static int div(int a, int b) { - if (b == 0) { - throw new UnsupportedOperationException("Can't divide by zero!"); - } - return a / b; - } - -} diff --git a/tests/projects/plugins/project/src/java/foo/Simplest.java b/tests/projects/plugins/project/src/java/foo/Simplest.java deleted file mode 100644 index 981db6738c3..00000000000 --- a/tests/projects/plugins/project/src/java/foo/Simplest.java +++ /dev/null @@ -1,17 +0,0 @@ -package foo; - -/** - * Simple class - */ -public class Simplest { - - public static int add(int a, int b) { - // introduce a variable that is not needed - just to get a violation - int result = a + b; - - System.out.println(""); - - return result; - } - -} diff --git a/tests/projects/plugins/project/src/java/foo/Simplest2.java b/tests/projects/plugins/project/src/java/foo/Simplest2.java deleted file mode 100644 index 2d673e178bc..00000000000 --- a/tests/projects/plugins/project/src/java/foo/Simplest2.java +++ /dev/null @@ -1,7 +0,0 @@ -package foo; - -public class Simplest2 { - - public static void foo() {} - -} diff --git a/tests/projects/plugins/project/src/java/foo/Simplest3.java b/tests/projects/plugins/project/src/java/foo/Simplest3.java deleted file mode 100644 index 530fe4c4284..00000000000 --- a/tests/projects/plugins/project/src/java/foo/Simplest3.java +++ /dev/null @@ -1,5 +0,0 @@ -package foo; - -public class Simplest3 { - -} diff --git a/tests/projects/plugins/project/src/js/HasIssues.js b/tests/projects/plugins/project/src/js/HasIssues.js deleted file mode 100644 index 8426dcf168c..00000000000 --- a/tests/projects/plugins/project/src/js/HasIssues.js +++ /dev/null @@ -1,18 +0,0 @@ -// FIXME -alert("should not be used"); - -function strict() { - 'use strict'; -} - -function pow(a, b) { - if(b == 0) { - return 0; - } - var x = a; - for (var i = 1; i 2011) { - return '$30000'; - } else { - return '$1500 - 30000'; - } - }, - - startEngine : function() { - this.engineState = 'started'; - return 'engine started'; - }, - - stopEngine : function() { - this.engineState = 'stopped'; - return 'engine stopped'; - }, - - stopEngineWithCheck : function() { - if (this.engineState === 'started') { - this.engineState = 'stopped'; - this.messageToDriver = 'all good. c u later'; - return 'engine stopped'; - } else { - this.messageToDriver = 'engine not started. what do you want me to do?'; - return 'engine was not running'; - } - }, - - tuneCar : function() { - this.year = '2011'; - } - -}; \ No newline at end of file diff --git a/tests/projects/plugins/project/src/js/com/company/Truck.js b/tests/projects/plugins/project/src/js/com/company/Truck.js deleted file mode 100644 index 98df0732527..00000000000 --- a/tests/projects/plugins/project/src/js/com/company/Truck.js +++ /dev/null @@ -1,24 +0,0 @@ -var Truck = function(brand, model, year) { - this.brand = brand; - this.model = model; - this.year = year; - this.engineState = 'stopped'; - this.messageToDriver = ''; -}; - -Truck.prototype = { - - getFullName : function() { - return this.brand + ' ' + this.model + ' ' + 'Y: ' + this.year; - }, - - calculatePrice : function() { - if (this.year < 1990) { - return '$15000'; - } else if (this.year > 2011) { - return '$300000'; - } else { - return '$15000 - 300000'; - } - } -}; \ No newline at end of file diff --git a/tests/projects/plugins/project/src/js/com/company/Vehicle.js b/tests/projects/plugins/project/src/js/com/company/Vehicle.js deleted file mode 100644 index e004a007b6c..00000000000 --- a/tests/projects/plugins/project/src/js/com/company/Vehicle.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * This is copy/paste file from Car.js with couple methods removed - * - * Removed methods: - * - startEngine () - * - stopEngine () - * - */ -var Vehicle = function(brand, model, year) { - this.brand = brand; - this.model = model; - this.year = year; - this.engineState = 'stopped'; - this.messageToDriver = ''; -}; - - -// single line comments line 1 -// single line comments line 2 -// single line comments line 3 -// single line comments line 4 -Vehicle.prototype = { - - getFullName : function() { - return this.brand + ' ' + this.model + ' ' + 'Y: ' + this.year; - }, - - calculatePrice : function() { - if (this.year < 1990) { - return '$1500'; - } else if (this.year > 2011) { - return '$30000'; - } else { - return '$1500 - 30000'; - } - }, - - stopEngineWithCheck : function() { - if (this.engineState === 'started') { - this.engineState = 'stopped'; - this.messageToDriver = 'all good. c u later'; - return 'engine stopped'; - } else { - this.messageToDriver = 'engine not started. what do you want me to do?'; - return 'engine was not running'; - } - }, - - tuneCar : function() { - this.year = '2011'; - } - -}; \ No newline at end of file diff --git a/tests/projects/plugins/project/src/php/Math.php b/tests/projects/plugins/project/src/php/Math.php deleted file mode 100644 index 5c1ab480233..00000000000 --- a/tests/projects/plugins/project/src/php/Math.php +++ /dev/null @@ -1,214 +0,0 @@ -. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * * Neither the name of Manuel Pichler nor the names of his - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @package Example - * @author Manuel Pichler - * @copyright 2007-2009 Manuel Pichler. All rights reserved. - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version SVN: $Id: Math.php 4429 2009-01-04 15:39:45Z mapi $ - * @link http://www.phpundercontrol.org/ - */ -function add($v1 , $v2) - { - return ($v1 + $v2); - } - -/** - * Simple math class. - * - * @package Example - * @author Manuel Pichler - * @copyright 2007-2009 Manuel Pichler. All rights reserved. - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version Release: 0.5.0 - * @link http://www.phpundercontrol.org/ - */ -class PhpUnderControl_Example_Math -{ - /** - * Adds the two given values. - * - * @param integer $v1 Value one. - * @param integer $v2 Value two. - * - * @return integer. - */ - public function add($v1 , $v2) - { - return ($v1 + $v2); - } - - /** - * Subtract param two from param one - * - * @param integer $v1 Value one. - * @param integer $v2 Value two. - * - * @return integer. - */ - public function sub($v1, $v2) - { - return ($v1 - $v2); - } - - /** - * Not tested method that should be visible with low coverage. - */ - public function div($v1, $v2) - { - $v3 = $v1 / ($v2 + $v1); - if ($v3 > 14) - { - $v4 = 0; - for ($i = 0; $i < $v3; $i++) - { - $v4 += ($v2 * $i); - } - } - $v5 = ($v4 < $v3 ? ($v3 - $v4) : ($v4 - $v3)); - - $v6 = ($v1 * $v2 * $v3 * $v4 * $v5); - - $d = array($v1, $v2, $v3, $v4, $v5, $v6); - - $v7 = 1; - for ($i = 0; $i < $v6; $i++) - { - shuffle( $d ); - $v7 = $v7 + $i * end($d); - } - - $v8 = $v7; - foreach ( $d as $x ) - { - $v8 *= $x; - } - - $v3 = $v1 / ($v2 + $v1); - if ($v3 > 14) - { - $v4 = 0; - for ($i = 0; $i < $v3; $i++) - { - $v4 += ($v2 * $i); - } - } - $v5 = ($v4 < $v3 ? ($v3 - $v4) : ($v4 - $v3)); - - $v6 = ($v1 * $v2 * $v3 * $v4 * $v5); - - $d = array($v1, $v2, $v3, $v4, $v5, $v6); - - $v7 = 1; - for ($i = 0; $i < $v6; $i++) - { - shuffle( $d ); - $v7 = $v7 + $i * end($d); - } - - $v8 = $v7; - foreach ( $d as $x ) - { - $v8 *= $x; - } - - return $v8; - } - - /** - * Simple copy for cpd detection. - */ - public function complex($v1, $v2) - { - $v3 = $v1 / ($v2 + $v1); - if ($v3 > 14) - { - $v4 = 0; - for ($i = 0; $i < $v3; $i++) - { - $v4 += ($v2 * $i); - } - } - $v5 = ($v4 < $v3 ? ($v3 - $v4) : ($v4 - $v3)); - - $v6 = ($v1 * $v2 * $v3 * $v4 * $v5); - - $d = array($v1, $v2, $v3, $v4, $v5, $v6); - - $v7 = 1; - for ($i = 0; $i < $v6; $i++) - { - shuffle( $d ); - $v7 = $v7 + $i * end( $d ); - } - - $v8 = $v7; - foreach ( $d as $x ) - { - $v8 *= $x; - } - - $v3 = $v1 / ($v2 + $v1); - if ($v3 > 14) - { - $v4 = 0; - for ($i = 0; $i < $v3; $i++) - { - $v4 += ($v2 * $i); - } - } - $v5 = ($v4 < $v3 ? ($v3 - $v4) : ($v4 - $v3)); - - $v6 = ($v1 * $v2 * $v3 * $v4 * $v5); - - $d = array($v1, $v2, $v3, $v4, $v5, $v6); - - $v7 = 1; - for ($i = 0; $i < $v6; $i++) - { - shuffle( $d ); - $v7 = $v7 + $i * end($d); - } - - $v8 = $v7; - foreach ( $d as $x ) - { - $v8 *= $x; - } - - return $v8; - } -} diff --git a/tests/projects/plugins/project/src/pli/center.pli b/tests/projects/plugins/project/src/pli/center.pli deleted file mode 100644 index d6d79e5bebd..00000000000 --- a/tests/projects/plugins/project/src/pli/center.pli +++ /dev/null @@ -1,212 +0,0 @@ - /* Copyright (c) 1995 by R. A. Vowels, from "Introduction to PL/I, Algorithms, and */ - /* Structured Programming". Permission is given to reproduce and to use these procedures */ - /* as part of a program, and to include them as part of a larger work to be sold for profit. */ - /* However, the user is not permitted to sell the procedures separately. Provided always */ - /* that these procedures and this copyright notice are reproduced in full. */ - - DECLARE CENTERLEFT GENERIC - (CENTER_LEFT_2 WHEN (*, *), - CENTER_LEFT_3 WHEN (*, *, *) ); - DECLARE CENTER GENERIC - (CENTER_LEFT_2 WHEN (*, *), - CENTER_LEFT_3 WHEN (*, *, *) ); - DECLARE CENTERRIGHT GENERIC - (CENTER_RIGHT_2 WHEN (*, *), - CENTER_RIGHT_3 WHEN (*, *, *) ); - DECLARE CENTRELEFT GENERIC - (CENTER_LEFT_2 WHEN (*, *), - CENTER_LEFT_3 WHEN (*, *, *) ); - DECLARE CENTRERIGHT GENERIC - (CENTER_RIGHT_2 WHEN (*, *), - CENTER_RIGHT_3 WHEN (*, *, *) ); - /* This procedure returns a string of length LEN, with STRING in the dead center, or one */ - /* position to the left of dead center if it cannot be dead center. */ - CENTER_LEFT_2: - PROCEDURE (STRING, LEN) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be centered; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* centered. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - - DECLARE WORK CHARACTER (LEN); - DECLARE (K, L) FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - K = (LEN - L + 2)/2; - - WORK = ''; - SUBSTR (WORK, K, L) = STRING; - RETURN (WORK); - END CENTER_LEFT_2; - - /* This procedure returns a string of length LEN, with STRING in the dead center, or one */ - /* position to the left of dead center if it cannot be dead center. A specified fill */ - /* character FILL extends STRING right and left. */ - CENTER_LEFT_3: - PROCEDURE (STRING, LEN, FILL) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be centered; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* centered. */ - /* FILL = a fill character used to extend STRING at both ends. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - DECLARE FILL CHARACTER (1); - - DECLARE WORK CHARACTER (LEN); - DECLARE (K, L) FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - K = (LEN - L + 2)/2; - - WORK = REPEAT (FILL, LEN-1); - SUBSTR (WORK, K, L) = STRING; - RETURN (WORK); - END CENTER_LEFT_3; - - /* This procedure returns a string of length LEN, with STRING in the dead center, or one */ - /* position to the right of dead center if it cannot be dead center. */ - CENTER_RIGHT_2: - PROCEDURE (STRING, LEN) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be centered; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* centered. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - - DECLARE WORK CHARACTER (LEN); - DECLARE (K, L) FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - K = (LEN - L + 3)/2; - - WORK = ''; - SUBSTR (WORK, K, L) = STRING; - RETURN (WORK); - END CENTER_RIGHT_2; - - /* This procedure returns a string of length LEN, with STRING in the dead center, or one */ - /* position to the right of dead center if it cannot be dead center. A specified fill */ - /* character FILL extends STRING right and left. */ - CENTER_RIGHT_3: - PROCEDURE (STRING, LEN, FILL) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be centered; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* centered. */ - /* FILL = a fill character used to extend STRING at both ends. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - DECLARE FILL CHARACTER (1); - - DECLARE WORK CHARACTER (LEN); - DECLARE (K, L) FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - K = (LEN - L + 3)/2; - - WORK = REPEAT (FILL, LEN-1); - SUBSTR (WORK, K, L) = STRING; - RETURN (WORK); - END CENTER_RIGHT_3; - - DECLARE LEFT GENERIC - (LEFT_blank WHEN (*,*), - LEFT_other WHEN (*,*,*) ); - - /* This procedure returns STRING in a string of length LEN, with blank characters padded on */ - /* the right. */ - LEFT_blank: - PROCEDURE (STRING, LEN) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be positioned left; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* placed. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - - DECLARE WORK CHARACTER (LEN); - DECLARE L FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - WORK = ''; - SUBSTR (WORK, 1, L) = STRING; - RETURN (WORK); - END LEFT_blank; - - /* This procedure returns STRING in a string of length LEN, padded with the character */ - /* FILL on the right. */ - LEFT_other: - PROCEDURE (STRING, LEN, FILL) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be positioned left; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* positioned left; */ - /* FILL = the character to be used to fill out the finished string. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - DECLARE FILL CHARACTER (1); - - DECLARE WORK CHARACTER (LEN); - DECLARE L FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - WORK = STRING || REPEAT (FILL, LEN-L-1); - RETURN (WORK); - END LEFT_other; - - DECLARE RIGHT GENERIC - (RIGHT_blank WHEN (*,*), - RIGHT_other WHEN (*,*,*) ); - - /* This procedure returns STRING right-adjusted in a string of length N, padded with blanks */ - /* on the left. */ - RIGHT_blank: - PROCEDURE (STRING, LEN) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be positioned right; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* positioned right. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - - DECLARE WORK CHARACTER (LEN); - DECLARE L FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - WORK = ''; - SUBSTR (WORK, LEN-L+1, L) = STRING; - RETURN (WORK); - END RIGHT_blank; - - /* This procedure returns STRING right-adjusted in a string of length N, padded with the */ - /* character FILL on the left. */ - RIGHT_other: - PROCEDURE (STRING, LEN, FILL) RETURNS (CHARACTER(1000) VARYING); - /* INCOMING: STRING = the string to be positioned right; */ - /* LEN = the length of the produced string in which STRING is to be */ - /* positioned right; */ - /* FILL = the character to be used to fill out the finished string. */ - DECLARE STRING CHARACTER (*) VARYING; - DECLARE LEN FIXED BINARY; - DECLARE FILL CHARACTER (1); - - DECLARE WORK CHARACTER (LEN); - DECLARE L FIXED BINARY; - - L = LENGTH (STRING); - IF L >= LEN THEN RETURN (STRING); - - WORK = REPEAT (FILL, LEN-L-1) || STRING; - RETURN (WORK); - END RIGHT_other; diff --git a/tests/projects/plugins/project/src/pli/chess.pli b/tests/projects/plugins/project/src/pli/chess.pli deleted file mode 100644 index f1e9c1aaed8..00000000000 --- a/tests/projects/plugins/project/src/pli/chess.pli +++ /dev/null @@ -1,760 +0,0 @@ - /* This is a chess program written in PL/I. */ - /* The original was written in Fortran 90 by Dean Menezes. */ - /* This translation by R. A. Vowels, 30 May 2008. */ - /* Moves are input in this form: */ - /* E2-E4 (start square, hyphen, end square). */ - - /* Sources: */ - - /* http://ai-depot.com/articles/minimax-explained/ */ - /* http://www.aihorizon.com/essays/chessai/index.htm */ - /* http://www.ascotti.org/programming/chess/Shannon%20-%20Programming - %20a%20computer%20for%20playing%20chess.pdf */ - - (SUBRG, SIZE, FOFL, STRINGRANGE, STRINGSIZE): - CHESS: PROCEDURE OPTIONS (MAIN, REORDER); - /* Global variables: */ - /* level = current recursion level for calculation */ - /* maxlevel = maximum recursion level */ - /* score = current score (evaluation) */ - /* besta, bestb, bestx, besty = holds best moves for each recursion level */ - /* wcksflag, wcqsflag = flags to detemine castling abilities */ - /* board = the 8x8 array to hold chessboard */ - DECLARE ( MAXLEVEL VALUE ( 5) ) FIXED BINARY; - DECLARE ( LEVEL, SCORE, BESTA(0:7) ) FIXED BINARY (31); - DECLARE ( BESTB(1:MAXLEVEL), BESTX(1:MAXLEVEL), BESTY(1:MAXLEVEL) ) FIXED - BINARY (31); - DECLARE ( WCKSFLAG, WCQSFLAG ) BIT(1) ALIGNED; - DECLARE ( A, B, X, Y, RES ) FIXED BINARY (31); - - - /* initialize board to starting position */ - DECLARE BOARD(0:7, 0:7) FIXED BINARY (31) STATIC INITIAL ( - -500, -270, -300, -900, -7500, -300, -270, -500, - -100, -100, -100, -100, -100, -100, -100, -100, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 100, 100, 100, 100, 100, 100, 100, 100, - 500, 270, 300, 900, 5000, 300, 270, 500 ); - - LEVEL=0; A=-1; RES=0; - WCKSFLAG = '0'B ; WCQSFLAG = '0'B; - /* main loop: get white move from user, calculate black move */ - DO FOREVER; - SCORE=0; - CALL IO(A, B, X, Y, RES); - RES=EVALUATE(-1, 10000); - A=BESTA(1); B=BESTB(1); X=BESTX(1); Y=BESTY(1); - END; - - /* figure out if white is in check */ - INCHECK: PROCEDURE () RETURNS( FIXED BINARY (31)) OPTIONS (REORDER); - DECLARE (XX(0:26), YY(0:26), CC(0:26)) FIXED BINARY (31); - DECLARE (I, A, B, X, Y, NDX) FIXED BINARY (31); - - DO B = 0 TO 7; - DO A = 0 TO 7; - IF BOARD(B, A)>=0 THEN - ITERATE; - CALL MOVELIST(A, B, XX, YY, CC, NDX); - /* iterate through move list and see if */ - /* piece can get to king */ - DO I = 0 TO NDX BY 1; - X = XX(I); - Y = YY(I); - IF BOARD(Y, X) = 5000 THEN - RETURN (1); - END; - END; - END; - RETURN (0); - END INCHECK; - - EVALUATE: PROCEDURE (ID, PRUNE) RETURNS ( FIXED BINARY (31) ) RECURSIVE; - DECLARE ( ID, PRUNE ) FIXED BINARY (31); - /* local variables. */ - DECLARE ( XX(0:26), YY(0:26), CC(0:26) ) FIXED BINARY (31); - DECLARE ( A, B, X, Y, C, OLDSCORE, BESTSCORE, MOVER, TARG, NDX, - I ) FIXED BINARY (31); - - LEVEL=LEVEL+1; - BESTSCORE=10000*ID; - DO B=7 TO 0 BY -1; - DO A=7 TO 0 BY -1; - /* generate the moves for all the pieces */ - /* and iterate through them */ - IF SIGN(BOARD(B,A))^=ID THEN - ITERATE; - CALL MOVELIST (A, B, XX, YY, CC, NDX); - DO I=0 TO NDX BY 1; - X=XX(I); Y=YY(I); C=CC(I); - OLDSCORE=SCORE; MOVER=BOARD(B,A); TARG=BOARD(Y,X); - /* make the move and evaluate the new position */ - /* recursively. Targ holds the relative value of the piece */ - /* allowing use to calculate material gain/loss */ - CALL MAKEMOVE (A, B, X, Y, C); - IF LEVELBESTSCORE) | (ID>0 & SCORE=PRUNE) | (ID>0 & BESTSCORE<=PRUNE) THEN - DO; - BOARD(B,A)=MOVER; BOARD(Y,X)=TARG; SCORE=OLDSCORE; - LEVEL=LEVEL-1; - RETURN (BESTSCORE); - END; - END; - BOARD(B,A)=MOVER; BOARD(Y,X)=TARG; SCORE=OLDSCORE; - END; - END; - END; - LEVEL=LEVEL-1; - RETURN (BESTSCORE); - END EVALUATE; - - /* make a move given the start square and end square */ - /* currently always promotes to queen */ - /* Moves from position (A, B) to position (X,Y). */ - - MAKEMOVE: PROCEDURE (A, B, X, Y, C) OPTIONS (REORDER); - DECLARE (A, B, X, Y, C) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26)) FIXED BINARY (31); - - BOARD(Y, X)=BOARD(B, A); BOARD(B, A)=0; - IF Y = 0 & BOARD(Y, X) = 100 THEN - BOARD(Y, X)= C; - IF Y = 7 & BOARD(Y, X) = -100 THEN - BOARD(Y, X)= C; - RETURN; - END MAKEMOVE; - - /* select appropriate subprogram to populate xx and yy arrays */ - /* with piece moves */ - /* xx = x coordinates */ - /* yy = y coordinates */ - /* cc = pawn promotion if applicable */ - /* ndx = index into xx, yy, cc arrays showing the number of */ - /* elements that the arrays have been populated with */ - MOVELIST: PROCEDURE (A, B, XX, YY, CC, NDX) OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26), CC(0:26)) FIXED BINARY (31); - DECLARE (NDX) FIXED BINARY (31); - DECLARE (PIECE) FIXED BINARY (31); - - PIECE=ABS(BOARD(B, A)); NDX=-1; - SELECT (PIECE); - WHEN (100) CALL PAWN(A, B, XX, YY, CC, NDX); - WHEN (270) CALL KNIGHT(A, B, XX, YY, NDX); - WHEN (300) CALL BISHOP(A, B, XX, YY, NDX); - WHEN (500) CALL ROOK(A, B, XX, YY, NDX); - WHEN (900) CALL QUEEN(A, B, XX, YY, NDX); - OTHERWISE CALL KING(A, B, XX, YY, NDX); - END; - RETURN; - END MOVELIST; - - /* queen is a combination of rook and bishop */ - QUEEN: PROCEDURE (A, B, XX, YY, NDX) OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26)) FIXED BINARY (31); - DECLARE NDX FIXED BINARY (31); - - CALL ROOK(A, B, XX, YY, NDX); - CALL BISHOP(A, B, XX, YY, NDX); - RETURN; - END QUEEN; - - - KING: PROCEDURE (A, B, XX, YY, NDX) OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26)) FIXED BINARY (31); - DECLARE NDX FIXED BINARY (31); - DECLARE (ID, DX, DY) FIXED BINARY (31); - - ID=SIGN(BOARD(B, A)); - /* negative = left or up */ - /* positive = right or down */ - /* zero = no change */ - DO DY=-1 TO 1; - IF B+DY<0 | B+DY>7 THEN - ITERATE; - DO DX=-1 TO 1; - IF A+DX<0 | A+DX>7 THEN - ITERATE; - IF ID^=SIGN(BOARD(B+DY,A+DX)) THEN - DO; - NDX=NDX+1; XX(NDX)=A+DX; YY(NDX)=B+DY; - END; - END; - END; - RETURN; - END KING; - - - PAWN: PROCEDURE (A, B, XX, YY, CC, NDX) OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26), CC(0:26)) FIXED BINARY (31); - DECLARE NDX FIXED BINARY (31); - DECLARE (I, ID) FIXED BINARY (31); - - ID = SIGN(BOARD(B, A)); - IF ((A - 1) >= 0) & ((A - 1) <= 7) & ((B - ID) >= 0) & ((B - - ID) <= 7) THEN - DO; - IF SIGN(BOARD((B - ID), (A - 1))) = -ID THEN - DO; - IF ((ID<0) & (B = 6)) | ((ID>0) & (B = 1)) THEN - DO; - CC(NDX+1) = 270*ID; - CC(NDX+2) = 300*ID; - CC(NDX+3) = 500*ID; - CC(NDX+4) = 900*ID; - DO I=1 TO 4; - NDX = NDX + 1; - XX(NDX) = A - 1; - YY(NDX) = B - ID; - END; - END; - ELSE - DO; - NDX = NDX + 1; - XX(NDX) = A - 1; - YY(NDX) = B - ID; - END; - END; - END; - IF ((A + 1) >= 0) & ((A + 1) <= 7) & ((B - ID) >= 0) & ((B - - ID) <= 7) THEN - DO; - IF SIGN(BOARD((B - ID), (A + 1))) = -ID THEN - DO; - IF ((ID<0) & (B = 6)) | ((ID>0) & (B = 1)) THEN - DO; - CC(NDX+1) = 270*ID; - CC(NDX+2) = 300*ID; - CC(NDX+3) = 500*ID; - CC(NDX+4) = 900*ID; - DO I=1 TO 4; - NDX = NDX + 1; - XX(NDX) = A + 1; - YY(NDX) = B - ID; - END; - END; - ELSE - DO; - NDX = NDX + 1; - XX(NDX) = A + 1; - YY(NDX) = B - ID; - END; - END; - END; - IF (A >= 0) & (A <= 7) & ((B - ID) >= 0) & ((B - ID) <= 7) THEN - DO; - IF BOARD((B - ID), A) = 0 THEN - DO; - IF ((ID<0) & (B = 6)) | ((ID>0) & (B = 1)) THEN - DO; - CC(NDX+1) = 270*ID; - CC(NDX+2) = 300*ID; - CC(NDX+3) = 500*ID; - CC(NDX+4) = 900*ID; - DO I=1 TO 4; - NDX = NDX + 1; - XX(NDX) = A; - YY(NDX) = B - ID; - END; - END; - ELSE - DO; - NDX = NDX + 1; - XX(NDX) = A; - YY(NDX) = B - ID; - END; - IF ((ID < 0) & (B = 1)) | ((ID > 0) & (B = 6)) THEN - DO; - IF BOARD((B - ID - ID), A) = 0 THEN - DO; - NDX = NDX + 1; - XX(NDX) = A; - YY(NDX) = B - ID - ID; - END; - END; - END; - END; - END PAWN; - - - BISHOP: PROCEDURE (A, B, XX, YY, NDX) OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26)) FIXED BINARY (31); - DECLARE NDX FIXED BINARY (31); - DECLARE (ID, DXY, X, Y) FIXED BINARY; - - ID=SIGN(BOARD(B, A)); - /* four diagonal directions */ - DO DXY=1 TO 7; - X=A-DXY; IF (X<0) THEN LEAVE; - Y=B+DXY; IF (Y>7) THEN LEAVE; - IF ID^=SIGN(BOARD(Y, X)) THEN /* cannot capture piece of same color */ - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - IF BOARD(Y, X)^=0 THEN - LEAVE /* cannot jump over pieces */; - END; - DO DXY=1 TO 7; - X=A+DXY; IF (X>7) THEN LEAVE; - Y=B+DXY; IF (Y>7) THEN LEAVE; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - IF BOARD(Y, X)^=0 THEN - LEAVE; - END; - DO DXY=1 TO 7; - X=A-DXY; IF (X<0) THEN LEAVE; - Y=B-DXY; IF (Y<0) THEN LEAVE; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - IF BOARD(Y, X)^=0 THEN - LEAVE; - END; - DO DXY=1 TO 7; - X=A+DXY; IF (X>7) THEN LEAVE; - Y=B-DXY; IF (Y<0) THEN LEAVE; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - IF BOARD(Y, X)^=0 THEN - LEAVE; - END; - END BISHOP; - - ROOK: PROCEDURE (A, B, XX, YY, NDX) OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26)) FIXED BINARY (31); - DECLARE NDX FIXED BINARY (31); - DECLARE (ID, X, Y) FIXED BINARY (31); - - ID=SIGN(BOARD(B, A)); - /* four different orthagonal directions */ - DO X = A-1 TO 0 BY -1; - IF ID^=SIGN(BOARD(B, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=B; - END; - IF BOARD(B, X)^=0 THEN - LEAVE; - END; - DO X = A+1 TO 7 BY 1; - IF ID^=SIGN(BOARD(B, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=B; - END; - IF BOARD(B, X)^=0 THEN - LEAVE; - END; - DO Y = B-1 TO 0 BY -1; - IF ID^=SIGN(BOARD(Y, A)) THEN - DO; - NDX=NDX+1; XX(NDX)=A; YY(NDX)=Y; - END; - IF BOARD(Y, A)^=0 THEN - LEAVE; - END; - DO Y = B+1 TO 7 BY 1; - IF ID^=SIGN(BOARD(Y, A)) THEN - DO; - NDX=NDX+1; XX(NDX)=A; YY(NDX)=Y; - END; - IF BOARD(Y, A)^=0 THEN - LEAVE; - END; - RETURN; - END ROOK; - - - KNIGHT: PROCEDURE (A, B, XX, YY, NDX) OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - DECLARE (XX(0:26), YY(0:26)) FIXED BINARY (31); - DECLARE NDX FIXED BINARY (31); - DECLARE (ID, X, Y) FIXED BINARY (31); - - ID=SIGN(BOARD(B, A)); - /* 2 vertical, 1 horizontal */ - /* or 2 horizontal, 1 vertical */ - X=A-1; Y=B-2; - IF X>=0 & Y>=0 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - X=A-2; Y=B-1; - IF X>=0 & Y>=0 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - X=A+1; Y=B-2; - IF X<=7 & Y>=0 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - X=A+2; Y=B-1; - IF X<=7 & Y>=0 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - X=A-1; Y=B+2; - IF X>=0 & Y<=7 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - X=A-2; Y=B+1; - IF X>=0 & Y<=7 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - X=A+1; Y=B+2; - IF X<=7 & Y<=7 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - X=A+2; Y=B+1; - IF X<=7 & Y<=7 THEN - DO; - IF ID^=SIGN(BOARD(Y, X)) THEN - DO; - NDX=NDX+1; XX(NDX)=X; YY(NDX)=Y; - END; - END; - RETURN; - END KNIGHT; - - /* display chessboard */ - SHOW: PROCEDURE OPTIONS (REORDER); - DECLARE (A, B) FIXED BINARY (31); - - DO B=0 TO 7; - PUT SKIP EDIT ( ' +---+---+---+---+---+---+---+---+' )(COL(20), A); - PUT SKIP EDIT ( 8-B, ' |' )(COL(20), F(1), A); - DO A=0 TO 7; - SELECT (BOARD(B, A)); - WHEN (-7500) PUT EDIT ( ' *k|' )(A); - WHEN (-900) PUT EDIT ( ' *q|' )(A); - WHEN (-500) PUT EDIT ( ' *r|' )(A); - WHEN (-300) PUT EDIT ( ' *b|' )(A); - WHEN (-270) PUT EDIT ( ' *n|' )(A); - WHEN (-100) PUT EDIT ( ' *p|' )(A); - WHEN (0) PUT EDIT ( ' |' )(A); - WHEN (100) PUT EDIT ( ' P |' )(A); - WHEN (270) PUT EDIT ( ' N |' )(A); - WHEN (300) PUT EDIT ( ' B |' )(A); - WHEN (500) PUT EDIT ( ' R |' )(A); - WHEN (900) PUT EDIT ( ' Q |' )(A); - WHEN (5000) PUT EDIT ( ' K |' )(A); - END; - END; - END; - PUT SKIP EDIT ( ' +---+---+---+---+---+---+---+---+' )(COL(20), A); - PUT SKIP EDIT ( ' A B C D E F G H' )(COL(20), A); - RETURN; - END SHOW; - - /* io -- input/output: */ - /* display black move and get white move */ - IO: PROCEDURE (A, B, X, Y, RES) OPTIONS (REORDER); - DECLARE (A, B, X, Y, RES) FIXED BINARY (31); - DECLARE ( INPUT ) CHARACTER (10); - DECLARE (XX(0:26), YY(0:26), CC(0:26)) FIXED BINARY (31); - DECLARE (I, K, NDX, PIECE, TARG, MOVER, C) FIXED BINARY (31); - DECLARE NULL FIXED BINARY; /* This variable is assigned but never used. */ - DECLARE LETTER (0:7) CHAR (1) STATIC INITIAL - ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'); - - DECLARE SL FIXED BINARY; - - /* >>>>>>>>> CAUTION - WATCH FOR UNINITIALIZED XX, YY <<<<<<<<<<< */ - DECLARE ( WCKSOLD, WCQSOLD ) BIT(1) ALIGNED; - - ON ERROR SNAP BEGIN; - PUT SKIP LIST ('at line ' || TRIM(SL) ); - END; - - SL = SOURCELINE(); - - IF A>=0 THEN - DO; - IF RES<-2500 THEN - DO; - PUT SKIP LIST ( 'I RESIGN'); - CALL SHOW; - PUT SKIP; - STOP; - END; - PIECE=BOARD(Y, X); - CALL MAKEMOVE(A, B, X, Y, C); - PUT SKIP EDIT ( 'MY MOVE: ' )(A); - PUT EDIT ( LETTER(A), 8-B, '-', LETTER(X), 8-Y) - (A, F(1), A, A, F(1)); - - SELECT (PIECE); - WHEN (100) PUT SKIP LIST ( 'I TOOK YOUR PAWN'); - WHEN (270) PUT SKIP LIST ( 'I TOOK YOUR KNIGHT'); - WHEN (300) PUT SKIP LIST ( 'I TOOK YOUR BISHOP'); - WHEN (500) PUT SKIP LIST ( 'I TOOK YOUR ROOK'); - WHEN (900) PUT SKIP LIST ( 'I TOOK YOUR QUEEN'); - WHEN (5000) PUT SKIP LIST ( 'I TOOK YOUR KING'); - OTHERWISE ; - END; - END; - DO_FOREVER1: - DO FOREVER; - CALL SHOW; - PUT SKIP EDIT ( 'YOUR MOVE: ' )(A); - RETRY_MOVE: - GET EDIT (INPUT) (L); - CALL UPCASE(INPUT); - IF (INPUT = 'QUIT') | (INPUT = 'BYE') | (INPUT = 'EXIT') THEN - STOP; - /* castling */ - IF (INPUT = 'O-O') | (INPUT = '0-0') THEN - DO; - IF INCHECK() ^= 0 THEN - ITERATE DO_FOREVER1; /* cannot castle out of check */ - IF WCKSFLAG THEN - ITERATE DO_FOREVER1; - IF BOARD(7, 7) ^= 500 THEN - ITERATE DO_FOREVER1; - IF (BOARD (7,6) ^= 0) | (BOARD(7,5) ^=0) THEN - ITERATE DO_FOREVER1; - BOARD(7, 4) = 0; - BOARD(7, 5) = 5000; - IF INCHECK() ^= 0 THEN /* cannot castle through check */ - DO; - BOARD(7, 4) = 5000; - BOARD(7, 5) = 0; - ITERATE DO_FOREVER1; - END; - ELSE - DO; - BOARD(7, 4) = 5000; - BOARD(7, 5) = 0; - END; - BOARD(7, 6) = 5000; - BOARD(7, 4) = 0; - BOARD(7, 5) = 500; - BOARD(7, 7) = 0; - IF INCHECK() ^= 0 THEN /* cannot castle into check */ - DO; - BOARD(7, 6) = 0; - BOARD(7, 4) = 5000; - BOARD(7, 5) = 0; - BOARD(7, 7) = 500; - ITERATE DO_FOREVER1; - END; - ELSE - DO; - WCKSFLAG = '1'B; - WCQSFLAG = '1'B; - RETURN; - END; - END; - IF (INPUT = 'O-O-O') | (INPUT = '0-0-0') THEN - DO; - IF INCHECK() ^= 0 THEN - ITERATE DO_FOREVER1; /* cannot castle out of check */ - IF WCQSFLAG THEN - ITERATE DO_FOREVER1; - IF BOARD(7,0) ^= 500 THEN - ITERATE DO_FOREVER1; - IF (BOARD(7,1) ^= 0) | (BOARD(7,2) ^= 0) | (BOARD(7,3) ^= 0) THEN - ITERATE DO_FOREVER1; - BOARD(7, 4) = 0; - BOARD(7, 3) = 5000; - IF INCHECK() ^= 0 THEN /* cannot castle through check */ - DO; - BOARD(7, 4) = 5000; - BOARD(7, 3) = 0; - ITERATE DO_FOREVER1; - END; - ELSE - DO; - BOARD(7, 4) = 5000; - BOARD(7, 3) = 0; - END; - BOARD(7, 2) = 5000; - BOARD(7, 4) = 0; - BOARD(7, 3) = 500; - BOARD(7, 0) = 0; - IF INCHECK() ^= 0 THEN /* cannot castle into check */ - DO; - BOARD(7, 2) = 0; - BOARD(7, 4) = 5000; - BOARD(7, 3) = 0; - BOARD(7, 0) = 500; - ITERATE DO_FOREVER1; - END; - ELSE - DO; - WCKSFLAG = '1'B; - WCQSFLAG = '1'B; - RETURN; - END; - END; - - /* Check that only the proper letters A-H etc are used. */ - /* (this does not check that the letters are in their correct columns.) */ - I = VERIFY (TRIM(INPUT), 'ABCDEFGHO0-12345678'); - IF I > 0 THEN - DO; - PUT SKIP LIST ('That move was invalid. Please try again:'); - GO TO RETRY_MOVE; - END; - - SL = SOURCELINE(); - - /* (A,B) are co-ordinates of the from position. */ - /* (X,Y) are co-ordinates of the destination position. */ - - /* Translate algebraic notation to co-ordinates. */ - - B = 8 - INDEX ('12345678', SUBSTR(INPUT, 2, 1) ); - A = INDEX ('ABCDEFGH', SUBSTR(INPUT, 1, 1) ) - 1; - X = INDEX ('ABCDEFGH', SUBSTR(INPUT, 4, 1) ) - 1; - Y = 8 - INDEX ('12345678', SUBSTR(INPUT, 5, 1) ); - - PUT SKIP DATA (A, B); - PUT SKIP DATA (X, Y); - STOP; - IF B>7 | B<0 | A>7 | A<0 | X>7 | X<0 | Y>7 | Y<0 THEN - DO; - PUT SKIP LIST ('Illegal move. Please try again'); - ITERATE DO_FOREVER1; - END; - IF BOARD(B,A)<=0 THEN - ITERATE DO_FOREVER1; - /* en passant capture */ - IF (Y = 2) & (B = 3) & ((X = A-1) | (X = A+1)) THEN - DO; - IF (BOARD(B,A) = 100) & (BOARD(Y,X) = 0) & (BOARD(Y+1,X) =-100) THEN - DO; - IF (BESTB(1) = 1) & (BESTA(1) = X) THEN - DO; - MOVER = BOARD(B,A); - TARG = BOARD(Y,X); - CALL MAKEMOVE(A,B,X,Y,C); - BOARD(Y+1,X)=0; - IF (INCHECK()) = 0 THEN - RETURN; - BOARD(B,A) = MOVER; - BOARD(Y, X) = TARG; - BOARD(Y+1,X) = -100; - ITERATE DO_FOREVER1; - END; - END; - END; - /* check if selected white move is on list of moves */ - CALL MOVELIST(A, B, XX, YY, CC, NDX); - DOK_LOOP: - DO K = 0 TO NDX BY 1; - IF (X = XX(K)) & (Y = YY(K)) THEN - DO; - MOVER = BOARD(B, A); - TARG = BOARD(Y, X); - IF Y = 0 THEN - FOREVER_LOOP: - DO FOREVER; - PUT SKIP EDIT ( 'PROMOTION PIECE: ' )(A); - GET EDIT (INPUT) (L); - CALL UPCASE(INPUT); - SELECT (INPUT); - WHEN ('N', 'KT', 'KNIGHT', 'HORSE') C = 270; - WHEN ('B', 'BISHOP') C = 300; - WHEN ('R', 'ROOK') C = 500; - WHEN ('Q', 'QUEEN') C = 900; - OTHERWISE ITERATE; - END; - LEAVE FOREVER_LOOP; - END; - CALL MAKEMOVE(A, B, X, Y, C); - IF MOVER = 5000 THEN - DO; - WCQSOLD = WCQSFLAG; - WCKSOLD = WCKSFLAG; - WCKSFLAG = '1'B; - WCQSFLAG = '1'B; - END; - IF (A = 0) & (B = 7) & (MOVER = 500) THEN - DO; - WCQSOLD = WCQSFLAG; - WCQSFLAG = '1'B; - END; - IF (A = 7) & (B = 7) & (MOVER = 500) THEN - DO; - WCKSOLD = WCKSFLAG; - WCKSFLAG = '1'B; - END; - IF INCHECK() = 0 THEN - RETURN; - BOARD(B, A) = MOVER; - BOARD(Y, X) = TARG; - IF MOVER = 5000 THEN - DO; - WCQSFLAG = WCQSOLD; - WCKSFLAG = WCKSOLD; - END; - IF (A = 0) & (B = 7) & (MOVER = 500) THEN - WCQSFLAG = WCQSOLD; - IF (A = 7) & (B = 7) & (MOVER = 500) THEN - WCKSFLAG = WCKSOLD; - LEAVE DOK_LOOP; - END; - END; - END; - END IO; - - /* convert string to uppercase */ - UPCASE: PROCEDURE (STRING) OPTIONS (REORDER); - DECLARE ( STRING ) CHARACTER (*); - - STRING = TRANSLATE (STRING, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', - 'abcdefghijklmnopqrstuvwxyz' ); - - END UPCASE; - - END CHESS; diff --git a/tests/projects/plugins/project/src/pli/hasissues.pli b/tests/projects/plugins/project/src/pli/hasissues.pli deleted file mode 100644 index eaacb6c917c..00000000000 --- a/tests/projects/plugins/project/src/pli/hasissues.pli +++ /dev/null @@ -1,13 +0,0 @@ -foo: proc options(main); - declare i fixed decimal init (0); - - if i = 42 then - put list ('The answer is... '); /* Non-Compliant - This statement should be enclosed in a DO ... END one */ - put list ('42!'); /* This statement will always and unconditionally be executed! Its indentation level is misleading. */ -end; - -bar: proc options(main); - /* Non-Compliant - The trailing space, following "Hello," is not readable and could be removed by some text editors */ - put list ('Hello, -world'); -end; diff --git a/tests/projects/plugins/project/src/pli/maxlen.pli b/tests/projects/plugins/project/src/pli/maxlen.pli deleted file mode 100644 index c7498b0936b..00000000000 --- a/tests/projects/plugins/project/src/pli/maxlen.pli +++ /dev/null @@ -1,67 +0,0 @@ - /* Copyright (c) 1995 by R. A. Vowels, from "Introduction to PL/I, Algorithms, and */ - /* Structured Programming". Permission is given to reproduce and to use these procedures */ - /* as part of a program, and to include them as part of a larger work to be sold for profit. */ - /* However, the user is not permitted to sell the procedures separately. Provided always */ - /* that these procedures and this copyright notice are reproduced in full. */ - - DECLARE MAXLENGTH GENERIC - (MAXLEN_graphic WHEN (GRAPHIC), - MAXLEN_bit WHEN (BIT), - MAXLEN_char WHEN (*) ); - - /* This procedure is provided for those who must have the */ - /* built-in function MAXLENGTH. Do not call it often, as */ - /* run-time is relatively high. */ - /* This procedure returns the maximum length that a VARYING character string may take. */ - MAXLEN_char: - PROCEDURE (STRING) RETURNS (FIXED BINARY); - DECLARE STRING CHARACTER (*) VARYING; - - DECLARE LENGTH BUILTIN; - DECLARE TEMP CHARACTER (32767) VARYING; - DECLARE STR CHARACTER (32767) STATIC INITIAL ( ' ' ); - DECLARE K FIXED BINARY; - - TEMP = STRING; /* Preserve a copy of the string. */ - (NOSTRINGSIZE): - STRING = STR; /* Assign something very long to it. */ - K = LENGTH (STRING); /* Find out how long the variable is. */ - STRING = TEMP; /* Restore the string. */ - RETURN (K); /* The declared length of the string. */ - END MAXLEN_char; - - /* This procedure returns the maximum length that a VARYING graphic string may take. */ - MAXLEN_graphic: - PROCEDURE (STRING) RETURNS (FIXED BINARY); - DECLARE STRING GRAPHIC (*) VARYING; - - DECLARE LENGTH BUILTIN; - DECLARE TEMP GRAPHIC (16383) VARYING; - DECLARE STR GRAPHIC (16383) STATIC INITIAL ( ' ' ); - DECLARE K FIXED BINARY; - - TEMP = STRING; /* Preserve a copy of the string. */ - (NOSTRINGSIZE): - STRING = STR; /* Assign something very long to it. */ - K = LENGTH (STRING); /* Find out how long the variable is. */ - STRING = TEMP; /* Restore the string. */ - RETURN (K); /* The declared length of the string. */ - END MAXLEN_graphic; - - /* This procedure returns the maximum length that a VARYING bit string may take. */ - MAXLEN_bit: - PROCEDURE (STRING) RETURNS (FIXED BINARY); - DECLARE STRING BIT (*) VARYING; - - DECLARE LENGTH BUILTIN; - DECLARE TEMP BIT (32767) VARYING; - DECLARE STR BIT (32767) STATIC INITIAL ( '0'B); - DECLARE K FIXED BINARY; - - TEMP = STRING; /* Preserve a copy of the string. */ - (NOSTRINGSIZE): - STRING = STR; /* Assign something very long to it. */ - K = LENGTH (STRING); /* Find out how long the variable is. */ - STRING = TEMP; /* Restore the string. */ - RETURN (K); /* The declared length of the string. */ - END MAXLEN_bit; diff --git a/tests/projects/plugins/project/src/pli/search.pli b/tests/projects/plugins/project/src/pli/search.pli deleted file mode 100644 index ed9a231427d..00000000000 --- a/tests/projects/plugins/project/src/pli/search.pli +++ /dev/null @@ -1,246 +0,0 @@ - /* Copyright (c) 1995 by R. A. Vowels, from "Introduction to PL/I, Algorithms, and */ - /* Structured Programming". Permission is given to reproduce and to use these procedures */ - /* as part of a program, and to include them as part of a larger work to be sold for profit. */ - /* However, the user is not permitted to sell the procedures separately. Provided always */ - /* that these procedures and this copyright notice are reproduced in full. */ - - DECLARE SEARCH GENERIC - (SEARCH_all_graphic WHEN ( GRAPHIC, GRAPHIC), - SEARCH_all_graphic WHEN ( GRAPHIC, *), - SEARCH_all_graphic WHEN (*, GRAPHIC), - SEARCH_all_bit WHEN ( BIT, BIT), - SEARCH_all WHEN (*,*), - SEARCH_sub_graphic WHEN ( GRAPHIC, GRAPHIC, *), - SEARCH_sub_graphic WHEN ( GRAPHIC, *, *), - SEARCH_sub_graphic WHEN (*, GRAPHIC, *), - SEARCH_sub_bit WHEN ( BIT, BIT, *), - SEARCH_sub WHEN (*,*,*) ); - - /* This function procedure searches the first string STRING for any characters given in the */ - /* second string SUB. If there are any such characters, the function returns the position */ - /* of the left-most. */ - SEARCH_all: - PROCEDURE (STRING, SUB) OPTIONS (REORDER) - RETURNS (FIXED BINARY (31)); - /* INCOMING: STRING = the string to be searched; */ - /* SUB = contains characters to look for. */ - DECLARE (STRING, SUB) CHARACTER (*); - - DECLARE (LENGTH, SUBSTR, - UNSPEC, INDEX) BUILTIN; - DECLARE Table (0:255) BIT (1) STATIC ALIGNED; - DECLARE (J, K) FIXED BINARY (31); - - IF LENGTH (SUB) = 0 THEN /* Nothing with which to search. */ - RETURN (0); - IF LENGTH (STRING) = 0 THEN /* There's nothing to search. */ - RETURN (0); - IF LENGTH (SUB) = 1 THEN /* Looking for one character is fast. */ - RETURN (INDEX (STRING, SUB)); - - /* SETS UP A LOOK-UP TABLE (which is independent of the character set). */ - Table = '0'B; /* All entries are FALSE. */ - DO J = 1 TO LENGTH (Sub); - K = UNSPEC (SUBSTR (Sub, J, 1)); - Table (K) = '1'B; /* Table(k) is TRUE for each character in SUB. */ - END; - - /* CONDUCT THE SEARCH. */ - DO J = 1 TO LENGTH (STRING); - K = UNSPEC (SUBSTR (STRING, J, 1)); - IF Table(K) THEN /* TRUE when a SUB character matches one in */ - RETURN (J); /* STRING. */ - END; - RETURN (0); /* Unsuccessful search. */ - END SEARCH_all; - - /* This function procedure searches the first string STRING for any characters given in the */ - /* second string SUB. If there are any such characters, the function returns the position */ - /* of the left-most. */ - /* The search is performed from left to right, commencing from character position */ - /* POSITION. */ - SEARCH_sub: - PROCEDURE (STRING, SUB, POSITION) RETURNS (FIXED BINARY (31)); - /* INCOMING: STRING = the string to be searched; */ - /* SUB = contains characters to look for; */ - /* POSITION = where to start the search (measured from the left-hand end of */ - /* STRING). */ - DECLARE (STRING, SUB) CHARACTER (*); - DECLARE POSITION FIXED BINARY (31); - - DECLARE (LENGTH, INDEX) BUILTIN; - DECLARE K FIXED BINARY (31); - - IF (Position > LENGTH (String)+1) | (Position <= 0) THEN - DO; - SIGNAL STRINGRANGE; - RETURN (0); - END; - IF LENGTH (STRING) = 0 THEN RETURN (0); - K = SEARCH_all ( SUBSTR (STRING, POSITION), SUB); - IF K = 0 THEN RETURN (0); - RETURN (POSITION+K-1); - END SEARCH_sub; - - /* This function procedure searches the first string STRING for any characters given in the */ - /* second string SUB. If there are any such characters, the function returns the position */ - /* of the left-most. */ - SEARCH_all_graphic: - PROCEDURE (STRING, SUB) OPTIONS (REORDER) - RETURNS ( FIXED BINARY (31)); - /* INCOMING: STRING = the string to be searched; */ - /* SUB = contains characters to look for. */ - DECLARE (STRING, SUB) GRAPHIC (*); - - DECLARE (LENGTH, - SUBSTR, - INDEX) BUILTIN; - DECLARE (J, K) FIXED BINARY (31); - DECLARE Ch GRAPHIC (1); - - IF LENGTH (SUB) = 0 THEN /* Nothing with which to search. */ - RETURN (0); - IF LENGTH (STRING) = 0 THEN /* There's nothing to search. */ - RETURN (0); - IF LENGTH (SUB) = 1 THEN /* Looking for one character is fast. */ - RETURN (INDEX (STRING, SUB)); - - DO J = 1 TO LENGTH(String); - Ch = SUBSTR(String, J, 1); /* Select one graphic character from the string to*/ - /* be searched. */ - K = INDEX (Sub, Ch); /* Check whether it is one of those on our search list.*/ - IF K ^= 0 THEN /* If it is, we are done. */ - RETURN (J); - END; - - RETURN (0); /* The search was unsuccessful. */ - END SEARCH_all_graphic; - - /* This function procedure searches the first string STRING for any graphic characters */ - /* given in the second string SUB. If there are any such graphic characters, the function */ - /* returns the position of the left-most. */ - /* The search is performed from left to right, commencing from graphic character position */ - /* POSITION. */ - SEARCH_sub_graphic: - PROCEDURE (STRING, SUB, POSITION) RETURNS (FIXED BINARY (31)); - /* INCOMING: STRING = the string to be searched; */ - /* SUB = contains characters to look for; */ - /* POSITION = where to start the search (measured from the left-hand end of */ - /* STRING). */ - DECLARE (STRING, SUB) GRAPHIC (*); - DECLARE POSITION FIXED BINARY (31); - - DECLARE (LENGTH, SUBSTR, - INDEX) BUILTIN; - DECLARE (J, K) FIXED BINARY (31); - DECLARE Ch GRAPHIC (1); - - IF (Position > LENGTH (String)+1) | (Position <= 0) THEN - DO; - SIGNAL STRINGRANGE; - RETURN (0); - END; - IF LENGTH (SUB) = 0 THEN /* Nothing with which to search. */ - RETURN (0); - IF LENGTH (STRING) = 0 THEN /* There's nothing to search. */ - RETURN (0); - IF LENGTH (SUB) = 1 THEN /* Looking for one character is fast. */ - RETURN (INDEX (SUBSTR (STRING, Position), SUB)+Position-1); - - DO J = Position TO LENGTH(String); - Ch = SUBSTR(String, J, 1); /* Select one graphic character from the string to */ - /* be searched. */ - K = INDEX (Sub, Ch); /* Check whether it is one of those on our search list.*/ - IF K ^= 0 THEN /* If it is, we are done. */ - RETURN (J); - END; - - RETURN (0); /* The search was unsuccessful. */ - - END SEARCH_sub_graphic; - - /* This function procedure searches the first string STRING for any bits given in the */ - /* second string SUB. If there are any such bits, the function returns the position */ - /* of the left-most. */ - SEARCH_all_bit: - PROCEDURE (STRING, SUB) OPTIONS (REORDER) - RETURNS ( FIXED BINARY (31)); - /* INCOMING: STRING = the string to be searched; */ - /* SUB = contains bits to look for. */ - DECLARE (STRING, SUB) BIT (*); - - DECLARE (LENGTH, SUBSTR, - INDEX) BUILTIN; - DECLARE (J, K) FIXED BINARY (31); - - IF LENGTH (SUB) = 0 THEN /* Nothing with which to search. */ - RETURN (0); - IF LENGTH (STRING) = 0 THEN /* There's nothing to search. */ - RETURN (0); - IF LENGTH (SUB) = 1 THEN /* Looking for one bit is fast. */ - RETURN (INDEX (STRING, SUB)); - - /* When we come here, SUB has 2 or more bits. */ - - K = INDEX (SUB, ^SUBSTR(SUB, 1, 1)); /* Look for a bit of the opposite kind. */ - - IF K > 0 THEN /* No need for a search -- the key SUB consists */ - /* of both 0 and 1. */ - RETURN (1); /* Always get a match at position 1. */ - - /* The pattern SUB contains either all ones or all zeros. */ - - /* CONDUCT THE SEARCH. */ - IF SUBSTR(SUB, 1, 1) THEN - RETURN (INDEX(STRING, '1'B)); - ELSE - RETURN (INDEX(STRING, '0'B)); - - END SEARCH_all_bit; - - /* This function procedure searches the first string STRING for any bits given in the */ - /* second string SUB. If there are any such bits, the function returns the position */ - /* of the left-most. */ - SEARCH_sub_bit: - PROCEDURE (String, Sub, Position) OPTIONS (REORDER) - RETURNS ( FIXED BINARY (31)); - /* INCOMING: STRING = the string to be searched; */ - /* SUB = contains bits to look for. */ - DECLARE (String, Sub) BIT (*); - - DECLARE (LENGTH, SUBSTR, - INDEX) BUILTIN; - DECLARE (J, K) FIXED BINARY (31); - - IF (Position > LENGTH (String)+1) | (Position <= 0) THEN - DO; - SIGNAL STRINGRANGE; - RETURN (0); - END; - IF LENGTH (SUB) = 0 THEN /* Nothing with which to search. */ - RETURN (0); - IF LENGTH (STRING) = 0 THEN /* There's nothing to search. */ - RETURN (0); - IF Position = LENGTH(String)+1 THEN - RETURN (0); - IF LENGTH (SUB) = 1 THEN /* Looking for one bit is fast. */ - RETURN (INDEX(SUBSTR(STRING, Position), SUB)+Position-1); - - /* When we come here, SUB has 2 or more bits. */ - - K = INDEX (SUBSTR(String, Position), ^SUBSTR(SUB, 1, 1)); - /* Look for a bit of the opposite kind. */ - - IF K > 0 THEN /* No need for a search -- the key SUB consists */ - /* of both 0 and 1. */ - RETURN (Position); /* Always get a match at position "Position". */ - - /* The pattern SUB contains either all ones or all zeros. */ - - /* CONDUCT THE SEARCH. */ - IF SUBSTR(SUB, 1, 1) THEN - RETURN (INDEX(SUBSTR(STRING, Position), '1'B)+Position-1); - ELSE - RETURN (INDEX(SUBSTR(STRING, Position), '0'B)+Position-1); - - END SEARCH_sub_bit; diff --git a/tests/projects/plugins/project/src/plsql/ddl.sql b/tests/projects/plugins/project/src/plsql/ddl.sql deleted file mode 100644 index 78a3ddd1951..00000000000 --- a/tests/projects/plugins/project/src/plsql/ddl.sql +++ /dev/null @@ -1,9 +0,0 @@ -CREATE TABLE OWNER.TABLE01 (ID NUMBER(12)); -/ -ALTER TABLE OWNER.TABLE01 ADD (COL1 VARCHAR2(4000)); -/ - -CREATE TABLE OWNER.TABLE02 (ID NUMBER(12)); -/ -ALTER TABLE OWNER.TABLE02 ADD (COL1 VARCHAR2(4000)); -/ diff --git a/tests/projects/plugins/project/src/plsql/has-issues.sql b/tests/projects/plugins/project/src/plsql/has-issues.sql deleted file mode 100644 index 29a74b1d962..00000000000 --- a/tests/projects/plugins/project/src/plsql/has-issues.sql +++ /dev/null @@ -1,9 +0,0 @@ --- plsql:SingleLineCommentsSyntaxCheck -/* single line comment */ - --- plsql:UpperCaseReservedWordsCheck -create TABLE ut_suite ( - id INTEGER, -- comment - -- plsql:CharVarchar - name char(1) -); diff --git a/tests/projects/plugins/project/src/plsql/ut_report.pkb b/tests/projects/plugins/project/src/plsql/ut_report.pkb deleted file mode 100644 index 15bdc4e4f66..00000000000 --- a/tests/projects/plugins/project/src/plsql/ut_report.pkb +++ /dev/null @@ -1,213 +0,0 @@ -/* Formatted on 2002/03/31 23:53 (Formatter Plus v4.5.2) */ -CREATE OR REPLACE PACKAGE BODY Utreport -IS - -/************************************************************************ -GNU General Public License for utPLSQL - -Copyright (C) 2000-2003 -Steven Feuerstein and the utPLSQL Project -(steven@stevenfeuerstein.com) - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program (see license.txt); if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -************************************************************************ -$Log: ut_report.pkb,v $ -Revision 1.3 2005/05/11 21:33:36 chrisrimmer -Added testing of reporter infrastructure - -Revision 1.2 2004/11/16 09:46:49 chrisrimmer -Changed to new version detection system. - -Revision 1.1 2004/07/14 17:01:57 chrisrimmer -Added first version of pluggable reporter packages - - -************************************************************************/ - - DEFAULT_REPORTER VARCHAR2(100) := 'Output'; - - DYNAMIC_PLSQL_FAILURE NUMBER(10) := -6550; - - --This is the reporter we have been asked to use - g_reporter VARCHAR2(100); - - --This is the reporter we are actually using - --(this differs from the above in the event of error) - g_actual VARCHAR2(100); - - FUNCTION parse_it(proc IN VARCHAR2, params IN NUMBER, force_reporter IN VARCHAR2) - RETURN INTEGER - IS - dyn_handle INTEGER := NULL; - query VARCHAR2(1000); - BEGIN - dyn_handle := DBMS_SQL.OPEN_CURSOR; - QUERY := 'BEGIN ut' || NVL(force_reporter, g_actual) || 'Reporter.' || proc ; - IF params = 1 THEN - QUERY := QUERY || '(:p)'; - END IF; - QUERY := QUERY || '; END;'; - DBMS_SQL.PARSE(dyn_handle, QUERY, DBMS_SQL.NATIVE); - RETURN dyn_handle; - EXCEPTION - WHEN OTHERS THEN - DBMS_SQL.CLOSE_CURSOR (dyn_handle); - RAISE; - END; - - PROCEDURE execute_it(dyn_handle IN OUT INTEGER) - IS - dyn_result INTEGER; - BEGIN - dyn_result := DBMS_SQL.EXECUTE (dyn_handle); - DBMS_SQL.CLOSE_CURSOR (dyn_handle); - END; - - --We use this to make dynamic calls to reporter packages - PROCEDURE call(proc IN VARCHAR2, - param IN VARCHAR2, - params IN NUMBER := 1, - force_reporter IN VARCHAR2 := NULL, - failover IN BOOLEAN := TRUE) - IS - dyn_handle INTEGER := NULL; - BEGIN - dyn_handle := parse_it(proc, params, force_reporter); - IF params = 1 THEN - DBMS_SQL.BIND_VARIABLE (dyn_handle, 'p', param); - END IF; - execute_it(dyn_handle); - EXCEPTION - WHEN OTHERS THEN - - IF dyn_handle IS NOT NULL THEN - DBMS_SQL.CLOSE_CURSOR (dyn_handle); - END IF; - - IF g_actual <> DEFAULT_REPORTER THEN - - IF NOT failover OR SQLCODE <> DYNAMIC_PLSQL_FAILURE THEN - g_actual := DEFAULT_REPORTER; - pl(SQLERRM); - pl('** REVERTING TO DEFAULT REPORTER **'); - END IF; - - ELSE - RAISE; - END IF; - - call(proc, param, params, force_reporter => DEFAULT_REPORTER); - END; - - PROCEDURE call(proc IN VARCHAR2, - failover IN BOOLEAN := TRUE) - IS - BEGIN - call(proc => proc, - param => '', - params => 0, - failover => failover); - END; - - PROCEDURE use(reporter IN VARCHAR2) - IS - BEGIN - g_reporter := NVL(reporter, DEFAULT_REPORTER); - g_actual := g_reporter; - END; - - FUNCTION using RETURN VARCHAR2 - IS - BEGIN - RETURN g_reporter; - END; - - PROCEDURE open - IS - BEGIN - g_actual := g_reporter; - call('open', failover => FALSE); - END; - - PROCEDURE pl (str IN VARCHAR2) - IS - BEGIN - call('pl', str); - END; - - PROCEDURE pl (bool IN BOOLEAN) - IS - BEGIN - pl (Utplsql.bool2vc (bool)); - END; - - PROCEDURE before_results(run_id IN utr_outcome.run_id%TYPE) - IS - BEGIN - call('before_results', run_id); - END; - - PROCEDURE show_failure(rec_result IN utr_outcome%ROWTYPE) - IS - BEGIN - outcome := rec_result; - call('show_failure'); - END; - - PROCEDURE show_result(rec_result IN utr_outcome%ROWTYPE) - IS - BEGIN - outcome := rec_result; - call('show_result'); - END; - - PROCEDURE after_results(run_id IN utr_outcome.run_id%TYPE) - IS - BEGIN - call('after_results', run_id); - END; - - PROCEDURE before_errors(run_id IN utr_error.run_id%TYPE) - IS - BEGIN - call('before_errors', run_id); - END; - - PROCEDURE show_error(rec_error IN utr_error%ROWTYPE) - IS - BEGIN - error := rec_error; - call('show_error'); - END; - - PROCEDURE after_errors(run_id IN utr_error.run_id%TYPE) - IS - BEGIN - call('after_errors', run_id); - END; - - PROCEDURE close - IS - BEGIN - call('close'); - END; - -BEGIN - - g_reporter := NVL(utconfig.getreporter, DEFAULT_REPORTER); - g_actual := g_reporter; - -END; -/ diff --git a/tests/projects/plugins/project/src/python/__init__.py b/tests/projects/plugins/project/src/python/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/projects/plugins/project/src/python/badfortune.py b/tests/projects/plugins/project/src/python/badfortune.py deleted file mode 100644 index b0900dc1695..00000000000 --- a/tests/projects/plugins/project/src/python/badfortune.py +++ /dev/null @@ -1,92 +0,0 @@ - -# fortune.py -- chooses a random fortune, as the fortune(8) program in -# the BSD-games package does -# -# Copyright (c) 2010, Andrew M. Kuchling -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -import struct, random, string - -# C long variables are different sizes on 32-bit and 64-bit machines, -# so we have to measure how big they are on the machine where this is running. -LONG_SIZE = struct.calcsize('L') -is_64_bit = (LONG_SIZE == 8) - -def get(filename): - "Select a random quotation, using a pregenerated .dat file" - - # First, we open the .dat file, and read the header information. - # The C structure containing this info looks like: - ## typedef struct { /* information table */ - ## #define VERSION 1 - ## unsigned long str_version; /* version number */ - ## unsigned long str_numstr; /* # of strings in the file */ - ## unsigned long str_longlen; /* length of longest string */ - ## unsigned long str_shortlen; /* length of shortest string */ - ## #define STR_RANDOM 0x1 /* randomized pointers */ - ## #define STR_ORDERED 0x2 /* ordered pointers */ - ## #define STR_ROTATED 0x4 /* rot-13'd text */ - ## unsigned long str_flags; /* bit field for flags */ - ## unsigned char stuff[4]; /* long aligned space */ - ## #define str_delim stuff[0] /* delimiting character */ - ## } STRFILE; - - datfile = open(filename+'.dat', 'r') - data = datfile.read(5 * LONG_SIZE) - if is_64_bit: - v1, v2, n1, n2, l1, l2, s1, s2, f1, f2 = struct.unpack('!10L', data) - version = v1 + (v2 << 32) - numstr = n1 + (n2 << 32) - longlen = l1 + (l2 << 32) - shortlen = s1 + (s2 << 32) - flags = f1 + (f2 << 32) - else: - version, numstr, longlen, shortlen, flags = struct.unpack('5l', data) - - delimiter = datfile.read(1) - datfile.read(3) # Throw away padding bytes - if is_64_bit: datfile.read(4) # 64-bit machines align to 8 bytes - - # Pick a random number - r = random.randint(0, numstr) - datfile.seek(LONG_SIZE * r, 1) # Seek to the chosen pointer - data = datfile.read(LONG_SIZE * 2) - - if is_64_bit: - s1, s2, e1, e2 = struct.unpack('!4L', data) - start, end = s1 + (s2 << 32), e1 + (e2 << 32) - else: - start, end = struct.unpack('!ll', data) - datfile.close() - - file = open(filename, 'r') - file.seek(start) - quotation = file.read(end-start) - L=string.split(quotation, '\n') - while string.strip(L[-1]) == delimiter or string.strip(L[-1]) == "": - L=L[:-1] - return string.join(L, '\n') - -if __name__ == '__main__': - import sys - if len(sys.argv) == 1: - print 'Usage: fortune.py ' - sys.exit() - print get(sys.argv[1]) diff --git a/tests/projects/plugins/project/src/python/directory/file_in_directory.py b/tests/projects/plugins/project/src/python/directory/file_in_directory.py deleted file mode 100644 index 0708437a71f..00000000000 --- a/tests/projects/plugins/project/src/python/directory/file_in_directory.py +++ /dev/null @@ -1 +0,0 @@ -lst = [] diff --git a/tests/projects/plugins/project/src/python/hasissues.py b/tests/projects/plugins/project/src/python/hasissues.py deleted file mode 100644 index df209065464..00000000000 --- a/tests/projects/plugins/project/src/python/hasissues.py +++ /dev/null @@ -1,8 +0,0 @@ -class MyClass: - while True: - return False #Noncompliant - - def __enter__(self): - pass - def __exit__(self, exc_type, exc_val): # Noncompliant - pass diff --git a/tests/projects/plugins/project/src/python/package/__init__.py b/tests/projects/plugins/project/src/python/package/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/projects/plugins/project/src/python/package/file_in_package.py b/tests/projects/plugins/project/src/python/package/file_in_package.py deleted file mode 100644 index fc7f2ba0752..00000000000 --- a/tests/projects/plugins/project/src/python/package/file_in_package.py +++ /dev/null @@ -1 +0,0 @@ -dictionary = {} diff --git a/tests/projects/plugins/project/src/python/samples/__init__.py b/tests/projects/plugins/project/src/python/samples/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/projects/plugins/project/src/python/samples/fortune.py b/tests/projects/plugins/project/src/python/samples/fortune.py deleted file mode 100644 index b0900dc1695..00000000000 --- a/tests/projects/plugins/project/src/python/samples/fortune.py +++ /dev/null @@ -1,92 +0,0 @@ - -# fortune.py -- chooses a random fortune, as the fortune(8) program in -# the BSD-games package does -# -# Copyright (c) 2010, Andrew M. Kuchling -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -import struct, random, string - -# C long variables are different sizes on 32-bit and 64-bit machines, -# so we have to measure how big they are on the machine where this is running. -LONG_SIZE = struct.calcsize('L') -is_64_bit = (LONG_SIZE == 8) - -def get(filename): - "Select a random quotation, using a pregenerated .dat file" - - # First, we open the .dat file, and read the header information. - # The C structure containing this info looks like: - ## typedef struct { /* information table */ - ## #define VERSION 1 - ## unsigned long str_version; /* version number */ - ## unsigned long str_numstr; /* # of strings in the file */ - ## unsigned long str_longlen; /* length of longest string */ - ## unsigned long str_shortlen; /* length of shortest string */ - ## #define STR_RANDOM 0x1 /* randomized pointers */ - ## #define STR_ORDERED 0x2 /* ordered pointers */ - ## #define STR_ROTATED 0x4 /* rot-13'd text */ - ## unsigned long str_flags; /* bit field for flags */ - ## unsigned char stuff[4]; /* long aligned space */ - ## #define str_delim stuff[0] /* delimiting character */ - ## } STRFILE; - - datfile = open(filename+'.dat', 'r') - data = datfile.read(5 * LONG_SIZE) - if is_64_bit: - v1, v2, n1, n2, l1, l2, s1, s2, f1, f2 = struct.unpack('!10L', data) - version = v1 + (v2 << 32) - numstr = n1 + (n2 << 32) - longlen = l1 + (l2 << 32) - shortlen = s1 + (s2 << 32) - flags = f1 + (f2 << 32) - else: - version, numstr, longlen, shortlen, flags = struct.unpack('5l', data) - - delimiter = datfile.read(1) - datfile.read(3) # Throw away padding bytes - if is_64_bit: datfile.read(4) # 64-bit machines align to 8 bytes - - # Pick a random number - r = random.randint(0, numstr) - datfile.seek(LONG_SIZE * r, 1) # Seek to the chosen pointer - data = datfile.read(LONG_SIZE * 2) - - if is_64_bit: - s1, s2, e1, e2 = struct.unpack('!4L', data) - start, end = s1 + (s2 << 32), e1 + (e2 << 32) - else: - start, end = struct.unpack('!ll', data) - datfile.close() - - file = open(filename, 'r') - file.seek(start) - quotation = file.read(end-start) - L=string.split(quotation, '\n') - while string.strip(L[-1]) == delimiter or string.strip(L[-1]) == "": - L=L[:-1] - return string.join(L, '\n') - -if __name__ == '__main__': - import sys - if len(sys.argv) == 1: - print 'Usage: fortune.py ' - sys.exit() - print get(sys.argv[1]) diff --git a/tests/projects/plugins/project/src/python/samples/letters.py b/tests/projects/plugins/project/src/python/samples/letters.py deleted file mode 100644 index 0f54b31c512..00000000000 --- a/tests/projects/plugins/project/src/python/samples/letters.py +++ /dev/null @@ -1,203 +0,0 @@ - -# -# Copyright (c) 2010, Andrew M. Kuchling -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -import random, string - -# Logic game -# From a program by Judith Haris, John Swets, and Wallace Feurzeig -# Reference: The Secret Guide to Computers, by Russ Walter, 18th ed 1993. -# Written in Python by A.M. Kuchling (amk@amk.ca) - -# For each letter, we need the various characteristics: -# (curves, loose ends, obliques, horizontals, verticals). -# There should really be a sample character set for the user to look -# at; otherwise, there are ambiguities. For example, does B have -# horizontals? Does D? How about P and R? - -# There's a bug lurking in this data! Can you catch it? -# (See the bottom of the program for the answer.) - -letter_stats={'a': (0, 2, 2, 1, 0), 'b':(2, 0, 0, 3, 1), - 'c': (1, 2, 0, 0, 0), 'd':(1, 0, 0, 0, 1), - 'e': (0, 3, 0, 3, 1), 'f':(0, 3, 0, 2, 1), - 'g': (1, 2, 0, 1, 1), 'h':(0, 4, 0, 1, 2), - 'i': (0, 2, 0, 0, 1), 'j':(1, 2, 0, 0, 1), - 'k': (0, 4, 2, 0, 1), 'l':(0, 2, 0, 1, 1), - 'm': (0, 2, 2, 0, 2), 'n':(0, 2, 1, 0, 2), - 'o': (1, 0, 0, 0, 0), 'p':(1, 1, 0, 2, 1), - 'q': (1, 2, 1, 0, 0), 'r':(1, 2, 1, 0, 1), - 's': (1, 2, 0, 0, 0), 't':(0, 3, 0, 1, 1), - 'u': (1, 2, 0, 0, 2), 'v':(0, 2, 2, 0, 0), - 'w': (0, 2, 4, 0, 0), 'x':(0, 4, 2, 0, 0), - 'y': (0, 3, 2, 0, 1), 'z':(0, 2, 1, 2, 0)} - -# We'll define constants for the various statistics; each constant is -# equal to the position of the statistic in the tuples in -#letter_stats. -CURVES=0 ; LOOSE_ENDS=1 ; OBLIQUES=2 ; HORIZONTALS=3 ; VERTICALS=4 - -# This dictionary is used to map questions to corresponding -# statistics. Note that different keys can map to the same value; -# for example, 'obliques' and 'diagonals' both map to the OBLIQUES constant. -questions={'curves':CURVES, 'looseends':LOOSE_ENDS, - 'obliques':OBLIQUES, 'diagonals':OBLIQUES, - 'horizontals':HORIZONTALS, 'verticals':VERTICALS} - -# Play a single game - -def play_once(): - # Choose a random number between 0 and 26, inclusive. - choice=26*random.random() - # Convert the numeric choice to a letter: 0->a, 1->b, etc. - choice=chr(ord('a')+choice) - - #choice=raw_input("What should I choose?") # (for debugging) - - # We'll track how many possibilities the user still has available. - # Start with all of the letters. - possibilities=string.lower("ABCDEFGHIJKLMNOPQRSTUVWXYZ") - # We'll also track which questions have been asked, and chide the - # user when he repeats a question. - asked=[] - - # Loop forever; the play_once() function will exit by hitting a - # 'return' statement inside the loop. - while (1): - try: - #print possibilities # (for debugging) - - # Get input from the user - query=raw_input('Next? ') - # Convert the input to lowercase - query=string.lower(query) - # Remove all non-letter characters - query=filter(lambda x: x in string.lowercase, query) - # Remove whitespace - query=string.strip(query) - - except (EOFError, KeyboardInterrupt): - # End-Of-File : the user - print '\nOK; give up if you like.' - return - - if len(query)==1: - # The query is one character long, so it's a guess - if query not in possibilities: - print ("Wrong! That guess is inconsistent " - "with the information you've been given.\n" - "I think you made that guess just to see " - "what I would say.") - elif len(possibilities)>1: - print "You don't have enough information yet." - # Temporarily remove the user's guess from - # possibilities, and pick a random letter. - temp=filter(lambda x, query=query: x!=query, possibilities) - r=int(random.random()*len(temp)) - print "How do you know it isn't", temp[r]+',', - print "for example?" - else: - # query is in possibilities, and - # len(possibilities)==1, so the user is right. - print "Yes, you've done it. Good work!" ; return - elif questions.has_key(query): - # Get the field of the letter_stats tuple to compare. - field=questions[query] - # Determine the answer for the computer's letter - result=letter_stats[choice][field] - original_length=len(possibilities) - - # Exclude possibilities that don't match those of the - # mystery letter. - # filter(func, sequence) calls func() on each element in - # the sequence, and returns a new sequence object - # containing only elements for which func() returned true. - # For strings, each character is an element. Instead of - # defining a formal function, a lambda is used to create - # an anonymous function (one without a name). - # Various other things required by the function are set - # as default arguments, so they're accessible inside the - # scope of the anonymous function. - possibilities=filter(lambda letter, letter_stats=letter_stats, - field=field, result=result: - letter_stats[letter][field]==result, - possibilities) - new_length=len(possibilities) - if field in asked: - print "You asked me that already." - print "The answer is the same as before:", - else: asked.append(field) # Note that this question was asked. - print str(result)+'.' - if (original_length==new_length): - print 'That was a wasted question; it did not exclude any possibilities.' - elif (new_length") - -# The solution to the bug-hunt is below... - - - - - - - - - - - -# It's not a bug that the Python interpreter can catch; instead, it's -# a specification bug: -# -# 'C' and 'S' both have the same stats: 1 curve, 2 loose ends, -# and no obliques, horizontals, or verticals. If either C or S is -# chosen as the computer's letter, the user can never get the right -# answer, because he/she can't narrow down the possibilities to just -# one! To fix this, you'd have to add another statistic, like -# number of intersections or number of closed loops. However, the -# statistic would have to be *different* for 'C' and 'S', and neither -# of those two suggestions qualify. Can you think of a property to -# distinguish between the two letters? diff --git a/tests/projects/plugins/project/src/python/samples/strfile.py b/tests/projects/plugins/project/src/python/samples/strfile.py deleted file mode 100644 index ca15a607c21..00000000000 --- a/tests/projects/plugins/project/src/python/samples/strfile.py +++ /dev/null @@ -1,100 +0,0 @@ - -# strfile.py -- write an index file for a fortune file, as the strfile(8) -# program in the BSD-games package does -# -# Copyright (c) 2010, Andrew M. Kuchling -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -import struct, string, sys - -if len(sys.argv)==1: - print "Usage: strfile.py " - sys.exit() - -# C long variables are different sizes on 32-bit and 64-bit machines, -# so we have to measure how big they are on the machine where this is running. -LONG_SIZE = struct.calcsize('L') -is_64_bit = (LONG_SIZE == 8) - -delimiter = '%' # The standard delimiter - -filename = sys.argv[1] -input = open(filename, 'r') -output = open(filename + '.dat', 'w') -output.seek(LONG_SIZE * 6) # Skip over the header for now - -# Output a 32- or 64-bit integer - -def write_long(x): - if is_64_bit: - output.write( struct.pack("!LL", x & 0xffffFFFFL, x >> 32) ) - else: - output.write( struct.pack("!L", x) ) - -write_long(0) # Write the first pointer - -# We need to track various statistics: the longest and shortest -# quotations, and their number - -shortest = sys.maxint ; longest = 0 -numstr = 0 -quotation = "" - -while (1): - L=input.readline() # Get a line - if L=="": break # Check for end-of-file - if string.strip(L) != delimiter: - # We haven't come to the end yet, so we just add the line to - # the quotation we're building and continue - quotation = quotation + L ; continue - - # If there's a leading % in the file, the first quotation will be - # empty; we'll just ignore it - if quotation == "": continue - - # Update the shortest and longest variables - shortest = min(shortest, len(quotation) ) - longest = max(longest, len(quotation) ) - - # Output the current file pointer - write_long( input.tell() ) - numstr = numstr + 1 - quotation = "" # Reset the quotation to null - -# To simplify the programming, we'll assume there's a trailing % line -# in the file, with no quotation following. -assert quotation == "" - -input.close() - -# We're done, so rewind to the beginning of the file and write the header -output.seek(0) -write_long( 1 ) # Version -write_long(numstr) # Number of strings -write_long(longest) # Longest string length -write_long(shortest) # Shortest string length -write_long(0) # Flags; we'll set them to zero -output.write(delimiter + '\0'*(LONG_SIZE-1)) -output.close() - -print '''"%s.dat" created -There were %i strings -Longest string: %i bytes -Shortest string: %i bytes''' % (filename, numstr, longest, shortest) diff --git a/tests/projects/plugins/project/src/rpg/MYPROGRAM.rpg b/tests/projects/plugins/project/src/rpg/MYPROGRAM.rpg deleted file mode 100644 index b7d36daaa02..00000000000 --- a/tests/projects/plugins/project/src/rpg/MYPROGRAM.rpg +++ /dev/null @@ -1,53 +0,0 @@ -123456789012 C* Expressions in Extended Factor 2 syntax -123456789012 C IF A=X OR A=Y AND A=Z -123456789012 C AND B=Y -123456789012 C READ Y -123456789012 C ENDIF -123456789012 C IF A=X OR A=Y AND A=Z -123456789012 C AND B=Y OR B=Z -123456789012 C READ Y -123456789012 C ENDIF -123456789012 C* Expressions composed over several operations in IF -123456789012 C A IFEQ X -123456789012 C A OREQ Y -123456789012 C A ANDEQ Z -123456789012 C B ANDEQ Y -123456789012 C READ Y -123456789012 C ENDIF -123456789012 C A IFEQ X -123456789012 C A OREQ Y -123456789012 C A ANDEQ Z -123456789012 C B ANDEQ Y -123456789012 C B OREQ Z -123456789012 C READ Y -123456789012 C ENDIF -123456789012 C* Expressions composed over several operations in DO -123456789012 C A DOUEQ X -123456789012 C A OREQ Y -123456789012 C A ANDEQ Z -123456789012 C B ANDEQ Y -123456789012 C READ Y -123456789012 C END -123456789012 C A DOUEQ X -123456789012 C A OREQ Y -123456789012 C A ANDEQ Z -123456789012 C B ANDEQ Y -123456789012 C B OREQ Z -123456789012 C READ Y -123456789012 C END -123456789012 C* Expressions composed over several operations in WHEN -123456789012 C SELECT -123456789012 C A WHENEQ X -123456789012 C A OREQ Y -123456789012 C A ANDEQ Z -123456789012 C B ANDEQ Y -123456789012 C READ Y -123456789012 C END -123456789012 C SELECT -123456789012 C A WHENEQ X -123456789012 C A OREQ Y -123456789012 C A ANDEQ Z -123456789012 C B ANDEQ Y -123456789012 C B OREQ Z -123456789012 C READ Y -123456789012 C END \ No newline at end of file diff --git a/tests/projects/plugins/project/src/swift/example.swift b/tests/projects/plugins/project/src/swift/example.swift deleted file mode 100644 index 194455d6b70..00000000000 --- a/tests/projects/plugins/project/src/swift/example.swift +++ /dev/null @@ -1,10 +0,0 @@ - -let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"] - -func backwards(s1: String, s2: String) -> Bool { - return s1 > s2 -} - -var reversed = sorted(names, backwards); - -if (true) { print(reversed) } diff --git a/tests/projects/plugins/project/src/vb/Info.frm b/tests/projects/plugins/project/src/vb/Info.frm deleted file mode 100644 index 8487bb3af18..00000000000 --- a/tests/projects/plugins/project/src/vb/Info.frm +++ /dev/null @@ -1,67 +0,0 @@ -VERSION 5.00 -Begin VB.Form frmInfo - BorderStyle = 3 'Fixed Dialog - Caption = "Info" - ClientHeight = 3750 - ClientLeft = 45 - ClientTop = 330 - ClientWidth = 6270 - Icon = "Info.frx":0000 - LinkTopic = "Form1" - MaxButton = 0 'False - MinButton = 0 'False - ScaleHeight = 3750 - ScaleWidth = 6270 - ShowInTaskbar = 0 'False - StartUpPosition = 1 'CenterOwner - Begin VB.CommandButton cmdOK - Caption = "&OK" - Default = -1 'True - Height = 375 - Left = 5100 - TabIndex = 1 - Top = 3300 - Width = 1095 - End - Begin VB.TextBox txtGPL - BackColor = &H8000000F& - BorderStyle = 0 'None - Height = 3075 - Left = 120 - Locked = -1 'True - MultiLine = -1 'True - TabIndex = 0 - Text = "Info.frx":000C - Top = 120 - Width = 6015 - End -End -Attribute VB_Name = "frmInfo" -Attribute VB_GlobalNameSpace = False -Attribute VB_Creatable = False -Attribute VB_PredeclaredId = True -Attribute VB_Exposed = False -' --- GPL --- -' -' Copyright (C) 1999 SAP AG -' -' This program is free software; you can redistribute it and/or -' modify it under the terms of the GNU General Public License -' as published by the Free Software Foundation; either version 2 -' of the License, or (at your option) any later version. -' -' This program is distributed in the hope that it will be useful, -' but WITHOUT ANY WARRANTY; without even the implied warranty of -' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -' GNU General Public License for more details. -' -' You should have received a copy of the GNU General Public License -' along with this program; if not, write to the Free Software -' Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -' -' --- GPL --- -Option Explicit - -Private Sub cmdOK_Click() - Unload Me -End Sub diff --git a/tests/projects/plugins/project/src/vb/Registry.bas b/tests/projects/plugins/project/src/vb/Registry.bas deleted file mode 100644 index a7f18dee417..00000000000 --- a/tests/projects/plugins/project/src/vb/Registry.bas +++ /dev/null @@ -1,166 +0,0 @@ -Attribute VB_Name = "modRegistry" -' --- GPL --- -' -' Copyright (C) 1999 SAP AG -' -' This program is free software; you can redistribute it and/or -' modify it under the terms of the GNU General Public License -' as published by the Free Software Foundation; either version 2 -' of the License, or (at your option) any later version. -' -' This program is distributed in the hope that it will be useful, -' but WITHOUT ANY WARRANTY; without even the implied warranty of -' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -' GNU General Public License for more details. -' -' You should have received a copy of the GNU General Public License -' along with this program; if not, write to the Free Software -' Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -' -' --- GPL --- -Option Explicit - -'Structures Needed For Registry Prototypes -Public Type SECURITY_ATTRIBUTES - nLength As Long - lpSecurityDescriptor As Long - bInheritHandle As Boolean -End Type - -Public Type FILETIME - dwLowDateTime As Long - dwHighDateTime As Long -End Type - -'Registry Function Prototypes -Public Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" ( _ - ByVal hKey As Long, _ - ByVal lpSubKey As String, _ - ByVal ulOptions As Long, _ - ByVal samDesired As Long, _ - phkResult As Long) As Long - -Public Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" ( _ - ByVal hKey As Long, _ - ByVal lpSubKey As String, _ - ByVal Reserved As Long, _ - ByVal lpClass As String, _ - ByVal dwOptions As Long, _ - ByVal samDesired As Long, _ - lpSecurityAttributes As SECURITY_ATTRIBUTES, _ - phkResult As Long, _ - lpdwDisposition As Long) As Long - -Public Declare Function RegQueryValueExNull Lib "advapi32.dll" Alias "RegQueryValueExA" ( _ - ByVal hKey As Long, _ - ByVal lpValueName As String, _ - ByVal lpReserved As Long, _ - lpType As Long, _ - ByVal lpData As Long, _ - lpcbData As Long) As Long - -Public Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" ( _ - ByVal hKey As Long, _ - ByVal lpValueName As String, _ - ByVal lpReserved As Long, _ - lpType As Long, _ - ByVal lpData As String, _ - lpcbData As Long) As Long - -Public Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias "RegQueryValueExA" ( _ - ByVal hKey As Long, _ - ByVal lpValueName As String, _ - ByVal lpReserved As Long, _ - lpType As Long, _ - lpData As Long, _ - lpcbData As Long) As Long - -Public Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" ( _ - ByVal hKey As Long, _ - ByVal lpValueName As String, _ - ByVal Reserved As Long, _ - ByVal dwType As Long, _ - ByVal lpValue As String, _ - ByVal cbData As Long) As Long - -Public Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" ( _ - ByVal hKey As Long, _ - ByVal lpValueName As String, _ - ByVal Reserved As Long, _ - ByVal dwType As Long, _ - lpValue As Long, _ - ByVal cbData As Long) As Long - -Public Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" ( _ - ByVal hKey As Long, _ - ByVal dwIndex As Long, _ - ByVal lpName As String, _ - lpcbName As Long, _ - ByVal lpReserved As Long, _ - ByVal lpClass As String, _ - lpcbClass As Long, _ - lpftLastWriteTime As FILETIME) As Long - -Public Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" ( _ - ByVal hKey As Long, _ - ByVal dwIndex As Long, _ - ByVal lpValueName As String, _ - lpcbValueName As Long, _ - ByVal lpReserved As Long, _ - lpType As Long, _ - lpData As Any, _ - lpcbData As Long) As Long - -Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" ( _ - ByVal hKey As Long, _ - ByVal lpSubKey As String) As Long - -Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" ( _ - ByVal hKey As Long, _ - ByVal lpValueName As String) As Long - -Public Declare Function RegCloseKey Lib "advapi32" ( _ - ByVal hKey As Long) As Long - -' -''masks for the predefined standard access types -'Private Const STANDARD_RIGHTS_ALL = &H1F0000 -'Private Const SPECIFIC_RIGHTS_ALL = &HFFFF -' -''Define severity codes -' -''Public Const ERROR_ACCESS_DENIED = 5 -'' -''Global Const ERROR_NONE = 0 -''Global Const ERROR_BADDB = 1 -''Global Const ERROR_CANTOPEN = 3 -''Global Const ERROR_CANTREAD = 4 -''Global Const ERROR_CANTWRITE = 5 -''Global Const ERROR_OUTOFMEMORY = 6 -''Global Const ERROR_INVALID_PARAMETER = 7 -''Global Const ERROR_ACCESS_DENIED = 8 -''Global Const ERROR_INVALID_PARAMETERS = 87 -''Global Const ERROR_NO_MORE_ITEMS = 259 - -Public Type ByteValue - b(1024) As Byte -End Type - -Public Type LongValue - l As Long -End Type - -Public Function BytesToString(bValue As ByteValue) As String - Dim s As String - Dim i As Integer - s = StrConv(bValue.b(), vbUnicode) - i = InStr(s, Chr(0)) - 1 - BytesToString = Left(s, i) -End Function - -Public Function BytesToLong(bValue As ByteValue) As Long - Dim lValue As LongValue - LSet lValue = bValue - BytesToLong = lValue.l -End Function - diff --git a/tests/projects/plugins/project/src/vb/Registry.cls b/tests/projects/plugins/project/src/vb/Registry.cls deleted file mode 100644 index ee53025fb97..00000000000 --- a/tests/projects/plugins/project/src/vb/Registry.cls +++ /dev/null @@ -1,428 +0,0 @@ -VERSION 1.0 CLASS -BEGIN - MultiUse = -1 'True - Persistable = 0 'NotPersistable - DataBindingBehavior = 0 'vbNone - DataSourceBehavior = 0 'vbNone - MTSTransactionMode = 0 'NotAnMTSObject -END -Attribute VB_Name = "Registry" -Attribute VB_GlobalNameSpace = False -Attribute VB_Creatable = True -Attribute VB_PredeclaredId = False -Attribute VB_Exposed = False -' --- GPL --- -' -' Copyright (C) 1999 SAP AG -' -' This program is free software; you can redistribute it and/or -' modify it under the terms of the GNU General Public License -' as published by the Free Software Foundation; either version 2 -' of the License, or (at your option) any later version. -' -' This program is distributed in the hope that it will be useful, -' but WITHOUT ANY WARRANTY; without even the implied warranty of -' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -' GNU General Public License for more details. -' -' You should have received a copy of the GNU General Public License -' along with this program; if not, write to the Free Software -' Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -' -' --- GPL --- -Option Explicit - -Public Enum RegistryHKeyConstants - HKEY_CLASSES_ROOT = &H80000000 - HKEY_CURRENT_USER = &H80000001 - HKEY_LOCAL_MACHINE = &H80000002 - HKEY_USERS = &H80000003 - HKEY_PERFORMANCE_DATA = &H80000004 - HKEY_CURRENT_CONFIG = &H80000005 - HKEY_DYN_DATA = &H80000006 -End Enum - -Public Enum RegistryTypeConstants - REG_NONE = (0) 'No value type - REG_SZ = (1) 'Unicode nul terminated string -' REG_EXPAND_SZ = (2) 'Unicode nul terminated string w/enviornment var -' REG_BINARY = (3) 'Free form binary - REG_DWORD = (4) '32-bit number -' REG_DWORD_LITTLE_ENDIAN = (4) '32-bit number (same as REG_DWORD) -' REG_DWORD_BIG_ENDIAN = (5) '32-bit number -' REG_LINK = (6) 'Symbolic Link (unicode) -' REG_MULTI_SZ = (7) 'Multiple Unicode strings -' REG_RESOURCE_LIST = (8) 'Resource list in the resource map -' REG_FULL_RESOURCE_DESCRIPTOR = (9) 'Resource list in the hardware description -' REG_RESOURCE_REQUIREMENTS_LIST = (10) -End Enum - -Public Enum RegistryAccessConstants - KEY_QUERY_VALUE = &H1 - KEY_SET_VALUE = &H2 - KEY_CREATE_SUB_KEY = &H4 - KEY_ENUMERATE_SUB_KEYS = &H8 - KEY_NOTIFY = &H10 - KEY_CREATE_LINK = &H20 - KEY_ALL_ACCESS = &H3F -End Enum - -Public Enum RegistryErrorConstants - ERROR_SUCCESS = 0 - ERROR_BADKEY = 2 - ERROR_OUTOFMEMORY = 6 - ERROR_MORE_DATA = 234 - ERROR_NO_MORE_ITEMS = 259 -End Enum - -Public Enum RegistryVolatileConstants - REG_OPTION_NON_VOLATILE = 0& - REG_OPTION_VOLATILE = &H1 -End Enum - -Public Enum RegistryDispositionConstants - REG_CREATED_NEW_KEY = &H1 - REG_OPENED_EXISTING_KEY = &H2 -End Enum - -Private oKeys As Keys - -Private bShowErrors As Boolean -Private bRaiseErrors As Boolean -' -' Public Properties -' -Public Property Get Keys() As Keys - If oKeys Is Nothing Then - Set oKeys = New Keys - With oKeys - Set .Registry = Me - Set .Parent = Me - .Root = True - End With - End If - Set Keys = oKeys -End Property - -Public Property Get ShowErrors() As Boolean - ShowErrors = bShowErrors -End Property -Public Property Let ShowErrors(ByVal NewVal As Boolean) - bShowErrors = NewVal -End Property - -Public Property Get RaiseErrors() As Boolean - RaiseErrors = bRaiseErrors -End Property -Public Property Let RaiseErrors(ByVal NewVal As Boolean) - bRaiseErrors = NewVal -End Property -' -' Public Sub/Function -' -' Base Functions -' -Public Function OpenKey(ByVal hKey As RegistryHKeyConstants, _ - ByVal Path As String, _ - ByVal Access As RegistryAccessConstants, _ - Key As Long) As Boolean - - Dim lRC As Long - - OpenKey = False - - lRC = RegOpenKeyEx(hKey, Path, 0&, Access, Key) - If lRC = ERROR_SUCCESS Then - OpenKey = True - Else - HandleError lRC, Path - End If -End Function - -Public Function CreateKey(ByVal hKey As RegistryHKeyConstants, _ - ByVal Path As String, _ - ByVal Volatile As RegistryVolatileConstants, _ - ByVal Access As RegistryAccessConstants, _ - Key As Long, _ - Disposition As Long) As Boolean - - Dim lRC As Long - Dim saKey As SECURITY_ATTRIBUTES - - CreateKey = False - - lRC = RegCreateKeyEx(hKey, Path, 0, "", Volatile, Access, saKey, Key, Disposition) - If lRC = ERROR_SUCCESS Then - CreateKey = True - Else - HandleError lRC, Path - End If -End Function - -Public Function DeleteKey(ByVal hKey As RegistryHKeyConstants, _ - ByVal Path As String) As Boolean - - Dim lRC As Long - - DeleteKey = False - - lRC = RegDeleteKey(hKey, Path) - If lRC = ERROR_SUCCESS Then - DeleteKey = True - Else - HandleError lRC, Path - End If -End Function - -Public Function CloseKey(ByVal Path, _ - Key As Long) As Boolean - - Dim lRC As Long - - CloseKey = False - - lRC = RegCloseKey(Key) - If lRC = ERROR_SUCCESS Then - Key = 0 - CloseKey = True - Else - HandleError lRC, Path - End If -End Function - -Public Function QueryValueNull(ByVal hKey As Long, _ - ByVal Name As String, _ - ValueType As RegistryTypeConstants, _ - ValueLen As Long) As Boolean - - Dim lRC As Long - - QueryValueNull = False - - lRC = RegQueryValueExNull(hKey, Name, 0&, ValueType, 0&, ValueLen) - If lRC = ERROR_SUCCESS Then - QueryValueNull = True - Else - HandleError lRC, Name - End If -End Function - -Public Function QueryValueString(ByVal hKey As Long, _ - ByVal Name As String, _ - Value As String, _ - ValueLen As Long) As Boolean - - Dim lRC As Long - - QueryValueString = False - - Value = String(ValueLen, 0) - - lRC = RegQueryValueExString(hKey, Name, 0&, REG_SZ, Value, ValueLen) - If lRC = ERROR_SUCCESS Then - Value = Left(Value, ValueLen - 1) - QueryValueString = True - Else - HandleError lRC, Name - End If -End Function - -Public Function QueryValueLong(ByVal hKey As Long, _ - ByVal Name As String, _ - Value As Long) As Boolean - - Dim lRC As Long - Dim lValueLen As Long - - QueryValueLong = False - - Value = 0 - - lRC = RegQueryValueExLong(hKey, Name, 0&, REG_DWORD, Value, 4) - If lRC = ERROR_SUCCESS Then - QueryValueLong = True - Else - HandleError lRC, Name - End If -End Function - -Public Function SetValueString(ByVal hKey As Long, _ - ByVal Name As String, _ - ByVal Value As String) As Boolean - - Dim lRC As Long - - SetValueString = False - - Value = Value & Chr(0) - - lRC = RegSetValueExString(hKey, Name, 0&, REG_SZ, Value, Len(Value)) - If lRC = ERROR_SUCCESS Then - SetValueString = True - Else - HandleError lRC, Name - End If -End Function - -Public Function SetValueLong(ByVal hKey As Long, _ - ByVal Name As String, _ - ByVal Value As Long) As Boolean - - Dim lRC As Long - - SetValueLong = False - - lRC = RegSetValueExLong(hKey, Name, 0&, REG_DWORD, Value, 4) - If lRC = ERROR_SUCCESS Then - SetValueLong = True - Else - HandleError lRC, Name - End If -End Function - -Public Function DeleteValue(ByVal hKey As Long, _ - ByVal Name As String) As Boolean - - Dim lRC As Long - - DeleteValue = False - - lRC = RegDeleteValue(hKey, Name) - If lRC = ERROR_SUCCESS Then - DeleteValue = True - Else - HandleError lRC, Name - End If -End Function -' -' -' -Public Function Check(ByVal WithSubKeys As Boolean, _ - ByVal WithValues As Boolean) As Boolean - - Dim oKey As Key - - Check = False - - For Each oKey In Keys - If Not oKey.Check(WithSubKeys, WithValues) Then - Exit Function - End If - Next - - Check = True -End Function - -Public Function Create(ByVal WithSubKeys As Boolean, _ - ByVal WithValues As Boolean) As Boolean - - Dim oKey As Key - - Create = False - - For Each oKey In Keys - If Not oKey.Create(WithSubKeys, WithValues) Then - Exit Function - End If - Next - - Create = True -End Function - -Public Function QueryValues(ByVal WithSubKeys As Boolean) As Boolean - - Dim oKey As Key - - QueryValues = False - - For Each oKey In Keys - If Not oKey.QueryValues(WithSubKeys) Then - Exit Function - End If - Next - - QueryValues = True -End Function - -Public Function SetValues(ByVal WithSubKeys As Boolean) As Boolean - - Dim oKey As Key - - SetValues = False - - For Each oKey In Keys - If Not oKey.SetValues(WithSubKeys) Then - Exit Function - End If - Next - - SetValues = True -End Function - -Public Function EnumKeys(ByVal WithSubKeys As Boolean, _ - ByVal WithValues As Boolean) As Boolean - - Dim oKey As Key - - EnumKeys = False - - For Each oKey In Keys - If Not oKey.EnumKeys(WithSubKeys, WithValues) Then - Exit Function - End If - Next - - EnumKeys = True -End Function - -Public Function FindKeyByPath(ByVal WithSubKeys As Boolean, _ - ByVal FindPath As String) As Key - Dim oKey As Key - - Set FindKeyByPath = Nothing - - For Each oKey In Keys - If FindPath = oKey.Path Then - Set FindKeyByPath = oKey - Exit Function - End If - If WithSubKeys Then - Set FindKeyByPath = oKey.FindKeyByPath(WithSubKeys, FindPath) - End If - Next -End Function - -Friend Sub HandleError(ByVal RC As Long, ByVal Text As String) - Dim sMsg As String - - If bShowErrors Then - sMsg = "Error: " & ErrorText(RC) & ". " & Text - MsgBox sMsg, vbExclamation - End If -End Sub -' -' Private Sub/Function -' -Private Sub Class_Initialize() - 'Debug.Print "INIT Registry" - Set oKeys = Nothing - bShowErrors = True - bRaiseErrors = False -End Sub - -Private Sub Class_Terminate() - 'Debug.Print "TERM Registry" -End Sub - -Private Function ErrorText(ByVal lRC As Long) As String - Dim s As String - Select Case lRC - Case ERROR_BADKEY: s = "Bad key" - Case ERROR_MORE_DATA: s = "More data" - Case ERROR_OUTOFMEMORY: s = "Out of memory" - Case ERROR_NO_MORE_ITEMS: s = "No more items" - Case Else: s = "RC=" & CStr(lRC) - End Select - ErrorText = s -End Function - diff --git a/tests/projects/plugins/project/src/web/sample.xhtml b/tests/projects/plugins/project/src/web/sample.xhtml deleted file mode 100644 index 45a212717b2..00000000000 --- a/tests/projects/plugins/project/src/web/sample.xhtml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - User - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/projects/plugins/project/target/classes/foo/Foo.class b/tests/projects/plugins/project/target/classes/foo/Foo.class deleted file mode 100644 index 97de0cb4b2fb7ad6c2de38ecbcb5784d322c91b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmYL_%}&BV6otZ(?Bm@>HiOXp_;*i=Qr4aQ|d0R}6_(zu)dNFix+o z4numZmZ2+pQsa^|eKF%Jo`HoVLsR#*&x5Ib7c7?Zxe6oUjpicckyOFWvn%GhVJLTb z(2VMIjr2s_d8xmOP&G8B#$fF}grTqpj+~irBTBXgdvhFxGMIMS6Eu*Zf1@7*L_m`E z6e*i3qnbEhgMDm{)3lo#)5HPwne718EU6T7$djYPL&OLNlxlCte!;je#ny=bRBQe_ ixdt>TM>9GVCzT_HCRVm76i_5Zd0ItcG8~dJaP$x9XH_)- diff --git a/tests/projects/plugins/project/target/classes/foo/Simplest.class b/tests/projects/plugins/project/target/classes/foo/Simplest.class deleted file mode 100644 index d22988c5549facbad56ffe6da3227f1ca1b862ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527 zcmZuuO;5r=6rAO&P%9vcAK(}20X*1vM!lGrkPtP2aCU)Jmz36&V&Z@Dq6bYp_yhb= z#@V6?2b*-?n|U*{FYVX&$0vYe9N5TUHHS5=>O}%}Czyr4tB6BKvZ+EhkXHO{vLs% zQM;b>@7$~YNDUY}M|GYiks5QEV9G(c9gB6~UWeL`I#H5*KG7qLzn diff --git a/tests/projects/plugins/project/target/classes/foo/Simplest2.class b/tests/projects/plugins/project/target/classes/foo/Simplest2.class deleted file mode 100644 index 62c50cd0da009f80b1fac38b41658becb17eda08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305 zcmY*TyKcfj5S;ZBI|h?7$rQ3r`!Jqebuth-K$9(4c?>c0Rn`K0zBN!9mb|= NBjL|z(jyiuG%uxBHIM)R diff --git a/tests/projects/plugins/project/target/classes/foo/Simplest3.class b/tests/projects/plugins/project/target/classes/foo/Simplest3.class deleted file mode 100644 index e6df2a8f278943b04bb440bacce597dc71024026..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmY+8%?`m(5QWcFf2jJ2H?YG(BbLNQVkIny{cT-bsa~n_URDwd58$E1ToH+xy6goLLH8YJmviX!C&Ze7R!k;(duv0-HVF|V8bC){xXER*@cNnx8Xe6 t%Q#097Jq7rxH-ghS%n`BIGr2l%7z7x>9P$D6q&(ic2I)Picn@+2;LS3GerOZ diff --git a/tests/projects/plugins/project/target/it-all-lang-1.0-SNAPSHOT.jar b/tests/projects/plugins/project/target/it-all-lang-1.0-SNAPSHOT.jar deleted file mode 100644 index f50c4a3d1bde34fd58132edbb6d5b3d8a13e1559..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3398 zcmbtX2{@G78=oPvW@56IWh!YH>&EO9diO|n$>rJK@dEH_2s z5g|(v6NR{xLRrIBY_EBFNQpbGBz}@w30^}&LEqgn3*Ev z+jvb8@TbksijOLGsPqpJ;4RJj+X8Nu9F;-AO`1)c8qLpgO%vQ93nyc)#$t$h*tHN5Q>rE~(jqQgR%P#!eB^efA5U3rPysHw1c)Ywb&dJZu0F5+fQGyVMJi(vr z*mh|3b58a*s5EdVkjXXRy;I$do_`{OSfWK6G&W!8Hkt)>U z%wJP%{Ve;AQ_)IjN6D7fj`AU2(y7;ru|pvR5$LiTNZ*SoLoveg$8pWHx(b~KI4Bi zJ3XcmIxjP<%1aKe66b&$ z`kX`Vdy)b*L|t^-cYOx0WoM;;?(v&f_q8hc9*FCQG%&wnKWUKU96Iz4Dc ziasSZLNXKt&)YibI3O~I!RWW=agvLot8J6H`eWBbk)ScaD*q?u=w$H`z?oRqP7xx!CMd0haH4>T?$}{UzqkQn>5$5(KxetmJJF|!*u%4VofDKxdx%Hp zZiW3(X{FNff(#XDx}kPwBnXE_*1K@!TeW;*aY|KWamZD28=ASEZ6)TJ0qSc1J4P$0)jHYjh?= z*}|+{Nl}6G`Sa3WZU@{!_t?uVyl`xMd`vQkn`pFK!$SH5ak1*6I+uiM44HN!39WV# z5<9pr{k)h6)}2zr_r??;IklQDLg{Iiq zqrZT4b#2Nwl%-u`NY`V)`7N6SL1irnPf%yk5N%ed9Gl7F*4M{{5_3$EYSIOw_N{lS z`>hqg-VYx#2%S`J-I_S%r`Zium8PZ)Tjf68Tm_KlBOM%B9LDDtai&nT6VEw62j8vE zw`jmW{A*`pF6Ak;w>m1;fgU=sUbv$)TIM_YD!@c!j z4O}%@w9-LR;#RDEij;%3W1F1Uhe1pPn7AZBw>TFWrD&mF6%h}X|s=e^X||tPvo0%7ojd+e{+}O z^}rJAfA2}kA2^7%MX&rcLWTh=&X9B7M zJHK@8DG=?Jm;f1ec@~wWYgyXLBIp69@8$ML4mS=FuiZ~@fGatf*}WZ2e#U<&9_%3~ zTugeKPNHX4qfNmqP}YC$*8m5B0RhnuF2BDWVXY^`l|#pcF#YXz}vb7B?ot@&aa+q_#~LfwJ>VcFRCy~9TQ#=DJ)Uj$fU zJ%073+o)jUy}(q!0D8;y3RZ6krh*?ibD3aQ1_Z=lEU>K$_!`}=MeaxNGT}18d)R*f z|2zHuv*Kj}W-9jjImO@8@tTp%33<&7HN5V>8(F1iW|%iW>`Ytj96uGQ^$soDVjg|8 VDI2hD5Qqo(MF7=Pu>3a(^f%AT;_3hZ diff --git a/tests/projects/plugins/project/target/js/lcov.dat b/tests/projects/plugins/project/target/js/lcov.dat deleted file mode 100644 index dc51a1c762b..00000000000 --- a/tests/projects/plugins/project/target/js/lcov.dat +++ /dev/null @@ -1,71 +0,0 @@ -SF:src/js/Person.js -DA:2,1 -DA:3,2 -DA:4,2 -DA:5,2 -DA:8,1 -DA:11,2 -end_of_record -SF:src/js/com/company/Car.js -DA:1,1 -DA:2,3 -DA:3,3 -DA:4,3 -DA:5,3 -DA:6,3 -DA:9,1 -DA:12,1 -DA:16,1 -DA:17,0 -DA:18,1 -DA:19,1 -DA:21,0 -DA:26,0 -DA:27,0 -DA:31,0 -DA:32,0 -DA:36,1 -DA:37,0 -DA:38,0 -DA:39,0 -DA:41,1 -DA:42,1 -DA:47,0 -end_of_record -SF:src/jscom/company/Truck.js -DA:1,1 -DA:2,0 -DA:3,0 -DA:4,0 -DA:5,0 -DA:6,0 -DA:9,1 -DA:12,0 -DA:16,0 -DA:17,0 -DA:18,0 -DA:19,0 -DA:21,0 -end_of_record -SF:src/jscom/company/Vehicle.js -DA:9,1 -DA:10,0 -DA:11,0 -DA:12,0 -DA:13,0 -DA:14,0 -DA:22,1 -DA:25,0 -DA:29,0 -DA:30,0 -DA:31,0 -DA:32,0 -DA:34,0 -DA:39,0 -DA:40,0 -DA:41,0 -DA:42,0 -DA:44,0 -DA:45,0 -DA:50,0 -end_of_record diff --git a/tests/projects/plugins/project/target/php/phpunit.coverage.xml b/tests/projects/plugins/project/target/php/phpunit.coverage.xml deleted file mode 100644 index 184a0dd8466..00000000000 --- a/tests/projects/plugins/project/target/php/phpunit.coverage.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/projects/plugins/project/target/php/phpunit.xml b/tests/projects/plugins/project/target/php/phpunit.xml deleted file mode 100644 index 1942bdf47d6..00000000000 --- a/tests/projects/plugins/project/target/php/phpunit.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - PhpUnderControl_Example_MathTest::testSubFail - Failed asserting that 1 matches expected 0. - - - - - - - PhpUnderControl_Example_MathTest::testDataProviderOneWillFail with data set #2 (7, 1) - Failed asserting that 6 matches expected 1. - - - - - - - PhpUnderControl_Example_MathTest::testDataProviderAllWillFail with data set #0 (17, 42) - Failed asserting that -25 matches expected 1. - - - - - PhpUnderControl_Example_MathTest::testDataProviderAllWillFail with data set #1 (13, 23) - Failed asserting that -10 matches expected 1. - - - - PhpUnderControl_Example_MathTest::testDataProviderAllWillFail with data set #2 (42, 17) - Failed asserting that 25 matches expected 1. - - - - PhpUnderControl_Example_MathTest::testDataProviderAllWillFail with data set #3 (23, 13) - Failed asserting that 10 matches expected 1. - - - - - PhpUnderControl_Example_MathTest::testFail - Failed because... - - - - - diff --git a/tests/projects/plugins/project/target/surefire-reports/TEST-foo.FooTest.xml b/tests/projects/plugins/project/target/surefire-reports/TEST-foo.FooTest.xml deleted file mode 100644 index 74695fdea1e..00000000000 --- a/tests/projects/plugins/project/target/surefire-reports/TEST-foo.FooTest.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tests/projects/plugins/project/target/surefire-reports/TEST-foo.SimplestTest.xml b/tests/projects/plugins/project/target/surefire-reports/TEST-foo.SimplestTest.xml deleted file mode 100644 index 3023499428f..00000000000 --- a/tests/projects/plugins/project/target/surefire-reports/TEST-foo.SimplestTest.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tests/projects/plugins/project/target/surefire-reports/foo.FooTest.txt b/tests/projects/plugins/project/target/surefire-reports/foo.FooTest.txt deleted file mode 100644 index 81a35910169..00000000000 --- a/tests/projects/plugins/project/target/surefire-reports/foo.FooTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: foo.FooTest -------------------------------------------------------------------------------- -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.044 sec diff --git a/tests/projects/plugins/project/target/surefire-reports/foo.SimplestTest.txt b/tests/projects/plugins/project/target/surefire-reports/foo.SimplestTest.txt deleted file mode 100644 index 1e8766a397f..00000000000 --- a/tests/projects/plugins/project/target/surefire-reports/foo.SimplestTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: foo.SimplestTest -------------------------------------------------------------------------------- -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec diff --git a/tests/projects/plugins/project/target/test-classes/foo/FooTest.class b/tests/projects/plugins/project/target/test-classes/foo/FooTest.class deleted file mode 100644 index 0970a8681a7a257f59dca61f55613eda3a50b199..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmYk2%TB^T6o&r+O0g6~zzg0{7vRFiwZw!NNFa?SYS<4j;t=R)FT@w{fm}&k_y9hX z@w7J9F3$aY^Y?sxe|!Qs$B6+Q8wNJ9rBNaLQU+?+*0G~wmm%Adj`S}X(v9YTA#

tw$J4RLP`eErU(UrqdXg}0$5B3y+6*OIxf5#|kQ^%p8FwmhN1`i31!nxf*_1E1 zi5ymR?3*~ip^mzVBOEj2{|O;tIBCteGqG-lQ!(-xDoN>28VQcq=n7-GV9*-9Ub9Dl zL{Z!Ggi8REM?vQ~;4}JltB9V^AjC{q-^Sc&*m IvMH?p0O@LHs{jB1 diff --git a/tests/projects/plugins/project/target/test-classes/foo/SimplestTest.class b/tests/projects/plugins/project/target/test-classes/foo/SimplestTest.class deleted file mode 100644 index 3f6daea7c544d26309ad06176cab7e7ddd344433..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmZ8e%TB^T6g>l!LMh722fk4k;KIf=#)KG5AVd=(><1WeNNKST;}7^jt|Tt}06)rj zrxGDf()&2~-g8f9zP>*`0bJnJfR0TATiDhJP$zAmj2#`jI`$Znm(r2J6+^sQ>oX*- z-H~8e??^}7hSP!YdVF9LQs}rtZuhw-RlWcd!K3t5?ZI`euAI(n;RikX>I`~7zA+jx z7|oZVm<7^xd>#7?<@?YH%77h1K| zsR7yH_U$rbLo8D6_~j^4i%u*jrT2kWEHl z5+=pwZv(Peql}(|hU3w29f_!x)l+lCUQ3A2p)E-a+68Jfky#!a1LU2g{ diff --git a/tests/projects/plugins/project/test/java/foo/FooTest.java b/tests/projects/plugins/project/test/java/foo/FooTest.java deleted file mode 100644 index d0eb283e151..00000000000 --- a/tests/projects/plugins/project/test/java/foo/FooTest.java +++ /dev/null @@ -1,12 +0,0 @@ -package foo; - -import org.junit.Test; -import static org.junit.Assert.*; - -public class FooTest { - - @Test - public void testAdd() throws Exception { - assertEquals(Foo.div(10, 5), 2); - } -} diff --git a/tests/projects/plugins/project/test/java/foo/SimplestTest.java b/tests/projects/plugins/project/test/java/foo/SimplestTest.java deleted file mode 100644 index 8c28ff4c91e..00000000000 --- a/tests/projects/plugins/project/test/java/foo/SimplestTest.java +++ /dev/null @@ -1,12 +0,0 @@ -package foo; - -import org.junit.Test; -import static org.junit.Assert.*; - -public class SimplestTest { - - @Test - public void testAdd() throws Exception { - assertEquals(Simplest.add(4, 5), 9); - } -} diff --git a/tests/projects/plugins/project/test/js/PersonTest.js b/tests/projects/plugins/project/test/js/PersonTest.js deleted file mode 100644 index 36b8fb05af5..00000000000 --- a/tests/projects/plugins/project/test/js/PersonTest.js +++ /dev/null @@ -1,13 +0,0 @@ -TestCase('PersonTest', { - - testWhoAreYou : function() { - var p = new Person('John', 'Doe', 'P.'); - assertEquals('Should have responded with full name', 'John P. Doe', p.whoAreYou()); - }, - - testWhoAreYouWithNoMiddleName : function() { - var p = new Person('John', 'Doe'); - assertEquals('Should have used only first and last name', 'John Doe', p.whoAreYou()); - } - -}); \ No newline at end of file diff --git a/tests/projects/plugins/project/test/js/com/company/CarTest.js b/tests/projects/plugins/project/test/js/com/company/CarTest.js deleted file mode 100644 index b63b17d1f69..00000000000 --- a/tests/projects/plugins/project/test/js/com/company/CarTest.js +++ /dev/null @@ -1,18 +0,0 @@ -TestCase('com.company.CarTest', { - - testfullName : function() { - var car = new Car('VW', 'Beatle', 1971); - assertEquals('VW Beatle Y: 1971', car.getFullName()); - }, - - testStopEngineWithCheck : function() { - var car = new Car('VW', 'Beatle', 1971); - assertEquals('engine was not running', car.stopEngineWithCheck()); - }, - - testCalculatePrice : function() { - var car = new Car('Volvo', 'XC70', 2012); - assertEquals('$30000', car.calculatePrice()); - } - -}); \ No newline at end of file diff --git a/tests/projects/plugins/project/test/php/SomeTest.php b/tests/projects/plugins/project/test/php/SomeTest.php deleted file mode 100644 index 5f8b96d2160..00000000000 --- a/tests/projects/plugins/project/test/php/SomeTest.php +++ /dev/null @@ -1,169 +0,0 @@ -. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * * Neither the name of Manuel Pichler nor the names of his - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -require_once dirname(__FILE__) . '/../../src/php/Math.php'; - -/** - * Simple math test class. - * - * @package Example - * @author Manuel Pichler - * @copyright 2007-2009 Manuel Pichler. All rights reserved. - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version Release: 0.5.0 - * @link http://www.phpundercontrol.org/ - */ -class PhpUnderControl_Example_MathTest extends PHPUnit_Framework_TestCase -{ - /** - * The used math object. - * - * @var PhpUnderControl_Example_Math $math - */ - protected $math = null; - - /** - * Creates a new {@link PhpUnderControl_Example_Math} object. - */ - public function setUp() - { - parent::setUp(); - - $this->math = new PhpUnderControl_Example_Math(); - } - - /** - * Successful test. - */ - public function testAddSuccess() - { - sleep(2); - $this->assertEquals(4, $this->math->add(1, 3)); - } - - /** - * Successful test. - */ - public function testSubSuccess() - { - $this->assertEquals( -2, $this->math->sub( 1, 3 ) ); - } - - /** - * Failing test. - */ - public function testSubFail() - { - sleep(2); - $this->assertEquals( 0, $this->math->sub( 2, 1 ) ); - } - - /** - * Test case with data provider. - * - * @dataProvider dataProviderOne - */ - public function testDataProviderOneWillFail( $x, $y ) - { - sleep(1); - $this->assertEquals( 1, $this->math->sub( $x, $y ) ); - } - - /** - * Test case with data provider. - * - * @dataProvider dataProviderTwo - */ - public function testDataProviderAllWillFail( $x, $y ) - { - $this->assertEquals( 1, $this->math->sub( $x, $y ) ); - } - - /** - * Failing test. - */ - public function testFail() - { - $this->fail('Failed because...'); - } - - /** - * Skipping test. - */ - public function testMarkSkip() - { - $this->markTestSkipped('Skipped because...'); - } - - /** - * Skipping test. - */ - public function testMarkIncomplete() - { - $this->markTestIncomplete('Incomplete because...'); - } - - /** - * Example data provider. - * - * @return array(array) - */ - public static function dataProviderOne() - { - return array( - array( 2, 1 ), - array( 3, 2 ), - array( 7, 1 ), - array( 9, 8 ), - ); - } - - /** - * Example data provider. - * - * @return array(array) - */ - public static function dataProviderTwo() - { - return array( - array( 17, 42 ), - array( 13, 23 ), - array( 42, 17 ), - array( 23, 13 ), - ); - } -} diff --git a/tests/projects/projectSearch/xoo-history-v1/sonar-project.properties b/tests/projects/projectSearch/xoo-history-v1/sonar-project.properties deleted file mode 100644 index ede32ccb043..00000000000 --- a/tests/projects/projectSearch/xoo-history-v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=0.9-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo b/tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures b/tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo b/tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures b/tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/tests/projects/projectSearch/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/tests/projects/projectSearch/xoo-history-v2/sonar-project.properties b/tests/projects/projectSearch/xoo-history-v2/sonar-project.properties deleted file mode 100644 index 42a4d832540..00000000000 --- a/tests/projects/projectSearch/xoo-history-v2/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.scm.provider=xoo \ No newline at end of file diff --git a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo b/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo deleted file mode 100644 index b0fd1087030..00000000000 --- a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassAdded { - - public ClassAdded(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures b/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.scm b/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.scm deleted file mode 100644 index 63fb4b3888e..00000000000 --- a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.scm +++ /dev/null @@ -1,13 +0,0 @@ -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 \ No newline at end of file diff --git a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo b/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo deleted file mode 100644 index 393111bbab0..00000000000 --- a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - public String addedMethod() { - return "This method was added in v2"; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures b/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures deleted file mode 100644 index 5de11af72ed..00000000000 --- a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:16 -classes:1 -complexity:5 -complexity_in_classes:4 diff --git a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.scm b/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.scm deleted file mode 100644 index 7d71523dcf4..00000000000 --- a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.scm +++ /dev/null @@ -1,17 +0,0 @@ -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -2,user1,2017-05-01 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 \ No newline at end of file diff --git a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo b/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures b/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.scm b/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.scm deleted file mode 100644 index 72dc2d569bf..00000000000 --- a/tests/projects/projectSearch/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.scm +++ /dev/null @@ -1,13 +0,0 @@ -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 -1,user1,2016-12-31 \ No newline at end of file diff --git a/tests/projects/qualitygate/small-changesets/v1-1000-lines/sonar-project.properties b/tests/projects/qualitygate/small-changesets/v1-1000-lines/sonar-project.properties deleted file mode 100644 index 8819d09dd60..00000000000 --- a/tests/projects/qualitygate/small-changesets/v1-1000-lines/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src diff --git a/tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo b/tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo deleted file mode 100644 index 907eeab0503..00000000000 --- a/tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo +++ /dev/null @@ -1,999 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo.coverage b/tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo.coverage deleted file mode 100644 index ed508202c83..00000000000 --- a/tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo.coverage +++ /dev/null @@ -1,1000 +0,0 @@ -1:1 -2:1 -3:1 -4:1 -5:1 -6:1 -7:1 -8:1 -9:1 -10:1 -11:1 -12:1 -13:1 -14:1 -15:1 -16:1 -17:1 -18:1 -19:1 -20:1 -21:1 -22:1 -23:1 -24:1 -25:1 -26:1 -27:1 -28:1 -29:1 -30:1 -31:1 -32:1 -33:1 -34:1 -35:1 -36:1 -37:1 -38:1 -39:1 -40:1 -41:1 -42:1 -43:1 -44:1 -45:1 -46:1 -47:1 -48:1 -49:1 -50:1 -51:1 -52:1 -53:1 -54:1 -55:1 -56:1 -57:1 -58:1 -59:1 -60:1 -61:1 -62:1 -63:1 -64:1 -65:1 -66:1 -67:1 -68:1 -69:1 -70:1 -71:1 -72:1 -73:1 -74:1 -75:1 -76:1 -77:1 -78:1 -79:1 -80:1 -81:1 -82:1 -83:1 -84:1 -85:1 -86:1 -87:1 -88:1 -89:1 -90:1 -91:1 -92:1 -93:1 -94:1 -95:1 -96:1 -97:1 -98:1 -99:1 -100:1 -101:1 -102:1 -103:1 -104:1 -105:1 -106:1 -107:1 -108:1 -109:1 -110:1 -111:1 -112:1 -113:1 -114:1 -115:1 -116:1 -117:1 -118:1 -119:1 -120:1 -121:1 -122:1 -123:1 -124:1 -125:1 -126:1 -127:1 -128:1 -129:1 -130:1 -131:1 -132:1 -133:1 -134:1 -135:1 -136:1 -137:1 -138:1 -139:1 -140:1 -141:1 -142:1 -143:1 -144:1 -145:1 -146:1 -147:1 -148:1 -149:1 -150:1 -151:1 -152:1 -153:1 -154:1 -155:1 -156:1 -157:1 -158:1 -159:1 -160:1 -161:1 -162:1 -163:1 -164:1 -165:1 -166:1 -167:1 -168:1 -169:1 -170:1 -171:1 -172:1 -173:1 -174:1 -175:1 -176:1 -177:1 -178:1 -179:1 -180:1 -181:1 -182:1 -183:1 -184:1 -185:1 -186:1 -187:1 -188:1 -189:1 -190:1 -191:1 -192:1 -193:1 -194:1 -195:1 -196:1 -197:1 -198:1 -199:1 -200:1 -201:1 -202:1 -203:1 -204:1 -205:1 -206:1 -207:1 -208:1 -209:1 -210:1 -211:1 -212:1 -213:1 -214:1 -215:1 -216:1 -217:1 -218:1 -219:1 -220:1 -221:1 -222:1 -223:1 -224:1 -225:1 -226:1 -227:1 -228:1 -229:1 -230:1 -231:1 -232:1 -233:1 -234:1 -235:1 -236:1 -237:1 -238:1 -239:1 -240:1 -241:1 -242:1 -243:1 -244:1 -245:1 -246:1 -247:1 -248:1 -249:1 -250:1 -251:1 -252:1 -253:1 -254:1 -255:1 -256:1 -257:1 -258:1 -259:1 -260:1 -261:1 -262:1 -263:1 -264:1 -265:1 -266:1 -267:1 -268:1 -269:1 -270:1 -271:1 -272:1 -273:1 -274:1 -275:1 -276:1 -277:1 -278:1 -279:1 -280:1 -281:1 -282:1 -283:1 -284:1 -285:1 -286:1 -287:1 -288:1 -289:1 -290:1 -291:1 -292:1 -293:1 -294:1 -295:1 -296:1 -297:1 -298:1 -299:1 -300:1 -301:1 -302:1 -303:1 -304:1 -305:1 -306:1 -307:1 -308:1 -309:1 -310:1 -311:1 -312:1 -313:1 -314:1 -315:1 -316:1 -317:1 -318:1 -319:1 -320:1 -321:1 -322:1 -323:1 -324:1 -325:1 -326:1 -327:1 -328:1 -329:1 -330:1 -331:1 -332:1 -333:1 -334:1 -335:1 -336:1 -337:1 -338:1 -339:1 -340:1 -341:1 -342:1 -343:1 -344:1 -345:1 -346:1 -347:1 -348:1 -349:1 -350:1 -351:1 -352:1 -353:1 -354:1 -355:1 -356:1 -357:1 -358:1 -359:1 -360:1 -361:1 -362:1 -363:1 -364:1 -365:1 -366:1 -367:1 -368:1 -369:1 -370:1 -371:1 -372:1 -373:1 -374:1 -375:1 -376:1 -377:1 -378:1 -379:1 -380:1 -381:1 -382:1 -383:1 -384:1 -385:1 -386:1 -387:1 -388:1 -389:1 -390:1 -391:1 -392:1 -393:1 -394:1 -395:1 -396:1 -397:1 -398:1 -399:1 -400:1 -401:1 -402:1 -403:1 -404:1 -405:1 -406:1 -407:1 -408:1 -409:1 -410:1 -411:1 -412:1 -413:1 -414:1 -415:1 -416:1 -417:1 -418:1 -419:1 -420:1 -421:1 -422:1 -423:1 -424:1 -425:1 -426:1 -427:1 -428:1 -429:1 -430:1 -431:1 -432:1 -433:1 -434:1 -435:1 -436:1 -437:1 -438:1 -439:1 -440:1 -441:1 -442:1 -443:1 -444:1 -445:1 -446:1 -447:1 -448:1 -449:1 -450:1 -451:1 -452:1 -453:1 -454:1 -455:1 -456:1 -457:1 -458:1 -459:1 -460:1 -461:1 -462:1 -463:1 -464:1 -465:1 -466:1 -467:1 -468:1 -469:1 -470:1 -471:1 -472:1 -473:1 -474:1 -475:1 -476:1 -477:1 -478:1 -479:1 -480:1 -481:1 -482:1 -483:1 -484:1 -485:1 -486:1 -487:1 -488:1 -489:1 -490:1 -491:1 -492:1 -493:1 -494:1 -495:1 -496:1 -497:1 -498:1 -499:1 -500:1 -501:1 -502:1 -503:1 -504:1 -505:1 -506:1 -507:1 -508:1 -509:1 -510:1 -511:1 -512:1 -513:1 -514:1 -515:1 -516:1 -517:1 -518:1 -519:1 -520:1 -521:1 -522:1 -523:1 -524:1 -525:1 -526:1 -527:1 -528:1 -529:1 -530:1 -531:1 -532:1 -533:1 -534:1 -535:1 -536:1 -537:1 -538:1 -539:1 -540:1 -541:1 -542:1 -543:1 -544:1 -545:1 -546:1 -547:1 -548:1 -549:1 -550:1 -551:1 -552:1 -553:1 -554:1 -555:1 -556:1 -557:1 -558:1 -559:1 -560:1 -561:1 -562:1 -563:1 -564:1 -565:1 -566:1 -567:1 -568:1 -569:1 -570:1 -571:1 -572:1 -573:1 -574:1 -575:1 -576:1 -577:1 -578:1 -579:1 -580:1 -581:1 -582:1 -583:1 -584:1 -585:1 -586:1 -587:1 -588:1 -589:1 -590:1 -591:1 -592:1 -593:1 -594:1 -595:1 -596:1 -597:1 -598:1 -599:1 -600:1 -601:1 -602:1 -603:1 -604:1 -605:1 -606:1 -607:1 -608:1 -609:1 -610:1 -611:1 -612:1 -613:1 -614:1 -615:1 -616:1 -617:1 -618:1 -619:1 -620:1 -621:1 -622:1 -623:1 -624:1 -625:1 -626:1 -627:1 -628:1 -629:1 -630:1 -631:1 -632:1 -633:1 -634:1 -635:1 -636:1 -637:1 -638:1 -639:1 -640:1 -641:1 -642:1 -643:1 -644:1 -645:1 -646:1 -647:1 -648:1 -649:1 -650:1 -651:1 -652:1 -653:1 -654:1 -655:1 -656:1 -657:1 -658:1 -659:1 -660:1 -661:1 -662:1 -663:1 -664:1 -665:1 -666:1 -667:1 -668:1 -669:1 -670:1 -671:1 -672:1 -673:1 -674:1 -675:1 -676:1 -677:1 -678:1 -679:1 -680:1 -681:1 -682:1 -683:1 -684:1 -685:1 -686:1 -687:1 -688:1 -689:1 -690:1 -691:1 -692:1 -693:1 -694:1 -695:1 -696:1 -697:1 -698:1 -699:1 -700:1 -701:1 -702:1 -703:1 -704:1 -705:1 -706:1 -707:1 -708:1 -709:1 -710:1 -711:1 -712:1 -713:1 -714:1 -715:1 -716:1 -717:1 -718:1 -719:1 -720:1 -721:1 -722:1 -723:1 -724:1 -725:1 -726:1 -727:1 -728:1 -729:1 -730:1 -731:1 -732:1 -733:1 -734:1 -735:1 -736:1 -737:1 -738:1 -739:1 -740:1 -741:1 -742:1 -743:1 -744:1 -745:1 -746:1 -747:1 -748:1 -749:1 -750:1 -751:1 -752:1 -753:1 -754:1 -755:1 -756:1 -757:1 -758:1 -759:1 -760:1 -761:1 -762:1 -763:1 -764:1 -765:1 -766:1 -767:1 -768:1 -769:1 -770:1 -771:1 -772:1 -773:1 -774:1 -775:1 -776:1 -777:1 -778:1 -779:1 -780:1 -781:1 -782:1 -783:1 -784:1 -785:1 -786:1 -787:1 -788:1 -789:1 -790:1 -791:1 -792:1 -793:1 -794:1 -795:1 -796:1 -797:1 -798:1 -799:1 -800:1 -801:1 -802:1 -803:1 -804:1 -805:1 -806:1 -807:1 -808:1 -809:1 -810:1 -811:1 -812:1 -813:1 -814:1 -815:1 -816:1 -817:1 -818:1 -819:1 -820:1 -821:1 -822:1 -823:1 -824:1 -825:1 -826:1 -827:1 -828:1 -829:1 -830:1 -831:1 -832:1 -833:1 -834:1 -835:1 -836:1 -837:1 -838:1 -839:1 -840:1 -841:1 -842:1 -843:1 -844:1 -845:1 -846:1 -847:1 -848:1 -849:1 -850:1 -851:1 -852:1 -853:1 -854:1 -855:1 -856:1 -857:1 -858:1 -859:1 -860:1 -861:1 -862:1 -863:1 -864:1 -865:1 -866:1 -867:1 -868:1 -869:1 -870:1 -871:1 -872:1 -873:1 -874:1 -875:1 -876:1 -877:1 -878:1 -879:1 -880:1 -881:1 -882:1 -883:1 -884:1 -885:1 -886:1 -887:1 -888:1 -889:1 -890:1 -891:1 -892:1 -893:1 -894:1 -895:1 -896:1 -897:1 -898:1 -899:1 -900:1 -901:1 -902:1 -903:1 -904:1 -905:1 -906:1 -907:1 -908:1 -909:1 -910:1 -911:1 -912:1 -913:1 -914:1 -915:1 -916:1 -917:1 -918:1 -919:1 -920:1 -921:1 -922:1 -923:1 -924:1 -925:1 -926:1 -927:1 -928:1 -929:1 -930:1 -931:1 -932:1 -933:1 -934:1 -935:1 -936:1 -937:1 -938:1 -939:1 -940:1 -941:1 -942:1 -943:1 -944:1 -945:1 -946:1 -947:1 -948:1 -949:1 -950:1 -951:1 -952:1 -953:1 -954:1 -955:1 -956:1 -957:1 -958:1 -959:1 -960:1 -961:1 -962:1 -963:1 -964:1 -965:1 -966:1 -967:1 -968:1 -969:1 -970:1 -971:1 -972:1 -973:1 -974:1 -975:1 -976:1 -977:1 -978:1 -979:1 -980:1 -981:1 -982:1 -983:1 -984:1 -985:1 -986:1 -987:1 -988:1 -989:1 -990:1 -991:1 -992:1 -993:1 -994:1 -995:1 -996:1 -997:1 -998:1 -999:1 -1000:1 \ No newline at end of file diff --git a/tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo.measures b/tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo.measures deleted file mode 100644 index b6c8b6cacff..00000000000 --- a/tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo.measures +++ /dev/null @@ -1,3 +0,0 @@ -ncloc:1000 -complexity:7 -test_execution_time:630 diff --git a/tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo.scm b/tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo.scm deleted file mode 100644 index 8939249bc5c..00000000000 --- a/tests/projects/qualitygate/small-changesets/v1-1000-lines/src/sample/Sample.xoo.scm +++ /dev/null @@ -1,1000 +0,0 @@ -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 diff --git a/tests/projects/qualitygate/small-changesets/v2-1019-lines/sonar-project.properties b/tests/projects/qualitygate/small-changesets/v2-1019-lines/sonar-project.properties deleted file mode 100644 index 6699d002790..00000000000 --- a/tests/projects/qualitygate/small-changesets/v2-1019-lines/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=2.0-SNAPSHOT -sonar.sources=src diff --git a/tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo b/tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo deleted file mode 100644 index 5e1022e2235..00000000000 --- a/tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo +++ /dev/null @@ -1,1018 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo.coverage b/tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo.coverage deleted file mode 100644 index 49a479428d4..00000000000 --- a/tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo.coverage +++ /dev/null @@ -1,1019 +0,0 @@ -1:1 -2:1 -3:1 -4:1 -5:1 -6:1 -7:1 -8:1 -9:1 -10:1 -11:1 -12:1 -13:1 -14:1 -15:1 -16:1 -17:1 -18:1 -19:1 -20:1 -21:1 -22:1 -23:1 -24:1 -25:1 -26:1 -27:1 -28:1 -29:1 -30:1 -31:1 -32:1 -33:1 -34:1 -35:1 -36:1 -37:1 -38:1 -39:1 -40:1 -41:1 -42:1 -43:1 -44:1 -45:1 -46:1 -47:1 -48:1 -49:1 -50:1 -51:1 -52:1 -53:1 -54:1 -55:1 -56:1 -57:1 -58:1 -59:1 -60:1 -61:1 -62:1 -63:1 -64:1 -65:1 -66:1 -67:1 -68:1 -69:1 -70:1 -71:1 -72:1 -73:1 -74:1 -75:1 -76:1 -77:1 -78:1 -79:1 -80:1 -81:1 -82:1 -83:1 -84:1 -85:1 -86:1 -87:1 -88:1 -89:1 -90:1 -91:1 -92:1 -93:1 -94:1 -95:1 -96:1 -97:1 -98:1 -99:1 -100:1 -101:1 -102:1 -103:1 -104:1 -105:1 -106:1 -107:1 -108:1 -109:1 -110:1 -111:1 -112:1 -113:1 -114:1 -115:1 -116:1 -117:1 -118:1 -119:1 -120:1 -121:1 -122:1 -123:1 -124:1 -125:1 -126:1 -127:1 -128:1 -129:1 -130:1 -131:1 -132:1 -133:1 -134:1 -135:1 -136:1 -137:1 -138:1 -139:1 -140:1 -141:1 -142:1 -143:1 -144:1 -145:1 -146:1 -147:1 -148:1 -149:1 -150:1 -151:1 -152:1 -153:1 -154:1 -155:1 -156:1 -157:1 -158:1 -159:1 -160:1 -161:1 -162:1 -163:1 -164:1 -165:1 -166:1 -167:1 -168:1 -169:1 -170:1 -171:1 -172:1 -173:1 -174:1 -175:1 -176:1 -177:1 -178:1 -179:1 -180:1 -181:1 -182:1 -183:1 -184:1 -185:1 -186:1 -187:1 -188:1 -189:1 -190:1 -191:1 -192:1 -193:1 -194:1 -195:1 -196:1 -197:1 -198:1 -199:1 -200:1 -201:1 -202:1 -203:1 -204:1 -205:1 -206:1 -207:1 -208:1 -209:1 -210:1 -211:1 -212:1 -213:1 -214:1 -215:1 -216:1 -217:1 -218:1 -219:1 -220:1 -221:1 -222:1 -223:1 -224:1 -225:1 -226:1 -227:1 -228:1 -229:1 -230:1 -231:1 -232:1 -233:1 -234:1 -235:1 -236:1 -237:1 -238:1 -239:1 -240:1 -241:1 -242:1 -243:1 -244:1 -245:1 -246:1 -247:1 -248:1 -249:1 -250:1 -251:1 -252:1 -253:1 -254:1 -255:1 -256:1 -257:1 -258:1 -259:1 -260:1 -261:1 -262:1 -263:1 -264:1 -265:1 -266:1 -267:1 -268:1 -269:1 -270:1 -271:1 -272:1 -273:1 -274:1 -275:1 -276:1 -277:1 -278:1 -279:1 -280:1 -281:1 -282:1 -283:1 -284:1 -285:1 -286:1 -287:1 -288:1 -289:1 -290:1 -291:1 -292:1 -293:1 -294:1 -295:1 -296:1 -297:1 -298:1 -299:1 -300:1 -301:1 -302:1 -303:1 -304:1 -305:1 -306:1 -307:1 -308:1 -309:1 -310:1 -311:1 -312:1 -313:1 -314:1 -315:1 -316:1 -317:1 -318:1 -319:1 -320:1 -321:1 -322:1 -323:1 -324:1 -325:1 -326:1 -327:1 -328:1 -329:1 -330:1 -331:1 -332:1 -333:1 -334:1 -335:1 -336:1 -337:1 -338:1 -339:1 -340:1 -341:1 -342:1 -343:1 -344:1 -345:1 -346:1 -347:1 -348:1 -349:1 -350:1 -351:1 -352:1 -353:1 -354:1 -355:1 -356:1 -357:1 -358:1 -359:1 -360:1 -361:1 -362:1 -363:1 -364:1 -365:1 -366:1 -367:1 -368:1 -369:1 -370:1 -371:1 -372:1 -373:1 -374:1 -375:1 -376:1 -377:1 -378:1 -379:1 -380:1 -381:1 -382:1 -383:1 -384:1 -385:1 -386:1 -387:1 -388:1 -389:1 -390:1 -391:1 -392:1 -393:1 -394:1 -395:1 -396:1 -397:1 -398:1 -399:1 -400:1 -401:1 -402:1 -403:1 -404:1 -405:1 -406:1 -407:1 -408:1 -409:1 -410:1 -411:1 -412:1 -413:1 -414:1 -415:1 -416:1 -417:1 -418:1 -419:1 -420:1 -421:1 -422:1 -423:1 -424:1 -425:1 -426:1 -427:1 -428:1 -429:1 -430:1 -431:1 -432:1 -433:1 -434:1 -435:1 -436:1 -437:1 -438:1 -439:1 -440:1 -441:1 -442:1 -443:1 -444:1 -445:1 -446:1 -447:1 -448:1 -449:1 -450:1 -451:1 -452:1 -453:1 -454:1 -455:1 -456:1 -457:1 -458:1 -459:1 -460:1 -461:1 -462:1 -463:1 -464:1 -465:1 -466:1 -467:1 -468:1 -469:1 -470:1 -471:1 -472:1 -473:1 -474:1 -475:1 -476:1 -477:1 -478:1 -479:1 -480:1 -481:1 -482:1 -483:1 -484:1 -485:1 -486:1 -487:1 -488:1 -489:1 -490:1 -491:1 -492:1 -493:1 -494:1 -495:1 -496:1 -497:1 -498:1 -499:1 -500:1 -501:1 -502:1 -503:1 -504:1 -505:1 -506:1 -507:1 -508:1 -509:1 -510:1 -511:1 -512:1 -513:1 -514:1 -515:1 -516:1 -517:1 -518:1 -519:1 -520:1 -521:1 -522:1 -523:1 -524:1 -525:1 -526:1 -527:1 -528:1 -529:1 -530:1 -531:1 -532:1 -533:1 -534:1 -535:1 -536:1 -537:1 -538:1 -539:1 -540:1 -541:1 -542:1 -543:1 -544:1 -545:1 -546:1 -547:1 -548:1 -549:1 -550:1 -551:1 -552:1 -553:1 -554:1 -555:1 -556:1 -557:1 -558:1 -559:1 -560:1 -561:1 -562:1 -563:1 -564:1 -565:1 -566:1 -567:1 -568:1 -569:1 -570:1 -571:1 -572:1 -573:1 -574:1 -575:1 -576:1 -577:1 -578:1 -579:1 -580:1 -581:1 -582:1 -583:1 -584:1 -585:1 -586:1 -587:1 -588:1 -589:1 -590:1 -591:1 -592:1 -593:1 -594:1 -595:1 -596:1 -597:1 -598:1 -599:1 -600:1 -601:1 -602:1 -603:1 -604:1 -605:1 -606:1 -607:1 -608:1 -609:1 -610:1 -611:1 -612:1 -613:1 -614:1 -615:1 -616:1 -617:1 -618:1 -619:1 -620:1 -621:1 -622:1 -623:1 -624:1 -625:1 -626:1 -627:1 -628:1 -629:1 -630:1 -631:1 -632:1 -633:1 -634:1 -635:1 -636:1 -637:1 -638:1 -639:1 -640:1 -641:1 -642:1 -643:1 -644:1 -645:1 -646:1 -647:1 -648:1 -649:1 -650:1 -651:1 -652:1 -653:1 -654:1 -655:1 -656:1 -657:1 -658:1 -659:1 -660:1 -661:1 -662:1 -663:1 -664:1 -665:1 -666:1 -667:1 -668:1 -669:1 -670:1 -671:1 -672:1 -673:1 -674:1 -675:1 -676:1 -677:1 -678:1 -679:1 -680:1 -681:1 -682:1 -683:1 -684:1 -685:1 -686:1 -687:1 -688:1 -689:1 -690:1 -691:1 -692:1 -693:1 -694:1 -695:1 -696:1 -697:1 -698:1 -699:1 -700:1 -701:1 -702:1 -703:1 -704:1 -705:1 -706:1 -707:1 -708:1 -709:1 -710:1 -711:1 -712:1 -713:1 -714:1 -715:1 -716:1 -717:1 -718:1 -719:1 -720:1 -721:1 -722:1 -723:1 -724:1 -725:1 -726:1 -727:1 -728:1 -729:1 -730:1 -731:1 -732:1 -733:1 -734:1 -735:1 -736:1 -737:1 -738:1 -739:1 -740:1 -741:1 -742:1 -743:1 -744:1 -745:1 -746:1 -747:1 -748:1 -749:1 -750:1 -751:1 -752:1 -753:1 -754:1 -755:1 -756:1 -757:1 -758:1 -759:1 -760:1 -761:1 -762:1 -763:1 -764:1 -765:1 -766:1 -767:1 -768:1 -769:1 -770:1 -771:1 -772:1 -773:1 -774:1 -775:1 -776:1 -777:1 -778:1 -779:1 -780:1 -781:1 -782:1 -783:1 -784:1 -785:1 -786:1 -787:1 -788:1 -789:1 -790:1 -791:1 -792:1 -793:1 -794:1 -795:1 -796:1 -797:1 -798:1 -799:1 -800:1 -801:1 -802:1 -803:1 -804:1 -805:1 -806:1 -807:1 -808:1 -809:1 -810:1 -811:1 -812:1 -813:1 -814:1 -815:1 -816:1 -817:1 -818:1 -819:1 -820:1 -821:1 -822:1 -823:1 -824:1 -825:1 -826:1 -827:1 -828:1 -829:1 -830:1 -831:1 -832:1 -833:1 -834:1 -835:1 -836:1 -837:1 -838:1 -839:1 -840:1 -841:1 -842:1 -843:1 -844:1 -845:1 -846:1 -847:1 -848:1 -849:1 -850:1 -851:1 -852:1 -853:1 -854:1 -855:1 -856:1 -857:1 -858:1 -859:1 -860:1 -861:1 -862:1 -863:1 -864:1 -865:1 -866:1 -867:1 -868:1 -869:1 -870:1 -871:1 -872:1 -873:1 -874:1 -875:1 -876:1 -877:1 -878:1 -879:1 -880:1 -881:1 -882:1 -883:1 -884:1 -885:1 -886:1 -887:1 -888:1 -889:1 -890:1 -891:1 -892:1 -893:1 -894:1 -895:1 -896:1 -897:1 -898:1 -899:1 -900:1 -901:1 -902:1 -903:1 -904:1 -905:1 -906:1 -907:1 -908:1 -909:1 -910:1 -911:1 -912:1 -913:1 -914:1 -915:1 -916:1 -917:1 -918:1 -919:1 -920:1 -921:1 -922:1 -923:1 -924:1 -925:1 -926:1 -927:1 -928:1 -929:1 -930:1 -931:1 -932:1 -933:1 -934:1 -935:1 -936:1 -937:1 -938:1 -939:1 -940:1 -941:1 -942:1 -943:1 -944:1 -945:1 -946:1 -947:1 -948:1 -949:1 -950:1 -951:1 -952:1 -953:1 -954:1 -955:1 -956:1 -957:1 -958:1 -959:1 -960:1 -961:1 -962:1 -963:1 -964:1 -965:1 -966:1 -967:1 -968:1 -969:1 -970:1 -971:1 -972:1 -973:1 -974:1 -975:1 -976:1 -977:1 -978:1 -979:1 -980:1 -981:1 -982:1 -983:1 -984:1 -985:1 -986:1 -987:1 -988:1 -989:1 -990:1 -991:1 -992:1 -993:1 -994:1 -995:1 -996:1 -997:1 -998:1 -999:1 -1000:1 -1001:1 -1002:1 -1003:1 -1004:1 -1005:1 -1006:1 -1007:1 -1008:1 -1009:0 -1010:0 -1011:0 -1012:0 -1013:0 -1014:0 -1015:0 -1016:0 -1017:0 -1018:0 -1019:0 \ No newline at end of file diff --git a/tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo.measures b/tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo.measures deleted file mode 100644 index a38a443aa0b..00000000000 --- a/tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo.measures +++ /dev/null @@ -1,3 +0,0 @@ -ncloc:1019 -complexity:7 -test_execution_time:630 diff --git a/tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo.scm b/tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo.scm deleted file mode 100644 index aa26ea19f24..00000000000 --- a/tests/projects/qualitygate/small-changesets/v2-1019-lines/src/sample/Sample.xoo.scm +++ /dev/null @@ -1,1019 +0,0 @@ -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 diff --git a/tests/projects/qualitygate/small-changesets/v2-1020-lines/sonar-project.properties b/tests/projects/qualitygate/small-changesets/v2-1020-lines/sonar-project.properties deleted file mode 100644 index 6699d002790..00000000000 --- a/tests/projects/qualitygate/small-changesets/v2-1020-lines/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=2.0-SNAPSHOT -sonar.sources=src diff --git a/tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo b/tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo deleted file mode 100644 index aee73fa4c17..00000000000 --- a/tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo +++ /dev/null @@ -1,1019 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo.coverage b/tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo.coverage deleted file mode 100644 index d0885252191..00000000000 --- a/tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo.coverage +++ /dev/null @@ -1,1020 +0,0 @@ -1:1 -2:1 -3:1 -4:1 -5:1 -6:1 -7:1 -8:1 -9:1 -10:1 -11:1 -12:1 -13:1 -14:1 -15:1 -16:1 -17:1 -18:1 -19:1 -20:1 -21:1 -22:1 -23:1 -24:1 -25:1 -26:1 -27:1 -28:1 -29:1 -30:1 -31:1 -32:1 -33:1 -34:1 -35:1 -36:1 -37:1 -38:1 -39:1 -40:1 -41:1 -42:1 -43:1 -44:1 -45:1 -46:1 -47:1 -48:1 -49:1 -50:1 -51:1 -52:1 -53:1 -54:1 -55:1 -56:1 -57:1 -58:1 -59:1 -60:1 -61:1 -62:1 -63:1 -64:1 -65:1 -66:1 -67:1 -68:1 -69:1 -70:1 -71:1 -72:1 -73:1 -74:1 -75:1 -76:1 -77:1 -78:1 -79:1 -80:1 -81:1 -82:1 -83:1 -84:1 -85:1 -86:1 -87:1 -88:1 -89:1 -90:1 -91:1 -92:1 -93:1 -94:1 -95:1 -96:1 -97:1 -98:1 -99:1 -100:1 -101:1 -102:1 -103:1 -104:1 -105:1 -106:1 -107:1 -108:1 -109:1 -110:1 -111:1 -112:1 -113:1 -114:1 -115:1 -116:1 -117:1 -118:1 -119:1 -120:1 -121:1 -122:1 -123:1 -124:1 -125:1 -126:1 -127:1 -128:1 -129:1 -130:1 -131:1 -132:1 -133:1 -134:1 -135:1 -136:1 -137:1 -138:1 -139:1 -140:1 -141:1 -142:1 -143:1 -144:1 -145:1 -146:1 -147:1 -148:1 -149:1 -150:1 -151:1 -152:1 -153:1 -154:1 -155:1 -156:1 -157:1 -158:1 -159:1 -160:1 -161:1 -162:1 -163:1 -164:1 -165:1 -166:1 -167:1 -168:1 -169:1 -170:1 -171:1 -172:1 -173:1 -174:1 -175:1 -176:1 -177:1 -178:1 -179:1 -180:1 -181:1 -182:1 -183:1 -184:1 -185:1 -186:1 -187:1 -188:1 -189:1 -190:1 -191:1 -192:1 -193:1 -194:1 -195:1 -196:1 -197:1 -198:1 -199:1 -200:1 -201:1 -202:1 -203:1 -204:1 -205:1 -206:1 -207:1 -208:1 -209:1 -210:1 -211:1 -212:1 -213:1 -214:1 -215:1 -216:1 -217:1 -218:1 -219:1 -220:1 -221:1 -222:1 -223:1 -224:1 -225:1 -226:1 -227:1 -228:1 -229:1 -230:1 -231:1 -232:1 -233:1 -234:1 -235:1 -236:1 -237:1 -238:1 -239:1 -240:1 -241:1 -242:1 -243:1 -244:1 -245:1 -246:1 -247:1 -248:1 -249:1 -250:1 -251:1 -252:1 -253:1 -254:1 -255:1 -256:1 -257:1 -258:1 -259:1 -260:1 -261:1 -262:1 -263:1 -264:1 -265:1 -266:1 -267:1 -268:1 -269:1 -270:1 -271:1 -272:1 -273:1 -274:1 -275:1 -276:1 -277:1 -278:1 -279:1 -280:1 -281:1 -282:1 -283:1 -284:1 -285:1 -286:1 -287:1 -288:1 -289:1 -290:1 -291:1 -292:1 -293:1 -294:1 -295:1 -296:1 -297:1 -298:1 -299:1 -300:1 -301:1 -302:1 -303:1 -304:1 -305:1 -306:1 -307:1 -308:1 -309:1 -310:1 -311:1 -312:1 -313:1 -314:1 -315:1 -316:1 -317:1 -318:1 -319:1 -320:1 -321:1 -322:1 -323:1 -324:1 -325:1 -326:1 -327:1 -328:1 -329:1 -330:1 -331:1 -332:1 -333:1 -334:1 -335:1 -336:1 -337:1 -338:1 -339:1 -340:1 -341:1 -342:1 -343:1 -344:1 -345:1 -346:1 -347:1 -348:1 -349:1 -350:1 -351:1 -352:1 -353:1 -354:1 -355:1 -356:1 -357:1 -358:1 -359:1 -360:1 -361:1 -362:1 -363:1 -364:1 -365:1 -366:1 -367:1 -368:1 -369:1 -370:1 -371:1 -372:1 -373:1 -374:1 -375:1 -376:1 -377:1 -378:1 -379:1 -380:1 -381:1 -382:1 -383:1 -384:1 -385:1 -386:1 -387:1 -388:1 -389:1 -390:1 -391:1 -392:1 -393:1 -394:1 -395:1 -396:1 -397:1 -398:1 -399:1 -400:1 -401:1 -402:1 -403:1 -404:1 -405:1 -406:1 -407:1 -408:1 -409:1 -410:1 -411:1 -412:1 -413:1 -414:1 -415:1 -416:1 -417:1 -418:1 -419:1 -420:1 -421:1 -422:1 -423:1 -424:1 -425:1 -426:1 -427:1 -428:1 -429:1 -430:1 -431:1 -432:1 -433:1 -434:1 -435:1 -436:1 -437:1 -438:1 -439:1 -440:1 -441:1 -442:1 -443:1 -444:1 -445:1 -446:1 -447:1 -448:1 -449:1 -450:1 -451:1 -452:1 -453:1 -454:1 -455:1 -456:1 -457:1 -458:1 -459:1 -460:1 -461:1 -462:1 -463:1 -464:1 -465:1 -466:1 -467:1 -468:1 -469:1 -470:1 -471:1 -472:1 -473:1 -474:1 -475:1 -476:1 -477:1 -478:1 -479:1 -480:1 -481:1 -482:1 -483:1 -484:1 -485:1 -486:1 -487:1 -488:1 -489:1 -490:1 -491:1 -492:1 -493:1 -494:1 -495:1 -496:1 -497:1 -498:1 -499:1 -500:1 -501:1 -502:1 -503:1 -504:1 -505:1 -506:1 -507:1 -508:1 -509:1 -510:1 -511:1 -512:1 -513:1 -514:1 -515:1 -516:1 -517:1 -518:1 -519:1 -520:1 -521:1 -522:1 -523:1 -524:1 -525:1 -526:1 -527:1 -528:1 -529:1 -530:1 -531:1 -532:1 -533:1 -534:1 -535:1 -536:1 -537:1 -538:1 -539:1 -540:1 -541:1 -542:1 -543:1 -544:1 -545:1 -546:1 -547:1 -548:1 -549:1 -550:1 -551:1 -552:1 -553:1 -554:1 -555:1 -556:1 -557:1 -558:1 -559:1 -560:1 -561:1 -562:1 -563:1 -564:1 -565:1 -566:1 -567:1 -568:1 -569:1 -570:1 -571:1 -572:1 -573:1 -574:1 -575:1 -576:1 -577:1 -578:1 -579:1 -580:1 -581:1 -582:1 -583:1 -584:1 -585:1 -586:1 -587:1 -588:1 -589:1 -590:1 -591:1 -592:1 -593:1 -594:1 -595:1 -596:1 -597:1 -598:1 -599:1 -600:1 -601:1 -602:1 -603:1 -604:1 -605:1 -606:1 -607:1 -608:1 -609:1 -610:1 -611:1 -612:1 -613:1 -614:1 -615:1 -616:1 -617:1 -618:1 -619:1 -620:1 -621:1 -622:1 -623:1 -624:1 -625:1 -626:1 -627:1 -628:1 -629:1 -630:1 -631:1 -632:1 -633:1 -634:1 -635:1 -636:1 -637:1 -638:1 -639:1 -640:1 -641:1 -642:1 -643:1 -644:1 -645:1 -646:1 -647:1 -648:1 -649:1 -650:1 -651:1 -652:1 -653:1 -654:1 -655:1 -656:1 -657:1 -658:1 -659:1 -660:1 -661:1 -662:1 -663:1 -664:1 -665:1 -666:1 -667:1 -668:1 -669:1 -670:1 -671:1 -672:1 -673:1 -674:1 -675:1 -676:1 -677:1 -678:1 -679:1 -680:1 -681:1 -682:1 -683:1 -684:1 -685:1 -686:1 -687:1 -688:1 -689:1 -690:1 -691:1 -692:1 -693:1 -694:1 -695:1 -696:1 -697:1 -698:1 -699:1 -700:1 -701:1 -702:1 -703:1 -704:1 -705:1 -706:1 -707:1 -708:1 -709:1 -710:1 -711:1 -712:1 -713:1 -714:1 -715:1 -716:1 -717:1 -718:1 -719:1 -720:1 -721:1 -722:1 -723:1 -724:1 -725:1 -726:1 -727:1 -728:1 -729:1 -730:1 -731:1 -732:1 -733:1 -734:1 -735:1 -736:1 -737:1 -738:1 -739:1 -740:1 -741:1 -742:1 -743:1 -744:1 -745:1 -746:1 -747:1 -748:1 -749:1 -750:1 -751:1 -752:1 -753:1 -754:1 -755:1 -756:1 -757:1 -758:1 -759:1 -760:1 -761:1 -762:1 -763:1 -764:1 -765:1 -766:1 -767:1 -768:1 -769:1 -770:1 -771:1 -772:1 -773:1 -774:1 -775:1 -776:1 -777:1 -778:1 -779:1 -780:1 -781:1 -782:1 -783:1 -784:1 -785:1 -786:1 -787:1 -788:1 -789:1 -790:1 -791:1 -792:1 -793:1 -794:1 -795:1 -796:1 -797:1 -798:1 -799:1 -800:1 -801:1 -802:1 -803:1 -804:1 -805:1 -806:1 -807:1 -808:1 -809:1 -810:1 -811:1 -812:1 -813:1 -814:1 -815:1 -816:1 -817:1 -818:1 -819:1 -820:1 -821:1 -822:1 -823:1 -824:1 -825:1 -826:1 -827:1 -828:1 -829:1 -830:1 -831:1 -832:1 -833:1 -834:1 -835:1 -836:1 -837:1 -838:1 -839:1 -840:1 -841:1 -842:1 -843:1 -844:1 -845:1 -846:1 -847:1 -848:1 -849:1 -850:1 -851:1 -852:1 -853:1 -854:1 -855:1 -856:1 -857:1 -858:1 -859:1 -860:1 -861:1 -862:1 -863:1 -864:1 -865:1 -866:1 -867:1 -868:1 -869:1 -870:1 -871:1 -872:1 -873:1 -874:1 -875:1 -876:1 -877:1 -878:1 -879:1 -880:1 -881:1 -882:1 -883:1 -884:1 -885:1 -886:1 -887:1 -888:1 -889:1 -890:1 -891:1 -892:1 -893:1 -894:1 -895:1 -896:1 -897:1 -898:1 -899:1 -900:1 -901:1 -902:1 -903:1 -904:1 -905:1 -906:1 -907:1 -908:1 -909:1 -910:1 -911:1 -912:1 -913:1 -914:1 -915:1 -916:1 -917:1 -918:1 -919:1 -920:1 -921:1 -922:1 -923:1 -924:1 -925:1 -926:1 -927:1 -928:1 -929:1 -930:1 -931:1 -932:1 -933:1 -934:1 -935:1 -936:1 -937:1 -938:1 -939:1 -940:1 -941:1 -942:1 -943:1 -944:1 -945:1 -946:1 -947:1 -948:1 -949:1 -950:1 -951:1 -952:1 -953:1 -954:1 -955:1 -956:1 -957:1 -958:1 -959:1 -960:1 -961:1 -962:1 -963:1 -964:1 -965:1 -966:1 -967:1 -968:1 -969:1 -970:1 -971:1 -972:1 -973:1 -974:1 -975:1 -976:1 -977:1 -978:1 -979:1 -980:1 -981:1 -982:1 -983:1 -984:1 -985:1 -986:1 -987:1 -988:1 -989:1 -990:1 -991:1 -992:1 -993:1 -994:1 -995:1 -996:1 -997:1 -998:1 -999:1 -1000:1 -1001:1 -1002:1 -1003:1 -1004:1 -1005:1 -1006:1 -1007:1 -1008:1 -1009:0 -1010:0 -1011:0 -1012:0 -1013:0 -1014:0 -1015:0 -1016:0 -1017:0 -1018:0 -1019:0 -1020:1 \ No newline at end of file diff --git a/tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo.measures b/tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo.measures deleted file mode 100644 index a38a443aa0b..00000000000 --- a/tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo.measures +++ /dev/null @@ -1,3 +0,0 @@ -ncloc:1019 -complexity:7 -test_execution_time:630 diff --git a/tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo.scm b/tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo.scm deleted file mode 100644 index eb74ab95461..00000000000 --- a/tests/projects/qualitygate/small-changesets/v2-1020-lines/src/sample/Sample.xoo.scm +++ /dev/null @@ -1,1020 +0,0 @@ -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -1,user1,2017-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -2,user2,2018-04-01 -3,user3,2018-04-03 diff --git a/tests/projects/qualitygate/xoo-sample/sonar-project.properties b/tests/projects/qualitygate/xoo-sample/sonar-project.properties deleted file mode 100644 index 8819d09dd60..00000000000 --- a/tests/projects/qualitygate/xoo-sample/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src diff --git a/tests/projects/qualitygate/xoo-sample/src/sample/Sample.xoo b/tests/projects/qualitygate/xoo-sample/src/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/tests/projects/qualitygate/xoo-sample/src/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/qualitygate/xoo-sample/src/sample/Sample.xoo.measures b/tests/projects/qualitygate/xoo-sample/src/sample/Sample.xoo.measures deleted file mode 100644 index f67312c1004..00000000000 --- a/tests/projects/qualitygate/xoo-sample/src/sample/Sample.xoo.measures +++ /dev/null @@ -1,9 +0,0 @@ -ncloc:13 -complexity:7 -test_execution_time:630 -#Used by dashboard/widgets tests -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/qualitygate/xoo-sample/src/sample/Sample2.xoo b/tests/projects/qualitygate/xoo-sample/src/sample/Sample2.xoo deleted file mode 100644 index 6c1b6459c34..00000000000 --- a/tests/projects/qualitygate/xoo-sample/src/sample/Sample2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod2() { - return "hello"; - } -} diff --git a/tests/projects/qualitygate/xoo-sample/src/sample/Sample2.xoo.measures b/tests/projects/qualitygate/xoo-sample/src/sample/Sample2.xoo.measures deleted file mode 100644 index 22e229b6ed0..00000000000 --- a/tests/projects/qualitygate/xoo-sample/src/sample/Sample2.xoo.measures +++ /dev/null @@ -1,8 +0,0 @@ -ncloc:13 -complexity:7 -test_execution_time:630 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/scm/xoo-sample-with-scm/sonar-project.properties b/tests/projects/scm/xoo-sample-with-scm/sonar-project.properties deleted file mode 100644 index 73645df942f..00000000000 --- a/tests/projects/scm/xoo-sample-with-scm/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample-scm -sonar.projectName=Sample SCM -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/scm/xoo-sample-with-scm/src/main/xoo/sample/Sample.xoo b/tests/projects/scm/xoo-sample-with-scm/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 9dc354b8608..00000000000 --- a/tests/projects/scm/xoo-sample-with-scm/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,7 +0,0 @@ -package sample; - -public class Sample { - - private String myMethod() { - } -} diff --git a/tests/projects/scm/xoo-sample-with-scm/src/main/xoo/sample/Sample.xoo.scm b/tests/projects/scm/xoo-sample-with-scm/src/main/xoo/sample/Sample.xoo.scm deleted file mode 100644 index 6db3ba66128..00000000000 --- a/tests/projects/scm/xoo-sample-with-scm/src/main/xoo/sample/Sample.xoo.scm +++ /dev/null @@ -1,8 +0,0 @@ -1,jhenry,2013-01-04T00:00:00+0000 -1,jhenry,2013-01-04T00:00:00+0000 -2,jhenry,2013-01-04T00:00:00+0000 -1,jhenry,2013-01-04T00:00:00+0000 -1,jhenry,2013-01-04T00:00:00+0000 -1,jhenry,2013-01-04T00:00:00+0000 -1,jhenry,2013-01-04T00:00:00+0000 -3,toto,2014-01-04T00:00:00+0000 diff --git a/tests/projects/scm/xoo-sample-with-then-without-scm/scm-repository.zip b/tests/projects/scm/xoo-sample-with-then-without-scm/scm-repository.zip deleted file mode 100644 index f0dada50b669ae5a5e0da5b7c8551cfc323b0a7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37476 zcmdSBbzGF~@&`;wBOoOm(&fS~EZyB*Qk#HuBLdPQ-Q5zRbSj~AN{57$gp`1!gz~P> zbK*V6^E=P+{qNn+XBPI4`@8piubH{$x@Kl|)G@K}(SE)b0t7Vv_~&nLx6tU&_-*Vw z?i(85p<%Yctjs9kR%V_)1Ze13+n8u*f4u3SE+S}o%+S%$I#GiE_si{^ z;0T|8VEn}SHw^c$gl79E{f1D2s^9B&suDKLr)r?q_!7 z=C<+r=Upm}P0ID69h?v@$$VTLM$FsZRSLi-!*2;BZ1nP`-n~gSc;_^s*Vbixz~DQW zAG++<);i^e&54WW=6Orckgz!%Kipi#pHN9g?CK1=j1Knf4ekDoZhD@_$>#TL`%0$c z_Qa%Re2WUM*?uU%JwSOeAPOPttnGyPhK7|RjmxUqpc-(!@T`IFV~mXi6_tNv@GNn% z@Ji(J^UR~;otmvrPg}AszMa3#XqtR9Ab}T`|4Hr)t26|s=&@qeV@@+56$aYR)%kOA zZTH9|F$~+HwMYySNIPMTLc9DJ4n&;Yqz;jmh)36{{xaE z#N7ko_J`g4yerdR?FIl8M#A85C=v`7fC_=&V3-gR3=y1=22Y7Wk2l{!9REFNG8tQ1P@@er8@^TKmAJsSJ956=PMjI?; zv71=?Zwq_-?;1hfAWkq_#9u4)7Y1VIgmnH(1NkQ@-jc)26(~XuQ9}Cnd-($c;RAE< zgd_gJ3hS@7#up=t-w7aBIM0RVN4=c&y8rr)`6EnM(uF+X#PziGr?W9O;FSIFzSa!< z=cKc(%`+RNZNtu}2d;E@ep1t<_!mY1dz;Evga>4Iyz5+hQ=+oW9SaX%6$jP5G8|jVf&)y59N;&J7U`h=1G@Z2+;337Ag63VH zRcnddjR_;GHABCrczN9QroZp3W9Loy!9LFaZB+z+*W1?F+5WE=;Gg9Awsw;(JH*k&;h#MI2kXi)v3FijqWsSLBl3Y_MR7SpqZIkV z>)6#<*{m;481NX%sO}o&bseat+iPGK=fl05C3l-}7CxSB=&kMGlkx}K@ z8HOjUzH*;m&Tl!qsRczVgQO*{1KvNm(Ykptq%kh~oflu1Tlw*u#Hp(KY}+>^N@sS( zQ+$YU4~vO|hMM~LvI!-`M2}-QU(%TwKXhE_&MbepR``8A z$Wl(o=eF9#00SuX4JUtb13hM6HJGvi@`EJtyA`rfbaVflNS~<-NUipE*ySc~9h0HcSHJfOx8`w7Xi#cWqDlf-hV3hp zH*pY#u;I~TJuZq)nIFkpDYC*_!}qh*wIiw+@UUm|1^U zk>~AwLe0>_qd595OaDeltpusxsu;xk&5wMsj(v8;vqt9(6rE>%=TYI)MQ*8k?Eoge(ifMC&);1sRnb;c8dsX8bEF)aHR-4H z9%C#MTs8-GosMg{G}e3@TemqBO&*h6l&xU#hZ{pKOe?ww*s=EC2jJiSxsYr&yO99RRPB z`yF$5)&yfq<-+sB{c1be?1{JYOJ_sfWO;FHoS$5tF0M|y`dFs3DSxw*uj!m!(e16P z{QCA*lKz}Wn9adZ015EA5q61-L7?k;apqe`+~xf=iLslt?Q$Uksj*B8b<2?`eNMW( zm{fN3{x<4@Igxa4j}1$RAL#<8yXlww3q>izef<>xZBtx4>ts z;7THD8jro3J#wwwdur!FQ{!&snOBy@32K+;8$Cl!&KBft=xxm!WBv0u=i~Qwq=fKe zE9G$Mso&x_-t2m7?nv*0HP_a5Zoc-NQ#p@RS-pK5QMj+;B_2jvWP4=~JTgpaL%@UWyH5pg( zzP3`_!bL~mCVx_8NyVu1;{@_EsR{DIqJ;5PP|wMylI!ZeP5xjdLZ(#Xy2|hhfpVH1 znLH*QBX<1{yl?bVC!PoB+HmfAZ6aFdWU7%o=~nnTHXl8M*j#ytgcSf)jHcwzbMu2f z$i+r2=w_pV>46;C_i5LxBh^cH8Pb!CZ1{1Dql*RPoXw-~7|6>r?z7T}MF%}=(lgq7 z=0wRTNR8R`^b7bz63pBDwweDK6Ar*<--m6G4O8h+nh7kVu!fjt!6J0bx7#-ujgD-$ z{8Q|fOxUz(fEx)t<`c1JhIfoYl^i2XpM`-x5%x1ppBv=eS6G9wyGiRgKMH2yKxFdS z^HIu3TPlU*Sz1_Hwfc%5J6rQyB~tHojXMYQgco7Yz^L%wX;+3lu-+~G3NN25A*NLgv|;8$tjJK zV9t-38*9raohHo0PYc$2nQI}&goAG$d5{wc>=_pdekmaRZq@vWn%P@~It-J-@)6yo z(PX&bWobQ5xLYn&=Vc)-1^(W-?}~2H!211n=qIr-O5wK6o9Ff=pKvg;uPw&rEDPsG z>LfuqrPndcj#tH0aa=Yz&R36aBC6G!T-bA^^9enGm(BedQI|J&+J)nXv*QZu1k6|P zrM*AbKh^ARIszKspC#fNmMR!{nz+7MLLuIvkC7W%A5O(j9>q6(M@M_AAa#>>5zC>@ z`_YUSaq=nQlRCqgqTzGKd{1D+IfIJSH``__^fUd?xaWtTaTRi|Ft{IUe3|&@O7fT> zscGLcCPP}7J-eVZpb?ubV6SBvmdSp&VRTn$cRBB8=JC&@Vf))4$vJAn6^PoC{aexi zb9QvJ^WbxIxA`BE2LD7W=Scv0PhOU`s|wGAk>>NGh_$Qk67V<9|-aZ|U*`v!=veXYC zHYRghY@8?9I&Ajp?SMk1T*>TfAn%n_`Cu z^h(Ox4b`7%IHam8v}vcCo$;3v<1o$bQhqQ!r-tOXw1sifQ>)lNF5||%HSVe8t%R@4 z!3xLICK)t!9u-@BgeW1L|D2haq4}I~jdWn+*ZT4odUOlFl$~MkSU@E(VB8`>sh37^?g*Kxcm0&9)s|F)@|;@ z9BJxyS@QT>cve*^38cdqPXpq22t7M>F6&9^wCXB^v9u&}afUppRnfLH8`Bz7r zlPUE@aJ;(PcaO75^kqS#<_ZaGwN___4qH6c5yt=FRGSApS*z zi|{0DWb822?$xZ#1A_!})sp0axX-Mj%=Ao2I2*}}3k#Bns-fbk;$8MR)(`@sZ~EoF zVPn+CXqC0K=PN`fl#d~#eou8Wrqz6PO2R0_ILvr)A9E#l(xi^In>A}bfgZB@Q|X$O zlW35Q#ux;t`D}#}P;|zX--F$b(H)dv>kTXuC`(Xsw!ITteb08YJ)^_O1nqqb2y^g!fk%(?j!fEHb*E$7K zMst|Fl8P^46Gnc_h|s<(Jc0cx#1VE@BpDi$a#zl1YB+zg4qy_;g)xH4g+apKz2ZV# z=w}wbxIXD+j&f{UMCyJZC;r%P1RK_zbeZR7^CVmeJA9pzGN!QBY7j}@lTu*9%qC~0 z?pkKU;t<0;^pKp~giQsU^>(=Q;I61(5Zog`h9l6;MOdnVp#plmCoQ^Dd0ko$$tASbuvh%~IS9RL~D>ux% ze$AQ77JgYz-v03QK3!c)6D_w}dyx@~&3hKrb=)KCD#B+4_rQo+tIZ1=H}hp{XQZ!Q z;L@#|@@c~^7xPsp^9o=XO8PgWX9K)2e~yZt53zrVpg*@=e;WM%5J4RcAkGWIB;V=2 zN4_FsC9i9ch-Unsu0rEiy|^t9bA zn2<;J18>>vxNSw33%Ic2HU+hMXGKf6<{?>O=|ijHS_{6f=~jnuT%ilFSE?ULfxINe zY(e!wy=fAFb$(`U#*Q?d=FGA@qh2mHT{d3^>vM=Bm%-zRr0%Z+cW8A3p)cB5S?(rv zRUyAU_h_vHJ*5AP8KjzOr&Xo0ZFaTbmYE6?o{xn8}H*|dqJ$oUd) zkxzt4UXL@WSF=N zMIYXHINtFT>_URi7e^WruJ1g~m0|FGV(XM^bA$e`PrK1}4GcU~ z>huC7Ouszs_#iGW4v$+|Umtg$cx){9@ z&Dt-ic`eyJPvs1YC3;*-Md*!`hl`c&dpu`3OUDZ!&!vJ5+`8kmYf(%Mx-=S1$~S)h zgTo+ZLTG!`Un7(j?Mc9RPYvkC(G;M^x+O1VAZk+`z*rDE&z{z$9i{jT&QYjs=s zs0Y}L^(h=MQd3A$$tM?CUH&3MxdOWlYN04LD*tWsknbHDlYeCmrA?kws) z>hZ-R^$(j=sAc2Gsg0@`+zep8=nZ;fJoX;h4%I85&nH#L4qZ?UmDDG%GBXggo@u}EUs+w)#+G%`Dz!2us{^7YQi zx?gcUfcrj6VIF?wacBh)HcBwhIR_?*$u!xNSPPdw$79`R=)97=TZK_$;GRHUDhsgB zNiDB#%!vOlC=T!u@8YticUWzQu~l*K-EB1&6fMs4mcla9n z9{%>`UhSQta~;bULXPR6drgtk^D_s&4RSteAtUM2%j6|XqW*yoz$YD7Az|K|NS(!N z{2g;TIAw4d+Ar& zM;I*Gn3q_&OpoOl%#h$@u!~dGylMrBPZlLcYk`9;ZJ-x+2SQ8t}*oSHSmmzkM4ejoV7PfTb}+?wLCPd z>?Ls=jWW%g-+JAJh(_}+@Fc%@C+9*P4X66Q#4+&Jmo-rwY8-FMW{4qsM^0qmOS!?shFv?~^(&hfb7F5?Dm*GI zc$nKl(%7wzGm~=6`mzBT31>{X{(LbB1gR~j%^eQoG}qLbj?JVS-qKW zPw3+oXDga>hIw({KnY|byqeX{JV>TvH+1efNl8jMvGMtJ?-b0=EDy+hG$b1*-k|dF zBQJhsO;D5bL2S^m2COqNM}6^mi7eMwwA0iz(h1k_J1D{aecwrg%YFJE*lqu|+=eF=v)F6psx0NZ$j=Bv9as&CMaQP6P^li_&l_tYO@0d;$&V3T;oijh7ABjhacPCv#|wWWG;$a0@{ps= zA%QjYIJwcJ%MI^CJx-nz3jefq>JqXkGEBY~S88aGvxJ@zg?9jy(9KZq2Iy z%Kb#u>0Jwp4Gh!GCjTg5(}adkRhF5&r-O+V718r^Wu692ZjM>4>Kd#UxzzBablt6% z5nD5T+UUl+5h5L~g47Q7+g$IxLQB8cW;xesqB+OhGk%6}7pMqHw7~oSG{x{p@ zwD?j0C)gzk+pGN8M;pJ+YW;hzw6DfS%z|7LbH5|Y7L2KNYVy!w<3|?tN6tCiX6%0$Ts1yMH!<=iy#TM3X7W7$=>-`Yv-uiYaayBZ z-*&kE{UG*$+W3$yk0JiOvax-Wa1y6xvrXnw0xFi#fxN)f$m?4!+D;9=u}iiICl*J~ z+v_l=ib;cSA3@#Kz!74t>3tkpX_uw%gG z2>Raf;JJU+|pX3sVh$u_~~$W$J00E>4}T|`m>M3baV3~ z$#0U8j-38&OA0inYGoABxkRG!{rb9}2{YPu_AS|iFF-v;a)1(1#9YoDTmLiRu@Ix^ zZtL6mEd+91Zd`F)Kiz|Iwkl?_&=-5Ja+D-RH!WQr{MiP!l)?9D*U&K zFsijcjOqW?U+`yF!2heF|LudbWElFN#w0rwIT14WW=AAeabDNDv_mf`cF+sHlJdSO5-22!ezK0SI9T zKmY;+z=Z$c<>z<(hwt-2S05bE)&mH@0RUljbuCp@H6R$QAtDHxz?xG< zV?;|s+mKW1Jzu|S!{#S$PR+pq4I`BiRbGB0Tp{i0qWH`GHy2{(sSE&SOScSCxlWwece}g0;`0tQ}-F}>dBIu|5LJ|rID2fyX z3j%}yAef*i6eu7pj3Nb!fB_LAa41w14iN!}Lg0TvQX-n;pCkzY!6=pt2Wx)zRD?ln z@>uT2&wN@*mNmz!!6!XmaIw3m>NKFKvusJ$>~SUfnU;>IP<#)pfer;K`xdBDU2|hg zizhp0v1hOoHgIwb^g0_i|>L?0cLbEcJ%g8l}r!a~16Ys3>Aj(8NMKjjx%QAj{hpfCs~ z07HU6V1%#$s%;1g_q5mJP52~t4 zs)K2QU5Hm`j;U%%_JXPi4NFZ>FzQq$liZ=eSGKUhWO$_FM3ZlzUwb@|T4%^`=oXri z7nt9rLLm4zm=ydSFCJCqd?|%u@u&R4Bnk-v6^022iwKE801zYyfPlk9goKa+f^awx z0TDz%K*9o0!M|YgZ-EQ(!g^}v~^hO7x_5W!>pr3xp!=oX9ql2-z2DFs3j7V-DajNzY*2dtlwWj5Apt-D z5eO0ihk`*6Bm^XY6hHt_W&jWdp!`VyE(k}t6A1Jd-eZpT{BM!_r}O-wJ1TOcpaDPu zUEDtc_w=j&QJZgYk=6dSY2CqR+ZWzm-#`D@^*rhfAT;!SRJK8Q#ebNs>aTaRsi*h7 zSylb?wpH8XEiSY#=p4j88N7|ZK@bG+8w3qyKtBUe6t$c{ z5kVvbDGUOF1VBg#7zRTiVK6WfA^P75`qL?d;V-ODq&z32``cMhyD}!lIQ&Pje6z)$ zoRyErvxoPG>_wqVz)0zSLsK~NH#E&^hB_;twEQW*Xo^CD2_X<*1V981gg{YGaX}#% zTo?dD!r{UYkO%?wX(AzI3x+Kc{7VgBX_(7!nX=g6o!?*t#` z;Ha7=|2XEvtujTnjItiWDkp3Ss$4U=K98f5>$}e=GkWk4C7y<{Q za$NxtqyPYp1jA9OpNN0}9E3#q393g|2-UFr7sir;_V7=-1V8{3Ulk+jeBNb|~-?Te>eL8-^KvH1-fTP(ysUs2IkP{pQpXZ!}%c zvQm#{2nWCJ&g4R!!Rxd1#BI^`MK~=DZ(N>6Rh;=*ZANpNrA4~=fQ?Kn28Eh%R{~2h zd`o1!GtX_kv4>JK*g35g{Q*Li5iTzG`Zt(`3jBr}y4<9NMW9&yDZem_LK1;Ok#G@F zK@qSJ00=`hI>QA7!B7OsGC_g>0aU;N2?`4TMMRDn=)lKdCJ$R}JSF!w#R~DB(!Ez` zG4KpMl*)&BUJFUs!a)p7de<0V~q z`}Q4|drKDYz?;9pAozC@?FhY&jX>1K{-^xHAPPwU_;UjShYJcpMc^P5i>PP~5Jl}l zM4?CsDz*v1MFAqf|8ARq%VX-`F8@E6Ul@y#Ij(7b%$9j!e`c{Fnsiz8W4O5J(laS_ zhyJba`ItU7+x6z|MsaG$9$HX5ld&<=^pJJAbw3-(Mo;JpTY0h#?3N-{`6RE#P{cuU zj1&7_zWLb~B0bUGJMQ3*H_rjm+grm|q94pX zl50y2_C%9YY`FCsmLu{z5Bpn1&s>*L<(!}Li{+q@pb$}z08j`91A;|Ry9x+W6b^(z z1yMExN1~pALIS9#zu;f&V=Ii8fA$G1y*f2Ex4TzKbQ7U(O{|(zU|(H8j2X`Nh$b>H zl}kNJ!*$ij|Znn+tOn;6>v}MfOs$m}cFy zCDl85-+Yq@)KYwz=&9y<<8|x%4X||z71@o+e0)Za>7t?{ zXSsm}5hn0BXzS`%%;%0sy-z(a&ASw=ph5|Ld@7}W!bTSp(keBc)=m@>$G57}L6f(~ zaM?#X+f)TxN+MFS*q8*eok=+};5-u1i^Rmj5U#5gFa%vpd)1(B~dV16|FCw^g=WcPuyi&AGYfx#z%uh6}uEUPb>3|LL2lbOcCw?;VSZ~Fuf>YL*_39@m>uJf~#tibo8 zf`{(D7dMTt_!iJ4^DLJ8tCfB=d9B-450xxew;6SUv1d2u04ckV0@Uwhq7wsl6GM~F z@MGGqc0G(*gaEthgE>FfXi>xtLq^?FwBlBRoW!S#U`1Q9o9l3)@OMWFck|U1uSpPi z-<8%zyM3htUbnrwI3#!;XH1z8EykiXE)0%MQ?zr%P+8ooEap2D2^4^M_ZU21n=#`tXbl=Y>ln{%_2aLoFet-`l$j=-)Hk53p^@Z(Mp+OwF3RW0gV;73O~69%y(-9r3Ce8DZ%TdonpVV4%& zy>Ek+iB9hl?2P`{I-nLKI;)cuXj%FY|p`VD9cNa<{sk9q5I9>*@j1#50%ID!5rwe~de zn8qRZSuKN_lD6tNr?TfNtd3y0XXR4S<8+Uz`7zuc)16b!f6SwJW*+r|jDN~t1Gy*1 zn1y}QE@YguT2iMp95nJu-3!Ow7vE@W+XYU+4D5F+jki@=o=e zTF$?M8$}_|Hm?T)zG0l2x{*x%S~_D7Z1t|DNKbETDbj-?Y-kK`S+&0YV)(k!d+Xx1 z#O^|Fqc@#GQivu@lkqCHPxxET{M=x0Jnh@g?(r8aevdkKJeW-BhYCVkFOI&oPS*!c z8gXA^EJ^!4lW2;C|fvB#cYw=>74 z zd_!d^t=e$xi0{WfTeuH65VLbWREX&FVn(!e48a^9eSgV95Tb&p4Js-n2a6)%LI^k*C1{OTuqK6$ zkUz`woAVAft2h`)RXU5!E?J7mrIoFuFxc796Wj5SSBLO9D`4-59*F7cepM*%u=9I1 z{@lY+hU+bP(e9zSx`zv&_mtZ%Pdln{aV`7dqUWW6;ALe>#KR&Z`%GMPFRWo+Q^|Ba zxB`L9HQ|fXknIKv)^W9@7x_-WUTjTEig+qr7$ASMw$2q>OYPN38X&WL&8ga51}u@A zLp3j=+d)LfH>UQLg)kDR4dw{B+b}PK9iF~9*>#wR62XOLI zo~seOLIzY@cH>Tv=M?B>eOs0y{McAXLtRvt?QlIhyS)N~m-Am6tk z9EE<>?B)%Y>9Kkl6xX?Wxao7(?An}pWDIxIj#xQN^#hLSEVWFPI2qR{JGZGb_kdzj zXX1iZqCr=KIWl?c@BCL*cXzU8ro0!#pzH;U{sv~bqWSXWk9Iy9T*HlWkkYoC_n@X6c$A7`w(yu z&|mFDQcUceX$MG$jYq0p6lX+u_(Uj>_*A6aG8Od7>B6RCj%rUW-mF#~@fDHG*cTXX zI9Wb^+5A{UtTl=xAEdl^x??-y4lI2qarI-4G1m{AVbjxHnZz+bCI;N795k|5{_Y`D z*VXmz_Qe74@__|Bd}NEGK{t$aKB}R_$#h${`19Zne?`oNLPqgR{;jlmvCQ4#GMV~8 zIz^UUgAHCj4WsgWK-cMgq!gTURJAb47MGIv=_h$*aU+Y?W^>k@iqpJm!!f-kvOLLh9?&ma0DbqI zfZ#`|820Ly+tb?@LW>_+>9H~BCrAlr0?FgsXIOF!EwKAt>#63;k{uBv@C-Ip{9Wrv z+k;>>J8Bm;RH&>1n*p>#U0XF+r6IeBmLqa>~vYEURALXFV#)12$AQHkSR#a$6o4 zd_uucY%hQR2k7}eZL-F2`somJ)wWY|DAOL4yt}4LW2*(d^mUP~cKGH@$x%L=44i-OX zTVK++er#~I=LR?|K_~luFeb=n9y9&E;D#Gt85R8&WCp)&pOd`uS?1!IV)(xM>3X`w zyW6?DPOFrka_jO6r)lrdVyE&P7r!KpIh3Bg>pb61_zJs=-SfPO=%i>)yZG|Sx7DtT zg}PV9&Lc_d7(o8ph&iruvmL{Vmx>OtZ$o+?wHnz;2ulr=ulq;0M0xDigtW^^5mTAvJ<%{Hwxu-G<#^Rx8vY1t2bX2*G zYFO>cZW)9IZ=-uV$W=K^-dMl}hFEdKv>F;-&JSqdGB}t3TMAPUFzZho73yb2kx|5R z(M>{(jd?Xw{naaFB>pLFII_2`4?k|3QSe|#f90>~jVLT2=5c;TyJSP?DG8O7MT^yZ zRlZKjPRn6r^IZ`&BvFCtY~}5YB$>uOAvf_Mi|Ecj()&(wav=wjvf;LQHS6sqDbyqQ zU^*oe#?~`bbiTG5_3HS;0s9Xk2ZWVil)uPD1{HnZ#vO=ca{ZOR+bf?MWkQ0wTdh}< z=rMgTxqGjly6mUlQQ|L*s9`5mS$(1-!*e@>*pf_CR8Hl>)Hsd$ka}gZwos4o2}H|1 z=JhmNF#6$EI&)w@qsoeE4ZeD#3Zh>HQnw>~h9GUV$HsVHEgRG`iB=Up~00YXmN)~y76z2mQxd3yrCXm+HeJJ5)xG~<>?eDIIGrb2G?ws(?34a~v!zZG?U z+gMBgV;D~R=P+Ck*0cAzTpA6_{-IY1oxRUqez_OlV83a7*lr`Q7QEUeTjjwY7E|y3 z{jwQ{Uu~m$2$tvu?25&s^%HzfCBHNn$R(_$=3;7`?TXI^CQKk|DFhZ~XDO@eGIj-2 zsIAQ2qbU`bB69so7%!e3J@Xb*zV`5`5m}53%a4M^pyF)e9+Bs&x}o^D&cx}_`lFSe zFMki`rijJsx}Ep!rb9^otNN{h>zqlh$&Uy$(#iTT3AwJg!)M7{MM74-+g3+cp^~dn zGsX=4dBnpAR)@*qp6)vFv?v(37(r7E|L!X~0 zgf{G8a1^OkcpM!CeIj5O%c|||jhz{0I+NZD?Xr{@^*b3~e|Aa~8LwV|nx7-DSF(~p z5ErC!NZ`ENU^=5@UvBvzj655=%Q*YhB(y{C1hY&=!7w21ndZtu1>o84@(r4N^{wRJ zNSuU!=LpyN4fL!VwNv>iza&m5BoQ#`cPl_ZQ2-Jqj1Uw7p-vp(K)9%g2n2yd75W8G zFVu(segGL`U}66eK(e>HZS3H$EY0LSQ2dCq054g_E`Qb+Wr*}1QR^=TgXQB~&Yp|0E_?qd%)#aEz}FnRd#5E8s!7LA7wsK! z`QI2^d|`a;9F-4mw^v~#&UfEHS8}aGA8b^dw&~b!8rDK-1tp$M6{?t{`c8W3r)zr zQPQ&;DqPV&!S-fGd=GD=d%naPTo7ZOB{BRq=gG*H;Xzl7i(~LI7M)+4-a{srM827f zo#38N0R5fSt(El^>6_%>jP#85W-J^J|FETA3SWjCwT^;$io%yC50TuLT60hpIlyx= zvwY$2IzW&0DF@-wxOkdFwg(^O6=J8O9h0Zi-(vb_N~5E#20tDQ@ltF{W2dvc<8;l+ z9FLq`1Y|Dj%6jl(h7OfX-8GsG42r7w*!2#bJ~BF2;?~E62NgdQs-inPL~{n72PP0; zr77V$5Snm&@X^R$`7%++&qqIi*4Y+r`J?+HE&jgiXk|hYR!4?|0NjRU{W*#GRIZj4 zo!(i8ccq`67JrY*?U^qFT>_d`*nt_Xg7v-l*&Au>X2n}UmqaRT)q=m{eZSMj;8?~< z-isRO`YFG9pU8cIt~YeZEdkeKt%P z*Y`O$jfci~Y~W&UTl=wdECDP|KIaSKaeaOF=*urOCG&4M@Qc9~MO(JRO9l_-r??aG zits;_9^BI3o}cON_l>>X^wQ2mzovM5u=}fn8ZDW9ZEUjDDc{1~O@+AA{gnCBm|jFc zZ%WP7=JKpKzHSf0fnkCq!|k>j9=%k9505@Pdd{Lh#QcIHsccMMj8lRsU*3aWQ35D~ zB}FbF27QGeeb-)t#eJlIO(<}FQb<-mkQNohZe=K&8Osw%pD)DG{@d$H~ z&fb!7;jP`)$>s`cSDkRyixffOZhNkQ*Lc~QXIo2|wg$k$W){bnk-cgeF$?@oT)s%R zo@Mi1M*oq>s7deUP&b6@NKdg@_Wf^*rn(ke$3v4*Q7^5fTFkQ%DFc9Af5itMIOO0g zwrj%i9h*aOP3PyVNrNAQFyu80U={6lEPd#*qsP1!o%9rHu*&o0+qLt9w`Y2opVR}%Uz7Tl{B0`^NgmCY#1{7Ku)#Rj8;xWY7dC}U!yuD|e;nVT zo&4}N5|JP&DU)SGMy^crG2uGja zU<~EH<>MSIyuxcvt@{b}dU(44I=W?S)cBX{oX8CbccCUJXNy-fnmAm!3fpdT<#mGl zRJ)OF<;i@gMXY5i!N>6K)sgfejwq3m6mBkxqXx2rLFu4UZ^=7LnL`|}v2GcgD%nw| z@NejN%|5|M@65szN~$;14sgKA2%NOfnwM#W+Z9b*0BHB}KwgHoYzVUJNuEkF2UI27 z^FBOuT-_N#<-uJ>I;WQpl3TAyI;9#;C5w$@!lM)_^f-Z&Xgk2Ap zjpPm%(LC=2cAa{yotiXC{XS*#XW{A-VRotc?##y@6z(URS(D8gICFnZPvOlTsA_(b z^vv3eeL)YeS0n2PP@u8YZlO^`y;f5pOa_XvS8=S2W>AH^YIg6 zeq%`yu-~Z3OQopmWTNWvKjoJtMIi}*5io(D>k0nZttpK9^Rq_^27)7mQO9AZBWW-K zEcEA(HvOM1y?n#!s1Y|3ES(RciUbdW+)C9CR&KEaRPg(Y*h9jazyYa?7N_&~Ke@g& zCqAt?X7+mI*6_+TY9(i;9>AVJ{pLeFA-l@pvt(J7sZoi1_&|q()m_CJM7V@0fuO^y zr(8YR3Vcmg7yK(KZ`*~#uBWwoBI?gg<`_KaB1kn#Q8=)B%CgPMw9S3vI@41WsE2V~q8&Jf_e z2RNk(hRKVahM^kZ7>^g8&%(cWOxC=NFoj>vkaXp6c_0<_mfu`1zZoN*qy3ej&; zHB#~}Se3QPtEb<39I(8(KpUo#;dblK#`3XDWVyG)HsMtLkf@o zw1_6tT(CL4kySVF{$}C4bLG3Dn|nZx-|K4+_Zt6mfe!T4^Lt@sG3PCF4{PRzjiXer zm1924R;+o6*)%2IV`{F$Jts@OO{z7+d>co{NZ=);aqa{*%KgcJ9tupU-1Vm{b0&&>z&UIIhz!f zQXctn&hWP%tazYe$FT2vf3>qPHuH}1{Oa+|KmMh3%XimzZ2RV;#v6@a<&^G8nq5?R zWyPV*pN~HrcY69o&&p%{7UhiHQ1<+)#>#J~>oY!x8{9K}%uC&#Khood*yW|$LQ|K& zv-NMM7j|g>MO}W6ZYASeBJXRu`Pfq>Z(YmFd#$SK`t93uXC-6^qdz;g@Om<9FZsDeBbPoK&*#u{(Fg4TPJcwCR;g zV0bw3X$Jgta1n6A+?<1}sNLpra8OB?+wNwZtUY+S{7pGC4^3 z7Bl+F+h0C1A^Mqnzu){;%?W7BIkNT3+V75BIodSq=<%wA#O{2^g^=R6=gf%c*AO}C zjcNS15!-9$h89LQpWE&!{^M=S(q^Si+Folpxg+|?;YDvaueDzkKlI##xf3Tm6SF0} zY+1WCy+*wD^(WQcPapfRB)YVDSA5C1D`{_rH*{V#`9m(b`gmgF%1SY1bZykA4uh>n ztLto!mrn~h_~NPoyS7%>KlO6cC-D;oan;ua<^ZiqpbQ4zGQ< z^OW!p*~C7{tKV|{c&p3W3(pNXUbE-!O9^vBPIM@{L>?L#z^y-;mJlav;+AQ)e$`9XPD*Lm+py|_A0Sj??k^wb^o2Zq!SShe(x#~jAhCi6T3~p)V1setaPlx%SkA*R6eqyx?{Px^l!I;K5#2jDCPBMd zRmepXLfpIwAzka@Z}bHb(xwptNLCl?2D2sypGRpIEx@}z!Nt%vFly3}QtPC7isNi; z7{|+1nSs!IvV(OcFY*?IB-@J8kecuh~d6xB-j-G(LnX0H?%}Gr8UZwPd09I); z4E&W^+4wb&(07A0Y17C9B+3rve;T~LlwIIyMsQf+O^VIw;9WE)^6-n`w6*2(^~!U4 zF7Dr#yl2Gz(GMT|`+)<=(6BbXHoPn#Or2pIqwcIL=G;@gN6vJXu?7njdmCtOgzB{Z zXbSG(OzhQyy(@AS1D3RD3Jypx3ATC|m@H6?gYsDIZWf*+-K=PJ^1MKa0!K?Wbor_& zRYA9R@Hf&EW_)NhB^2!@O4vDKonsu7Puesk1SE%zg(ou)G%-+|-9g)Eh86`k&xxWH zjMYxg%?j{K@Dj>n_E&E{G*J=WW1=F9CfC%=hH6NgrXqj@jT>&ao2EQYXjO3wcG}K} z95|>rXi{}M1o$`s*Ie%l3By6h<9pR_)hsg)&hMo0%~*Y{2ECHmHQOX{rH8 zG;0$XD@RGq%oHQiZWr9DomSpubAu}nIxOuXB(n!Ut9(sy*lr*bQdytv33cEHe6_68 zAdo3-8mWNffrbl#V%&_Cw^^MIE6cK?%f&!jpu+{%Upw?gvb^`jMDPP|r6rRe-q-vTw)N!mAcLCMUB=oNE6NR&2>OhAI3V`xRE-42J%#e%C#5Jk7$ z3O!DCH#A5HaEM`U*2Y!AcSLb*jwX($&CCrUq4dcGJcyJwjZi>>`zJKeSm7VZ+s_Mv zG*Pp=TmmD)BMDEze}vf#V(3;`|7WdSCTe3fGuFSZNOimbb&)nrZ2$?k#zOGg{C3*5 zq$&oYa~aA~I}&tDk7li*{qE^SV!;!wg8FD@$kg82NO;-``^+)oRK$JX_Gw6cIX^W! zxuCZ0e0^!->Y9I#+TFc${kvx?u2wy^{^{K*KTv~?#D_jH?9j98#a^}_g}Yy=doFEc zjIH?n#c?;M-%lRdrW5QD>7hv4y836hsUx$pGIR6O(=v0jaxz-?O=tF=Syb?30aw`D z8(OId%1~cAT2}xmoQ_!aLVu>)x_pL=A;)yI?wfQ4GJLX7?@X*;XaESeo=D(WZmy$t z&4HR#!`9OXPPM3r&g6LM9%%`R=!K^~UdOLmGD=)iQIJ;m`nf?XMkFLic8>Hg_sp5FLc=e?1i4?j{+yJYm82iBaL=!T5^E+b#6yuWy6OL>o- zGbWtfll(*89cOzoX9q4XU)Mgna(>sCrk~2#?ykC|Rg({2>b$IS(x0zRCr77JQR}iE za)F4{l;5HV{o&FoV#bU?ZVnbFF)@RMquTn@n(>mAo}H1NpPe0i(1oPYO`NqA2x z@0#x%13caHDrr0{>4JVvkP~ z*uIr|f`JCE4CFdJ${ijA{t&qg#Hu~PQ1uU16tSzD{iup1c+6vx1K<}wrtiH(FuZ_r zaxosI@&}>4QC3ba%@Yh(UwS7(`d~?gVIjdDNdk$^g@;NTd@kbEV> zrbuF!b<)jo3}kY;k|89TU;qt9IqEnjGOk+5bTvlJqz1chBq-wW$%r~7{tvwg z{JUm!5*LTfemH-o+8=TOQfK-y>XE>GObtoi z$6C~oa!eZzl?-X~>b6)yEPYBc5`DV;J8B}b4ae=j$4P&aiY}_Tx3Qv+l2z4|Beig-WT2K(QHu^LHeL(IZLFvX-s%(g zBRTa7he~E%DHSE(r$xmkVBxrp6{Wxnd_s|&Hibhav!;}a7U`g3lc#Xp#){@b)*hiq zPJhColG#s6MW5=RVw0e7+{TKk?J7lbDiIEq%p_7OYUj|RViSsR+{TJVyHwnAoCgk- z4D(PbTC0PKjrPEC8!KuUqEaMhCE!rWqy(j+=oBp~Ha7vsZLH{4nu=R)V#J}6EsRP< zndw?oY(pcC+gQ<@ht=GYn+bARHTE7?Rmg) z8!Nhytx_c0-EpX-*bJzCQ`wIy zz0Zw#Or^+#Z@Fzn>MyM^#7pn>YHpuN8E{R0!6k9et8oz@1_ST>jmH!_K~*c+yo}ph z(z@(F0@9b^QXN#Rkr~HrtY|j4dx&RA*-MN=C7r}dMGZQrSYI)Y+gQ%3P`celK>kGzl8!M`ts8S^RbaAMpOIN8VDqo9=_3YxfjTIeMbIV>^94hIwRVs>~ zq*7$UcZ=gTR-eDpzyM?pYiv>77+7`bh^B>!ihT z8!KAMtEws6WO1mZNmi-o3msIfWfsS6tZ0KRP$gig#|Nl(iQ<5jwI@wS|L_C*ETZP|NDo({=-bhN z%Ts=JV{#%COH8l|wV)V3Ti{43ZI(TK(B31p%?KJ}YSSn1JH@;NOJU6&d1|6?b($}- xA5*dtv<%Ch?88);EX`vEoEy@RUE{|L7%q(W4jd&Y3$icV_NITMY-75P<&RXo;wQ{m1tohX6+bg4VXK zLTB^{063f$=0=XF=H^KRz`~u!0RX=K(Ej;#EY#O0hoOCBsIQ|N<&UqQ($dgS(KAz! zSJBhZRr(6XiULBnePAjMwyw4ob}TSQdwW|~LQL$vT_gE{t)XyQNx|&&>A#^K0LIbs zJRIig@{K9FWB+8jw>RWJdh-JY4Ehg95m0*uK@=Rifq#Q!3A995h#)LMAQ%EHjzEY* z!EiWKR1|7uX(a-IAz)y*7+m~s0(fHa@u+H?0fMc7!T{{xm-X!@4?Dc`?uAP!G;%F4 z`|5q+@^;HZx`F^JKBS6&mg^UuaL9k)sc8yi0irmf+b=v(NFb0nNX!x;42L2hU?|v9 zLpyYP)GA<8=_es$elEc84;QT+M&MKz%1e^9OUPA9tn z3JcwSQ4NJ846%X>TSCC1Fo+1sL&PC)xCla61cZPKTUm)&LWNP9ih~ZMn)z4Nu5S5U znQQFmIcDb9)vo_Q%C9eK{=|n8ftLU*CNjMLK+_U_K$;sU@vqoaSNotSqT4StQAk!m zAPfcri@`-92sq421S|qUSiqqo7GffB7|2S@$_gd|7yC*RJvhG^AWtl{))uYPKv9S# zx3YStrn=S{Zq0UqW|gwpNnUP^))sYr@vfS&camt@by&qIja)@3@MI2%|<2fv^Apq2j3V6GZ?aR#xI7U`wbtL<}kn zw}8UIRtFhUQ4ttW6bJ+f>)?N-I&inS%X;O_MUOV)3wLh56>7*)DUKRd?cCuH$x;;( zDoeE(Ka>v2*IF1iR=r~evCSWQb=QMTvO({xQFN?fY;rAf@ctD1X5IZC2E(kx!Qv3Gus8@IZh^2A7X^Vt|Lz$~ZNh|?fy9Tj=Tax5PC&1E5^F^_ zYKMynlvjp&7#JTrNgG!uE}8^~6?0e5-KNx$G9kteGbWrhbE53th)(EO#8z?7ABbN1 z;1d*n*Rn_n7-h1UoLK(3>lE2z89Fw%U2XokIEY&PhgnlnHg9Ku(godq(FTPi4uiw3 zEI<$u3#gc=u&5Pk9}xzNKt7BJ`mCd56U<@fo(-Pxta-z&h~+NG)?*n`u1C|`jiDZhcZ*x~R=+H|9%O|I`( zQ$O)n6@M|IIWb-jz^A$z9!nn!Su$H4`RLQQ(^-98&}HLJhV=UCApq+-*ZMA_f9@r= z4hYBHz2vVG;GgaS1|QH}&`26;XC1;(u7YmAxC;siEGh;TMSwtJ;xMR%B|;1#1{H(D zEKt&mh=^N)P)-CB7YF}c=fX}|!df7?jLr*a!%}dptwvlxs6@{>^`G-< zwM0)`$}iX3xAkHNQG!@SZLgCi*RzP%N-(9M$BKmm`W0ckmnQq&2*k95itmnf<*1bH z4#+>(Be=yk5f8K;1+>QMhM@#Rw_ij=Az4AifN+Q~2r32viJ?Ll7!+m+g+UQOQA1ZjI*#i2z*d)$<=()BZR zj`1i-w!{)d9m^7=CK#-6&_{FA6mevcg zOO{q@vThxk3tv26%#FY()S(Pk4LzmIb~e)TZ8I#_=oR(gn^;|~a*k*TsZccW0ch{Z zx}7JSiUj~jVgmq#KjI@>2P?SePme&K5%z`jF7Jq)5$5LR*p`X6gK*tQKU^BgK9Zdl z{P`p$9i4a(J&q?r7$_=eVQ%h6P(ysdY?Rnj@MM{IH-LJK+3t+^vj6l^P(=>zTRV_A}^8`UVl~-w(VVnRm6Uf zZWC^%rsY_i<3!BP8%)nF(sIqxOy?}%1@cH{;%grh{O}?(=_%s3yB=J-*71p{>3Jv) z72wUM?8dDUdilGXFSP=OL6jZo^>vX>KQ(PKb#fA)$6ewPP*&kr z(ZCv_JTkpNnBzsSPDT94=aD9z-vGt-*4lQI$Ygf;jP#|Yd7@})bCuu5=-kg_oVy}YZc0DdN>3`Z^4+?1tj}%M`rJcSO>9+0 z`@`mP*M~xCUN~cg#ZtYBVLuu~W%;2emSL$k-e|H~y2e+) zFyjs5pLHO^;NT2L{9BA~XX*WdQvV8M1GljHH{9>FW&9JIy@iV_-1+~r(BBB5H%Ul1 z-Z5#Eqo|rXot);Vt z1Iz~geT2|m`0Gx+ALr)`I?!&vD~g9?2WufpkQG#;_%X^~G2ossJ2$Iu(b^vlp#l-; z&6i4kBi%AH{LY}e(8D9f7jc{@Ml!&$)7Pg%1|zH?3CmZSs*?zBQVb5-z<9E44LJ!f zWNJC~$wZJY3EJDbHC|W-SKmcKp3sT#$Wl?`4mAf=-pRtwvYu;Jvs3%fh(+i!0a?Rt z(pkcua+0J@%N#Q5Y>aA7UAj!0u-<%*&^FvS__xYur zF&FDAYyy1qmWP^Wr=Glh6x9>whzKu8O**s6?j<*OXZW?vTe#bdEm% z$a6$xS&=X|%|$^qwc zg{zzzNfu*3{!;EKY9GX-v5}xFs&V|hRatAQiC=`DdW;PimE@&6_1_@zj^Ms?)X3nx z{X~6o!TG7|JN%?4fh|Qr9R4ifN1t;thH~ea%87ZBs(xx=7EOG_Etp%zgwu2nLQ`h( zg*>)huF+`VA~u`uT;hYsSF$8$*4Vn*3BAnko$&%iWUnj*l_~O%@kz~-MQ-XO#wI+I zzqFF0#U&a=9w4#+_0Zfjx`ikYumUl*e~xL7up1i%dbQs&ynQmepmP73K%9Qhp_(mAgl=&>n6QDOm!?Wq0*HGnUktN=SJ)56jn&)0%I;OPs zc9EB=x?AR`uG;ZQ{QKS!LH>zxvC1(J8IE@>9%TO5;4|;NPxDaM%6y4`ogfQ--652! zrWN{G_qkJ+@iLq|EOq+PU82AZLG#NIM9-(67G`*OtkN?#@F{dXP0`&EQ@w@Ityb{o z|L8+CTEaOv;g%zI*QREs@MHve^kPBvdWF=v%L};5_qa)(Js<7}x1 zXqYBD>BDmO7)$T)V$#Fx4Mvx1nMO3l@GL3kd$-Ox${mK`+2OfYAKtp~;(RopvVaca zwVL|^u=gEPZl1(2-9(-Lm`YiH-rMYb+rSeu_ z|3Lj66}E!anI87X8<#i==FTZ{zqlQOyUA4pbYB&!86q$z>K-cq4|g=HE~IkCl4j-& z206>}<5@di+FTobHQ?lFdV@phqwT5twSyBnjU`3zo*atP9dZq}e%t0p4%#Y*ZQ^4S z={S8__bMT)^9YGMR?q%;b0id@KF(krZQq&iQ#BX@G&X`*GP>gW9 zob5*PIV;T~H(fIR zWKk6nfQ5qzl~Frzh~%`ISA{P`k(edXprq(Zp>P4if=mVrpFXGV3;svCiM==dbga1- z-Dly|Lo)Xed^gMp)2v^*`Exk&k$~la#mCN4-AvE)e<2qcKBAKffG~l$QiT|&%&)5D zEi&JT)3+AH&%Kr_Eazw(PQXl6kR-&;aN?SOSjB1mr7#DYVgH0IiYV;v*OY2Bq(cU(4oQ+MEGtM??~JA(d>0f=3otp zff<^b5CqFJVn*}3P?D8YU1nqUUMl6e_KVL|c@-&oh}cg#t$n&?C!x$0tqDl!#ie38 zM7^{gVI#g{q-P@IQIThFFJ5!q=d^{%Qjm~&qWY>3DaEtM4s5Rv9iG-3PA|O)8S!$8 zqGX;UB=7?9q!^3XlQSs`Gi$^#0`>u#==9S`IaZabL-OR?P zCS2O^n$U@BnHGAAwHgVd0Y9GIxq0E%Bp!C^mPz-JY4%WOiKJ*+-c|&w{pVcTC?4xH z$IlmcLhq?nAUV^eGl^Y6o0ZK;;hQ^0o`It~QlqjgLKEzI@teY+i5mH@z>N$i0c;Dwf?MlBB_$sabh`<%c=^ zma4{K$($=Q`gCH8;~BdrW_08+|FM;P19f7)jCw5F7c_i(;S#WSu|7c1;2Ue^*axI) z$Vkz0Qs(Q`*SPsUv{W^aZICF=a6^86niCRMR^MqC@-ENEqloDaHRrn{3NJRkbV@cc zKW!#G4KI&u?4i3(xT;ZVa_V;3laP*xrK72ern-J)29(aD<-J)w)J6~V^-8B(Dza^F zKYJxHc~vXq7F|^DK=)M^^?{0zJ`Uz)qF27)ozIJZsK-swLy=I4i`|Mqi@f!$W7mn%i||{-!*j{8 zNg6kg4IQgET@%=KomeW7wLt*F<1|5T(ovFr|8kc32|b^?N)0${_V(05$J49NJgF5v zDQ`UbW_%u}2+YMT2{9JmKL*L0k_7T3b z)1lE;pS$RMlZv+>e6eQ-KUj+r-YqhFQaiijeXaJhiNe$DaZG2T#eV$cI_m1>1ug)< z{!0Xkv_M6n|H-M`bWL3PfaE@$PbZ^68q)kJwdW+>sPho726uL^B--8`v_7X7W2|y3 zz9njo9m>kY5{EYvKRPlZ2`_HT?ay809AXb7BKfFW;1%3W{{c|+;K9ZO$tsPv1%*$D zcG7^Vm-ek->JwZ>{P^BH@wE(zUC)dvH7;4Mu=~>L7!{DKQ+7q@`Kx-q4kDtijVd?} zBaP5$J;~8{IbS$GM$yscNYK6GHnY!?YV-{O?Ny>U1DiGLjjYPFoHfanTSQD}DBknN zDB&=$Ca8h%yA?l}*^r0}ZA~}_EDy>qS=tsfRfd{&<|oj!iF1!0syxcC$Y{xtgbJI+ z-pkh;6u}$Vfp$n1x7@=bmoL*e#l9=fnszfVw9=u-;!YW&-5tsci z?0($4UzMMf@8;sDKHcq2)@;jLWp)e`C$Bw=!+R!hyt-dh31HXvSt>e*1B`f?6skoB z?mc`r&>ps)BN-HtKqsf)-;vo@0yK=`!R|!G!lK}9_ozT5)ANxxPL~>4!|flBB6MC* zk-cozhjnQ5A%}T6+=wTFR~{xLbjwdw>s_U4NXRl|<&ZN|bIP}7vx{JDJ5NPr$e|2L zdD4;hmJTZ7Z{_MI!*$si36?5jF2oiL&-DaoVk3&G1wh;`nWqk)O-f*4$HbiRZ(&y;F5>Jf`Wo)}FdMf18xCqK{ zbsbt@J9RrL@-Y8;c-@BvStoG;Gb>l@@TmtG!97M^9M6t1-5cT2De3ooe7N9*mwdjv zA9GvWKBwmZ-Zs98T0PGn{$&M4AG^Le`~g-_dp!%s5it4o(e0~uDcMQPhaz7cR(XyK ztfnF&w|mB5er(t>v;Jm-0^6C`2UFRDj^oEUs))KBvpuW5-;P#E_<;mUlQwxJIwNgu zL(Sy-o~tL6bxo_~jmXsWUP;rJ7}jTtUS}s9$=x}mYn!4N^2|Aam`~>gfBs;PO<^4p zl3hqjO|Mp4San5Xg)%$uyjku86M=U(%vP-M#XdpY6Me|DPDxS^X5D*RdNvNoKKy*> zxh=&FhIP||q*A%a8?u=)xO0K_JbK=tarN(7jxg$6w!Hm}osBN8t{Cz0rfYSH=y|3& z9DkKWTZNdIDUC70xuo|#FMmAG*_QWj@*Hf98 z`T~1o!@XqOPMzjcIAt~6sKMw?brdu-c}%b_>SXxj`7fG@*TXNKHFkCqKwJm;RdDww zR9B~)ndAptbdo%0rD{E~nQ3EP#jb1>G&X48>;B1UZ6*4K;#m60kn}A@nZ9gVmWPpC zXT5?TwbzZt)2rW%oR2p>Ptgj_PcFMM zPw97hY1s<|JSbun1;;Al4K?F>!^*bkm(0l97zYVdGCfYU4joQZXO4;OTO7R9RJeA+ zup*_~j5wpLY=G5-N2if2Mza}5D=C@^S^G>6n2D44CEbTlbuj-3Y1f1@R*=lR_lv_O zYTSqOe6o95_+%AVXA>25dMJFe`ubi6j@wV1vRyFexqDk?);f|p?M<{vCJ7EzDPG^{ z`%}V?2VS)|vByY%^nJrpc9fDT=lKa>cUh$1gVmnrHh1#Ehm!Ja=S-46PINX+m+{1L zP*xPDA*=B&Q;-4`gJn-)<>*YD8qU#fF)b!RXsvg14p9W)tSu}1b$&P31^^;IUPzeH%RH}0e}QAiejF_n@UD`J~B?j7Q4-PwMB(Oq%e_S|XHbR~N0 zI%ISbaT{`KiXjG zLD}*nN4qxgviybS>{1EOfhH?kg7xI%iW{GG97@N#dMq9x<@_Oa#!`&eU`F}xs2Z+= zy&&mqCm(gitmqp{)p6iIY!S)c>3F4e7)atslM7Wnw>H_N7)mUDW<;OCUM+E!JM-Aa zx|Vj~X{39QOLQmKQ@*T4i-3*M&a#-TBi`vU%wCsl9MY|KurPPKu4n4l1gOyIHmb4w zvfBw*Adz+#kru8nn*&V#GtuWXafFE#c1o_Qowy?tt-qx&7a)1hzrDXtUY%2CX&$G3 z?AtXrog{4SzefmEv)6x5r;*STzb(>{jRu7gZ3|6dJ(;1 z^Hauc_i|%DSJf9?J8MDP;Dl5cp}t8%`##)$xh(s}W4fTkW_w&vd@E3G-1s_2n2=r;`^)wDLHT5=`>u_xb7Ukvd@PYSmim~P|*?tDF8r+ zN$|kj3Jr7|*&yV8h)WGG18V)vReCF?mEAP@7npg^*e~awP(ZwU;6Rg7r19`^`Of2v zHztE7;>z)v%EIN=vnffA2=$FoE6!>8JXy%=UL}<+zH>z)n)#=ra;A(6i0Ktd)ElBo z6V+AWH(t4j*k$pw48%SZJxS|KAzLTVCUUfskdU@kyAvju{?W5xvMCx|n^XV3!Ha;x zH@Hv!0S8ywgYf&Uvwp0f8vP#`bhjg(S)R^f%A}A_4H{7ilGLRtGH{V0JkI5Q*NTnC z@Y*OI5nujsfNn}MjyOwYg%?5BXC%?EQ7a|zH@8;d~m)Rmdz#Y9NFX)P`@w0xp`e%<1-$h*a3wW=#* ziAWq*o~UCuG2I!WUlc9gUf0?n^T_Zcn{O*qU=JjX(v9y(3s-uQ$gFmDsVGNa<>BGu zg!8jY502z)Xq(;^v%evFyyEJ>@bkA`WpbXXft@!7#;IyXyE!etpeav@5b^WFBh4KjlrGjO~!uJy=RH~fRz2Dkj2p{DUG`i!H z*F+p3S)LJFG|q%;AHW>rU}it4_)e+|D3};9(uq_>dOMlp%rz^8wW{zUN8<=PSPf?u zgqRtt4n;7yNzC>?{aE!B_BzL1`Y5h&-_a1U8gd2dpp4v^nri*CucE)?lC!~EL+V(! zXB!siw(6CW)_pHmy>~!7b@63Fc1#N3rApi~bc$e#zHgOO_|nBEoBP3z;%hhG{s(*v zuQ+c-ah1zda(`@e5hLl!_(UN2#v?x6(*8_;^P4DU{?hyk>J{}5v$9Di5RIK{_w!fC zj&`--8zhL`AwFS2yF}W#TCbVjf}Bn}6)$1Z-sA+6vDD4ug^-=8TiDhusvJ#=+(8z) z7Mk#}J`TLjY4#yGF3m{pZBN{=zEb}ML#CnXiE1e0J%g#MT^=SMtmU&Dap2ZRD@kxt z8k3)_GDVFJ7FMQp@Z&$SB$5eruT))kB_D{K(LU}VB`M{=A>dQLkTv*xyhY~a8Ok2A z8Cp*ts@%KgMEBEPoM^Sb57F)&qW?5EMw#vftv%~>)dBy^wrI?S_NKNJ(1mT8^RE=2 z9+|JBUcG`> z=$}Aino&!*jdiOmZ7@Yd=+(%%S8GD~?$sKR83a|<0~Y?L8cMk~Xr7dpK53oLYWl20 z6YZ}$lK<{%FO6&@tIqgN&sd=t*Tz&M$xFV~r%L(YUJ~}x1fR^L%6V8-tFr6Ds(S3^ zm`7=hFZ6En=XCRo6)o3ZT#?3Hr*Q|P?x&#+e)5M9G7>xqX-#VJa3@z*kOntRu5pUS`9%)DocWvmLj zcjZ0B)xt>JCay!xoY{CxvMqpw+J(q~Y`K-e%24v`Yrf)FV#(F)QkA0Dg?a5Ocyi@S zj~nv33}}O$=vrO{Mq(XiqE^1wDVWh+MG^l5)R`Fpo#36t{TM78tG;OlUnaQnNUW0% zf;`Xl*e-@W=tF$DVVyIi$r3!3Ri~J zrq2CWz7s;RDg%oqCNtP)XDfWe!DnO2CW}pz`PW)w3k$Ce59Pb*RXE$HRI918e@dsf zio2onx~kL0NSE`0F_pARVR=|0-q`RGO#K{Z3)MrOz-N&u_z z6d?C{`RS(lE4o7doPH0Y17Ewg2`=S#FB@JVcc?U)Wz8d^W$S9mxSV)(>kv}Qq0B3C z%qC{l22!`CBit5oO(tN}|y>UW(Q}&%wL53Q2MI0-YF2A$; zyLSA7_`vY%*4ot`j|<6K-)Zx^7fQ^Az$$$eT5}8zKTiVf^a@bhZs=_t#&q~#t&aq> zsJL(J*Vu12?mOVs*_mh)bnF*2?m`$>#7mw-U97B(#1o8mc${+klkQTkKxoxesogo# zrYXlp)0c%1slt~0V54W=*e3@Ku>;yJ;`JMt(TSgWdv6>|B1o#~HN6}&D_aZ`#o#iq zW|kZGoT@lY+vC8jS$zFaPNQRp4+~VQuV!(t=iN)tlU7fgh4 zW+>LAfzAsKoNH7&BrS7%u)crc$eeSZ`=J-|S|k*5V^ig4o%q5bAszKKA&&}f#Ev%W z4qiN=lb(5%Y9}6H&+YqoOrBv)HJ|!gItlbtv#!n@anj?3WmC?8PofR_a==?q_)yvr z8{c(sccA{YdUMjuDk8Z$XP&6KFHZ-3rKJ~^HFj>(t`VUH|CXq*|AqADyY+6e1Ns^B zHyInd82ghQem>^!d7Ay1lJM78bTkshjT|2yR7{F)G(Xn6JxKdf9Db8?1O^{0lkG1L z#Xl22z8ZG5_>l#J*5aQGP#ypI`I%4P>?{DYKqVCXGhc7_(HSBJsL?_p8Kc_Imur}# z1H#t&XKuuAGM&X*Ye+7$5FhFWslUP(oM3M}m0))2G{0?4{hNlsrt8&f+I2L6S$F1c zt=}`sa<4nNC??Q%6vtY&CnyWSB)nvG>_&Zvyw(w6WN{e7mZOli8WuJ)&Ywy|=)N;0 z2W-ot|M|UOHmQIT2XQ^RLpvkAKbA3 z?EWslK|N@7$-!*@&>8(VCL;<|1cSloYwgIvP%$e<_A)y68`Oi=k^I~C{&zd=1{?a0Aw|Cx~>>JW~> z=xb@nzfsYNyO@O`dl`BD2KAt2A}HIxSvdEP5oV#rUfWivSbRUDgO+U^jQ5|_R7Tx} zW7z&$PVsL>Xf-j5DfTjo{SE3tODq0ud;gk@xi(m#600y6eJz4Gm`<1_5PKOF{RZ`* z1rY~hgju(+*R~t}uZ#{_#qe+5e_xlB2=>|jo`HzM{XeZsar<$<)*k%3x9G9QtUTDO z)aY+e4;H;0WS2$z{GVsiAS$TA@Vl>t0RJ9)G%98pz+OgdM8BdQv?${W;mbB`nWj`uwe{BL->{lm-x|JJ|nVIAr!_N(H1a>DdpE!3BOeTI@1!EaP_pj_+>a#WzX9&j#!Nxp?ccUP9V#jL z>kRl~Lh`{ZVCF0BwV=U>Vc|E4CI_>CnZ&Z!LNXJE1=P*vpHf;5W(hNMV6UYpmi?CY z=Mfyt0_GFtUJIe@zgXD4xcd2Ec`z%OuXKB@EOKC4`OTZ%!AxMjlkGLp&WT}S->ccd z&@r#C_oBz~VW9tVnSC&P%-h1f_(7=OsIX^R><$6O-QnM?{OOA9n-%mCcUyK%=)0BO zo#!9x?EdWxGZ==Vem}z3Uhlc`I!LI4M#a23+ts4fKkzrG2ib3auK?x-yoG`N{jTia zvhJ4wbGuOx{vpHey%`Ggk9R-2>m=r_* - 4.0.0 - module_a1 - jar - Sub-module A1 - - - com.sonarsource.it.samples - module_a - 1.0-SNAPSHOT - - - \ No newline at end of file diff --git a/tests/projects/shared/multi-modules-sample/module_a/module_a1/src/main/java/com/sonar/it/samples/modules/a1/HelloA1.java b/tests/projects/shared/multi-modules-sample/module_a/module_a1/src/main/java/com/sonar/it/samples/modules/a1/HelloA1.java deleted file mode 100644 index 7471eaf64a9..00000000000 --- a/tests/projects/shared/multi-modules-sample/module_a/module_a1/src/main/java/com/sonar/it/samples/modules/a1/HelloA1.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } - - protected String getHello() { - return "hello"; - } -} \ No newline at end of file diff --git a/tests/projects/shared/multi-modules-sample/module_a/module_a2/pom.xml b/tests/projects/shared/multi-modules-sample/module_a/module_a2/pom.xml deleted file mode 100644 index c9bc3ce46db..00000000000 --- a/tests/projects/shared/multi-modules-sample/module_a/module_a2/pom.xml +++ /dev/null @@ -1,13 +0,0 @@ - - 4.0.0 - module_a2 - jar - Sub-module A2 - - - com.sonarsource.it.samples - module_a - 1.0-SNAPSHOT - - \ No newline at end of file diff --git a/tests/projects/shared/multi-modules-sample/module_a/module_a2/src/main/java/com/sonar/it/samples/modules/a2/HelloA2.java b/tests/projects/shared/multi-modules-sample/module_a/module_a2/src/main/java/com/sonar/it/samples/modules/a2/HelloA2.java deleted file mode 100644 index 3d767d9500a..00000000000 --- a/tests/projects/shared/multi-modules-sample/module_a/module_a2/src/main/java/com/sonar/it/samples/modules/a2/HelloA2.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - private int i; - private HelloA2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/shared/multi-modules-sample/module_a/pom.xml b/tests/projects/shared/multi-modules-sample/module_a/pom.xml deleted file mode 100644 index 793fbcf8420..00000000000 --- a/tests/projects/shared/multi-modules-sample/module_a/pom.xml +++ /dev/null @@ -1,17 +0,0 @@ - - 4.0.0 - module_a - pom - Module A - - - com.sonarsource.it.samples - multi-modules-sample - 1.0-SNAPSHOT - - - module_a1 - module_a2 - - \ No newline at end of file diff --git a/tests/projects/shared/multi-modules-sample/module_b/module_b1/pom.xml b/tests/projects/shared/multi-modules-sample/module_b/module_b1/pom.xml deleted file mode 100644 index dc2cc52447f..00000000000 --- a/tests/projects/shared/multi-modules-sample/module_b/module_b1/pom.xml +++ /dev/null @@ -1,14 +0,0 @@ - - 4.0.0 - module_b1 - jar - Sub-module B1 - - - com.sonarsource.it.samples - module_b - 1.0-SNAPSHOT - - - \ No newline at end of file diff --git a/tests/projects/shared/multi-modules-sample/module_b/module_b1/src/main/java/com/sonar/it/samples/modules/b1/HelloB1.java b/tests/projects/shared/multi-modules-sample/module_b/module_b1/src/main/java/com/sonar/it/samples/modules/b1/HelloB1.java deleted file mode 100644 index b83c3af128c..00000000000 --- a/tests/projects/shared/multi-modules-sample/module_b/module_b1/src/main/java/com/sonar/it/samples/modules/b1/HelloB1.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/shared/multi-modules-sample/module_b/module_b2/pom.xml b/tests/projects/shared/multi-modules-sample/module_b/module_b2/pom.xml deleted file mode 100644 index 9ed7337e659..00000000000 --- a/tests/projects/shared/multi-modules-sample/module_b/module_b2/pom.xml +++ /dev/null @@ -1,14 +0,0 @@ - - 4.0.0 - module_b2 - jar - Sub-module B2 - - - com.sonarsource.it.samples - module_b - 1.0-SNAPSHOT - - - \ No newline at end of file diff --git a/tests/projects/shared/multi-modules-sample/module_b/module_b2/src/main/java/com/sonar/it/samples/modules/b2/HelloB2.java b/tests/projects/shared/multi-modules-sample/module_b/module_b2/src/main/java/com/sonar/it/samples/modules/b2/HelloB2.java deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/tests/projects/shared/multi-modules-sample/module_b/module_b2/src/main/java/com/sonar/it/samples/modules/b2/HelloB2.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/shared/multi-modules-sample/module_b/pom.xml b/tests/projects/shared/multi-modules-sample/module_b/pom.xml deleted file mode 100644 index 2259da3ef66..00000000000 --- a/tests/projects/shared/multi-modules-sample/module_b/pom.xml +++ /dev/null @@ -1,17 +0,0 @@ - - 4.0.0 - module_b - pom - Module B - - - com.sonarsource.it.samples - multi-modules-sample - 1.0-SNAPSHOT - - - module_b1 - module_b2 - - \ No newline at end of file diff --git a/tests/projects/shared/multi-modules-sample/pom.xml b/tests/projects/shared/multi-modules-sample/pom.xml deleted file mode 100644 index 21db9df608a..00000000000 --- a/tests/projects/shared/multi-modules-sample/pom.xml +++ /dev/null @@ -1,28 +0,0 @@ - - 4.0.0 - com.sonarsource.it.samples - multi-modules-sample - 1.0-SNAPSHOT - pom - Sonar :: Integration Tests :: Multi-modules Sample - - - module_a - module_b - - - - - junit - junit - 3.8.1 - test - - - - - - java - - diff --git a/tests/projects/shared/multi-modules-sample/sonar-project.properties b/tests/projects/shared/multi-modules-sample/sonar-project.properties deleted file mode 100644 index 9e2528c95b9..00000000000 --- a/tests/projects/shared/multi-modules-sample/sonar-project.properties +++ /dev/null @@ -1,16 +0,0 @@ -sonar.projectKey=multi-modules-sample -sonar.projectName=Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/java -sonar.language=java - -sonar.modules=module_a,module_b -module_a.sonar.projectName=Module A -module_a.sonar.modules=module_a1,module_a2 -module_a.module_a1.sonar.projectName=Sub-module A1 -module_a.module_a2.sonar.projectName=Sub-module A2 -module_b.sonar.projectName=Module B -module_b.sonar.modules=module_b1,module_b2 -module_b.module_b1.sonar.projectName=Sub-module B1 -module_b.module_b2.sonar.projectName=Sub-module B2 - diff --git a/tests/projects/shared/xoo-history-v1/sonar-project.properties b/tests/projects/shared/xoo-history-v1/sonar-project.properties deleted file mode 100644 index ede32ccb043..00000000000 --- a/tests/projects/shared/xoo-history-v1/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=0.9-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/shared/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo b/tests/projects/shared/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/tests/projects/shared/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/shared/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures b/tests/projects/shared/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/tests/projects/shared/xoo-history-v1/src/main/xoo/sample/ClassToModify.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/tests/projects/shared/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo b/tests/projects/shared/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/tests/projects/shared/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/shared/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures b/tests/projects/shared/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/tests/projects/shared/xoo-history-v1/src/main/xoo/sample/UnchangedClass.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/tests/projects/shared/xoo-history-v2/sonar-project.properties b/tests/projects/shared/xoo-history-v2/sonar-project.properties deleted file mode 100644 index e01f062e51b..00000000000 --- a/tests/projects/shared/xoo-history-v2/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo b/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo deleted file mode 100644 index b0fd1087030..00000000000 --- a/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassAdded { - - public ClassAdded(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures b/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassAdded.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo b/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo deleted file mode 100644 index 393111bbab0..00000000000 --- a/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - public String addedMethod() { - return "This method was added in v2"; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures b/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures deleted file mode 100644 index 5de11af72ed..00000000000 --- a/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/ClassToModify.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:16 -classes:1 -complexity:5 -complexity_in_classes:4 diff --git a/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo b/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo deleted file mode 100644 index 2b0288fc971..00000000000 --- a/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class ClassToModify { - - public ClassToModify(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures b/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures deleted file mode 100644 index 0861ac725c3..00000000000 --- a/tests/projects/shared/xoo-history-v2/src/main/xoo/sample/UnchangedClass.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -complexity_in_classes:3 diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/.scannerwork/.sonar_lock b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/.scannerwork/.sonar_lock deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/.scannerwork/report-task.txt b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/.scannerwork/report-task.txt deleted file mode 100644 index abc19fd381e..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/.scannerwork/report-task.txt +++ /dev/null @@ -1,6 +0,0 @@ -projectKey=com.sonarsource.it.samples:multi-modules-sample -serverUrl=http://localhost:9000 -serverVersion=6.6-SNAPSHOT -dashboardUrl=http://localhost:9000/dashboard/index/com.sonarsource.it.samples:multi-modules-sample -ceTaskId=AV2ZBK0ixJXLis3IozUo -ceTaskUrl=http://localhost:9000/api/ce/task?id=AV2ZBK0ixJXLis3IozUo diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/sonar-project.properties b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -} \ No newline at end of file diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index 7812e4167fb..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/sonar-project.properties b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 796d90cfad5..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,20 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - - public HelloA2(int i) { - int j = i++; - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index 63df5add6d4..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:15 -classes:1 diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/sonar-project.properties b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/sonar-project.properties b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index 3947d3bdbff..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,2 +0,0 @@ -ncloc:12 -classes:1 \ No newline at end of file diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/sonar-project.properties b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/sonar-project.properties deleted file mode 100644 index 7bc39b44133..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/module_b/sonar-project.properties +++ /dev/null @@ -1,3 +0,0 @@ -sonar.projectKey=module_b - -sonar.modules=module_b1,module_b2 diff --git a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/sonar-project.properties b/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/sonar-project.properties deleted file mode 100644 index 074304998f5..00000000000 --- a/tests/projects/shared/xoo-multi-module-sample-without-project-name-version/sonar-project.properties +++ /dev/null @@ -1,10 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a1/sonar-project.properties b/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a1/sonar-project.properties deleted file mode 100644 index a081a0e6342..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A1 diff --git a/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo b/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo deleted file mode 100644 index 74d29a4fa08..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package com.sonar.it.samples.modules.a1; - -public class HelloA1 { - private int i; - private HelloA1() { - - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - protected String getHello() { - return "hello"; - } -} \ No newline at end of file diff --git a/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures b/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures deleted file mode 100644 index f3953ccd0fe..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a1/src/main/xoo/com/sonar/it/samples/modules/a1/HelloA1.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -cognitive_complexity:4 diff --git a/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a2/sonar-project.properties b/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a2/sonar-project.properties deleted file mode 100644 index fcedab83843..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module A2 diff --git a/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo b/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo deleted file mode 100644 index 796d90cfad5..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo +++ /dev/null @@ -1,20 +0,0 @@ -package com.sonar.it.samples.modules.a2; - -public class HelloA2 { - - public HelloA2(int i) { - int j = i++; - } - - public void hello() { - System.out.println("hello" + " xoo"); - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures b/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures deleted file mode 100644 index a23e10d8ab4..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/module_a/module_a2/src/main/xoo/com/sonar/it/samples/modules/a2/HelloA2.xoo.measures +++ /dev/null @@ -1,5 +0,0 @@ -ncloc:15 -classes:1 -complexity:4 -cognitive_complexity:5 - diff --git a/tests/projects/shared/xoo-multi-modules-sample/module_a/sonar-project.properties b/tests/projects/shared/xoo-multi-modules-sample/module_a/sonar-project.properties deleted file mode 100644 index 7e6ca9074a4..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A - -sonar.modules=module_a1,module_a2 diff --git a/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b1/sonar-project.properties b/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b1/sonar-project.properties deleted file mode 100644 index ca8404b7bd4..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b1/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B1 diff --git a/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo b/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures b/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures deleted file mode 100644 index f3953ccd0fe..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b1/src/main/xoo/com/sonar/it/samples/modules/b1/HelloB1.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -cognitive_complexity:4 diff --git a/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b2/sonar-project.properties b/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b2/sonar-project.properties deleted file mode 100644 index e597dab4f33..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b2/sonar-project.properties +++ /dev/null @@ -1 +0,0 @@ -sonar.projectName=Sub-module B2 diff --git a/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo b/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo deleted file mode 100644 index 20b8bb3876a..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b2; - -public class HelloB2 { - private int i; - private HelloB2() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures b/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures deleted file mode 100644 index f3953ccd0fe..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/module_b/module_b2/src/main/xoo/com/sonar/it/samples/modules/b2/HelloB2.xoo.measures +++ /dev/null @@ -1,4 +0,0 @@ -ncloc:12 -classes:1 -complexity:3 -cognitive_complexity:4 diff --git a/tests/projects/shared/xoo-multi-modules-sample/module_b/sonar-project.properties b/tests/projects/shared/xoo-multi-modules-sample/module_b/sonar-project.properties deleted file mode 100644 index 21d69f769d3..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/module_b/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_b -sonar.projectName=Module B - -sonar.modules=module_b1,module_b2 diff --git a/tests/projects/shared/xoo-multi-modules-sample/sonar-project.properties b/tests/projects/shared/xoo-multi-modules-sample/sonar-project.properties deleted file mode 100644 index 7935cb5ffb0..00000000000 --- a/tests/projects/shared/xoo-multi-modules-sample/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=com.sonarsource.it.samples:multi-modules-sample -sonar.projectName=Sonar :: Integration Tests :: Multi-modules Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a,module_b diff --git a/tests/projects/shared/xoo-precise-issues/sonar-project.properties b/tests/projects/shared/xoo-precise-issues/sonar-project.properties deleted file mode 100644 index 1a7b22bbc15..00000000000 --- a/tests/projects/shared/xoo-precise-issues/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample-multiline -sonar.projectName=Sample Multiline -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/shared/xoo-precise-issues/src/main/xoo/sample/Sample.xoo b/tests/projects/shared/xoo-precise-issues/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 56ce09970af..00000000000 --- a/tests/projects/shared/xoo-precise-issues/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j {xoo-start-issue:0}= i++{xoo-end-issue:0}; - } - - {xoo-start-issue:1}private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - }{xoo-end-issue:1} -} diff --git a/tests/projects/shared/xoo-sample-missing-some-lines/sonar-project.properties b/tests/projects/shared/xoo-sample-missing-some-lines/sonar-project.properties deleted file mode 100644 index 9e4aa0e3584..00000000000 --- a/tests/projects/shared/xoo-sample-missing-some-lines/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/shared/xoo-sample-missing-some-lines/src/main/xoo/sample/Sample.xoo b/tests/projects/shared/xoo-sample-missing-some-lines/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 4ee57fd0c2d..00000000000 --- a/tests/projects/shared/xoo-sample-missing-some-lines/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,9 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - -} diff --git a/tests/projects/shared/xoo-sample-missing-some-lines/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/shared/xoo-sample-missing-some-lines/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index a403da9abdd..00000000000 --- a/tests/projects/shared/xoo-sample-missing-some-lines/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,9 +0,0 @@ -ncloc:6 -#Used by dashboard/widgets tests -complexity:1 -complexity_in_classes:1 -cognitive_complexity:2 -classes:1 -comment_lines:2 -public_api:3 -public_undocumented_api:1 diff --git a/tests/projects/shared/xoo-sample-module-move-v1/module_a/sonar-project.properties b/tests/projects/shared/xoo-sample-module-move-v1/module_a/sonar-project.properties deleted file mode 100644 index 627ee34d167..00000000000 --- a/tests/projects/shared/xoo-sample-module-move-v1/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A -# mandatory to reproduce the problem -sonar.moduleKey=module_a diff --git a/tests/projects/shared/xoo-sample-module-move-v1/module_a/src/main/xoo/sample/Sample.xoo b/tests/projects/shared/xoo-sample-module-move-v1/module_a/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/shared/xoo-sample-module-move-v1/module_a/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/shared/xoo-sample-module-move-v1/module_a/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/shared/xoo-sample-module-move-v1/module_a/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 641332a5013..00000000000 --- a/tests/projects/shared/xoo-sample-module-move-v1/module_a/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,8 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/shared/xoo-sample-module-move-v1/sonar-project.properties b/tests/projects/shared/xoo-sample-module-move-v1/sonar-project.properties deleted file mode 100644 index 80a6207ca5c..00000000000 --- a/tests/projects/shared/xoo-sample-module-move-v1/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=module_a diff --git a/tests/projects/shared/xoo-sample-module-move-v2/new_module/module_a/sonar-project.properties b/tests/projects/shared/xoo-sample-module-move-v2/new_module/module_a/sonar-project.properties deleted file mode 100644 index 627ee34d167..00000000000 --- a/tests/projects/shared/xoo-sample-module-move-v2/new_module/module_a/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=module_a -sonar.projectName=Module A -# mandatory to reproduce the problem -sonar.moduleKey=module_a diff --git a/tests/projects/shared/xoo-sample-module-move-v2/new_module/module_a/src/main/xoo/sample/Sample.xoo b/tests/projects/shared/xoo-sample-module-move-v2/new_module/module_a/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/shared/xoo-sample-module-move-v2/new_module/module_a/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/shared/xoo-sample-module-move-v2/new_module/module_a/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/shared/xoo-sample-module-move-v2/new_module/module_a/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 641332a5013..00000000000 --- a/tests/projects/shared/xoo-sample-module-move-v2/new_module/module_a/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,8 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/shared/xoo-sample-module-move-v2/new_module/sonar-project.properties b/tests/projects/shared/xoo-sample-module-move-v2/new_module/sonar-project.properties deleted file mode 100644 index 22721e824fa..00000000000 --- a/tests/projects/shared/xoo-sample-module-move-v2/new_module/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=new_module -sonar.projectName=New Module - -sonar.modules=module_a diff --git a/tests/projects/shared/xoo-sample-module-move-v2/sonar-project.properties b/tests/projects/shared/xoo-sample-module-move-v2/sonar-project.properties deleted file mode 100644 index ce727e4ea81..00000000000 --- a/tests/projects/shared/xoo-sample-module-move-v2/sonar-project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# Root project information -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT - -sonar.language=xoo - -# Some properties that will be inherited by the modules -sonar.sources=src/main/xoo - -# List of the module identifiers -sonar.modules=new_module diff --git a/tests/projects/shared/xoo-sample-non-associated/sonar-project.properties b/tests/projects/shared/xoo-sample-non-associated/sonar-project.properties deleted file mode 100644 index 71b83e48b9f..00000000000 --- a/tests/projects/shared/xoo-sample-non-associated/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -#sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo b/tests/projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 641332a5013..00000000000 --- a/tests/projects/shared/xoo-sample-non-associated/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,8 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/shared/xoo-sample-with-root-dir/Hello.xoo b/tests/projects/shared/xoo-sample-with-root-dir/Hello.xoo deleted file mode 100644 index b83c3af128c..00000000000 --- a/tests/projects/shared/xoo-sample-with-root-dir/Hello.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package com.sonar.it.samples.modules.b1; - -public class HelloB1 { - private int i; - private HelloB1() { - - } - - public void hello() { - System.out.println("hello" + " world"); - } -} \ No newline at end of file diff --git a/tests/projects/shared/xoo-sample-with-root-dir/sonar-project.properties b/tests/projects/shared/xoo-sample-with-root-dir/sonar-project.properties deleted file mode 100644 index 35fbcff0e60..00000000000 --- a/tests/projects/shared/xoo-sample-with-root-dir/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample-with-root-dir -sonar.projectName=Sample With Root Dir -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=. -sonar.language=xoo diff --git a/tests/projects/shared/xoo-sample-with-root-dir/src/main/xoo/sample/Sample.xoo b/tests/projects/shared/xoo-sample-with-root-dir/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/shared/xoo-sample-with-root-dir/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/shared/xoo-sample-with-root-dir/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/shared/xoo-sample-with-root-dir/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 641332a5013..00000000000 --- a/tests/projects/shared/xoo-sample-with-root-dir/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,8 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/shared/xoo-sample-with-tests/sonar-project.properties b/tests/projects/shared/xoo-sample-with-tests/sonar-project.properties deleted file mode 100644 index 0f2415d0320..00000000000 --- a/tests/projects/shared/xoo-sample-with-tests/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=sample-with-tests -sonar.projectName=Sample with tests -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.tests=src/test/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/shared/xoo-sample-with-tests/src/main/xoo/sample/Sample.xoo b/tests/projects/shared/xoo-sample-with-tests/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/tests/projects/shared/xoo-sample-with-tests/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/shared/xoo-sample-with-tests/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/shared/xoo-sample-with-tests/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index c427258db4e..00000000000 --- a/tests/projects/shared/xoo-sample-with-tests/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,5 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity_in_classes:3 -classes:1 -comment_lines:0 diff --git a/tests/projects/shared/xoo-sample-with-tests/src/test/xoo/sample/SampleTest.xoo b/tests/projects/shared/xoo-sample-with-tests/src/test/xoo/sample/SampleTest.xoo deleted file mode 100644 index 1392fc64ebf..00000000000 --- a/tests/projects/shared/xoo-sample-with-tests/src/test/xoo/sample/SampleTest.xoo +++ /dev/null @@ -1,21 +0,0 @@ -package sample; - -import org.hamcrest.CoreMatchers; -import org.junit.Test; - -import static org.junit.Assert.assertThat; - -public class SampleTest { - - @Test - public void should_return_i() { - Sample sample = new Sample(1); - assertThat(sample.getI(), CoreMatchers.is(1)); - } - - @Test - public void should_return_to_string() { - assertThat(new Sample(1).toString(), CoreMatchers.is("1")); - } - -} diff --git a/tests/projects/shared/xoo-sample-with-tests/src/test/xoo/sample/SampleTest.xoo.measures b/tests/projects/shared/xoo-sample-with-tests/src/test/xoo/sample/SampleTest.xoo.measures deleted file mode 100644 index 5a3f14e5962..00000000000 --- a/tests/projects/shared/xoo-sample-with-tests/src/test/xoo/sample/SampleTest.xoo.measures +++ /dev/null @@ -1,6 +0,0 @@ -ncloc:22 -tests:2 -test_execution_time:1 -skipped_tests:0 -test_errors:0 -test_failures:0 \ No newline at end of file diff --git a/tests/projects/shared/xoo-sample/externalIssues.json b/tests/projects/shared/xoo-sample/externalIssues.json deleted file mode 100644 index 9be94f4cae2..00000000000 --- a/tests/projects/shared/xoo-sample/externalIssues.json +++ /dev/null @@ -1,45 +0,0 @@ -{ -"issues" : [ - { - "engineId": "externalXoo", - "ruleId": "rule1", - "severity": "MAJOR", - "type": "CODE_SMELL", - "effortMinutes": 50, - "primaryLocation": { - "message": "fix the issue here", - "filePath": "src/main/xoo/sample/Sample.xoo", - "textRange": { - "startLine": 5, - "startColumn": 2, - "endLine": 5, - "endColumn": 21 - } - } - }, - { - "engineId": "externalXoo", - "ruleId": "rule2", - "severity": "CRITICAL", - "type": "BUG", - "primaryLocation": { - "message": "fix the bug here", - "filePath": "src/main/xoo/sample/Sample.xoo" - }, - "secondaryLocations": [ - { - "filePath": "src/main/xoo/sample/Sample.xoo", - "textRange": { - "startLine": 1 - } - }, - { - "filePath": "unknown", - "textRange": { - "startLine": 3 - } - } - ] - } -] -} \ No newline at end of file diff --git a/tests/projects/shared/xoo-sample/sonar-project.properties b/tests/projects/shared/xoo-sample/sonar-project.properties deleted file mode 100644 index 9e4aa0e3584..00000000000 --- a/tests/projects/shared/xoo-sample/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo diff --git a/tests/projects/shared/xoo-sample/src/main/xoo/sample/Sample.xoo b/tests/projects/shared/xoo-sample/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/shared/xoo-sample/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/shared/xoo-sample/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/shared/xoo-sample/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 06c9b6c2f38..00000000000 --- a/tests/projects/shared/xoo-sample/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1,9 +0,0 @@ -ncloc:13 -#Used by dashboard/widgets tests -complexity:3 -complexity_in_classes:3 -cognitive_complexity:4 -classes:1 -comment_lines:3 -public_api:5 -public_undocumented_api:2 diff --git a/tests/projects/shared/xoo-two-letters-named/sonar-project.properties b/tests/projects/shared/xoo-two-letters-named/sonar-project.properties deleted file mode 100644 index c0ebb39302f..00000000000 --- a/tests/projects/shared/xoo-two-letters-named/sonar-project.properties +++ /dev/null @@ -1,5 +0,0 @@ -sonar.projectKey=xo -sonar.projectName=xo -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo \ No newline at end of file diff --git a/tests/projects/shared/xoo-two-letters-named/src/main/xoo/sample/Sample.xoo b/tests/projects/shared/xoo-two-letters-named/src/main/xoo/sample/Sample.xoo deleted file mode 100644 index b1210973dd9..00000000000 --- a/tests/projects/shared/xoo-two-letters-named/src/main/xoo/sample/Sample.xoo +++ /dev/null @@ -1,12 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - return "hello"; - } -} diff --git a/tests/projects/shared/xoo-two-letters-named/src/main/xoo/sample/Sample.xoo.measures b/tests/projects/shared/xoo-two-letters-named/src/main/xoo/sample/Sample.xoo.measures deleted file mode 100644 index 56acf8077d6..00000000000 --- a/tests/projects/shared/xoo-two-letters-named/src/main/xoo/sample/Sample.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:9 diff --git a/tests/projects/shared/xoo2-sample/sonar-project.properties b/tests/projects/shared/xoo2-sample/sonar-project.properties deleted file mode 100644 index bd0c385337e..00000000000 --- a/tests/projects/shared/xoo2-sample/sonar-project.properties +++ /dev/null @@ -1,4 +0,0 @@ -sonar.projectKey=sample -sonar.projectName=Xoo2 Sample -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo diff --git a/tests/projects/shared/xoo2-sample/src/main/xoo/sample/Sample.xoo2 b/tests/projects/shared/xoo2-sample/src/main/xoo/sample/Sample.xoo2 deleted file mode 100644 index 41871e123a3..00000000000 --- a/tests/projects/shared/xoo2-sample/src/main/xoo/sample/Sample.xoo2 +++ /dev/null @@ -1,16 +0,0 @@ -package sample; - -public class Sample { - - public Sample(int i) { - int j = i++; - } - - private String myMethod() { - if (foo == bar) { - return "hello"; - } else { - throw new IllegalStateException(); - } - } -} diff --git a/tests/projects/shared/xoo2-sample/src/main/xoo/sample/Sample.xoo2.measures b/tests/projects/shared/xoo2-sample/src/main/xoo/sample/Sample.xoo2.measures deleted file mode 100644 index 7cd61febe22..00000000000 --- a/tests/projects/shared/xoo2-sample/src/main/xoo/sample/Sample.xoo2.measures +++ /dev/null @@ -1,9 +0,0 @@ -ncloc:7 -#Used by dashboard/widgets tests -complexity:4 -complexity_in_classes:5 -cognitive_complexity:6 -classes:2 -comment_lines:4 -public_api:6 -public_undocumented_api:1 diff --git a/tests/projects/significantCode/sample-xoo/file.xoo b/tests/projects/significantCode/sample-xoo/file.xoo deleted file mode 100644 index 5c50979f1b4..00000000000 --- a/tests/projects/significantCode/sample-xoo/file.xoo +++ /dev/null @@ -1,11 +0,0 @@ -000100******************************************************************00010000 -000200 IDENTIFICATION DIVISION. 00020000 -000300******************************************************************00030000 -000400 PROGRAM-ID. TEST-1. 00040000 -000500 AUTHOR. SONARSOURCE. 00050000 -000600 DATE-COMPILED. APRIL 2018. 00060000 -000700 (this line has no significant code) 00070009 -000800 00080000 -000900******************************************************************00090000 -001000* *00100000 -001100 MOVE WS-NB1 TO WS-NB2. 00110000 \ No newline at end of file diff --git a/tests/projects/significantCode/sample-xoo/file_additional_line.xoo b/tests/projects/significantCode/sample-xoo/file_additional_line.xoo deleted file mode 100644 index 5f3293bbbe7..00000000000 --- a/tests/projects/significantCode/sample-xoo/file_additional_line.xoo +++ /dev/null @@ -1,12 +0,0 @@ -000100******************************************************************00010000 -000200 IDENTIFICATION DIVISION. 00020000 -000300******************************************************************00030000 -000400 PROGRAM-ID. TEST-1. 00040000 -000500 AUTHOR. SONARSOURCE. 00050000 -000600 DATE-COMPILED. APRIL 2018. 00060000 -000700 (this line has no significant code) 00070009 -000800 00080000 -000800 THIS LINE WAS ADDED 00080000 -000900******************************************************************00090000 -001000* *00100000 -001100 MOVE WS-NB1 TO WS-NB2. 00110000 \ No newline at end of file diff --git a/tests/projects/significantCode/sample-xoo/file_changed.xoo b/tests/projects/significantCode/sample-xoo/file_changed.xoo deleted file mode 100644 index aeb1f6f5e42..00000000000 --- a/tests/projects/significantCode/sample-xoo/file_changed.xoo +++ /dev/null @@ -1,11 +0,0 @@ -000109******************************************************************00010000 -000290 IDENTIFICATION DIVISION. 00020000 -000900******************************************************************00030000 -009400 PROGRAM-ID. TEST-1. - line changed 00040000 -090500 AUTHOR. SONARSOURCE. 00050000 -900600 DATE-COMPILED. APRIL 2018. 00060000 -000700 (this line has no significant code) - line changed 00070009 -000800 00080090 -000900******************************************************************00090900 -001000* *00109000 -001100 MOVE WS-NB1 TO WS-NB2. 00190000 \ No newline at end of file diff --git a/tests/projects/sourceCode/japanese-charset/sonar-project.properties b/tests/projects/sourceCode/japanese-charset/sonar-project.properties deleted file mode 100644 index 3c21994665d..00000000000 --- a/tests/projects/sourceCode/japanese-charset/sonar-project.properties +++ /dev/null @@ -1,6 +0,0 @@ -sonar.projectKey=japanese-charset -sonar.projectName=Japanese charset -sonar.projectVersion=1.0-SNAPSHOT -sonar.sources=src/main/xoo -sonar.language=xoo -sonar.sourceEncoding=Shift_JIS diff --git a/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/App.xoo b/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/App.xoo deleted file mode 100644 index 5496feccf6a..00000000000 --- a/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/App.xoo +++ /dev/null @@ -1,75 +0,0 @@ -package com.test; - -import java.io.PrintWriter; - -/** - * Hello world! - * - */ -public class App -{ - /** - * ’ŠÛƒNƒ‰ƒX‚𓱓ü - * - * - * - */ - public static void main( String[] args ) - { - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - int d1; - int d2; - int d3; - int d4; - int d5; - int d6; - int d7; - int d8; - int d9; - int d10; - } - - public void test(PrintWriter pw) { - pw.print( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - } - - public void ƒnƒ[ƒ[ƒ‹ƒh() { - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - } -} diff --git a/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/App.xoo.measures b/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/App.xoo.measures deleted file mode 100644 index 0478fb1e30a..00000000000 --- a/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/App.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:76 diff --git a/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppCpdBug.xoo b/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppCpdBug.xoo deleted file mode 100644 index 61a27c9aa45..00000000000 --- a/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppCpdBug.xoo +++ /dev/null @@ -1,43 +0,0 @@ -package com.test; - -/** - * Hello world! - * - */ -public class AppCpdBug -{ - /** - * ’ŠÛƒNƒ‰ƒX‚𓱓ü - * - * - * - */ - public static void main( String[] args ) - { - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - int d1; - int d2; - int d3; - int d4; - int d5; - int d6; - int d7; - int d8; - int d9; - int d10; - } -} diff --git a/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppCpdBug.xoo.measures b/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppCpdBug.xoo.measures deleted file mode 100644 index 9fd62445ebd..00000000000 --- a/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppCpdBug.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:44 diff --git a/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppDuplication.xoo b/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppDuplication.xoo deleted file mode 100644 index f69e98cd252..00000000000 --- a/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppDuplication.xoo +++ /dev/null @@ -1,65 +0,0 @@ -package com.test; - -/** - * Hello world! - * - */ -public class AppDuplication -{ - /** - * ’ŠÛƒNƒ‰ƒX‚𓱓ü - * - * - * - */ - public static void main( String[] args ) - { - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println( "ƒnƒ[ƒ[ƒ‹ƒh!" ); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - System.out.println("Ø–¾‘ƒpƒX\’z‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"); - int d1; - int d2; - int d3; - int d4; - int d5; - int d6; - int d7; - int d8; - int d9; - int d10; - } -} diff --git a/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppDuplication.xoo.measures b/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppDuplication.xoo.measures deleted file mode 100644 index aad53b8fe28..00000000000 --- a/tests/projects/sourceCode/japanese-charset/src/main/xoo/com/test/AppDuplication.xoo.measures +++ /dev/null @@ -1 +0,0 @@ -ncloc:66 diff --git a/tests/projects/struts-1.3.9-diet/core/pom.xml b/tests/projects/struts-1.3.9-diet/core/pom.xml deleted file mode 100644 index 874dee330e3..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/pom.xml +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - org.apache.struts - struts-parent - 1.3.9 - - - 4.0.0 - org.apache.struts - struts-core - jar - Struts Core - http://struts.apache.org - - - scm:svn:http://svn.apache.org/repos/asf/struts/struts1/trunk/core/ - scm:svn:https://svn.apache.org/repos/asf/struts/struts1/trunk/core - http://svn.apache.org/repos/asf/struts/struts1/trunk/core - - - - - apache-site - scp://people.apache.org/www/struts.apache.org/1.x/struts-core - - - - - - - src/main/resources - - - src/main/java - - **/*.properties - - - - - - - src/test/java - - **/*.xml - **/*.properties - - - - - - - - pre-assembly - - - - org.apache.maven.plugins - maven-javadoc-plugin - - - attach-javadoc - jar - - - - - org.apache.maven.plugins - maven-source-plugin - - - attach-source - jar - - - - - - - - - - - antlr - antlr - 2.7.2 - - - commons-beanutils - commons-beanutils - 1.7.0 - - - commons-chain - commons-chain - 1.1 - - - myfaces - myfaces-api - - - javax.portlet - portlet-api - - - - - commons-digester - commons-digester - 1.8 - - - commons-fileupload - commons-fileupload - 1.1.1 - true - - - commons-logging - commons-logging - 1.0.4 - - - commons-validator - commons-validator - 1.3.1 - - - xml-apis - xml-apis - - - - - javax.servlet - servlet-api - 2.3 - provided - - - junit - junit - 3.8.1 - true - - - oro - oro - 2.0.8 - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/Globals.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/Globals.java deleted file mode 100644 index 7db9f4ca71f..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/Globals.java +++ /dev/null @@ -1,212 +0,0 @@ -/* - * $Id: Globals.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts; - -import java.io.Serializable; - -/** - * Global manifest constants for the entire Struts Framework. - * - * @version $Rev: 471754 $ $Date: 2005-06-18 20:27:26 -0400 (Sat, 18 Jun 2005) - * $ - */ -public class Globals implements Serializable { - // ----------------------------------------------------- Manifest Constants - - /** - * The context attributes key under which our ActionServlet - * instance will be stored. - * - * @since Struts 1.1 - */ - public static final String ACTION_SERVLET_KEY = - "org.apache.struts.action.ACTION_SERVLET"; - - /** - * The request attributes key under which a boolean true - * value should be stored if this request was cancelled. - * - * @since Struts 1.1 - */ - public static final String CANCEL_KEY = "org.apache.struts.action.CANCEL"; - - /** - *

The base of the context attributes key under which our - * ModuleConfig data structure will be stored. This will be - * suffixed with the actual module prefix (including the leading "/" - * character) to form the actual attributes key.

- * - *

For each request processed by the controller servlet, the - * ModuleConfig object for the module selected by the request - * URI currently being processed will also be exposed under this key as a - * request attribute.

- * - * @since Struts 1.1 - */ - public static final String MODULE_KEY = "org.apache.struts.action.MODULE"; - - /** - * The ServletContext attribute under which we store the module prefixes - * String[]. - * - * @since Struts 1.2 - */ - public static final String MODULE_PREFIXES_KEY = - "org.apache.struts.globals.MODULE_PREFIXES"; - - /** - * The request attribute under which we store the original URI of the - * request. - * - * @since Struts 1.3 - */ - public static final String ORIGINAL_URI_KEY = - "org.apache.struts.globals.ORIGINAL_URI_KEY"; - - /** - * The request attributes key under which your action should store an - * org.apache.struts.action.ActionErrors object, if you are - * using the corresponding custom tag library elements. - */ - public static final String ERROR_KEY = "org.apache.struts.action.ERROR"; - - /** - * The request attributes key under which Struts custom tags might store a - * Throwable that caused them to report a JspException at - * runtime. This value can be used on an error page to provide more - * detailed information about what really went wrong. - */ - public static final String EXCEPTION_KEY = - "org.apache.struts.action.EXCEPTION"; - - /** - * The session attributes key under which the user's selected - * java.util.Locale is stored, if any. If no such attribute - * is found, the system default locale will be used when retrieving - * internationalized messages. If used, this attribute is typically set - * during user login processing. - */ - public static final String LOCALE_KEY = "org.apache.struts.action.LOCALE"; - - /** - * The request attributes key under which our org.apache.struts.ActionMapping - * instance is passed. - */ - public static final String MAPPING_KEY = - "org.apache.struts.action.mapping.instance"; - - /** - * The request attributes key under which your action should store an - * org.apache.struts.action.ActionMessages object, if you are - * using the corresponding custom tag library elements. - * - * @since Struts 1.1 - */ - public static final String MESSAGE_KEY = - "org.apache.struts.action.ACTION_MESSAGE"; - - /** - *

The base of the context attributes key under which our module - * MessageResources will be stored. This will be suffixed - * with the actual module prefix (including the leading "/" character) to - * form the actual resources key.

- * - *

For each request processed by the controller servlet, the - * MessageResources object for the module selected by the - * request URI currently being processed will also be exposed under this - * key as a request attribute.

- */ - public static final String MESSAGES_KEY = - "org.apache.struts.action.MESSAGE"; - - /** - * The request attributes key under which our multipart class is stored. - */ - public static final String MULTIPART_KEY = - "org.apache.struts.action.mapping.multipartclass"; - - /** - *

The base of the context attributes key under which an array of - * PlugIn instances will be stored. This will be suffixed - * with the actual module prefix (including the leading "/" character) to - * form the actual attributes key.

- * - * @since Struts 1.1 - */ - public static final String PLUG_INS_KEY = - "org.apache.struts.action.PLUG_INS"; - - /** - *

The base of the context attributes key under which our - * RequestProcessor instance will be stored. This will be - * suffixed with the actual module prefix (including the leading "/" - * character) to form the actual attributes key.

- * - * @since Struts 1.1 - */ - public static final String REQUEST_PROCESSOR_KEY = - "org.apache.struts.action.REQUEST_PROCESSOR"; - - /** - * The context attributes key under which we store the mapping defined for - * our controller serlet, which will be either a path-mapped pattern - * (/action/*) or an extension mapped pattern - * (*.do). - */ - public static final String SERVLET_KEY = - "org.apache.struts.action.SERVLET_MAPPING"; - - /** - * The session attributes key under which our transaction token is stored, - * if it is used. - */ - public static final String TRANSACTION_TOKEN_KEY = - "org.apache.struts.action.TOKEN"; - - /** - * The page attributes key under which xhtml status is stored. This may - * be "true" or "false". When set to true, the html tags output xhtml. - * - * @since Struts 1.1 - */ - public static final String XHTML_KEY = "org.apache.struts.globals.XHTML"; - - /** - * The name of the taglib package. - */ - public static final String TAGLIB_PACKAGE = "org.apache.struts.taglib.html"; - - /** - * The property under which a Cancel button press is reported. - */ - public static final String CANCEL_PROPERTY = TAGLIB_PACKAGE + ".CANCEL"; - - /** - * The property under which a Cancel button press is reported, if the - * Cancel button is rendered as an image. - */ - public static final String CANCEL_PROPERTY_X = TAGLIB_PACKAGE + ".CANCEL.x"; - - /** - * The property under which a transaction token is reported. - */ - public static final String TOKEN_KEY = TAGLIB_PACKAGE + ".TOKEN"; -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/Action.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/Action.java deleted file mode 100755 index 058d9ac81bf..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/Action.java +++ /dev/null @@ -1,557 +0,0 @@ -/* - * $Id: Action.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import org.apache.struts.Globals; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.ModuleUtils; -import org.apache.struts.util.RequestUtils; -import org.apache.struts.util.TokenProcessor; - -import javax.servlet.ServletContext; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import java.util.Locale; - -/** - *

An Action is an adapter between the contents of an - * incoming HTTP request and the corresponding business logic that should be - * executed to process this request. The controller (RequestProcessor) will - * select an appropriate Action for each request, create an instance (if - * necessary), and call the execute method.

- * - *

Actions must be programmed in a thread-safe manner, because the - * controller will share the same instance for multiple simultaneous requests. - * This means you should design with the following items in mind:

- * - *
    - * - *
  • Instance and static variables MUST NOT be used to store information - * related to the state of a particular request. They MAY be used to share - * global resources across requests for the same action.
  • - * - *
  • Access to other resources (JavaBeans, session variables, etc.) MUST be - * synchronized if those resources require protection. (Generally, however, - * resource classes should be designed to provide their own protection where - * necessary.
  • - * - *
- * - *

When an Action instance is first created, the controller - * will call setServlet with a non-null argument to identify the - * servlet instance to which this Action is attached. When the servlet is to - * be shut down (or restarted), the setServlet method will be - * called with a null argument, which can be used to clean up any - * allocated resources in use by this Action.

- * - * @version $Rev: 471754 $ $Date: 2005-08-26 21:58:39 -0400 (Fri, 26 Aug 2005) - * $ - */ -public class Action { - /** - *

An instance of TokenProcessor to use for token - * functionality.

- */ - private static TokenProcessor token = TokenProcessor.getInstance(); - - // NOTE: We can make the tken variable protected and remove Action's - // token methods or leave it private and allow the token methods to - // delegate their calls. - // ----------------------------------------------------- Instance Variables - - /** - *

The servlet to which we are attached.

- */ - protected transient ActionServlet servlet = null; - - // ------------------------------------------------------------- Properties - - /** - *

Return the servlet instance to which we are attached.

- * - * @return The servlet instance to which we are attached. - */ - public ActionServlet getServlet() { - return (this.servlet); - } - - /** - *

Set the servlet instance to which we are attached (if - * servlet is non-null), or release any allocated resources - * (if servlet is null).

- * - * @param servlet The new controller servlet, if any - */ - public void setServlet(ActionServlet servlet) { - this.servlet = servlet; - - // :FIXME: Is this suppose to release resources? - } - - // --------------------------------------------------------- Public Methods - - /** - *

Process the specified non-HTTP request, and create the corresponding - * non-HTTP response (or forward to another web component that will create - * it), with provision for handling exceptions thrown by the business - * logic. Return an {@link ActionForward} instance describing where and - * how control should be forwarded, or null if the response - * has already been completed.

- * - *

The default implementation attempts to forward to the HTTP version - * of this method.

- * - * @param mapping The ActionMapping used to select this instance - * @param form The optional ActionForm bean for this request (if any) - * @param request The non-HTTP request we are processing - * @param response The non-HTTP response we are creating - * @return The forward to which control should be transferred, or - * null if the response has been completed. - * @throws Exception if the application business logic throws an - * exception. - * @since Struts 1.1 - */ - public ActionForward execute(ActionMapping mapping, ActionForm form, - ServletRequest request, ServletResponse response) - throws Exception { - try { - return execute(mapping, form, (HttpServletRequest) request, - (HttpServletResponse) response); - } catch (ClassCastException e) { - return null; - } - } - - /** - *

Process the specified HTTP request, and create the corresponding - * HTTP response (or forward to another web component that will create - * it), with provision for handling exceptions thrown by the business - * logic. Return an {@link ActionForward} instance describing where and - * how control should be forwarded, or null if the response - * has already been completed.

- * - * @param mapping The ActionMapping used to select this instance - * @param form The optional ActionForm bean for this request (if any) - * @param request The HTTP request we are processing - * @param response The HTTP response we are creating - * @return The forward to which control should be transferred, or - * null if the response has been completed. - * @throws Exception if the application business logic throws an - * exception - * @since Struts 1.1 - */ - public ActionForward execute(ActionMapping mapping, ActionForm form, - HttpServletRequest request, HttpServletResponse response) - throws Exception { - return null; - } - - // ---------------------------------------------------- Protected Methods - - /** - * Adds the specified messages keys into the appropriate request attribute - * for use by the <html:messages> tag (if messages="true" is set), - * if any messages are required. Initialize the attribute if it has not - * already been. Otherwise, ensure that the request attribute is not set. - * - * @param request The servlet request we are processing - * @param messages Messages object - * @since Struts 1.2.1 - */ - protected void addMessages(HttpServletRequest request, - ActionMessages messages) { - if (messages == null) { - // bad programmer! *slap* - return; - } - - // get any existing messages from the request, or make a new one - ActionMessages requestMessages = - (ActionMessages) request.getAttribute(Globals.MESSAGE_KEY); - - if (requestMessages == null) { - requestMessages = new ActionMessages(); - } - - // add incoming messages - requestMessages.add(messages); - - // if still empty, just wipe it out from the request - if (requestMessages.isEmpty()) { - request.removeAttribute(Globals.MESSAGE_KEY); - - return; - } - - // Save the messages - request.setAttribute(Globals.MESSAGE_KEY, requestMessages); - } - - /** - * Adds the specified errors keys into the appropriate request attribute - * for use by the <html:errors> tag, if any messages are required. - * Initialize the attribute if it has not already been. Otherwise, ensure - * that the request attribute is not set. - * - * @param request The servlet request we are processing - * @param errors Errors object - * @since Struts 1.2.1 - */ - protected void addErrors(HttpServletRequest request, ActionMessages errors) { - if (errors == null) { - // bad programmer! *slap* - return; - } - - // get any existing errors from the request, or make a new one - ActionMessages requestErrors = - (ActionMessages) request.getAttribute(Globals.ERROR_KEY); - - if (requestErrors == null) { - requestErrors = new ActionMessages(); - } - - // add incoming errors - requestErrors.add(errors); - - // if still empty, just wipe it out from the request - if (requestErrors.isEmpty()) { - request.removeAttribute(Globals.ERROR_KEY); - - return; - } - - // Save the errors - request.setAttribute(Globals.ERROR_KEY, requestErrors); - } - - /** - *

Generate a new transaction token, to be used for enforcing a single - * request for a particular transaction.

- * - * @param request The request we are processing - * @return The new transaction token. - */ - protected String generateToken(HttpServletRequest request) { - return token.generateToken(request); - } - - /** - * Retrieves any existing errors placed in the request by previous - * actions. This method could be called instead of creating a new - * ActionMessages() at the beginning of an Action. - * This will prevent saveErrors() from wiping out any existing Errors - * - * @param request The servlet request we are processing - * @return the Errors that already exist in the request, or a new - * ActionMessages object if empty. - * @since Struts 1.2.1 - */ - protected ActionMessages getErrors(HttpServletRequest request) { - ActionMessages errors = - (ActionMessages) request.getAttribute(Globals.ERROR_KEY); - - if (errors == null) { - errors = new ActionMessages(); - } - - return errors; - } - - /** - *

Return the user's currently selected Locale.

- * - * @param request The request we are processing - * @return The user's currently selected Locale. - */ - protected Locale getLocale(HttpServletRequest request) { - return RequestUtils.getUserLocale(request, null); - } - - /** - *

Retrieves any existing messages placed in the request by previous - * actions. This method could be called instead of creating a new - * ActionMessages() at the beginning of an Action This - * will prevent saveMessages() from wiping out any existing Messages

- * - * @param request The servlet request we are processing - * @return the Messages that already exist in the request, or a new - * ActionMessages object if empty. - * @since Struts 1.2.1 - */ - protected ActionMessages getMessages(HttpServletRequest request) { - ActionMessages messages = - (ActionMessages) request.getAttribute(Globals.MESSAGE_KEY); - - if (messages == null) { - messages = new ActionMessages(); - } - - return messages; - } - - /** - *

Return the default message resources for the current module.

- * - * @param request The servlet request we are processing - * @return The default message resources for the current module. - * @since Struts 1.1 - */ - protected MessageResources getResources(HttpServletRequest request) { - return ((MessageResources) request.getAttribute(Globals.MESSAGES_KEY)); - } - - /** - *

Return the specified message resources for the current module.

- * - * @param request The servlet request we are processing - * @param key The key specified in the message-resources element for - * the requested bundle. - * @return The specified message resource for the current module. - * @since Struts 1.1 - */ - protected MessageResources getResources(HttpServletRequest request, - String key) { - // Identify the current module - ServletContext context = getServlet().getServletContext(); - ModuleConfig moduleConfig = - ModuleUtils.getInstance().getModuleConfig(request, context); - - // Return the requested message resources instance - return (MessageResources) context.getAttribute(key - + moduleConfig.getPrefix()); - } - - /** - *

Returns true if the current form's cancel button was - * pressed. This method will check if the Globals.CANCEL_KEY - * request attribute has been set, which normally occurs if the cancel - * button generated by CancelTag was pressed by the user - * in the current request. If true, validation performed by - * an ActionForm's validate() method will - * have been skipped by the controller servlet.

- * - *

Since Action 1.3.0, the mapping for a cancellable Action must also have - * the new "cancellable" property set to true. If "cancellable" is not set, and - * the magic Cancel token is found in the request, the standard Composable - * Request Processor will throw an InvalidCancelException.

- * - * @param request The servlet request we are processing - * @return true if the cancel button was pressed; - * false otherwise. - */ - protected boolean isCancelled(HttpServletRequest request) { - return (request.getAttribute(Globals.CANCEL_KEY) != null); - } - - /** - *

Return true if there is a transaction token stored in - * the user's current session, and the value submitted as a request - * parameter with this action matches it. Returns false under - * any of the following circumstances:

- * - *
    - * - *
  • No session associated with this request
  • - * - *
  • No transaction token saved in the session
  • - * - *
  • No transaction token included as a request parameter
  • - * - *
  • The included transaction token value does not match the transaction - * token in the user's session
  • - * - *
- * - * @param request The servlet request we are processing - * @return true if there is a transaction token and it is - * valid; false otherwise. - */ - protected boolean isTokenValid(HttpServletRequest request) { - return token.isTokenValid(request, false); - } - - /** - *

Return true if there is a transaction token stored in - * the user's current session, and the value submitted as a request - * parameter with this action matches it. Returns false under - * any of the following circumstances:

- * - *
    - * - *
  • No session associated with this request
  • No transaction - * token saved in the session
  • - * - *
  • No transaction token included as a request parameter
  • - * - *
  • The included transaction token value does not match the transaction - * token in the user's session
  • - * - *
- * - * @param request The servlet request we are processing - * @param reset Should we reset the token after checking it? - * @return true if there is a transaction token and it is - * valid; false otherwise. - */ - protected boolean isTokenValid(HttpServletRequest request, boolean reset) { - return token.isTokenValid(request, reset); - } - - /** - *

Reset the saved transaction token in the user's session. This - * indicates that transactional token checking will not be needed on the - * next request that is submitted.

- * - * @param request The servlet request we are processing - */ - protected void resetToken(HttpServletRequest request) { - token.resetToken(request); - } - - /** - *

Save the specified error messages keys into the appropriate request - * attribute for use by the <html:errors> tag, if any messages are - * required. Otherwise, ensure that the request attribute is not - * created.

- * - * @param request The servlet request we are processing - * @param errors Error messages object - * @since Struts 1.2 - */ - protected void saveErrors(HttpServletRequest request, ActionMessages errors) { - // Remove any error messages attribute if none are required - if ((errors == null) || errors.isEmpty()) { - request.removeAttribute(Globals.ERROR_KEY); - - return; - } - - // Save the error messages we need - request.setAttribute(Globals.ERROR_KEY, errors); - } - - /** - *

Save the specified messages keys into the appropriate request - * attribute for use by the <html:messages> tag (if messages="true" - * is set), if any messages are required. Otherwise, ensure that the - * request attribute is not created.

- * - * @param request The servlet request we are processing. - * @param messages The messages to save. null or empty - * messages removes any existing ActionMessages in the - * request. - * @since Struts 1.1 - */ - protected void saveMessages(HttpServletRequest request, - ActionMessages messages) { - // Remove any messages attribute if none are required - if ((messages == null) || messages.isEmpty()) { - request.removeAttribute(Globals.MESSAGE_KEY); - - return; - } - - // Save the messages we need - request.setAttribute(Globals.MESSAGE_KEY, messages); - } - - /** - *

Save the specified messages keys into the appropriate session - * attribute for use by the <html:messages> tag (if messages="true" - * is set), if any messages are required. Otherwise, ensure that the - * session attribute is not created.

- * - * @param session The session to save the messages in. - * @param messages The messages to save. null or empty - * messages removes any existing ActionMessages in the - * session. - * @since Struts 1.2 - */ - protected void saveMessages(HttpSession session, ActionMessages messages) { - // Remove any messages attribute if none are required - if ((messages == null) || messages.isEmpty()) { - session.removeAttribute(Globals.MESSAGE_KEY); - - return; - } - - // Save the messages we need - session.setAttribute(Globals.MESSAGE_KEY, messages); - } - - /** - *

Save the specified error messages keys into the appropriate session - * attribute for use by the <html:messages> tag (if - * messages="false") or <html:errors>, if any error messages are - * required. Otherwise, ensure that the session attribute is empty.

- * - * @param session The session to save the error messages in. - * @param errors The error messages to save. null or empty - * messages removes any existing error ActionMessages in - * the session. - * @since Struts 1.3 - */ - protected void saveErrors(HttpSession session, ActionMessages errors) { - // Remove the error attribute if none are required - if ((errors == null) || errors.isEmpty()) { - session.removeAttribute(Globals.ERROR_KEY); - - return; - } - - // Save the errors we need - session.setAttribute(Globals.ERROR_KEY, errors); - } - - /** - *

Save a new transaction token in the user's current session, creating - * a new session if necessary.

- * - * @param request The servlet request we are processing - */ - protected void saveToken(HttpServletRequest request) { - token.saveToken(request); - } - - /** - *

Set the user's currently selected Locale into their - * HttpSession.

- * - * @param request The request we are processing - * @param locale The user's selected Locale to be set, or null to select - * the server's default Locale - */ - protected void setLocale(HttpServletRequest request, Locale locale) { - HttpSession session = request.getSession(); - - if (locale == null) { - locale = Locale.getDefault(); - } - - session.setAttribute(Globals.LOCALE_KEY, locale); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionErrors.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionErrors.java deleted file mode 100644 index 869dde8aaff..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionErrors.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * $Id: ActionErrors.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import java.io.Serializable; - -/** - *

A class that encapsulates the error messages being reported by the - * validate() method of an ActionForm. Validation - * errors are either global to the entire ActionForm bean they - * are associated with, or they are specific to a particular bean property - * (and, therefore, a particular input field on the corresponding form).

- * - *

Each individual error is described by an ActionMessage - * object, which contains a message key (to be looked up in an appropriate - * message resources database), and up to four placeholder arguments used for - * parametric substitution in the resulting message.

- * - *

IMPLEMENTATION NOTE - It is assumed that these objects - * are created and manipulated only within the context of a single thread. - * Therefore, no synchronization is required for access to internal - * collections.

- * - * @version $Rev: 471754 $ $Date: 2005-08-06 18:03:30 -0400 (Sat, 06 Aug 2005) - * $ - */ -public class ActionErrors extends ActionMessages implements Serializable { - // --------------------------------------------------------- Public Methods - - /** - *

Create an empty ActionErrors object.

- */ - public ActionErrors() { - super(); - } - - /** - *

Create an ActionErrors object initialized with the - * given messages.

- * - * @param messages The messages to be initially added to this object. This - * parameter can be null. - * @since Struts 1.1 - */ - public ActionErrors(ActionErrors messages) { - super(messages); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionForm.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionForm.java deleted file mode 100755 index 3f3bc7a419d..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionForm.java +++ /dev/null @@ -1,233 +0,0 @@ -/* - * $Id: ActionForm.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import org.apache.struts.upload.MultipartRequestHandler; - -import javax.servlet.ServletRequest; -import javax.servlet.http.HttpServletRequest; - -import java.io.Serializable; - -/** - *

An ActionForm is a JavaBean optionally associated with - * one or more ActionMappings. Such a bean will have had its - * properties initialized from the corresponding request parameters before the - * corresponding Action.execute method is called.

- * - *

When the properties of this bean have been populated, but before the - * execute method of the Action is called, this - * bean's validate method will be called, which gives the bean a - * chance to verify that the properties submitted by the user are correct and - * valid. If this method finds problems, it returns an error messages object - * that encapsulates those problems, and the controller servlet will return - * control to the corresponding input form. Otherwise, the - * validate method returns null, indicating that - * everything is acceptable and the corresponding Action.execute - * method should be called.

- * - *

This class must be subclassed in order to be instantiated. Subclasses - * should provide property getter and setter methods for all of the bean - * properties they wish to expose, plus override any of the public or - * protected methods for which they wish to provide modified functionality. - *

- * - *

Because ActionForms are JavaBeans, subclasses should also implement - * Serializable, as required by the JavaBean specification. Some - * containers require that an object meet all JavaBean requirements in order - * to use the introspection API upon which ActionForms rely.

- * - * @version $Rev: 471754 $ $Date: 2005-11-12 08:14:24 -0500 (Sat, 12 Nov 2005) - * $ - */ -public abstract class ActionForm implements Serializable { - // ----------------------------------------------------- Instance Variables - - /** - *

The servlet instance to which we are attached.

- */ - protected transient ActionServlet servlet = null; - - /** - *

The MultipartRequestHandler for this form, can be - * null.

- */ - protected transient MultipartRequestHandler multipartRequestHandler; - - // ------------------------------------------------------------- Properties - - /** - *

Return the servlet instance to which we are attached.

- * - * @return The servlet instance to which we are attached. - */ - protected ActionServlet getServlet() { - return (this.servlet); - } - - /** - *

Return the controller servlet instance to which we are attached. as - * an ActionServletWrapper.

- * - * @return An instance of {@link ActionServletWrapper} - * @see ActionServletWrapper - * @since Struts 1.0.1 - */ - public ActionServletWrapper getServletWrapper() { - return new ActionServletWrapper(getServlet()); - } - - /** - *

Return the MultipartRequestHandler for this form The - * reasoning behind this is to give form bean developers control over the - * lifecycle of their multipart requests through the use of the - * finish and/or rollback methods of - * MultipartRequestHandler. This method will return - * null if this form's enctype is not "multipart/form-data". - *

- * - * @return The {@link org.apache.struts.upload.MultipartRequestHandler} - * for this form. - * @see org.apache.struts.upload.MultipartRequestHandler - */ - public MultipartRequestHandler getMultipartRequestHandler() { - return multipartRequestHandler; - } - - /** - *

Set the servlet instance to which we are attached (if - * servlet is non-null).

- * - * @param servlet The new controller servlet, if any - */ - public void setServlet(ActionServlet servlet) { - this.servlet = servlet; - - // :FIXME: Should this be releasing resources? - } - - /** - *

Set the Handler provided for use in dealing with file uploads.

- * - * @param multipartRequestHandler The Handler to use for fileuploads. - */ - public void setMultipartRequestHandler( - MultipartRequestHandler multipartRequestHandler) { - this.multipartRequestHandler = multipartRequestHandler; - } - - // --------------------------------------------------------- Public Methods - - /** - *

>Can be used to reset all bean properties to their default state. - * This method is called before the properties are repopulated by the - * controller.

- * - *

The default implementation attempts to forward to the HTTP version - * of this method.

- * - * @param mapping The mapping used to select this instance - * @param request The servlet request we are processing - */ - public void reset(ActionMapping mapping, ServletRequest request) { - try { - reset(mapping, (HttpServletRequest) request); - } catch (ClassCastException e) { - ; // FIXME: Why would this ever happen except a null - } - } - - /** - *

Can be used to reset bean properties to their default state, as - * needed. This method is called before the properties are repopulated by - * the controller.

- * - *

The default implementation does nothing. In practice, the only - * properties that need to be reset are those which represent checkboxes - * on a session-scoped form. Otherwise, properties can be given initial - * values where the field is declared.

- * - *

If the form is stored in session-scope so that values can be - * collected over multiple requests (a "wizard"), you must be very careful - * of which properties, if any, are reset. As mentioned, session-scope - * checkboxes must be reset to false for any page where this property is - * set. This is because the client does not submit a checkbox value when - * it is clear (false). If a session-scoped checkbox is not proactively - * reset, it can never be set to false.

- * - *

This method is not the appropriate place to - * initialize form value for an "update" type page (this should be done in - * a setup Action). You mainly need to worry about setting checkbox values - * to false; most of the time you can leave this method unimplemented. - *

- * - * @param mapping The mapping used to select this instance - * @param request The servlet request we are processing - */ - public void reset(ActionMapping mapping, HttpServletRequest request) { - // Default implementation does nothing - } - - /** - *

Can be used to validate the properties that have been set for this - * non-HTTP request, and return an ActionErrors object that - * encapsulates any validation errors that have been found. If no errors - * are found, return null or an ActionErrors - * object with no recorded error messages.

- * - *

The default implementation attempts to forward to the HTTP version - * of this method.

- * - * @param mapping The mapping used to select this instance - * @param request The servlet request we are processing - * @return The set of validation errors, if validation failed; an empty - * set or null if validation succeeded. - */ - public ActionErrors validate(ActionMapping mapping, ServletRequest request) { - try { - return (validate(mapping, (HttpServletRequest) request)); - } catch (ClassCastException e) { - return (null); - } - } - - /** - *

Can be used to validate the properties that have been set for this - * HTTP request, and return an ActionErrors object that - * encapsulates any validation errors that have been found. If no errors - * are found, return null or an ActionErrors - * object with no recorded error messages.

- * - *

The default implementation performs no validation and returns - * null. Subclasses must override this method to provide any - * validation they wish to perform.

- * - * @param mapping The mapping used to select this instance - * @param request The servlet request we are processing - * @return The set of validation errors, if validation failed; an empty - * set or null if validation succeeded. - * @see DynaActionForm - */ - public ActionErrors validate(ActionMapping mapping, - HttpServletRequest request) { - return (null); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionFormBean.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionFormBean.java deleted file mode 100755 index e8a837d1787..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionFormBean.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * $Id: ActionFormBean.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import org.apache.struts.config.FormBeanConfig; - -/** - *

An ActionFormBean is the definition of a form bean that - * is loaded from a <form-bean> element in the Struts - * configuration file. It can be subclassed as necessary to add additional - * properties.

- * - *

Since Struts 1.1 ActionFormBean extends - * FormBeanConfig.

- * - *

NOTE - This class would have been deprecated and - * replaced by org.apache.struts.config.FormBeanConfig except for - * the fact that it is part of the public API that existing applications are - * using.

- * - * @version $Rev: 471754 $ $Date: 2005-05-14 01:09:32 -0400 (Sat, 14 May 2005) - * $ - */ -public class ActionFormBean extends FormBeanConfig { - /** - *

Construct an instance with default vaslues.

- */ - public ActionFormBean() { - super(); - } - - /** - *

Construct an instance with the specified values.

- * - * @param name Form bean name - * @param type Fully qualified class name - */ - public ActionFormBean(String name, String type) { - super(); - setName(name); - setType(type); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionForward.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionForward.java deleted file mode 100644 index c55cf28e15c..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionForward.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * $Id: ActionForward.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import org.apache.struts.config.ForwardConfig; - -/** - *

An ActionForward represents a destination to which the - * controller, RequestProcessor, might be directed to perform a - * RequestDispatcher.forward or HttpServletResponse.sendRedirect to, as a - * result of processing activities of an Action class. Instances of this class - * may be created dynamically as necessary, or configured in association with - * an ActionMapping instance for named lookup of potentially multiple - * destinations for a particular mapping instance.

- * - *

An ActionForward has the following minimal set of properties. Additional - * properties can be provided as needed by subclassses.

- * - *
    - * - *
  • contextRelative - Should the path value be interpreted - * as context-relative (instead of module-relative, if it starts with a '/' - * character? [false]
  • - * - *
  • name - Logical name by which this instance may be - * looked up in relationship to a particular ActionMapping.
  • - * - *
  • path - Module-relative or context-relative URI to - * which control should be forwarded, or an absolute or relative URI to which - * control should be redirected.
  • - * - *
  • redirect - Set to true if the controller servlet - * should call HttpServletResponse.sendRedirect() on the associated path; - * otherwise false. [false]
  • - * - *
- * - *

Since Struts 1.1 this class extends ForwardConfig and inherits the - * contextRelative property. - * - *

NOTE - This class would have been deprecated and - * replaced by org.apache.struts.config.ForwardConfig except for the fact that - * it is part of the public API that existing applications are using.

- * - * @version $Rev: 471754 $ $Date: 2005-08-14 17:24:39 -0400 (Sun, 14 Aug 2005) - * $ - */ -public class ActionForward extends ForwardConfig { - /** - *

Construct a new instance with default values.

- */ - public ActionForward() { - this(null, false); - } - - /** - *

Construct a new instance with the specified path.

- * - * @param path Path for this instance - */ - public ActionForward(String path) { - this(path, false); - } - - /** - *

Construct a new instance with the specified path and - * redirect flag.

- * - * @param path Path for this instance - * @param redirect Redirect flag for this instance - */ - public ActionForward(String path, boolean redirect) { - super(); - setName(null); - setPath(path); - setRedirect(redirect); - } - - /** - *

Construct a new instance with the specified name, - * path and redirect flag.

- * - * @param name Name of this instance - * @param path Path for this instance - * @param redirect Redirect flag for this instance - */ - public ActionForward(String name, String path, boolean redirect) { - super(); - setName(name); - setPath(path); - setRedirect(redirect); - } - - /** - *

Construct a new instance with the specified values.

- * - * @param name Name of this forward - * @param path Path to which control should be forwarded or - * redirected - * @param redirect Should we do a redirect? - * @param module Module prefix, if any - */ - public ActionForward(String name, String path, boolean redirect, - String module) { - super(); - setName(name); - setPath(path); - setRedirect(redirect); - setModule(module); - } - - /** - *

Construct a new instance based on the values of another - * ActionForward.

- * - * @param copyMe An ActionForward instance to copy - * @since Struts 1.2.1 - */ - public ActionForward(ActionForward copyMe) { - this(copyMe.getName(), copyMe.getPath(), copyMe.getRedirect(), - copyMe.getModule()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionMapping.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionMapping.java deleted file mode 100755 index 984076f00eb..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionMapping.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * $Id: ActionMapping.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ForwardConfig; - -import java.util.ArrayList; - -/** - *

An ActionMapping represents the information that the - * controller, RequestProcessor, knows about the mapping of a - * particular request to an instance of a particular Action - * class. The ActionMapping instance used to select a particular - * Action is passed on to that Action, thereby - * providing access to any custom configuration information included with the - * ActionMapping object.

- * - *

Since Struts 1.1 this class extends ActionConfig. - * - *

NOTE - This class would have been deprecated and - * replaced by org.apache.struts.config.ActionConfig except for - * the fact that it is part of the public API that existing applications are - * using.

- * - * @version $Rev: 471754 $ $Date: 2005-08-26 21:58:39 -0400 (Fri, 26 Aug 2005) - * $ - */ -public class ActionMapping extends ActionConfig { - /** - *

Commons Logging instance.

- * - * @since Struts 1.2.8 - */ - private static Log log = LogFactory.getLog(ActionMapping.class); - - /** - *

Find and return the ForwardConfig instance defining how - * forwarding to the specified logical name should be handled. This is - * performed by checking local and then global configurations for the - * specified forwarding configuration. If no forwarding configuration can - * be found, return null.

- * - * @param forwardName Logical name of the forwarding instance to be - * returned - * @return The local or global forward with the specified name. - */ - public ActionForward findForward(String forwardName) { - ForwardConfig config = findForwardConfig(forwardName); - - if (config == null) { - config = getModuleConfig().findForwardConfig(forwardName); - } - - if (config == null) { - if (log.isWarnEnabled()) { - log.warn("Unable to find '" + forwardName + "' forward."); - } - } - - return ((ActionForward) config); - } - - /** - *

Return the logical names of all locally defined forwards for this - * mapping. If there are no such forwards, a zero-length array is - * returned.

- * - * @return The forward names for this action mapping. - */ - public String[] findForwards() { - ArrayList results = new ArrayList(); - ForwardConfig[] fcs = findForwardConfigs(); - - for (int i = 0; i < fcs.length; i++) { - results.add(fcs[i].getName()); - } - - return ((String[]) results.toArray(new String[results.size()])); - } - - /** - *

Create (if necessary) and return an {@link ActionForward} that - * corresponds to the input property of this Action.

- * - * @return The input forward for this action mapping. - * @since Struts 1.1 - */ - public ActionForward getInputForward() { - if (getModuleConfig().getControllerConfig().getInputForward()) { - return (findForward(getInput())); - } else { - return (new ActionForward(getInput())); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionMessage.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionMessage.java deleted file mode 100644 index 0bd483ecfe8..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionMessage.java +++ /dev/null @@ -1,201 +0,0 @@ -/* - * $Id: ActionMessage.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import java.io.Serializable; - -/** - *

An encapsulation of an individual message returned by the - * validate method of an ActionForm, consisting of a - * message key (to be used to look up message text in an appropriate message - * resources database) plus up to four placeholder objects that can be used - * for parametric replacement in the message text.

- * - * @version $Rev: 471754 $ $Date: 2005-05-14 01:09:32 -0400 (Sat, 14 May 2005) - * $ - * @since Struts 1.1 - */ -public class ActionMessage implements Serializable { - // ----------------------------------------------------- Instance Variables - - /** - *

The message key for this message.

- */ - protected String key = null; - - /** - *

The replacement values for this mesasge.

- */ - protected Object[] values = null; - - /** - *

Indicates whether the key is taken to be as a bundle key [true] or - * literal value [false].

- */ - protected boolean resource = true; - - // ----------------------------------------------------------- Constructors - - /** - *

Construct an action message with no replacement values.

- * - * @param key Message key for this message - */ - public ActionMessage(String key) { - this(key, null); - } - - /** - *

Construct an action message with the specified replacement - * values.

- * - * @param key Message key for this message - * @param value0 First replacement value - */ - public ActionMessage(String key, Object value0) { - this(key, new Object[] { value0 }); - } - - /** - *

Construct an action message with the specified replacement - * values.

- * - * @param key Message key for this message - * @param value0 First replacement value - * @param value1 Second replacement value - */ - public ActionMessage(String key, Object value0, Object value1) { - this(key, new Object[] { value0, value1 }); - } - - /** - *

Construct an action message with the specified replacement - * values.

- * - * @param key Message key for this message - * @param value0 First replacement value - * @param value1 Second replacement value - * @param value2 Third replacement value - */ - public ActionMessage(String key, Object value0, Object value1, Object value2) { - this(key, new Object[] { value0, value1, value2 }); - } - - /** - *

Construct an action message with the specified replacement - * values.

- * - * @param key Message key for this message - * @param value0 First replacement value - * @param value1 Second replacement value - * @param value2 Third replacement value - * @param value3 Fourth replacement value - */ - public ActionMessage(String key, Object value0, Object value1, - Object value2, Object value3) { - this(key, new Object[] { value0, value1, value2, value3 }); - } - - /** - *

Construct an action message with the specified replacement - * values.

- * - * @param key Message key for this message - * @param values Array of replacement values - */ - public ActionMessage(String key, Object[] values) { - this.key = key; - this.values = values; - this.resource = true; - } - - /** - *

Construct an action message with the specified replacement - * values.

- * - * @param key Message key for this message - * @param resource Indicates whether the key is a bundle key or literal - * value - */ - public ActionMessage(String key, boolean resource) { - this.key = key; - this.resource = resource; - } - - // --------------------------------------------------------- Public Methods - - /** - *

Get the message key for this message.

- * - * @return The message key for this message. - */ - public String getKey() { - return (this.key); - } - - /** - *

Get the replacement values for this message.

- * - * @return The replacement values for this message. - */ - public Object[] getValues() { - return (this.values); - } - - /** - *

Indicate whether the key is taken to be as a bundle key [true] or - * literal value [false].

- * - * @return true if the key is a bundle key; - * false otherwise. - */ - public boolean isResource() { - return (this.resource); - } - - /** - *

Returns a String in the format: key[value1, value2, etc].

- * - * @return String representation of this message - * @see java.lang.Object#toString() - */ - public String toString() { - StringBuffer buff = new StringBuffer(); - - buff.append(this.key); - buff.append("["); - - if (this.values != null) { - for (int i = 0; i < this.values.length; i++) { - buff.append(this.values[i]); - - // don't append comma to last entry - if (i < (this.values.length - 1)) { - buff.append(", "); - } - } - } - - buff.append("]"); - - return buff.toString(); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionMessages.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionMessages.java deleted file mode 100644 index 423170410c1..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionMessages.java +++ /dev/null @@ -1,438 +0,0 @@ -/* - * $Id: ActionMessages.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import java.io.Serializable; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; - -/** - *

A class that encapsulates messages. Messages can be either global or - * they are specific to a particular bean property.

- * - *

Each individual message is described by an ActionMessage - * object, which contains a message key (to be looked up in an appropriate - * message resources database), and up to four placeholder arguments used for - * parametric substitution in the resulting message.

- * - *

IMPLEMENTATION NOTE - It is assumed that these objects - * are created and manipulated only within the context of a single thread. - * Therefore, no synchronization is required for access to internal - * collections.

- * - * @version $Rev: 471754 $ $Date: 2005-08-26 21:58:39 -0400 (Fri, 26 Aug 2005) - * $ - * @since Struts 1.1 - */ -public class ActionMessages implements Serializable { - /** - *

Compares ActionMessageItem objects.

- */ - private static final Comparator ACTION_ITEM_COMPARATOR = - new Comparator() { - public int compare(Object o1, Object o2) { - return ((ActionMessageItem) o1).getOrder() - - ((ActionMessageItem) o2).getOrder(); - } - }; - - // ----------------------------------------------------- Manifest Constants - - /** - *

The "property name" marker to use for global messages, as opposed to - * those related to a specific property.

- */ - public static final String GLOBAL_MESSAGE = - "org.apache.struts.action.GLOBAL_MESSAGE"; - - // ----------------------------------------------------- Instance Variables - - /** - *

Have the messages been retrieved from this object?

- * - *

The controller uses this property to determine if session-scoped - * messages can be removed.

- * - * @since Struts 1.2 - */ - protected boolean accessed = false; - - /** - *

The accumulated set of ActionMessage objects - * (represented as an ArrayList) for each property, keyed by property - * name.

- */ - protected HashMap messages = new HashMap(); - - /** - *

The current number of the property/key being added. This is used to - * maintain the order messages are added.

- */ - protected int iCount = 0; - - // --------------------------------------------------------- Public Methods - - /** - *

Create an empty ActionMessages object.

- */ - public ActionMessages() { - super(); - } - - /** - *

Create an ActionMessages object initialized with the - * given messages.

- * - * @param messages The messages to be initially added to this object. This - * parameter can be null. - * @since Struts 1.1 - */ - public ActionMessages(ActionMessages messages) { - super(); - this.add(messages); - } - - /** - *

Add a message to the set of messages for the specified property. An - * order of the property/key is maintained based on the initial addition - * of the property/key.

- * - * @param property Property name (or ActionMessages.GLOBAL_MESSAGE) - * @param message The message to be added - */ - public void add(String property, ActionMessage message) { - ActionMessageItem item = (ActionMessageItem) messages.get(property); - List list; - - if (item == null) { - list = new ArrayList(); - item = new ActionMessageItem(list, iCount++, property); - - messages.put(property, item); - } else { - list = item.getList(); - } - - list.add(message); - } - - /** - *

Adds the messages from the given ActionMessages object - * to this set of messages. The messages are added in the order they are - * returned from the properties method. If a message's - * property is already in the current ActionMessages object, - * it is added to the end of the list for that property. If a message's - * property is not in the current list it is added to the end of the - * properties.

- * - * @param actionMessages The ActionMessages object to be - * added. This parameter can be null. - * @since Struts 1.1 - */ - public void add(ActionMessages actionMessages) { - if (actionMessages == null) { - return; - } - - // loop over properties - Iterator props = actionMessages.properties(); - - while (props.hasNext()) { - String property = (String) props.next(); - - // loop over messages for each property - Iterator msgs = actionMessages.get(property); - - while (msgs.hasNext()) { - ActionMessage msg = (ActionMessage) msgs.next(); - - this.add(property, msg); - } - } - } - - /** - *

Clear all messages recorded by this object.

- */ - public void clear() { - messages.clear(); - } - - /** - *

Return true if there are no messages recorded in this - * collection, or false otherwise.

- * - * @return true if there are no messages recorded in this - * collection; false otherwise. - * @since Struts 1.1 - */ - public boolean isEmpty() { - return (messages.isEmpty()); - } - - /** - *

Return the set of all recorded messages, without distinction by - * which property the messages are associated with. If there are no - * messages recorded, an empty enumeration is returned.

- * - * @return An iterator over the messages for all properties. - */ - public Iterator get() { - this.accessed = true; - - if (messages.isEmpty()) { - return Collections.EMPTY_LIST.iterator(); - } - - ArrayList results = new ArrayList(); - ArrayList actionItems = new ArrayList(); - - for (Iterator i = messages.values().iterator(); i.hasNext();) { - actionItems.add(i.next()); - } - - // Sort ActionMessageItems based on the initial order the - // property/key was added to ActionMessages. - Collections.sort(actionItems, ACTION_ITEM_COMPARATOR); - - for (Iterator i = actionItems.iterator(); i.hasNext();) { - ActionMessageItem ami = (ActionMessageItem) i.next(); - - for (Iterator msgsIter = ami.getList().iterator(); - msgsIter.hasNext();) { - results.add(msgsIter.next()); - } - } - - return results.iterator(); - } - - /** - *

Return the set of messages related to a specific property. If there - * are no such messages, an empty enumeration is returned.

- * - * @param property Property name (or ActionMessages.GLOBAL_MESSAGE) - * @return An iterator over the messages for the specified property. - */ - public Iterator get(String property) { - this.accessed = true; - - ActionMessageItem item = (ActionMessageItem) messages.get(property); - - if (item == null) { - return (Collections.EMPTY_LIST.iterator()); - } else { - return (item.getList().iterator()); - } - } - - /** - *

Returns true if the get() or - * get(String) methods are called.

- * - * @return true if the messages have been accessed one or - * more times. - * @since Struts 1.2 - */ - public boolean isAccessed() { - return this.accessed; - } - - /** - *

Return the set of property names for which at least one message has - * been recorded. If there are no messages, an empty Iterator - * is returned. If you have recorded global messages, the - * String value of ActionMessages.GLOBAL_MESSAGE - * will be one of the returned property names.

- * - * @return An iterator over the property names for which messages exist. - */ - public Iterator properties() { - if (messages.isEmpty()) { - return Collections.EMPTY_LIST.iterator(); - } - - ArrayList results = new ArrayList(); - ArrayList actionItems = new ArrayList(); - - for (Iterator i = messages.values().iterator(); i.hasNext();) { - actionItems.add(i.next()); - } - - // Sort ActionMessageItems based on the initial order the - // property/key was added to ActionMessages. - Collections.sort(actionItems, ACTION_ITEM_COMPARATOR); - - for (Iterator i = actionItems.iterator(); i.hasNext();) { - ActionMessageItem ami = (ActionMessageItem) i.next(); - - results.add(ami.getProperty()); - } - - return results.iterator(); - } - - /** - *

Return the number of messages recorded for all properties (including - * global messages). NOTE - it is more efficient to call - * isEmpty if all you care about is whether or not there are - * any messages at all.

- * - * @return The number of messages associated with all properties. - */ - public int size() { - int total = 0; - - for (Iterator i = messages.values().iterator(); i.hasNext();) { - ActionMessageItem ami = (ActionMessageItem) i.next(); - - total += ami.getList().size(); - } - - return (total); - } - - /** - *

Return the number of messages associated with the specified - * property.

- * - * @param property Property name (or ActionMessages.GLOBAL_MESSAGE) - * @return The number of messages associated with the property. - */ - public int size(String property) { - ActionMessageItem item = (ActionMessageItem) messages.get(property); - - return (item == null) ? 0 : item.getList().size(); - } - - /** - *

Returns a String representation of this ActionMessages' property - * name=message list mapping.

- * - * @return String representation of the messages - * @see Object#toString() - */ - public String toString() { - return this.messages.toString(); - } - - /** - *

This class is used to store a set of messages associated with a - * property/key and the position it was initially added to list.

- */ - protected class ActionMessageItem implements Serializable { - /** - *

The list of ActionMessages.

- */ - protected List list = null; - - /** - *

The position in the list of messages.

- */ - protected int iOrder = 0; - - /** - *

The property associated with ActionMessage.

- */ - protected String property = null; - - /** - *

Construct an instance of this class.

- * - * @param list The list of ActionMessages. - * @param iOrder The position in the list of messages. - * @param property The property associated with ActionMessage. - */ - public ActionMessageItem(List list, int iOrder, String property) { - this.list = list; - this.iOrder = iOrder; - this.property = property; - } - - /** - *

Retrieve the list of messages associated with this item.

- * - * @return The list of messages associated with this item. - */ - public List getList() { - return list; - } - - /** - *

Set the list of messages associated with this item.

- * - * @param list The list of messages associated with this item. - */ - public void setList(List list) { - this.list = list; - } - - /** - *

Retrieve the position in the message list.

- * - * @return The position in the message list. - */ - public int getOrder() { - return iOrder; - } - - /** - *

Set the position in the message list.

- * - * @param iOrder The position in the message list. - */ - public void setOrder(int iOrder) { - this.iOrder = iOrder; - } - - /** - *

Retrieve the property associated with this item.

- * - * @return The property associated with this item. - */ - public String getProperty() { - return property; - } - - /** - *

Set the property associated with this item.

- * - * @param property The property associated with this item. - */ - public void setProperty(String property) { - this.property = property; - } - - /** - *

Construct a string representation of this object.

- * - * @return A string representation of this object. - */ - public String toString() { - return this.list.toString(); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionRedirect.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionRedirect.java deleted file mode 100755 index 3290e366b7e..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionRedirect.java +++ /dev/null @@ -1,350 +0,0 @@ -/* - * $Id: ActionRedirect.java 513602 2007-03-02 02:50:23Z pbenedict $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.util.ResponseUtils; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - *

A subclass of {@link ActionForward} which is designed for use in - * redirecting requests, with support for adding parameters at runtime.
- * An {@link ForwardConfig} (or subclass) can be passed to the constructor to - * copy its configuration:

- *

- * public ActionForward execute(ActionMapping mapping,
- *                              ActionForm form,
- *                              HttpServletRequest request,
- *                              HttpServletResponse response)
- *         throws Exception {
- *     ActionRedirect redirect =
- *             new ActionRedirect(mapping.findForward("doRedirect"));
- *     redirect.addParameter("param1","value1");
- *     redirect.addParameter("param2","2");
- *     redirect.addParameter("param3","3.0");
- *     return redirect;
- * }
- * 
- *

- * - * @version $Rev: 513602 $ $Date: 2007-03-02 03:50:23 +0100 (Fri, 02 Mar 2007) $ - */ -public class ActionRedirect extends ActionForward { - // ----------------------------------------------------- Manifest constants - - /** - *

Default allocation size for string buffers.

- */ - private static final int DEFAULT_BUFFER_SIZE = 256; - - // ----------------------------------------------------- Static variables - - /** - *

Commons logging instance.

- */ - protected static final Log LOG = LogFactory.getLog(ActionRedirect.class); - - // ----------------------------------------------------- Instance variables - - /** - *

Holds the redirect parameters. Each entry is either a String or a - * String[] depending on whether it has one or more entries.

- */ - protected Map parameterValues = null; - - /** - *

Holds the anchor value.

- */ - protected String anchorValue = null; - - // ----------------------------------------------------- Constructors - - /** - *

Construct a new instance with redirect set to true and initialize - * parameter lists.

- */ - public ActionRedirect() { - setRedirect(true); - initializeParameters(); - } - - /** - *

Construct a new instance with the specified path and initialize - * parameter lists.

- * - * @param path Path for this instance - */ - public ActionRedirect(String path) { - super(path); - setRedirect(true); - initializeParameters(); - } - - /** - *

Construct a new instance with the specified values and initialize - * parameter lists.

- * - * @param name Name of this instance - * @param path Path for this instance - * @param module Module prefix, if any - */ - public ActionRedirect(String name, String path, String module) { - super(name, path, true); - setModule(module); - initializeParameters(); - } - - /** - *

Construct a new instance with a {@link ForwardConfig} object to copy - * name, path, contextRelative, and arbitrary property values from.

- * - * @param baseConfig the {@link ForwardConfig} to copy configuration - * values from - */ - public ActionRedirect(ForwardConfig baseConfig) { - setName(baseConfig.getName()); - setPath(baseConfig.getPath()); - setModule(baseConfig.getModule()); - setRedirect(true); - inheritProperties(baseConfig); - initializeParameters(); - } - - // ----------------------------------------------------- Private methods - - /** - *

Initializes the internal objects used to hold parameter values.

- */ - private void initializeParameters() { - parameterValues = new HashMap(); - } - - // ----------------------------------------------------- Public methods - - /** - *

Adds the object's toString() to the list of parameters if it's not - * null, or an empty string with the given fieldName if it is.

- * - * @param fieldName the name to use for the parameter - * @param valueObj the value for this parameter - * @return The ActionRedirect instance this method is called on - */ - public ActionRedirect addParameter(String fieldName, Object valueObj) { - String value = (valueObj != null) ? valueObj.toString() : ""; - - if (parameterValues == null) { - initializeParameters(); - } - - //try { - value = ResponseUtils.encodeURL(value); - - //} catch (UnsupportedEncodingException uce) { - // this shouldn't happen since UTF-8 is the W3C Recommendation - // String errorMsg = "UTF-8 Character Encoding not supported"; - // LOG.error(errorMsg, uce); - // throw new RuntimeException(errorMsg, uce); - // } - Object currentValue = parameterValues.get(fieldName); - - if (currentValue == null) { - // there's no value for this param yet; add it to the map - parameterValues.put(fieldName, value); - } else if (currentValue instanceof String) { - // there's already a value; let's use an array for these parameters - String[] newValue = new String[2]; - - newValue[0] = (String) currentValue; - newValue[1] = value; - parameterValues.put(fieldName, newValue); - } else if (currentValue instanceof String[]) { - // add the value to the list of existing values - List newValues = - new ArrayList(Arrays.asList((Object[]) currentValue)); - - newValues.add(value); - parameterValues.put(fieldName, - newValues.toArray(new String[newValues.size()])); - } - return this; - } - - /** - *

Adds an anchor to the path. Technically, the anchor value is - * just stored for later and will be added to the path in getPath(). - * Note that this is a considerably simpler method than the - * addParmaeter method because aside from encoding the value, there - * isn't really anything to do. Passing in null is fine because that - * is the value that will be checked for later to determine whether - * to append an anchor to the path or not.

- * - * @param anchorValue The anchor to append to the path - * @return The ActionRefirect instance this method is called on - */ - public ActionRedirect setAnchor(String anchorValue) { - this.anchorValue = ResponseUtils.encodeURL(anchorValue); - return this; - } - - /** - *

Get the original path without the parameters added at runtime.

- * - * @return the original path as configured. - */ - public String getOriginalPath() { - return super.getPath(); - } - - /** - *

Get the path for this object, including any parameters that may have - * been added at runtime.

- * - * @return The path for this object. - */ - public String getPath() { - // get the original path and the parameter string that was formed - String originalPath = getOriginalPath(); - String parameterString = getParameterString(); - String anchorString = getAnchorString(); - - StringBuffer result = new StringBuffer(originalPath); - - if ((parameterString != null) && (parameterString.length() > 0)) { - // the parameter separator we're going to use - String paramSeparator = "?"; - - // true if we need to use a parameter separator after originalPath - boolean needsParamSeparator = true; - - // does the original path already have a "?"? - int paramStartIndex = originalPath.indexOf("?"); - - if (paramStartIndex > 0) { - // did the path end with "?"? - needsParamSeparator = (paramStartIndex != (originalPath.length() - - 1)); - - if (needsParamSeparator) { - paramSeparator = "&"; - } - } - - if (needsParamSeparator) { - result.append(paramSeparator); - } - - result.append(parameterString); - } - - // append anchor string (or blank if none was set) - result.append(anchorString); - - - return result.toString(); - } - - /** - *

Forms the string containing the parameters - * passed onto this object thru calls to addParameter().

- * - * @return a string which can be appended to the URLs. The - * return string includes a leading hash - * mark (#). - */ - public String getAnchorString() { - String retVal = ""; - if (anchorValue != null) { - retVal = "#" + anchorValue; - } - return retVal; - } - - /** - *

Forms the string containing the parameters passed onto this object - * thru calls to addParameter().

- * - * @return a string which can be appended to the URLs. The return string - * does not include a leading question mark (?). - */ - public String getParameterString() { - StringBuffer strParam = new StringBuffer(DEFAULT_BUFFER_SIZE); - - // loop through all parameters - Iterator iterator = parameterValues.keySet().iterator(); - - while (iterator.hasNext()) { - // get the parameter name - String paramName = (String) iterator.next(); - - // get the value for this parameter - Object value = parameterValues.get(paramName); - - if (value instanceof String) { - // just one value for this param - strParam.append(paramName).append("=").append(value); - } else if (value instanceof String[]) { - // loop through all values for this param - String[] values = (String[]) value; - - for (int i = 0; i < values.length; i++) { - strParam.append(paramName).append("=").append(values[i]); - - if (i < (values.length - 1)) { - strParam.append("&"); - } - } - } - - if (iterator.hasNext()) { - strParam.append("&"); - } - } - - return strParam.toString(); - } - - // ----------------------------------------------------- toString() - - /** - *

Return a string description of this object.

- * - * @return a string containing the original path for this object and the - * parameters it currently holds - */ - public String toString() { - StringBuffer result = new StringBuffer(DEFAULT_BUFFER_SIZE); - - result.append("ActionRedirect ["); - result.append("originalPath=").append(getOriginalPath()).append(";"); - result.append("parameterString=").append(getParameterString()).append("]"); - result.append("anchorString=").append(getAnchorString()).append("]"); - - return result.toString(); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionResources.properties b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionResources.properties deleted file mode 100755 index bbd6dc7a7f4..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionResources.properties +++ /dev/null @@ -1,52 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -actionCreate=No action instance for path {0} could be created -applicationLoading=Loading application resources from resource {0} -applicationResources=Cannot load application resources bundle {0} -configCompleted=Verification of ModuleConfig has been completed -configExtends=Error extending {0} {1} -configExtends.creation=Unable to create an instance of {0} -configFatal=Fatal module configuration error, see previous messages -configFieldRequired=Missing {0} value for {1} {2} -configInit=Initializing configuration from resource path {0} -configIO=Input/output error reading configuration from resource path {0} -configMapping=Configuring mapping for path {0} -configMissing=Missing configuration resource for path {0} -configParse=Parsing error processing resource path {0} -configVerifying=Verifying ModuleConfig for this module -configWebXml=The /WEB-INF/web.xml was not found. -finalizing=Finalizing this controller servlet -formBean=Error creating form bean of class {0} -forwardPathNull=The path of an ForwardConfig cannot be null -initProcessor=Exception initializing RequestProcessor -mappingType=Must specify one of "forward", "include" or "type" for path {0} -notAuthorized=User is not authorized to access action {0} -noInput=No input attribute for mapping path {0} -processInvalid=Invalid path was requested -processPath=No process path found in request URI -reloading=Reloading from configuration files -requestDispatcher=Cannot get request dispatcher for path {0} -sessionCreate=No user session could be created -unhandledException=Unhandled Exception thrown: {0} -verifyActionMappingClass.invalid=Invalid ActionMapping class {0} specified -verifyActionMappingClass.missing=No ActionMapping implementation class specified -verifyForwardConfig.invalid=Invalid path {0} for ForwardConfig {1} -verifyForwardConfig.missing=Missing path for ForwardConfig {0} -verifyMessageResourcesConfigs.invalid=Invalid factory class {0} for MessageResourcesConfig -verifyMessageResourcesConfigs.key=No key attribute for MessageResourcesConfig -verifyMessageResourcesConfigs.missing=No factory attribute for MessageResourcesConfig -verifyPlugInConfigs.invalid=Invalid className {0} for PlugInConfig -verifyPlugInConfigs.missing=No className attribute for PlugInConfig diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionResources_ja.properties b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionResources_ja.properties deleted file mode 100644 index 6809c536871..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionResources_ja.properties +++ /dev/null @@ -1,49 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -actionCreate=\u30D1\u30B9 {0} \u306B\u5BFE\u3059\u308B\u30A2\u30AF\u30B7\u30E7\u30F3\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u3042\u308A\u307E\u305B\u3093 -applicationLoading={0} \u304b\u3089\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30ea\u30bd\u30fc\u30b9\u3092\u30ed\u30fc\u30c9\u3057\u307e\u3059 -applicationResources=\u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb {0} \u3092\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093 -configCompleted=ModuleConfig\u306E\u691C\u8A3C\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F -configFatal=ModuleConfig\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3001\u4E0A\u8A18\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044 -configInit={0} \u3092\u4f7f\u3063\u3066\u8a2d\u5b9a\u306e\u521d\u671f\u5316\u3092\u884c\u3044\u307e\u3059 -configIO=\u8a2d\u5b9a\u60c5\u5831 {0} \u306e\u5165\u51fa\u529b\u30a8\u30e9\u30fc\u3067\u3059 -configMapping=\u30d1\u30b9 {0} \u306b\u5bfe\u3059\u308b\u30de\u30c3\u30d4\u30f3\u30b0\u306e\u8a2d\u5b9a -configMissing=\u30d1\u30b9 {0} \u306b\u5bfe\u3059\u308b\u30de\u30c3\u30d4\u30f3\u30b0\u8a2d\u5b9a\u304c\u3042\u308a\u307e\u305b\u3093 -configParse=\u30d1\u30b9 {0} \u306b\u5bfe\u3059\u308b\u30ea\u30bd\u30fc\u30b9\u8aad\u307f\u8fbc\u307f\u30a8\u30e9\u30fc -configVerifying=\u3053\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u5BFE\u3059\u308BModuleConfig\u306E\u691C\u8A3C -finalizing=\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u306e\u7d42\u4e86\u51e6\u7406 -formBean=\u30d5\u30a9\u30fc\u30e0Bean {0} \u306e\u751f\u6210\u30a8\u30e9\u30fc -initProcessor=RequestProcessor\u521D\u671F\u5316\u4F8B\u5916 -mappingType=\u30d1\u30b9 {0} \u306e\u5c5e\u6027\u306b "forward", "include","type" \u306e\u3046\u3061\u306e\u4e00\u3064\u3092\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059 -notAuthorized=\u3053\u306e\u30e6\u30fc\u30b6\u306f\u30a2\u30af\u30b7\u30e7\u30f3 {0} \u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u305f\u3081\u306e\u8a8d\u8a3c\u304c\u884c\u308f\u308c\u3066\u3044\u307e\u305b\u3093 -noInput=\u30DE\u30C3\u30D4\u30F3\u30B0 {0} \u306B\u5BFE\u3059\u308Binput\u5C5E\u6027\u304C\u6307\u5B9A\u3055\u308C\u3066\u307E\u305B\u3093 -processInvalid=\u30d1\u30b9 {0} \u306b\u5bfe\u3059\u308b\u30ea\u30af\u30a8\u30b9\u30c8\u306f\u7121\u52b9\u3067\u3059 -processPath=\u30ea\u30af\u30a8\u30b9\u30c8\u3055\u308c\u305fURI {0} \u306b\u306f\u51e6\u7406\u306e\u305f\u3081\u306e\u30d1\u30b9\u304c\u542b\u307e\u308c\u3066\u5c45\u307e\u305b\u3093 -reloading=\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u518d\u8aad\u307f\u8fbc\u307f -requestDispatcher=\u30D1\u30B9 {0} \u306B\u5BFE\u3059\u308B\u30EA\u30AF\u30A8\u30B9\u30C8\u30C7\u30A3\u30B9\u30D1\u30C3\u30C1\u30E3\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 -sessionCreate=\u30e6\u30fc\u30b6\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093 -unhandledException=\u51e6\u7406\u3067\u304d\u306a\u3044\u4f8b\u5916\u304c\u30b9\u30ed\u30fc\u3055\u308c\u307e\u3057\u305f: {0} -verifyActionMappingClass.invalid=\u7121\u52B9\u306AActionMapping {0} \u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F -verifyActionMappingClass.missing=ActionMapping\u306E\u5B9F\u88C5\u30AF\u30E9\u30B9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093 -verifyForwardConfig.invalid=ForwardConfig {1} \u306B\u5BFE\u3059\u308B\u30D1\u30B9 {0} \u306F\u7121\u52B9\u3067\u3059 -verifyForwardConfig.missing=ForwardConfig {0} \u306B\u5BFE\u3059\u308B\u30D1\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 -verifyMessageResourcesConfigs.invalid=MessageResourcesConfig\u306E\u30D5\u30A1\u30AF\u30C8\u30EA\u30AF\u30E9\u30B9 {0} \u306F\u7121\u52B9\u3067\u3059 -verifyMessageResourcesConfigs.key=MessageResourcesConfig\u306B\u5BFE\u3059\u308Bkey\u5C5E\u6027\u304C\u3042\u308A\u307E\u305B\u3093 -verifyMessageResourcesConfigs.missing=MessageResourcesConfig\u306B\u5BFE\u3059\u308Bfactory\u5C5E\u6027\u304C\u3042\u308A\u307E\u305B\u3093 -verifyPlugInConfigs.invalid=PlugInConfig\u306B\u5BFE\u3059\u308B\u30AF\u30E9\u30B9\u540D {0} \u306F\u7121\u52B9\u3067\u3059 -verifyPlugInConfigs.missing=PlugInConfig\u306B\u5BFE\u3059\u308BclassName\u5C5E\u6027\u304C\u3042\u308A\u307E\u305B\u3093 - -configWebXml=/WEB-INF/web.xml\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionServlet.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionServlet.java deleted file mode 100755 index 62638f70726..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionServlet.java +++ /dev/null @@ -1,1915 +0,0 @@ -/* - * $Id: ActionServlet.java 483039 2006-12-06 11:34:28Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import org.apache.commons.beanutils.BeanUtils; -import org.apache.commons.beanutils.ConvertUtils; -import org.apache.commons.beanutils.PropertyUtils; -import org.apache.commons.beanutils.converters.BigDecimalConverter; -import org.apache.commons.beanutils.converters.BigIntegerConverter; -import org.apache.commons.beanutils.converters.BooleanConverter; -import org.apache.commons.beanutils.converters.ByteConverter; -import org.apache.commons.beanutils.converters.CharacterConverter; -import org.apache.commons.beanutils.converters.DoubleConverter; -import org.apache.commons.beanutils.converters.FloatConverter; -import org.apache.commons.beanutils.converters.IntegerConverter; -import org.apache.commons.beanutils.converters.LongConverter; -import org.apache.commons.beanutils.converters.ShortConverter; -import org.apache.commons.chain.CatalogFactory; -import org.apache.commons.chain.config.ConfigParser; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.RuleSet; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.Globals; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ConfigRuleSet; -import org.apache.struts.config.ExceptionConfig; -import org.apache.struts.config.FormBeanConfig; -import org.apache.struts.config.FormPropertyConfig; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.MessageResourcesConfig; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.config.ModuleConfigFactory; -import org.apache.struts.config.PlugInConfig; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.MessageResourcesFactory; -import org.apache.struts.util.ModuleUtils; -import org.apache.struts.util.RequestUtils; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; - -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.UnavailableException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import java.io.IOException; -import java.io.InputStream; - -import java.math.BigDecimal; -import java.math.BigInteger; - -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLConnection; - -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.Iterator; -import java.util.List; -import java.util.MissingResourceException; - -/** - *

ActionServlet provides the "controller" in the - * Model-View-Controller (MVC) design pattern for web applications that is - * commonly known as "Model 2". This nomenclature originated with a - * description in the JavaServerPages Specification, version 0.92, and has - * persisted ever since (in the absence of a better name).

- * - *

Generally, a "Model 2" application is architected as follows:

- * - *
    - * - *
  • The user interface will generally be created with server pages, which - * will not themselves contain any business logic. These pages represent the - * "view" component of an MVC architecture.
  • - * - *
  • Forms and hyperlinks in the user interface that require business logic - * to be executed will be submitted to a request URI that is mapped to this - * servlet.
  • - * - *
  • There can be one instance of this servlet class, which receives - * and processes all requests that change the state of a user's interaction - * with the application. The servlet delegates the handling of a request to a - * {@link RequestProcessor} object. This component represents the "controller" - * component of an MVC architecture.
  • - * - *
  • The RequestProcessor selects and invokes an {@link Action} - * class to perform the requested business logic, or delegates the response to - * another resource.
  • - * - *
  • The Action classes can manipulate the state of the - * application's interaction with the user, typically by creating or modifying - * JavaBeans that are stored as request or session attributes (depending on - * how long they need to be available). Such JavaBeans represent the "model" - * component of an MVC architecture.
  • - * - *
  • Instead of producing the next page of the user interface directly, - * Action classes generally return an {@link ActionForward} to - * indicate which resource should handle the response. If the - * Action does not return null, the RequestProcessor - * forwards or redirects to the specified resource (by utilizing - * RequestDispatcher.forward or Response.sendRedirect) - * so as to produce the next page of the user interface.
  • - * - *
- * - *

The standard version of RequestsProcessor implements the - * following logic for each incoming HTTP request. You can override some or - * all of this functionality by subclassing this object and implementing your - * own version of the processing.

- * - *
    - * - *
  • Identify, from the incoming request URI, the substring that will be - * used to select an action procedure.
  • - * - *
  • Use this substring to map to the Java class name of the corresponding - * action class (an implementation of the Action interface). - *
  • - * - *
  • If this is the first request for a particular Action - * class, instantiate an instance of that class and cache it for future - * use.
  • - * - *
  • Optionally populate the properties of an ActionForm bean - * associated with this mapping.
  • - * - *
  • Call the execute method of this Action class, - * passing on a reference to the mapping that was used, the relevant form-bean - * (if any), and the request and the response that were passed to the - * controller by the servlet container (thereby providing access to any - * specialized properties of the mapping itself as well as to the - * ServletContext).
  • - * - *
- * - *

The standard version of ActionServlet is configured based - * on the following servlet initialization parameters, which you will specify - * in the web application deployment descriptor (/WEB-INF/web.xml) - * for your application. Subclasses that specialize this servlet are free to - * define additional initialization parameters.

- * - *
    - * - *
  • config - Comma-separated list of context-relative - * path(s) to the XML resource(s) containing the configuration information for - * the default module. (Multiple files support since Struts 1.1) - * [/WEB-INF/struts-config.xml].
  • - * - *
  • config/${module} - Comma-separated list of - * Context-relative path(s) to the XML resource(s) containing the - * configuration information for the module that will use the specified prefix - * (/${module}). This can be repeated as many times as required for multiple - * modules. (Since Struts 1.1)
  • - * - *
  • configFactory - The Java class name of the - * ModuleConfigFactory used to create the implementation of the - * ModuleConfig interface.
  • - * - *
  • convertNull - Force simulation of the Struts 1.0 - * behavior when populating forms. If set to true, the numeric Java wrapper - * class types (like java.lang.Integer) will default to null - * (rather than 0). (Since Struts 1.1) [false]
  • - * - *
  • rulesets - Comma-delimited list of fully qualified - * classnames of additional org.apache.commons.digester.RuleSet - * instances that should be added to the Digester that will be - * processing struts-config.xml files. By default, only the - * RuleSet for the standard configuration elements is loaded. - * (Since Struts 1.1)
  • - * - *
  • validating - Should we use a validating XML parser to - * process the configuration file (strongly recommended)? [true]
  • - * - *
  • chainConfig - Comma-separated list of either - * context-relative or classloader path(s) to load commons-chain catalog - * definitions from. If none specified, the default Struts catalog that is - * provided with Struts will be used.
  • - * - *
- * - * @version $Rev: 483039 $ $Date: 2005-10-14 19:54:16 -0400 (Fri, 14 Oct 2005) - * $ - */ -public class ActionServlet extends HttpServlet { - /** - *

Commons Logging instance.

- * - * @since Struts 1.1 - */ - protected static Log log = LogFactory.getLog(ActionServlet.class); - - // ----------------------------------------------------- Instance Variables - - /** - *

Comma-separated list of context-relative path(s) to our - * configuration resource(s) for the default module.

- */ - protected String config = "/WEB-INF/struts-config.xml"; - - /** - *

Comma-separated list of context or classloader-relative path(s) that - * contain the configuration for the default commons-chain - * catalog(s).

- */ - protected String chainConfig = "org/apache/struts/chain/chain-config.xml"; - - /** - *

The Digester used to produce ModuleConfig objects from a Struts - * configuration file.

- * - * @since Struts 1.1 - */ - protected Digester configDigester = null; - - /** - *

The flag to request backwards-compatible conversions for form bean - * properties of the Java wrapper class types.

- * - * @since Struts 1.1 - */ - protected boolean convertNull = false; - - /** - *

The resources object for our internal resources.

- */ - protected MessageResources internal = null; - - /** - *

The Java base name of our internal resources.

- * - * @since Struts 1.1 - */ - protected String internalName = "org.apache.struts.action.ActionResources"; - - /** - *

The set of public identifiers, and corresponding resource names, for - * the versions of the configuration file DTDs that we know about. There - * MUST be an even number of Strings in this list!

- */ - protected String[] registrations = - { - "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN", - "/org/apache/struts/resources/struts-config_1_0.dtd", - "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN", - "/org/apache/struts/resources/struts-config_1_1.dtd", - "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN", - "/org/apache/struts/resources/struts-config_1_2.dtd", - "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN", - "/org/apache/struts/resources/struts-config_1_3.dtd", - "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN", - "/org/apache/struts/resources/web-app_2_3.dtd" - }; - - /** - *

The URL pattern to which we are mapped in our web application - * deployment descriptor.

- */ - protected String servletMapping = null; // :FIXME: - multiples? - - /** - *

The servlet name under which we are registered in our web - * application deployment descriptor.

- */ - protected String servletName = null; - - // ---------------------------------------------------- HttpServlet Methods - - /** - *

Gracefully shut down this controller servlet, releasing any - * resources that were allocated at initialization.

- */ - public void destroy() { - if (log.isDebugEnabled()) { - log.debug(internal.getMessage("finalizing")); - } - - destroyModules(); - destroyInternal(); - getServletContext().removeAttribute(Globals.ACTION_SERVLET_KEY); - - // Release our LogFactory and Log instances (if any) - ClassLoader classLoader = - Thread.currentThread().getContextClassLoader(); - - if (classLoader == null) { - classLoader = ActionServlet.class.getClassLoader(); - } - - try { - LogFactory.release(classLoader); - } catch (Throwable t) { - ; // Servlet container doesn't have the latest version - - // of commons-logging-api.jar installed - // :FIXME: Why is this dependent on the container's version of - // commons-logging? Shouldn't this depend on the version packaged - // with Struts? - - /* - Reason: LogFactory.release(classLoader); was added as - an attempt to investigate the OutOfMemory error reported on - Bugzilla #14042. It was committed for version 1.136 by craigmcc - */ - } - - CatalogFactory.clear(); - PropertyUtils.clearDescriptors(); - } - - /** - *

Initialize this servlet. Most of the processing has been factored - * into support methods so that you can override particular functionality - * at a fairly granular level.

- * - * @throws ServletException if we cannot configure ourselves correctly - */ - public void init() throws ServletException { - final String configPrefix = "config/"; - final int configPrefixLength = configPrefix.length() - 1; - - // Wraps the entire initialization in a try/catch to better handle - // unexpected exceptions and errors to provide better feedback - // to the developer - try { - initInternal(); - initOther(); - initServlet(); - initChain(); - - getServletContext().setAttribute(Globals.ACTION_SERVLET_KEY, this); - initModuleConfigFactory(); - - // Initialize modules as needed - ModuleConfig moduleConfig = initModuleConfig("", config); - - initModuleMessageResources(moduleConfig); - initModulePlugIns(moduleConfig); - initModuleFormBeans(moduleConfig); - initModuleForwards(moduleConfig); - initModuleExceptionConfigs(moduleConfig); - initModuleActions(moduleConfig); - moduleConfig.freeze(); - - Enumeration names = getServletConfig().getInitParameterNames(); - - while (names.hasMoreElements()) { - String name = (String) names.nextElement(); - - if (!name.startsWith(configPrefix)) { - continue; - } - - String prefix = name.substring(configPrefixLength); - - moduleConfig = - initModuleConfig(prefix, - getServletConfig().getInitParameter(name)); - initModuleMessageResources(moduleConfig); - initModulePlugIns(moduleConfig); - initModuleFormBeans(moduleConfig); - initModuleForwards(moduleConfig); - initModuleExceptionConfigs(moduleConfig); - initModuleActions(moduleConfig); - moduleConfig.freeze(); - } - - this.initModulePrefixes(this.getServletContext()); - - this.destroyConfigDigester(); - } catch (UnavailableException ex) { - throw ex; - } catch (Throwable t) { - // The follow error message is not retrieved from internal message - // resources as they may not have been able to have been - // initialized - log.error("Unable to initialize Struts ActionServlet due to an " - + "unexpected exception or error thrown, so marking the " - + "servlet as unavailable. Most likely, this is due to an " - + "incorrect or missing library dependency.", t); - throw new UnavailableException(t.getMessage()); - } - } - - /** - *

Saves a String[] of module prefixes in the ServletContext under - * Globals.MODULE_PREFIXES_KEY. NOTE - the "" prefix for - * the default module is not included in this list.

- * - * @param context The servlet context. - * @since Struts 1.2 - */ - protected void initModulePrefixes(ServletContext context) { - ArrayList prefixList = new ArrayList(); - - Enumeration names = context.getAttributeNames(); - - while (names.hasMoreElements()) { - String name = (String) names.nextElement(); - - if (!name.startsWith(Globals.MODULE_KEY)) { - continue; - } - - String prefix = name.substring(Globals.MODULE_KEY.length()); - - if (prefix.length() > 0) { - prefixList.add(prefix); - } - } - - String[] prefixes = - (String[]) prefixList.toArray(new String[prefixList.size()]); - - context.setAttribute(Globals.MODULE_PREFIXES_KEY, prefixes); - } - - /** - *

Process an HTTP "GET" request.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @throws IOException if an input/output error occurs - * @throws ServletException if a servlet exception occurs - */ - public void doGet(HttpServletRequest request, HttpServletResponse response) - throws IOException, ServletException { - process(request, response); - } - - /** - *

Process an HTTP "POST" request.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @throws IOException if an input/output error occurs - * @throws ServletException if a servlet exception occurs - */ - public void doPost(HttpServletRequest request, HttpServletResponse response) - throws IOException, ServletException { - process(request, response); - } - - // --------------------------------------------------------- Public Methods - - /** - *

Remember a servlet mapping from our web application deployment - * descriptor, if it is for this servlet.

- * - * @param servletName The name of the servlet being mapped - * @param urlPattern The URL pattern to which this servlet is mapped - */ - public void addServletMapping(String servletName, String urlPattern) { - if (servletName == null) { - return; - } - - if (servletName.equals(this.servletName)) { - if (log.isDebugEnabled()) { - log.debug("Process servletName=" + servletName - + ", urlPattern=" + urlPattern); - } - - this.servletMapping = urlPattern; - } - } - - /** - *

Return the MessageResources instance containing our - * internal message strings.

- * - * @return the MessageResources instance containing our - * internal message strings. - * @since Struts 1.1 - */ - public MessageResources getInternal() { - return (this.internal); - } - - // ------------------------------------------------------ Protected Methods - - /** - *

Gracefully terminate use of any modules associated with this - * application (if any).

- * - * @since Struts 1.1 - */ - protected void destroyModules() { - ArrayList values = new ArrayList(); - Enumeration names = getServletContext().getAttributeNames(); - - while (names.hasMoreElements()) { - values.add(names.nextElement()); - } - - Iterator keys = values.iterator(); - - while (keys.hasNext()) { - String name = (String) keys.next(); - Object value = getServletContext().getAttribute(name); - - if (!(value instanceof ModuleConfig)) { - continue; - } - - ModuleConfig config = (ModuleConfig) value; - - if (this.getProcessorForModule(config) != null) { - this.getProcessorForModule(config).destroy(); - } - - getServletContext().removeAttribute(name); - - PlugIn[] plugIns = - (PlugIn[]) getServletContext().getAttribute(Globals.PLUG_INS_KEY - + config.getPrefix()); - - if (plugIns != null) { - for (int i = 0; i < plugIns.length; i++) { - int j = plugIns.length - (i + 1); - - plugIns[j].destroy(); - } - - getServletContext().removeAttribute(Globals.PLUG_INS_KEY - + config.getPrefix()); - } - } - } - - /** - *

Gracefully release any configDigester instance that we have created. - *

- * - * @since Struts 1.1 - */ - protected void destroyConfigDigester() { - configDigester = null; - } - - /** - *

Gracefully terminate use of the internal MessageResources.

- */ - protected void destroyInternal() { - internal = null; - } - - /** - *

Return the module configuration object for the currently selected - * module.

- * - * @param request The servlet request we are processing - * @return The module configuration object for the currently selected - * module. - * @since Struts 1.1 - */ - protected ModuleConfig getModuleConfig(HttpServletRequest request) { - ModuleConfig config = - (ModuleConfig) request.getAttribute(Globals.MODULE_KEY); - - if (config == null) { - config = - (ModuleConfig) getServletContext().getAttribute(Globals.MODULE_KEY); - } - - return (config); - } - - /** - *

Look up and return the {@link RequestProcessor} responsible for the - * specified module, creating a new one if necessary.

- * - * @param config The module configuration for which to acquire and return - * a RequestProcessor. - * @return The {@link RequestProcessor} responsible for the specified - * module, - * @throws ServletException If we cannot instantiate a RequestProcessor - * instance a {@link UnavailableException} is - * thrown, meaning your application is not loaded - * and will not be available. - * @since Struts 1.1 - */ - protected synchronized RequestProcessor getRequestProcessor( - ModuleConfig config) throws ServletException { - RequestProcessor processor = this.getProcessorForModule(config); - - if (processor == null) { - try { - processor = - (RequestProcessor) RequestUtils.applicationInstance(config.getControllerConfig() - .getProcessorClass()); - } catch (Exception e) { - throw new UnavailableException( - "Cannot initialize RequestProcessor of class " - + config.getControllerConfig().getProcessorClass() + ": " - + e); - } - - processor.init(this, config); - - String key = Globals.REQUEST_PROCESSOR_KEY + config.getPrefix(); - - getServletContext().setAttribute(key, processor); - } - - return (processor); - } - - /** - *

Returns the RequestProcessor for the given module or null if one - * does not exist. This method will not create a RequestProcessor.

- * - * @param config The ModuleConfig. - * @return The RequestProcessor for the given module, or - * null if one does not exist. - */ - private RequestProcessor getProcessorForModule(ModuleConfig config) { - String key = Globals.REQUEST_PROCESSOR_KEY + config.getPrefix(); - - return (RequestProcessor) getServletContext().getAttribute(key); - } - - /** - *

Initialize the factory used to create the module configuration.

- * - * @since Struts 1.2 - */ - protected void initModuleConfigFactory() { - String configFactory = - getServletConfig().getInitParameter("configFactory"); - - if (configFactory != null) { - ModuleConfigFactory.setFactoryClass(configFactory); - } - } - - /** - *

Initialize the module configuration information for the specified - * module.

- * - * @param prefix Module prefix for this module - * @param paths Comma-separated list of context-relative resource path(s) - * for this modules's configuration resource(s) - * @return The new module configuration instance. - * @throws ServletException if initialization cannot be performed - * @since Struts 1.1 - */ - protected ModuleConfig initModuleConfig(String prefix, String paths) - throws ServletException { - if (log.isDebugEnabled()) { - log.debug("Initializing module path '" + prefix - + "' configuration from '" + paths + "'"); - } - - // Parse the configuration for this module - ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory(); - ModuleConfig config = factoryObject.createModuleConfig(prefix); - - // Configure the Digester instance we will use - Digester digester = initConfigDigester(); - - List urls = splitAndResolvePaths(paths); - URL url; - - for (Iterator i = urls.iterator(); i.hasNext();) { - url = (URL) i.next(); - digester.push(config); - this.parseModuleConfigFile(digester, url); - } - - getServletContext().setAttribute(Globals.MODULE_KEY - + config.getPrefix(), config); - - return config; - } - - /** - *

Parses one module config file.

- * - * @param digester Digester instance that does the parsing - * @param path The path to the config file to parse. - * @throws UnavailableException if file cannot be read or parsed - * @since Struts 1.2 - * @deprecated use parseModuleConfigFile(Digester digester, URL url) - * instead - */ - protected void parseModuleConfigFile(Digester digester, String path) - throws UnavailableException { - try { - List paths = splitAndResolvePaths(path); - - if (paths.size() > 0) { - // Get first path as was the old behavior - URL url = (URL) paths.get(0); - - parseModuleConfigFile(digester, url); - } else { - throw new UnavailableException("Cannot locate path " + path); - } - } catch (UnavailableException ex) { - throw ex; - } catch (ServletException ex) { - handleConfigException(path, ex); - } - } - - /** - *

Parses one module config file.

- * - * @param digester Digester instance that does the parsing - * @param url The url to the config file to parse. - * @throws UnavailableException if file cannot be read or parsed - * @since Struts 1.3 - */ - protected void parseModuleConfigFile(Digester digester, URL url) - throws UnavailableException { - - try { - digester.parse(url); - } catch (IOException e) { - handleConfigException(url.toString(), e); - } catch (SAXException e) { - handleConfigException(url.toString(), e); - } - } - - /** - *

Simplifies exception handling in the parseModuleConfigFile - * method.

- * - * @param path The path to which the exception relates. - * @param e The exception to be wrapped and thrown. - * @throws UnavailableException as a wrapper around Exception - */ - private void handleConfigException(String path, Exception e) - throws UnavailableException { - String msg = internal.getMessage("configParse", path); - - log.error(msg, e); - throw new UnavailableException(msg); - } - - /** - *

Handle errors related to creating an instance of the specified - * class.

- * - * @param className The className that could not be instantiated. - * @param e The exception that was caught. - * @throws ServletException to communicate the error. - */ - private void handleCreationException(String className, Exception e) - throws ServletException { - String errorMessage = - internal.getMessage("configExtends.creation", className); - - log.error(errorMessage, e); - throw new UnavailableException(errorMessage); - } - - /** - *

General handling for exceptions caught while inheriting config - * information.

- * - * @param configType The type of configuration object of configName. - * @param configName The name of the config that could not be extended. - * @param e The exception that was caught. - * @throws ServletException to communicate the error. - */ - private void handleGeneralExtensionException(String configType, - String configName, Exception e) - throws ServletException { - String errorMessage = - internal.getMessage("configExtends", configType, configName); - - log.error(errorMessage, e); - throw new UnavailableException(errorMessage); - } - - /** - *

Handle errors caused by required fields that were not - * specified.

- * - * @param field The name of the required field that was not found. - * @param configType The type of configuration object of configName. - * @param configName The name of the config that's missing the required - * value. - * @throws ServletException to communicate the error. - */ - private void handleValueRequiredException(String field, String configType, - String configName) throws ServletException { - String errorMessage = - internal.getMessage("configFieldRequired", field, configType, - configName); - - log.error(errorMessage); - throw new UnavailableException(errorMessage); - } - - /** - *

Initialize the plug ins for the specified module.

- * - * @param config ModuleConfig information for this module - * @throws ServletException if initialization cannot be performed - * @since Struts 1.1 - */ - protected void initModulePlugIns(ModuleConfig config) - throws ServletException { - if (log.isDebugEnabled()) { - log.debug("Initializing module path '" + config.getPrefix() - + "' plug ins"); - } - - PlugInConfig[] plugInConfigs = config.findPlugInConfigs(); - PlugIn[] plugIns = new PlugIn[plugInConfigs.length]; - - getServletContext().setAttribute(Globals.PLUG_INS_KEY - + config.getPrefix(), plugIns); - - for (int i = 0; i < plugIns.length; i++) { - try { - plugIns[i] = - (PlugIn) RequestUtils.applicationInstance(plugInConfigs[i] - .getClassName()); - BeanUtils.populate(plugIns[i], plugInConfigs[i].getProperties()); - - // Pass the current plugIn config object to the PlugIn. - // The property is set only if the plugin declares it. - // This plugin config object is needed by Tiles - try { - PropertyUtils.setProperty(plugIns[i], - "currentPlugInConfigObject", plugInConfigs[i]); - } catch (Exception e) { - ; - - // FIXME Whenever we fail silently, we must document a valid - // reason for doing so. Why should we fail silently if a - // property can't be set on the plugin? - - /** - * Between version 1.138-1.140 cedric made these changes. - * The exceptions are caught to deal with containers - * applying strict security. This was in response to bug - * #15736 - * - * Recommend that we make the currentPlugInConfigObject part - * of the PlugIn Interface if we can, Rob - */ - } - - plugIns[i].init(this, config); - } catch (ServletException e) { - throw e; - } catch (Exception e) { - String errMsg = - internal.getMessage("plugIn.init", - plugInConfigs[i].getClassName()); - - log(errMsg, e); - throw new UnavailableException(errMsg); - } - } - } - - /** - *

Initialize the form beans for the specified module.

- * - * @param config ModuleConfig information for this module - * @throws ServletException if initialization cannot be performed - * @since Struts 1.3 - */ - protected void initModuleFormBeans(ModuleConfig config) - throws ServletException { - if (log.isDebugEnabled()) { - log.debug("Initializing module path '" + config.getPrefix() - + "' form beans"); - } - - // Process form bean extensions. - FormBeanConfig[] formBeans = config.findFormBeanConfigs(); - - for (int i = 0; i < formBeans.length; i++) { - FormBeanConfig beanConfig = formBeans[i]; - - processFormBeanExtension(beanConfig, config); - } - - for (int i = 0; i < formBeans.length; i++) { - FormBeanConfig formBean = formBeans[i]; - - // Verify that required fields are all present for the form config - if (formBean.getType() == null) { - handleValueRequiredException("type", formBean.getName(), - "form bean"); - } - - // ... and the property configs - FormPropertyConfig[] fpcs = formBean.findFormPropertyConfigs(); - - for (int j = 0; j < fpcs.length; j++) { - FormPropertyConfig property = fpcs[j]; - - if (property.getType() == null) { - handleValueRequiredException("type", property.getName(), - "form property"); - } - } - - // Force creation and registration of DynaActionFormClass instances - // for all dynamic form beans - if (formBean.getDynamic()) { - formBean.getDynaActionFormClass(); - } - } - } - - /** - *

Extend the form bean's configuration as necessary.

- * - * @param beanConfig the configuration to process. - * @param moduleConfig the module configuration for this module. - * @throws ServletException if initialization cannot be performed. - */ - protected void processFormBeanExtension(FormBeanConfig beanConfig, - ModuleConfig moduleConfig) - throws ServletException { - try { - if (!beanConfig.isExtensionProcessed()) { - if (log.isDebugEnabled()) { - log.debug("Processing extensions for '" - + beanConfig.getName() + "'"); - } - - beanConfig = - processFormBeanConfigClass(beanConfig, moduleConfig); - - beanConfig.processExtends(moduleConfig); - } - } catch (ServletException e) { - throw e; - } catch (Exception e) { - handleGeneralExtensionException("FormBeanConfig", - beanConfig.getName(), e); - } - } - - /** - *

Checks if the current beanConfig is using the correct class based on - * the class of its ancestor form bean config.

- * - * @param beanConfig The form bean to check. - * @param moduleConfig The config for the current module. - * @return The form bean config using the correct class as determined by - * the config's ancestor and its own overridden value. - * @throws UnavailableException if an instance of the form bean config - * class cannot be created. - * @throws ServletException on class creation error - */ - protected FormBeanConfig processFormBeanConfigClass( - FormBeanConfig beanConfig, ModuleConfig moduleConfig) - throws ServletException { - String ancestor = beanConfig.getExtends(); - - if (ancestor == null) { - // Nothing to do, then - return beanConfig; - } - - // Make sure that this bean is of the right class - FormBeanConfig baseConfig = moduleConfig.findFormBeanConfig(ancestor); - - if (baseConfig == null) { - throw new UnavailableException("Unable to find " + "form bean '" - + ancestor + "' to extend."); - } - - // Was our bean's class overridden already? - if (beanConfig.getClass().equals(FormBeanConfig.class)) { - // Ensure that our bean is using the correct class - if (!baseConfig.getClass().equals(beanConfig.getClass())) { - // Replace the bean with an instance of the correct class - FormBeanConfig newBeanConfig = null; - String baseConfigClassName = baseConfig.getClass().getName(); - - try { - newBeanConfig = - (FormBeanConfig) RequestUtils.applicationInstance(baseConfigClassName); - - // copy the values - BeanUtils.copyProperties(newBeanConfig, beanConfig); - - FormPropertyConfig[] fpc = - beanConfig.findFormPropertyConfigs(); - - for (int i = 0; i < fpc.length; i++) { - newBeanConfig.addFormPropertyConfig(fpc[i]); - } - } catch (Exception e) { - handleCreationException(baseConfigClassName, e); - } - - // replace beanConfig with newBeanConfig - moduleConfig.removeFormBeanConfig(beanConfig); - moduleConfig.addFormBeanConfig(newBeanConfig); - beanConfig = newBeanConfig; - } - } - - return beanConfig; - } - - /** - *

Initialize the forwards for the specified module.

- * - * @param config ModuleConfig information for this module - * @throws ServletException if initialization cannot be performed - */ - protected void initModuleForwards(ModuleConfig config) - throws ServletException { - if (log.isDebugEnabled()) { - log.debug("Initializing module path '" + config.getPrefix() - + "' forwards"); - } - - // Process forwards extensions. - ForwardConfig[] forwards = config.findForwardConfigs(); - - for (int i = 0; i < forwards.length; i++) { - ForwardConfig forward = forwards[i]; - - processForwardExtension(forward, config, null); - } - - for (int i = 0; i < forwards.length; i++) { - ForwardConfig forward = forwards[i]; - - // Verify that required fields are all present for the forward - if (forward.getPath() == null) { - handleValueRequiredException("path", forward.getName(), - "global forward"); - } - } - } - - /** - *

Extend the forward's configuration as necessary. If actionConfig is - * provided, then this method will process the forwardConfig as part - * of that actionConfig. If actionConfig is null, the forwardConfig - * will be processed as a global forward.

- * - * @param forwardConfig the configuration to process. - * @param moduleConfig the module configuration for this module. - * @param actionConfig If applicable, the config for the current action. - * @throws ServletException if initialization cannot be performed. - */ - protected void processForwardExtension(ForwardConfig forwardConfig, - ModuleConfig moduleConfig, ActionConfig actionConfig) - throws ServletException { - try { - if (!forwardConfig.isExtensionProcessed()) { - if (log.isDebugEnabled()) { - log.debug("Processing extensions for '" - + forwardConfig.getName() + "'"); - } - - forwardConfig = - processForwardConfigClass(forwardConfig, moduleConfig, - actionConfig); - - forwardConfig.processExtends(moduleConfig, actionConfig); - } - } catch (ServletException e) { - throw e; - } catch (Exception e) { - handleGeneralExtensionException("Forward", forwardConfig.getName(), - e); - } - } - - /** - *

Checks if the current forwardConfig is using the correct class based - * on the class of its configuration ancestor. If actionConfig is - * provided, then this method will process the forwardConfig as part - * of that actionConfig. If actionConfig is null, the forwardConfig - * will be processed as a global forward.

- * - * @param forwardConfig The forward to check. - * @param moduleConfig The config for the current module. - * @param actionConfig If applicable, the config for the current action. - * @return The forward config using the correct class as determined by the - * config's ancestor and its own overridden value. - * @throws UnavailableException if an instance of the forward config class - * cannot be created. - * @throws ServletException on class creation error - */ - protected ForwardConfig processForwardConfigClass( - ForwardConfig forwardConfig, ModuleConfig moduleConfig, - ActionConfig actionConfig) - throws ServletException { - String ancestor = forwardConfig.getExtends(); - - if (ancestor == null) { - // Nothing to do, then - return forwardConfig; - } - - // Make sure that this config is of the right class - ForwardConfig baseConfig = null; - if (actionConfig != null) { - // Look for this in the actionConfig - baseConfig = actionConfig.findForwardConfig(ancestor); - } - - if (baseConfig == null) { - // Either this is a forwardConfig that inherits a global config, - // or actionConfig is null - baseConfig = moduleConfig.findForwardConfig(ancestor); - } - - if (baseConfig == null) { - throw new UnavailableException("Unable to find " + "forward '" - + ancestor + "' to extend."); - } - - // Was our forwards's class overridden already? - if (forwardConfig.getClass().equals(ActionForward.class)) { - // Ensure that our forward is using the correct class - if (!baseConfig.getClass().equals(forwardConfig.getClass())) { - // Replace the config with an instance of the correct class - ForwardConfig newForwardConfig = null; - String baseConfigClassName = baseConfig.getClass().getName(); - - try { - newForwardConfig = - (ForwardConfig) RequestUtils.applicationInstance( - baseConfigClassName); - - // copy the values - BeanUtils.copyProperties(newForwardConfig, forwardConfig); - } catch (Exception e) { - handleCreationException(baseConfigClassName, e); - } - - // replace forwardConfig with newForwardConfig - if (actionConfig != null) { - actionConfig.removeForwardConfig(forwardConfig); - actionConfig.addForwardConfig(newForwardConfig); - } else { - // this is a global forward - moduleConfig.removeForwardConfig(forwardConfig); - moduleConfig.addForwardConfig(newForwardConfig); - } - forwardConfig = newForwardConfig; - } - } - - return forwardConfig; - } - - /** - *

Initialize the exception handlers for the specified module.

- * - * @param config ModuleConfig information for this module - * @throws ServletException if initialization cannot be performed - * @since Struts 1.3 - */ - protected void initModuleExceptionConfigs(ModuleConfig config) - throws ServletException { - if (log.isDebugEnabled()) { - log.debug("Initializing module path '" + config.getPrefix() - + "' forwards"); - } - - // Process exception config extensions. - ExceptionConfig[] exceptions = config.findExceptionConfigs(); - - for (int i = 0; i < exceptions.length; i++) { - ExceptionConfig exception = exceptions[i]; - - processExceptionExtension(exception, config, null); - } - - for (int i = 0; i < exceptions.length; i++) { - ExceptionConfig exception = exceptions[i]; - - // Verify that required fields are all present for the config - if (exception.getKey() == null) { - handleValueRequiredException("key", exception.getType(), - "global exception config"); - } - } - } - - /** - *

Extend the exception's configuration as necessary. If actionConfig is - * provided, then this method will process the exceptionConfig as part - * of that actionConfig. If actionConfig is null, the exceptionConfig - * will be processed as a global forward.

- * - * @param exceptionConfig the configuration to process. - * @param moduleConfig the module configuration for this module. - * @param actionConfig If applicable, the config for the current action. - * @throws ServletException if initialization cannot be performed. - */ - protected void processExceptionExtension(ExceptionConfig exceptionConfig, - ModuleConfig moduleConfig, ActionConfig actionConfig) - throws ServletException { - try { - if (!exceptionConfig.isExtensionProcessed()) { - if (log.isDebugEnabled()) { - log.debug("Processing extensions for '" - + exceptionConfig.getType() + "'"); - } - - exceptionConfig = - processExceptionConfigClass(exceptionConfig, moduleConfig, - actionConfig); - - exceptionConfig.processExtends(moduleConfig, actionConfig); - } - } catch (ServletException e) { - throw e; - } catch (Exception e) { - handleGeneralExtensionException("Exception", - exceptionConfig.getType(), e); - } - } - - /** - *

Checks if the current exceptionConfig is using the correct class - * based on the class of its configuration ancestor. If actionConfig is - * provided, then this method will process the exceptionConfig as part - * of that actionConfig. If actionConfig is null, the exceptionConfig - * will be processed as a global forward.

- * - * @param exceptionConfig The config to check. - * @param moduleConfig The config for the current module. - * @param actionConfig If applicable, the config for the current action. - * @return The exception config using the correct class as determined by - * the config's ancestor and its own overridden value. - * @throws ServletException if an instance of the exception config class - * cannot be created. - */ - protected ExceptionConfig processExceptionConfigClass( - ExceptionConfig exceptionConfig, ModuleConfig moduleConfig, - ActionConfig actionConfig) - throws ServletException { - String ancestor = exceptionConfig.getExtends(); - - if (ancestor == null) { - // Nothing to do, then - return exceptionConfig; - } - - // Make sure that this config is of the right class - ExceptionConfig baseConfig = null; - if (actionConfig != null) { - baseConfig = actionConfig.findExceptionConfig(ancestor); - } - - if (baseConfig == null) { - // This means either there's no actionConfig anyway, or the - // ancestor is not defined within the action. - baseConfig = moduleConfig.findExceptionConfig(ancestor); - } - - if (baseConfig == null) { - throw new UnavailableException("Unable to find " - + "exception config '" + ancestor + "' to extend."); - } - - // Was our config's class overridden already? - if (exceptionConfig.getClass().equals(ExceptionConfig.class)) { - // Ensure that our config is using the correct class - if (!baseConfig.getClass().equals(exceptionConfig.getClass())) { - // Replace the config with an instance of the correct class - ExceptionConfig newExceptionConfig = null; - String baseConfigClassName = baseConfig.getClass().getName(); - - try { - newExceptionConfig = - (ExceptionConfig) RequestUtils.applicationInstance( - baseConfigClassName); - - // copy the values - BeanUtils.copyProperties(newExceptionConfig, - exceptionConfig); - } catch (Exception e) { - handleCreationException(baseConfigClassName, e); - } - - // replace exceptionConfig with newExceptionConfig - if (actionConfig != null) { - actionConfig.removeExceptionConfig(exceptionConfig); - actionConfig.addExceptionConfig(newExceptionConfig); - } else { - moduleConfig.removeExceptionConfig(exceptionConfig); - moduleConfig.addExceptionConfig(newExceptionConfig); - } - exceptionConfig = newExceptionConfig; - } - } - - return exceptionConfig; - } - - /** - *

Initialize the action configs for the specified module.

- * - * @param config ModuleConfig information for this module - * @throws ServletException if initialization cannot be performed - * @since Struts 1.3 - */ - protected void initModuleActions(ModuleConfig config) - throws ServletException { - if (log.isDebugEnabled()) { - log.debug("Initializing module path '" + config.getPrefix() - + "' action configs"); - } - - // Process ActionConfig extensions. - ActionConfig[] actionConfigs = config.findActionConfigs(); - - for (int i = 0; i < actionConfigs.length; i++) { - ActionConfig actionConfig = actionConfigs[i]; - - processActionConfigExtension(actionConfig, config); - } - - for (int i = 0; i < actionConfigs.length; i++) { - ActionConfig actionConfig = actionConfigs[i]; - - // Verify that required fields are all present for the forward - // configs - ForwardConfig[] forwards = actionConfig.findForwardConfigs(); - - for (int j = 0; j < forwards.length; j++) { - ForwardConfig forward = forwards[j]; - - if (forward.getPath() == null) { - handleValueRequiredException("path", forward.getName(), - "action forward"); - } - } - - // ... and the exception configs - ExceptionConfig[] exceptions = actionConfig.findExceptionConfigs(); - - for (int j = 0; j < exceptions.length; j++) { - ExceptionConfig exception = exceptions[j]; - - if (exception.getKey() == null) { - handleValueRequiredException("key", exception.getType(), - "action exception config"); - } - } - } - } - - /** - *

Extend the action's configuration as necessary.

- * - * @param actionConfig the configuration to process. - * @param moduleConfig the module configuration for this module. - * @throws ServletException if initialization cannot be performed. - */ - protected void processActionConfigExtension(ActionConfig actionConfig, - ModuleConfig moduleConfig) - throws ServletException { - try { - if (!actionConfig.isExtensionProcessed()) { - if (log.isDebugEnabled()) { - log.debug("Processing extensions for '" - + actionConfig.getPath() + "'"); - } - - actionConfig = - processActionConfigClass(actionConfig, moduleConfig); - - actionConfig.processExtends(moduleConfig); - } - - // Process forwards extensions. - ForwardConfig[] forwards = actionConfig.findForwardConfigs(); - for (int i = 0; i < forwards.length; i++) { - ForwardConfig forward = forwards[i]; - processForwardExtension(forward, moduleConfig, actionConfig); - } - - // Process exception extensions. - ExceptionConfig[] exceptions = actionConfig.findExceptionConfigs(); - for (int i = 0; i < exceptions.length; i++) { - ExceptionConfig exception = exceptions[i]; - processExceptionExtension(exception, moduleConfig, - actionConfig); - } - } catch (ServletException e) { - throw e; - } catch (Exception e) { - handleGeneralExtensionException("Action", actionConfig.getPath(), e); - } - } - - /** - *

Checks if the current actionConfig is using the correct class based - * on the class of its ancestor ActionConfig.

- * - * @param actionConfig The action config to check. - * @param moduleConfig The config for the current module. - * @return The config object using the correct class as determined by the - * config's ancestor and its own overridden value. - * @throws ServletException if an instance of the action config class - * cannot be created. - */ - protected ActionConfig processActionConfigClass(ActionConfig actionConfig, - ModuleConfig moduleConfig) - throws ServletException { - String ancestor = actionConfig.getExtends(); - - if (ancestor == null) { - // Nothing to do, then - return actionConfig; - } - - // Make sure that this config is of the right class - ActionConfig baseConfig = moduleConfig.findActionConfig(ancestor); - - if (baseConfig == null) { - throw new UnavailableException("Unable to find " - + "action config for '" + ancestor + "' to extend."); - } - - // Was our actionConfig's class overridden already? - if (actionConfig.getClass().equals(ActionMapping.class)) { - // Ensure that our config is using the correct class - if (!baseConfig.getClass().equals(actionConfig.getClass())) { - // Replace the config with an instance of the correct class - ActionConfig newActionConfig = null; - String baseConfigClassName = baseConfig.getClass().getName(); - - try { - newActionConfig = - (ActionConfig) RequestUtils.applicationInstance(baseConfigClassName); - - // copy the values - BeanUtils.copyProperties(newActionConfig, actionConfig); - - // copy the forward and exception configs, too - ForwardConfig[] forwards = - actionConfig.findForwardConfigs(); - - for (int i = 0; i < forwards.length; i++) { - newActionConfig.addForwardConfig(forwards[i]); - } - - ExceptionConfig[] exceptions = - actionConfig.findExceptionConfigs(); - - for (int i = 0; i < exceptions.length; i++) { - newActionConfig.addExceptionConfig(exceptions[i]); - } - } catch (Exception e) { - handleCreationException(baseConfigClassName, e); - } - - // replace actionConfig with newActionConfig - moduleConfig.removeActionConfig(actionConfig); - moduleConfig.addActionConfig(newActionConfig); - actionConfig = newActionConfig; - } - } - - return actionConfig; - } - - /** - *

Initialize the application MessageResources for the - * specified module.

- * - * @param config ModuleConfig information for this module - * @throws ServletException if initialization cannot be performed - * @since Struts 1.1 - */ - protected void initModuleMessageResources(ModuleConfig config) - throws ServletException { - MessageResourcesConfig[] mrcs = config.findMessageResourcesConfigs(); - - for (int i = 0; i < mrcs.length; i++) { - if ((mrcs[i].getFactory() == null) - || (mrcs[i].getParameter() == null)) { - continue; - } - - if (log.isDebugEnabled()) { - log.debug("Initializing module path '" + config.getPrefix() - + "' message resources from '" + mrcs[i].getParameter() - + "'"); - } - - String factory = mrcs[i].getFactory(); - - MessageResourcesFactory.setFactoryClass(factory); - - MessageResourcesFactory factoryObject = - MessageResourcesFactory.createFactory(); - - factoryObject.setConfig(mrcs[i]); - - MessageResources resources = - factoryObject.createResources(mrcs[i].getParameter()); - - resources.setReturnNull(mrcs[i].getNull()); - resources.setEscape(mrcs[i].isEscape()); - getServletContext().setAttribute(mrcs[i].getKey() - + config.getPrefix(), resources); - } - } - - /** - *

Create (if needed) and return a new Digester instance - * that has been initialized to process Struts module configuration files - * and configure a corresponding ModuleConfig object (which - * must be pushed on to the evaluation stack before parsing begins).

- * - * @return A new configured Digester instance. - * @throws ServletException if a Digester cannot be configured - * @since Struts 1.1 - */ - protected Digester initConfigDigester() - throws ServletException { - // :FIXME: Where can ServletException be thrown? - // Do we have an existing instance? - if (configDigester != null) { - return (configDigester); - } - - // Create a new Digester instance with standard capabilities - configDigester = new Digester(); - configDigester.setNamespaceAware(true); - configDigester.setValidating(this.isValidating()); - configDigester.setUseContextClassLoader(true); - configDigester.addRuleSet(new ConfigRuleSet()); - - for (int i = 0; i < registrations.length; i += 2) { - URL url = this.getClass().getResource(registrations[i + 1]); - - if (url != null) { - configDigester.register(registrations[i], url.toString()); - } - } - - this.addRuleSets(); - - // Return the completely configured Digester instance - return (configDigester); - } - - /** - *

Add any custom RuleSet instances to configDigester that have been - * specified in the rulesets init parameter.

- * - * @throws ServletException if an error occurs - */ - private void addRuleSets() - throws ServletException { - String rulesets = getServletConfig().getInitParameter("rulesets"); - - if (rulesets == null) { - rulesets = ""; - } - - rulesets = rulesets.trim(); - - String ruleset; - - while (rulesets.length() > 0) { - int comma = rulesets.indexOf(","); - - if (comma < 0) { - ruleset = rulesets.trim(); - rulesets = ""; - } else { - ruleset = rulesets.substring(0, comma).trim(); - rulesets = rulesets.substring(comma + 1).trim(); - } - - if (log.isDebugEnabled()) { - log.debug("Configuring custom Digester Ruleset of type " - + ruleset); - } - - try { - RuleSet instance = - (RuleSet) RequestUtils.applicationInstance(ruleset); - - this.configDigester.addRuleSet(instance); - } catch (Exception e) { - log.error("Exception configuring custom Digester RuleSet", e); - throw new ServletException(e); - } - } - } - - /** - *

Check the status of the validating initialization - * parameter.

- * - * @return true if the module Digester should validate. - */ - private boolean isValidating() { - boolean validating = true; - String value = getServletConfig().getInitParameter("validating"); - - if ("false".equalsIgnoreCase(value) || "no".equalsIgnoreCase(value) - || "n".equalsIgnoreCase(value) || "0".equalsIgnoreCase(value)) { - validating = false; - } - - return validating; - } - - /** - *

Initialize our internal MessageResources bundle.

- * - * @throws ServletException if we cannot initialize these resources - * @throws UnavailableException if we cannot load resources - */ - protected void initInternal() - throws ServletException { - try { - internal = MessageResources.getMessageResources(internalName); - } catch (MissingResourceException e) { - log.error("Cannot load internal resources from '" + internalName - + "'", e); - throw new UnavailableException( - "Cannot load internal resources from '" + internalName + "'"); - } - } - - /** - *

Parse the configuration documents specified by the - * chainConfig init-param to configure the default {@link - * org.apache.commons.chain.Catalog} that is registered in the {@link - * CatalogFactory} instance for this application.

- * - * @throws ServletException if an error occurs. - */ - protected void initChain() - throws ServletException { - // Parse the configuration file specified by path or resource - try { - String value; - - value = getServletConfig().getInitParameter("chainConfig"); - - if (value != null) { - chainConfig = value; - } - - ConfigParser parser = new ConfigParser(); - List urls = splitAndResolvePaths(chainConfig); - URL resource; - - for (Iterator i = urls.iterator(); i.hasNext();) { - resource = (URL) i.next(); - log.info("Loading chain catalog from " + resource); - parser.parse(resource); - } - } catch (Exception e) { - log.error("Exception loading resources", e); - throw new ServletException(e); - } - } - - /** - *

Initialize other global characteristics of the controller - * servlet.

- * - * @throws ServletException if we cannot initialize these resources - */ - protected void initOther() - throws ServletException { - String value; - - value = getServletConfig().getInitParameter("config"); - - if (value != null) { - config = value; - } - - // Backwards compatibility for form beans of Java wrapper classes - // Set to true for strict Struts 1.0 compatibility - value = getServletConfig().getInitParameter("convertNull"); - - if ("true".equalsIgnoreCase(value) || "yes".equalsIgnoreCase(value) - || "on".equalsIgnoreCase(value) || "y".equalsIgnoreCase(value) - || "1".equalsIgnoreCase(value)) { - convertNull = true; - } - - if (convertNull) { - ConvertUtils.deregister(); - ConvertUtils.register(new BigDecimalConverter(null), - BigDecimal.class); - ConvertUtils.register(new BigIntegerConverter(null), - BigInteger.class); - ConvertUtils.register(new BooleanConverter(null), Boolean.class); - ConvertUtils.register(new ByteConverter(null), Byte.class); - ConvertUtils.register(new CharacterConverter(null), Character.class); - ConvertUtils.register(new DoubleConverter(null), Double.class); - ConvertUtils.register(new FloatConverter(null), Float.class); - ConvertUtils.register(new IntegerConverter(null), Integer.class); - ConvertUtils.register(new LongConverter(null), Long.class); - ConvertUtils.register(new ShortConverter(null), Short.class); - } - } - - /** - *

Initialize the servlet mapping under which our controller servlet is - * being accessed. This will be used in the &html:form> - * tag to generate correct destination URLs for form submissions.

- * - * @throws ServletException if error happens while scanning web.xml - */ - protected void initServlet() - throws ServletException { - // Remember our servlet name - this.servletName = getServletConfig().getServletName(); - - // Prepare a Digester to scan the web application deployment descriptor - Digester digester = new Digester(); - - digester.push(this); - digester.setNamespaceAware(true); - digester.setValidating(false); - - // Register our local copy of the DTDs that we can find - for (int i = 0; i < registrations.length; i += 2) { - URL url = this.getClass().getResource(registrations[i + 1]); - - if (url != null) { - digester.register(registrations[i], url.toString()); - } - } - - // Configure the processing rules that we need - digester.addCallMethod("web-app/servlet-mapping", "addServletMapping", 2); - digester.addCallParam("web-app/servlet-mapping/servlet-name", 0); - digester.addCallParam("web-app/servlet-mapping/url-pattern", 1); - - // Process the web application deployment descriptor - if (log.isDebugEnabled()) { - log.debug("Scanning web.xml for controller servlet mapping"); - } - - InputStream input = - getServletContext().getResourceAsStream("/WEB-INF/web.xml"); - - if (input == null) { - log.error(internal.getMessage("configWebXml")); - throw new ServletException(internal.getMessage("configWebXml")); - } - - try { - digester.parse(input); - } catch (IOException e) { - log.error(internal.getMessage("configWebXml"), e); - throw new ServletException(e); - } catch (SAXException e) { - log.error(internal.getMessage("configWebXml"), e); - throw new ServletException(e); - } finally { - try { - input.close(); - } catch (IOException e) { - log.error(internal.getMessage("configWebXml"), e); - throw new ServletException(e); - } - } - - // Record a servlet context attribute (if appropriate) - if (log.isDebugEnabled()) { - log.debug("Mapping for servlet '" + servletName + "' = '" - + servletMapping + "'"); - } - - if (servletMapping != null) { - getServletContext().setAttribute(Globals.SERVLET_KEY, servletMapping); - } - } - - /** - *

Takes a comma-delimited string and splits it into paths, then - * resolves those paths using the ServletContext and appropriate - * ClassLoader. When loading from the classloader, multiple resources per - * path are supported to support, for example, multiple jars containing - * the same named config file.

- * - * @param paths A comma-delimited string of paths - * @return A list of resolved URL's for all found resources - * @throws ServletException if a servlet exception is thrown - */ - protected List splitAndResolvePaths(String paths) - throws ServletException { - ClassLoader loader = Thread.currentThread().getContextClassLoader(); - - if (loader == null) { - loader = this.getClass().getClassLoader(); - } - - ArrayList resolvedUrls = new ArrayList(); - - URL resource; - String path = null; - - try { - // Process each specified resource path - while (paths.length() > 0) { - resource = null; - - int comma = paths.indexOf(','); - - if (comma >= 0) { - path = paths.substring(0, comma).trim(); - paths = paths.substring(comma + 1); - } else { - path = paths.trim(); - paths = ""; - } - - if (path.length() < 1) { - break; - } - - if (path.charAt(0) == '/') { - resource = getServletContext().getResource(path); - } - - if (resource == null) { - if (log.isDebugEnabled()) { - log.debug("Unable to locate " + path - + " in the servlet context, " - + "trying classloader."); - } - - Enumeration e = loader.getResources(path); - - if (!e.hasMoreElements()) { - String msg = internal.getMessage("configMissing", path); - - log.error(msg); - throw new UnavailableException(msg); - } else { - while (e.hasMoreElements()) { - resolvedUrls.add(e.nextElement()); - } - } - } else { - resolvedUrls.add(resource); - } - } - } catch (MalformedURLException e) { - handleConfigException(path, e); - } catch (IOException e) { - handleConfigException(path, e); - } - - return resolvedUrls; - } - - /** - *

Perform the standard request processing for this request, and create - * the corresponding response.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @throws IOException if an input/output error occurs - * @throws ServletException if a servlet exception is thrown - */ - protected void process(HttpServletRequest request, - HttpServletResponse response) - throws IOException, ServletException { - ModuleUtils.getInstance().selectModule(request, getServletContext()); - - ModuleConfig config = getModuleConfig(request); - - RequestProcessor processor = getProcessorForModule(config); - - if (processor == null) { - processor = getRequestProcessor(config); - } - - processor.process(request, response); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionServletWrapper.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionServletWrapper.java deleted file mode 100644 index 8518d8a1486..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ActionServletWrapper.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * $Id: ActionServletWrapper.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import org.apache.struts.upload.MultipartRequestHandler; - -import java.io.Serializable; - -/** - *

Provide a wrapper around an {@link ActionServlet} to expose only those - * methods needed by other objects. When used with an {@link ActionForm}, - * subclasses must be careful that they do not return an object with public - * getters and setters that could be exploited by automatic population of - * properties.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - * @since Struts 1.0.1 - */ -public class ActionServletWrapper implements Serializable { - /** - *

The servlet instance to which we are attached.

- */ - protected transient ActionServlet servlet = null; - - /** - *

Create object and set servlet property.

- * - * @param servlet ActionServlet to wrap - */ - public ActionServletWrapper(ActionServlet servlet) { - super(); - this.servlet = servlet; - } - - /** - *

Set servlet to a MultipartRequestHandler.

- * - * @param object The MultipartRequestHandler - */ - public void setServletFor(MultipartRequestHandler object) { - object.setServlet(this.servlet); - - // :FIXME: Should this be based on an "setServlet" - // interface or introspection for a setServlet method? - // Or, is it safer to just add the types we want as we want them? - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/DynaActionForm.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/DynaActionForm.java deleted file mode 100644 index 1ed28db5829..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/DynaActionForm.java +++ /dev/null @@ -1,669 +0,0 @@ -/* - * $Id: DynaActionForm.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import org.apache.commons.beanutils.ConversionException; -import org.apache.commons.beanutils.DynaBean; -import org.apache.commons.beanutils.DynaClass; -import org.apache.commons.beanutils.DynaProperty; -import org.apache.struts.config.FormBeanConfig; -import org.apache.struts.config.FormPropertyConfig; - -import javax.servlet.ServletRequest; -import javax.servlet.http.HttpServletRequest; - -import java.lang.reflect.Array; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.StringTokenizer; - -/** - *

Specialized subclass of ActionForm that allows the creation - * of form beans with dynamic sets of properties, without requiring the - * developer to create a Java class for each type of form bean.

- * - *

USAGE NOTE - Since Struts 1.1, the reset - * method no longer initializes property values to those specified in - * <form-property> elements in the Struts module - * configuration file. If you wish to utilize that behavior, the simplest - * solution is to subclass DynaActionForm and call the - * initialize method inside it.

- * - * @version $Rev: 471754 $ $Date: 2005-11-12 11:52:08 -0500 (Sat, 12 Nov 2005) - * $ - * @since Struts 1.1 - */ -public class DynaActionForm extends ActionForm implements DynaBean { - // ----------------------------------------------------- Instance Variables - - /** - *

The DynaActionFormClass with which we are associated. - *

- */ - protected DynaActionFormClass dynaClass = null; - - /** - *

The set of property values for this DynaActionForm, - * keyed by property name.

- */ - protected HashMap dynaValues = new HashMap(); - - // ----------------------------------------------------- ActionForm Methods - - /** - *

Initialize all bean properties to their initial values, as specified - * in the {@link FormPropertyConfig} elements associated with the - * definition of this DynaActionForm.

- * - * @param mapping The mapping used to select this instance - */ - public void initialize(ActionMapping mapping) { - String name = mapping.getName(); - - if (name == null) { - return; - } - - FormBeanConfig config = - mapping.getModuleConfig().findFormBeanConfig(name); - - if (config == null) { - return; - } - - initialize(config); - } - - /** - *

Initialize the specified form bean.

- * - * @param config The configuration for the form bean to initialize. - */ - public void initialize(FormBeanConfig config) { - FormPropertyConfig[] props = config.findFormPropertyConfigs(); - - for (int i = 0; i < props.length; i++) { - set(props[i].getName(), props[i].initial()); - } - } - - // :FIXME: Is there any point in retaining these reset methods - // since they now simply replicate the superclass behavior? - - /** - *

Reset bean properties to their default state, as needed. This method - * is called before the properties are repopulated by the controller.

- * - *

The default implementation attempts to forward to the HTTP version - * of this method.

- * - * @param mapping The mapping used to select this instance - * @param request The servlet request we are processing - */ - public void reset(ActionMapping mapping, ServletRequest request) { - super.reset(mapping, request); - } - - /** - *

Reset the properties to their initial value if their - * reset configuration is set to true or if - * reset is set to a list of HTTP request methods that - * includes the method of given request object.

- * - * @param mapping The mapping used to select this instance - * @param request The servlet request we are processing - */ - public void reset(ActionMapping mapping, HttpServletRequest request) { - String name = getDynaClass().getName(); - - if (name == null) { - return; - } - - FormBeanConfig config = - mapping.getModuleConfig().findFormBeanConfig(name); - - if (config == null) { - return; - } - - // look for properties we should reset - FormPropertyConfig[] props = config.findFormPropertyConfigs(); - - for (int i = 0; i < props.length; i++) { - String resetValue = props[i].getReset(); - - // skip this property if there's no reset value - if ((resetValue == null) || (resetValue.length() <= 0)) { - continue; - } - - boolean reset = Boolean.valueOf(resetValue).booleanValue(); - - if (!reset) { - // check for the request method - // use a StringTokenizer with the default delimiters + a comma - StringTokenizer st = - new StringTokenizer(resetValue, ", \t\n\r\f"); - - while (st.hasMoreTokens()) { - String token = st.nextToken(); - - if (token.equalsIgnoreCase(request.getMethod())) { - reset = true; - - break; - } - } - } - - if (reset) { - set(props[i].getName(), props[i].initial()); - } - } - } - - // ------------------------------------------------------- DynaBean Methods - - /** - *

Indicates if the specified mapped property contain a value for the - * specified key value.

- * - * @param name Name of the property to check - * @param key Name of the key to check - * @return true if the specified mapped property contains a - * value for the specified key value; true - * otherwise. - * @throws NullPointerException if there is no property of the - * specified name - * @throws IllegalArgumentException if there is no mapped property of the - * specified name - */ - public boolean contains(String name, String key) { - Object value = dynaValues.get(name); - - if (value == null) { - throw new NullPointerException("No mapped value for '" + name + "(" - + key + ")'"); - } else if (value instanceof Map) { - return (((Map) value).containsKey(key)); - } else { - throw new IllegalArgumentException("Non-mapped property for '" - + name + "(" + key + ")'"); - } - } - - /** - *

Return the value of a simple property with the specified name.

- * - * @param name Name of the property whose value is to be retrieved - * @return The value of a simple property with the specified name. - * @throws IllegalArgumentException if there is no property of the - * specified name - * @throws NullPointerException if the type specified for the property - * is invalid - */ - public Object get(String name) { - // Return any non-null value for the specified property - Object value = dynaValues.get(name); - - if (value != null) { - return (value); - } - - // Return a null value for a non-primitive property - Class type = getDynaProperty(name).getType(); - - if (type == null) { - throw new NullPointerException("The type for property " + name - + " is invalid"); - } - - if (!type.isPrimitive()) { - return (value); - } - - // Manufacture default values for primitive properties - if (type == Boolean.TYPE) { - return (Boolean.FALSE); - } else if (type == Byte.TYPE) { - return (new Byte((byte) 0)); - } else if (type == Character.TYPE) { - return (new Character((char) 0)); - } else if (type == Double.TYPE) { - return (new Double(0.0)); - } else if (type == Float.TYPE) { - return (new Float((float) 0.0)); - } else if (type == Integer.TYPE) { - return (new Integer(0)); - } else if (type == Long.TYPE) { - return (new Long(0)); - } else if (type == Short.TYPE) { - return (new Short((short) 0)); - } else { - return (null); - } - } - - /** - *

Return the value of an indexed property with the specified name. - *

- * - * @param name Name of the property whose value is to be retrieved - * @param index Index of the value to be retrieved - * @return The value of an indexed property with the specified name. - * @throws IllegalArgumentException if there is no property of the - * specified name - * @throws IllegalArgumentException if the specified property exists, but - * is not indexed - * @throws NullPointerException if no array or List has been - * initialized for this property - */ - public Object get(String name, int index) { - Object value = dynaValues.get(name); - - if (value == null) { - throw new NullPointerException("No indexed value for '" + name - + "[" + index + "]'"); - } else if (value.getClass().isArray()) { - return (Array.get(value, index)); - } else if (value instanceof List) { - return ((List) value).get(index); - } else { - throw new IllegalArgumentException("Non-indexed property for '" - + name + "[" + index + "]'"); - } - } - - /** - *

Return the value of a mapped property with the specified name, or - * null if there is no value for the specified key.

- * - * @param name Name of the property whose value is to be retrieved - * @param key Key of the value to be retrieved - * @return The value of a mapped property with the specified name, or - * null if there is no value for the specified key. - * @throws NullPointerException if there is no property of the - * specified name - * @throws IllegalArgumentException if the specified property exists, but - * is not mapped - */ - public Object get(String name, String key) { - Object value = dynaValues.get(name); - - if (value == null) { - throw new NullPointerException("No mapped value for '" + name + "(" - + key + ")'"); - } else if (value instanceof Map) { - return (((Map) value).get(key)); - } else { - throw new IllegalArgumentException("Non-mapped property for '" - + name + "(" + key + ")'"); - } - } - - /** - *

Return the value of a String property with the - * specified name. This is equivalent to calling (String) - * dynaForm.get(name).

- * - * @param name Name of the property whose value is to be retrieved. - * @return The value of a String property with the specified - * name. - * @throws IllegalArgumentException if there is no property of the - * specified name - * @throws NullPointerException if the type specified for the property - * is invalid - * @throws ClassCastException if the property is not a String. - * @since Struts 1.2 - */ - public String getString(String name) { - return (String) this.get(name); - } - - /** - *

Return the value of a String[] property with the - * specified name. This is equivalent to calling (String[]) - * dynaForm.get(name).

- * - * @param name Name of the property whose value is to be retrieved. - * @return The value of a String[] property with the - * specified name. - * @throws IllegalArgumentException if there is no property of the - * specified name - * @throws NullPointerException if the type specified for the property - * is invalid - * @throws ClassCastException if the property is not a String[]. - * @since Struts 1.2 - */ - public String[] getStrings(String name) { - return (String[]) this.get(name); - } - - /** - *

Return the DynaClass instance that describes the set of - * properties available for this DynaBean.

- * - * @return The DynaClass instance that describes the set of - * properties available for this DynaBean. - */ - public DynaClass getDynaClass() { - return (this.dynaClass); - } - - /** - *

Returns the Map containing the property values. This is - * done mostly to facilitate accessing the DynaActionForm - * through JavaBeans accessors, in order to use the JavaServer Pages - * Standard Tag Library (JSTL).

- * - *

For instance, the normal JSTL EL syntax for accessing an - * ActionForm would be something like this: - *

-     *  ${formbean.prop}
- * The JSTL EL syntax for accessing a DynaActionForm looks - * something like this (because of the presence of this - * getMap() method): - *
-     *  ${dynabean.map.prop}
- *

- * - * @return The Map containing the property values. - */ - public Map getMap() { - return (dynaValues); - } - - /** - *

Remove any existing value for the specified key on the specified - * mapped property.

- * - * @param name Name of the property for which a value is to be removed - * @param key Key of the value to be removed - * @throws NullPointerException if there is no property of the - * specified name - * @throws IllegalArgumentException if there is no mapped property of the - * specified name - */ - public void remove(String name, String key) { - Object value = dynaValues.get(name); - - if (value == null) { - throw new NullPointerException("No mapped value for '" + name + "(" - + key + ")'"); - } else if (value instanceof Map) { - ((Map) value).remove(key); - } else { - throw new IllegalArgumentException("Non-mapped property for '" - + name + "(" + key + ")'"); - } - } - - /** - *

Set the value of a simple property with the specified name.

- * - * @param name Name of the property whose value is to be set - * @param value Value to which this property is to be set - * @throws ConversionException if the specified value cannot be - * converted to the type required for - * this property - * @throws IllegalArgumentException if there is no property of the - * specified name - * @throws NullPointerException if the type specified for the property - * is invalid - * @throws NullPointerException if an attempt is made to set a - * primitive property to null - */ - public void set(String name, Object value) { - DynaProperty descriptor = getDynaProperty(name); - - if (descriptor.getType() == null) { - throw new NullPointerException("The type for property " + name - + " is invalid"); - } - - if (value == null) { - if (descriptor.getType().isPrimitive()) { - throw new NullPointerException("Primitive value for '" + name - + "'"); - } - } else if (!isDynaAssignable(descriptor.getType(), value.getClass())) { - throw new ConversionException("Cannot assign value of type '" - + value.getClass().getName() + "' to property '" + name - + "' of type '" + descriptor.getType().getName() + "'"); - } - - dynaValues.put(name, value); - } - - /** - *

Set the value of an indexed property with the specified name.

- * - * @param name Name of the property whose value is to be set - * @param index Index of the property to be set - * @param value Value to which this property is to be set - * @throws ConversionException if the specified value cannot be - * converted to the type required for - * this property - * @throws NullPointerException if there is no property of the - * specified name - * @throws IllegalArgumentException if the specified property exists, but - * is not indexed - * @throws IndexOutOfBoundsException if the specified index is outside the - * range of the underlying property - */ - public void set(String name, int index, Object value) { - Object prop = dynaValues.get(name); - - if (prop == null) { - throw new NullPointerException("No indexed value for '" + name - + "[" + index + "]'"); - } else if (prop.getClass().isArray()) { - Array.set(prop, index, value); - } else if (prop instanceof List) { - try { - ((List) prop).set(index, value); - } catch (ClassCastException e) { - throw new ConversionException(e.getMessage()); - } - } else { - throw new IllegalArgumentException("Non-indexed property for '" - + name + "[" + index + "]'"); - } - } - - /** - *

Set the value of a mapped property with the specified name.

- * - * @param name Name of the property whose value is to be set - * @param key Key of the property to be set - * @param value Value to which this property is to be set - * @throws NullPointerException if there is no property of the - * specified name - * @throws IllegalArgumentException if the specified property exists, but - * is not mapped - */ - public void set(String name, String key, Object value) { - Object prop = dynaValues.get(name); - - if (prop == null) { - throw new NullPointerException("No mapped value for '" + name + "(" - + key + ")'"); - } else if (prop instanceof Map) { - ((Map) prop).put(key, value); - } else { - throw new IllegalArgumentException("Non-mapped property for '" - + name + "(" + key + ")'"); - } - } - - // --------------------------------------------------------- Public Methods - - /** - *

Render a String representation of this object.

- * - * @return A string representation of this object. - */ - public String toString() { - StringBuffer sb = new StringBuffer("DynaActionForm[dynaClass="); - DynaClass dynaClass = getDynaClass(); - - if (dynaClass == null) { - return sb.append("null]").toString(); - } - - sb.append(dynaClass.getName()); - - DynaProperty[] props = dynaClass.getDynaProperties(); - - if (props == null) { - props = new DynaProperty[0]; - } - - for (int i = 0; i < props.length; i++) { - sb.append(','); - sb.append(props[i].getName()); - sb.append('='); - - Object value = get(props[i].getName()); - - if (value == null) { - sb.append(""); - } else if (value.getClass().isArray()) { - int n = Array.getLength(value); - - sb.append("{"); - - for (int j = 0; j < n; j++) { - if (j > 0) { - sb.append(','); - } - - sb.append(Array.get(value, j)); - } - - sb.append("}"); - } else if (value instanceof List) { - int n = ((List) value).size(); - - sb.append("{"); - - for (int j = 0; j < n; j++) { - if (j > 0) { - sb.append(','); - } - - sb.append(((List) value).get(j)); - } - - sb.append("}"); - } else if (value instanceof Map) { - int n = 0; - Iterator keys = ((Map) value).keySet().iterator(); - - sb.append("{"); - - while (keys.hasNext()) { - if (n > 0) { - sb.append(','); - } - - n++; - - Object key = keys.next(); - - sb.append(key); - sb.append('='); - sb.append(((Map) value).get(key)); - } - - sb.append("}"); - } else { - sb.append(value); - } - } - - sb.append("]"); - - return (sb.toString()); - } - - // -------------------------------------------------------- Package Methods - - /** - *

Set the DynaActionFormClass instance with which we are - * associated.

- * - * @param dynaClass The DynaActionFormClass instance for this bean - */ - void setDynaActionFormClass(DynaActionFormClass dynaClass) { - this.dynaClass = dynaClass; - } - - // ------------------------------------------------------ Protected Methods - - /** - *

Return the property descriptor for the specified property name.

- * - * @param name Name of the property for which to retrieve the descriptor - * @return The property descriptor for the specified property name. - * @throws IllegalArgumentException if this is not a valid property name - * for our DynaClass - */ - protected DynaProperty getDynaProperty(String name) { - DynaProperty descriptor = getDynaClass().getDynaProperty(name); - - if (descriptor == null) { - throw new IllegalArgumentException("Invalid property name '" + name - + "'"); - } - - return (descriptor); - } - - /** - *

Indicates if an object of the source class is assignable to the - * destination class.

- * - * @param dest Destination class - * @param source Source class - * @return true if the source is assignable to the - * destination; false otherwise. - */ - protected boolean isDynaAssignable(Class dest, Class source) { - if (dest.isAssignableFrom(source) - || ((dest == Boolean.TYPE) && (source == Boolean.class)) - || ((dest == Byte.TYPE) && (source == Byte.class)) - || ((dest == Character.TYPE) && (source == Character.class)) - || ((dest == Double.TYPE) && (source == Double.class)) - || ((dest == Float.TYPE) && (source == Float.class)) - || ((dest == Integer.TYPE) && (source == Integer.class)) - || ((dest == Long.TYPE) && (source == Long.class)) - || ((dest == Short.TYPE) && (source == Short.class))) { - return (true); - } else { - return (false); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/DynaActionFormClass.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/DynaActionFormClass.java deleted file mode 100644 index c79a87fb20e..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/DynaActionFormClass.java +++ /dev/null @@ -1,286 +0,0 @@ -/* - * $Id: DynaActionFormClass.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import org.apache.commons.beanutils.DynaBean; -import org.apache.commons.beanutils.DynaClass; -import org.apache.commons.beanutils.DynaProperty; -import org.apache.struts.config.FormBeanConfig; -import org.apache.struts.config.FormPropertyConfig; -import org.apache.struts.util.RequestUtils; - -import java.io.Serializable; - -import java.util.HashMap; - -/** - *

Implementation of DynaClass for DynaActionForm - * classes that allow developers to define ActionForms without having to - * individually code all of the classes. NOTE - This class is - * only used in the internal implementation of dynamic action form beans. - * Application developers never need to consult this documentation.

- * - * @version $Rev: 471754 $ $Date: 2006-01-17 07:26:20 -0500 (Tue, 17 Jan 2006) - * $ - * @since Struts 1.1 - */ -public class DynaActionFormClass implements DynaClass, Serializable { - // ----------------------------------------------------- Instance Variables - - /** - *

The DynaActionForm implementation Class - * which we will use to create new bean instances.

- */ - protected transient Class beanClass = null; - - /** - *

The form bean configuration information for this class.

- */ - protected FormBeanConfig config = null; - - /** - *

The "dynamic class name" for this DynaClass.

- */ - protected String name = null; - - /** - *

The set of dynamic properties that are part of this DynaClass.

- */ - protected DynaProperty[] properties = null; - - /** - *

The set of dynamic properties that are part of this - * DynaClass, keyed by the property name. Individual - * descriptor instances will be the same instances as those in the - * properties list. - */ - protected HashMap propertiesMap = new HashMap(); - - // ----------------------------------------------------------- Constructors - - /** - *

Construct a new DynaActionFormClass for the specified - * form bean configuration. This constructor is private; - * DynaActionFormClass instances will be created as needed - * via calls to the static createDynaActionFormClass() - * method.

- * - * @param config The FormBeanConfig instance describing the properties of - * the bean to be created - * @throws IllegalArgumentException if the bean implementation class - * specified in the configuration is not - * DynaActionForm (or a subclass of - * DynaActionForm) - */ - public DynaActionFormClass(FormBeanConfig config) { - introspect(config); - } - - // ------------------------------------------------------ DynaClass Methods - - /** - *

Return the name of this DynaClass (analogous to the - * getName() method of java.lang.Class, which - * allows the same DynaClass implementation class to support - * different dynamic classes, with different sets of properties. - * - * @return The name of this DynaClass. - */ - public String getName() { - return (this.name); - } - - /** - *

Return a property descriptor for the specified property, if it - * exists; otherwise, return null.

- * - * @param name Name of the dynamic property for which a descriptor is - * requested - * @return A property descriptor for the specified property. - * @throws IllegalArgumentException if no property name is specified - */ - public DynaProperty getDynaProperty(String name) { - if (name == null) { - throw new IllegalArgumentException("No property name specified"); - } - - return ((DynaProperty) propertiesMap.get(name)); - } - - /** - *

Return an array of DynaPropertys for the properties - * currently defined in this DynaClass. If no properties are - * defined, a zero-length array will be returned.

- * - * @return An array of property instances for this class. - */ - public DynaProperty[] getDynaProperties() { - return (properties); - - // :FIXME: Should we really be implementing - // getBeanInfo instead, which returns property descriptors - // and a bunch of other stuff? - } - - /** - *

Instantiate and return a new {@link DynaActionForm} instance, - * associated with this DynaActionFormClass. The properties - * of the returned {@link DynaActionForm} will have been initialized to - * the default values specified in the form bean configuration - * information.

- * - * @return A new {@link DynaActionForm} instance. - * @throws IllegalAccessException if the Class or the appropriate - * constructor is not accessible - * @throws InstantiationException if this Class represents an abstract - * class, an array class, a primitive type, - * or void; or if instantiation fails for - * some other reason - */ - public DynaBean newInstance() - throws IllegalAccessException, InstantiationException { - DynaActionForm dynaBean = (DynaActionForm) getBeanClass().newInstance(); - - dynaBean.setDynaActionFormClass(this); - - FormPropertyConfig[] props = config.findFormPropertyConfigs(); - - for (int i = 0; i < props.length; i++) { - dynaBean.set(props[i].getName(), props[i].initial()); - } - - return (dynaBean); - } - - // --------------------------------------------------------- Public Methods - - /** - *

Render a String representation of this object.

- * - * @return The string representation of this instance. - */ - public String toString() { - StringBuffer sb = new StringBuffer("DynaActionFormBean[name="); - - sb.append(name); - - DynaProperty[] props = getDynaProperties(); - - if (props == null) { - props = new DynaProperty[0]; - } - - for (int i = 0; i < props.length; i++) { - sb.append(','); - sb.append(props[i].getName()); - sb.append('/'); - sb.append(props[i].getType()); - } - - sb.append("]"); - - return (sb.toString()); - } - - // --------------------------------------------------------- Static Methods - - /** - * Return the DynaActionFormClass instance for the specified - * form bean configuration instance. - * - * @param config The config for which the class should be created. - * @return The instance for the specified form bean config. - */ - public static DynaActionFormClass createDynaActionFormClass( - FormBeanConfig config) { - return config.getDynaActionFormClass(); - } - - // ------------------------------------------------------ Protected Methods - - /** - *

Return the implementation class we are using to construct new - * instances, re-introspecting our {@link FormBeanConfig} if necessary - * (that is, after being deserialized, since beanClass is - * marked transient).

- * - * @return The implementation class used to construct new instances. - */ - protected Class getBeanClass() { - if (beanClass == null) { - introspect(config); - } - - return (beanClass); - } - - /** - *

Introspect our form bean configuration to identify the supported - * properties.

- * - * @param config The FormBeanConfig instance describing the properties of - * the bean to be created - * @throws IllegalArgumentException if the bean implementation class - * specified in the configuration is not - * DynaActionForm (or a subclass of - * DynaActionForm) - */ - protected void introspect(FormBeanConfig config) { - this.config = config; - - // Validate the ActionFormBean implementation class - try { - beanClass = RequestUtils.applicationClass(config.getType()); - } catch (Throwable t) { - throw new IllegalArgumentException( - "Cannot instantiate ActionFormBean class '" + config.getType() - + "': " + t); - } - - if (!DynaActionForm.class.isAssignableFrom(beanClass)) { - throw new IllegalArgumentException("Class '" + config.getType() - + "' is not a subclass of " - + "'org.apache.struts.action.DynaActionForm'"); - } - - // Set the name we will know ourselves by from the form bean name - this.name = config.getName(); - - // Look up the property descriptors for this bean class - FormPropertyConfig[] descriptors = config.findFormPropertyConfigs(); - - if (descriptors == null) { - descriptors = new FormPropertyConfig[0]; - } - - // Create corresponding dynamic property definitions - properties = new DynaProperty[descriptors.length]; - - for (int i = 0; i < descriptors.length; i++) { - properties[i] = - new DynaProperty(descriptors[i].getName(), - descriptors[i].getTypeClass()); - propertiesMap.put(properties[i].getName(), properties[i]); - } - } - - // -------------------------------------------------------- Private Methods -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ExceptionHandler.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ExceptionHandler.java deleted file mode 100644 index 16678788167..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ExceptionHandler.java +++ /dev/null @@ -1,315 +0,0 @@ -/* - * $Id: ExceptionHandler.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.Globals; -import org.apache.struts.config.ExceptionConfig; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.ModuleException; - -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import java.io.IOException; - -/** - *

An ExceptionHandler is configured in the Struts - * configuration file to handle a specific type of exception thrown by an - * Action.execute method.

- * - * @since Struts 1.1 - */ -public class ExceptionHandler { - /** - *

The name of a configuration property which can be set to specify an - * alternative path which should be used when the HttpServletResponse has - * already been committed.

To use this, in your - * struts-config.xml specify the exception handler like - * this: - *

-     *   <exception
-     *       key="GlobalExceptionHandler.default"
-     *       type="java.lang.Exception"
-     *       path="/ErrorPage.jsp">
-     *       <set-property key="INCLUDE_PATH" value="/error.jsp" />
-     *   </exception>
-     *  
- *

You would want to use this when your normal ExceptionHandler - * path is a Tiles definition or otherwise unsuitable for use in an - * include context. If you do not use this, and you do not - * specify "SILENT_IF_COMMITTED" then the ExceptionHandler will attempt to - * forward to the same path which would be used in normal circumstances, - * specified using the "path" attribute in the <exception> - * element.

- * - * @since Struts 1.3 - */ - public static final String INCLUDE_PATH = "INCLUDE_PATH"; - - /** - *

The name of a configuration property which indicates that Struts - * should do nothing if the response has already been committed. This - * suppresses the default behavior, which is to use an "include" rather - * than a "forward" in this case in hopes of providing some meaningful - * information to the browser.

To use this, in your - * struts-config.xml specify the exception handler like - * this: - *

-     *   <exception
-     *       key="GlobalExceptionHandler.default"
-     *       type="java.lang.Exception"
-     *       path="/ErrorPage.jsp">
-     *       <set-property key="SILENT_IF_COMMITTED" value="true" />
-     *   </exception>
-     *  
- * To be effective, this value must be defined to the literal String - * "true". If it is not defined or defined to any other value, the default - * behavior will be used.

You only need to use this if you do not - * want error information displayed in the browser when Struts intercepts - * an exception after the response has been committed.

- * - * @since Struts 1.3 - */ - public static final String SILENT_IF_COMMITTED = "SILENT_IF_COMMITTED"; - - /** - *

Commons logging instance.

- */ - private static final Log LOG = LogFactory.getLog(ExceptionHandler.class); - - /** - *

The message resources for this package.

- */ - private static MessageResources messages = - MessageResources.getMessageResources( - "org.apache.struts.action.LocalStrings"); - - /** - *

Handle the Exception. Return the ActionForward instance (if any) - * returned by the called ExceptionHandler.

- * - * @param ex The exception to handle - * @param ae The ExceptionConfig corresponding to the exception - * @param mapping The ActionMapping we are processing - * @param formInstance The ActionForm we are processing - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @return The ActionForward instance (if any) returned by - * the called ExceptionHandler. - * @throws ServletException if a servlet exception occurs - * @since Struts 1.1 - */ - public ActionForward execute(Exception ex, ExceptionConfig ae, - ActionMapping mapping, ActionForm formInstance, - HttpServletRequest request, HttpServletResponse response) - throws ServletException { - LOG.debug("ExceptionHandler executing for exception " + ex); - - ActionForward forward; - ActionMessage error; - String property; - - // Build the forward from the exception mapping if it exists - // or from the form input - if (ae.getPath() != null) { - forward = new ActionForward(ae.getPath()); - } else { - forward = mapping.getInputForward(); - } - - // Figure out the error - if (ex instanceof ModuleException) { - error = ((ModuleException) ex).getActionMessage(); - property = ((ModuleException) ex).getProperty(); - } else { - error = new ActionMessage(ae.getKey(), ex.getMessage()); - property = error.getKey(); - } - - this.logException(ex); - - // Store the exception - request.setAttribute(Globals.EXCEPTION_KEY, ex); - this.storeException(request, property, error, forward, ae.getScope()); - - if (!response.isCommitted()) { - return forward; - } - - LOG.debug("Response is already committed, so forwarding will not work." - + " Attempt alternate handling."); - - if (!silent(ae)) { - handleCommittedResponse(ex, ae, mapping, formInstance, request, - response, forward); - } else { - LOG.warn("ExceptionHandler configured with " + SILENT_IF_COMMITTED - + " and response is committed.", ex); - } - - return null; - } - - /** - *

Attempt to give good information when the response has already been - * committed when the exception was thrown. This happens often when Tiles - * is used. Base implementation will see if the INCLUDE_PATH property has - * been set, or if not, it will attempt to use the same path to which - * control would have been forwarded.

- * - * @param ex The exception to handle - * @param config The ExceptionConfig we are processing - * @param mapping The ActionMapping we are processing - * @param formInstance The ActionForm we are processing - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @param actionForward The ActionForward we are processing - * @since Struts 1.3 - */ - protected void handleCommittedResponse(Exception ex, - ExceptionConfig config, ActionMapping mapping, ActionForm formInstance, - HttpServletRequest request, HttpServletResponse response, - ActionForward actionForward) { - String includePath = determineIncludePath(config, actionForward); - - if (includePath != null) { - if (includePath.startsWith("/")) { - LOG.debug("response committed, " - + "but attempt to include results " - + "of actionForward path"); - - RequestDispatcher requestDispatcher = - request.getRequestDispatcher(includePath); - - try { - requestDispatcher.include(request, response); - - return; - } catch (IOException e) { - LOG.error("IOException when trying to include " - + "the error page path " + includePath, e); - } catch (ServletException e) { - LOG.error("ServletException when trying to include " - + "the error page path " + includePath, e); - } - } else { - LOG.warn("Suspicious includePath doesn't seem likely to work, " - + "so skipping it: " + includePath - + "; expected path to start with '/'"); - } - } - - LOG.debug("Include not available or failed; " - + "try writing to the response directly."); - - try { - response.getWriter().println("Unexpected error: " + ex); - response.getWriter().println(""); - } catch (IOException e) { - LOG.error("Error giving minimal information about exception", e); - LOG.error("Original exception: ", ex); - } - } - - /** - *

Return a path to which an include should be attempted in the case - * when the response was committed before the ExceptionHandler - * was invoked.

If the ExceptionConfig has the - * property INCLUDE_PATH defined, then the value of that - * property will be returned. Otherwise, the ActionForward path is - * returned.

- * - * @param config Configuration element - * @param actionForward Forward to use on error - * @return Path of resource to include - * @since Struts 1.3 - */ - protected String determineIncludePath(ExceptionConfig config, - ActionForward actionForward) { - String includePath = config.getProperty("INCLUDE_PATH"); - - if (includePath == null) { - includePath = actionForward.getPath(); - } - - return includePath; - } - - /** - *

Logs the Exception using commons-logging.

- * - * @param e The Exception to LOG. - * @since Struts 1.2 - */ - protected void logException(Exception e) { - LOG.debug(messages.getMessage("exception.LOG"), e); - } - - /** - *

Default implementation for handling an ActionMessage - * generated from an Exception during Action - * delegation. The default implementation is to set an attribute of the - * request or session, as defined by the scope provided (the scope from - * the exception mapping). An ActionMessages instance is - * created, the error is added to the collection and the collection is set - * under the Globals.ERROR_KEY.

- * - * @param request The request we are handling - * @param property The property name to use for this error - * @param error The error generated from the exception mapping - * @param forward The forward generated from the input path (from the - * form or exception mapping) - * @param scope The scope of the exception mapping. - * @since Struts 1.2 - */ - protected void storeException(HttpServletRequest request, String property, - ActionMessage error, ActionForward forward, String scope) { - ActionMessages errors = new ActionMessages(); - - errors.add(property, error); - - if ("request".equals(scope)) { - request.setAttribute(Globals.ERROR_KEY, errors); - } else { - request.getSession().setAttribute(Globals.ERROR_KEY, errors); - } - } - - /** - *

Indicate whether this Handler has been configured to be silent. In - * the base implementation, this is done by specifying the value - * "true" for the property "SILENT_IF_COMMITTED" in the - * ExceptionConfig.

- * - * @param config The ExceptionConfiguration we are handling - * @return True if Handler is silent - * @since Struts 1.3 - */ - private boolean silent(ExceptionConfig config) { - return "true".equals(config.getProperty(SILENT_IF_COMMITTED)); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ForwardingActionForward.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ForwardingActionForward.java deleted file mode 100644 index a047dc8cc8c..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/ForwardingActionForward.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $Id: ForwardingActionForward.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - - -/** - *

A subclass of ActionForward that defaults the - * redirect attribute to false.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class ForwardingActionForward extends ActionForward { - // ----------------------------------------------------------- Constructors - - /** - *

Construct a new instance with default values.

- */ - public ForwardingActionForward() { - this(null); - } - - /** - *

Construct a new instance with the specified path.

- * - * @param path Path for this instance - */ - public ForwardingActionForward(String path) { - super(); - setName(null); - setPath(path); - setRedirect(false); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/InvalidCancelException.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/InvalidCancelException.java deleted file mode 100644 index bbed26fa876..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/InvalidCancelException.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * $Id: InvalidCancelException.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - - -/** - *

Thrown when a token generated by the Cancel tag is found in the - * request, but the cancellable property for the Action Mapping is not set. - *

- */ -public class InvalidCancelException extends Exception { - /** - *

Default constructor.

- */ - public InvalidCancelException() { - super(); - } - - /** - *

Construct the exception with the specified message.

- * - * @param message the message - */ - public InvalidCancelException(String message) { - super(message); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/LocalStrings.properties b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/LocalStrings.properties deleted file mode 100755 index 6cc13967d2c..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/LocalStrings.properties +++ /dev/null @@ -1,27 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -dispatch.error=Dispatch[{0}] to method {1} returned an exception - -dispatch.handler=DispatchMapping[{0}] does not define a handler property - -dispatch.method=Action[{0}] does not contain method named {1} - -dispatch.parameter=Request[{0}] does not contain handler parameter named {1} - -dispatch.return=Action[{0}] invalid return type for method {1} - -exception.log=ExceptionHandler caught this exception: - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/LocalStrings_ja.properties b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/LocalStrings_ja.properties deleted file mode 100644 index f74cef636d9..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/LocalStrings_ja.properties +++ /dev/null @@ -1,22 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -dispatch.error=\u30E1\u30BD\u30C3\u30C9 {1} \u3078\u306E\u632F\u308A\u5206\u3051[{0}]\u3067\u4F8B\u5916\u304C\u6295\u3052\u3089\u308C\u307E\u3057\u305F -dispatch.handler=DispatchMapping[{0}]\u3067\u30CF\u30F3\u30C9\u30E9\u30D7\u30ED\u30D1\u30C6\u30A3\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093 -dispatch.method=Action[{0}]\u306B {1} \u3068\u3044\u3046\u540D\u524D\u306E\u30E1\u30BD\u30C3\u30C9\u306F\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093 -dispatch.parameter=\u30ea\u30af\u30a8\u30b9\u30c8[{0}]\u306b {1} \u3068\u3044\u3046\u540d\u524d\u306e\u30cf\u30f3\u30c9\u30e9\u30d1\u30e9\u30e1\u30fc\u30bf\u306f\u3042\u308a\u307e\u305b\u3093 -dispatch.return=Action[{0}]\u306F\u30E1\u30BD\u30C3\u30C9 {1} \u306E\u8FD4\u5024\u306E\u578B\u3068\u3057\u3066\u306F\u4E0D\u9069\u5F53\u3067\u3059 - -exception.log=\u4F8B\u5916\u30CF\u30F3\u30C9\u30E9\u304C\u4F8B\u5916\u3092\u691C\u77E5\u3057\u307E\u3057\u305F diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/PlugIn.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/PlugIn.java deleted file mode 100644 index 477efe05957..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/PlugIn.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * $Id: PlugIn.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import org.apache.struts.config.ModuleConfig; - -import javax.servlet.ServletException; - -/** - *

A PlugIn is a configuration wrapper for a - * module-specific resource or service that needs to be notified about - * application startup and application shutdown events (corresponding to when - * the container calls init and destroy on the - * corresponding {@link ActionServlet} instance). PlugIn objects - * can be configured in the struts-config.xml file, without the - * need to subclass {@link ActionServlet} simply to perform application - * lifecycle activities.

- * - *

Implementations of this interface must supply a zero-argument - * constructor for use by {@link ActionServlet}. Configuration can be - * accomplished by providing standard JavaBeans property setter methods, which - * will all have been called before the init() method is - * invoked.

- * - *

This interface can be applied to any class, including an Action - * subclass.

- * - * @version $Rev: 471754 $ $Date: 2005-05-14 01:09:32 -0400 (Sat, 14 May 2005) - * $ - * @since Struts 1.1 - */ -public interface PlugIn { - /** - *

Receive notification that our owning module is being shut down.

- */ - void destroy(); - - /** - *

Receive notification that the specified module is being started - * up.

- * - * @param servlet ActionServlet that is managing all the modules in this - * web application - * @param config ModuleConfig for the module with which this plug-in is - * associated - * @throws ServletException if this PlugIn cannot be - * successfully initialized - */ - void init(ActionServlet servlet, ModuleConfig config) - throws ServletException; -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/RedirectingActionForward.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/RedirectingActionForward.java deleted file mode 100644 index cc6a28f742c..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/RedirectingActionForward.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $Id: RedirectingActionForward.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - - -/** - *

A subclass of ActionForward that defaults the - * redirect attribute to true.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class RedirectingActionForward extends ActionForward { - // ----------------------------------------------------------- Constructors - - /** - *

Construct a new instance with default values.

- */ - public RedirectingActionForward() { - this(null); - } - - /** - *

Construct a new instance with the specified path.

- * - * @param path Path for this instance - */ - public RedirectingActionForward(String path) { - super(); - setName(null); - setPath(path); - setRedirect(true); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/RequestActionMapping.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/RequestActionMapping.java deleted file mode 100644 index 63ab5863a98..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/RequestActionMapping.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * $Id: RequestActionMapping.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - - -/** - *

Subclass of ActionMapping that defaults the form bean scope - * to request.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class RequestActionMapping extends ActionMapping { - /** - *

Construct a new instance of this class with the desired default form - * bean scope.

- */ - public RequestActionMapping() { - super(); - setScope("request"); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/RequestProcessor.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/RequestProcessor.java deleted file mode 100644 index e99c5d995bd..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/RequestProcessor.java +++ /dev/null @@ -1,1130 +0,0 @@ -/* - * $Id: RequestProcessor.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.Globals; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ExceptionConfig; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.upload.MultipartRequestWrapper; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.RequestUtils; - -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import java.io.IOException; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Locale; - -/** - *

RequestProcessor contains the processing logic that the - * {@link ActionServlet} performs as it receives each servlet request from the - * container. You can customize the request processing behavior by subclassing - * this class and overriding the method(s) whose behavior you are interested - * in changing.

- * - * @version $Rev: 471754 $ $Date: 2006-11-06 15:55:09 +0100 (Mon, 06 Nov 2006) $ - * @since Struts 1.1 - */ -public class RequestProcessor { - // ----------------------------------------------------- Manifest Constants - - /** - *

The request attribute under which the path information is stored for - * processing during a RequestDispatcher.include call.

- */ - public static final String INCLUDE_PATH_INFO = - "javax.servlet.include.path_info"; - - /** - *

The request attribute under which the servlet path information is - * stored for processing during a RequestDispatcher.include - * call.

- */ - public static final String INCLUDE_SERVLET_PATH = - "javax.servlet.include.servlet_path"; - - /** - *

Commons Logging instance.

- */ - protected static Log log = LogFactory.getLog(RequestProcessor.class); - - // ----------------------------------------------------- Instance Variables - - /** - *

The set of Action instances that have been created and - * initialized, keyed by the fully qualified Java class name of the - * Action class.

- */ - protected HashMap actions = new HashMap(); - - /** - *

The ModuleConfiguration with which we are - * associated.

- */ - protected ModuleConfig moduleConfig = null; - - /** - *

The servlet with which we are associated.

- */ - protected ActionServlet servlet = null; - - // --------------------------------------------------------- Public Methods - - /** - *

Clean up in preparation for a shutdown of this application.

- */ - public void destroy() { - synchronized (this.actions) { - Iterator actions = this.actions.values().iterator(); - - while (actions.hasNext()) { - Action action = (Action) actions.next(); - - action.setServlet(null); - } - - this.actions.clear(); - } - - this.servlet = null; - } - - /** - *

Initialize this request processor instance.

- * - * @param servlet The ActionServlet we are associated with - * @param moduleConfig The ModuleConfig we are associated with. - * @throws ServletException If an error occor during initialization - */ - public void init(ActionServlet servlet, ModuleConfig moduleConfig) - throws ServletException { - synchronized (actions) { - actions.clear(); - } - - this.servlet = servlet; - this.moduleConfig = moduleConfig; - } - - /** - *

Process an HttpServletRequest and create the - * corresponding HttpServletResponse or dispatch to another - * resource.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @throws IOException if an input/output error occurs - * @throws ServletException if a processing exception occurs - */ - public void process(HttpServletRequest request, HttpServletResponse response) - throws IOException, ServletException { - // Wrap multipart requests with a special wrapper - request = processMultipart(request); - - // Identify the path component we will use to select a mapping - String path = processPath(request, response); - - if (path == null) { - return; - } - - if (log.isDebugEnabled()) { - log.debug("Processing a '" + request.getMethod() + "' for path '" - + path + "'"); - } - - // Select a Locale for the current user if requested - processLocale(request, response); - - // Set the content type and no-caching headers if requested - processContent(request, response); - processNoCache(request, response); - - // General purpose preprocessing hook - if (!processPreprocess(request, response)) { - return; - } - - this.processCachedMessages(request, response); - - // Identify the mapping for this request - ActionMapping mapping = processMapping(request, response, path); - - if (mapping == null) { - return; - } - - // Check for any role required to perform this action - if (!processRoles(request, response, mapping)) { - return; - } - - // Process any ActionForm bean related to this request - ActionForm form = processActionForm(request, response, mapping); - - processPopulate(request, response, form, mapping); - - // Validate any fields of the ActionForm bean, if applicable - try { - if (!processValidate(request, response, form, mapping)) { - return; - } - } catch (InvalidCancelException e) { - ActionForward forward = processException(request, response, e, form, mapping); - processForwardConfig(request, response, forward); - return; - } catch (IOException e) { - throw e; - } catch (ServletException e) { - throw e; - } - - // Process a forward or include specified by this mapping - if (!processForward(request, response, mapping)) { - return; - } - - if (!processInclude(request, response, mapping)) { - return; - } - - // Create or acquire the Action instance to process this request - Action action = processActionCreate(request, response, mapping); - - if (action == null) { - return; - } - - // Call the Action instance itself - ActionForward forward = - processActionPerform(request, response, action, form, mapping); - - // Process the returned ActionForward instance - processForwardConfig(request, response, forward); - } - - // ----------------------------------------------------- Processing Methods - - /** - *

Return an Action instance that will be used to process - * the current request, creating a new one if necessary.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @param mapping The mapping we are using - * @return An Action instance that will be used to process - * the current request. - * @throws IOException if an input/output error occurs - */ - protected Action processActionCreate(HttpServletRequest request, - HttpServletResponse response, ActionMapping mapping) - throws IOException { - // Acquire the Action instance we will be using (if there is one) - String className = mapping.getType(); - - if (log.isDebugEnabled()) { - log.debug(" Looking for Action instance for class " + className); - } - - // If there were a mapping property indicating whether - // an Action were a singleton or not ([true]), - // could we just instantiate and return a new instance here? - Action instance; - - synchronized (actions) { - // Return any existing Action instance of this class - instance = (Action) actions.get(className); - - if (instance != null) { - if (log.isTraceEnabled()) { - log.trace(" Returning existing Action instance"); - } - - return (instance); - } - - // Create and return a new Action instance - if (log.isTraceEnabled()) { - log.trace(" Creating new Action instance"); - } - - try { - instance = (Action) RequestUtils.applicationInstance(className); - - // Maybe we should propagate this exception - // instead of returning null. - } catch (Exception e) { - log.error(getInternal().getMessage("actionCreate", - mapping.getPath()), e); - - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - getInternal().getMessage("actionCreate", mapping.getPath())); - - return (null); - } - - actions.put(className, instance); - } - - if (instance.getServlet() == null) { - instance.setServlet(this.servlet); - } - - return (instance); - } - - /** - *

Retrieve and return the ActionForm associated with this - * mapping, creating and retaining one if necessary. If there is no - * ActionForm associated with this mapping, return - * null.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @param mapping The mapping we are using - * @return The ActionForm associated with this mapping. - */ - protected ActionForm processActionForm(HttpServletRequest request, - HttpServletResponse response, ActionMapping mapping) { - // Create (if necessary) a form bean to use - ActionForm instance = - RequestUtils.createActionForm(request, mapping, moduleConfig, - servlet); - - if (instance == null) { - return (null); - } - - // Store the new instance in the appropriate scope - if (log.isDebugEnabled()) { - log.debug(" Storing ActionForm bean instance in scope '" - + mapping.getScope() + "' under attribute key '" - + mapping.getAttribute() + "'"); - } - - if ("request".equals(mapping.getScope())) { - request.setAttribute(mapping.getAttribute(), instance); - } else { - HttpSession session = request.getSession(); - - session.setAttribute(mapping.getAttribute(), instance); - } - - return (instance); - } - - /** - *

Forward or redirect to the specified destination, by the specified - * mechanism. This method uses a ForwardConfig object - * instead an ActionForward.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @param forward The ForwardConfig controlling where we go next - * @throws IOException if an input/output error occurs - * @throws ServletException if a servlet exception occurs - */ - protected void processForwardConfig(HttpServletRequest request, - HttpServletResponse response, ForwardConfig forward) - throws IOException, ServletException { - if (forward == null) { - return; - } - - if (log.isDebugEnabled()) { - log.debug("processForwardConfig(" + forward + ")"); - } - - String forwardPath = forward.getPath(); - String uri; - - // If the forward can be unaliased into an action, then use the path of the action - String actionIdPath = RequestUtils.actionIdURL(forward, request, servlet); - if (actionIdPath != null) { - forwardPath = actionIdPath; - ForwardConfig actionIdForward = new ForwardConfig(forward); - actionIdForward.setPath(actionIdPath); - forward = actionIdForward; - } - - // paths not starting with / should be passed through without any - // processing (ie. they're absolute) - if (forwardPath.startsWith("/")) { - // get module relative uri - uri = RequestUtils.forwardURL(request, forward, null); - } else { - uri = forwardPath; - } - - if (forward.getRedirect()) { - // only prepend context path for relative uri - if (uri.startsWith("/")) { - uri = request.getContextPath() + uri; - } - - response.sendRedirect(response.encodeRedirectURL(uri)); - } else { - doForward(uri, request, response); - } - } - - // :FIXME: if Action.execute throws Exception, and Action.process has been - // removed, should the process* methods still throw IOException, - // ServletException? - - /** - *

Ask the specified Action instance to handle this - * request. Return the ActionForward instance (if any) - * returned by the called Action for further processing. - *

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @param action The Action instance to be used - * @param form The ActionForm instance to pass to this Action - * @param mapping The ActionMapping instance to pass to this Action - * @return The ActionForward instance (if any) returned by - * the called Action. - * @throws IOException if an input/output error occurs - * @throws ServletException if a servlet exception occurs - */ - protected ActionForward processActionPerform(HttpServletRequest request, - HttpServletResponse response, Action action, ActionForm form, - ActionMapping mapping) - throws IOException, ServletException { - try { - return (action.execute(mapping, form, request, response)); - } catch (Exception e) { - return (processException(request, response, e, form, mapping)); - } - } - - /** - *

Removes any ActionMessages object stored in the session - * under Globals.MESSAGE_KEY and Globals.ERROR_KEY - * if the messages' isAccessed method returns true. This - * allows messages to be stored in the session, display one time, and be - * released here.

- * - * @param request The servlet request we are processing. - * @param response The servlet response we are creating. - * @since Struts 1.2 - */ - protected void processCachedMessages(HttpServletRequest request, - HttpServletResponse response) { - HttpSession session = request.getSession(false); - - if (session == null) { - return; - } - - // Remove messages as needed - ActionMessages messages = - (ActionMessages) session.getAttribute(Globals.MESSAGE_KEY); - - if (messages != null) { - if (messages.isAccessed()) { - session.removeAttribute(Globals.MESSAGE_KEY); - } - } - - // Remove error messages as needed - messages = (ActionMessages) session.getAttribute(Globals.ERROR_KEY); - - if (messages != null) { - if (messages.isAccessed()) { - session.removeAttribute(Globals.ERROR_KEY); - } - } - } - - /** - *

Set the default content type (with optional character encoding) for - * all responses if requested. NOTE - This header will - * be overridden automatically if a RequestDispatcher.forward - * call is ultimately invoked.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - */ - protected void processContent(HttpServletRequest request, - HttpServletResponse response) { - String contentType = - moduleConfig.getControllerConfig().getContentType(); - - if (contentType != null) { - response.setContentType(contentType); - } - } - - /** - *

Ask our exception handler to handle the exception. Return the - * ActionForward instance (if any) returned by the called - * ExceptionHandler.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are processing - * @param exception The exception being handled - * @param form The ActionForm we are processing - * @param mapping The ActionMapping we are using - * @return The ActionForward instance (if any) returned by - * the called ExceptionHandler. - * @throws IOException if an input/output error occurs - * @throws ServletException if a servlet exception occurs - */ - protected ActionForward processException(HttpServletRequest request, - HttpServletResponse response, Exception exception, ActionForm form, - ActionMapping mapping) - throws IOException, ServletException { - // Is there a defined handler for this exception? - ExceptionConfig config = mapping.findException(exception.getClass()); - - if (config == null) { - log.warn(getInternal().getMessage("unhandledException", - exception.getClass())); - - if (exception instanceof IOException) { - throw (IOException) exception; - } else if (exception instanceof ServletException) { - throw (ServletException) exception; - } else { - throw new ServletException(exception); - } - } - - // Use the configured exception handling - try { - ExceptionHandler handler = - (ExceptionHandler) RequestUtils.applicationInstance(config - .getHandler()); - - return (handler.execute(exception, config, mapping, form, request, - response)); - } catch (Exception e) { - throw new ServletException(e); - } - } - - /** - *

Process a forward requested by this mapping (if any). Return - * true if standard processing should continue, or - * false if we have already handled this request.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @param mapping The ActionMapping we are using - * @return true to continue normal processing; - * false if a response has been created. - * @throws IOException if an input/output error occurs - * @throws ServletException if a servlet exception occurs - */ - protected boolean processForward(HttpServletRequest request, - HttpServletResponse response, ActionMapping mapping) - throws IOException, ServletException { - // Are we going to processing this request? - String forward = mapping.getForward(); - - if (forward == null) { - return (true); - } - - // If the forward can be unaliased into an action, then use the path of the action - String actionIdPath = RequestUtils.actionIdURL(forward, this.moduleConfig, this.servlet); - if (actionIdPath != null) { - forward = actionIdPath; - } - - internalModuleRelativeForward(forward, request, response); - - return (false); - } - - /** - *

Process an include requested by this mapping (if any). Return - * true if standard processing should continue, or - * false if we have already handled this request.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @param mapping The ActionMapping we are using - * @return true to continue normal processing; - * false if a response has been created. - * @throws IOException if an input/output error occurs - * @throws ServletException if thrown by invoked methods - */ - protected boolean processInclude(HttpServletRequest request, - HttpServletResponse response, ActionMapping mapping) - throws IOException, ServletException { - // Are we going to processing this request? - String include = mapping.getInclude(); - - if (include == null) { - return (true); - } - - // If the forward can be unaliased into an action, then use the path of the action - String actionIdPath = RequestUtils.actionIdURL(include, this.moduleConfig, this.servlet); - if (actionIdPath != null) { - include = actionIdPath; - } - - internalModuleRelativeInclude(include, request, response); - - return (false); - } - - /** - *

Automatically select a Locale for the current user, if - * requested. NOTE - configuring Locale selection will - * trigger the creation of a new HttpSession if - * necessary.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - */ - protected void processLocale(HttpServletRequest request, - HttpServletResponse response) { - // Are we configured to select the Locale automatically? - if (!moduleConfig.getControllerConfig().getLocale()) { - return; - } - - // Has a Locale already been selected? - HttpSession session = request.getSession(); - - if (session.getAttribute(Globals.LOCALE_KEY) != null) { - return; - } - - // Use the Locale returned by the servlet container (if any) - Locale locale = request.getLocale(); - - if (locale != null) { - if (log.isDebugEnabled()) { - log.debug(" Setting user locale '" + locale + "'"); - } - - session.setAttribute(Globals.LOCALE_KEY, locale); - } - } - - /** - *

Select the mapping used to process the selection path for this - * request. If no mapping can be identified, create an error response and - * return null.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @param path The portion of the request URI for selecting a mapping - * @return The mapping used to process the selection path for this - * request. - * @throws IOException if an input/output error occurs - */ - protected ActionMapping processMapping(HttpServletRequest request, - HttpServletResponse response, String path) - throws IOException { - // Is there a mapping for this path? - ActionMapping mapping = - (ActionMapping) moduleConfig.findActionConfig(path); - - // If a mapping is found, put it in the request and return it - if (mapping != null) { - request.setAttribute(Globals.MAPPING_KEY, mapping); - - return (mapping); - } - - // Locate the mapping for unknown paths (if any) - ActionConfig[] configs = moduleConfig.findActionConfigs(); - - for (int i = 0; i < configs.length; i++) { - if (configs[i].getUnknown()) { - mapping = (ActionMapping) configs[i]; - request.setAttribute(Globals.MAPPING_KEY, mapping); - - return (mapping); - } - } - - // No mapping can be found to process this request - String msg = getInternal().getMessage("processInvalid"); - - log.error(msg + " " + path); - response.sendError(HttpServletResponse.SC_NOT_FOUND, msg); - - return null; - } - - /** - *

If this is a multipart request, wrap it with a special wrapper. - * Otherwise, return the request unchanged.

- * - * @param request The HttpServletRequest we are processing - * @return A wrapped request, if the request is multipart; otherwise the - * original request. - */ - protected HttpServletRequest processMultipart(HttpServletRequest request) { - if (!"POST".equalsIgnoreCase(request.getMethod())) { - return (request); - } - - String contentType = request.getContentType(); - - if ((contentType != null) - && contentType.startsWith("multipart/form-data")) { - return (new MultipartRequestWrapper(request)); - } else { - return (request); - } - } - - /** - *

Set the no-cache headers for all responses, if requested. - * NOTE - This header will be overridden automatically if - * a RequestDispatcher.forward call is ultimately - * invoked.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - */ - protected void processNoCache(HttpServletRequest request, - HttpServletResponse response) { - if (moduleConfig.getControllerConfig().getNocache()) { - response.setHeader("Pragma", "No-cache"); - response.setHeader("Cache-Control", "no-cache,no-store,max-age=0"); - response.setDateHeader("Expires", 1); - } - } - - /** - *

Identify and return the path component (from the request URI) that - * we will use to select an ActionMapping with which to - * dispatch. If no such path can be identified, create an error response - * and return null.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @return The path that will be used to select an action mapping. - * @throws IOException if an input/output error occurs - */ - protected String processPath(HttpServletRequest request, - HttpServletResponse response) - throws IOException { - String path; - - // For prefix matching, match on the path info (if any) - path = (String) request.getAttribute(INCLUDE_PATH_INFO); - - if (path == null) { - path = request.getPathInfo(); - } - - if ((path != null) && (path.length() > 0)) { - return (path); - } - - // For extension matching, strip the module prefix and extension - path = (String) request.getAttribute(INCLUDE_SERVLET_PATH); - - if (path == null) { - path = request.getServletPath(); - } - - String prefix = moduleConfig.getPrefix(); - - if (!path.startsWith(prefix)) { - String msg = getInternal().getMessage("processPath"); - - log.error(msg + " " + request.getRequestURI()); - response.sendError(HttpServletResponse.SC_BAD_REQUEST, msg); - - return null; - } - - path = path.substring(prefix.length()); - - int slash = path.lastIndexOf("/"); - int period = path.lastIndexOf("."); - - if ((period >= 0) && (period > slash)) { - path = path.substring(0, period); - } - - return (path); - } - - /** - *

Populate the properties of the specified ActionForm - * instance from the request parameters included with this request. In - * addition, request attribute Globals.CANCEL_KEY will be set - * if the request was submitted with a button created by - * CancelTag.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @param form The ActionForm instance we are populating - * @param mapping The ActionMapping we are using - * @throws ServletException if thrown by RequestUtils.populate() - */ - protected void processPopulate(HttpServletRequest request, - HttpServletResponse response, ActionForm form, ActionMapping mapping) - throws ServletException { - if (form == null) { - return; - } - - // Populate the bean properties of this ActionForm instance - if (log.isDebugEnabled()) { - log.debug(" Populating bean properties from this request"); - } - - form.setServlet(this.servlet); - form.reset(mapping, request); - - if (mapping.getMultipartClass() != null) { - request.setAttribute(Globals.MULTIPART_KEY, - mapping.getMultipartClass()); - } - - RequestUtils.populate(form, mapping.getPrefix(), mapping.getSuffix(), - request); - - // Set the cancellation request attribute if appropriate - if ((request.getParameter(Globals.CANCEL_PROPERTY) != null) - || (request.getParameter(Globals.CANCEL_PROPERTY_X) != null)) { - request.setAttribute(Globals.CANCEL_KEY, Boolean.TRUE); - } - } - - /** - *

General-purpose preprocessing hook that can be overridden as - * required by subclasses. Return true if you want standard - * processing to continue, or false if the response has - * already been completed. The default implementation does nothing.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @return true to continue normal processing; - * false if a response has been created. - */ - protected boolean processPreprocess(HttpServletRequest request, - HttpServletResponse response) { - return (true); - } - - /** - *

If this action is protected by security roles, make sure that the - * current user possesses at least one of them. Return true - * to continue normal processing, or false if an appropriate - * response has been created and processing should terminate.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @param mapping The mapping we are using - * @return true to continue normal processing; - * false if a response has been created. - * @throws IOException if an input/output error occurs - * @throws ServletException if a servlet exception occurs - */ - protected boolean processRoles(HttpServletRequest request, - HttpServletResponse response, ActionMapping mapping) - throws IOException, ServletException { - // Is this action protected by role requirements? - String[] roles = mapping.getRoleNames(); - - if ((roles == null) || (roles.length < 1)) { - return (true); - } - - // Check the current user against the list of required roles - for (int i = 0; i < roles.length; i++) { - if (request.isUserInRole(roles[i])) { - if (log.isDebugEnabled()) { - log.debug(" User '" + request.getRemoteUser() - + "' has role '" + roles[i] + "', granting access"); - } - - return (true); - } - } - - // The current user is not authorized for this action - if (log.isDebugEnabled()) { - log.debug(" User '" + request.getRemoteUser() - + "' does not have any required role, denying access"); - } - - response.sendError(HttpServletResponse.SC_FORBIDDEN, - getInternal().getMessage("notAuthorized", mapping.getPath())); - - return (false); - } - - /** - *

If this request was not cancelled, and the request's {@link - * ActionMapping} has not disabled validation, call the - * validate method of the specified {@link ActionForm}, and - * forward to the input path if there were any errors. Return - * true if we should continue processing, or - * false if we have already forwarded control back to the - * input form.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @param form The ActionForm instance we are populating - * @param mapping The ActionMapping we are using - * @return true to continue normal processing; - * false if a response has been created. - * @throws IOException if an input/output error occurs - * @throws ServletException if a servlet exception occurs - * @throws InvalidCancelException if a cancellation is attempted - * without the proper action configuration. - */ - protected boolean processValidate(HttpServletRequest request, - HttpServletResponse response, ActionForm form, ActionMapping mapping) - throws IOException, ServletException, InvalidCancelException { - if (form == null) { - return (true); - } - - // Has validation been turned off for this mapping? - if (!mapping.getValidate()) { - return (true); - } - - // Was this request cancelled? If it has been, the mapping also - // needs to state whether the cancellation is permissable; otherwise - // the cancellation is considered to be a symptom of a programmer - // error or a spoof. - if (request.getAttribute(Globals.CANCEL_KEY) != null) { - if (mapping.getCancellable()) { - if (log.isDebugEnabled()) { - log.debug(" Cancelled transaction, skipping validation"); - } - return (true); - } else { - request.removeAttribute(Globals.CANCEL_KEY); - throw new InvalidCancelException(); - } - } - - // Call the form bean's validation method - if (log.isDebugEnabled()) { - log.debug(" Validating input form properties"); - } - - ActionMessages errors = form.validate(mapping, request); - - if ((errors == null) || errors.isEmpty()) { - if (log.isTraceEnabled()) { - log.trace(" No errors detected, accepting input"); - } - - return (true); - } - - // Special handling for multipart request - if (form.getMultipartRequestHandler() != null) { - if (log.isTraceEnabled()) { - log.trace(" Rolling back multipart request"); - } - - form.getMultipartRequestHandler().rollback(); - } - - // Was an input path (or forward) specified for this mapping? - String input = mapping.getInput(); - - if (input == null) { - if (log.isTraceEnabled()) { - log.trace(" Validation failed but no input form available"); - } - - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - getInternal().getMessage("noInput", mapping.getPath())); - - return (false); - } - - // Save our error messages and return to the input form if possible - if (log.isDebugEnabled()) { - log.debug(" Validation failed, returning to '" + input + "'"); - } - - request.setAttribute(Globals.ERROR_KEY, errors); - - if (moduleConfig.getControllerConfig().getInputForward()) { - ForwardConfig forward = mapping.findForward(input); - - processForwardConfig(request, response, forward); - } else { - internalModuleRelativeForward(input, request, response); - } - - return (false); - } - - /** - *

Do a module relative forward to specified URI using request - * dispatcher. URI is relative to the current module. The real URI is - * compute by prefixing the module name.

This method is used - * internally and is not part of the public API. It is advised to not use - * it in subclasses.

- * - * @param uri Module-relative URI to forward to - * @param request Current page request - * @param response Current page response - * @throws IOException if an input/output error occurs - * @throws ServletException if a servlet exception occurs - * @since Struts 1.1 - */ - protected void internalModuleRelativeForward(String uri, - HttpServletRequest request, HttpServletResponse response) - throws IOException, ServletException { - // Construct a request dispatcher for the specified path - uri = moduleConfig.getPrefix() + uri; - - // Delegate the processing of this request - // :FIXME: - exception handling? - if (log.isDebugEnabled()) { - log.debug(" Delegating via forward to '" + uri + "'"); - } - - doForward(uri, request, response); - } - - /** - *

Do a module relative include to specified URI using request - * dispatcher. URI is relative to the current module. The real URI is - * compute by prefixing the module name.

This method is used - * internally and is not part of the public API. It is advised to not use - * it in subclasses.

- * - * @param uri Module-relative URI to include - * @param request Current page request - * @param response Current page response - * @throws IOException if an input/output error occurs - * @throws ServletException if a servlet exception occurs - * @since Struts 1.1 - */ - protected void internalModuleRelativeInclude(String uri, - HttpServletRequest request, HttpServletResponse response) - throws IOException, ServletException { - // Construct a request dispatcher for the specified path - uri = moduleConfig.getPrefix() + uri; - - // Delegate the processing of this request - // FIXME - exception handling? - if (log.isDebugEnabled()) { - log.debug(" Delegating via include to '" + uri + "'"); - } - - doInclude(uri, request, response); - } - - /** - *

Do a forward to specified URI using a RequestDispatcher. - * This method is used by all internal method needing to do a - * forward.

- * - * @param uri Context-relative URI to forward to - * @param request Current page request - * @param response Current page response - * @throws IOException if an input/output error occurs - * @throws ServletException if a servlet exception occurs - * @since Struts 1.1 - */ - protected void doForward(String uri, HttpServletRequest request, - HttpServletResponse response) - throws IOException, ServletException { - RequestDispatcher rd = getServletContext().getRequestDispatcher(uri); - - if (rd == null) { - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - getInternal().getMessage("requestDispatcher", uri)); - - return; - } - - rd.forward(request, response); - } - - /** - *

Do an include of specified URI using a RequestDispatcher. - * This method is used by all internal method needing to do an - * include.

- * - * @param uri Context-relative URI to include - * @param request Current page request - * @param response Current page response - * @throws IOException if an input/output error occurs - * @throws ServletException if a servlet exception occurs - * @since Struts 1.1 - */ - protected void doInclude(String uri, HttpServletRequest request, - HttpServletResponse response) - throws IOException, ServletException { - RequestDispatcher rd = getServletContext().getRequestDispatcher(uri); - - if (rd == null) { - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - getInternal().getMessage("requestDispatcher", uri)); - - return; - } - - rd.include(request, response); - } - - // -------------------------------------------------------- Support Methods - - /** - *

Return the MessageResources instance containing our - * internal message strings.

- * - * @return The MessageResources instance containing our - * internal message strings. - */ - protected MessageResources getInternal() { - return (servlet.getInternal()); - } - - /** - *

Return the ServletContext for the web application in - * which we are running.

- * - * @return The ServletContext for the web application. - */ - protected ServletContext getServletContext() { - return (servlet.getServletContext()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/SessionActionMapping.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/SessionActionMapping.java deleted file mode 100644 index e9d82db1f30..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/SessionActionMapping.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * $Id: SessionActionMapping.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - - -/** - *

Subclass of ActionMapping that defaults the form bean scope - * to session.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class SessionActionMapping extends ActionMapping { - /** - *

Construct a new instance of this class with the desired default form - * bean scope.

- */ - public SessionActionMapping() { - super(); - setScope("session"); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/doc-files/actionUML.gif b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/action/doc-files/actionUML.gif deleted file mode 100644 index 1c741189bf24bb662080eeb611808a07a3d00cc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15699 zcmW++1yEZ}7fmTrv>#qP6xZS|DaEb0LxUHW;+o>c-6c@min|1NcMtAbTz~rSOtQ(H zyZ794&c2zKmz9!{52!H|s zFdzU91OPw)AP4{g0l**t1O$MB05A{$4gvtc03a9u0t3Kc00azxf&nlv01gJc)&oKS zAP4{qc`XcpLI5xb0RD;v1puJ{5EKB00w7QT6bgVr0dOb)00RJF01ylSh5;Zj02Bs* z!2oa=000L7;Q$aE0EPn~Z~znzfWZN9H~;_u0splF0{;U6LH{iU!2zJxE`dN02nYfL zK@cDa3IxG`AUF{8n)@1l9bga$0s=unAQ%V)e=Pt80m1*GU@!;*20_6f7#IWxgI-Aj zA^%dr5D)|cfg1|sf7zhRf z!C|0Rjeu~_D-swEg1|vgI0yy@!QmjlKXqTrLBRjyfk6L}hQI-kSJi;Pf7oCk1OkLW zfe;uF0tZ3>|JeL%2>h>|SL9ca*LsjweSzSAU4p?72p9qdLttPC9Q<1Hb@glFYwX{E zLLe{*1P+0`Ist@2UipAuLr@453V}f(a46)}9v}?zN)r5<2ZKOi5Eu*she2LF1HvJ% z%)zgV;SeYs0)s=~a0uYvzIdhg>h^2WtB0?4y*l&HMIi8>7GU7Nicla7286+Zujah^ z@J}Ex=pPL9pFFQh{PP(b_Njo zPhT+fUzboQ3kd=){}g3nGA*-DmVM0sfL8*8>_a5lEY+Iha0PR$Dm&dM&z4n_NNjSatuZm zOAcl$jE6G4HCT?98WPG!Mw;tSXX|{?DIz)f&Nutxevp;5G&=5#{+7!UnZA|xoJM&& z8u>xs<`mvl;1>`{Mtl8sqtEuMC^^f+%~_0RlHV%Ly#~rb-&|8>>&+7Y`CYmvvjYN% zX}c(X?M*KDMgoOU?F>eULQM};eY%r^2a>vcU+}%2_Xp@;=9_%=(Itg|nC|clyRq-M z>^qRi)9u5A+rQV7D3Dw<#5oXsuB!Zpl(D#WTs5U!JxPwU5cZq!=HiHT2jy6+$ePCBvRgz&3 z`pB=Hhi6elkCZrqXD=_>Cr-SRY&N>r@s@LkZrkGoY1blSe1Y~L%RNzm7+hE!!1z<< zV1S{pl;g(2vyvFKSV3_RwXi(k`hY3OUc()PV`dJfLlaqLjK11ZF1^) zsLxQVWl3?p%i?kU@p`d&gJiM5YU6g*7GwRAZL@j9YA4C3Kf4?$jA}ohi%;8{pNT#q zyo-)a#Pb8Z9cJsoQw53kuvzs}1_uzGV@t-%9KSVNeu-siK5c3)ZaIi;qR!aMPdh1N zU3hS4KA%k89b}pE+>KSZtwgvj=I_65+{!;H>Q9Z3529NU;! znf)z!i?VE_X6x*EOEW$L=Lqc&OV*gpRn#AIPJ&Cd{a)>J?i2N*N}F=J588O=;&X{^MjQkzLKgbd0X=5%&Urj8|3T z-mHvAky$la)k3EK(usnPY#y)rk0}zF|;f+Qddv*kN@<8dO|O!LOGuD&8fE^K1!iS_pOR0j5z<7y< z0y_Q>Zl%Q@!alHp^d<~Z$$+gPnN61Q_(N~VOXgH6vJ7U<{u?aFGGS+ZJef;gWM|6n zqYFOi`iToC8!DB7Tk59qyYobo39=&afY@w*m8`mlL^#wXgq`?f=o8T3Jjg+Y8Q~{I znouf2qcnz@%!P6uUL0Q(FkhvHU8wsqg4qgLUZmGj{mf}0Ug^6)&B~C*x!0QDx%MZ| z{VCn6BjbJq55|v!)#|m=o5RoI!%oG)1_ZKOC`R#7ghcCp!#c$DdD0k$YPew?KuAXb zJBFdX@`s-2jZT8T$sU;@Bh8TUH|1wY2Ym6ohs$JGs=FeUSC>u)OQwZ>#C1kZ_DQUq zmb%e{V-@?c8s64x^FBnwE(brLGTsSaUrtfd(#yBL)!)M2R-y2R2rD}ftrQ|eP=)}# z;#pGgEGBAXRC2vzs z)w@sj)uK%)%#etZ3+^kc=)$Z;-Y%$Xs>p}~1V1A&+W$l*?Wo-fpJ(r#ulOt-Yxo4s z1%|B8Hgw~ESY$53vq3MyT81G#>>Y|ckEg>n%qoPIiaD4f z%l5?eSaI7mTco`l3|9^}-v6kpaTeeC`2N4_cQzIBlN?N(=#;b^BE^R2f)_C<>X6(@ z=U60q03f860LvcQiOt$Up~Wzdk*2{*N?sYfB)Bm7Q)_tB#=*rul`(l?a@fX=yHTZ=G>z`=L1pi=+%1Cwk{21WdlIR_9coErIGXVXbzsB7}5I-nAS6zGy^3`#YYW`4K@KdeUBP7L~sz%bnlI%GG9LXgqSQAKH75|85fq zstGz0d7(F^2ui84&j0I?*PNaBJpb_p`z+|K7Ytn_@jvZq^L#HMNBJ%4D!#DC zJobS^ho>{K06X};cf}GCFKpIMMVQ1qsv_9EnT!-ypkRo0#<+#G(8$3n{=1y+q8T5I z0qZPKQ~bN<^adC^k>BCa{Xt?Y{g#6Pd7#Z>ajLz4jNf?Q)Z_0~@YSsA$!%-;7e=I% zK#_*wH!hGbovEwc}%H=QKppS;#waZp~4Z))jKj){UCHuY`X+P@mejv0Dwz4diJ+dJm| zdg_QBe2IIsdS+UJu0PW#AU-NuFrQJdv^!8BHgPC!;vBx&v~%QCj4*i>W$tox$Ls0R z=n+)!!rT}C)j9>ER=1RdWLbG_47h<^yn|2(rGM5?BFX<$b5wGr+??iX`n%klhgLm>+W;ZN*IUwiI}Y-fQ?$%j{5jqy zb(ey7*5{;8u7;QKt+VT;KS$Y)c`KJbmkY!hS%5)Ot;x^)ceN2^zv@7}RdpR?B+1oo z*5jq_hXLL^XSJ&s8lUmy4a=;9FQT+T&V}!nLSJaG$7-N?)|9ughMxvL=l5!@oq8TR z6rOs*pBo(>y#1egk~}Ur1HreZ)SLPyX6B|rW_3=V80!pJX9IkLjHLU2w#->w5c(JJ z{wzlE>gtfwrT09o_f&f4uUGxk^}Df`8RX4v(9n)*ggT^^8WP!H?OrE_M(^u<8|cdC z&($B8I~V*g8Av4UGoblp+dP=zuVp`-TIq$9fSXa_yjqm0Qdhn@A-$E!tr09pL}^=W zG58ng_NRM@f5zUg_8gyjLLUnhPmd6Tl=|>iL&9#Ya4omMDYwv;jqrnsaNppF2|l~X znfZvmTer1j^5u7teB6;c^FR9x!_Sl>_d_hJUED7CqAs_(ny+3ht%Y0pPx z?nX@(Mj_mV1MbKWwWCK|qS5%tjv9P0`RV!H{4{Rt`rUlazk3r9#dIV`krL79zoXN- z4Jk4Y)kqEry^SF&azQPMO@0%)eZ$bC<#~i;^xP{(J>bi*AG`4~8C%yEhky`Ql`kN; z=LIoiH0llUP{(^63WHp0m}_qGxhMzHv{!Vd*4Rm@Fl!aN!aG} z$wvy7A<{{c&@t|}R_2dhl1?sRW_ zha|P#R3wJPt^U-#+|(Ki`8p!93imXdq_h?b;;NLu_7t*2i>O}r^nQ2VTl(a#{phxZ z^iOx`e^4@-7&4}1h&p~L&Y^0}Hf99IWW3qW*!ceQh(7kmTl!4i{i%$@kjx9iBwB5< zX4DM$ujr%3$P)&i^v1BhKJEvGP;u?7)a*=0M5w1*)=#%z4B}QO2mTT=P!N08GIkbL zDxSKwsD)}QI&qLAUv@ne)U!Vu+2ZFAT^tFTZ+TqyDQXUrj29!L7ILbX))l{N3WWY3 zyA(CMdm(3RJ5%!)lr`BZK>9aZ@$YH+6md)UQrxIJcP~*!QKk9cIQKDpma0;NQKR2~ z3kc+uXy=8w<|!X!=rEFf8_c5%&NE>YG`kNs7XTVJ<&!Pu7rZI3U5xutY-v%P?@V0a znp*HQ>E<|C@Kjd-xzG3U)gcZPD4Y!`JfkTTEh-f0DvXqk2$m&|BQ6s9UKCVG(UDYr6fC2D5bbx%e6t%ms~!|I?`42n{jw!cU88E0m0%>%;8)J^ z7580@h^I>faS4NFwUBPy{I+)HM!e9Fj~qHww%NSJxGJi#+G{o_uGZ5qv3AhXMLsD= zbm%14U%bz0(^$nbWdw|g5O|?2$P+sdMIBb28ot&h~Q{m<3^Yv zV{ZK_p>K;c$24r_{LIjn-K8dk^p4)pI-`RI#pHlwrp~>_jtRMj&|lSWwdxs%GZhYN?ldYD zQ6WdVah%It)Q?cPcb_~Lnb<1P86%=*7QrPq47*Y>fO)1I`?QK-*Jug}G+&n>;rqovPl zxzFdZ4?^1SC)6LH*B|87AClf5+R`7s+#mVaA5A*I8Y?squQ!nBHISS>klHekzC4im zH~=Lb%n=&Q)f>$B8Z1m7EN&SrT^=ld9IRj_9jX!}G8kM?+s7U~up45uGikLnHQM(~Km zJL6SPt}sE-oQd|-?JYMoum_RG ztYTG=zSFCa0lPvt-4WFk>cF_}A5NtK~>n{m7#5_9E?vc{=OXM*U^7w1xV*1^pE5mZ#-5 z;SNOausQU)@TX?P4=veG$$yUPI+&(Yul(oGSGU8g?{_YctKO4o_?6Wxvk#;dc>h_+G|AA#h61mef!qdIp2x61maC#^sUR zmav7{LG>k54|UyDqN0Mt}H{^ZR!Oyij+MO~YJL#%^M$OxR=M7|oEt$Q|3CtZcA9zFj&eyU)ue%Q9 zLTkmgHn>9VUdfVe|6HQ!wgP{RBhNPD^Fn)=_d?k2-AJ&6ZL%rWf{M>Rv%)m@Y6AI* z)j(@p?CM^;;$$?|mfF=WZsr2x^Nv`C9B-r8^Kd(}?%WfJJq6#qKGgz|#p1Tm!lhG3 zd)tb3V0*7^4xvEkH;dT@#cu5>9V4JLU*gSgM_QdeHy&XrtvpZj3v7NVJLMWtx_p=@s@$MeaF+1y;Zyj4@@WEF zcJ;RHR1tIL#b7Fh@eGpZh+ustF%mA;JUz-kFK6BP#3^WauOxxdePeJQaNtGL&QB#O zc9(P3nLOE%I{u)L&-SSzYqf;y{n-xz`E~24#mB#5z9nR$my%zjkc1ioN-z6{Fa3@# zyN46Le*4?xb@tQxs*7~mv-GMJqh1+ubftZI=Kk2;{@CJeeGLoW|F(A4=JnS&>#zFz z8|S0zW{e2)Z-fIae~(E=Jid;NFW+#E-9%vAD#+goe7X&{zLhGytr@%(Il9e4yW?cO zlT4Pq`)GX^6MFZ)^e%Mp?(gBM=taEeWFi3{lsCjf@mUPIla)6mBgrVxE^URg1wy%;;6~hxqtbU+Y zjF_d-ld4`aTB6(PgG6#|q*-Y?lIbi>aI8~jlT_?XqRFb>@Z)&3N4Lt>pv~Lrqx>D*`cfkN0=b%H+Sy{L;|j8-ao#DO%rb>5vM*sAD}36{-RogK-wLe~WTr(;k z@q?REnIUgRSxOTrVOssYI=+fh2G^yA&VmVDgv++t z9;@COJ8-*bZbc)t&M&(!>GRV>oeMYaBxCY8>zSh@x^JdqFS#4Vd9%73rJ+|}@9WGt zo!@|^cFE+-O$?lHp zxU0VvXM8Gg?``eQyx%Pt({nhjeINGF{pp3=Yrp$zn%Ce6%Ad!mS@RbG5no;bpSfiz zQuBwgzHi=7H!o=SjDPWF-~7jda5VK3!;PSw#m);Iar|ZVCJ*$^lE&h>S_^4gs^fxP z*8iqi6T$GhV^;}NftPCC9Y)iMp3lZhYfOovFa5jTz1N>3-Oy^%scRdXEm(yTim7`2 zWfk#U<_qflEmcguQ2AN4MOf23U*{md(#&A zD71H#zfJfE|b4V<0PO?x(9P^0lyLYP)qnk z#zfSRMFANoh!rP!5^A>6!SOQn0jx2p#w&FEzdn;j#Qu`U&SSuzk5|(fi6~Rco8loF zqREL()Lo!rzA}~8H;YZGm#0wk;2#jj!u?vrwF8t$8D^=CO>uOhWpTb6=1^2k=*p!f ztmGdwF`EkQy`=TeBvSmy5tr_SG`PdBFRkGG+?RGd4Hv|hQFLRC&h%9?7rsdv6X;aU za$jC1xw`v$HWLS3qul!(bMrOOaugK@Cx`Nj1-RfC81{B1)_PY z%FUY7k3>TdS$#&;JZUuunpANCBBt8${8WkJcrg;0ie~kk#Ic2Qu@UBu`LL`qSvG!f zn)czM)24>DW37t=*`fORqIgW(c$ufL)g~ZqE(eRJ!keYY0GDZg)Y+M?+vbzVxctJgZM;{#l_e>Wape zQ(YH@C$?V8Cg0shPU9S7F1%CS%tO9daEE8Eu}O9KN1mYmK`6b~OpmQgZP>?Vo4MvS zq)+!bsiZx_*FGomOkO)ui|H!A^)6UhJm&Am9XAp zOf#>$*+RgN!2xEhwYPbC8}ru{gL*vaLABxA{OpZGS^`y*pkg0MEgpZ%@t!Kg(XGcus`InXk-ob(9*+}Ik(?b^ z@0ABKjsXRosz>t~C3O$`EZa2F9ZY#tco$vkJ)Fk*GAdsL&F@WXXEjPtGb~;lD*~sM zobqTS4?U2=wOeB~k@qnUzfpPy+KpHZLhJYPSOog1NEd4yxvgzD(-tyZk`OB$KVze$ zS-)qx>_{g&F~YT(U((3z`FK@kimouM9O+tJv0~#HMQn2XtetnDz=m7yvG$fuD-|^o z{26!5bjD!4F&FvV+hBdm$Dv|lnXZ=MuwO5 z4zc;fFEiSzDPyCF>_Lz|t?I_8nM#erFg5nFn4GJd+NbGH*n!w{SO?UR8qNL7N?4bJ z;1^&?B}Y89Fy0ro=0cPjoWp(2G#I-fPWQVdk?S-ZRAV5w6SkB!1qdTjOukIG`#neL zdrn;}IlVIGp+DOss+kn1e^j_6{`*y~s@9{9$F678qZuH9+tI0&+oNMG(bUx7V_!*Q&eMnsd6>W~cz=Lef1pW!kW+tfKz~Sl|F7Ks(3<|R?*8!U{)pPG{>aPzD8zwi zynz_%fmp7AI4^W8V}6CVJPA$%8hQf}Rx-(6GBv+sNWwYON@a!`2QrrjQlwRWgl?LzX(+joDcrSsGz~_ zQKBB=69D2`byW+Mx_G2lIu#p-q9bn#QZgr#wN$qv*1R<5N*!QSqXMz zqqq4{wf^}steEq$GrN26_X{J3VS%7E@8*7O3sI}?V`pv15X7%l!f8n7f(|58(ASbu zO9kuL97gwVs-u^0XBLa-7&5bJ8I%!k?#7xfm7B?JT(%m?S(k^$E8MY<-Uz1j4ha># z1yu?vHa!kiJrEuKZohaKZffa1ACOnD8ae+v+KpPUAg-uy#fPUyNVzP>zM*hnqEPXh zJ3(%=2CwAWNp!tsbTnLHPn=HIi`6;c_51_O!h-+GSV%hey}N8*%mr`tc@3@!;R^Lw zwtUa8`QL+sQh4G2TyzYyfVAB=OBbhYVH^P7zIZ&BG>f)uH%BKWek zJGLE0Nn}DnSmRB#0m$HWwD}5Mm1hwNRgUw43e}-D*ar}G0L=8fN zHA%zeB>|H>XmXlD+>Z?}jJ*z5iMZ#bm$7x=p+<0Ssy*h5QXplR%2LCd2d*~j8l_FH zcX)gPo{IceT&azpg-1lm!#`xbRZ|fhqv;+}R-P=2?I;;g&VIysi}*!Jj}c?5b?34@ zhiVGv3*SN<@6=(+0F_7s>J004{n6hcG46)nOLYr!!y2_BQJn3n2`UZu)U?L}l7W-- z!X#2x%?SFcgI{1!Pu2a7^fh#i#{l)3zaPSNM{E8HR2a%H`Zp%VXq?H9{ih@yx|HTCAu|R*M>Nx3x~GX*^{qgr(eux4B)- z$~o6UOI1JjyLNlS_UE`!$7Dpsav*f2Xp^J*9{(irg; z=t{*nSCSzanh0e=8}Wj>0om5x+P9qJ%~nvWzinGTgw|`6)9^5t8Jm4RPwU;!j+v^Wq$S%yP3Mr3hD7DTd*ETIO5sg!2?oW-S4lU#^ z5${?zb9rlKsW(+4@msG5RM^NfEY6-E>Uhj7HI$VcGAqa-jnI<~qfzr3G8gEtcwVehSEyX7zutzb-;Vt-Yud^k`9q}0dBH4V_8~xHlWZk*WbRWfXCmgR zlU4Hj$F7cJ<<11lGnl89K>aqDIa^3+ha4&?D_7kE`xGmz92i@W&S4Vp(X<(VA6CQ?HsQxIv3WH9ZfP>5(qyY9{P}wFKif|G@TtlB z?x*f8qCjK0RTD;YS zzTwHX(erkDDw7wrnK2fVX|F`T&W_=zL|3SpMdr?Qp_x^i*~Vg@wc^g}KXZ0wJB?dX z4&>&}cTzt@c9RgKoiz>2$5EwSeRd;pq}?MildH`2kR=m8_ItINyO2x!KAXFpm>ZEY z_~Y%lXNCpL?iyOt2iblPPGkxQ*!yXa5m5R)j6fk&v3E+XKYaH4v7U4^mIaoXbgVM# zzLd3eyy8BW-o6?0dXibMgP(Mw#-5OubXuFmW3h!K!E(B!sle;cAXe<`MCqL89TKtw z3uf9d@q?WFurM#nLNoD#{LSLJ153T%MT&&wD)|SQWzv714@8EgE6ESnSgd4dts=Or zge0x%Rwdbv`|Dh+@Sdfc$`8l4rCUa=x|R>^5OLaE7(hYkF?dI9b@VYp*4>hvT?A67 z+D9GNTiq@?M-G=!{RSU~&8+EYWJXqx>?LHzo~=I!%1n^kyd{yH60!LY!^Wu;YbMe9 zhZ@#=q|E~DaZc{>Oy=aInG~Ab(6XcvX78~JHQPPn3A~QYz8k(h3SXAB-CliBl;e;? z$26UKH3)fU@0zqsz&2{-+sEs1wVe&MQsH$o=GwuN`TGcxE`#_4JStnYVT9d#p}Asp z=+THVO4`buMCpHsc6bVtTr>JTj)MM7x?u|S>wQslDS}5umD$8%8}8{gQw?sG8C>2b_#?NzjP_S+E`@*|CLe|6aFPtJW7wlGKMObk+M|JokgmK?i@TxTq`F~Hdw&?DuCkjW?PV#&i+MYp?_Ns_5H%rUl=vD<6FtGq(`HETu ztoX@fmmK}pMXXEzb$drRsrvlYo{HP-7Ro9Rr6D7-`!IvoAozTnU&QH%_y`nd%`di4xD>jR{P7_ zrg{zAtkNMf?Dgtk>_R) z#cJJ)CqeKd*60L>r@^GWm;P`s&(ZZjGV{oHTtvXy#tgZkdU~bcJxT%k=E+ zO!L>Id47DuXS7LjiVK0>kMf8%=2_NE`ajfY&O0}G7R(=botmO`^(fasF`FK8QQXgE zM(5v@FM@5^kVAYCkPtp-MZ;f@kG_zZgq*E+g#7nLiFy9aP%H$UNo6=>VpA#@$j-ye zA4A<0`H|+M$$oU6c-%)#MyHhXjsA22*NdZl+}HD`jQ%(*mY4M7zh#p+Yz{6NrVCXH zRLY1siatl8;|?A*DN~K45e8dkSm096Mvw+OuAogb%~!CYTK4>!G3{;=oYFZCoBafb zN#3EcTHms5bcf&BbCD33lZX_(0lQ=y8k>Je0#G&pv&k?B?$eUGxXV1!Iv>pavj{5y`i`Of2{(5n8& z>B*De?b$|O99`Cv(Ea7XkFn8o?o*4K3uQY^^sJNpN3yxLz7sbA$k-Dt+`cQ~I?X9Q zFksmOQ{WaDfGx{M2|iZ-zTo%azMfEQge(Vx-yxBOWKZ&M-%vH3G%h*Gq z^gZsj!xhX@sFOec(xy$dU@UIjQQdC5qfK|{l%Y){nRTbjbU#3)bnqIyql5lLZlcQ$ zB=-1j$dV_D-tQ%OAYswLf@4m81|0Ix;?+KO(*X6EXeRu}8|ULHY~+L@-_ z&CD^KW|sPukERBhiynfkjoZ(`-`#hLo6GCRbM{%A&j(8wTfnn|pW5yWJWfmQ?;q^S zA6*z6*kDK`rL-Lyv|emom{dc>UD$Hg2W_~zUhHY;qT%d)WU56Df5^jxE@FXFavXyU zQ{Oq_nM)oyhSeJN9EZ7=(pQJYcf2^qgtO2q$3CO$&yR``2y;!cQ($gQ$_OerP6EZ7Dl$YV0uVPzhu*lS-vQ$PRbi@(fs|U$4ySw zbw&TLKFzqVYN2bTU)%xxdeDy%V{Z-Z+x1^&0`3hPnLMd(+oGQgELF`r2i;_)P0QDR zCr6FyI_7@e=7%``XuI40^P8mEKdVn7D;ZI+Qxu;n= z&aHuIcRjVRYn=BxRnrkG^5%Un#&#he9Rw-;A_g8pQYQ?Nuc-!0S*zYLYn#hW+Z1F; z_xF4L$lsn9zDBmJ!!-r(vV-00Qm3Cs=h{m?Nc}{OO}s#y2cot``CxEGU+qlNVeka` z-+rb*jFS3%HiFG2cw9t&0^!Zt2t4sZ8@mJ$hnN@`Z|Yp|_VGYdk^)+c<5nu#c=x-t1|S3g|GEOCVhC;Ci_ULn!KB#K3Wh zEum0-H`_0@+8^!RvH7vlydzZ!%RchUR-!;7f1)8r+;3y@JCO!4b>vg8vUo}+!(U$t zp*WvUeq0QR}R#8Gp2FOY%<|MO%IH)YpP5wNQI8+WKSVt!H}I#D{6*8i3cqhLSng1_SD zXlVgc<@D%JKS#%?m|X;ZS4NLfj;K>SIj-uIw(9x!zMAZ`pE(bdq{%OtNRG@=-lPIe z7<(YCpZCN$Ym}S?WRi$!mQcrjaG%QzqajeY+Ja*LYu3Vc`554VOtreOEotmbuI# zf=X|t8+$gov9?@4jLBflWUlq1_K(lY6BGC?(|iX`T}6;Evk|UtVGBoHWu!N=2}{v@ zY0QjKLPlvhD--*Ok&8yU^SrrWb1`<1y4RUnjJ3RA@>8is)&S1&IQ^cEp37A<;AlrO z8$U}42d7TG#MC*y1ZuZrrK%=gLxM`?j9oM=4+>`-&-VpwQfTpO~ z#H4nP94WDEe*Vh#o_p8L%E78jBRA*%Ww*t|p(C3onZ69?F2e){jx=Z~&sN|Iwfr}Z zIFDxsOU=hHy&FarubDhLgolAiMBYly>+mx_w!N=D&#D3!$JmyCchfH{-8wLQh`fRi zimH^7b1?AbOpKUYf-D=l88Hhn!sCpS4kNkpL=;b6kF6$doGDI$KKZa8aQ!eLmP>{; zEdCKzUp9O?Xc(|fvH9*_T12UN2?JJ{iuo4A$S(Z%nSSLgI04Z#%%ed-gO>gE^obG6 zmt)yaPG=n2Bwd0975OS7Y@}?0*~RiQu6&J!4>qb2 zm#dK+|C1xLaY{RDs3}8J=B8%TJid-;HBA&qYCB-a+kyq;g5uA?|yS$a*qjMUY%5$$b<6bmJT zu_C;`>g13{P4{m-R`J+1C>$9@aUl2p=QpEb5Rk+a!0@%ogtujk`X;{Xw(Km#g7t#C zPdn}Ni2Xxh=~dy7rti@xkIL1^Hbc_Rj!;39xly_Zfk;g+&d&FxMl6-Y=lR}8gQSK? za%dLz-SBWa+luMx_PObYV}0|}H=4|@P)7a3;69G>%AynJDE%pG+SO5fAz}{Qx#6HF z&h?wjyN#aib4%CebUF(0fy1Zi(A8@Dy)H5FcKeCL5!tQ56^9k>ma#VT^WSt4s>6MK z*U@#iIlkW%=ZKdh%Xk~3a#y^v(Uy4&e z0xP_M8*C&DL`+nBR3Jdo0ACi7BU^&==h5DHKnWJsz^2f5K^drRbEs81HijB#<#3Da zL`0lf^iJR=wZ8cb6!U~6V;_!{lWunhe{TTB!ZL(kLb0pBg{X!&ql$1u9?FeUVqBhe zyqphs29bCM>*e}7_{4^U`NM?I;19DY1hnr76SIjvQWCRj5R_A9hp+d;C@}`J%No~7 z>axj#(8+h!GsX@3ZnNJZDCEqXWs|c~Qf~YL?u<}guamPHrBZ(c2y9UCjrWJGI8L@fqquq9ydkztgSXF`TE@yIjJt})Az%d^C;v1}|d zCK|mv*{F`l`BbO=37Ja&4HdhH4C}!LyFeB#E0qS(Z%$%`GMdc^<;`}j-}BB!T+i=# zGM9Noj5&Rbqn(Vee{DW22maUbT#qBOEKKeO z)4HIv@(-1hCMIF^j4CmgG-^dt7n6@J6|fn1PETsG@!X%jztr45hB|n(*=9v+^2Hdq zC)*UARD;wz-|Dc9cueO5(+o9KOo^!tuW71KY0WOc^mki63?>?FYAnLJD#V(g$b88J zTFDEn{*hG)mUONneYIMg|B816iHP{eJ$0@|`E;)c*bxewE^!5XZ#xcnQ z8i_V%Og$6}Oxq03&r`A~GkwsqXtvct_u`CZ={{o7{^Zh#GbX3^BQEqCrSj*Y7ZITk zz{)kFT?#Ou4>BtZvZW7pDGc_Z4+$y^iKPFPSokZGJ~W@9FtnULtgbMujXu1$Fnp9g zVzw}1l|FK(F!F>x>bfxMnLZl1C>o0)rjnp2hMXamwkVdBA&!S(9$*3?(r1g(R~how z88QxvGIoky@9wj%8K79jPy)s*az=gfX&0>bQGvSlIn+5gmbt{1P{rar4aR&~%Y2pM zd>6(7AI7YEdN*3rp}Vp1G6tP0BA*fSOE_s!&Oyyj!X!!3rTx{j42n|L*i^=ygPJ48 zKhKO6$R!n6OqB#BmE=rSv?W!nOw~Lk)gnwak|i~YOjBxm0xv2|^AW&cEvpI}rut_c zk4Van&pS3ormmq@=2h9|W^xU(J52(}Sg9oCvALoId(8wnPKuMQkt()#Jq`JXpAXhd z4H(dxtfVsuI+3@!dTlsCh&6u;s z$~ayy%hk3R(hu%JILdEXVm6c+vPF%|jre1x_$g(pxQY5@ILSxkz!kF~UB+4&6MEii z#`)8l-KMxJ&|*+_txtBD5j*aO%yxfvsg&5)oP<1n@&X7gok|YFk681hz~r=9(@`F} zeN+~gyJg$!{P948iJ-XAR0}VMDabn(Z={TQu`GE;J)eWX-33N{m&nqEO0o%e8wDMG z^$nJF+5-3d)#b@8PsO}_vUi?heWM9h0{L1a_<75{bS|B{ML4_7L~_nzd2UVnZe^NV z$SnUMux=XImSpO0&VEp5KXOGg(44g0mek&wUAj*`f!Rcb{bW^US33+%PQEMK4O-pP zet%a}6!&If#?-tsWeVb3o qw~J56R;7(bR#tGf3U{Xe1QXvAR$^1Ib)8g8u{6@ - - - - - - - -

The action package is the core of the struts framework, - providing the "Controller" aspect of a MVC model.

-
-
-Action Package UML -
- -

Package Specification

-##### FILL IN ANY SPECS NEEDED BY JAVA COMPATIBILITY KIT ##### - - -

Related Documentation

-For overviews, tutorials, examples, guides, and tool documentation, -please see: - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/ComposableRequestProcessor.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/ComposableRequestProcessor.java deleted file mode 100644 index 57c206b3462..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/ComposableRequestProcessor.java +++ /dev/null @@ -1,407 +0,0 @@ -/* - * $Id: ComposableRequestProcessor.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain; - -import org.apache.commons.beanutils.ConstructorUtils; -import org.apache.commons.chain.Catalog; -import org.apache.commons.chain.CatalogFactory; -import org.apache.commons.chain.Command; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.action.ActionServlet; -import org.apache.struts.action.RequestProcessor; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.config.ControllerConfig; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.upload.MultipartRequestWrapper; -import org.apache.struts.util.RequestUtils; - -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.UnavailableException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import java.io.IOException; - -import java.lang.reflect.Constructor; - -/** - *

ComposableRequestProcessor uses the Chain Of Resposibility design - * pattern (as implemented by the commons-chain package in Jakarta Commons) to - * support external configuration of command chains to be used. It is - * configured via the following context initialization parameters:

- * - *
    - * - *
  • [org.apache.struts.chain.CATALOG_NAME] - Name of the Catalog in which - * we will look up the Command to be executed for each request. If not - * specified, the default value is struts.
  • - * - *
  • org.apache.struts.chain.COMMAND_NAME - Name of the Command which we - * will execute for each request, to be looked up in the specified Catalog. - * If not specified, the default value is servlet-standard.
  • - * - *
- * - * @version $Rev: 471754 $ $Date: 2005-11-12 13:01:44 -0500 (Sat, 12 Nov 2005) - * $ - * @since Struts 1.1 - */ -public class ComposableRequestProcessor extends RequestProcessor { - // ------------------------------------------------------ Instance Variables - - /** - *

Cache for constructor discovered by setActionContextClass method. - *

- */ - private static final Class[] SERVLET_ACTION_CONTEXT_CTOR_SIGNATURE = - new Class[] { - ServletContext.class, HttpServletRequest.class, - HttpServletResponse.class - }; - - /** - *

Token for ActionContext clazss so that it can be stored in the - * ControllerConfig.

- */ - public static final String ACTION_CONTEXT_CLASS = "ACTION_CONTEXT_CLASS"; - - /** - *

The Log instance for this class.

- */ - protected static final Log LOG = - LogFactory.getLog(ComposableRequestProcessor.class); - - /** - *

The {@link CatalogFactory} from which catalog containing the the - * base request-processing {@link Command} will be retrieved.

- */ - protected CatalogFactory catalogFactory = null; - - /** - *

The {@link Catalog} containing all of the available command chains - * for this module. - */ - protected Catalog catalog = null; - - /** - *

The {@link Command} to be executed for each request.

- */ - protected Command command = null; - - /** - *

ActionContext class as cached by createActionContextInstance - * method.

- */ - private Class actionContextClass; - - /** - *

ActionContext constructor as cached by createActionContextInstance - * method.

- */ - private Constructor servletActionContextConstructor = null; - - // ---------------------------------------------------------- Public Methods - - /** - *

Clean up in preparation for a shutdown of this application.

- */ - public void destroy() { - super.destroy(); - catalogFactory = null; - catalog = null; - command = null; - actionContextClass = null; - servletActionContextConstructor = null; - } - - /** - *

Initialize this request processor instance.

- * - * @param servlet The ActionServlet we are associated with - * @param moduleConfig The ModuleConfig we are associated with. - * @throws ServletException If an error occurs during initialization - */ - public void init(ActionServlet servlet, ModuleConfig moduleConfig) - throws ServletException { - LOG.info( - "Initializing composable request processor for module prefix '" - + moduleConfig.getPrefix() + "'"); - super.init(servlet, moduleConfig); - - initCatalogFactory(servlet, moduleConfig); - - ControllerConfig controllerConfig = moduleConfig.getControllerConfig(); - - String catalogName = controllerConfig.getCatalog(); - - catalog = this.catalogFactory.getCatalog(catalogName); - - if (catalog == null) { - throw new ServletException("Cannot find catalog '" + catalogName - + "'"); - } - - String commandName = controllerConfig.getCommand(); - - command = catalog.getCommand(commandName); - - if (command == null) { - throw new ServletException("Cannot find command '" + commandName - + "'"); - } - - this.setActionContextClassName(controllerConfig.getProperty( - ACTION_CONTEXT_CLASS)); - } - - /** - *

Set and cache ActionContext class.

If there is a custom - * class provided and if it uses our "preferred" constructor, cache a - * reference to that constructor rather than looking it up every time. - *

- * - * @param actionContextClass The ActionContext class to process - */ - private void setActionContextClass(Class actionContextClass) { - this.actionContextClass = actionContextClass; - - if (actionContextClass != null) { - this.servletActionContextConstructor = - ConstructorUtils.getAccessibleConstructor(actionContextClass, - SERVLET_ACTION_CONTEXT_CTOR_SIGNATURE); - } else { - this.servletActionContextConstructor = null; - } - } - - /** - *

Make sure that the specified className identfies a - * class which can be found and which implements the - * ActionContext interface.

- * - * @param className Fully qualified name of - * @throws ServletException If an error occurs during initialization - * @throws UnavailableException if class does not implement ActionContext - * or is not found - */ - private void setActionContextClassName(String className) - throws ServletException { - if ((className != null) && (className.trim().length() > 0)) { - if (LOG.isDebugEnabled()) { - LOG.debug( - "setActionContextClassName: requested context class: " - + className); - } - - try { - Class actionContextClass = - RequestUtils.applicationClass(className); - - if (!ActionContext.class.isAssignableFrom(actionContextClass)) { - throw new UnavailableException("ActionContextClass " + "[" - + className + "]" - + " must implement ActionContext interface."); - } - - this.setActionContextClass(actionContextClass); - } catch (ClassNotFoundException e) { - throw new UnavailableException("ActionContextClass " - + className + " not found."); - } - } else { - if (LOG.isDebugEnabled()) { - LOG.debug("setActionContextClassName: no className specified"); - } - - this.setActionContextClass(null); - } - } - - /** - *

Establish the CatalogFactory which will be used to look up the - * catalog which has the request processing command.

The base - * implementation simply calls CatalogFactory.getInstance(), unless the - * catalogFactory property of this object has already been set, in which - * case it is not changed.

- * - * @param servlet The ActionServlet we are processing - * @param moduleConfig The ModuleConfig we are processing - */ - protected void initCatalogFactory(ActionServlet servlet, - ModuleConfig moduleConfig) { - if (this.catalogFactory != null) { - return; - } - - this.catalogFactory = CatalogFactory.getInstance(); - } - - /** - *

Process an HttpServletRequest and create the - * corresponding HttpServletResponse.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @throws IOException if an input/output error occurs - * @throws ServletException if a processing exception occurs - */ - public void process(HttpServletRequest request, HttpServletResponse response) - throws IOException, ServletException { - // Wrap the request in the case of a multipart request - request = processMultipart(request); - - // Create and populate a Context for this request - ActionContext context = contextInstance(request, response); - - // Create and execute the command. - try { - if (LOG.isDebugEnabled()) { - LOG.debug("Using processing chain for this request"); - } - - command.execute(context); - } catch (Exception e) { - // Execute the exception processing chain?? - throw new ServletException(e); - } - - // Release the context. - context.release(); - } - - /** - *

Provide the initialized ActionContext instance which - * will be used by this request. Internally, this simply calls - * createActionContextInstance followed by - * initializeActionContext.

- * - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @return Initiliazed ActionContext - * @throws ServletException if a processing exception occurs - */ - protected ActionContext contextInstance(HttpServletRequest request, - HttpServletResponse response) - throws ServletException { - ActionContext context = - createActionContextInstance(getServletContext(), request, response); - - initializeActionContext(context); - - return context; - } - - /** - *

Create a new instance of ActionContext according to - * configuration. If no alternative was specified at initialization, a - * new instance ServletActionContext is returned. If an - * alternative was specified using the ACTION_CONTEXT_CLASS - * property, then that value is treated as a classname, and an instance of - * that class is created. If that class implements the same constructor - * that ServletActionContext does, then that constructor will - * be used: ServletContext, HttpServletRequest, - * HttpServletResponse; otherwise, it is assumed that the class has - * a no-arguments constructor. If these constraints do not suit you, - * simply override this method in a subclass.

- * - * @param servletContext The servlet context we are processing - * @param request The servlet request we are processing - * @param response The servlet response we are creating - * @return New instance of ActionContext - * @throws ServletException if a processing exception occurs - */ - protected ActionContext createActionContextInstance( - ServletContext servletContext, HttpServletRequest request, - HttpServletResponse response) - throws ServletException { - if (this.actionContextClass == null) { - return new ServletActionContext(servletContext, request, response); - } - - try { - if (this.servletActionContextConstructor == null) { - return (ActionContext) this.actionContextClass.newInstance(); - } - - return (ActionContext) this.servletActionContextConstructor - .newInstance(new Object[] { servletContext, request, response }); - } catch (Exception e) { - throw new ServletException( - "Error creating ActionContext instance of type " - + this.actionContextClass, e); - } - } - - /** - *

Set common properties on the given ActionContext - * instance so that commands in the chain can count on their presence. - * Note that while this method does not require that its argument be an - * instance of ServletActionContext, at this time many common - * Struts commands will be expecting to receive an ActionContext - * which is also a ServletActionContext.

- * - * @param context The ActionContext we are processing - */ - protected void initializeActionContext(ActionContext context) { - if (context instanceof ServletActionContext) { - ((ServletActionContext) context).setActionServlet(this.servlet); - } - - context.setModuleConfig(this.moduleConfig); - } - - /** - *

If this is a multipart request, wrap it with a special wrapper. - * Otherwise, return the request unchanged.

- * - * @param request The HttpServletRequest we are processing - * @return Original or wrapped request as appropriate - */ - protected HttpServletRequest processMultipart(HttpServletRequest request) { - if (!"POST".equalsIgnoreCase(request.getMethod())) { - return (request); - } - - String contentType = request.getContentType(); - - if ((contentType != null) - && contentType.startsWith("multipart/form-data")) { - return (new MultipartRequestWrapper(request)); - } else { - return (request); - } - } - - /** - *

Set the CatalogFactory instance which should be used to - * find the request-processing command. In the base implementation, if - * this value is not already set, then it will be initialized when {@link - * #initCatalogFactory} is called.

- * - * @param catalogFactory Our CatalogFactory instance - */ - public void setCatalogFactory(CatalogFactory catalogFactory) { - this.catalogFactory = catalogFactory; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/Constants.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/Constants.java deleted file mode 100644 index 75d45475350..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/Constants.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * $Id: Constants.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain; - - -/** - *

Global constants for the Chain of Responsibility Library.

- */ -public final class Constants { - // -------------------------------------------------- Context Attribute Keys - - /** - *

The default context attribute under which the Action for the current - * request will be stored.

- */ - public static final String ACTION_KEY = "action"; - - /** - *

The default context attribute under which the ActionConfig for the - * current request will be stored.

- */ - public static final String ACTION_CONFIG_KEY = "actionConfig"; - - /** - *

The default context attribute under which the ActionForm for the - * current request will be stored.

- */ - public static final String ACTION_FORM_KEY = "actionForm"; - - /** - *

The default context attribute under which the ActionServet for the - * current application will be stored.

- */ - public static final String ACTION_SERVLET_KEY = "actionServlet"; - - /** - *

The default context attribute under which a boolean flag indicating - * whether this request has been cancelled will be stored.

- */ - public static final String CANCEL_KEY = "cancel"; - - /** - *

The default context attribute under which an Exception will be - * stored before passing it to an exception handler chain.

- */ - public static final String EXCEPTION_KEY = "exception"; - - /** - *

The default context attribute under which the ForwardConfig for the - * current request will be stored.

- */ - public static final String FORWARD_CONFIG_KEY = "forwardConfig"; - - /** - *

The default context attribute under which the include path for the - * current request will be stored.

- */ - public static final String INCLUDE_KEY = "include"; - - /** - *

The default context attribute under which the Locale for the current - * request will be stored.

- */ - public static final String LOCALE_KEY = "locale"; - - /** - *

The default context attribute under which the MessageResources for - * the current request will be stored.

- */ - public static final String MESSAGE_RESOURCES_KEY = "messageResources"; - - /** - *

The default context attribute under which the ModuleConfig for the - * current request will be stored.

- */ - public static final String MODULE_CONFIG_KEY = "moduleConfig"; - - /** - *

The default context attribute key under which a Boolean is stored, - * indicating the valid state of the current request. If not present, a - * value of Boolean.FALSE should be assumed. - */ - public static final String VALID_KEY = "valid"; - - // --------------------------------------------------------- Other Constants - - /** - *

The base part of the context attribute under which a Map containing - * the Action instances associated with this module are stored. This value - * must be suffixed with the module prefix in order to create a unique key - * per module.

- */ - public static final String ACTIONS_KEY = "actions"; - - /** - *

The context attribute under which the Catalog containing our defined - * command chains has been stored.

- */ - public static final String CATALOG_ATTR = "org.apache.struts.chain.CATALOG"; - - /** - *

The request attribute under which the path information is stored for - * processing during a RequestDispatcher.include() call.

- */ - public static final String INCLUDE_PATH_INFO = - "javax.servlet.include.path_info"; - - /** - *

The request attribute under which the servlet path is stored for - * processing during a RequestDispatcher.include() call.

- */ - public static final String INCLUDE_SERVLET_PATH = - "javax.servlet.include.servlet_path"; -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractAuthorizeAction.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractAuthorizeAction.java deleted file mode 100644 index be7be115f6a..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractAuthorizeAction.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * $Id: AbstractAuthorizeAction.java 481115 2006-12-01 00:16:41Z germuska $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ActionConfig; - -/** - *

Determine whether the requested action is authorized for the current - * user. If not, abort chain processing and perferably, return an error - * message of some kind.

- * - * @version $Rev: 481115 $ $Date: 2005-11-12 13:01:44 -0500 (Sat, 12 Nov 2005) - * $ - */ -public abstract class AbstractAuthorizeAction extends ActionCommandBase { - // ------------------------------------------------------ Instance Variables - - /** - * Provide a Commons logging instance for this class. - */ - private static final Log LOG = - LogFactory.getLog(AbstractAuthorizeAction.class); - - // ---------------------------------------------------------- Public Methods - - /** - *

Determine whether the requested action is authorized for the current - * user. If not, abort chain processing and perferably, return an error - * message of some kind.

- * - * @param actionCtx The Context for the current request - * @return false if the user is authorized for the selected - * action, else true to abort processing. - * @throws UnauthorizedActionException if authorization fails - * or if an error is encountered in the course of performing the authorization. - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Retrieve ActionConfig - ActionConfig actionConfig = actionCtx.getActionConfig(); - - // Is this action protected by role requirements? - if (!isAuthorizationRequired(actionConfig)) { - return (false); - } - - boolean throwEx; - - try { - throwEx = - !(isAuthorized(actionCtx, actionConfig.getRoleNames(), - actionConfig)); - } catch (UnauthorizedActionException ex) { - throw ex; - } catch (Exception ex) { - throwEx = true; - LOG.error("Unable to complete authorization process", ex); - } - - if (throwEx) { - // The current user is not authorized for this action - throw new UnauthorizedActionException(getErrorMessage(actionCtx, - actionConfig)); - } else { - return (false); - } - } - - /** - *

Must authorization rules be consulted? The base implementation - * returns true if the given ActionConfig has - * one or more roles defined.

- * - * @param actionConfig the current ActionConfig object - * @return true if the isAuthorized method should be - * consulted. - */ - protected boolean isAuthorizationRequired(ActionConfig actionConfig) { - String[] roles = actionConfig.getRoleNames(); - - return (roles != null) && (roles.length > 0); - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Determine if the action is authorized for the given roles.

- * - * @param context The Context for the current request - * @param roles An array of valid roles for this request - * @param actionConfig The current action mapping - * @return true if the request is authorized, else - * false - * @throws UnauthorizedActionException If the logic determines that the request is not authorized - * but does not wish to rely upon the default mechanism reporting the error. - * @throws Exception If the action cannot be tested for authorization - */ - protected abstract boolean isAuthorized(ActionContext context, - String[] roles, ActionConfig actionConfig) - throws Exception; - - /** - *

Retrieve error message from context.

- * - * @param context The Context for the current request - * @param actionConfig The current action mapping - * @return error message - */ - protected abstract String getErrorMessage(ActionContext context, - ActionConfig actionConfig); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractCreateAction.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractCreateAction.java deleted file mode 100644 index 709847d0c6d..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractCreateAction.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * $Id: AbstractCreateAction.java 525705 2007-04-05 05:25:08Z pbenedict $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.action.Action; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ActionConfig; - -/** - *

Create (if necessary) and cache an Action for this - * request.

- * - * @version $Rev: 525705 $ $Date: 2005-11-12 13:01:44 -0500 (Sat, 12 Nov 2005) - * $ - */ -public abstract class AbstractCreateAction extends ActionCommandBase { - // ------------------------------------------------------ Instance Variables - - /** - * Provide a Commons logging instance for this class. - */ - private static final Log LOG = - LogFactory.getLog(AbstractCreateAction.class); - - // ---------------------------------------------------------- Public Methods - - /** - *

Create (if necessary) and cache an Action for this - * request.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws Exception if there are any problems instantiating the Action - * class. - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Skip processing if the current request is not valid - Boolean valid = actionCtx.getFormValid(); - - if ((valid == null) || !valid.booleanValue()) { - LOG.trace("Invalid form; not going to execute."); - - return (false); - } - - // Check to see if an action has already been created - if (actionCtx.getAction() != null) { - LOG.trace("already have an action [" + actionCtx.getAction() + "]"); - - return (false); - } - - // Look up the class name for the desired Action - ActionConfig actionConfig = actionCtx.getActionConfig(); - String type = actionConfig.getType(); - - if (type == null) { - String command = actionConfig.getCommand(); - if ((command == null) && (actionConfig.getForward() == null) - && (actionConfig.getInclude() == null)) { - LOG.error("no type or command for " + actionConfig.getPath()); - } else { - LOG.trace("no type for " + actionConfig.getPath()); - } - - return (false); - } - - // Create (if necessary) and cache an Action instance - Action action = getAction(actionCtx, type, actionConfig); - - if (LOG.isTraceEnabled()) { - LOG.trace("setting action to " + action); - } - - actionCtx.setAction(action); - - return (false); - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Create and return the appropriate Action class for the - * given type and actionConfig.

NOTE: - * The dependence on ActionServlet suggests that this should be broken up - * along the lines of the other Abstract/concrete pairs in the - * org.apache.struts.chain.commands package.

- * - * @param context The Context for this request - * @param type Name of class to instantiate - * @param actionConfig The {@link ActionConfig} for this request - * @return Instantiated Action class - * @throws Exception if there are any problems instantiating the Action - * class. - */ - protected abstract Action getAction(ActionContext context, String type, - ActionConfig actionConfig) - throws Exception; -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractExceptionHandler.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractExceptionHandler.java deleted file mode 100644 index e68283b014f..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractExceptionHandler.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * $Id: AbstractExceptionHandler.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ExceptionConfig; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; - -/** - *

Invoke the local or global exception handler configured for the - * exception class that occurred.

- * - * @version $Rev: 471754 $ $Date: 2005-11-12 13:01:44 -0500 (Sat, 12 Nov 2005) - * $ - */ -public abstract class AbstractExceptionHandler extends ActionCommandBase { - // ------------------------------------------------------ Instance Variables - - /** - * Provide a Commons logging instance for this class. - */ - private static final Log LOG = - LogFactory.getLog(AbstractExceptionHandler.class); - - // ---------------------------------------------------------- Public Methods - - /** - *

Invoke the appropriate Action for this request, and - * cache the returned ActionForward.

- * - * @param actionCtx The Context for the current request - * @return false if a ForwardConfig is returned, - * else true to complete processing - * @throws Exception if thrown by the Action class and not declared by an - * Exception Handler - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Look up the exception that was thrown - Exception exception = actionCtx.getException(); - - if (exception == null) { - LOG.warn("No Exception found in ActionContext"); - - return (true); - } - - // Look up the local or global exception handler configuration - ExceptionConfig exceptionConfig = null; - ActionConfig actionConfig = actionCtx.getActionConfig(); - ModuleConfig moduleConfig = actionCtx.getModuleConfig(); - - if (actionConfig != null) { - if (LOG.isDebugEnabled()) { - LOG.debug("See if actionConfig " + actionConfig - + " has an exceptionConfig for " - + exception.getClass().getName()); - } - - exceptionConfig = actionConfig.findException(exception.getClass()); - } else if (moduleConfig != null) { - if (LOG.isDebugEnabled()) { - LOG.debug("No action yet, see if moduleConfig " + moduleConfig - + " has an exceptionConfig " - + exception.getClass().getName()); - } - - exceptionConfig = moduleConfig.findException(exception.getClass()); - } - - // Handle the exception in the configured manner - if (exceptionConfig == null) { - LOG.warn("Unhandled exception", exception); - throw exception; - } - - ForwardConfig forwardConfig = - handle(actionCtx, exception, exceptionConfig, actionConfig, - moduleConfig); - - if (forwardConfig != null) { - actionCtx.setForwardConfig(forwardConfig); - - return (false); - } else { - return (true); - } - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Perform the required handling of the specified exception.

- * - * @param context The Context for this request - * @param exception The exception being handled - * @param exceptionConfig The corresponding {@link ExceptionConfig} - * @param actionConfig The {@link ActionConfig} for this request - * @param moduleConfig The {@link ModuleConfig} for this request - * @return the ForwardConfig to be processed next (if any), - * or null if processing has been completed - * @throws Exception if there are any problems handling the exception - */ - protected abstract ForwardConfig handle(ActionContext context, - Exception exception, ExceptionConfig exceptionConfig, - ActionConfig actionConfig, ModuleConfig moduleConfig) - throws Exception; -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractExecuteAction.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractExecuteAction.java deleted file mode 100644 index 385c4b417cd..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractExecuteAction.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * $Id: AbstractExecuteAction.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.struts.action.Action; -import org.apache.struts.action.ActionForm; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ForwardConfig; - -/** - *

Invoke the appropriate Action for this request, and cache - * the returned ActionForward.

- * - * @version $Rev: 471754 $ $Date: 2005-06-04 10:58:46 -0400 (Sat, 04 Jun 2005) - * $ - */ -public abstract class AbstractExecuteAction extends ActionCommandBase { - // ---------------------------------------------------------- Public Methods - - /** - *

Invoke the appropriate Action for this request, and - * cache the returned ActionForward.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws Exception if thrown by the Action class - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Skip processing if the current request is not valid - Boolean valid = actionCtx.getFormValid(); - - if ((valid == null) || !valid.booleanValue()) { - return (false); - } - - // Acquire the resources we will need to send to the Action - Action action = actionCtx.getAction(); - - if (action == null) { - return (false); - } - - ActionConfig actionConfig = actionCtx.getActionConfig(); - ActionForm actionForm = actionCtx.getActionForm(); - - // Execute the Action for this request, caching returned ActionForward - ForwardConfig forwardConfig = - execute(actionCtx, action, actionConfig, actionForm); - - actionCtx.setForwardConfig(forwardConfig); - - return (false); - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Execute the specified Action, and return the resulting - * ForwardConfig.

- * - * @param context The Context for this request - * @param action The Action to be executed - * @param actionConfig The ActionConfig defining this action - * @param actionForm The ActionForm (if any) for this - * action - * @return ForwardConfig The next location, or null - * @throws Exception if thrown by the Action - */ - protected abstract ForwardConfig execute(ActionContext context, - Action action, ActionConfig actionConfig, ActionForm actionForm) - throws Exception; -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractPerformForward.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractPerformForward.java deleted file mode 100644 index 69aaa9e0be3..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractPerformForward.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * $Id: AbstractPerformForward.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ForwardConfig; - -/** - *

Perform forwarding or redirection based on the specified - * ForwardConfig (if any).

- * - * @version $Rev: 471754 $ $Date: 2005-06-04 10:58:46 -0400 (Sat, 04 Jun 2005) - * $ - */ -public abstract class AbstractPerformForward extends ActionCommandBase { - // ---------------------------------------------------------- Public Methods - - /** - *

Perform forwarding or redirection based on the specified - * ActionForward (if any).

- * - * @param actionCtx The Context for the current request - * @return true so that processing completes - * @throws Exception if thrown by the Action - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Is there a ForwardConfig to be performed? - ForwardConfig forwardConfig = actionCtx.getForwardConfig(); - - if (forwardConfig == null) { - return (false); - } - - // Perform the appropriate processing on this ActionForward - perform(actionCtx, forwardConfig); - - return (true); - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Perform the appropriate processing on the specified - * ForwardConfig.

- * - * @param context The context for this request - * @param forwardConfig The forward to be performed - * @throws Exception if thrown by the Action - */ - protected abstract void perform(ActionContext context, - ForwardConfig forwardConfig) - throws Exception; -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractPerformInclude.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractPerformInclude.java deleted file mode 100644 index ce5d985a2d6..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractPerformInclude.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * $Id: AbstractPerformInclude.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ModuleConfig; - -/** - *

Perform forwarding or redirection based on the specified - * String (if any).

- * - * @version $Rev: 471754 $ $Date: 2005-06-04 10:58:46 -0400 (Sat, 04 Jun 2005) - * $ - */ -public abstract class AbstractPerformInclude extends ActionCommandBase { - // ---------------------------------------------------------- Public Methods - - /** - *

Perform an include based on the specified include uri (if any).

- * - * @param actionCtx The Context for the current request - * @return true so that processing completes - * @throws Exception if thrown by the Action - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - - // Is there an include to be performed? - String include = actionCtx.getInclude(); - - if (include == null) { - return (false); - } - - // Determine the currect uri - String uri = includePath(actionCtx, include); - - // Perform the appropriate processing on this include uri - perform(actionCtx, uri); - - return (true); - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Returns the path to perform the include. Override this method to provide - * a different path.

- * - * @param actionContext The context for this request - * @param include The forward to be performed - * @since Struts 1.3.6 - */ - protected String includePath(ActionContext actionContext, String include) { - ModuleConfig moduleConfig = actionContext.getModuleConfig(); - return moduleConfig.getPrefix() + include; - } - - /** - *

Perform the appropriate processing on the specified include - * uri.

- * - * @param context The context for this request - * @param include The forward to be performed - * @throws Exception if thrown by the Action - */ - protected abstract void perform(ActionContext context, String include) - throws Exception; -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java deleted file mode 100644 index 778be80ec76..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractPopulateActionForm.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * $Id: AbstractPopulateActionForm.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.struts.Globals; -import org.apache.struts.action.ActionForm; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ActionConfig; - -import java.util.Map; - -/** - *

Populate the form bean (if any) for this request.

- * - * @version $Rev: 471754 $ $Date: 2005-11-12 13:01:44 -0500 (Sat, 12 Nov 2005) - * $ - */ -public abstract class AbstractPopulateActionForm extends ActionCommandBase { - // ---------------------------------------------------------- Public Methods - - /** - *

Populate the form bean (if any) for this request.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws Exception On an unexpected error - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Is there a form bean for this request? - ActionForm actionForm = actionCtx.getActionForm(); - - if (actionForm == null) { - return (false); - } - - // Reset the form bean property values - ActionConfig actionConfig = actionCtx.getActionConfig(); - - reset(actionCtx, actionConfig, actionForm); - - populate(actionCtx, actionConfig, actionForm); - - handleCancel(actionCtx, actionConfig, actionForm); - - return (false); - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Call the reset() method on the specified form - * bean.

- * - * @param context The context for this request - * @param actionConfig The actionConfig for this request - * @param actionForm The form bean for this request - */ - protected abstract void reset(ActionContext context, - ActionConfig actionConfig, ActionForm actionForm); - - /** - *

Populate the given ActionForm with request parameter - * values, taking into account any prefix/suffix values configured on the - * given ActionConfig.

- * - * @param context The ActionContext we are processing - * @param actionConfig The ActionConfig we are processing - * @param actionForm The ActionForm we are processing - * @throws Exception On an unexpected error - */ - protected abstract void populate(ActionContext context, - ActionConfig actionConfig, ActionForm actionForm) - throws Exception; - - // original implementation casting context to WebContext is not safe - // when the input value is an ActionContext. - - /** - *

For a given request parameter name, trim off any prefix and/or - * suffix which are defined in actionConfig and return what - * remains. If either prefix or suffix is defined, then return null for - * name values which do not begin or end accordingly.

- * - * @param actionConfig The ActionConfig we are processing - * @param name The request parameter name to proceess - * @return The request parameter name trimmed of any suffix or prefix - */ - protected String trimParameterName(ActionConfig actionConfig, String name) { - String stripped = name; - String prefix = actionConfig.getPrefix(); - String suffix = actionConfig.getSuffix(); - - if (prefix != null) { - if (!stripped.startsWith(prefix)) { - return null; - } - - stripped = stripped.substring(prefix.length()); - } - - if (suffix != null) { - if (!stripped.endsWith(suffix)) { - return null; - } - - stripped = - stripped.substring(0, stripped.length() - suffix.length()); - } - - return stripped; - } - - /** - *

Take into account whether the request includes any defined value for - * the global "cancel" parameter.

An issue was raised (but I don't - * think a Bugzilla ticket created) about the security implications of - * using a well-known cancel property which skips form validation, as you - * may not write your actions to deal with the cancellation case.

- * - * @param context The ActionContext we are processing - * @param actionConfig The ActionConfig we are processing - * @param actionForm The ActionForm we are processing - * @throws Exception On an unexpected error - * @see Globals.CANCEL_PROPERTY - * @see Globals.CANCEL_PROPERTY_X - */ - protected void handleCancel(ActionContext context, - ActionConfig actionConfig, ActionForm actionForm) - throws Exception { - Map paramValues = context.getParameterMap(); - - // Set the cancellation attribute if appropriate - if ((paramValues.get(Globals.CANCEL_PROPERTY) != null) - || (paramValues.get(Globals.CANCEL_PROPERTY_X) != null)) { - context.setCancelled(Boolean.TRUE); - } else { - context.setCancelled(Boolean.FALSE); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractRequestNoCache.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractRequestNoCache.java deleted file mode 100644 index 662593679d0..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractRequestNoCache.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * $Id: AbstractRequestNoCache.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ModuleConfig; - -/** - *

Check to see if the controller is configured to prevent caching, and if - * so, request no cache flags to be set.

- * - * @version $Rev: 471754 $ $Date: 2005-06-04 10:58:46 -0400 (Sat, 04 Jun 2005) - * $ - */ -public abstract class AbstractRequestNoCache extends ActionCommandBase { - // ---------------------------------------------------------- Public Methods - - /** - *

Check to see if the controller is configured to prevent caching, and - * if so, request no cache flags to be set.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws Exception if thrown by the Action class - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Retrieve the ModuleConfig instance - ModuleConfig moduleConfig = actionCtx.getModuleConfig(); - - // If the module is configured for no caching, request no caching - if (moduleConfig.getControllerConfig().getNocache()) { - requestNoCache(actionCtx); - } - - return (false); - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Request no cache flags are set.

- * - * @param context The Context for this request - */ - protected abstract void requestNoCache(ActionContext context); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectAction.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectAction.java deleted file mode 100644 index abc7e4ade37..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectAction.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * $Id: AbstractSelectAction.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ModuleConfig; - -/** - *

Cache the ActionConfig instance for the action to be used - * for processing this request.

- * - * @version $Rev: 471754 $ $Date: 2005-11-05 21:44:59 -0500 (Sat, 05 Nov 2005) - * $ - */ -public abstract class AbstractSelectAction extends ActionCommandBase { - // ---------------------------------------------------------- Public Methods - - /** - *

Cache the ActionConfig instance for the action to be - * used for processing this request.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws InvalidPathException if no valid action can be identified for - * this request - * @throws Exception if thrown by the Action class - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Identify the matching path for this request - String path = getPath(actionCtx); - - // Cache the corresponding ActonConfig instance - ModuleConfig moduleConfig = actionCtx.getModuleConfig(); - ActionConfig actionConfig = moduleConfig.findActionConfig(path); - - if (actionConfig == null) { - // NOTE Shouldn't this be the responsibility of ModuleConfig? - // Locate the mapping for unknown paths (if any) - ActionConfig[] configs = moduleConfig.findActionConfigs(); - - for (int i = 0; i < configs.length; i++) { - if (configs[i].getUnknown()) { - actionConfig = configs[i]; - - break; - } - } - } - - if (actionConfig == null) { - throw new InvalidPathException("No action config found for the specified url.", - path); - } - - actionCtx.setActionConfig(actionConfig); - - return (false); - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Return the path to be used to select the ActionConfig - * for this request.

- * - * @param context The Context for this request - * @return Path to be used to select the ActionConfig - */ - protected abstract String getPath(ActionContext context); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectForward.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectForward.java deleted file mode 100644 index 8d297c251e8..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectForward.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * $Id: AbstractSelectForward.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; - -/** - *

Select and cache the ActionForward for this - * ActionConfig if specified.

- * - * @version $Rev: 471754 $ $Date: 2005-06-04 10:58:46 -0400 (Sat, 04 Jun 2005) - * $ - */ -public abstract class AbstractSelectForward extends ActionCommandBase { - // ------------------------------------------------------ Instance Variables - - /** - *

Provide Commons Logging instance for this class.

- */ - private static final Log LOG = - LogFactory.getLog(AbstractSelectForward.class); - - // ---------------------------------------------------------- Public Methods - - /** - *

Select and cache the ActionForward for this - * ActionConfig if specified.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws Exception if thrown by the Action class - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Skip processing if the current request is not valid - Boolean valid = actionCtx.getFormValid(); - - if ((valid == null) || !valid.booleanValue()) { - return (false); - } - - // Acquire configuration objects that we need - ActionConfig actionConfig = actionCtx.getActionConfig(); - ModuleConfig moduleConfig = actionConfig.getModuleConfig(); - - ForwardConfig forwardConfig = null; - String forward = actionConfig.getForward(); - - if (forward != null) { - forwardConfig = forward(actionCtx, moduleConfig, forward); - - if (LOG.isDebugEnabled()) { - LOG.debug("Forwarding to " + forwardConfig); - } - - actionCtx.setForwardConfig(forwardConfig); - } - - return (false); - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Create and return a ForwardConfig representing the - * specified module-relative destination.

- * - * @param context The context for this request - * @param moduleConfig The ModuleConfig for this request - * @param uri The module-relative URI to be the destination - * @return ForwwardConfig representing the destination - */ - protected abstract ForwardConfig forward(ActionContext context, - ModuleConfig moduleConfig, String uri); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectInput.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectInput.java deleted file mode 100644 index 4bd94bde81b..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectInput.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * $Id: AbstractSelectInput.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; - -/** - *

Select and cache a ForwardConfig that returns us to the - * input page for the current action, if any.

- * - * @version $Rev: 471754 $ $Date: 2005-06-04 10:58:46 -0400 (Sat, 04 Jun 2005) - * $ - */ -public abstract class AbstractSelectInput extends ActionCommandBase { - // ------------------------------------------------------ Instance Variables - - /** - *

Provide Commons Logging instance for this class.

- */ - private static final Log LOG = LogFactory.getLog(AbstractSelectInput.class); - - // ---------------------------------------------------------- Public Methods - - /** - *

Select and cache a ForwardConfig for the input page for - * the current request.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws Exception if thrown by the Action class - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Skip processing if the current request is valid - Boolean valid = actionCtx.getFormValid(); - - if ((valid != null) && valid.booleanValue()) { - return (false); - } - - // Acquire configuration objects that we need - ActionConfig actionConfig = actionCtx.getActionConfig(); - ModuleConfig moduleConfig = actionConfig.getModuleConfig(); - - // Cache an ForwardConfig back to our input page - ForwardConfig forwardConfig; - String input = actionConfig.getInput(); - - if (moduleConfig.getControllerConfig().getInputForward()) { - if (LOG.isTraceEnabled()) { - LOG.trace("Finding ForwardConfig for '" + input + "'"); - } - - forwardConfig = actionConfig.findForwardConfig(input); - - if (forwardConfig == null) { - forwardConfig = moduleConfig.findForwardConfig(input); - } - } else { - if (LOG.isTraceEnabled()) { - LOG.trace("Delegating to forward() for '" + input + "'"); - } - - forwardConfig = forward(actionCtx, moduleConfig, input); - } - - if (LOG.isDebugEnabled()) { - LOG.debug("Forwarding back to " + forwardConfig); - } - - actionCtx.setForwardConfig(forwardConfig); - - return (false); - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Create and return a ForwardConfig representing the - * specified module-relative destination.

- * - * @param context The context for this request - * @param moduleConfig The ModuleConfig for this request - * @param uri The module-relative URI to be the destination - * @return ForwardConfig representing destination - */ - protected abstract ForwardConfig forward(ActionContext context, - ModuleConfig moduleConfig, String uri); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectLocale.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectLocale.java deleted file mode 100644 index 8c6542d17ec..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectLocale.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * $Id: AbstractSelectLocale.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ModuleConfig; - -import java.util.Locale; - -/** - *

Select the Locale to be used for this request.

- * - * @version $Rev: 471754 $ $Date: 2005-11-12 13:01:44 -0500 (Sat, 12 Nov 2005) - * $ - */ -public abstract class AbstractSelectLocale extends ActionCommandBase { - // ------------------------------------------------------ Instance Variables - - /** - *

Provide Commons Logging instance for this class.

- */ - private static final Log LOG = - LogFactory.getLog(AbstractSelectLocale.class); - - // ---------------------------------------------------------- Public Methods - - /** - *

Select the Locale to be used for this request.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws Exception if thrown by the Action class - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Are we configured to select Locale automatically? - LOG.trace("retrieve config..."); - - ModuleConfig moduleConfig = actionCtx.getModuleConfig(); - - if (!moduleConfig.getControllerConfig().getLocale()) { - if (LOG.isDebugEnabled()) { - LOG.debug("module is not configured for a specific locale; " - + "nothing to do"); - } - - return (false); - } - - // Retrieve and cache appropriate Locale for this request - Locale locale = getLocale(actionCtx); - - if (LOG.isDebugEnabled()) { - LOG.debug("set context locale to " + locale); - } - - actionCtx.setLocale(locale); - - return (false); - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Return the Locale to be used for this request.

- * - * @param context The Context for this request - * @return The Locale to be used for this request - */ - protected abstract Locale getLocale(ActionContext context); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectModule.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectModule.java deleted file mode 100644 index 11dfd6f9bfd..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSelectModule.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * $Id: AbstractSelectModule.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.struts.Globals; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.util.MessageResources; - -/** - *

Cache the ModuleConfig and MessageResources - * instances for the sub-application module to be used for processing this - * request.

- * - * @version $Rev: 471754 $ $Date: 2005-11-12 13:01:44 -0500 (Sat, 12 Nov 2005) - * $ - */ -public abstract class AbstractSelectModule extends ActionCommandBase { - // ------------------------------------------------------ Instance Variables - // ---------------------------------------------------------- Public Methods - - /** - *

Cache the ModuleConfig and MessageResources - * instances for the sub-application module to be used for processing this - * request.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws IllegalArgumentException if no valid ModuleConfig or - * MessageResources can be identified for - * this request - * @throws Exception if thrown by the Action class - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - String prefix = getPrefix(actionCtx); - - // Cache the corresponding ModuleConfig and MessageResources instances - ModuleConfig moduleConfig = - (ModuleConfig) actionCtx.getApplicationScope().get(Globals.MODULE_KEY - + prefix); - - if (moduleConfig == null) { - throw new IllegalArgumentException("No module config for prefix '" - + prefix + "'"); - } - - actionCtx.setModuleConfig(moduleConfig); - - String key = Globals.MESSAGES_KEY + prefix; - MessageResources messageResources = - (MessageResources) actionCtx.getApplicationScope().get(key); - - if (messageResources == null) { - throw new IllegalArgumentException( - "No message resources found in application scope under " + key); - } - - actionCtx.setMessageResources(messageResources); - - return (false); - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Calculate and return the module prefix for the module to be selected - * for this request.

- * - * @param context The Context for this request - * @return Module prefix to be used with this request - * @throws IllegalArgumentException if no valid ModuleConfig or - * MessageResources can be identified for - * this request - */ - protected abstract String getPrefix(ActionContext context); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSetContentType.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSetContentType.java deleted file mode 100644 index 480278ecaad..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSetContentType.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * $Id: AbstractSetContentType.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ModuleConfig; - -/** - *

Check to see if the content type is set, and if so, set it for this - * response.

- * - * @version $Rev: 471754 $ $Date: 2005-11-12 13:01:44 -0500 (Sat, 12 Nov 2005) - * $ - */ -public abstract class AbstractSetContentType extends ActionCommandBase { - // ---------------------------------------------------------- Public Methods - - /** - *

Check to see if the content type is set, and if so, set it for this - * response.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws Exception if thrown by the Action class - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Retrieve the ModuleConfig instance - ModuleConfig moduleConfig = actionCtx.getModuleConfig(); - - // If the content type is configured, set it for the response - String contentType = - moduleConfig.getControllerConfig().getContentType(); - - if (contentType != null) { - setContentType(actionCtx, contentType); - } - - return (false); - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Request no cache flags are set.

- * - * @param context The Context for this request - * @param contentType The content type for the response - */ - protected abstract void setContentType(ActionContext context, - String contentType); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSetOriginalURI.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSetOriginalURI.java deleted file mode 100644 index c414998f7b1..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractSetOriginalURI.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * $Id: AbstractSetOriginalURI.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.struts.Globals; -import org.apache.struts.chain.contexts.ActionContext; - -/** - *

Check to original uri is set, and if not, set it for this request.

- * - * @version $Rev: 471754 $ $Date: 2005-06-04 07:58:46 -0700 (Sat, 04 Jun 2005) - * $ - */ -public abstract class AbstractSetOriginalURI extends ActionCommandBase { - // ---------------------------------------------------------- Public Methods - - /** - *

Check to original uri is set, and if not, set it for this - * request.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws Exception if thrown by the Action class - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Set the original uri if not already set - if (!actionCtx.getRequestScope().containsKey(Globals.ORIGINAL_URI_KEY)) { - setOriginalURI(actionCtx); - } - - return (false); - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Set the original uri.

- * - * @param context The Context for this request - */ - protected abstract void setOriginalURI(ActionContext context); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractValidateActionForm.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractValidateActionForm.java deleted file mode 100644 index f39ba368cfe..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/AbstractValidateActionForm.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * $Id: AbstractValidateActionForm.java 481833 2006-12-03 17:32:52Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.action.ActionErrors; -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.InvalidCancelException; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ActionConfig; - -/** - *

Validate the properties of the form bean for this request. If there are - * any validation errors, execute the specified command; otherwise, proceed - * normally.

- * - * @version $Rev: 481833 $ $Date: 2005-06-04 10:58:46 -0400 (Sat, 04 Jun 2005) - * $ - */ -public abstract class AbstractValidateActionForm extends ActionCommandBase { - // ------------------------------------------------------ Instance Variables - - /** - *

Provide Commons Logging instance for this class.

- */ - private static final Log LOG = - LogFactory.getLog(AbstractSelectForward.class); - - // ------------------------------------------------------ Protected Methods - - /** - *

Helper method to verify the Cancel state.

- * - *

If the state is invalid, Cancel is unset and an - * InvalidCancelException is thrown.

- * - * @param actionCtx Our ActionContext - * @param actionConfig Our ActionConfig - * @return true if cancel is set, false otherwise. - * @throws InvalidCancelException - */ - private boolean isCancelled(ActionContext actionCtx, - ActionConfig actionConfig) - throws InvalidCancelException { - Boolean cancel = actionCtx.getCancelled(); - boolean cancelled = ((cancel != null) && cancel.booleanValue()); - boolean cancellable = actionConfig.getCancellable(); - - boolean invalidState = (cancelled && !cancellable); - - if (invalidState) { - actionCtx.setCancelled(Boolean.FALSE); - actionCtx.setFormValid(Boolean.FALSE); - throw new InvalidCancelException(); - } - - return cancelled; - } - - // ---------------------------------------------------------- Public Methods - - /** - *

Validate the properties of the form bean for this request. If there - * are any validation errors, execute the child commands in our chain; - * otherwise, proceed normally.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues, if there are - * no validation errors; otherwise true - * @throws Exception if thrown by the Action class - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Set form valid until found otherwise - actionCtx.setFormValid(Boolean.TRUE); - - // Is there a form bean for this request? - ActionForm actionForm = actionCtx.getActionForm(); - - if (actionForm == null) { - return false; - } - - // Is validation disabled on this request? - ActionConfig actionConfig = actionCtx.getActionConfig(); - - if (!actionConfig.getValidate()) { - return false; - } - - // Was this request cancelled? - if (isCancelled(actionCtx, actionConfig)) { - if (LOG.isDebugEnabled()) { - LOG.debug(" Cancelled transaction, skipping validation"); - } - - return false; - } - - // Call the validate() method of this form bean - ActionErrors errors = validate(actionCtx, actionConfig, actionForm); - - // If there were no errors, proceed normally - if ((errors == null) || (errors.isEmpty())) { - return false; - } - - // Flag the validation failure and proceed - /* NOTE: Is there any concern that there might have already - * been errors, or that other errors might be coming? - */ - actionCtx.saveErrors(errors); - actionCtx.setFormValid(Boolean.FALSE); - - return false; - } - - // ------------------------------------------------------- Protected Methods - - /** - *

Call the validate() method of the specified form bean, - * and return the resulting ActionErrors object.

- * - * @param context The context for this request - * @param actionConfig The ActionConfig for this request - * @param actionForm The form bean for this request - * @return ActionErrors object, if any - */ - protected abstract ActionErrors validate(ActionContext context, - ActionConfig actionConfig, ActionForm actionForm); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ActionCommand.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ActionCommand.java deleted file mode 100644 index 26bd4637f26..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ActionCommand.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id: ActionCommand.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.commons.chain.Command; -import org.apache.struts.chain.contexts.ActionContext; - -/** - *

Marks a commons-chain Command which expects to operate upon - * a Struts ActionContext.

- */ -public interface ActionCommand extends Command { - /** - * @param actionContext The Context for the current request - * @return TRUE if processing should halt - * @throws Exception On any error - */ - boolean execute(ActionContext actionContext) - throws Exception; -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ActionCommandBase.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ActionCommandBase.java deleted file mode 100644 index c9b3eed6d79..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ActionCommandBase.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * $Id: ActionCommandBase.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.chain.Context; -import org.apache.struts.chain.contexts.ActionContext; - -/** - *

Simple abstract class which avoids frequent casting to - * ActionContext in commands explicitly intended for use with - * that class.

- */ -public abstract class ActionCommandBase implements ActionCommand { - - /** - *

Provide Commons Logging instance for this class.

- */ - private static final Log LOG = - LogFactory.getLog(ActionCommandBase.class); - - // See interface for Javadoc - public abstract boolean execute(ActionContext actionContext) - throws Exception; - - // See interface for Javadoc - public boolean execute(Context context) - throws Exception { - if (LOG.isDebugEnabled()) { - LOG.debug("Executing " + getClass().getName()); - } - return execute((ActionContext) context); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/CreateActionForm.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/CreateActionForm.java deleted file mode 100644 index f556aa61ec1..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/CreateActionForm.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * $Id: CreateActionForm.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.action.ActionForm; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.FormBeanConfig; - -import java.util.Map; - -/** - *

Create (if necessary) and cache a form bean for this request.

- * - * @version $Id: CreateActionForm.java 471754 2006-11-06 14:55:09Z husted $ - */ -public class CreateActionForm extends ActionCommandBase { - // ------------------------------------------------------ Instance Variables - - /** - *

Provide Commons Logging instance for this class.

- */ - private static final Log LOG = LogFactory.getLog(CreateActionForm.class); - - // ---------------------------------------------------------- Public Methods - - /** - *

Create (if necessary) and cache a form bean for this request.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws Exception on any error - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Is there a form bean associated with this ActionConfig? - ActionConfig actionConfig = actionCtx.getActionConfig(); - String name = actionConfig.getName(); - - if (name == null) { - actionCtx.setActionForm(null); - - return (false); - } - - if (LOG.isTraceEnabled()) { - LOG.trace("Look up form-bean " + name); - } - - // Look up the corresponding FormBeanConfig (if any) - FormBeanConfig formBeanConfig = - actionConfig.getModuleConfig().findFormBeanConfig(name); - - if (formBeanConfig == null) { - LOG.warn("No FormBeanConfig found in module " - + actionConfig.getModuleConfig().getPrefix() + " under name " - + name); - actionCtx.setActionForm(null); - - return (false); - } - - Map scope = actionCtx.getScope(actionConfig.getScope()); - - ActionForm instance; - - instance = (ActionForm) scope.get(actionConfig.getAttribute()); - - // Can we recycle the existing instance (if any)? - if (!formBeanConfig.canReuse(instance)) { - instance = formBeanConfig.createActionForm(actionCtx); - } - - // TODO: Remove ServletActionContext when ActionForm no longer - // directly depends on ActionServlet - if (actionCtx instanceof ServletActionContext) { - // The servlet property of ActionForm is transient, so - // ActionForms which are restored from a serialized state - // need to have their servlet restored. - ServletActionContext sac = (ServletActionContext) actionCtx; - - instance.setServlet(sac.getActionServlet()); - } - - actionCtx.setActionForm(instance); - - scope.put(actionConfig.getAttribute(), instance); - - return (false); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ExceptionCatcher.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ExceptionCatcher.java deleted file mode 100644 index 270c7268289..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ExceptionCatcher.java +++ /dev/null @@ -1,212 +0,0 @@ -/* - * $Id: ExceptionCatcher.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.commons.chain.Catalog; -import org.apache.commons.chain.CatalogFactory; -import org.apache.commons.chain.Command; -import org.apache.commons.chain.Context; -import org.apache.commons.chain.Filter; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.chain.contexts.ActionContext; - -/** - *

Intercept any exception thrown by a subsequent Command in - * this processing chain, and fire the configured exception handler chain - * after storing the exception that has occurred into the - * Context.

- * - * @version $Rev: 471754 $ $Date: 2005-11-12 13:01:44 -0500 (Sat, 12 Nov 2005) - * $ - */ -public class ExceptionCatcher extends ActionCommandBase implements Filter { - /** - *

Provide Commons Logging instance for this class.

- */ - private static final Log LOG = LogFactory.getLog(ExceptionCatcher.class); - - // ------------------------------------------------------ Instance Variables - - /** - *

Field for CatalogName property.

- */ - private String catalogName = null; - - /** - *

Field for ExceptionCommand property.

- */ - private String exceptionCommand = null; - - // -------------------------------------------------------------- Properties - - /** - *

Return the name of the Catalog in which to perform - * lookups, or null for the default Catalog. - *

- * - * @return Name of catalog to use, or null - */ - public String getCatalogName() { - return (this.catalogName); - } - - /** - *

Set the name of the Catalog in which to perform - * lookups, or null for the default Catalog.

- * - * @param catalogName The new catalog name or null - */ - public void setCatalogName(String catalogName) { - this.catalogName = catalogName; - } - - /** - *

Return the name of the command to be executed if an exception - * occurs.

- * - * @return The name of the command to be executed on an exception - */ - public String getExceptionCommand() { - return (this.exceptionCommand); - } - - /** - *

Set the name of the command to be executed if an exception - * occurs.

- * - * @param exceptionCommand The name of the chain to be executed - */ - public void setExceptionCommand(String exceptionCommand) { - this.exceptionCommand = exceptionCommand; - } - - // ---------------------------------------------------------- Public Methods - - /** - *

Clear any existing stored exception and pass the - * context on to the remainder of the current chain.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws Exception On any error - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - actionCtx.setException(null); - - return (false); - } - - /** - *

If an exception was thrown by a subsequent Command, - * pass it on to the specified exception handling chain. Otherwise, do - * nothing.

- * - * @param context The {@link Context} to be processed by this {@link - * Filter} - * @param exception The Exception (if any) that was thrown by - * the last {@link Command} that was executed; otherwise - * null - * @return TRUE if post processing an exception occurred and the exception - * processing chain invoked - * @throws IllegalStateException If exception throws exception - */ - public boolean postprocess(Context context, Exception exception) { - // Do nothing if there was no exception thrown - if (exception == null) { - return (false); - } - - // Stash the exception in the specified context attribute - if (LOG.isDebugEnabled()) { - LOG.debug("Attempting to handle a thrown exception"); - } - - ActionContext actionCtx = (ActionContext) context; - - actionCtx.setException(exception); - - // Execute the specified command - try { - Command command = lookupExceptionCommand(); - - if (command == null) { - LOG.error("Cannot find exceptionCommand '" + exceptionCommand - + "'"); - throw new IllegalStateException( - "Cannot find exceptionCommand '" + exceptionCommand + "'"); - } - - if (LOG.isTraceEnabled()) { - LOG.trace("Calling exceptionCommand '" + exceptionCommand + "'"); - } - - command.execute(context); - } catch (Exception e) { - LOG.warn("Exception from exceptionCommand '" + exceptionCommand - + "'", e); - throw new IllegalStateException("Exception chain threw exception"); - } - - return (true); - } - - /** - *

Return the command to be executed if an exception occurs.

- * - * @return The command to be executed if an exception occurs - * @throws IllegalArgumentException If catalog cannot be found - * @throws IllegalStateException If command property is not specified - */ - protected Command lookupExceptionCommand() { - String catalogName = getCatalogName(); - Catalog catalog; - - if (catalogName == null) { - catalog = CatalogFactory.getInstance().getCatalog(); - - if (catalog == null) { - LOG.error("Cannot find default catalog"); - throw new IllegalArgumentException( - "Cannot find default catalog"); - } - } else { - catalog = CatalogFactory.getInstance().getCatalog(catalogName); - - if (catalog == null) { - LOG.error("Cannot find catalog '" + catalogName + "'"); - throw new IllegalArgumentException("Cannot find catalog '" - + catalogName + "'"); - } - } - - String exceptionCommand = getExceptionCommand(); - - if (exceptionCommand == null) { - LOG.error("No exceptionCommand property specified"); - throw new IllegalStateException( - "No exceptionCommand property specfied"); - } - - return catalog.getCommand(exceptionCommand); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ExecuteCommand.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ExecuteCommand.java deleted file mode 100644 index c4e53ab9b03..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ExecuteCommand.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * $Id: ExecuteCommand.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.commons.chain.Catalog; -import org.apache.commons.chain.CatalogFactory; -import org.apache.commons.chain.Command; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ActionConfig; - -/** - *

Invoke the appropriate Command for this request. If the - * context's ActionConfig has no command property - * defined, no action will be taken. If the specified command cannot be - * found, a warning will be logged, but processing will continue. Depending - * on how the chain is configured, this can be used in place of an - * Action or as a method of performing pre-processing.

- * - *

If used instead of an action, the command which is looked up should put - * an ActionForward into the context, unless it has already dealt with the - * response.

- * - * @version $Id: ExecuteCommand.java 471754 2006-11-06 14:55:09Z husted $ - */ -public class ExecuteCommand extends ActionCommandBase { - // ------------------------------------------------------ Instance Variables - - /** - * Provide Commons Logging instance for this class. - */ - private static final Log LOG = LogFactory.getLog(ExecuteCommand.class); - - // ---------------------------------------------------------- Public Methods - - /** - *

If the context is "valid", lookup a command and execute - * it.

- * - * @param actionCtx The Context for the current request - * @return the result of the lookup command's execute method, - * if executed, or false if it was not executed. - * @throws Exception on any error - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - if (shouldProcess(actionCtx)) { - Command command = getCommand(actionCtx); - - if (command != null) { - return (command.execute(actionCtx)); - } - } - - return (false); - } - - /** - *

Evaluate the current context to see if a command should even be - * executed.

- * - * @param context A valid ActionContext - * @return TRUE if the pending Command should be executed - */ - protected boolean shouldProcess(ActionContext context) { - // Skip processing if the current request is not valid - Boolean valid = context.getFormValid(); - - return ((valid != null) && valid.booleanValue()); - } - - /** - *

Find the ActionConfig in the current context and, if it - * is properly configured, lookup the appropriate commons-chain - * command.

- * - * @param context A valid ActionContext - * @return a Command to execute, or null if none is specified - * or if the specified command cannot be found. - */ - protected Command getCommand(ActionContext context) { - ActionConfig actionConfig = context.getActionConfig(); - - String commandName = actionConfig.getCommand(); - - if (commandName == null) { - return null; - } - - String catalogName = actionConfig.getCatalog(); - - return getCommand(commandName, catalogName); - } - - /** - *

Retrieve the specified Command from the specified Catalog.

- * - * @param commandName The Command to retrieve. - * @param catalogName The Catalog to search. - * @return Instantiated Command, or null - */ - protected Command getCommand(String commandName, String catalogName) { - if (commandName == null) { - return null; - } - - Catalog catalog; - - if (catalogName != null) { - catalog = CatalogFactory.getInstance().getCatalog(catalogName); - - if (catalog == null) { - LOG.warn("When looking up " + commandName + "," - + " no catalog found under " + catalogName); - - return null; - } - } else { - catalogName = "the default catalog"; - catalog = CatalogFactory.getInstance().getCatalog(); - - if (catalog == null) { - LOG.warn("When looking up " + commandName + "," - + " no default catalog found."); - - return null; - } - } - - if (LOG.isDebugEnabled()) { - LOG.debug("looking up command " + commandName + " in " - + catalogName); - } - - return catalog.getCommand(commandName); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ExecuteForwardCommand.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ExecuteForwardCommand.java deleted file mode 100644 index d9179b18e0c..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/ExecuteForwardCommand.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * $Id: ExecuteForwardCommand.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.commons.chain.Command; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ForwardConfig; - -/** - *

Look up and execute a commons-chain Command based on - * properties of the ActionContext's forwardConfig property. - *

- */ -public class ExecuteForwardCommand extends ExecuteCommand { - /** - *

Return the command specified by the command and - * catalog properties of the forwardConfig - * property of the given ActionContext. If - * forwardConfig is null, return null.

- * - * @param context Our ActionContext - * @return Command to execute or null - */ - protected Command getCommand(ActionContext context) { - ForwardConfig forwardConfig = context.getForwardConfig(); - - if (forwardConfig == null) { - return null; - } - - return getCommand(forwardConfig.getCommand(), forwardConfig.getCatalog()); - } - - /** - *

Determine whether the forwardConfig should be processed.

- * - * @param context The ActionContext we are processing - * @return

true if the given ActionContext - * has a non-null forwardConfig property.

- */ - protected boolean shouldProcess(ActionContext context) { - return (context.getForwardConfig() != null); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/InvalidPathException.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/InvalidPathException.java deleted file mode 100644 index 00c0c4575bd..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/InvalidPathException.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * $Id: InvalidPathException.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - - -/** - *

Exception thrown when no mapping can be found for the specified - * path.

- * - * @version $Rev: 471754 $ $Date: 2005-11-05 21:44:59 -0500 (Sat, 05 Nov 2005) - * $ - */ -public class InvalidPathException extends Exception { - /** - * Field for Path property. - */ - private String path; - - /** - *

Default, no-argument constructor.

- */ - public InvalidPathException() { - super(); - } - - /** - *

Constructor to inject message and path upon instantiation.

- * - * @param message The error or warning message. - * @param path The invalid path. - */ - public InvalidPathException(String message, String path) { - super(message); - this.path = path; - } - - /** - *

Return the invalid path causing the exception.

- * - * @return The invalid path causing the exception. - */ - public String getPath() { - return path; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/RemoveCachedMessages.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/RemoveCachedMessages.java deleted file mode 100644 index e1697b081ef..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/RemoveCachedMessages.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * $Id: RemoveCachedMessages.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import java.util.Map; -import org.apache.struts.Globals; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.action.ActionMessages; - -/** - *

Remove cached messages stored in the session.

- * - * @version $Id: RemoveCachedMessages.java 471754 2006-11-06 14:55:09Z husted $ - * @since Struts 1.3.5 - */ -public class RemoveCachedMessages extends ActionCommandBase { - - /** - *

Removes any ActionMessages object stored in the session - * under Globals.MESSAGE_KEY and Globals.ERROR_KEY - * if the messages' isAccessed method returns true. This - * allows messages to be stored in the session, displayed one time, and be - * released here.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws Exception on any error - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - - // Get session scope - Map session = actionCtx.getSessionScope(); - - // Remove messages as needed - removeAccessedMessages(session, Globals.MESSAGE_KEY); - - // Remove error messages as needed - removeAccessedMessages(session, Globals.ERROR_KEY); - - return false; - } - - /** - *

Removes any ActionMessages object from the specified - * scope stored under the specified key if the messages' - * isAccessed method returns true. - * - * @param scope The scope to check for messages in. - * @param key The key the messages are stored under. - */ - private void removeAccessedMessages(Map scope, String key) { - ActionMessages messages = (ActionMessages)scope.get(key); - if (messages != null && messages.isAccessed()) { - scope.remove(key); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/SelectInclude.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/SelectInclude.java deleted file mode 100644 index 43c0980aedd..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/SelectInclude.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * $Id: SelectInclude.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ActionConfig; - -/** - *

Select and cache the include for this ActionConfig if - * specified.

- * - * @version $Rev: 471754 $ $Date: 2005-06-04 10:58:46 -0400 (Sat, 04 Jun 2005) - * $ - */ -public class SelectInclude extends ActionCommandBase { - // ------------------------------------------------------ Instance Variables - - /** - *

Provide Commons Logging instance for this class.

- */ - private static final Log LOG = LogFactory.getLog(SelectInclude.class); - - // ---------------------------------------------------------- Public Methods - - /** - *

Select and cache the include uri for this ActionConfig - * if specified.

- * - * @param actionCtx The Context for the current request - * @return false so that processing continues - * @throws Exception on any error - */ - public boolean execute(ActionContext actionCtx) - throws Exception { - // Acquire configuration objects that we need - ActionConfig actionConfig = actionCtx.getActionConfig(); - - // Cache an include uri if found - String include = actionConfig.getInclude(); - - if (include != null) { - if (LOG.isDebugEnabled()) { - LOG.debug("Including " + include); - } - - actionCtx.setInclude(include); - } - - return (false); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/UnauthorizedActionException.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/UnauthorizedActionException.java deleted file mode 100644 index f64b37b9abf..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/UnauthorizedActionException.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * $Id: UnauthorizedActionException.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands; - - -/** - *

Exception thrown when the chosen action mapping is not authorized for - * the current request.

- * - * @version $Rev: 471754 $ $Date: 2005-06-04 10:58:46 -0400 (Sat, 04 Jun 2005) - * $ - */ -public class UnauthorizedActionException extends Exception { - /** - *

Default no-argument constructor.

- */ - public UnauthorizedActionException() { - super(); - } - - /** - *

Constructor to set message on instantiation.

- * - * @param message The error or warning message. - */ - public UnauthorizedActionException(String message) { - super(message); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/generic/CopyFormToContext.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/generic/CopyFormToContext.java deleted file mode 100644 index 2fc7eef90cf..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/generic/CopyFormToContext.java +++ /dev/null @@ -1,278 +0,0 @@ -/* - * $Id: CopyFormToContext.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.generic; - -import org.apache.struts.action.ActionForm; -import org.apache.struts.chain.commands.ActionCommandBase; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ActionContextBase; -import org.apache.struts.config.ActionConfig; - -/** - *

Subclass this command and configure it as part of a per-forward chain to - * perform any necessary pre-population or other preparation for a form before - * control is dispatched to the view layer.

- * - * @version $Id: CopyFormToContext.java 471754 2006-11-06 14:55:09Z husted $ - */ -public class CopyFormToContext extends ActionCommandBase { - // ------------------------------------------------------ Instance Variables - - /** - *

The name of a form bean as configured in a struts-config.xml file - * for this module.

- * - *

Either actionPath or both this and scope are required configuration - * properties.

- */ - private String formName = null; - - /** - *

The name of a scope, such as "request" or "session" in which the - * form to be prepared will be placed for reference by the view and other - * parts of Struts.

- * - *

Either actionPath or both this and - * formName are required configuration properties.

- */ - private String scope = null; - - /** - *

The path of an <action> mapping as configured in - * a struts-config.xml file for this module. This action - * will be looked up, and its name and scope - * values will be used as if those values were configured directly in this - * instance's formName and scope - * properties.

- * - *

Either this or both scope and - * formName are required configuration properties.

- */ - private String actionPath = null; - - /** - * The context key under which the form which was looked up will be - * stored. Defaults to "actionForm" but may be overridden in cases where - * the "request" ActionForm must be preserved. - */ - private String toKey = ActionContextBase.ACTION_FORM_KEY; - - // ------------------------------------------------------ Properties - - /** - *

Return ActionPath property.

- * - * @return ActionPath property - */ - public String getActionPath() { - return this.actionPath; - } - - /** - *

Set ActionPath property.

- * - * @param actionPath New valuefor ActionPath - */ - public void setActionPath(String actionPath) { - this.actionPath = actionPath; - } - - /** - *

Return FormName property.

- * - * @return FormName property - */ - public String getFormName() { - return this.formName; - } - - /** - *

Set FormName property.

- * - * @param formName New valuefor FormName - */ - public void setFormName(String formName) { - this.formName = formName; - } - - /** - *

Return Scope property.

- * - * @return Scope property - */ - public String getScope() { - return this.scope; - } - - /** - *

Set Scope property.

- * - * @param scope New valuefor Scope - */ - public void setScope(String scope) { - this.scope = scope; - } - - /** - *

Return ToKey property.

- * - * @return ToKey property - */ - public String getToKey() { - return this.toKey; - } - - /** - *

Set ToKey property.

- * - * @param toKey New valuefor FormName - */ - public void setToKey(String toKey) { - this.toKey = toKey; - } - - // ------------------------------------------------------ - - /** - *

Look up an ActionForm instance based on the configured properties of - * this command and copy it into the Context. After this - * command successfully executes, an ActionForm instance will exist in the - * specified scope and will be available, for example for backing fields - * in an HTML form. It will also be in the ActionContext - * available for another command to do prepopulation of values or other - * preparation.

- * - * @param actionContext Our ActionContext - * @return TRUE if processing should halt - * @throws Exception on any error - */ - public boolean execute(ActionContext actionContext) - throws Exception { - ActionForm form = findOrCreateForm(actionContext); - - if (isEmpty(getToKey())) { - throw new IllegalStateException("Property 'toKey' must be defined."); - } - - actionContext.put(getToKey(), form); - - return false; - } - - /** - *

Based on the properties of this command and the given - * ActionContext, find or create an ActionForm instance for - * preparation.

- * - * @param context ActionContextBase class that we are processing - * @return ActionForm instance - * @throws IllegalArgumentException On ActionConfig not found - * @throws IllegalStateException On undefined scope and formbean - * @throws IllegalAccessException On failed instantiation - * @throws InstantiationException If ActionContext is not subsclass of - * ActionContextBase - */ - protected ActionForm findOrCreateForm(ActionContext context) - throws IllegalAccessException, InstantiationException { - String effectiveFormName; - String effectiveScope; - - if (!(isEmpty(this.getActionPath()))) { - ActionConfig actionConfig = - context.getModuleConfig().findActionConfig(this.getActionPath()); - - if (actionConfig == null) { - throw new IllegalArgumentException( - "No ActionConfig found for path " + this.getActionPath()); - } - - effectiveFormName = actionConfig.getName(); - effectiveScope = actionConfig.getScope(); - } else { - effectiveFormName = this.getFormName(); - effectiveScope = this.getScope(); - } - - if (isEmpty(effectiveScope) || isEmpty(effectiveFormName)) { - throw new IllegalStateException("Both scope [" + effectiveScope - + "] and formName [" + effectiveFormName + "] must be defined."); - } - - return findOrCreateForm(context, effectiveFormName, effectiveScope); - } - - /** - *

Actually find or create an instance of ActionForm configured under - * the form-bean-name effectiveFormName, looking in in the - * ActionContext's scope as identified by - * effectiveScope. If a form is created, it will also be - * stored in that scope.

- * - *

NOTE: This specific method depends on the instance of - * ActionContext which is passed being a subclass of - * ActionContextBase, which implements the utility method - * findOrCreateActionForm.

- * - * @param ctx The ActionContext we are processing - * @param effectiveFormName the target form name - * @param effectiveScope The target scope - * @return ActionForm instnace, storing in scope if created - * @throws InstantiationException If ActionContext is not subsclass of - * ActionContextBase - * @throws InstantiationException If object cannot be created - * @throws IllegalArgumentException On form not found in/ scope - * @throws IllegalAccessException On failed instantiation - * @throws IllegalStateException If ActionContext is not a subclass of - * ActionBase - */ - protected ActionForm findOrCreateForm(ActionContext ctx, - String effectiveFormName, String effectiveScope) - throws IllegalAccessException, InstantiationException { - ActionContextBase context; - - try { - context = (ActionContextBase) ctx; - } catch (ClassCastException e) { - throw new IllegalStateException("ActionContext [" + ctx + "]" - + " must be subclass of ActionContextBase"); - } - - ActionForm form = - context.findOrCreateActionForm(effectiveFormName, effectiveScope); - - if (form == null) { - throw new IllegalArgumentException("No form found under scope [" - + effectiveScope + "] and formName [" + effectiveFormName + "]"); - } - - return form; - } - - /** - *

Convenience method to test for an empty string.

- * - * @param test String to test - * @return TRUE if test is null or zero-length - */ - private boolean isEmpty(String test) { - return (test == null) || (test.trim().length() == 0); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/generic/WrappingLookupCommand.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/generic/WrappingLookupCommand.java deleted file mode 100644 index 6345aff93de..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/generic/WrappingLookupCommand.java +++ /dev/null @@ -1,323 +0,0 @@ -/* - * $Id: WrappingLookupCommand.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.generic; - -import org.apache.commons.beanutils.ConstructorUtils; -import org.apache.commons.chain.Catalog; -import org.apache.commons.chain.CatalogFactory; -import org.apache.commons.chain.Command; -import org.apache.commons.chain.Context; -import org.apache.commons.chain.Filter; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.chain.commands.util.ClassUtils; - -import java.lang.reflect.InvocationTargetException; - -/** - *

Variant on chain LookupCommand which can optionally wrap the context it - * passes to the looked up command in an alternative class.

- */ -public class WrappingLookupCommand implements Filter { - /** - * Provide Commons Logging instance for this class. - */ - private static final Log LOG = - LogFactory.getLog(WrappingLookupCommand.class); - - // ------------------------------------------------------ Instance Variables - - /** - *

Field for property.

- */ - private String catalogName = null; - - /** - *

Field for property.

- */ - private String name = null; - - /** - *

Field for property.

- */ - private String nameKey = null; - - /** - *

Field for property.

- */ - private String wrapperClassName = null; - - /** - *

Field for property.

- */ - private boolean optional = false; - - /** - *

Zero-argument constructor.

- */ - public WrappingLookupCommand() { - catalogName = null; - name = null; - nameKey = null; - optional = false; - } - - /** - *

Return CatalogName property.

- * - * @return Value of CatalogName property. - */ - public String getCatalogName() { - return catalogName; - } - - /** - *

Set CatalogName property.

- * - * @param catalogName New value for CatalogName - */ - public void setCatalogName(String catalogName) { - this.catalogName = catalogName; - } - - /** - *

Retrieve Name property.

- * - * @return Value of Name property - */ - public String getName() { - return name; - } - - /** - *

Set Name property.

- * - * @param name New value for Name - */ - public void setName(String name) { - this.name = name; - } - - /** - *

Return NameKey property.

- * - * @return Value of NameKey property. - */ - public String getNameKey() { - return nameKey; - } - - /** - *

Set NameKey property.

- * - * @param nameKey New value for NameKey - */ - public void setNameKey(String nameKey) { - this.nameKey = nameKey; - } - - /** - *

Test Optional property.

- * - * @return TRUE if Optional is TRUE. - */ - public boolean isOptional() { - return optional; - } - - /** - *

Set Optional property.

- * - * @param optional New value for Optional - */ - public void setOptional(boolean optional) { - this.optional = optional; - } - - /** - *

Return the WrapperClass property.

- * - * @return The WrapperClass property - */ - public String getWrapperClassName() { - return wrapperClassName; - } - - /** - *

Set WrappClassName property.

- * - * @param wrapperClassName The name of a WrapperClass - */ - public void setWrapperClassName(String wrapperClassName) { - this.wrapperClassName = wrapperClassName; - } - - /** - *

Invoke the Command for a Context, returning TRUE if processing - * should halt.

- * - * @param context Our ActionContext - * @return TRUE if processing should halt - * @throws Exception On any error - */ - public boolean execute(Context context) - throws Exception { - if (LOG.isTraceEnabled()) { - LOG.trace("execute [" + this + "]"); - } - - Command command = getCommand(context); - - if (command != null) { - return command.execute(getContext(context)); - } else { - return false; - } - } - - /** - *

Process the Exception for any Command that is a filter.

- * - * @param context Our ActionContext - * @param exception The Exception thrown by another Comamnd in a Chain - * @return TRUE if there is a Filter to process - */ - public boolean postprocess(Context context, Exception exception) { - Command command = getCommand(context); - - if ((command != null) && (command instanceof Filter)) { - try { - return ((Filter) command).postprocess(getContext(context), - exception); - } catch (NoSuchMethodException ex) { - LOG.error("Error wrapping context in postprocess", ex); - } catch (IllegalAccessException ex) { - LOG.error("Error wrapping context in postprocess", ex); - } catch (InvocationTargetException ex) { - LOG.error("Error wrapping context in postprocess", ex); - } catch (InstantiationException ex) { - LOG.error("Error wrapping context in postprocess", ex); - } catch (ClassNotFoundException ex) { - LOG.error("Error wrapping context in postprocess", ex); - } - } - - return false; - } - - /** - *

Return the Command to process for this Context.

- * - * @param context The Context we are processing - * @return The Command to process for this Context - */ - protected Command getCommand(Context context) { - CatalogFactory catalogFactory = CatalogFactory.getInstance(); - String catalogName = getCatalogName(); - Catalog catalog; - - if (catalogName == null) { - catalog = catalogFactory.getCatalog(); - catalogName = "{default}"; // for debugging purposes - } else { - catalog = catalogFactory.getCatalog(catalogName); - } - - if (catalog == null) { - throw new IllegalArgumentException("Cannot find catalog '" - + catalogName + "'"); - } - - Command command; - String name = getName(); - - if (name == null) { - name = (String) context.get(getNameKey()); - } - - if (name != null) { - if (LOG.isDebugEnabled()) { - LOG.debug("Lookup command " + name + " in catalog " - + catalogName); - } - - command = catalog.getCommand(name); - - if (LOG.isDebugEnabled()) { - LOG.debug("Found command " + command + ";" + " optional: " - + isOptional()); - } - - if ((command == null) && !isOptional()) { - throw new IllegalArgumentException("Cannot find command " + "'" - + name + "' in catalog '" + catalogName + "'"); - } else { - return command; - } - } else { - throw new IllegalArgumentException("No command name"); - } - } - - /** - *

If the wrapperClassName property is not null, return a Context of - * the type specified by wrapperClassName, instantiated using a single-arg - * constructor which takes the context passed as an argument to this - * method.

- * - *

This method throws an exception if the wrapperClass cannot be found, - * or if there are any errors instantiating the wrapping context.

- * - * @param context Context we are processing - * @return Context wrapper - * @throws ClassNotFoundException On failed instantiation - * @throws InstantiationException On failed instantiation - * @throws InvocationTargetException On failed instantiation - * @throws IllegalAccessException On failed instantiation - * @throws NoSuchMethodException On failed instantiation - */ - protected Context getContext(Context context) - throws ClassNotFoundException, InstantiationException, - InvocationTargetException, IllegalAccessException, - NoSuchMethodException { - if (wrapperClassName == null) { - if (LOG.isDebugEnabled()) { - LOG.debug("No defined wrapper class; " - + "returning original context."); - } - - return context; - } - - if (LOG.isDebugEnabled()) { - LOG.debug("Looking for wrapper class: " + wrapperClassName); - } - - Class wrapperClass = ClassUtils.getApplicationClass(wrapperClassName); - - if (LOG.isDebugEnabled()) { - LOG.debug("Instantiating wrapper class"); - } - - return (Context) ConstructorUtils.invokeConstructor(wrapperClass, - new Object[] { context }); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/generic/package.html b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/generic/package.html deleted file mode 100644 index 432b49cab33..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/generic/package.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - -

Contains generic commands.

- - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/package.html b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/package.html deleted file mode 100644 index 9cef8cf25ec..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/package.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - -

Configurable commands -that may be placed within the request processor.

- - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/AuthorizeAction.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/AuthorizeAction.java deleted file mode 100644 index 7651b89c899..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/AuthorizeAction.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * $Id: AuthorizeAction.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.struts.action.ActionServlet; -import org.apache.struts.chain.commands.AbstractAuthorizeAction; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.util.MessageResources; - -import javax.servlet.http.HttpServletRequest; - -/** - *

Determine if the action is authorized for the given roles.

- * - * @version $Rev: 471754 $ $Date: 2005-11-12 13:01:44 -0500 (Sat, 12 Nov 2005) - * $ - */ -public class AuthorizeAction extends AbstractAuthorizeAction { - // ------------------------------------------------------- Protected Methods - protected boolean isAuthorized(ActionContext context, String[] roles, - ActionConfig mapping) - throws Exception { - // Identify the HTTP request object - ServletActionContext servletActionContext = - (ServletActionContext) context; - HttpServletRequest request = servletActionContext.getRequest(); - - // Check the current user against the list of required roles - for (int i = 0; i < roles.length; i++) { - if (request.isUserInRole(roles[i])) { - return (true); - } - } - - // Default to unauthorized - return (false); - } - - protected String getErrorMessage(ActionContext context, - ActionConfig actionConfig) { - ServletActionContext servletActionContext = - (ServletActionContext) context; - - // Retrieve internal message resources - ActionServlet servlet = servletActionContext.getActionServlet(); - MessageResources resources = servlet.getInternal(); - - return resources.getMessage("notAuthorized", actionConfig.getPath()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/CreateAction.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/CreateAction.java deleted file mode 100644 index 9ff04178897..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/CreateAction.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * $Id: CreateAction.java 510851 2007-02-23 07:05:18Z pbenedict $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.action.Action; -import org.apache.struts.action.ActionServlet; -import org.apache.struts.chain.Constants; -import org.apache.struts.chain.commands.util.ClassUtils; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ModuleConfig; - -import java.util.HashMap; -import java.util.Map; - -/** - *

Concrete implementation of AbstractCreateAction for use in - * a Servlet API chain. Expects that the ActionContext passed into it can - * safely be cast to ServletActionContext.

- */ -public class CreateAction - extends org.apache.struts.chain.commands.AbstractCreateAction { - // ------------------------------------------------------ Instance Variables - private static final Log log = LogFactory.getLog(CreateAction.class); - - /* :TODO The Action class' dependency on having its "servlet" property set - * requires this API-dependent subclass of AbstractCreateAction. - */ - protected synchronized Action getAction(ActionContext context, String type, - ActionConfig actionConfig) - throws Exception { - ModuleConfig moduleConfig = actionConfig.getModuleConfig(); - String actionsKey = Constants.ACTIONS_KEY + moduleConfig.getPrefix(); - Map actions = (Map) context.getApplicationScope().get(actionsKey); - - if (actions == null) { - actions = new HashMap(); - context.getApplicationScope().put(actionsKey, actions); - } - - Action action = null; - - synchronized (actions) { - action = (Action) actions.get(type); - - if (action == null) { - action = createAction(context, type); - actions.put(type, action); - } - } - - if (action.getServlet() == null) { - ServletActionContext saContext = (ServletActionContext) context; - ActionServlet actionServlet = saContext.getActionServlet(); - - action.setServlet(actionServlet); - } - - return (action); - } - - - /** - *

Invoked by getAction when the Action - * actually has to be created. If the instance is already created and - * cached, this method will not be called.

- * - * @param context The Context for this request - * @param type Name of class to instantiate - * @return Instantiated Action class - * @throws Exception if there are any problems instantiating the Action - * class. - * @since Struts 1.3.7 - */ - protected Action createAction(ActionContext context, String type) throws Exception { - log.info("Initialize action of type: " + type); - return (Action) ClassUtils.getApplicationInstance(type); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/ExceptionHandler.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/ExceptionHandler.java deleted file mode 100644 index b1b9fd177b2..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/ExceptionHandler.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * $Id: ExceptionHandler.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.chain.commands.AbstractExceptionHandler; -import org.apache.struts.chain.commands.util.ClassUtils; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ExceptionConfig; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - *

Handle the specified exception.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class ExceptionHandler extends AbstractExceptionHandler { - // ------------------------------------------------------ Instance Variables - private static final Log log = LogFactory.getLog(ExceptionHandler.class); - - // ------------------------------------------------------- Protected Methods - protected ForwardConfig handle(ActionContext context, Exception exception, - ExceptionConfig exceptionConfig, ActionConfig actionConfig, - ModuleConfig moduleConfig) - throws Exception { - // Look up the remaining properties needed for this handler - ServletActionContext sacontext = (ServletActionContext) context; - ActionForm actionForm = (ActionForm) sacontext.getActionForm(); - HttpServletRequest request = sacontext.getRequest(); - HttpServletResponse response = sacontext.getResponse(); - - // Handle this exception - org.apache.struts.action.ExceptionHandler handler = - (org.apache.struts.action.ExceptionHandler) ClassUtils - .getApplicationInstance(exceptionConfig.getHandler()); - - return (handler.execute(exception, exceptionConfig, - (ActionMapping) actionConfig, actionForm, request, response)); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/ExecuteAction.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/ExecuteAction.java deleted file mode 100644 index 280a9b4ac75..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/ExecuteAction.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * $Id: ExecuteAction.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.struts.action.Action; -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.chain.commands.AbstractExecuteAction; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ForwardConfig; - -/** - *

Invoke the appropriate Action for this request, and cache - * the returned ActionForward.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class ExecuteAction extends AbstractExecuteAction { - // ------------------------------------------------------- Protected Methods - - /** - *

Execute the specified Action, and return the resulting - * ActionForward.

- * - * @param context The Context for this request - * @param action The Action to be executed - * @param actionConfig The ActionConfig defining this action - * @param actionForm The ActionForm (if any) for this - * action - * @throws Exception if thrown by the Action - */ - protected ForwardConfig execute(ActionContext context, Action action, - ActionConfig actionConfig, ActionForm actionForm) - throws Exception { - ServletActionContext saContext = (ServletActionContext) context; - - return (action.execute((ActionMapping) actionConfig, actionForm, - saContext.getRequest(), saContext.getResponse())); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/PerformForward.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/PerformForward.java deleted file mode 100644 index d4a6997dd60..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/PerformForward.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * $Id: PerformForward.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import java.io.IOException; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.action.ActionServlet; -import org.apache.struts.chain.commands.AbstractPerformForward; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.RequestUtils; -import org.apache.struts.util.ModuleUtils; - -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - *

Perform forwarding or redirection based on the specified - * ForwardConfig (if any).

- * - * @version $Rev: 471754 $ $Date: 2006-11-06 15:55:09 +0100 (Mon, 06 Nov 2006) $ - */ -public class PerformForward extends AbstractPerformForward { - private static final Log LOG = LogFactory.getLog(PerformForward.class); - - // ------------------------------------------------------- Protected Methods - - /** - *

Perform the appropriate processing on the specified - * ForwardConfig.

- * - * @param context The context for this request - * @param forwardConfig The forward to be performed - */ - protected void perform(ActionContext context, ForwardConfig forwardConfig) - throws Exception { - ServletActionContext sacontext = (ServletActionContext) context; - String uri = forwardConfig.getPath(); - - if (uri == null) { - ActionServlet servlet = sacontext.getActionServlet(); - MessageResources resources = servlet.getInternal(); - - throw new IllegalArgumentException(resources.getMessage("forwardPathNull")); - } - - HttpServletRequest request = sacontext.getRequest(); - ServletContext servletContext = sacontext.getContext(); - HttpServletResponse response = sacontext.getResponse(); - - // If the forward can be unaliased into an action, then use the path of the action - String actionIdPath = RequestUtils.actionIdURL(forwardConfig, sacontext.getRequest(), sacontext.getActionServlet()); - if (actionIdPath != null) { - uri = actionIdPath; - ForwardConfig actionIdForwardConfig = new ForwardConfig(forwardConfig); - actionIdForwardConfig.setPath(actionIdPath); - forwardConfig = actionIdForwardConfig; - } - - if (uri.startsWith("/")) { - uri = resolveModuleRelativePath(forwardConfig, servletContext, request); - } - - - if (response.isCommitted() && !forwardConfig.getRedirect()) { - handleAsInclude(uri, servletContext, request, response); - } else if (forwardConfig.getRedirect()) { - handleAsRedirect(uri, request, response); - } else { - handleAsForward(uri, servletContext, request, response); - } - } - - private String resolveModuleRelativePath(ForwardConfig forwardConfig, ServletContext servletContext, HttpServletRequest request) { - String prefix = forwardConfig.getModule(); - ModuleConfig moduleConfig = ModuleUtils.getInstance().getModuleConfig(prefix, request, servletContext); - return RequestUtils.forwardURL(request,forwardConfig, moduleConfig); - } - - private void handleAsForward(String uri, ServletContext servletContext, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - RequestDispatcher rd = servletContext.getRequestDispatcher(uri); - - if (LOG.isDebugEnabled()) { - LOG.debug("Forwarding to " + uri); - } - - rd.forward(request, response); - } - - private void handleAsRedirect(String uri, HttpServletRequest request, HttpServletResponse response) throws IOException { - if (uri.startsWith("/")) { - uri = request.getContextPath() + uri; - } - - if (LOG.isDebugEnabled()) { - LOG.debug("Redirecting to " + uri); - } - - response.sendRedirect(response.encodeRedirectURL(uri)); - } - - private void handleAsInclude(String uri, ServletContext servletContext, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { - RequestDispatcher rd = servletContext.getRequestDispatcher(uri); - - if (rd == null) { - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - "Error getting RequestDispatcher for " + uri); - return; - } - - if (LOG.isDebugEnabled()) { - LOG.debug("Including " + uri); - } - - rd.include(request, response); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/PerformInclude.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/PerformInclude.java deleted file mode 100644 index 636bd831aba..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/PerformInclude.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * $Id: PerformInclude.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.struts.chain.commands.AbstractPerformInclude; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.util.RequestUtils; - -import javax.servlet.RequestDispatcher; -import javax.servlet.http.HttpServletRequest; - -/** - *

Perform forwarding or redirection based on the specified include uri (if - * any).

- * - * @version $Rev: 471754 $ $Date: 2005-11-09 00:11:45 -0500 (Wed, 09 Nov 2005) - * $ - */ -public class PerformInclude extends AbstractPerformInclude { - // ------------------------------------------------------- Protected Methods - - /** - *

Perform the appropriate processing on the specified include - * uri.

- * - * @param context The context for this request - * @param uri The uri to be included - */ - protected void perform(ActionContext context, String uri) - throws Exception { - ServletActionContext swcontext = (ServletActionContext) context; - - HttpServletRequest request = swcontext.getRequest(); - - RequestDispatcher rd = swcontext.getContext().getRequestDispatcher(uri); - - rd.forward(request, swcontext.getResponse()); - } - - protected String includePath(ActionContext actionContext, String include) { - ServletActionContext swcontext = (ServletActionContext) actionContext; - String actionIdPath = RequestUtils.actionIdURL(include, swcontext.getModuleConfig(), swcontext.getActionServlet()); - if (actionIdPath != null) { - return super.includePath(actionContext, actionIdPath); - } else { - return super.includePath(actionContext, include); - } - - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/PopulateActionForm.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/PopulateActionForm.java deleted file mode 100644 index 59e587ed03f..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/PopulateActionForm.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * $Id: PopulateActionForm.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.Globals; -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.chain.commands.AbstractPopulateActionForm; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.util.RequestUtils; - -/** - *

Populate the form bean (if any) for this request. Sets the multipart - * class from the action config in the request attributes.

- * - * @version $Rev: 471754 $ $Date: 2005-11-12 13:01:44 -0500 (Sat, 12 Nov 2005) - * $ - */ -public class PopulateActionForm extends AbstractPopulateActionForm { - private static final Log log = LogFactory.getLog(PopulateActionForm.class); - - // ------------------------------------------------------- Protected Methods - protected void populate(ActionContext context, ActionConfig actionConfig, - ActionForm actionForm) - throws Exception { - ServletActionContext saContext = (ServletActionContext) context; - - RequestUtils.populate(actionForm, actionConfig.getPrefix(), - actionConfig.getSuffix(), saContext.getRequest()); - } - - protected void reset(ActionContext context, ActionConfig actionConfig, - ActionForm actionForm) { - ServletActionContext saContext = (ServletActionContext) context; - - actionForm.reset((ActionMapping) actionConfig, saContext.getRequest()); - - // Set the multipart class - if (actionConfig.getMultipartClass() != null) { - saContext.getRequestScope().put(Globals.MULTIPART_KEY, - actionConfig.getMultipartClass()); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/RequestNoCache.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/RequestNoCache.java deleted file mode 100644 index 4929113815b..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/RequestNoCache.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * $Id: RequestNoCache.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.struts.chain.commands.AbstractRequestNoCache; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; - -import javax.servlet.http.HttpServletResponse; - -/** - *

Check to see if the controller is configured to prevent caching, and if - * so, set the no cache HTTP response headers.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class RequestNoCache extends AbstractRequestNoCache { - // ------------------------------------------------------- Protected Methods - protected void requestNoCache(ActionContext context) { - ServletActionContext sacontext = (ServletActionContext) context; - HttpServletResponse response = sacontext.getResponse(); - - response.setHeader("Pragma", "No-cache"); - response.setHeader("Cache-Control", "no-cache,no-store,max-age=0"); - response.setDateHeader("Expires", 1); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectAction.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectAction.java deleted file mode 100644 index 2d12620cb53..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectAction.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * $Id: SelectAction.java 508312 2007-02-16 04:56:54Z pbenedict $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.struts.chain.Constants; -import org.apache.struts.chain.commands.AbstractSelectAction; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.config.ModuleConfig; - -import javax.servlet.http.HttpServletRequest; - -/** - *

Cache the ActionConfig instance for the action to be used - * for processing this request.

- * - * @version $Rev: 508312 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class SelectAction extends AbstractSelectAction { - // ------------------------------------------------------- Protected Methods - protected String getPath(ActionContext context) { - ServletActionContext saContext = (ServletActionContext) context; - HttpServletRequest request = saContext.getRequest(); - String path = null; - boolean extension = false; - - // For prefix matching, match on the path info - path = (String) request.getAttribute(Constants.INCLUDE_PATH_INFO); - - if ((path == null) || (path.length() == 0)) { - path = request.getPathInfo(); - } - - // For extension matching, match on the servlet path - if ((path == null) || (path.length() == 0)) { - path = - (String) request.getAttribute(Constants.INCLUDE_SERVLET_PATH); - - if ((path == null) || (path.length() == 0)) { - path = request.getServletPath(); - } - - if ((path == null) || (path.length() == 0)) { - throw new IllegalArgumentException( - "No path information in request"); - } - - extension = true; - } - - // Strip the module prefix and extension (if any) - ModuleConfig moduleConfig = saContext.getModuleConfig(); - String prefix = moduleConfig.getPrefix(); - - if (!path.startsWith(prefix)) { - throw new IllegalArgumentException("Path does not start with '" - + prefix + "'"); - } - - path = path.substring(prefix.length()); - - if (extension) { - int slash = path.lastIndexOf("/"); - int period = path.lastIndexOf("."); - - if ((period >= 0) && (period > slash)) { - path = path.substring(0, period); - } - } - - return (path); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectForward.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectForward.java deleted file mode 100644 index 00bbdf09f8a..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectForward.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * $Id: SelectForward.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.struts.action.ActionForward; -import org.apache.struts.chain.commands.AbstractSelectForward; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; - -/** - *

Create and return a ForwardConfig representing the - * specified module-relative destination.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class SelectForward extends AbstractSelectForward { - // ------------------------------------------------------- Protected Methods - - /** - *

Create and return a ForwardConfig representing the - * specified module-relative destination.

- * - * @param context The context for this request - * @param moduleConfig The ModuleConfig for this request - * @param uri The module-relative URI to be the destination - */ - protected ForwardConfig forward(ActionContext context, - ModuleConfig moduleConfig, String uri) { - return (new ActionForward(null, uri, false, moduleConfig.getPrefix())); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectInput.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectInput.java deleted file mode 100644 index 508f542211e..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectInput.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $Id: SelectInput.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.struts.action.ActionForward; -import org.apache.struts.chain.commands.AbstractSelectInput; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; - -/** - *

Validate the properties of the form bean for this request. If there are - * any validation errors, execute the child commands in our chain; otherwise, - * proceed normally.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class SelectInput extends AbstractSelectInput { - // ------------------------------------------------------- Protected Methods - - /** - *

Create and return a ForwardConfig representing the - * specified module-relative destination.

- * - * @param context The context for this request - * @param moduleConfig The ModuleConfig for this request - * @param uri The module-relative URI to be the destination - */ - protected ForwardConfig forward(ActionContext context, - ModuleConfig moduleConfig, String uri) { - return (new ActionForward(null, uri, false, moduleConfig.getPrefix())); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectLocale.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectLocale.java deleted file mode 100644 index 9001b34a2d0..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectLocale.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * $Id: SelectLocale.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.Globals; -import org.apache.struts.chain.commands.AbstractSelectLocale; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; - -import javax.servlet.http.HttpSession; - -import java.util.Locale; - -/** - *

Select the Locale to be used for this request.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class SelectLocale extends AbstractSelectLocale { - private static final Log log = LogFactory.getLog(SelectLocale.class); - - // ------------------------------------------------------- Protected Methods - - /** - *

Return the Locale to be used for this request.

- * - * @param context The Context for this request - */ - protected Locale getLocale(ActionContext context) { - ServletActionContext saContext = (ServletActionContext) context; - - // Has a Locale already been selected? - HttpSession session = saContext.getRequest().getSession(); - Locale locale = (Locale) session.getAttribute(Globals.LOCALE_KEY); - - if (locale != null) { - return (locale); - } - - // Select and cache the Locale to be used - locale = saContext.getRequest().getLocale(); - - if (locale == null) { - locale = Locale.getDefault(); - } - - session.setAttribute(Globals.LOCALE_KEY, locale); - - return (locale); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectModule.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectModule.java deleted file mode 100644 index 13cc039e844..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SelectModule.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * $Id: SelectModule.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.struts.Globals; -import org.apache.struts.chain.Constants; -import org.apache.struts.chain.commands.AbstractSelectModule; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; - -import javax.servlet.http.HttpServletRequest; - -/** - *

Cache the ModuleConfig and MessageResources - * instances for the sub-application module to be used for processing this - * request.

- * - * @version $Rev: 471754 $ $Date: 2005-06-04 10:58:46 -0400 (Sat, 04 Jun 2005) - * $ - */ -public class SelectModule extends AbstractSelectModule { - // ------------------------------------------------------- Protected Methods - protected String getPrefix(ActionContext context) { - // Identify the URI from which we will match a module prefix - ServletActionContext sacontext = (ServletActionContext) context; - HttpServletRequest request = sacontext.getRequest(); - String uri = - (String) request.getAttribute(Constants.INCLUDE_SERVLET_PATH); - - if (uri == null) { - uri = request.getServletPath(); - } - - if (uri == null) { - throw new IllegalArgumentException("No path information in request"); - } - - // Identify the module prefix for the current module - String prefix = ""; // Initialize to default prefix - String[] prefixes = - (String[]) sacontext.getApplicationScope().get(Globals.MODULE_PREFIXES_KEY); - int lastSlash = 0; - - while (prefix.equals("") && ((lastSlash = uri.lastIndexOf("/")) > 0)) { - uri = uri.substring(0, lastSlash); - - for (int i = 0; i < prefixes.length; i++) { - if (uri.equals(prefixes[i])) { - prefix = prefixes[i]; - - break; - } - } - } - - return (prefix); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SetContentType.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SetContentType.java deleted file mode 100644 index 8468fa7dd94..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SetContentType.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: SetContentType.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.struts.chain.commands.AbstractSetContentType; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; - -import javax.servlet.http.HttpServletResponse; - -/** - *

Check to see if the content type is set, and if so, set it for this - * response.

- * - * @version $Rev: 471754 $ $Date: 2005-06-04 10:58:46 -0400 (Sat, 04 Jun 2005) - * $ - */ -public class SetContentType extends AbstractSetContentType { - // ------------------------------------------------------- Protected Methods - protected void setContentType(ActionContext context, String contentType) { - ServletActionContext swcontext = (ServletActionContext) context; - HttpServletResponse response = swcontext.getResponse(); - - response.setContentType(contentType); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SetOriginalURI.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SetOriginalURI.java deleted file mode 100644 index 072c243e396..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/SetOriginalURI.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: SetOriginalURI.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.struts.Globals; -import org.apache.struts.chain.commands.AbstractSetOriginalURI; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; - -import javax.servlet.http.HttpServletRequest; - -/** - *

Set the servlet path.

- * - * @version $Rev: 471754 $ $Date: 2005-06-04 07:58:46 -0700 (Sat, 04 Jun 2005) - * $ - */ -public class SetOriginalURI extends AbstractSetOriginalURI { - // ------------------------------------------------------- Protected Methods - protected void setOriginalURI(ActionContext context) { - ServletActionContext swcontext = (ServletActionContext) context; - HttpServletRequest request = swcontext.getRequest(); - - request.setAttribute(Globals.ORIGINAL_URI_KEY, request.getServletPath()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/ValidateActionForm.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/ValidateActionForm.java deleted file mode 100644 index abc223cc9e4..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/ValidateActionForm.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * $Id: ValidateActionForm.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.action.ActionErrors; -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.chain.commands.AbstractValidateActionForm; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.config.ActionConfig; - -/** - *

Validate the properties of the form bean for this request. If there are - * any validation errors, execute the child commands in our chain; otherwise, - * proceed normally. Also, if any errors are found and the request is a - * multipart request, rollback the MultipartRequestHandler.

- * - * @version $Rev: 471754 $ $Date: 2005-06-04 10:58:46 -0400 (Sat, 04 Jun 2005) - * $ - */ -public class ValidateActionForm extends AbstractValidateActionForm { - // ------------------------------------------------------ Instance Variables - private static final Log log = LogFactory.getLog(ValidateActionForm.class); - - // ------------------------------------------------------- Protected Methods - - /** - *

Call the validate() method of the specified form bean, - * and return the resulting ActionErrors object.

- * - * @param context The context for this request - * @param actionForm The form bean for this request - */ - protected ActionErrors validate(ActionContext context, - ActionConfig actionConfig, ActionForm actionForm) { - ServletActionContext saContext = (ServletActionContext) context; - ActionErrors errors = - (actionForm.validate((ActionMapping) actionConfig, - saContext.getRequest())); - - // Special handling for multipart request - if ((errors != null) && !errors.isEmpty()) { - if (actionForm.getMultipartRequestHandler() != null) { - if (log.isTraceEnabled()) { - log.trace(" Rolling back multipart request"); - } - - actionForm.getMultipartRequestHandler().rollback(); - } - } - - return errors; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/package.html b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/package.html deleted file mode 100644 index 937edf55324..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/servlet/package.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - -

Commands which are particular to servlet processing.

- - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/util/ClassUtils.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/util/ClassUtils.java deleted file mode 100644 index 3d3a86f33d9..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/util/ClassUtils.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * $Id: ClassUtils.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.util; - - -/** - *

Utility methods to load application classes and create instances.

- * - * @version $Rev: 471754 $ $Date: 2005-11-12 13:01:44 -0500 (Sat, 12 Nov 2005) - * $ - */ -public final class ClassUtils { - // ---------------------------------------------------------- Static Methods - - /** - *

Return the Class object for the specified fully - * qualified class name, from this web application's class loader. - * - * @param className Fully qualified class name - * @throws ClassNotFoundException if the specified class cannot be loaded - */ - public static Class getApplicationClass(String className) - throws ClassNotFoundException { - if (className == null) { - throw new NullPointerException( - "getApplicationClass called with null className"); - } - - ClassLoader classLoader = - Thread.currentThread().getContextClassLoader(); - - if (classLoader == null) { - classLoader = ClassUtils.class.getClassLoader(); - } - - return (classLoader.loadClass(className)); - } - - /** - *

Return a new instance of the specified fully qualified class name, - * after loading the class (if necessary) from this web application's - * class loader.

- * - * @param className Fully qualified class name - * @throws ClassNotFoundException if the specified class cannot be loaded - * @throws IllegalAccessException if this class is not concrete - * @throws InstantiationException if this class has no zero-arguments - * constructor - */ - public static Object getApplicationInstance(String className) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException { - return (getApplicationClass(className).newInstance()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/util/package.html b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/util/package.html deleted file mode 100644 index 77b3ca4ea65..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/commands/util/package.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - -

Provides a variety of utilities to support -command processing.

- - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ActionContext.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ActionContext.java deleted file mode 100644 index f445fac1232..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ActionContext.java +++ /dev/null @@ -1,430 +0,0 @@ -/* - * $Id: ActionContext.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.contexts; - -import org.apache.commons.chain.Context; -import org.apache.struts.action.Action; -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.ActionMessages; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.util.MessageResources; - -import java.util.Locale; -import java.util.Map; - -/** - *

An ActionContext represents a view of a commons-chain - * Context which encapsulates access to request and - * session-scoped resources and services

- */ -public interface ActionContext extends Context { - public static final String APPLICATION_SCOPE = "application"; - public static final String SESSION_SCOPE = "session"; - public static final String REQUEST_SCOPE = "request"; - - // ------------------------------- - // General Application Support - // ------------------------------- - - /** - * Signal to the instance that it will not be used any more, so that any - * resources which should be cleaned up can be cleaned up. - */ - void release(); - - /** - *

Return a Map of Application scoped values.

- * - *

This is implemented in analogy with the Application scope in the - * Servlet API, but it seems reasonable to expect that any Struts - * implementation will have an equivalent concept.

- * - *

The ultimate meaning of "application scope" is an implementation - * detail left unspecified by Struts.

- * - * @return A Map of "application scope" attributes. - */ - Map getApplicationScope(); - - /** - *

Return a Map of Session scoped values. A session is - * understood as a sequence of requests made by the same user.

- * - *

This is implemented in analogy with the Session scope in the Servlet - * API, but it seems reasonable to expect that any Struts implementation - * will have an equivalent concept.

- * - *

The ultimate meaning of "session scope" is an implementation detail - * left unspecified by Struts.

- * - * @return A Map of "session scope" attributes. - */ - Map getSessionScope(); - - /** - *

Return a Map of request scoped values. A request is - * understood as the fundamental motivation for any particular instance of - * an ActionContext.

- * - *

This is implemented in analogy with the Request Context in the - * Servlet API, but it seems reasonable to expect that any Struts - * implementation will have an equivalent concept.

- * - *

The ultimate meaning of "request scope" is an implementation detail - * left unspecified by Struts.

- * - * @return a Map of "request scope" attributes. - */ - Map getRequestScope(); - - /** - * Return the Map representing the scope identified by - * scopeName. Implementations should support at minimum the - * names associated with the constants APPLICATION_SCOPE, - * SESSION_SCOPE, and REQUEST_SCOPE, but are - * permitted to support others as well. - * - * @param scopeName A token identifying a scope, including but not limited - * to APPLICATION_SCOPE, SESSION_SCOPE, - * REQUEST_SCOPE. - * @return A Map of attributes for the specified scope. - */ - Map getScope(String scopeName); - - /** - *

Return a Map of parameters submitted by the user as - * part of this request. The keys to this map will be request parameter - * names (of type String), and the values will be - * String[].

- * - *

This is implemented in analogy with the Request parameters of the - * Servlet API, but it seems reasonable to expect that any Struts - * implementation will have an equivalent concept.

- * - * @return A map of the request parameter attributes - */ - Map getParameterMap(); - - // ------------------------------- - // General Struts properties - // ------------------------------- - - /** - *

Set the action which has been identified to be executed as part of - * processing this request.

- * - * @param action - */ - void setAction(Action action); - - /** - *

Get the action which has been identified to be executed as part of - * processing this request.

- * - * @return The action to be executed with this request - */ - Action getAction(); - - /** - *

Set the ActionForm instance which will carry any data submitted as - * part of this request.

- * - * @param form The ActionForm instance to use with this request - */ - void setActionForm(ActionForm form); - - /** - *

Get the ActionForm instance which will carry any data submitted as - * part of this request.

- * - * @return The ActionForm being used with this request - */ - ActionForm getActionForm(); - - /** - *

Set the ActionConfig class contains the details for processing this - * request.

- * - * @param config The ActionConfig class to use with this request - */ - void setActionConfig(ActionConfig config); - - /** - *

Get the ActionConfig which contains the details for processing this - * request. - * - * @return The ActionConfig class being used with this request

- */ - ActionConfig getActionConfig(); - - /** - *

Set the ForwardConfig which should be used as the basis of the view - * segment of the overall processing. This is the primary method of - * "communication" with the "view" sub-chain.

- * - * @param forward The ForwardConfig to use with this request - */ - void setForwardConfig(ForwardConfig forward); - - /** - *

Get the ForwardConfig which has been identified as the basis for - * view-processing.

- * - * @return The ForwardConfig being used with this request - */ - ForwardConfig getForwardConfig(); - - /** - *

Set the include path which should be processed as part of - * processing this request.

- * - * @param include The include path to be used with this request - */ - void setInclude(String include); - - /** - *

Get the include path which should be processed as part of - * processing this request.

- * - * @return The include path being used with this request - */ - String getInclude(); - - /** - *

Set the ModuleConfig which is operative for the current request. - *

- * - * @param config The ModuleConfig to be used with this request - */ - void setModuleConfig(ModuleConfig config); - - /** - *

Get the ModuleConfig which is operative for the current request. - *

- * - * @return The MooduleConfig being used with this request - */ - ModuleConfig getModuleConfig(); - - /** - *

Is the ActionForm for this context valid? This method does - * not actually perform form validation. It is simply a holder - * property where processes which perform validation can store the results - * of the validation for other processes' benefit.

- * - * @return Boolean.TRUE if the form passed validation; - * Boolean.FALSE if the form failed validation; null - * if the form has not yet been validated - */ - Boolean getFormValid(); - - /** - *

Store the result of the validation of the Context's ActionForm. - *

- * - * @param valid Whether the ActionForm for this request passes validation - */ - void setFormValid(Boolean valid); - - /** - *

Retrieve an exception which may have been caught by some code using - * this ActionContext, usually by an exception handler.

- * - * @return Any exception that may have been caught by this ActionContext - */ - Exception getException(); - - /** - *

Store an exception in this context for use by other handling code. - *

- * - * @param e An exception to be stored for handling by another member - */ - void setException(Exception e); - - // ------------------------------- - // ActionMessage Processing - // ------------------------------- - - /** - *

Append the given messages keys to an internal cache, creating the - * cache if one is not already present.

- * - * @param messages New ActionMessages to cache - */ - void addMessages(ActionMessages messages); - - /** - *

Append the given errors keys to an internal cache, creating the - * cache if one is not already present.

- * - * @param errors New ActionMessages to cache as errors - */ - void addErrors(ActionMessages errors); - - /** - *

Retrieve error messages from an internal cache, creating an empty - * cache if one is not already present.

- * - * @return The ActionMessage cache for errors - */ - ActionMessages getErrors(); - - /** - *

Retrieve messages from an internal cache, creating an empty cache - * if one is not already present.

- * - * @return The ActionMessage cache for errors - */ - ActionMessages getMessages(); - - /** - *

Save the given error messages to the internal cache, clearing any - * previous messages in the cache.

If the parameter is null or - * empty, the internal cache is removed.

- * - * @param errors ActionMesssages to cache as errors - */ - void saveErrors(ActionMessages errors); - - /** - *

Save the given messages to the internal cache, clearing any - * previous messages in the cache.

If the parameter is null or - * empty, the internal cache is removed.

- * - * @param messages ActionMesssages to cache - */ - void saveMessages(ActionMessages messages); - - /** - *

Save the given messages to the internal cache, clearing any - * previous messages in the cache, but only for the specified scope.

- *

If the parameter is null or empty, the internal cache is removed. - *

- * - * @param scope The scope for the internal cache - * @param messages ActionMesssages to cache - */ - void saveMessages(String scope, ActionMessages messages); - - // ------------------------------- - // Token Processing - // ------------------------------- - - /** - *

Generate a new transaction token, to be used for enforcing a single - * request for a particular transaction.

- */ - String generateToken(); - - /** - *

Indicate whether a transaction token for this context is valid. - *

A typical implementation will place a transaction token in the - * session" scope Map and a matching value in the "parameter" Map. If the - * "session" token does not match the "parameter" attribute, or the - * session token is missing, then the transactional token is deemed - * invalid.

- */ - boolean isTokenValid(); - - /** - *

Indicate whether a transaction token is stored in the "session" - * scope for this context, optionally clearing the token, so that the next - * check would return false.

- * - * @param reset On true, clear the transactional token - */ - boolean isTokenValid(boolean reset); - - /** - *

Clear any transactional token stored in the "session" scope for - * this context, so that the next check would return false.

- */ - void resetToken(); - - /** - *

Save a new transaction token in the "session" scope for this - * context, creating new resources, if needed.

- */ - void saveToken(); - - // ------------------------------- - // Cancel Processing - // ------------------------------- - - /** - *

Indicate if the "cancel event" state is set for for this context, - *

- * - * @see ActionContextBase.CANCEL_KEY - */ - Boolean getCancelled(); - - /** - *

Set the "cancel event" state for this context.

- * - * @param cancelled On true, set the cancel event state to true. On false, - * set the cancel event state to false. - * @see ActionContextBase.CANCEL_KEY - */ - void setCancelled(Boolean cancelled); - - // ------------------------------- - // MessageResources Processing - // ------------------------------- - - /** - *

Return the default message resources for the current module.

- */ - MessageResources getMessageResources(); - - /** - *

Set the default message resources for the current module.

- */ - void setMessageResources(MessageResources resources); - - /** - *

Return the specified message resources for the current module.

- * - * @param key The key specified in the <message-resources> - * element for the requested bundle - */ - MessageResources getMessageResources(String key); - - // ------------------------------- - // Locale Processing - // ------------------------------- - - /** - *

Return the user's currently selected Locale.

- */ - Locale getLocale(); - - /** - *

Set the user's currently selected Locale.

- * - * @param locale The user's selected Locale to be set, or null to select - * the server's default Locale - */ - void setLocale(Locale locale); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ActionContextBase.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ActionContextBase.java deleted file mode 100644 index 087198979e6..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ActionContextBase.java +++ /dev/null @@ -1,552 +0,0 @@ -/* - * $Id: ActionContextBase.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.contexts; - -import org.apache.commons.chain.Context; -import org.apache.commons.chain.impl.ContextBase; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.action.Action; -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.ActionMessages; -import org.apache.struts.chain.Constants; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.FormBeanConfig; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.TokenProcessor; - -import java.util.Locale; -import java.util.Map; - -/** - *

Provide an abstract but semi-complete implementation of ActionContext - * to serve as the base for concrete implementations.

The abstract - * methods to implement are the accessors for the named states, - * getApplicationScope, getRequestScope, and - * getSessionScope.

- */ -public abstract class ActionContextBase extends ContextWrapper - implements ActionContext { - /** - * @see Constants.ACTION_KEY - */ - public static final String ACTION_KEY = Constants.ACTION_KEY; - - /** - * @see - */ - public static final String ACTION_CONFIG_KEY = Constants.ACTION_CONFIG_KEY; - - /** - * @see Constants.ACTION_FORM_KEY - */ - public static final String ACTION_FORM_KEY = Constants.ACTION_FORM_KEY; - - /** - * @see Constants.FORWARD_CONFIG_KEY - */ - public static final String FORWARD_CONFIG_KEY = - Constants.FORWARD_CONFIG_KEY; - - /** - * @see Constants.MODULE_CONFIG_KEY - */ - public static final String MODULE_CONFIG_KEY = Constants.MODULE_CONFIG_KEY; - - /** - * @see Constants.EXCEPTION_KEY - */ - public static final String EXCEPTION_KEY = Constants.EXCEPTION_KEY; - - /** - *

Provide the default context attribute under which to store the - * ActionMessage cache for errors.

- */ - public static final String ERROR_ACTION_MESSAGES_KEY = "errors"; - - /** - *

Provide the default context attribute under which to store the - * ActionMessage cache.

- */ - public static final String MESSAGE_ACTION_MESSAGES_KEY = "messages"; - - /** - * @see Constants.MESSAGE_RESOURCES_KEY - */ - public static final String MESSAGE_RESOURCES_KEY = - Constants.MESSAGE_RESOURCES_KEY; - - /** - * @see Constants.INCLUDE_KEY - */ - public static final String INCLUDE_KEY = Constants.INCLUDE_KEY; - - /** - * @see Constants.LOCALE_KEY - */ - public static final String LOCALE_KEY = Constants.LOCALE_KEY; - - /** - * @see Constants.CANCEL_KEY - */ - public static final String CANCEL_KEY = Constants.CANCEL_KEY; - - /** - * @see Constants.VALID_KEY - */ - public static final String VALID_KEY = Constants.VALID_KEY; - - /** - * Provide the default context attribute under which to store the - * transaction token key. - */ - public static final String TRANSACTION_TOKEN_KEY = "TRANSACTION_TOKEN_KEY"; - - /** - * Provide the default context attribute under which to store the token - * key. - */ - public static final String TOKEN_KEY = "TOKEN_KEY"; - - /** - * Store the TokenProcessor instance for this Context. - */ - protected TokenProcessor token = null; - - /** - * Store the Log instance for this Context. - */ - private Log logger = null; - - /** - * Instantiate ActionContextBase, wrapping the given Context. - * - * @param context Context to wrap - */ - public ActionContextBase(Context context) { - super(context); - token = TokenProcessor.getInstance(); - logger = LogFactory.getLog(this.getClass()); - } - - /** - * Instantiate ActionContextBase, wrapping a default ContextBase - * instance. - */ - public ActionContextBase() { - this(new ContextBase()); - } - - // ------------------------------- - // General Application Support - // ------------------------------- - public void release() { - this.token = null; - } - - public abstract Map getApplicationScope(); - - public abstract Map getRequestScope(); - - public abstract Map getSessionScope(); - - public Map getScope(String scopeName) { - if (REQUEST_SCOPE.equals(scopeName)) { - return this.getRequestScope(); - } - - if (SESSION_SCOPE.equals(scopeName)) { - return this.getSessionScope(); - } - - if (APPLICATION_SCOPE.equals(scopeName)) { - return this.getApplicationScope(); - } - - throw new IllegalArgumentException("Invalid scope: " + scopeName); - } - - // ------------------------------- - // General Struts properties - // ------------------------------- - public void setAction(Action action) { - this.put(ACTION_KEY, action); - } - - public Action getAction() { - return (Action) this.get(ACTION_KEY); - } - - public void setActionForm(ActionForm form) { - this.put(ACTION_FORM_KEY, form); - } - - public ActionForm getActionForm() { - return (ActionForm) this.get(ACTION_FORM_KEY); - } - - public void setActionConfig(ActionConfig config) { - this.put(ACTION_CONFIG_KEY, config); - } - - public ActionConfig getActionConfig() { - return (ActionConfig) this.get(ACTION_CONFIG_KEY); - } - - public void setForwardConfig(ForwardConfig forward) { - this.put(FORWARD_CONFIG_KEY, forward); - } - - public ForwardConfig getForwardConfig() { - return (ForwardConfig) this.get(FORWARD_CONFIG_KEY); - } - - public void setInclude(String include) { - this.put(INCLUDE_KEY, include); - } - - public String getInclude() { - return (String) this.get(INCLUDE_KEY); - } - - public Boolean getFormValid() { - return (Boolean) this.get(VALID_KEY); - } - - public void setFormValid(Boolean valid) { - this.put(VALID_KEY, valid); - } - - public ModuleConfig getModuleConfig() { - return (ModuleConfig) this.get(MODULE_CONFIG_KEY); - } - - public void setModuleConfig(ModuleConfig config) { - this.put(MODULE_CONFIG_KEY, config); - } - - public Exception getException() { - return (Exception) this.get(EXCEPTION_KEY); - } - - public void setException(Exception e) { - this.put(EXCEPTION_KEY, e); - } - - // ------------------------------- - // ActionMessage Processing - // ------------------------------- - public void addMessages(ActionMessages messages) { - this.addActionMessages(MESSAGE_ACTION_MESSAGES_KEY, messages); - } - - public void addErrors(ActionMessages errors) { - this.addActionMessages(ERROR_ACTION_MESSAGES_KEY, errors); - } - - public ActionMessages getErrors() { - return (ActionMessages) this.get(ERROR_ACTION_MESSAGES_KEY); - } - - public ActionMessages getMessages() { - return (ActionMessages) this.get(MESSAGE_ACTION_MESSAGES_KEY); - } - - public void saveErrors(ActionMessages errors) { - this.saveActionMessages(ERROR_ACTION_MESSAGES_KEY, errors); - } - - public void saveMessages(ActionMessages messages) { - this.saveActionMessages(MESSAGE_ACTION_MESSAGES_KEY, messages); - } - - // ISSUE: do we want to add this to the public API? - - /** - *

Add the given messages to a cache stored in this Context, under - * key.

- * - * @param key The attribute name for the message cache - * @param messages The ActionMessages to add - */ - public void addActionMessages(String key, ActionMessages messages) { - if (messages == null) { - // bad programmer! *slap* - return; - } - - // get any existing messages from the request, or make a new one - ActionMessages requestMessages = (ActionMessages) this.get(key); - - if (requestMessages == null) { - requestMessages = new ActionMessages(); - } - - // add incoming messages - requestMessages.add(messages); - - // if still empty, just wipe it out from the request - this.remove(key); - - // save the messages - this.saveActionMessages(key, requestMessages); - } - - // ISSUE: do we want to add this to the public API? - - /** - *

Save the given ActionMessages into the request scope under the - * given key, clearing the attribute if the messages are empty or null. - *

- * - * @param key The attribute name for the message cache - * @param messages The ActionMessages to add - */ - public void saveActionMessages(String key, ActionMessages messages) { - this.saveActionMessages(REQUEST_SCOPE, key, messages); - } - - /** - *

Save the given messages into the map identified by the - * given scopeId under the given key.

- * - * @param scopeId - * @param key - * @param messages - */ - public void saveActionMessages(String scopeId, String key, - ActionMessages messages) { - Map scope = getScope(scopeId); - - if ((messages == null) || messages.isEmpty()) { - scope.remove(key); - - return; - } - - scope.put(key, messages); - } - - // ISSUE: Should we deprecate this method, since it is misleading? - // Do we need it for backward compatibility? - - /** - *

Adapt a legacy form of SaveMessages to the ActionContext API by - * storing the ActoinMessages under the default scope. - * - * @param scope The scope for the internal cache - * @param messages ActionMesssages to cache - */ - public void saveMessages(String scope, ActionMessages messages) { - this.saveMessages(messages); - } - - // ------------------------------- - // Token Processing - // ------------------------------- - // ISSUE: Should there be a getToken method? - // Is there a problem trying to map this method from Action - // to ActionContext when we aren't necessarily sure how token - // processing maps into a context with an ill-defined "session"? - // There's no getToken() method, but maybe there should be. * - public void saveToken() { - String token = this.generateToken(); - - this.put(TRANSACTION_TOKEN_KEY, token); - } - - public String generateToken() { - return token.generateToken(getTokenGeneratorId()); - } - - // ISSUE: The original implementation was based on the HttpSession - // identifier; what would be a way to do that without depending on the - // Servlet API? - // REPLY: uuid's - // http://java.sun.com/products/jini/2.0/doc/specs/api/net/jini/id/Uuid.html - protected String getTokenGeneratorId() { - return ""; - } - - public boolean isTokenValid() { - return this.isTokenValid(false); - } - - public boolean isTokenValid(boolean reset) { - // Retrieve the transaction token from this session, and - // reset it if requested - String saved = (String) this.get(TRANSACTION_TOKEN_KEY); - - if (saved == null) { - return false; - } - - if (reset) { - this.resetToken(); - } - - // Retrieve the transaction token included in this request - String token = (String) this.get(TOKEN_KEY); - - if (token == null) { - return false; - } - - return saved.equals(token); - } - - public void resetToken() { - this.remove(TRANSACTION_TOKEN_KEY); - } - - // ------------------------------- - // Cancel Processing - // ------------------------------- - public Boolean getCancelled() { - return (Boolean) this.get(CANCEL_KEY); - } - - public void setCancelled(Boolean cancelled) { - this.put(CANCEL_KEY, cancelled); - } - - // ------------------------------- - // MessageResources Processing - // ------------------------------- - public void setMessageResources(MessageResources messageResources) { - this.put(MESSAGE_RESOURCES_KEY, messageResources); - } - - public MessageResources getMessageResources() { - return (MessageResources) this.get(MESSAGE_RESOURCES_KEY); - } - - public MessageResources getMessageResources(String key) { - return (MessageResources) this.get(key); - } - - // ------------------------------- - // Locale Processing - // ------------------------------- - public void setLocale(Locale locale) { - this.put(LOCALE_KEY, locale); - } - - public Locale getLocale() { - return (Locale) this.get(LOCALE_KEY); - } - - // ------------------------------- - // Convenience Methods: these are not part of the formal ActionContext API, - // but are likely to be commonly useful. - // ------------------------------- - - /** - *

Provide the currently configured commons-logging Log - * instance.

- * - * @return Log instance for this context - */ - public Log getLogger() { - return this.logger; - } - - /** - *

Set the commons-logging Log instance which should be - * used to LOG messages. This is initialized at instantiation time but may - * be overridden. Be advised not to set the value to null, as - * ActionContextBase uses the logger for some of its own - * operations.

- */ - public void setLogger(Log logger) { - this.logger = logger; - } - - /** - *

Using this ActionContext's default - * ModuleConfig, return an existing ActionForm - * in the specified scope, or create a new one and add it to the specified - * scope.

- * - * @param formName The name attribute of our ActionForm - * @param scopeName The scope identier (request, session) - * @return The ActionForm for this request - * @throws IllegalAccessException If object cannot be created - * @throws InstantiationException If object cannot be created - * @see this.findOrCreateActionForm(String, String, ModuleConfig) - */ - public ActionForm findOrCreateActionForm(String formName, String scopeName) - throws IllegalAccessException, InstantiationException { - return this.findOrCreateActionForm(formName, scopeName, - this.getModuleConfig()); - } - - /** - *

In the context of the given ModuleConfig and this - * ActionContext, look for an existing - * ActionForm in the specified scope. If one is found, return - * it; otherwise, create a new instance, add it to that scope, and then - * return it.

- * - * @param formName The name attribute of our ActionForm - * @param scopeName The scope identier (request, session) - * @return The ActionForm for this request - * @throws IllegalAccessException If object cannot be created - * @throws InstantiationException If object cannot be created - * @throws IllegalArgumentException If form config is missing from module - * or scopeName is invalid - */ - public ActionForm findOrCreateActionForm(String formName, String scopeName, - ModuleConfig moduleConfig) - throws IllegalAccessException, InstantiationException { - Map scope = this.getScope(scopeName); - - ActionForm instance; - FormBeanConfig formBeanConfig = - moduleConfig.findFormBeanConfig(formName); - - if (formBeanConfig == null) { - throw new IllegalArgumentException("No form config found under " - + formName + " in module " + moduleConfig.getPrefix()); - } - - instance = (ActionForm) scope.get(formName); - - // ISSUE: Can we recycle the existing instance (if any)? - if (instance != null) { - getLogger().trace("Found an instance in scope " + scopeName - + "; test for reusability"); - - if (formBeanConfig.canReuse(instance)) { - return instance; - } - } - - ActionForm form = formBeanConfig.createActionForm(this); - - // ISSUE: Should we check this call to put? - scope.put(formName, form); - - return form; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ContextWrapper.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ContextWrapper.java deleted file mode 100644 index 00029f13649..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ContextWrapper.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * $Id: ContextWrapper.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.contexts; - -import org.apache.commons.chain.Context; - -import java.util.Collection; -import java.util.Map; -import java.util.Set; - -/** - *

Provide a base class for any Context Implementation which is primarily - * intended for use in a subchain.

Classes which extend - * ContextWrapper may implement typesafe property methods which - * also leave their values in the underlying context.

- */ -public class ContextWrapper implements Context { - private Context base; - - /** - *

Instantiate object as a composite around the given Context.

- * - * @param context Context instance to wrap - */ - public ContextWrapper(Context context) { - this.base = context; - } - - /** - * Provide the underlying Context for this composite. - * - * @return The undelrying Context - */ - protected Context getBaseContext() { - return this.base; - } - - // ------------------------------- - // Map interface methods - // ------------------------------- - public Set entrySet() { - return this.base.entrySet(); - } - - public Set keySet() { - return this.base.keySet(); - } - - public Collection values() { - return this.base.values(); - } - - public void clear() { - this.base.clear(); - } - - public void putAll(Map map) { - // ISSUE: Should we check this call to putAll? - this.base.putAll(map); - } - - public Object remove(Object key) { - return this.base.remove(key); - } - - public Object put(Object key, Object value) { - // ISSUE: Should we check this call to put? - return this.base.put(key, value); - } - - public Object get(Object key) { - return this.base.get(key); - } - - public boolean containsValue(Object o) { - return this.base.containsValue(o); - } - - public boolean containsKey(Object o) { - return this.base.containsKey(o); - } - - public boolean isEmpty() { - return this.base.isEmpty(); - } - - public int size() { - return this.base.size(); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/MockActionContext.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/MockActionContext.java deleted file mode 100644 index 29a82b2d106..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/MockActionContext.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * $Id: MockActionContext.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.contexts; - -import java.util.HashMap; -import java.util.Map; - -// ISSUE: Are there any useful "assert" type methods we could add to this? - -/** - *

Implement ActionContext with empty maps for - * applicationScope, sessionScope, - * requestScope, and parameterMap properties.

- */ -public class MockActionContext extends ActionContextBase { - private Map applicationScope = new HashMap(); - private Map requestScope = new HashMap(); - private Map sessionScope = new HashMap(); - private Map parameterMap = new HashMap(); - - public Map getApplicationScope() { - return applicationScope; - } - - public void setApplicationScope(Map applicationScope) { - this.applicationScope = applicationScope; - } - - public Map getParameterMap() { - return parameterMap; - } - - public void setParameterMap(Map parameterMap) { - this.parameterMap = parameterMap; - } - - public Map getRequestScope() { - return requestScope; - } - - public void setRequestScope(Map requestScope) { - this.requestScope = requestScope; - } - - public Map getSessionScope() { - return sessionScope; - } - - public void setSessionScope(Map sessionScope) { - this.sessionScope = sessionScope; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ServletActionContext.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ServletActionContext.java deleted file mode 100644 index 9356a77bc0c..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/ServletActionContext.java +++ /dev/null @@ -1,251 +0,0 @@ -/* - * $Id: ServletActionContext.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.contexts; - -import org.apache.commons.chain.web.servlet.ServletWebContext; -import org.apache.struts.Globals; -import org.apache.struts.action.ActionMessages; -import org.apache.struts.action.ActionServlet; -import org.apache.struts.chain.Constants; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.util.MessageResources; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - *

Implement ActionContext interface while making Servlet API-specific - * values available.

- */ -public class ServletActionContext extends WebActionContext { - /** - *

Instantiate this composite by wrapping a ServletWebContext.

- * - * @param context The ServletWebContext to wrap - */ - public ServletActionContext(ServletWebContext context) { - super(context); - } - - /** - *

Instantiate this Context for a given ServletContext, - * HttpServletRequest, and HttpServletResponse.

- * - * @param context The instant ServletContext - * @param request The instant HttpServletRequest - * @param response The instant HttpServletResponse - */ - public ServletActionContext(ServletContext context, - HttpServletRequest request, HttpServletResponse response) { - this(new ServletWebContext(context, request, response)); - } - - /** - *

Provide the ServletWebContext for this composite.

- * - * @return Our ServletWebContext - */ - protected ServletWebContext servletWebContext() { - return (ServletWebContext) this.getBaseContext(); - } - - public void release() { - this.servletWebContext().release(); - super.release(); - } - - // ------------------------------- - // Servlet specific properties - // ------------------------------- - - /** - *

Return the ServletContext for this context.

- * - * @return Our ServletContext - */ - public ServletContext getContext() { - return servletWebContext().getContext(); - } - - /** - *

Return the HttpServletRequest for this context.

- * - * @return Our HttpServletRequest - */ - public HttpServletRequest getRequest() { - return servletWebContext().getRequest(); - } - - /** - *

Return the HttpServletResponse for this context.

- * - * @return Our HttpServletResponse - */ - public HttpServletResponse getResponse() { - return servletWebContext().getResponse(); - } - - /** - *

Return the ActionServlet for this context.

- * - * @return Our ActionServlet - */ - public ActionServlet getActionServlet() { - return (ActionServlet) this.get(Constants.ACTION_SERVLET_KEY); - } - - /** - *

Set the ActionServlet instance for this context.

- * - * @param servlet Our ActionServlet instance - */ - public void setActionServlet(ActionServlet servlet) { - this.put(Constants.ACTION_SERVLET_KEY, servlet); - } - - // ------------------------------- - // Servlet specific modifications to base properties. - // ------------------------------- - public void setActionConfig(ActionConfig actionConfig) { - super.setActionConfig(actionConfig); - this.getRequestScope().put(Globals.MAPPING_KEY, actionConfig); - - // ISSUE: Should we check this call to put? - } - - public MessageResources getMessageResources() { - return ((MessageResources) getRequest().getAttribute(Globals.MESSAGES_KEY)); - } - - // ISSUE: This method would probably be better handled by a "Struts" - // object which encapsulated the servler (Application) scope. - public MessageResources getMessageResources(String key) { - // Identify the current module - ServletContext context = getActionServlet().getServletContext(); - - // Return the requested message resources instance - return (MessageResources) context.getAttribute(key - + getModuleConfig().getPrefix()); - } - - public void setMessageResources(MessageResources resources) { - super.setMessageResources(resources); - this.getRequest().setAttribute(Globals.MESSAGES_KEY, resources); - } - - /** - *

Store the mesasage resources for the current module under the given - * request attribute key.

- * - * @param key Request attribute key - * @param resources Message resouces to store - */ - public void setMessageResources(String key, MessageResources resources) { - this.getRequest().setAttribute(key + getModuleConfig().getPrefix(), - resources); - } - - // ------------------------------- - // ActionMessage Processing - // ------------------------------- - public void saveErrors(ActionMessages errors) { - // Remove any error messages attribute if none are required - if ((errors == null) || errors.isEmpty()) { - getRequest().removeAttribute(Globals.ERROR_KEY); - - return; - } - - // Save the error messages we need - getRequest().setAttribute(Globals.ERROR_KEY, errors); - } - - public void saveMessages(ActionMessages messages) { - if ((messages == null) || messages.isEmpty()) { - getRequest().removeAttribute(Globals.MESSAGE_KEY); - - return; - } - - getRequest().setAttribute(Globals.MESSAGE_KEY, messages); - } - - public void addMessages(ActionMessages messages) { - if (messages == null) { - return; - } - - ActionMessages requestMessages = getMessages(); - - if (requestMessages == null) { - requestMessages = new ActionMessages(); - } - - requestMessages.add(messages); - saveMessages(requestMessages); - } - - public void addErrors(ActionMessages errors) { - if (errors == null) { - return; - } - - ActionMessages requestErrors = getErrors(); - - if (requestErrors == null) { - requestErrors = new ActionMessages(); - } - - requestErrors.add(errors); - saveErrors(requestErrors); - } - - public ActionMessages getErrors() { - return (ActionMessages) this.getRequest().getAttribute(Globals.ERROR_KEY); - } - - public ActionMessages getMessages() { - return (ActionMessages) this.getRequest().getAttribute(Globals.MESSAGE_KEY); - } - - // ------------------------------- - // Token Processing - // Implementing the servlet-aware versions by using the - // TokenProcessor class - // directly should ensure greater compatibility. - // ------------------------------- - public void saveToken() { - token.saveToken(getRequest()); - } - - public String generateToken() { - return token.generateToken(getRequest()); - } - - public boolean isTokenValid(boolean reset) { - return token.isTokenValid(getRequest(), reset); - } - - public void resetToken() { - token.resetToken(getRequest()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/WebActionContext.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/WebActionContext.java deleted file mode 100644 index 6d53f26c99d..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/WebActionContext.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * $Id: WebActionContext.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.contexts; - -import org.apache.commons.chain.web.WebContext; -import org.apache.struts.Globals; -import org.apache.struts.config.ModuleConfig; - -import java.util.Map; - -/** - *

Provide a Subclass of ActionContextBase which is understood to be - * wrapping an instance of org.apache.commons.chain.web.WebContext. - *

- */ -public class WebActionContext extends ActionContextBase { - /** - * Instantiate this composite by wrapping an instance of WebContext. - * - * @param context The WebContext to wrap - */ - public WebActionContext(WebContext context) { - super(context); - } - - /** - * Provide the wrapped WebContext for this composite. - * - * @return The wrapped WebContext - */ - protected WebContext webContext() { - return (WebContext) this.getBaseContext(); - } - - public void release() { - super.release(); - } - - // ------------------------------- - // WebContext property wrappers - // ------------------------------- - - /** - *

Return an immutable Map that maps header names to the first (or - * only) header value (as a String).

- * - * @return A immutable Map of web request header names - */ - public Map getHeader() { - return webContext().getHeader(); - } - - /** - *

Return an immutable Map that maps header names to the set of all - * values specified in the request (as a String array). Header names must - * be matched in a case-insensitive manner.

- * - * @return An immutable Map of web request header values - */ - public Map getHeaderValues() { - return webContext().getHeaderValues(); - } - - /** - *

Return an immutable Map that maps context application - * initialization parameters to their values.

- * - * @return An immutable Map of web context initialization parameters - */ - public Map getInitParam() { - return webContext().getInitParam(); - } - - /** - *

Return a map whose keys are String request parameter - * names and whose values are String values.

For - * parameters which were submitted with more than one value, only one - * value will be returned, as if one called - * ServletRequest.getParameter(String) - *

- * - * @return A map of web request parameters - */ - public Map getParam() { - return webContext().getParam(); - } - - /** - *

Return a map whose keys are String request parameter - * names and whose values are String[] values.

- * - * @return A map of web request parameter values (as an array) - */ - public Map getParamValues() { - return webContext().getParamValues(); - } - - public Map getApplicationScope() { - return webContext().getApplicationScope(); - } - - public Map getRequestScope() { - return webContext().getRequestScope(); - } - - public Map getParameterMap() { - return getParamValues(); - } - - public Map getSessionScope() { - return webContext().getSessionScope(); - } - - // ISSUE: AbstractSelectModule set the precedent of doing this at the - // "web context" level instead of the ServletWebContext level. - // Consider whether that's how we want to do it universally for other - // manipulations of the RequestScope or not... - public void setModuleConfig(ModuleConfig moduleConfig) { - super.setModuleConfig(moduleConfig); - this.getRequestScope().put(Globals.MODULE_KEY, moduleConfig); - } - - /** - * @see org.apache.struts.chain.contexts.ActionContext#getModuleConfig() - */ - public ModuleConfig getModuleConfig() { - ModuleConfig mc = super.getModuleConfig(); - - if (mc == null) { - mc = (ModuleConfig) this.getRequestScope().get(Globals.MODULE_KEY); - } - - return mc; - } - - // ISSUE: AbstractSelectModule set the precedent of doing this at the - // "web context" level instead of the ServletWebContext level. Consider - // whether that's how we want to do it universally for other manipulations - // of the RequestScope or not... - public void setCancelled(Boolean cancelled) { - super.setCancelled(cancelled); - - // historic semantics of "isCancelled" are to consider any non-null - // value in the request under Globals.CANCEL_KEY as "yes, this was - // cancelled." - if ((cancelled != null) && cancelled.booleanValue()) { - this.getRequestScope().put(Globals.CANCEL_KEY, cancelled); - } else { - this.getRequestScope().remove(Globals.CANCEL_KEY); - } - } - - public Boolean getCancelled() { - Boolean cancelled = super.getCancelled(); - - if (cancelled == null) { - cancelled = - (Boolean) this.getRequestScope().get(Globals.CANCEL_KEY); - } - - return cancelled; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/package.html b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/package.html deleted file mode 100644 index 629f6a5ac1a..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/contexts/package.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - -

This package provides objects that encapsulate access to -the request and session-scoped resources to service -command processing.

- - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/package.html b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/package.html deleted file mode 100644 index 4d7518c84e8..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/chain/package.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - -

Contains the new ComposableRequestProcessor -which was introduced in Struts 1.3.

- - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ActionConfig.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ActionConfig.java deleted file mode 100644 index 0ab92a820d0..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ActionConfig.java +++ /dev/null @@ -1,1288 +0,0 @@ -/* - * $Id: ActionConfig.java 480593 2006-11-29 15:17:52Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import org.apache.commons.beanutils.BeanUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.util.RequestUtils; - -import java.lang.reflect.InvocationTargetException; - -import java.util.ArrayList; -import java.util.HashMap; - -/** - *

A JavaBean representing the configuration information of an - * <action> element from a Struts module configuration - * file.

- * - * @version $Rev: 480593 $ $Date: 2006-11-29 16:17:52 +0100 (Wed, 29 Nov 2006) $ - * @since Struts 1.1 - */ -public class ActionConfig extends BaseConfig { - private static final Log log = LogFactory.getLog(ActionConfig.class); - - // ----------------------------------------------------- Instance Variables - - /** - *

The set of exception handling configurations for this action, if - * any, keyed by the type property.

- */ - protected HashMap exceptions = new HashMap(); - - /** - *

The set of local forward configurations for this action, if any, - * keyed by the name property.

- */ - protected HashMap forwards = new HashMap(); - - // ------------------------------------------------------------- Properties - - /** - *

The module configuration with which we are associated.

- */ - protected ModuleConfig moduleConfig = null; - - /** - *

The request-scope or session-scope attribute name under which our - * form bean is accessed, if it is different from the form bean's - * specified name.

- */ - protected String attribute = null; - - /** - *

The internal identification of this action mapping. Identifications are - * not inheritable and must be unique within a module.

- * - * @since Struts 1.3.6 - */ - protected String actionId = null; - - /** - *

The path of the ActionConfig that this object should inherit - * properties from.

- */ - protected String inherit = null; - - /** - * Indicates whether the "cancellable " property has been set or not. - */ - private boolean cancellableSet = false; - - /** - *

Can this Action be cancelled? [false]

By default, when an - * Action is cancelled, validation is bypassed and the Action should not - * execute the business operation. If a request tries to cancel an Action - * when cancellable is not set, a "InvalidCancelException" is thrown. - *

- */ - protected boolean cancellable = false; - - /** - *

Have the inheritance values for this class been applied?

- */ - protected boolean extensionProcessed = false; - - /** - *

Context-relative path of the web application resource that will - * process this request via RequestDispatcher.forward(), instead of - * instantiating and calling the Action class specified by - * "type". Exactly one of forward, include, or - * type must be specified.

- */ - protected String forward = null; - - /** - *

Context-relative path of the web application resource that will - * process this request via RequestDispatcher.include(), instead of - * instantiating and calling the Action class specified by - * "type". Exactly one of forward, include, or - * type must be specified.

- */ - protected String include = null; - - /** - *

Context-relative path of the input form to which control should be - * returned if a validation error is encountered. Required if "name" is - * specified and the input bean returns validation errors.

- */ - protected String input = null; - - /** - *

Fully qualified Java class name of the MultipartRequestHandler - * implementation class used to process multi-part request data for this - * Action.

- */ - protected String multipartClass = null; - - /** - *

Name of the form bean, if any, associated with this Action.

- */ - protected String name = null; - - /** - *

General purpose configuration parameter that can be used to pass - * extra information to the Action instance selected by this Action. - * Struts does not itself use this value in any way.

- */ - protected String parameter = null; - - /** - *

Context-relative path of the submitted request, starting with a - * slash ("/") character, and omitting any filename extension if extension - * mapping is being used.

- */ - protected String path = null; - - /** - *

Prefix used to match request parameter names to form bean property - * names, if any.

- */ - protected String prefix = null; - - /** - *

Comma-delimited list of security role names allowed to request this - * Action.

- */ - protected String roles = null; - - /** - *

The set of security role names used to authorize access to this - * Action, as an array for faster access.

- */ - protected String[] roleNames = new String[0]; - - /** - *

Identifier of the scope ("request" or "session") within which our - * form bean is accessed, if any.

- */ - protected String scope = "session"; - - /** - *

Suffix used to match request parameter names to form bean property - * names, if any.

- */ - protected String suffix = null; - - /** - *

Fully qualified Java class name of the Action class to - * be used to process requests for this mapping if the - * forward and include properties are not set. - * Exactly one of forward, include, or - * type must be specified. - */ - protected String type = null; - - /** - *

Indicates Action be configured as the default one for this module, - * when true. - */ - protected boolean unknown = false; - - /** - * Indicates whether the "validate" property has been set or not. - */ - private boolean validateSet = false; - - /** - *

Should the validate() method of the form bean - * associated with this action be called? - */ - protected boolean validate = true; - - /** - *

The name of a commons-chain command which should be - * executed as part of the processing of this action. - * - * @since Struts 1.3.0 - */ - protected String command = null; - - /** - *

The name of a commons-chain catalog in which - * command should be sought. If a command is - * defined and this property is undefined, the "default" catalog will be - * used. This is likely to be infrequently used after a future release of - * commons-chain supports a one-string expression of a - * catalog/chain combination. - * - * @since Struts 1.3.0 - */ - protected String catalog = null; - - /** - *

The internal name of this action mapping. If an action has a name, it may be used - * as a shortcut in a URI. For example, an action with an identification of "editPerson" - * may be internally forwarded as "editPerson?id=1" which will then resolve to the - * real URI path at execution time.

- * - * @return the actionId - * @since Struts 1.3.6 - */ - public String getActionId() { - return this.actionId; - } - - /** - *

The internal name of this action mapping. The name is not inheritable, - * may not contain a forward slash, and must be unique within a module.

- * - * @param actionId the action identifier - * @since Struts 1.3.6 - * @throws IllegalStateException if the configuration is frozen - * @throws IllegalArgumentException if the identifier contains a forward slash - */ - public void setActionId(String actionId) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - if ((actionId != null) && (actionId.indexOf("/") > -1)) { - throw new IllegalArgumentException("actionId '" + actionId + "' may not contain a forward slash"); - } - - this.actionId = actionId; - } - - /** - *

The module configuration with which we are associated. - */ - public ModuleConfig getModuleConfig() { - return (this.moduleConfig); - } - - /** - *

The module configuration with which we are associated. - */ - public void setModuleConfig(ModuleConfig moduleConfig) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.moduleConfig = moduleConfig; - } - - /** - *

Returns the request-scope or session-scope attribute name under - * which our form bean is accessed, if it is different from the form - * bean's specified name. - * - * @return attribute name under which our form bean is accessed. - */ - public String getAttribute() { - if (this.attribute == null) { - return (this.name); - } else { - return (this.attribute); - } - } - - /** - *

Set the request-scope or session-scope attribute name under which - * our form bean is accessed, if it is different from the form bean's - * specified name. - * - * @param attribute the request-scope or session-scope attribute name - * under which our form bean is access. - */ - public void setAttribute(String attribute) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.attribute = attribute; - } - - /** - *

Accessor for cancellable property

- * - * @return True if Action can be cancelled - */ - public boolean getCancellable() { - return (this.cancellable); - } - - /** - *

Mutator for for cancellable property

- * - * @param cancellable - */ - public void setCancellable(boolean cancellable) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.cancellable = cancellable; - this.cancellableSet = true; - } - - /** - *

Returns the path of the ActionConfig that this object should inherit - * properties from.

- * - * @return the path of the ActionConfig that this object should inherit - * properties from. - */ - public String getExtends() { - return (this.inherit); - } - - /** - *

Set the path of the ActionConfig that this object should inherit - * properties from.

- * - * @param inherit the path of the ActionConfig that this object should - * inherit properties from. - */ - public void setExtends(String inherit) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.inherit = inherit; - } - - public boolean isExtensionProcessed() { - return extensionProcessed; - } - - /** - *

Returns context-relative path of the web application resource that - * will process this request. - * - * @return context-relative path of the web application resource that will - * process this request. - */ - public String getForward() { - return (this.forward); - } - - /** - *

Set the context-relative path of the web application resource that - * will process this request. Exactly one of forward, - * include, or type must be specified. - * - * @param forward context-relative path of the web application resource - * that will process this request. - */ - public void setForward(String forward) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.forward = forward; - } - - /** - *

Context-relative path of the web application resource that will - * process this request. - * - * @return Context-relative path of the web application resource that will - * process this request. - */ - public String getInclude() { - return (this.include); - } - - /** - *

Set context-relative path of the web application resource that will - * process this request. Exactly one of forward, - * include, or type must be specified. - * - * @param include context-relative path of the web application resource - * that will process this request. - */ - public void setInclude(String include) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.include = include; - } - - /** - *

Get the context-relative path of the input form to which control - * should be returned if a validation error is encountered. - * - * @return context-relative path of the input form to which control should - * be returned if a validation error is encountered. - */ - public String getInput() { - return (this.input); - } - - /** - *

Set the context-relative path of the input form to which control - * should be returned if a validation error is encountered. Required if - * "name" is specified and the input bean returns validation errors. - * - * @param input context-relative path of the input form to which control - * should be returned if a validation error is encountered. - */ - public void setInput(String input) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.input = input; - } - - /** - *

Return the fully qualified Java class name of the - * MultipartRequestHandler implementation class used to - * process multi-part request data for this Action. - */ - public String getMultipartClass() { - return (this.multipartClass); - } - - /** - *

Set the fully qualified Java class name of the - * MultipartRequestHandler implementation class used to - * process multi-part request data for this Action. - * - * @param multipartClass fully qualified class name of the - * MultipartRequestHandler - * implementation class. - */ - public void setMultipartClass(String multipartClass) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.multipartClass = multipartClass; - } - - /** - *

Return name of the form bean, if any, associated with this Action. - */ - public String getName() { - return (this.name); - } - - /** - * @param name name of the form bean associated with this Action. - */ - public void setName(String name) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.name = name; - } - - /** - *

Return general purpose configuration parameter that can be used to - * pass extra information to the Action instance selected by this Action. - * Struts does not itself use this value in any way. - */ - public String getParameter() { - return (this.parameter); - } - - /** - *

General purpose configuration parameter that can be used to pass - * extra information to the Action instance selected by this Action. - * Struts does not itself use this value in any way. - * - * @param parameter General purpose configuration parameter. - */ - public void setParameter(String parameter) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.parameter = parameter; - } - - /** - *

Return context-relative path of the submitted request, starting - * with a slash ("/") character, and omitting any filename extension if - * extension mapping is being used. - */ - public String getPath() { - return (this.path); - } - - /** - *

Set context-relative path of the submitted request, starting with a - * slash ("/") character, and omitting any filename extension if extension - * mapping is being used. - * - * @param path context-relative path of the submitted request. - */ - public void setPath(String path) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.path = path; - } - - /** - *

Retruns prefix used to match request parameter names to form bean - * property names, if any. - */ - public String getPrefix() { - return (this.prefix); - } - - /** - * @param prefix Prefix used to match request parameter names to form bean - * property names, if any. - */ - public void setPrefix(String prefix) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.prefix = prefix; - } - - public String getRoles() { - return (this.roles); - } - - public void setRoles(String roles) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.roles = roles; - - if (roles == null) { - roleNames = new String[0]; - - return; - } - - ArrayList list = new ArrayList(); - - while (true) { - int comma = roles.indexOf(','); - - if (comma < 0) { - break; - } - - list.add(roles.substring(0, comma).trim()); - roles = roles.substring(comma + 1); - } - - roles = roles.trim(); - - if (roles.length() > 0) { - list.add(roles); - } - - roleNames = (String[]) list.toArray(new String[list.size()]); - } - - /** - *

Get array of security role names used to authorize access to this - * Action. - */ - public String[] getRoleNames() { - return (this.roleNames); - } - - /** - *

Get the scope ("request" or "session") within which our form bean - * is accessed, if any. - */ - public String getScope() { - return (this.scope); - } - - /** - * @param scope scope ("request" or "session") within which our form bean - * is accessed, if any. - */ - public void setScope(String scope) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.scope = scope; - } - - /** - *

Return suffix used to match request parameter names to form bean - * property names, if any.

- */ - public String getSuffix() { - return (this.suffix); - } - - /** - * @param suffix Suffix used to match request parameter names to form bean - * property names, if any. - */ - public void setSuffix(String suffix) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.suffix = suffix; - } - - public String getType() { - return (this.type); - } - - public void setType(String type) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.type = type; - } - - /** - *

Determine whether Action is configured as the default one for this - * module.

- */ - public boolean getUnknown() { - return (this.unknown); - } - - /** - * @param unknown Indicates Action is configured as the default one for - * this module, when true. - */ - public void setUnknown(boolean unknown) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.unknown = unknown; - } - - public boolean getValidate() { - return (this.validate); - } - - public void setValidate(boolean validate) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.validate = validate; - this.validateSet = true; - } - - /** - *

Get the name of a commons-chain command which should - * be executed as part of the processing of this action.

- * - * @return name of a commons-chain command which should be - * executed as part of the processing of this action. - * @since Struts 1.3.0 - */ - public String getCommand() { - return (this.command); - } - - /** - *

Get the name of a commons-chain catalog in which a - * specified command should be sought. This is likely to be infrequently - * used after a future release of commons-chain supports a - * one-string expression of a catalog/chain combination.

- * - * @return name of a commons-chain catalog in which a - * specified command should be sought. - * @since Struts 1.3.0 - */ - public String getCatalog() { - return (this.catalog); - } - - /** - *

Set the name of a commons-chain command which should - * be executed as part of the processing of this action.

- * - * @param command name of a commons-chain command which - * should be executed as part of the processing of this - * action. - * @since Struts 1.3.0 - */ - public void setCommand(String command) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.command = command; - } - - /** - *

Set the name of a commons-chain catalog in which a - * specified command should be sought. This is likely to be infrequently - * used after a future release of commons-chain supports a - * one-string expression of a catalog/chain combination.

- * - * @param catalog name of a commons-chain catalog in which a - * specified command should be sought. - * @since Struts 1.3.0 - */ - public void setCatalog(String catalog) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.catalog = catalog; - } - - // ------------------------------------------------------ Protected Methods - - /** - *

Traces the hierarchy of this object to check if any of the ancestors - * is extending this instance.

- * - * @param moduleConfig The configuration for the module being configured. - * @return true if circular inheritance was detected. - */ - protected boolean checkCircularInheritance(ModuleConfig moduleConfig) { - String ancestorPath = getExtends(); - - while (ancestorPath != null) { - // check if we have the same path as an ancestor - if (getPath().equals(ancestorPath)) { - return true; - } - - // get our ancestor's ancestor - ActionConfig ancestor = moduleConfig.findActionConfig(ancestorPath); - - if (ancestor != null) { - ancestorPath = ancestor.getExtends(); - } else { - ancestorPath = null; - } - } - - return false; - } - - /** - *

Compare the exception handlers of this action with that of the given - * and copy those that are not present.

- * - * @param baseConfig The action config to copy handlers from. - * @see #inheritFrom(ActionConfig) - */ - protected void inheritExceptionHandlers(ActionConfig baseConfig) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException, InvocationTargetException { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - // Inherit exception handler configs - ExceptionConfig[] baseHandlers = baseConfig.findExceptionConfigs(); - - for (int i = 0; i < baseHandlers.length; i++) { - ExceptionConfig baseHandler = baseHandlers[i]; - - // Do we have this handler? - ExceptionConfig copy = - this.findExceptionConfig(baseHandler.getType()); - - if (copy == null) { - // We don't have this, so let's copy it - copy = - (ExceptionConfig) RequestUtils.applicationInstance(baseHandler.getClass() - .getName()); - - BeanUtils.copyProperties(copy, baseHandler); - this.addExceptionConfig(copy); - copy.setProperties(baseHandler.copyProperties()); - } else { - // process any extension that this config might have - copy.processExtends(getModuleConfig(), this); - } - } - } - - /** - *

Compare the forwards of this action with that of the given and copy - * those that are not present.

- * - * @param baseConfig The action config to copy forwards from. - * @see #inheritFrom(ActionConfig) - */ - protected void inheritForwards(ActionConfig baseConfig) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException, InvocationTargetException { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - // Inherit forward configs - ForwardConfig[] baseForwards = baseConfig.findForwardConfigs(); - - for (int i = 0; i < baseForwards.length; i++) { - ForwardConfig baseForward = baseForwards[i]; - - // Do we have this forward? - ForwardConfig copy = this.findForwardConfig(baseForward.getName()); - - if (copy == null) { - // We don't have this, so let's copy it - copy = - (ForwardConfig) RequestUtils.applicationInstance(baseForward.getClass() - .getName()); - BeanUtils.copyProperties(copy, baseForward); - - this.addForwardConfig(copy); - copy.setProperties(baseForward.copyProperties()); - } else { - // process any extension for this forward - copy.processExtends(getModuleConfig(), this); - } - } - } - - // --------------------------------------------------------- Public Methods - - /** - *

Add a new ExceptionConfig instance to the set - * associated with this action.

- * - * @param config The new configuration instance to be added - * @throws IllegalStateException if this module configuration has been - * frozen - */ - public void addExceptionConfig(ExceptionConfig config) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - exceptions.put(config.getType(), config); - } - - /** - *

Add a new ForwardConfig instance to the set of global - * forwards associated with this action.

- * - * @param config The new configuration instance to be added - * @throws IllegalStateException if this module configuration has been - * frozen - */ - public void addForwardConfig(ForwardConfig config) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - forwards.put(config.getName(), config); - } - - /** - *

Return the exception configuration for the specified type, if any; - * otherwise return null.

- * - * @param type Exception class name to find a configuration for - */ - public ExceptionConfig findExceptionConfig(String type) { - return ((ExceptionConfig) exceptions.get(type)); - } - - /** - *

Return the exception configurations for this action. If there are - * none, a zero-length array is returned.

- */ - public ExceptionConfig[] findExceptionConfigs() { - ExceptionConfig[] results = new ExceptionConfig[exceptions.size()]; - - return ((ExceptionConfig[]) exceptions.values().toArray(results)); - } - - /** - *

Find and return the ExceptionConfig instance defining - * how Exceptions of the specified type should be handled. - * This is performed by checking local and then global configurations for - * the specified exception's class, and then looking up the superclass - * chain (again checking local and then global configurations). If no - * handler configuration can be found, return null.

- * - *

Introduced in ActionMapping in Struts 1.1, but pushed - * up to ActionConfig in Struts 1.2.0.

- * - * @param type Exception class for which to find a handler - * @since Struts 1.2.0 - */ - public ExceptionConfig findException(Class type) { - // Check through the entire superclass hierarchy as needed - ExceptionConfig config; - - while (true) { - // Check for a locally defined handler - String name = type.getName(); - - log.debug("findException: look locally for " + name); - config = findExceptionConfig(name); - - if (config != null) { - return (config); - } - - // Check for a globally defined handler - log.debug("findException: look globally for " + name); - config = getModuleConfig().findExceptionConfig(name); - - if (config != null) { - return (config); - } - - // Loop again for our superclass (if any) - type = type.getSuperclass(); - - if (type == null) { - break; - } - } - - return (null); // No handler has been configured - } - - /** - *

Return the forward configuration for the specified key, if any; - * otherwise return null.

- * - * @param name Name of the forward configuration to return - */ - public ForwardConfig findForwardConfig(String name) { - return ((ForwardConfig) forwards.get(name)); - } - - /** - *

Return all forward configurations for this module. If there are - * none, a zero-length array is returned.

- */ - public ForwardConfig[] findForwardConfigs() { - ForwardConfig[] results = new ForwardConfig[forwards.size()]; - - return ((ForwardConfig[]) forwards.values().toArray(results)); - } - - /** - *

Freeze the configuration of this action.

- */ - public void freeze() { - super.freeze(); - - ExceptionConfig[] econfigs = findExceptionConfigs(); - - for (int i = 0; i < econfigs.length; i++) { - econfigs[i].freeze(); - } - - ForwardConfig[] fconfigs = findForwardConfigs(); - - for (int i = 0; i < fconfigs.length; i++) { - fconfigs[i].freeze(); - } - } - - /** - *

Inherit values that have not been overridden from the provided - * config object. Subclasses overriding this method should verify that - * the given parameter is of a class that contains a property it is trying - * to inherit:

- * - *
-     * if (config instanceof MyCustomConfig) {
-     *     MyCustomConfig myConfig =
-     *         (MyCustomConfig) config;
-     *
-     *     if (getMyCustomProp() == null) {
-     *         setMyCustomProp(myConfig.getMyCustomProp());
-     *     }
-     * }
-     * 
- * - *

If the given config is extending another object, those - * extensions should be resolved before it's used as a parameter to this - * method.

- * - * @param config The object that this instance will be inheriting its - * values from. - * @see #processExtends(ModuleConfig) - */ - public void inheritFrom(ActionConfig config) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException, InvocationTargetException { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - // Inherit values that have not been overridden - if (getAttribute() == null) { - setAttribute(config.getAttribute()); - } - - if (!cancellableSet) { - setCancellable(config.getCancellable()); - } - - if (getCatalog() == null) { - setCatalog(config.getCatalog()); - } - - if (getCommand() == null) { - setCommand(config.getCommand()); - } - - if (getForward() == null) { - setForward(config.getForward()); - } - - if (getInclude() == null) { - setInclude(config.getInclude()); - } - - if (getInput() == null) { - setInput(config.getInput()); - } - - if (getMultipartClass() == null) { - setMultipartClass(config.getMultipartClass()); - } - - if (getName() == null) { - setName(config.getName()); - } - - if (getParameter() == null) { - setParameter(config.getParameter()); - } - - if (getPath() == null) { - setPath(config.getPath()); - } - - if (getPrefix() == null) { - setPrefix(config.getPrefix()); - } - - if (getRoles() == null) { - setRoles(config.getRoles()); - } - - if (getScope().equals("session")) { - setScope(config.getScope()); - } - - if (getSuffix() == null) { - setSuffix(config.getSuffix()); - } - - if (getType() == null) { - setType(config.getType()); - } - - if (!getUnknown()) { - setUnknown(config.getUnknown()); - } - - if (!validateSet) { - setValidate(config.getValidate()); - } - - inheritExceptionHandlers(config); - inheritForwards(config); - inheritProperties(config); - } - - /** - *

Inherit configuration information from the ActionConfig that this - * instance is extending. This method verifies that any action config - * object that it inherits from has also had its processExtends() method - * called.

- * - * @param moduleConfig The {@link ModuleConfig} that this bean is from. - * @see #inheritFrom(ActionConfig) - */ - public void processExtends(ModuleConfig moduleConfig) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException, InvocationTargetException { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - String ancestorPath = getExtends(); - - if ((!extensionProcessed) && (ancestorPath != null)) { - ActionConfig baseConfig = - moduleConfig.findActionConfig(ancestorPath); - - if (baseConfig == null) { - throw new NullPointerException("Unable to find " - + "action for '" + ancestorPath + "' to extend."); - } - - // Check against circular inheritance and make sure the base - // config's own extends has been processed already - if (checkCircularInheritance(moduleConfig)) { - throw new IllegalArgumentException( - "Circular inheritance detected for action " + getPath()); - } - - // Make sure the ancestor's own extension has been processed. - if (!baseConfig.isExtensionProcessed()) { - baseConfig.processExtends(moduleConfig); - } - - // Copy values from the base config - inheritFrom(baseConfig); - } - - extensionProcessed = true; - } - - /** - *

Remove the specified exception configuration instance.

- * - * @param config ExceptionConfig instance to be removed - * @throws IllegalStateException if this module configuration has been - * frozen - */ - public void removeExceptionConfig(ExceptionConfig config) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - exceptions.remove(config.getType()); - } - - /** - *

Remove the specified forward configuration instance.

- * - * @param config ForwardConfig instance to be removed - * @throws IllegalStateException if this module configuration has been - * frozen - */ - public void removeForwardConfig(ForwardConfig config) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - forwards.remove(config.getName()); - } - - /** - *

Return a String representation of this object.

- */ - public String toString() { - StringBuffer sb = new StringBuffer("ActionConfig["); - - sb.append("cancellable="); - sb.append(cancellable); - - sb.append(",path="); - sb.append(path); - - sb.append(",validate="); - sb.append(validate); - - if (actionId != null) { - sb.append(",actionId="); - sb.append(actionId); - } - - if (attribute != null) { - sb.append(",attribute="); - sb.append(attribute); - } - - if (catalog != null) { - sb.append(",catalog="); - sb.append(catalog); - } - - if (command != null) { - sb.append(",command="); - sb.append(command); - } - - if (inherit != null) { - sb.append(",extends="); - sb.append(inherit); - } - - if (forward != null) { - sb.append(",forward="); - sb.append(forward); - } - - if (include != null) { - sb.append(",include="); - sb.append(include); - } - - if (input != null) { - sb.append(",input="); - sb.append(input); - } - - if (multipartClass != null) { - sb.append(",multipartClass="); - sb.append(multipartClass); - } - - if (name != null) { - sb.append(",name="); - sb.append(name); - } - - if (parameter != null) { - sb.append(",parameter="); - sb.append(parameter); - } - - if (prefix != null) { - sb.append(",prefix="); - sb.append(prefix); - } - - if (roles != null) { - sb.append(",roles="); - sb.append(roles); - } - - if (scope != null) { - sb.append(",scope="); - sb.append(scope); - } - - if (suffix != null) { - sb.append(",suffix="); - sb.append(suffix); - } - - if (type != null) { - sb.append(",type="); - sb.append(type); - } - - return (sb.toString()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ActionConfigMatcher.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ActionConfigMatcher.java deleted file mode 100755 index a1af2db44e2..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ActionConfigMatcher.java +++ /dev/null @@ -1,314 +0,0 @@ -/* - * $Id: ActionConfigMatcher.java 530002 2007-04-18 12:35:44Z pbenedict $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import org.apache.commons.beanutils.BeanUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.action.ActionForward; -import org.apache.struts.util.WildcardHelper; - -import java.io.Serializable; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Properties; - -/** - *

Matches paths against pre-compiled wildcard expressions pulled from - * action configs. It uses the wildcard matcher from the Apache Cocoon - * project. Patterns will be matched in the order they exist in the Struts - * config file. The last match wins, so more specific patterns should be - * defined after less specific patterns. - * - * @since Struts 1.2 - */ -public class ActionConfigMatcher implements Serializable { - /** - *

The logging instance

- */ - private static final Log log = LogFactory.getLog(ActionConfigMatcher.class); - - /** - *

Handles all wildcard pattern matching.

- */ - private static final WildcardHelper wildcard = new WildcardHelper(); - - /** - *

The compiled paths and their associated ActionConfig's

- */ - private List compiledPaths; - - /** - *

Finds and precompiles the wildcard patterns from the ActionConfig - * "path" attributes. ActionConfig's will be evaluated in the order they - * exist in the Struts config file. Only paths that actually contain a - * wildcard will be compiled.

- * - * @param configs An array of ActionConfig's to process - */ - public ActionConfigMatcher(ActionConfig[] configs) { - compiledPaths = new ArrayList(); - - int[] pattern; - String path; - - for (int x = 0; x < configs.length; x++) { - path = configs[x].getPath(); - - if ((path != null) && (path.indexOf('*') > -1)) { - if ((path.length() > 0) && (path.charAt(0) == '/')) { - path = path.substring(1); - } - - if (log.isDebugEnabled()) { - log.debug("Compiling action config path '" + path + "'"); - } - - pattern = wildcard.compilePattern(path); - compiledPaths.add(new Mapping(pattern, configs[x])); - } - } - } - - /** - *

Matches the path against the compiled wildcard patterns.

- * - * @param path The portion of the request URI for selecting a config. - * @return The action config if matched, else null - */ - public ActionConfig match(String path) { - ActionConfig config = null; - - if (compiledPaths.size() > 0) { - if (log.isDebugEnabled()) { - log.debug("Attempting to match '" + path - + "' to a wildcard pattern"); - } - - if ((path.length() > 0) && (path.charAt(0) == '/')) { - path = path.substring(1); - } - - Mapping m; - HashMap vars = new HashMap(); - - for (Iterator i = compiledPaths.iterator(); i.hasNext();) { - m = (Mapping) i.next(); - - if (wildcard.match(vars, path, m.getPattern())) { - if (log.isDebugEnabled()) { - log.debug("Path matches pattern '" - + m.getActionConfig().getPath() + "'"); - } - - config = - convertActionConfig(path, - (ActionConfig) m.getActionConfig(), vars); - } - } - } - - return config; - } - - /** - *

Clones the ActionConfig and its children, replacing various - * properties with the values of the wildcard-matched strings.

- * - * @param path The requested path - * @param orig The original ActionConfig - * @param vars A Map of wildcard-matched strings - * @return A cloned ActionConfig with appropriate properties replaced with - * wildcard-matched values - */ - protected ActionConfig convertActionConfig(String path, ActionConfig orig, - Map vars) { - ActionConfig config = null; - - try { - config = (ActionConfig) BeanUtils.cloneBean(orig); - } catch (Exception ex) { - log.warn("Unable to clone action config, recommend not using " - + "wildcards", ex); - - return null; - } - - config.setName(convertParam(orig.getName(), vars)); - - if ((path.length() == 0) || (path.charAt(0) != '/')) { - path = "/" + path; - } - - config.setPath(path); - config.setType(convertParam(orig.getType(), vars)); - config.setRoles(convertParam(orig.getRoles(), vars)); - config.setParameter(convertParam(orig.getParameter(), vars)); - config.setAttribute(convertParam(orig.getAttribute(), vars)); - config.setForward(convertParam(orig.getForward(), vars)); - config.setInclude(convertParam(orig.getInclude(), vars)); - config.setInput(convertParam(orig.getInput(), vars)); - config.setCatalog(convertParam(orig.getCatalog(), vars)); - config.setCommand(convertParam(orig.getCommand(), vars)); - config.setMultipartClass(convertParam(orig.getMultipartClass(), vars)); - config.setPrefix(convertParam(orig.getPrefix(), vars)); - config.setSuffix(convertParam(orig.getSuffix(), vars)); - - ForwardConfig[] fConfigs = orig.findForwardConfigs(); - ForwardConfig cfg; - - for (int x = 0; x < fConfigs.length; x++) { - try { - cfg = (ActionForward) BeanUtils.cloneBean(fConfigs[x]); - } catch (Exception ex) { - log.warn("Unable to clone action config, recommend not using " - + "wildcards", ex); - return null; - } - cfg.setName(fConfigs[x].getName()); - cfg.setPath(convertParam(fConfigs[x].getPath(), vars)); - cfg.setRedirect(fConfigs[x].getRedirect()); - cfg.setCommand(convertParam(fConfigs[x].getCommand(), vars)); - cfg.setCatalog(convertParam(fConfigs[x].getCatalog(), vars)); - cfg.setModule(convertParam(fConfigs[x].getModule(), vars)); - - replaceProperties(fConfigs[x].getProperties(), cfg.getProperties(), - vars); - - config.removeForwardConfig(fConfigs[x]); - config.addForwardConfig(cfg); - } - - replaceProperties(orig.getProperties(), config.getProperties(), vars); - - ExceptionConfig[] exConfigs = orig.findExceptionConfigs(); - - for (int x = 0; x < exConfigs.length; x++) { - config.addExceptionConfig(exConfigs[x]); - } - - config.freeze(); - - return config; - } - - /** - *

Replaces placeholders from one Properties values set to another. - *

- * - * @param orig The original properties set with placehold values - * @param props The target properties to store the processed values - * @param vars A Map of wildcard-matched strings - */ - protected void replaceProperties(Properties orig, Properties props, Map vars) { - Map.Entry entry = null; - - for (Iterator i = orig.entrySet().iterator(); i.hasNext();) { - entry = (Map.Entry) i.next(); - props.setProperty((String) entry.getKey(), - convertParam((String) entry.getValue(), vars)); - } - } - - /** - *

Inserts into a value wildcard-matched strings where specified. - *

- * - * @param val The value to convert - * @param vars A Map of wildcard-matched strings - * @return The new value - */ - protected String convertParam(String val, Map vars) { - if (val == null) { - return null; - } else if (val.indexOf("{") == -1) { - return val; - } - - Map.Entry entry; - StringBuffer key = new StringBuffer("{0}"); - StringBuffer ret = new StringBuffer(val); - String keyTmp; - int x; - - for (Iterator i = vars.entrySet().iterator(); i.hasNext();) { - entry = (Map.Entry) i.next(); - key.setCharAt(1, ((String) entry.getKey()).charAt(0)); - keyTmp = key.toString(); - - // Replace all instances of the placeholder - while ((x = ret.toString().indexOf(keyTmp)) > -1) { - ret.replace(x, x + 3, (String) entry.getValue()); - } - } - - return ret.toString(); - } - - /** - *

Stores a compiled wildcard pattern and the ActionConfig it came - * from.

- */ - private class Mapping implements Serializable { - /** - *

The compiled pattern.

- */ - private int[] pattern; - - /** - *

The original ActionConfig.

- */ - private ActionConfig config; - - /** - *

Contructs a read-only Mapping instance.

- * - * @param pattern The compiled pattern - * @param config The original ActionConfig - */ - public Mapping(int[] pattern, ActionConfig config) { - this.pattern = pattern; - this.config = config; - } - - /** - *

Gets the compiled wildcard pattern.

- * - * @return The compiled pattern - */ - public int[] getPattern() { - return this.pattern; - } - - /** - *

Gets the ActionConfig that contains the pattern.

- * - * @return The associated ActionConfig - */ - public ActionConfig getActionConfig() { - return this.config; - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/BaseConfig.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/BaseConfig.java deleted file mode 100644 index 52ca3b338a8..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/BaseConfig.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * $Id: BaseConfig.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import java.io.Serializable; - -import java.util.Enumeration; -import java.util.Properties; - -/** - *

A abstract base class for all config classes. Provide basic support - * for arbitrary properties

- * - * @since Struts 1.3 - */ -public abstract class BaseConfig implements Serializable { - /** - * Indicates if configuration of this component been completed. TODO - * change protected to private and use methods provided by extenders? - */ - protected boolean configured = false; - - /** - * A map of arbitrary properties configured for this component. - * - * @since Struts 1.3 - */ - private Properties properties = new Properties(); - - /** - * Freeze the configuration of this action. - */ - public void freeze() { - configured = true; - } - - /** - * Throw IllegalStateException if configuration is frozen. - * - * @throws IllegalStateException if configuration is frozen - */ - public void throwIfConfigured() { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - } - - /** - *

Set an arbitary key/value pair which can be retrieved by this - * config class. This facility should eliminate many use cases for - * subclassing *Config classes by providing a mechanism to - * pass any amount of arbitrary configuration information into an config - * class.

This method must not be called after configuration is - * complete, or an IllegalStateException will be thrown.

- * - *

Example - *

-     * <action path="/example" type="com.example.MyAction">
-     *    <set-property key="foo" property="bar" />
-     * </action>
-     * 
- *

- * - * @param key the key by which this value will be retrieved - * @param value the value to store with the supplied key - * @throws IllegalStateException if this module configuration has been - * frozen - * @since Struts 1.3 - */ - public void setProperty(String key, String value) { - throwIfConfigured(); - properties.setProperty(key, value); - } - - /** - * Return the property-value for the specified key, if any; otherwise - * return null. - * - * @param key a key specified in the struts-config file - * @return the value stored with the supplied key - * @since Struts 1.3 - */ - public String getProperty(String key) { - return properties.getProperty(key); - } - - /** - *

Return the entire set of properties configured for this object. At - * this time, this only needs to be exposed to support inheritance, so - * choosing a conservative access modifier ("protected").

- * - * @return set of properties configured for this object - */ - protected Properties getProperties() { - return this.properties; - } - - /** - * Set the entire set of properties configured for this object. At this - * time, this only needs to be exposed to support inheritance, so choosing - * a conservative access modifier ("protected"). - */ - protected void setProperties(Properties properties) { - this.properties = properties; - } - - /** - *

Compare the properties of this config with that of the given and - * copy those that are not present. This method is used by subclasses - * that support configuration inheritance.

- * - * @param baseConfig The config object to copy properties from. - */ - protected void inheritProperties(BaseConfig baseConfig) { - throwIfConfigured(); - - // Inherit forward properties - Properties baseProperties = baseConfig.getProperties(); - Enumeration keys = baseProperties.propertyNames(); - - while (keys.hasMoreElements()) { - String key = (String) keys.nextElement(); - - // Check if we have this property before copying it - String value = this.getProperty(key); - - if (value == null) { - value = baseProperties.getProperty(key); - setProperty(key, value); - } - } - } - - /** - *

Return a copy of the properties held by this object.

- */ - protected Properties copyProperties() { - Properties copy = new Properties(); - - Enumeration keys = properties.propertyNames(); - - while (keys.hasMoreElements()) { - String key = (String) keys.nextElement(); - - copy.setProperty(key, properties.getProperty(key)); - } - - return copy; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ConfigHelper.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ConfigHelper.java deleted file mode 100644 index 26eab9cf8e2..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ConfigHelper.java +++ /dev/null @@ -1,579 +0,0 @@ -/* - * $Id: ConfigHelper.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import org.apache.struts.Globals; -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.ActionFormBean; -import org.apache.struts.action.ActionForward; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.action.ActionMessages; -import org.apache.struts.upload.MultipartRequestWrapper; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.RequestUtils; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -/** - *

NOTE: THIS CLASS IS UNDER ACTIVE DEVELOPMENT. THE CURRENT CODE IS - * WRITTEN FOR CLARITY NOT EFFICIENCY. NOT EVERY API FUNCTION HAS BEEN - * IMPLEMENTED YET.

A helper object to expose the Struts shared - * resources, which are be stored in the application, session, or request - * contexts, as appropriate.

An instance should be created for each - * request processed. The methods which return resources from the request or - * session contexts are not thread-safe.

Provided for use by other - * servlets in the application so they can easily access the Struts shared - * resources.

The resources are stored under attributes in the - * application, session, or request contexts.

The ActionConfig methods - * simply return the resources from under the context and key used by the - * Struts ActionServlet when the resources are created.

- * - * @version $Rev: 471754 $ $Date: 2005-05-14 02:09:06 -0400 (Sat, 14 May 2005) - * $ - * @since Struts 1.1 - */ -public class ConfigHelper implements ConfigHelperInterface { - // -------------------------------------------------------- Properites - - /** - *

The application associated with this instance.

- */ - private ServletContext application = null; - - /** - *

The session associated with this instance.

- */ - private HttpSession session = null; - - /** - *

The request associated with this instance.

- */ - private HttpServletRequest request = null; - - /** - *

The response associated with this instance.

- */ - private HttpServletResponse response = null; - - /** - *

The forward associated with this instance.

- */ - private ActionForward forward = null; - - public ConfigHelper() { - super(); - } - - public ConfigHelper(ServletContext application, HttpServletRequest request, - HttpServletResponse response) { - super(); - this.setResources(application, request, response); - } - - /** - *

Set the application associated with this instance. - * [servlet.getServletContext()]

- */ - public void setApplication(ServletContext application) { - this.application = application; - } - - /** - *

Set the session associated with this instance.

- */ - public void setSession(HttpSession session) { - this.session = session; - } - - /** - *

Set the request associated with this object. Session object is also - * set or cleared.

- */ - public void setRequest(HttpServletRequest request) { - this.request = request; - - if (this.request == null) { - setSession(null); - } else { - setSession(this.request.getSession()); - } - } - - /** - *

Set the response associated with this isntance. Session object is - * also set or cleared.

- */ - public void setResponse(HttpServletResponse response) { - this.response = response; - } - - /** - * Set the forward associated with this instance. - */ - public void setForward(ActionForward forward) { - this.forward = forward; - } - - /** - *

Set the application and request for this object instance. The - * ServletContext can be set by any servlet in the application. The - * request should be the instant request. Most of the other methods - * retrieve their own objects by reference to the application, request, or - * session attributes. Do not call other methods without setting these - * first! This is also called by the convenience constructor.

- * - * @param application - The associated ServletContext. - * @param request - The associated HTTP request. - * @param response - The associated HTTP response. - */ - public void setResources(ServletContext application, - HttpServletRequest request, HttpServletResponse response) { - setApplication(application); - setRequest(request); - setResponse(response); - } - - // ------------------------------------------------ Application Context - public ActionMessages getActionMessages() { - if (this.application == null) { - return null; - } - - return (ActionMessages) this.application.getAttribute(Globals.MESSAGE_KEY); - } - - /** - *

The application resources for this application.

- */ - public MessageResources getMessageResources() { - if (this.application == null) { - return null; - } - - return (MessageResources) this.application.getAttribute(Globals.MESSAGES_KEY); - } - - /** - *

The path-mapped pattern (/action/*) or extension - * mapped pattern ((*.do) used to determine our Action URIs - * in this application.

- */ - public String getServletMapping() { - if (this.application == null) { - return null; - } - - return (String) this.application.getAttribute(Globals.SERVLET_KEY); - } - - // ---------------------------------------------------- Session Context - - /** - *

The transaction token stored in this session, if it is used.

- */ - public String getToken() { - if (this.session == null) { - return null; - } - - return (String) session.getAttribute(Globals.TRANSACTION_TOKEN_KEY); - } - - // ---------------------------------------------------- Request Context - - /** - *

The runtime JspException that may be been thrown by a Struts tag - * extension, or compatible presentation extension, and placed in the - * request.

- */ - public Throwable getException() { - if (this.request == null) { - return null; - } - - return (Throwable) this.request.getAttribute(Globals.EXCEPTION_KEY); - } - - /** - *

The multipart object for this request.

- */ - public MultipartRequestWrapper getMultipartRequestWrapper() { - if (this.request == null) { - return null; - } - - return (MultipartRequestWrapper) this.request.getAttribute(Globals.MULTIPART_KEY); - } - - /** - *

The org.apache.struts.ActionMapping instance for this - * request.

- */ - public ActionMapping getMapping() { - if (this.request == null) { - return null; - } - - return (ActionMapping) this.request.getAttribute(Globals.MAPPING_KEY); - } - - // ---------------------------------------------------- Utility Methods - - /** - *

Return true if a message string for the specified message key is - * present for the user's Locale.

- * - * @param key Message key - */ - public boolean isMessage(String key) { - // Look up the requested MessageResources - MessageResources resources = getMessageResources(); - - if (resources == null) { - return false; - } - - // Return the requested message presence indicator - return resources.isPresent(RequestUtils.getUserLocale(request, null), - key); - } - - /* - *

- * Retrieve and return the ActionForm bean associated with - * this mapping, creating and stashing one if necessary. If there is no - * form bean associated with this mapping, return null. - *

- */ - public ActionForm getActionForm() { - // Is there a mapping associated with this request? - ActionMapping mapping = getMapping(); - - if (mapping == null) { - return (null); - } - - // Is there a form bean associated with this mapping? - String attribute = mapping.getAttribute(); - - if (attribute == null) { - return (null); - } - - // Look up the existing form bean, if any - ActionForm instance; - - if ("request".equals(mapping.getScope())) { - instance = (ActionForm) this.request.getAttribute(attribute); - } else { - instance = (ActionForm) this.session.getAttribute(attribute); - } - - return instance; - } - - /** - *

Return the form bean definition associated with the specified - * logical name, if any; otherwise return null.

- * - * @param name Logical name of the requested form bean definition - */ - public ActionFormBean getFormBean(String name) { - return null; - } - - /** - *

Return the forwarding associated with the specified logical name, - * if any; otherwise return null.

- * - * @param name Logical name of the requested forwarding - */ - public ActionForward getActionForward(String name) { - return null; - } - - /** - *

Return the mapping associated with the specified request path, if - * any; otherwise return null.

- * - * @param path Request path for which a mapping is requested - */ - public ActionMapping getActionMapping(String path) { - return null; - } - - /** - *

Return the form action converted into an action mapping path. The - * value of the action property is manipulated as follows in - * computing the name of the requested mapping:

- * - *
    - * - *
  • Any filename extension is removed (on the theory that extension - * mapping is being used to select the controller servlet).
  • - * - *
  • If the resulting value does not start with a slash, then a slash is - * prepended.
  • - * - *
- */ - public String getActionMappingName(String action) { - String value = action; - int question = action.indexOf("?"); - - if (question >= 0) { - value = value.substring(0, question); - } - - int slash = value.lastIndexOf("/"); - int period = value.lastIndexOf("."); - - if ((period >= 0) && (period > slash)) { - value = value.substring(0, period); - } - - if (value.startsWith("/")) { - return (value); - } else { - return ("/" + value); - } - } - - /** - *

Return the form action converted into a server-relative URL.

- */ - public String getActionMappingURL(String action) { - StringBuffer value = new StringBuffer(this.request.getContextPath()); - - // Use our servlet mapping, if one is specified - String servletMapping = getServletMapping(); - - if (servletMapping != null) { - String queryString = null; - int question = action.indexOf("?"); - - if (question >= 0) { - queryString = action.substring(question); - } - - String actionMapping = getActionMappingName(action); - - if (servletMapping.startsWith("*.")) { - value.append(actionMapping); - value.append(servletMapping.substring(1)); - } else if (servletMapping.endsWith("/*")) { - value.append(servletMapping.substring(0, - servletMapping.length() - 2)); - value.append(actionMapping); - } - - if (queryString != null) { - value.append(queryString); - } - } - // Otherwise, assume extension mapping is in use and extension is - // already included in the action property - else { - if (!action.startsWith("/")) { - value.append("/"); - } - - value.append(action); - } - - // Return the completed value - return (value.toString()); - } - - /** - *

Return the url encoded to maintain the user session, if any.

- */ - public String getEncodeURL(String url) { - if ((session != null) && (response != null)) { - boolean redirect = false; - - if (forward != null) { - redirect = forward.getRedirect(); - } - - if (redirect) { - return response.encodeRedirectURL(url); - } else { - return response.encodeURL(url); - } - } else { - return (url); - } - } - - // ------------------------------------------------ Presentation API - - /** - *

Renders the reference for a HTML element

- */ - public String getOrigRef() { - // HttpServletRequest request = (HttpServletRequest)pageContext.getRequest(); - if (request == null) { - return null; - } - - StringBuffer result = - RequestUtils.requestToServerUriStringBuffer(request); - - return result.toString(); - } - - /** - *

Renders the reference for a HTML element.

- */ - public String getBaseRef() { - if (request == null) { - return null; - } - - StringBuffer result = RequestUtils.requestToServerStringBuffer(request); - String path; - - if (forward == null) { - path = request.getRequestURI(); - } else { - path = request.getContextPath() + forward.getPath(); - } - - result.append(path); - - return result.toString(); - } - - /** - *

Return the path for the specified forward, otherwise return - * null.

- * - * @param name Name given to local or global forward. - */ - public String getLink(String name) { - ActionForward forward = getActionForward(name); - - if (forward == null) { - return null; - } - - StringBuffer path = new StringBuffer(this.request.getContextPath()); - - path.append(forward.getPath()); - - // :TODO: What about runtime parameters? - return getEncodeURL(path.toString()); - } - - /** - *

Return the localized message for the specified key, otherwise - * return null.

- * - * @param key Message key - */ - public String getMessage(String key) { - MessageResources resources = getMessageResources(); - - if (resources == null) { - return null; - } - - return resources.getMessage(RequestUtils.getUserLocale(request, null), - key); - } - - /** - *

Look up and return a message string, based on the specified - * parameters.

- * - * @param key Message key to be looked up and returned - * @param args Replacement parameters for this message - */ - public String getMessage(String key, Object[] args) { - MessageResources resources = getMessageResources(); - - if (resources == null) { - return null; - } - - // Return the requested message - if (args == null) { - return resources.getMessage(RequestUtils.getUserLocale(request, null), - key); - } else { - return resources.getMessage(RequestUtils.getUserLocale(request, null), - key, args); - } - } - - /** - *

Return the URL for the specified ActionMapping, otherwise return - * null.

- * - * @param path Name given to local or global forward. - */ - public String getAction(String path) { - return getEncodeURL(getActionMappingURL(path)); - } - - // --------------------------------------------- Presentation Wrappers - - /** - *

Wrapper for getLink(String)

- * - * @param name Name given to local or global forward. - */ - public String link(String name) { - return getLink(name); - } - - /** - *

Wrapper for getMessage(String)

- * - * @param key Message key - */ - public String message(String key) { - return getMessage(key); - } - - /** - *

Wrapper for getMessage(String,Object[])

- * - * @param key Message key to be looked up and returned - * @param args Replacement parameters for this message - */ - public String message(String key, Object[] args) { - return getMessage(key, args); - } - - /** - *

Wrapper for getAction(String)

- * - * @param path Name given to local or global forward. - */ - public String action(String path) { - return getAction(path); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ConfigHelperInterface.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ConfigHelperInterface.java deleted file mode 100644 index 1cef2a40632..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ConfigHelperInterface.java +++ /dev/null @@ -1,210 +0,0 @@ -/* - * $Id: ConfigHelperInterface.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.ActionFormBean; -import org.apache.struts.action.ActionForward; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.action.ActionMessages; -import org.apache.struts.upload.MultipartRequestWrapper; -import org.apache.struts.util.MessageResources; - -/** - *

NOTE: THIS CLASS IS UNDER ACTIVE DEVELOPMENT. THE CURRENT CODE IS - * WRITTEN FOR CLARITY NOT EFFICIENCY. NOT EVERY API FUNCTION HAS BEEN - * IMPLEMENTED YET.

A helper object to expose the Struts shared - * resources, which are be stored in the application, session, or request - * contexts, as appropriate.

An instance should be created for each - * request processed. The methods which return resources from the request or - * session contexts are not thread-safe.

Provided for use by other - * servlets in the application so they can easily access the Struts shared - * resources.

The resources are stored under attributes in the - * application, session, or request contexts.

The ActionConfig methods - * simply return the resources from under the context and key used by the - * Struts ActionServlet when the resources are created.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - * @since Struts 1.1 - */ -public interface ConfigHelperInterface { - // ------------------------------------------------ Application Context - - /** - *

The org.apache.struts.action.ActionFormBeans - * collection for this application.

- */ - public ActionMessages getActionMessages(); - - /** - *

The application resources for this application.

- */ - public MessageResources getMessageResources(); - - /** - *

The path-mapped pattern (/action/*) or extension - * mapped pattern ((*.do) used to determine our Action URIs - * in this application.

- */ - public String getServletMapping(); - - // ---------------------------------------------------- Session Context - - /** - *

The transaction token stored in this session, if it is used.

- */ - public String getToken(); - - // ---------------------------------------------------- Request Context - - /** - *

The runtime JspException that may be been thrown by a Struts tag - * extension, or compatible presentation extension, and placed in the - * request.

- */ - public Throwable getException(); - - /** - *

The multipart object for this request.

- */ - public MultipartRequestWrapper getMultipartRequestWrapper(); - - /** - *

The org.apache.struts.ActionMapping instance for this - * request.

- */ - public ActionMapping getMapping(); - - // ---------------------------------------------------- Utility Methods - - /** - *

Return true if a message string for the specified message key is - * present for the user's Locale.

- * - * @param key Message key - */ - public boolean isMessage(String key); - - /** - *

Retrieve and return the ActionForm bean associated - * with this mapping, creating and stashing one if necessary. If there is - * no form bean associated with this mapping, return null. - *

- */ - public ActionForm getActionForm(); - - /** - *

Return the form bean definition associated with the specified - * logical name, if any; otherwise return null.

- * - * @param name Logical name of the requested form bean definition - */ - public ActionFormBean getFormBean(String name); - - /** - *

Return the forwarding associated with the specified logical name, - * if any; otherwise return null.

- * - * @param name Logical name of the requested forwarding - */ - public ActionForward getActionForward(String name); - - /** - *

Return the mapping associated with the specified request path, if - * any; otherwise return null.

- * - * @param path Request path for which a mapping is requested - */ - public ActionMapping getActionMapping(String path); - - /** - *

Return the form action converted into an action mapping path. The - * value of the action property is manipulated as follows in - * computing the name of the requested mapping: - * - *

    - * - *
  • Any filename extension is removed (on the theory that extension - * mapping is being used to select the controller servlet).
  • - * - *
  • If the resulting value does not start with a slash, then a slash is - * prepended.
  • - * - *

:FIXME: Bad assumption =:o)

- */ - public String getActionMappingName(String action); - - /** - *

Return the form action converted into a server-relative URL.

- */ - public String getActionMappingURL(String action); - - /** - *

Return the url encoded to maintain the user session, if any.

- */ - public String getEncodeURL(String url); - - // ------------------------------------------------ Presentation API - - /** - *

Renders the reference for a HTML element

- */ - public String getOrigRef(); - - /** - *

Renders the reference for a HTML element

- */ - public String getBaseRef(); - - /** - *

Return the path for the specified forward, otherwise return - * null.

- * - * @param name Name given to local or global forward. - */ - public String getLink(String name); - - /** - *

Return the localized message for the specified key, otherwise - * return null.

- * - * @param key Message key - */ - public String getMessage(String key); - - /** - *

Look up and return a message string, based on the specified - * parameters.

- * - * @param key Message key to be looked up and returned - * @param args Replacement parameters for this message - */ - public String getMessage(String key, Object[] args); - - /** - *

Return the URL for the specified ActionMapping, otherwise return - * null.

- * - * @param path Name given to local or global forward. - */ - public String getAction(String path); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ConfigRuleSet.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ConfigRuleSet.java deleted file mode 100644 index ca3e216fc50..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ConfigRuleSet.java +++ /dev/null @@ -1,452 +0,0 @@ -/* - * $Id: ConfigRuleSet.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import org.apache.commons.digester.AbstractObjectCreationFactory; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.Rule; -import org.apache.commons.digester.RuleSetBase; -import org.apache.commons.digester.SetPropertyRule; -import org.apache.struts.util.RequestUtils; -import org.xml.sax.Attributes; - -/** - *

The set of Digester rules required to parse a Struts configuration file - * (struts-config.xml).

- * - * @version $Rev: 471754 $ $Date: 2005-08-16 15:53:27 -0400 (Tue, 16 Aug 2005) - * $ - * @since Struts 1.1 - */ -public class ConfigRuleSet extends RuleSetBase { - // --------------------------------------------------------- Public Methods - - /** - *

Add the set of Rule instances defined in this RuleSet to the - * specified Digester instance, associating them with our - * namespace URI (if any). This method should only be called by a - * Digester instance. These rules assume that an instance of - * org.apache.struts.config.ModuleConfig is pushed onto the - * evaluation stack before parsing begins.

- * - * @param digester Digester instance to which the new Rule instances - * should be added. - */ - public void addRuleInstances(Digester digester) { - ClassLoader cl = digester.getClassLoader(); - - digester.addRule("struts-config/action-mappings", - new SetActionMappingClassRule()); - - digester.addFactoryCreate("struts-config/action-mappings/action", - new ActionMappingFactory(cl)); - digester.addSetProperties("struts-config/action-mappings/action"); - digester.addSetNext("struts-config/action-mappings/action", - "addActionConfig", "org.apache.struts.config.ActionConfig"); - - digester.addRule("struts-config/action-mappings/action/set-property", - new BaseConfigSetPropertyRule()); - - digester.addObjectCreate("struts-config/action-mappings/action/exception", - "org.apache.struts.config.ExceptionConfig", "className"); - digester.addSetProperties( - "struts-config/action-mappings/action/exception"); - digester.addSetNext("struts-config/action-mappings/action/exception", - "addExceptionConfig", "org.apache.struts.config.ExceptionConfig"); - - digester.addRule("struts-config/action-mappings/action/exception/set-property", - new BaseConfigSetPropertyRule()); - - digester.addFactoryCreate("struts-config/action-mappings/action/forward", - new ActionForwardFactory(cl)); - digester.addSetProperties( - "struts-config/action-mappings/action/forward"); - digester.addSetNext("struts-config/action-mappings/action/forward", - "addForwardConfig", "org.apache.struts.config.ForwardConfig"); - - digester.addRule("struts-config/action-mappings/action/forward/set-property", - new BaseConfigSetPropertyRule()); - - digester.addObjectCreate("struts-config/controller", - "org.apache.struts.config.ControllerConfig", "className"); - digester.addSetProperties("struts-config/controller"); - digester.addSetNext("struts-config/controller", "setControllerConfig", - "org.apache.struts.config.ControllerConfig"); - - digester.addRule("struts-config/controller/set-property", - new BaseConfigSetPropertyRule()); - - digester.addRule("struts-config/form-beans", - new SetActionFormBeanClassRule()); - - digester.addFactoryCreate("struts-config/form-beans/form-bean", - new ActionFormBeanFactory(cl)); - digester.addSetProperties("struts-config/form-beans/form-bean"); - digester.addSetNext("struts-config/form-beans/form-bean", - "addFormBeanConfig", "org.apache.struts.config.FormBeanConfig"); - - digester.addObjectCreate("struts-config/form-beans/form-bean/form-property", - "org.apache.struts.config.FormPropertyConfig", "className"); - digester.addSetProperties( - "struts-config/form-beans/form-bean/form-property"); - digester.addSetNext("struts-config/form-beans/form-bean/form-property", - "addFormPropertyConfig", - "org.apache.struts.config.FormPropertyConfig"); - - digester.addRule("struts-config/form-beans/form-bean/form-property/set-property", - new BaseConfigSetPropertyRule()); - - digester.addRule("struts-config/form-beans/form-bean/set-property", - new BaseConfigSetPropertyRule()); - - digester.addObjectCreate("struts-config/global-exceptions/exception", - "org.apache.struts.config.ExceptionConfig", "className"); - digester.addSetProperties("struts-config/global-exceptions/exception"); - digester.addSetNext("struts-config/global-exceptions/exception", - "addExceptionConfig", "org.apache.struts.config.ExceptionConfig"); - - digester.addRule("struts-config/global-exceptions/exception/set-property", - new BaseConfigSetPropertyRule()); - - digester.addRule("struts-config/global-forwards", - new SetActionForwardClassRule()); - - digester.addFactoryCreate("struts-config/global-forwards/forward", - new GlobalForwardFactory(cl)); - digester.addSetProperties("struts-config/global-forwards/forward"); - digester.addSetNext("struts-config/global-forwards/forward", - "addForwardConfig", "org.apache.struts.config.ForwardConfig"); - - digester.addRule("struts-config/global-forwards/forward/set-property", - new BaseConfigSetPropertyRule()); - - digester.addObjectCreate("struts-config/message-resources", - "org.apache.struts.config.MessageResourcesConfig", "className"); - digester.addSetProperties("struts-config/message-resources"); - digester.addSetNext("struts-config/message-resources", - "addMessageResourcesConfig", - "org.apache.struts.config.MessageResourcesConfig"); - - digester.addRule("struts-config/message-resources/set-property", - new BaseConfigSetPropertyRule()); - - digester.addObjectCreate("struts-config/plug-in", - "org.apache.struts.config.PlugInConfig"); - digester.addSetProperties("struts-config/plug-in"); - digester.addSetNext("struts-config/plug-in", "addPlugInConfig", - "org.apache.struts.config.PlugInConfig"); - - digester.addRule("struts-config/plug-in/set-property", - new PlugInSetPropertyRule()); - - // PluginConfig does not extend BaseConfig, at least for now. - } -} - - -/** - *

Class that records the name and value of a configuration property to be - * used in configuring a PlugIn instance when instantiated.

- */ -final class PlugInSetPropertyRule extends Rule { - public PlugInSetPropertyRule() { - super(); - } - - public void begin(String namespace, String names, Attributes attributes) - throws Exception { - PlugInConfig plugInConfig = (PlugInConfig) digester.peek(); - - plugInConfig.addProperty(attributes.getValue("property"), - attributes.getValue("value")); - } -} - - -/** - *

Class that sets the name of the class to use when creating action form - * bean instances. The value is set on the object on the top of the stack, - * which must be a org.apache.struts.config.ModuleConfig.

- */ -final class SetActionFormBeanClassRule extends Rule { - public SetActionFormBeanClassRule() { - super(); - } - - public void begin(String namespace, String name, Attributes attributes) - throws Exception { - String className = attributes.getValue("type"); - - if (className != null) { - ModuleConfig mc = (ModuleConfig) digester.peek(); - - mc.setActionFormBeanClass(className); - } - } -} - - -/** - *

A variant of the standard Digester SetPropertyRule. If - * the element being processed has a "key" attribute, then the value will be - * used to call setProperty(key,value) on the object on top of - * the stack, which will be assumed to be of type ActionConfig. - * Otherwise, the standard SetPropertyRule behavior is invoked, - * and the value will be used to set a bean property on the object on top of - * the Digester stack. In that case, the element being processed is assumed to - * have attributes "property" and "value".

- */ -final class BaseConfigSetPropertyRule extends SetPropertyRule { - public BaseConfigSetPropertyRule() { - super("property", "value"); - } - - public void begin(Attributes attributes) - throws Exception { - if (attributes.getIndex("key") == -1) { - super.begin(attributes); - - return; - } - - if (attributes.getIndex("property") != -1) { - throw new IllegalArgumentException( - " accepts only one of 'key' or 'property' attributes."); - } - - Object topOfStack = digester.peek(); - - if (topOfStack instanceof BaseConfig) { - BaseConfig config = (BaseConfig) topOfStack; - - config.setProperty(attributes.getValue("key"), - attributes.getValue("value")); - } else { - throw new IllegalArgumentException( - "'key' attribute of only applicable to subclasses of BaseConfig; " - + "object on top of stack is " + topOfStack + " [key: " - + attributes.getValue("key") + ", value: " - + attributes.getValue("value") + "]"); - } - } -} - - -/** - *

An object creation factory which creates action form bean instances, - * taking into account the default class name, which may have been specified - * on the parent element and which is made available through the object on the - * top of the stack, which must be a org.apache.struts.config.ModuleConfig. - *

- */ -final class ActionFormBeanFactory extends AbstractObjectCreationFactory { - private ClassLoader cl; - - public ActionFormBeanFactory(ClassLoader cl) { - super(); - this.cl = cl; - } - - public Object createObject(Attributes attributes) { - // Identify the name of the class to instantiate - String className = attributes.getValue("className"); - - if (className == null) { - ModuleConfig mc = (ModuleConfig) digester.peek(); - - className = mc.getActionFormBeanClass(); - } - - // Instantiate the new object and return it - Object actionFormBean = null; - - try { - actionFormBean = RequestUtils.applicationInstance(className, cl); - } catch (Exception e) { - digester.getLogger().error("ActionFormBeanFactory.createObject: ", e); - } - - return actionFormBean; - } -} - - -/** - *

Class that sets the name of the class to use when creating action - * mapping instances. The value is set on the object on the top of the stack, - * which must be a org.apache.struts.config.ModuleConfig.

- */ -final class SetActionMappingClassRule extends Rule { - public SetActionMappingClassRule() { - super(); - } - - public void begin(String namespace, String name, Attributes attributes) - throws Exception { - String className = attributes.getValue("type"); - - if (className != null) { - ModuleConfig mc = (ModuleConfig) digester.peek(); - - mc.setActionMappingClass(className); - } - } -} - - -/** - *

An object creation factory which creates action mapping instances, - * taking into account the default class name, which may have been specified - * on the parent element and which is made available through the object on the - * top of the stack, which must be a org.apache.struts.config.ModuleConfig. - *

- */ -final class ActionMappingFactory extends AbstractObjectCreationFactory { - private ClassLoader cl; - - public ActionMappingFactory(ClassLoader cl) { - super(); - this.cl = cl; - } - - public Object createObject(Attributes attributes) { - // Identify the name of the class to instantiate - String className = attributes.getValue("className"); - - if (className == null) { - ModuleConfig mc = (ModuleConfig) digester.peek(); - - className = mc.getActionMappingClass(); - } - - // Instantiate the new object and return it - Object actionMapping = null; - - try { - actionMapping = RequestUtils.applicationInstance(className, cl); - } catch (Exception e) { - digester.getLogger().error("ActionMappingFactory.createObject: ", e); - } - - return actionMapping; - } -} - - -/** - *

Class that sets the name of the class to use when creating global - * forward instances. The value is set on the object on the top of the stack, - * which must be a org.apache.struts.config.ModuleConfig.

- */ -final class SetActionForwardClassRule extends Rule { - public SetActionForwardClassRule() { - super(); - } - - public void begin(String namespace, String name, Attributes attributes) - throws Exception { - String className = attributes.getValue("type"); - - if (className != null) { - ModuleConfig mc = (ModuleConfig) digester.peek(); - - mc.setActionForwardClass(className); - } - } -} - - -/** - *

An object creation factory which creates global forward instances, - * taking into account the default class name, which may have been specified - * on the parent element and which is made available through the object on the - * top of the stack, which must be a org.apache.struts.config.ModuleConfig. - *

- */ -final class GlobalForwardFactory extends AbstractObjectCreationFactory { - private ClassLoader cl; - - public GlobalForwardFactory(ClassLoader cl) { - super(); - this.cl = cl; - } - - public Object createObject(Attributes attributes) { - // Identify the name of the class to instantiate - String className = attributes.getValue("className"); - - if (className == null) { - ModuleConfig mc = (ModuleConfig) digester.peek(); - - className = mc.getActionForwardClass(); - } - - // Instantiate the new object and return it - Object globalForward = null; - - try { - globalForward = RequestUtils.applicationInstance(className, cl); - } catch (Exception e) { - digester.getLogger().error("GlobalForwardFactory.createObject: ", e); - } - - return globalForward; - } -} - - -/** - *

An object creation factory which creates action forward instances, - * taking into account the default class name, which may have been specified - * on the parent element and which is made available through the object on the - * top of the stack, which must be a org.apache.struts.config.ModuleConfig. - *

- */ -final class ActionForwardFactory extends AbstractObjectCreationFactory { - private ClassLoader cl; - - public ActionForwardFactory(ClassLoader cl) { - super(); - this.cl = cl; - } - - public Object createObject(Attributes attributes) { - // Identify the name of the class to instantiate - String className = attributes.getValue("className"); - - if (className == null) { - ModuleConfig mc = (ModuleConfig) digester.peek(1); - - className = mc.getActionForwardClass(); - } - - // Instantiate the new object and return it - Object actionForward = null; - - try { - actionForward = RequestUtils.applicationInstance(className, cl); - } catch (Exception e) { - digester.getLogger().error("ActionForwardFactory.createObject: ", e); - } - - return actionForward; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ControllerConfig.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ControllerConfig.java deleted file mode 100644 index 7d9c4925776..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ControllerConfig.java +++ /dev/null @@ -1,383 +0,0 @@ -/* - * $Id: ControllerConfig.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - - -/** - *

A JavaBean representing the configuration information of a - * <controller> element in a Struts configuration - * file.

- * - * @version $Rev: 471754 $ $Date: 2005-05-12 18:41:19 -0400 (Thu, 12 May 2005) - * $ - * @since Struts 1.1 - */ -public class ControllerConfig extends BaseConfig { - // ------------------------------------------------------------- Properties - - /** - *

The input buffer size for file uploads.

- */ - protected int bufferSize = 4096; - - /** - *

The content type and character encoding to be set on each response. - *

- */ - protected String contentType = "text/html"; - - /** - *

The chain catalog name for this module.

- */ - protected String catalog = "struts"; - - /** - *

The chain command to execute for each request.

- */ - protected String command = "servlet-standard"; - - /** - *

The replacement pattern used to determine a context-relative URL - * from a {@link ForwardConfig} element. The pattern may consist of any - * combination of the following markers and characters:

- * - *
    - * - *
  • $M - Replaced by the module prefix - * for the current module.
  • - * - *
  • $P - Replaced by the - * path property of a {@link ForwardConfig} instance.
  • - * - *
  • $$ - Renders a literal dollar sign - * ("$") character in the resulting URL.
  • - * - *
  • A dollar sign followed by any other character is reserved for - * future use, and both characters are silently swallowed.
  • - * - *
  • All other characters in the pattern are passed through unchanged. - *
  • - * - *
- * - *

If this property is set to null, a default pattern of - * $M$P is utilized, which is backwards compatible with the - * hard coded functionality in prior versions.

- */ - protected String forwardPattern = null; - - /** - *

Should the input property of {@link ActionConfig} - * instances associated with this module be treated as the name of a - * corresponding {@link ForwardConfig}. A false value treats - * them as a module-relative path (consistent with the hard coded behavior - * of earlier versions of Struts.

- * - * @since Struts 1.1 - */ - protected boolean inputForward = false; - - /** - *

Should we store a Locale object in the user's session if needed? - *

- */ - protected boolean locale = true; - - /** - *

The maximum file size to process for file uploads.

- */ - protected String maxFileSize = "250M"; - - /** - *

The maximum file size to retain in memory.

- */ - protected String memFileSize = "256K"; - - /** - *

The fully qualified Java class name of the MultipartRequestHandler - * class to be used.

- */ - protected String multipartClass = - "org.apache.struts.upload.CommonsMultipartRequestHandler"; - - /** - *

Should we set no-cache HTTP headers on each response?

- */ - protected boolean nocache = false; - - /** - *

The replacement pattern used to determine a context-relative URL - * from the page attribute of Struts tags and configuration - * properties. The pattern may consist of any combination of the - * following markers and characters:

- * - *
    - * - *
  • $M - Replaced by the module prefix - * for the current module.
  • - * - *
  • $P - Replaced by the - * page attribute value being evaluated.
  • - * - *
  • $$ - Renders a literal dollar sign - * ("$") character in the resulting URL.
  • - * - *
  • A dollar sign followed by any other character is reserved for - * future use, and both characters are silently swallowed.
  • - * - *
  • All other characters in the pattern are passed through unchanged. - *
  • - * - *
- * - *

If this property is set to null, a default pattern of - * $M$P is utilized, which is backwards compatible with the - * hard coded functionality in prior versions.

- */ - protected String pagePattern = null; - - /** - *

The fully qualified class name of the RequestProcessor - * implementation class to be used for this module.

- */ - protected String processorClass = - "org.apache.struts.chain.ComposableRequestProcessor"; - - /** - *

The temporary working directory to use for file uploads.

- */ - protected String tempDir = null; - - public int getBufferSize() { - return (this.bufferSize); - } - - public void setBufferSize(int bufferSize) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.bufferSize = bufferSize; - } - - public String getContentType() { - return (this.contentType); - } - - public void setContentType(String contentType) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.contentType = contentType; - } - - public String getCatalog() { - return (this.catalog); - } - - public void setCatalog(String catalog) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.catalog = catalog; - } - - public String getCommand() { - return (this.command); - } - - public void setCommand(String command) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.command = command; - } - - public String getForwardPattern() { - return (this.forwardPattern); - } - - public void setForwardPattern(String forwardPattern) { - this.forwardPattern = forwardPattern; - } - - public boolean getInputForward() { - return (this.inputForward); - } - - public void setInputForward(boolean inputForward) { - this.inputForward = inputForward; - } - - public boolean getLocale() { - return (this.locale); - } - - public void setLocale(boolean locale) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.locale = locale; - } - - public String getMaxFileSize() { - return (this.maxFileSize); - } - - public void setMaxFileSize(String maxFileSize) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.maxFileSize = maxFileSize; - } - - public String getMemFileSize() { - return (this.memFileSize); - } - - public void setMemFileSize(String memFileSize) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.memFileSize = memFileSize; - } - - public String getMultipartClass() { - return (this.multipartClass); - } - - public void setMultipartClass(String multipartClass) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.multipartClass = multipartClass; - } - - public boolean getNocache() { - return (this.nocache); - } - - public void setNocache(boolean nocache) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.nocache = nocache; - } - - public String getPagePattern() { - return (this.pagePattern); - } - - public void setPagePattern(String pagePattern) { - this.pagePattern = pagePattern; - } - - public String getProcessorClass() { - return (this.processorClass); - } - - public void setProcessorClass(String processorClass) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.processorClass = processorClass; - } - - public String getTempDir() { - return (this.tempDir); - } - - public void setTempDir(String tempDir) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.tempDir = tempDir; - } - - // --------------------------------------------------------- Public Methods - - /** - *

Return a String representation of this object.

- */ - public String toString() { - StringBuffer sb = new StringBuffer("ControllerConfig["); - - sb.append("bufferSize="); - sb.append(this.bufferSize); - - if (this.contentType != null) { - sb.append(",contentType="); - sb.append(this.contentType); - } - - if (this.forwardPattern != null) { - sb.append(",forwardPattern="); - sb.append(this.forwardPattern); - } - - sb.append(",inputForward="); - sb.append(this.inputForward); - sb.append(",locale="); - sb.append(this.locale); - - if (this.maxFileSize != null) { - sb.append(",maxFileSize="); - sb.append(this.maxFileSize); - } - - if (this.memFileSize != null) { - sb.append(",memFileSize="); - sb.append(this.memFileSize); - } - - sb.append(",multipartClass="); - sb.append(this.multipartClass); - sb.append(",nocache="); - sb.append(this.nocache); - - if (this.pagePattern != null) { - sb.append(",pagePattern="); - sb.append(this.pagePattern); - } - - sb.append(",processorClass="); - sb.append(this.processorClass); - - if (this.tempDir != null) { - sb.append(",tempDir="); - sb.append(this.tempDir); - } - - sb.append("]"); - - return (sb.toString()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ExceptionConfig.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ExceptionConfig.java deleted file mode 100644 index 515c9b1844a..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ExceptionConfig.java +++ /dev/null @@ -1,425 +0,0 @@ -/* - * $Id: ExceptionConfig.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import java.lang.reflect.InvocationTargetException; - -/** - *

A JavaBean representing the configuration information of an - * <exception> element from a Struts configuration - * file.

- * - * @version $Rev: 471754 $ $Date: 2005-08-06 18:03:30 -0400 (Sat, 06 Aug 2005) - * $ - * @since Struts 1.1 - */ -public class ExceptionConfig extends BaseConfig { - // ------------------------------------------------------------- Properties - - /** - * The servlet context attribute under which the message resources bundle - * to be used for this exception is located. If not set, the default - * message resources for the current module is assumed. - */ - protected String bundle = null; - - /** - * The type of the ExceptionConfig that this object should inherit - * properties from. - */ - protected String inherit = null; - - /** - * Have the inheritance values for this class been applied? - */ - protected boolean extensionProcessed = false; - - /** - * The fully qualified Java class name of the exception handler class - * which should be instantiated to handle this exception. - */ - protected String handler = "org.apache.struts.action.ExceptionHandler"; - - /** - * The message resources key specifying the error message associated with - * this exception. - */ - protected String key = null; - - /** - * The module-relative path of the resource to forward to if this - * exception occurs during an Action. - */ - protected String path = null; - - /** - * The scope in which we should expose the ActionMessage for this - * exception handler. - */ - protected String scope = "request"; - - /** - * The fully qualified Java class name of the exception that is to be - * handled by this handler. - */ - protected String type = null; - - public String getBundle() { - return (this.bundle); - } - - public void setBundle(String bundle) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.bundle = bundle; - } - - public String getExtends() { - return (this.inherit); - } - - public void setExtends(String inherit) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.inherit = inherit; - } - - public boolean isExtensionProcessed() { - return extensionProcessed; - } - - public String getHandler() { - return (this.handler); - } - - public void setHandler(String handler) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.handler = handler; - } - - public String getKey() { - return (this.key); - } - - public void setKey(String key) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.key = key; - } - - public String getPath() { - return (this.path); - } - - public void setPath(String path) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.path = path; - } - - public String getScope() { - return (this.scope); - } - - public void setScope(String scope) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.scope = scope; - } - - public String getType() { - return (this.type); - } - - public void setType(String type) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.type = type; - } - - // ------------------------------------------------------ Protected Methods - - /** - *

Traces the hierarchy of this object to check if any of the ancestors - * are extending this instance.

- * - * @param moduleConfig The {@link ModuleConfig} that this config is from. - * @param actionConfig The {@link ActionConfig} that this config is from, - * if applicable. This parameter must be null if this - * is a global handler. - * @return true if circular inheritance was detected. - */ - protected boolean checkCircularInheritance(ModuleConfig moduleConfig, - ActionConfig actionConfig) { - String ancestorType = getExtends(); - - if (ancestorType == null) { - return false; - } - - // Find our ancestor - ExceptionConfig ancestor = null; - - // First check the action config - if (actionConfig != null) { - ancestor = actionConfig.findExceptionConfig(ancestorType); - - // If we found *this*, set ancestor to null to check for a global def - if (ancestor == this) { - ancestor = null; - } - } - - // Then check the global handlers - if (ancestor == null) { - ancestor = moduleConfig.findExceptionConfig(ancestorType); - - if (ancestor != null) { - // If the ancestor is a global handler, set actionConfig - // to null so further searches are only done among - // global handlers. - actionConfig = null; - } - } - - while (ancestor != null) { - // Check if an ancestor is extending *this* - if (ancestor == this) { - return true; - } - - // Get our ancestor's ancestor - ancestorType = ancestor.getExtends(); - - // check against ancestors extending same typed ancestors - if (ancestor.getType().equals(ancestorType)) { - // If the ancestor is extending a config for the same type, - // make sure we look for its ancestor in the global handlers. - // If we're already at that level, we return false. - if (actionConfig == null) { - return false; - } else { - // Set actionConfig = null to force us to look for global - // forwards - actionConfig = null; - } - } - - ancestor = null; - - // First check the action config - if (actionConfig != null) { - ancestor = actionConfig.findExceptionConfig(ancestorType); - } - - // Then check the global handlers - if (ancestor == null) { - ancestor = moduleConfig.findExceptionConfig(ancestorType); - - if (ancestor != null) { - // Limit further checks to moduleConfig. - actionConfig = null; - } - } - } - - return false; - } - - // --------------------------------------------------------- Public Methods - - /** - *

Inherit values that have not been overridden from the provided - * config object. Subclasses overriding this method should verify that - * the given parameter is of a class that contains a property it is trying - * to inherit:

- * - *
-     * if (config instanceof MyCustomConfig) {
-     *     MyCustomConfig myConfig =
-     *         (MyCustomConfig) config;
-     *
-     *     if (getMyCustomProp() == null) {
-     *         setMyCustomProp(myConfig.getMyCustomProp());
-     *     }
-     * }
-     * 
- * - *

If the given config is extending another object, those - * extensions should be resolved before it's used as a parameter to this - * method.

- * - * @param config The object that this instance will be inheriting its - * values from. - * @see #processExtends(ModuleConfig, ActionConfig) - */ - public void inheritFrom(ExceptionConfig config) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException, InvocationTargetException { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - // Inherit values that have not been overridden - if (getBundle() == null) { - setBundle(config.getBundle()); - } - - if (getHandler().equals("org.apache.struts.action.ExceptionHandler")) { - setHandler(config.getHandler()); - } - - if (getKey() == null) { - setKey(config.getKey()); - } - - if (getPath() == null) { - setPath(config.getPath()); - } - - if (getScope().equals("request")) { - setScope(config.getScope()); - } - - if (getType() == null) { - setType(config.getType()); - } - - inheritProperties(config); - } - - /** - *

Inherit configuration information from the ExceptionConfig that this - * instance is extending. This method verifies that any exception config - * object that it inherits from has also had its processExtends() method - * called.

- * - * @param moduleConfig The {@link ModuleConfig} that this config is from. - * @param actionConfig The {@link ActionConfig} that this config is from, - * if applicable. This must be null for global - * forwards. - * @see #inheritFrom(ExceptionConfig) - */ - public void processExtends(ModuleConfig moduleConfig, - ActionConfig actionConfig) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException, InvocationTargetException { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - String ancestorType = getExtends(); - - if ((!extensionProcessed) && (ancestorType != null)) { - ExceptionConfig baseConfig = null; - - // We only check the action config if we're not a global handler - boolean checkActionConfig = - (this != moduleConfig.findExceptionConfig(getType())); - - // ... and the action config was provided - checkActionConfig &= (actionConfig != null); - - // ... and we're not extending a config with the same type value - // (because if we are, that means we're an action-level handler - // extending a global handler). - checkActionConfig &= !ancestorType.equals(getType()); - - // We first check in the action config's exception handlers - if (checkActionConfig) { - baseConfig = actionConfig.findExceptionConfig(ancestorType); - } - - // Then check the global exception handlers - if (baseConfig == null) { - baseConfig = moduleConfig.findExceptionConfig(ancestorType); - } - - if (baseConfig == null) { - throw new NullPointerException("Unable to find " - + "handler for '" + ancestorType + "' to extend."); - } - - // Check for circular inheritance and make sure the base config's - // own inheritance has been processed already - if (checkCircularInheritance(moduleConfig, actionConfig)) { - throw new IllegalArgumentException( - "Circular inheritance detected for forward " + getType()); - } - - if (!baseConfig.isExtensionProcessed()) { - baseConfig.processExtends(moduleConfig, actionConfig); - } - - // copy values from the base config - inheritFrom(baseConfig); - } - - extensionProcessed = true; - } - - /** - * Return a String representation of this object. - */ - public String toString() { - StringBuffer sb = new StringBuffer("ExceptionConfig["); - - sb.append("type="); - sb.append(this.type); - - if (this.bundle != null) { - sb.append(",bundle="); - sb.append(this.bundle); - } - - if (this.inherit != null) { - sb.append(",extends="); - sb.append(this.inherit); - } - - sb.append(",handler="); - sb.append(this.handler); - sb.append(",key="); - sb.append(this.key); - sb.append(",path="); - sb.append(this.path); - sb.append(",scope="); - sb.append(this.scope); - sb.append("]"); - - return (sb.toString()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/FormBeanConfig.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/FormBeanConfig.java deleted file mode 100644 index c8bc9ca57a3..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/FormBeanConfig.java +++ /dev/null @@ -1,617 +0,0 @@ -/* - * $Id: FormBeanConfig.java 472728 2006-11-09 01:10:58Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import org.apache.commons.beanutils.BeanUtils; -import org.apache.commons.beanutils.DynaBean; -import org.apache.commons.beanutils.MutableDynaClass; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.ActionServlet; -import org.apache.struts.action.DynaActionForm; -import org.apache.struts.action.DynaActionFormClass; -import org.apache.struts.chain.commands.util.ClassUtils; -import org.apache.struts.chain.contexts.ActionContext; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.util.RequestUtils; -import org.apache.struts.validator.BeanValidatorForm; - -import java.lang.reflect.InvocationTargetException; - -import java.util.HashMap; - -/** - *

A JavaBean representing the configuration information of a - * <form-bean> element in a Struts configuration file.

- * - * @version $Rev: 472728 $ $Date: 2006-01-17 07:26:20 -0500 (Tue, 17 Jan 2006) - * $ - * @since Struts 1.1 - */ -public class FormBeanConfig extends BaseConfig { - private static final Log log = LogFactory.getLog(FormBeanConfig.class); - - // ----------------------------------------------------- Instance Variables - - /** - * The set of FormProperty elements defining dynamic form properties for - * this form bean, keyed by property name. - */ - protected HashMap formProperties = new HashMap(); - - /** - *

The lockable object we can synchronize on when creating - * DynaActionFormClass.

- */ - protected String lock = ""; - - // ------------------------------------------------------------- Properties - - /** - * The DynaActionFormClass associated with a DynaActionForm. - */ - protected transient DynaActionFormClass dynaActionFormClass; - - /** - * Is the form bean class an instance of DynaActionForm with dynamic - * properties? - */ - protected boolean dynamic = false; - - /** - * The name of the FormBeanConfig that this config inherits configuration - * information from. - */ - protected String inherit = null; - - /** - * Have the inheritance values for this class been applied? - */ - protected boolean extensionProcessed = false; - - /** - * The unique identifier of this form bean, which is used to reference - * this bean in ActionMapping instances as well as for the - * name of the request or session attribute under which the corresponding - * form bean instance is created or accessed. - */ - protected String name = null; - - /** - * The fully qualified Java class name of the implementation class to be - * used or generated. - */ - protected String type = null; - - /** - * Is this DynaClass currently restricted (for DynaBeans with a - * MutableDynaClass). - */ - protected boolean restricted = false; - - /** - *

Return the DynaActionFormClass associated with a - * DynaActionForm.

- * - * @throws IllegalArgumentException if the ActionForm is not dynamic - */ - public DynaActionFormClass getDynaActionFormClass() { - if (dynamic == false) { - throw new IllegalArgumentException("ActionForm is not dynamic"); - } - - synchronized (lock) { - if (dynaActionFormClass == null) { - dynaActionFormClass = new DynaActionFormClass(this); - } - } - - return dynaActionFormClass; - } - - public boolean getDynamic() { - return (this.dynamic); - } - - public String getExtends() { - return (this.inherit); - } - - public void setExtends(String extend) { - throwIfConfigured(); - this.inherit = extend; - } - - public boolean isExtensionProcessed() { - return extensionProcessed; - } - - public String getName() { - return (this.name); - } - - public void setName(String name) { - throwIfConfigured(); - this.name = name; - } - - public String getType() { - return (this.type); - } - - public void setType(String type) { - throwIfConfigured(); - this.type = type; - - Class dynaBeanClass = DynaActionForm.class; - Class formBeanClass = formBeanClass(); - - if (formBeanClass != null) { - if (dynaBeanClass.isAssignableFrom(formBeanClass)) { - this.dynamic = true; - } else { - this.dynamic = false; - } - } else { - this.dynamic = false; - } - } - - /** - *

Indicates whether a MutableDynaClass is currently restricted.

- *

If so, no changes to the existing registration of property names, - * data types, readability, or writeability are allowed.

- */ - public boolean isRestricted() { - return restricted; - } - - /** - *

Set whether a MutableDynaClass is currently restricted.

If - * so, no changes to the existing registration of property names, data - * types, readability, or writeability are allowed.

- */ - public void setRestricted(boolean restricted) { - this.restricted = restricted; - } - - // ------------------------------------------------------ Protected Methods - - /** - *

Traces the hierarchy of this object to check if any of the ancestors - * is extending this instance.

- * - * @param moduleConfig The configuration for the module being configured. - * @return true if circular inheritance was detected. - */ - protected boolean checkCircularInheritance(ModuleConfig moduleConfig) { - String ancestorName = getExtends(); - - while (ancestorName != null) { - // check if we have the same name as an ancestor - if (getName().equals(ancestorName)) { - return true; - } - - // get our ancestor's ancestor - FormBeanConfig ancestor = - moduleConfig.findFormBeanConfig(ancestorName); - - ancestorName = ancestor.getExtends(); - } - - return false; - } - - /** - *

Compare the form properties of this bean with that of the given and - * copy those that are not present.

- * - * @param config The form bean config to copy properties from. - * @see #inheritFrom(FormBeanConfig) - */ - protected void inheritFormProperties(FormBeanConfig config) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException, InvocationTargetException { - throwIfConfigured(); - - // Inherit form property configs - FormPropertyConfig[] baseFpcs = config.findFormPropertyConfigs(); - - for (int i = 0; i < baseFpcs.length; i++) { - FormPropertyConfig baseFpc = baseFpcs[i]; - - // Do we have this prop? - FormPropertyConfig prop = - this.findFormPropertyConfig(baseFpc.getName()); - - if (prop == null) { - // We don't have this, so let's copy it - prop = - (FormPropertyConfig) RequestUtils.applicationInstance(baseFpc.getClass() - .getName()); - - BeanUtils.copyProperties(prop, baseFpc); - this.addFormPropertyConfig(prop); - prop.setProperties(baseFpc.copyProperties()); - } - } - } - - // --------------------------------------------------------- Public Methods - - /** - *

Create and return an ActionForm instance appropriate to - * the information in this FormBeanConfig.

- * - *

Although this method is not formally deprecated yet, where possible, - * the form which accepts an ActionContext as an argument is - * preferred, to help sever direct dependencies on the Servlet API. As - * the ActionContext becomes more familiar in Struts, this method will - * almost certainly be deprecated.

- * - * @param servlet The action servlet - * @return ActionForm instance - * @throws IllegalAccessException if the Class or the appropriate - * constructor is not accessible - * @throws InstantiationException if this Class represents an abstract - * class, an array class, a primitive type, - * or void; or if instantiation fails for - * some other reason - */ - public ActionForm createActionForm(ActionServlet servlet) - throws IllegalAccessException, InstantiationException { - Object obj = null; - - // Create a new form bean instance - if (getDynamic()) { - obj = getDynaActionFormClass().newInstance(); - } else { - obj = formBeanClass().newInstance(); - } - - ActionForm form = null; - - if (obj instanceof ActionForm) { - form = (ActionForm) obj; - } else { - form = new BeanValidatorForm(obj); - } - - form.setServlet(servlet); - - if (form instanceof DynaBean - && ((DynaBean) form).getDynaClass() instanceof MutableDynaClass) { - DynaBean dynaBean = (DynaBean) form; - MutableDynaClass dynaClass = - (MutableDynaClass) dynaBean.getDynaClass(); - - // Add properties - dynaClass.setRestricted(false); - - FormPropertyConfig[] props = findFormPropertyConfigs(); - - for (int i = 0; i < props.length; i++) { - dynaClass.add(props[i].getName(), props[i].getTypeClass()); - dynaBean.set(props[i].getName(), props[i].initial()); - } - - dynaClass.setRestricted(isRestricted()); - } - - if (form instanceof BeanValidatorForm) { - ((BeanValidatorForm)form).initialize(this); - } - - return form; - } - - /** - *

Create and return an ActionForm instance appropriate to - * the information in this FormBeanConfig.

- *

NOTE: If the given ActionContext is not of type - * ServletActionContext (or a subclass), then the form which - * is returned will have a null servlet property. Some of - * the subclasses of ActionForm included in Struts will later - * throw a NullPointerException in this case.

TODO: - * Find a way to control this direct dependency on the Servlet API.

- * - * @param context The ActionContext. - * @return ActionForm instance - * @throws IllegalAccessException if the Class or the appropriate - * constructor is not accessible - * @throws InstantiationException if this Class represents an abstract - * class, an array class, a primitive type, - * or void; or if instantiation fails for - * some other reason - */ - public ActionForm createActionForm(ActionContext context) - throws IllegalAccessException, InstantiationException { - ActionServlet actionServlet = null; - - if (context instanceof ServletActionContext) { - ServletActionContext saContext = (ServletActionContext) context; - - actionServlet = saContext.getActionServlet(); - } - - return createActionForm(actionServlet); - } - - /** - *

Checks if the given ActionForm instance is suitable for - * use as an alternative to calling this FormBeanConfig - * instance's createActionForm method.

- * - * @param form an existing form instance that may be reused. - * @return true if the given form can be reused as the form for this - * config. - */ - public boolean canReuse(ActionForm form) { - if (form != null) { - if (this.getDynamic()) { - String className = ((DynaBean) form).getDynaClass().getName(); - - if (className.equals(this.getName())) { - log.debug("Can reuse existing instance (dynamic)"); - - return (true); - } - } else { - try { - // check if the form's class is compatible with the class - // we're configured for - Class formClass = form.getClass(); - - if (form instanceof BeanValidatorForm) { - BeanValidatorForm beanValidatorForm = - (BeanValidatorForm) form; - - if (beanValidatorForm.getInstance() instanceof DynaBean) { - String formName = beanValidatorForm.getStrutsConfigFormName(); - if (getName().equals(formName)) { - log.debug("Can reuse existing instance (BeanValidatorForm)"); - return true; - } else { - return false; - } - } - formClass = beanValidatorForm.getInstance().getClass(); - } - - Class configClass = - ClassUtils.getApplicationClass(this.getType()); - - if (configClass.isAssignableFrom(formClass)) { - log.debug("Can reuse existing instance (non-dynamic)"); - - return (true); - } - } catch (Exception e) { - log.debug("Error testing existing instance for reusability; just create a new instance", - e); - } - } - } - - return false; - } - - /** - * Add a new FormPropertyConfig instance to the set - * associated with this module. - * - * @param config The new configuration instance to be added - * @throws IllegalArgumentException if this property name has already been - * defined - */ - public void addFormPropertyConfig(FormPropertyConfig config) { - throwIfConfigured(); - - if (formProperties.containsKey(config.getName())) { - throw new IllegalArgumentException("Property " + config.getName() - + " already defined"); - } - - formProperties.put(config.getName(), config); - } - - /** - * Return the form property configuration for the specified property name, - * if any; otherwise return null. - * - * @param name Form property name to find a configuration for - */ - public FormPropertyConfig findFormPropertyConfig(String name) { - return ((FormPropertyConfig) formProperties.get(name)); - } - - /** - * Return the form property configurations for this module. If there are - * none, a zero-length array is returned. - */ - public FormPropertyConfig[] findFormPropertyConfigs() { - FormPropertyConfig[] results = - new FormPropertyConfig[formProperties.size()]; - - return ((FormPropertyConfig[]) formProperties.values().toArray(results)); - } - - /** - * Freeze the configuration of this component. - */ - public void freeze() { - super.freeze(); - - FormPropertyConfig[] fpconfigs = findFormPropertyConfigs(); - - for (int i = 0; i < fpconfigs.length; i++) { - fpconfigs[i].freeze(); - } - } - - /** - *

Inherit values that have not been overridden from the provided - * config object. Subclasses overriding this method should verify that - * the given parameter is of a class that contains a property it is trying - * to inherit:

- * - *
-     * if (config instanceof MyCustomConfig) {
-     *     MyCustomConfig myConfig =
-     *         (MyCustomConfig) config;
-     *
-     *     if (getMyCustomProp() == null) {
-     *         setMyCustomProp(myConfig.getMyCustomProp());
-     *     }
-     * }
-     * 
- * - *

If the given config is extending another object, those - * extensions should be resolved before it's used as a parameter to this - * method.

- * - * @param config The object that this instance will be inheriting its - * values from. - * @see #processExtends(ModuleConfig) - */ - public void inheritFrom(FormBeanConfig config) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException, InvocationTargetException { - throwIfConfigured(); - - // Inherit values that have not been overridden - if (getName() == null) { - setName(config.getName()); - } - - if (!isRestricted()) { - setRestricted(config.isRestricted()); - } - - if (getType() == null) { - setType(config.getType()); - } - - inheritFormProperties(config); - inheritProperties(config); - } - - /** - *

Inherit configuration information from the FormBeanConfig that this - * instance is extending. This method verifies that any form bean config - * object that it inherits from has also had its processExtends() method - * called.

- * - * @param moduleConfig The {@link ModuleConfig} that this bean is from. - * @see #inheritFrom(FormBeanConfig) - */ - public void processExtends(ModuleConfig moduleConfig) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException, InvocationTargetException { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - String ancestor = getExtends(); - - if ((!extensionProcessed) && (ancestor != null)) { - FormBeanConfig baseConfig = - moduleConfig.findFormBeanConfig(ancestor); - - if (baseConfig == null) { - throw new NullPointerException("Unable to find " - + "form bean '" + ancestor + "' to extend."); - } - - // Check against circule inheritance and make sure the base config's - // own extends have been processed already - if (checkCircularInheritance(moduleConfig)) { - throw new IllegalArgumentException( - "Circular inheritance detected for form bean " + getName()); - } - - // Make sure the ancestor's own extension has been processed. - if (!baseConfig.isExtensionProcessed()) { - baseConfig.processExtends(moduleConfig); - } - - // Copy values from the base config - inheritFrom(baseConfig); - } - - extensionProcessed = true; - } - - /** - * Remove the specified form property configuration instance. - * - * @param config FormPropertyConfig instance to be removed - */ - public void removeFormPropertyConfig(FormPropertyConfig config) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - formProperties.remove(config.getName()); - } - - /** - * Return a String representation of this object. - */ - public String toString() { - StringBuffer sb = new StringBuffer("FormBeanConfig["); - - sb.append("name="); - sb.append(this.name); - sb.append(",type="); - sb.append(this.type); - sb.append(",extends="); - sb.append(this.inherit); - sb.append("]"); - - return (sb.toString()); - } - - // ------------------------------------------------------ Protected Methods - - /** - * Return the Class instance for the form bean implementation - * configured by this FormBeanConfig instance. This method - * uses the same algorithm as RequestUtils.applicationClass() - * but is reproduced to avoid a runtime dependence. - */ - protected Class formBeanClass() { - ClassLoader classLoader = - Thread.currentThread().getContextClassLoader(); - - if (classLoader == null) { - classLoader = this.getClass().getClassLoader(); - } - - try { - return (classLoader.loadClass(getType())); - } catch (Exception e) { - return (null); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/FormPropertyConfig.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/FormPropertyConfig.java deleted file mode 100644 index b1462a0afa5..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/FormPropertyConfig.java +++ /dev/null @@ -1,424 +0,0 @@ -/* - * $Id: FormPropertyConfig.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import org.apache.commons.beanutils.ConvertUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.lang.reflect.Array; -import java.lang.reflect.InvocationTargetException; - -/** - *

A JavaBean representing the configuration information of a - * <form-property> element in a Struts configuration - * file.

- * - * @version $Rev: 471754 $ $Date: 2005-11-12 11:52:08 -0500 (Sat, 12 Nov 2005)$ - * @since Struts 1.1 - */ -public class FormPropertyConfig extends BaseConfig { - /** - * The logging instance - */ - private static final Log log = LogFactory.getLog(FormPropertyConfig.class); - - // ----------------------------------------------------- Instance Variables - // ------------------------------------------------------------- Properties - - /** - * String representation of the initial value for this property. - */ - protected String initial = null; - - /** - * The JavaBean property name of the property described by this element. - */ - protected String name = null; - - /** - *

The conditions under which the property described by this element - * should be reset to its initial value when the form's - * reset method is called.

This may be set to true (to - * always reset the property) or a comma-separated list of HTTP request - * methods.

- * - * @since Struts 1.3 - */ - protected String reset = null; - - /** - *

The size of the array to be created if this property is an array - * type and there is no specified initial value. This value - * must be non-negative.

- * - * @since Struts 1.1 - */ - protected int size = 0; - - /** - * The fully qualified Java class name of the implementation class of this - * bean property, optionally followed by [] to indicate that - * the property is indexed. - */ - protected String type = null; - - // ----------------------------------------------------------- Constructors - - /** - * Standard no-arguments constructor for dynamic instantiation. - */ - public FormPropertyConfig() { - super(); - } - - /** - * Constructor that preconfigures the relevant properties. - * - * @param name Name of this property - * @param type Fully qualified class name of this property - * @param initial Initial value of this property (if any) - */ - public FormPropertyConfig(String name, String type, String initial) { - this(name, type, initial, 0); - } - - /** - * Constructor that preconfigures the relevant properties. - * - * @param name Name of this property - * @param type Fully qualified class name of this property - * @param initial Initial value of this property (if any) - * @param reset The conditions under which this property will be reset - * to its initial value. - */ - public FormPropertyConfig(String name, String type, String initial, - String reset) { - this(name, type, initial, reset, 0); - } - - /** - * Constructor that preconfigures the relevant properties. - * - * @param name Name of this property - * @param type Fully qualified class name of this property - * @param initial Initial value of this property (if any) - * @param size Size of the array to be created if this property is an - * array with no defined initial value - */ - public FormPropertyConfig(String name, String type, String initial, int size) { - this(name, type, initial, null, size); - } - - /** - * Constructor that preconfigures the relevant properties. - * - * @param name Name of this property - * @param type Fully qualified class name of this property - * @param initial Initial value of this property (if any) - * @param size Size of the array to be created if this property is an - * array with no defined initial value - * @param reset The conditions under which this property will be reset - * to its initial value. - */ - public FormPropertyConfig(String name, String type, String initial, - String reset, int size) { - super(); - setName(name); - setType(type); - setInitial(initial); - setReset(reset); - setSize(size); - } - - public String getInitial() { - return (this.initial); - } - - public void setInitial(String initial) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.initial = initial; - } - - public String getName() { - return (this.name); - } - - public void setName(String name) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.name = name; - } - - public String getReset() { - return (this.reset); - } - - public void setReset(String reset) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.reset = reset; - } - - public int getSize() { - return (this.size); - } - - public void setSize(int size) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - if (size < 0) { - throw new IllegalArgumentException("size < 0"); - } - - this.size = size; - } - - public String getType() { - return (this.type); - } - - public void setType(String type) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.type = type; - } - - /** - * Return a Class corresponds to the value specified for the - * type property, taking into account the trailing "[]" for - * arrays (as well as the ability to specify primitive Java types). - */ - public Class getTypeClass() { - // Identify the base class (in case an array was specified) - String baseType = getType(); - boolean indexed = false; - - if (baseType.endsWith("[]")) { - baseType = baseType.substring(0, baseType.length() - 2); - indexed = true; - } - - // Construct an appropriate Class instance for the base class - Class baseClass = null; - - if ("boolean".equals(baseType)) { - baseClass = Boolean.TYPE; - } else if ("byte".equals(baseType)) { - baseClass = Byte.TYPE; - } else if ("char".equals(baseType)) { - baseClass = Character.TYPE; - } else if ("double".equals(baseType)) { - baseClass = Double.TYPE; - } else if ("float".equals(baseType)) { - baseClass = Float.TYPE; - } else if ("int".equals(baseType)) { - baseClass = Integer.TYPE; - } else if ("long".equals(baseType)) { - baseClass = Long.TYPE; - } else if ("short".equals(baseType)) { - baseClass = Short.TYPE; - } else { - ClassLoader classLoader = - Thread.currentThread().getContextClassLoader(); - - if (classLoader == null) { - classLoader = this.getClass().getClassLoader(); - } - - try { - baseClass = classLoader.loadClass(baseType); - } catch (ClassNotFoundException ex) { - log.error("Class '" + baseType + - "' not found for property '" + name + "'"); - baseClass = null; - } - } - - // Return the base class or an array appropriately - if (indexed) { - return (Array.newInstance(baseClass, 0).getClass()); - } else { - return (baseClass); - } - } - - // --------------------------------------------------------- Public Methods - - /** - *

Return an object representing the initial value of this property. - * This is calculated according to the following algorithm:

- * - *
    - * - *
  • If the value you have specified for the type property - * represents an array (i.e. it ends with "[]"): - * - *
      - * - *
    • If you have specified a value for the initial - * property, ConvertUtils.convert will be called to convert - * it into an instance of the specified array type.
    • - * - *
    • If you have not specified a value for the initial - * property, an array of the length specified by the size - * property will be created. Each element of the array will be - * instantiated via the zero-args constructor on the specified class (if - * any). Otherwise, null will be returned.
    • - * - *
  • - * - *
  • If the value you have specified for the type property - * does not represent an array: - * - *
      - * - *
    • If you have specified a value for the initial - * property, ConvertUtils.convert will be called to convert - * it into an object instance.
    • - * - *
    • If you have not specified a value for the initial - * attribute, Struts will instantiate an instance via the zero-args - * constructor on the specified class (if any). Otherwise, - * null will be returned.
    • - * - *
  • - * - *
- */ - public Object initial() { - Object initialValue = null; - - try { - Class clazz = getTypeClass(); - - if (clazz.isArray()) { - if (initial != null) { - initialValue = ConvertUtils.convert(initial, clazz); - } else { - initialValue = - Array.newInstance(clazz.getComponentType(), size); - - if (!(clazz.getComponentType().isPrimitive())) { - for (int i = 0; i < size; i++) { - try { - Array.set(initialValue, i, - clazz.getComponentType().newInstance()); - } catch (Throwable t) { - log.error("Unable to create instance of " - + clazz.getName() + " for property=" + name - + ", type=" + type + ", initial=" + initial - + ", size=" + size + "."); - - //FIXME: Should we just dump the entire application/module ? - } - } - } - } - } else { - if (initial != null) { - initialValue = ConvertUtils.convert(initial, clazz); - } else { - initialValue = clazz.newInstance(); - } - } - } catch (Throwable t) { - initialValue = null; - } - - return (initialValue); - } - - /** - *

Inherit values that have not been overridden from the provided - * config object. Subclasses overriding this method should verify that - * the given parameter is of a class that contains a property it is trying - * to inherit:

- *
-     * if (config instanceof MyCustomFormPropertyConfig) {
-     *     MyCustomFormPropertyConfig myConfig =
-     *         (MyCustomFormPropertyConfig) config;
-     *
-     *     if (getMyCustomProp() == null) {
-     *         setMyCustomProp(myConfig.getMyCustomProp());
-     *     }
-     * }
-     * 
- * - * @param config The object that this instance will be inheriting its - * values from. - */ - public void inheritFrom(FormPropertyConfig config) - throws IllegalAccessException, InvocationTargetException, - InstantiationException, ClassNotFoundException { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - if (getInitial() == null) { - setInitial(config.getInitial()); - } - - if (getName() == null) { - setName(config.getName()); - } - - if (getSize() == 0) { - setSize(config.getSize()); - } - - if (getType() == null) { - setType(config.getType()); - } - - inheritProperties(config); - } - - /** - * Return a String representation of this object. - */ - public String toString() { - StringBuffer sb = new StringBuffer("FormPropertyConfig["); - - sb.append("name="); - sb.append(this.name); - sb.append(",type="); - sb.append(this.type); - sb.append(",initial="); - sb.append(this.initial); - sb.append(",reset="); - sb.append(this.reset); - sb.append("]"); - - return (sb.toString()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ForwardConfig.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ForwardConfig.java deleted file mode 100644 index 241320b348b..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ForwardConfig.java +++ /dev/null @@ -1,499 +0,0 @@ -/* - * $Id: ForwardConfig.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import java.lang.reflect.InvocationTargetException; - -/** - *

A JavaBean representing the configuration information of a - * <forward> element from a Struts configuration file.

- * - * @version $Rev: 471754 $ $Date: 2005-08-14 17:24:39 -0400 (Sun, 14 Aug 2005) - * $ - * @since Struts 1.1 - */ -public class ForwardConfig extends BaseConfig { - // ------------------------------------------------------------- Properties - - /** - * The name of the ForwardConfig that this object should inherit - * properties from. - */ - protected String inherit = null; - - /** - * Have the inheritance values for this class been applied? - */ - protected boolean extensionProcessed = false; - - /** - * The unique identifier of this forward, which is used to reference it in - * Action classes. - */ - protected String name = null; - - /** - *

The URL to which this ForwardConfig entry points, which - * must start with a slash ("/") character. It is interpreted according - * to the following rules:

- * - *
    - * - *
  • If contextRelative property is true, the - * path is considered to be context-relative within the current web - * application (even if we are in a named module). It will be prefixed by - * the context path to create a server-relative URL.
  • - * - *
  • If the contextRelative property is false, the path is - * considered to be the module-relative portion of the URL. It will be - * used as the replacement for the $P marker in the - * forwardPattern property defined on the {@link - * ControllerConfig} element for our current module. For the default - * forwardPattern value of $C$M$P, the resulting - * server-relative URL will be the concatenation of the context path, the - * module prefix, and the path from this - * ForwardConfig. - * - *
  • - * - *
- */ - protected String path = null; - - /** - *

The prefix of the module to which this ForwardConfig - * entry points, which must start with a slash ("/") character.

- *

Usage note: If a forward config is used in a hyperlink, and a module - * is specified, the path must lead to another action and not directly to - * a page. This is in keeping with rule that in a modular application all - * links must be to an action rather than a page.

- */ - protected String module = null; - - /** - * Should a redirect be used to transfer control to the specified path? - */ - protected boolean redirect = false; - - /** - *

The name of a commons-chain command which should be - * looked up and executed before Struts dispatches control to the view - * represented by this config.

- */ - protected String command = null; - - /** - *

The name of a commons-chain catalog in which - * command should be looked up. If this value is undefined, - * then the command will be looked up in the "default" catalog. This - * value has no meaning except in the context of the command - * property.

- */ - protected String catalog = null; - - // ----------------------------------------------------------- Constructors - - /** - * Construct a new instance with default values. - */ - public ForwardConfig() { - super(); - } - - /** - * Construct a new instance with the specified values. - * - * @param name Name of this forward - * @param path Path to which control should be forwarded or - * redirected - * @param redirect Should we do a redirect? - */ - public ForwardConfig(String name, String path, boolean redirect) { - super(); - setName(name); - setPath(path); - setRedirect(redirect); - } - - /** - *

Construct a new instance with the specified values.

- * - * @param name Name of this forward - * @param path Path to which control should be forwarded or - * redirected - * @param redirect Should we do a redirect? - * @param module Module prefix, if any - */ - public ForwardConfig(String name, String path, boolean redirect, - String module) { - super(); - setName(name); - setPath(path); - setRedirect(redirect); - setModule(module); - } - - /** - *

Construct a new instance based on the values of another - * ForwardConfig.

- * - * @param copyMe A ForwardConfig instance to copy - * @since Struts 1.3.6 - */ - public ForwardConfig(ForwardConfig copyMe) { - this(copyMe.getName(), copyMe.getPath(), copyMe.getRedirect(), - copyMe.getModule()); - } - - public String getExtends() { - return (this.inherit); - } - - public void setExtends(String inherit) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.inherit = inherit; - } - - public boolean isExtensionProcessed() { - return extensionProcessed; - } - - public String getName() { - return (this.name); - } - - public void setName(String name) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.name = name; - } - - public String getPath() { - return (this.path); - } - - public void setPath(String path) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.path = path; - } - - public String getModule() { - return (this.module); - } - - public void setModule(String module) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.module = module; - } - - public boolean getRedirect() { - return (this.redirect); - } - - public void setRedirect(boolean redirect) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.redirect = redirect; - } - - public String getCommand() { - return (this.command); - } - - public void setCommand(String command) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.command = command; - } - - public String getCatalog() { - return (this.catalog); - } - - public void setCatalog(String catalog) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.catalog = catalog; - } - - // ------------------------------------------------------ Protected Methods - - /** - *

Traces the hierarchy of this object to check if any of the ancestors - * are extending this instance.

- * - * @param moduleConfig The {@link ModuleConfig} that this config is from. - * @param actionConfig The {@link ActionConfig} that this config is from, - * if applicable. This parameter must be null if this - * forward config is a global forward. - * @return true if circular inheritance was detected. - */ - protected boolean checkCircularInheritance(ModuleConfig moduleConfig, - ActionConfig actionConfig) { - String ancestorName = getExtends(); - - if (ancestorName == null) { - return false; - } - - // Find our ancestor - ForwardConfig ancestor = null; - - // First check the action config - if (actionConfig != null) { - ancestor = actionConfig.findForwardConfig(ancestorName); - - // If we found *this*, set ancestor to null to check for a global def - if (ancestor == this) { - ancestor = null; - } - } - - // Then check the global forwards - if (ancestor == null) { - ancestor = moduleConfig.findForwardConfig(ancestorName); - - if (ancestor != null) { - // If the ancestor is a global forward, set actionConfig - // to null so further searches are only done among - // global forwards. - actionConfig = null; - } - } - - while (ancestor != null) { - // Check if an ancestor is extending *this* - if (ancestor == this) { - return true; - } - - // Get our ancestor's ancestor - ancestorName = ancestor.getExtends(); - - // check against ancestors extending same named ancestors - if (ancestor.getName().equals(ancestorName)) { - // If the ancestor is extending a config with the same name - // make sure we look for its ancestor in the global forwards. - // If we're already at that level, we return false. - if (actionConfig == null) { - return false; - } else { - // Set actionConfig = null to force us to look for global - // forwards - actionConfig = null; - } - } - - ancestor = null; - - // First check the action config - if (actionConfig != null) { - ancestor = actionConfig.findForwardConfig(ancestorName); - } - - // Then check the global forwards - if (ancestor == null) { - ancestor = moduleConfig.findForwardConfig(ancestorName); - - if (ancestor != null) { - // Limit further checks to moduleConfig. - actionConfig = null; - } - } - } - - return false; - } - - // --------------------------------------------------------- Public Methods - - /** - *

Inherit values that have not been overridden from the provided - * config object. Subclasses overriding this method should verify that - * the given parameter is of a class that contains a property it is trying - * to inherit:

- * - *
-     * if (config instanceof MyCustomConfig) {
-     *     MyCustomConfig myConfig =
-     *         (MyCustomConfig) config;
-     *
-     *     if (getMyCustomProp() == null) {
-     *         setMyCustomProp(myConfig.getMyCustomProp());
-     *     }
-     * }
-     * 
- * - *

If the given config is extending another object, those - * extensions should be resolved before it's used as a parameter to this - * method.

- * - * @param config The object that this instance will be inheriting its - * values from. - * @see #processExtends(ModuleConfig, ActionConfig) - */ - public void inheritFrom(ForwardConfig config) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException, InvocationTargetException { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - // Inherit values that have not been overridden - if (getCatalog() == null) { - setCatalog(config.getCatalog()); - } - - if (getCommand() == null) { - setCommand(config.getCommand()); - } - - if (getModule() == null) { - setModule(config.getModule()); - } - - if (getName() == null) { - setName(config.getName()); - } - - if (getPath() == null) { - setPath(config.getPath()); - } - - if (!getRedirect()) { - setRedirect(config.getRedirect()); - } - - inheritProperties(config); - } - - /** - *

Inherit configuration information from the ForwardConfig that this - * instance is extending. This method verifies that any forward config - * object that it inherits from has also had its processExtends() method - * called.

- * - * @param moduleConfig The {@link ModuleConfig} that this config is from. - * @param actionConfig The {@link ActionConfig} that this config is from, - * if applicable. This must be null for global - * forwards. - * @see #inheritFrom(ForwardConfig) - */ - public void processExtends(ModuleConfig moduleConfig, - ActionConfig actionConfig) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException, InvocationTargetException { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - String ancestorName = getExtends(); - - if ((!extensionProcessed) && (ancestorName != null)) { - ForwardConfig baseConfig = null; - - // We only check the action config if we're not a global forward - boolean checkActionConfig = - (this != moduleConfig.findForwardConfig(getName())); - - // ... and the action config was provided - checkActionConfig &= (actionConfig != null); - - // ... and we're not extending a config with the same name - // (because if we are, that means we're an action-level forward - // extending a global forward). - checkActionConfig &= !ancestorName.equals(getName()); - - // We first check in the action config's forwards - if (checkActionConfig) { - baseConfig = actionConfig.findForwardConfig(ancestorName); - } - - // Then check the global forwards - if (baseConfig == null) { - baseConfig = moduleConfig.findForwardConfig(ancestorName); - } - - if (baseConfig == null) { - throw new NullPointerException("Unable to find " + "forward '" - + ancestorName + "' to extend."); - } - - // Check for circular inheritance and make sure the base config's - // own extends have been processed already - if (checkCircularInheritance(moduleConfig, actionConfig)) { - throw new IllegalArgumentException( - "Circular inheritance detected for forward " + getName()); - } - - if (!baseConfig.isExtensionProcessed()) { - baseConfig.processExtends(moduleConfig, actionConfig); - } - - // copy values from the base config - inheritFrom(baseConfig); - } - - extensionProcessed = true; - } - - /** - * Return a String representation of this object. - */ - public String toString() { - StringBuffer sb = new StringBuffer("ForwardConfig["); - - sb.append("name="); - sb.append(this.name); - sb.append(",path="); - sb.append(this.path); - sb.append(",redirect="); - sb.append(this.redirect); - sb.append(",module="); - sb.append(this.module); - sb.append(",extends="); - sb.append(this.inherit); - sb.append(",catalog="); - sb.append(this.catalog); - sb.append(",command="); - sb.append(this.command); - sb.append("]"); - - return (sb.toString()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/MessageResourcesConfig.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/MessageResourcesConfig.java deleted file mode 100644 index 9e5fec65974..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/MessageResourcesConfig.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * $Id: MessageResourcesConfig.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import org.apache.struts.Globals; - -/** - *

A JavaBean representing the configuration information of a - * <message-resources> element in a Struts configuration - * file.

- * - * @version $Rev: 471754 $ $Date: 2005-08-29 23:57:50 -0400 (Mon, 29 Aug 2005) - * $ - * @since Struts 1.1 - */ -public class MessageResourcesConfig extends BaseConfig { - // ------------------------------------------------------------- Properties - - /** - * Fully qualified Java class name of the MessageResourcesFactory class we - * should use. - */ - protected String factory = - "org.apache.struts.util.PropertyMessageResourcesFactory"; - - /** - * The servlet context attributes key under which this MessageResources - * instance is stored. - */ - protected String key = Globals.MESSAGES_KEY; - - /** - * Should we return null for unknown message keys? - */ - protected boolean nullValue = true; - - /** - * Indicates whether 'escape processing' should be performed on the error - * message string. - */ - private boolean escape = true; - - /** - * Parameter that is passed to the createResources() method - * of our MessageResourcesFactory implementation. - */ - protected String parameter = null; - - public String getFactory() { - return (this.factory); - } - - public void setFactory(String factory) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.factory = factory; - } - - public String getKey() { - return (this.key); - } - - public void setKey(String key) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.key = key; - } - - public boolean getNull() { - return (this.nullValue); - } - - public void setNull(boolean nullValue) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.nullValue = nullValue; - } - - /** - * Indicates whether 'escape processing' should be performed on the error - * message string. - * - * @since Struts 1.2.8 - */ - public boolean isEscape() { - return escape; - } - - /** - * Set whether 'escape processing' should be performed on the error - * message string. - * - * @since Struts 1.2.8 - */ - public void setEscape(boolean escape) { - this.escape = escape; - } - - public String getParameter() { - return (this.parameter); - } - - public void setParameter(String parameter) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - this.parameter = parameter; - } - - // --------------------------------------------------------- Public Methods - - /** - * Return a String representation of this object. - */ - public String toString() { - StringBuffer sb = new StringBuffer("MessageResourcesConfig["); - - sb.append("factory="); - sb.append(this.factory); - sb.append(",null="); - sb.append(this.nullValue); - sb.append(",escape="); - sb.append(this.escape); - sb.append(",parameter="); - sb.append(this.parameter); - sb.append("]"); - - return (sb.toString()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ModuleConfig.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ModuleConfig.java deleted file mode 100644 index f0c5b838e5e..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ModuleConfig.java +++ /dev/null @@ -1,330 +0,0 @@ -/* - * $Id: ModuleConfig.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - - -/** - *

The collection of static configuration information that describes a - * Struts-based module. Multiple modules are identified by a prefix - * at the beginning of the context relative portion of the request URI. If no - * module prefix can be matched, the default configuration (with a prefix - * equal to a zero-length string) is selected, which is elegantly backwards - * compatible with the previous Struts behavior that only supported one - * module.

- * - * @version $Rev: 471754 $ $Date: 2005-08-06 04:12:10 -0400 (Sat, 06 Aug 2005) - * $ - * @since Struts 1.1 - */ -public interface ModuleConfig { - /** - *

Has this module been completely configured yet. Once this flag has - * been set, any attempt to modify the configuration will return an - * IllegalStateException.

- */ - boolean getConfigured(); - - /** - *

The controller configuration object for this module.

- */ - ControllerConfig getControllerConfig(); - - /** - *

The controller configuration object for this module.

- * - * @param cc The controller configuration object for this module. - */ - void setControllerConfig(ControllerConfig cc); - - /** - *

The prefix of the context-relative portion of the request URI, used - * to select this configuration versus others supported by the controller - * servlet. A configuration with a prefix of a zero-length String is the - * default configuration for this web module.

- */ - String getPrefix(); - - /** - *

The prefix of the context-relative portion of the request URI, used - * to select this configuration versus others supported by the controller - * servlet. A configuration with a prefix of a zero-length String is the - * default configuration for this web module.

- * - * @param prefix The prefix of the context-relative portion of the request - * URI. - */ - public void setPrefix(String prefix); - - /** - *

The default class name to be used when creating action form bean - * instances.

- */ - String getActionFormBeanClass(); - - /** - *

The default class name to be used when creating action form bean - * instances.

- * - * @param actionFormBeanClass default class name to be used when creating - * action form bean instances. - */ - void setActionFormBeanClass(String actionFormBeanClass); - - /** - *

The default class name to be used when creating action mapping - * instances.

- */ - String getActionMappingClass(); - - /** - *

The default class name to be used when creating action mapping - * instances.

- * - * @param actionMappingClass default class name to be used when creating - * action mapping instances. - */ - void setActionMappingClass(String actionMappingClass); - - /** - *

Add a new ActionConfig instance to the set associated - * with this module.

- * - * @param config The new configuration instance to be added - * @throws IllegalStateException if this module configuration has been - * frozen - */ - void addActionConfig(ActionConfig config); - - /** - *

Add a new ExceptionConfig instance to the set - * associated with this module.

- * - * @param config The new configuration instance to be added - * @throws IllegalStateException if this module configuration has been - * frozen - */ - void addExceptionConfig(ExceptionConfig config); - - /** - *

Add a new FormBeanConfig instance to the set - * associated with this module.

- * - * @param config The new configuration instance to be added - * @throws IllegalStateException if this module configuration has been - * frozen - */ - void addFormBeanConfig(FormBeanConfig config); - - /** - *

The default class name to be used when creating action forward - * instances.

- */ - String getActionForwardClass(); - - /** - *

The default class name to be used when creating action forward - * instances.

- * - * @param actionForwardClass default class name to be used when creating - * action forward instances. - */ - void setActionForwardClass(String actionForwardClass); - - /** - *

Add a new ForwardConfig instance to the set of global - * forwards associated with this module.

- * - * @param config The new configuration instance to be added - * @throws IllegalStateException if this module configuration has been - * frozen - */ - void addForwardConfig(ForwardConfig config); - - /** - *

Add a new MessageResourcesConfig instance to the set - * associated with this module.

- * - * @param config The new configuration instance to be added - * @throws IllegalStateException if this module configuration has been - * frozen - */ - void addMessageResourcesConfig(MessageResourcesConfig config); - - /** - *

Add a newly configured {@link PlugInConfig} instance to the set of - * plug-in Actions for this module.

- * - * @param plugInConfig The new configuration instance to be added - */ - void addPlugInConfig(PlugInConfig plugInConfig); - - /** - *

Return the action configuration for the specified path, if any; - * otherwise return null.

- * - * @param path Path of the action configuration to return - */ - ActionConfig findActionConfig(String path); - - /** - *

Return the action configurations for this module. If there are - * none, a zero-length array is returned.

- */ - ActionConfig[] findActionConfigs(); - - /** - *

Returns the action configuration for the specifed action - * action identifier.

- * - * @param actionId the action identifier - * @return the action config if found; otherwise null - * @see ActionConfig#getActionId() - * @since Struts 1.3.6 - */ - ActionConfig findActionConfigId(String actionId); - - /** - *

Return the exception configuration for the specified type, if any; - * otherwise return null.

- * - * @param type Exception class name to find a configuration for - */ - ExceptionConfig findExceptionConfig(String type); - - /** - *

Perform a recursive search for an ExceptionConfig registered for - * this class, or for any superclass. This should only be used in the - * case when an ActionConfig is not available; otherwise, use - * ActionConfig.findException(Class) to preserve the search - * order.

- * - * @param type Exception class name to find a configuration for - * @see ActionConfig findException(Class) - */ - ExceptionConfig findException(Class type); - - /** - *

Return the exception configurations for this module. If there are - * none, a zero-length array is returned.

- */ - ExceptionConfig[] findExceptionConfigs(); - - /** - *

Return the form bean configuration for the specified key, if any; - * otherwise return null. - * - * @param name Name of the form bean configuration to return - */ - FormBeanConfig findFormBeanConfig(String name); - - /** - *

Return the form bean configurations for this module. If there are - * none, a zero-length array is returned.

- */ - FormBeanConfig[] findFormBeanConfigs(); - - /** - *

Return the forward configuration for the specified key, if any; - * otherwise return null.

- * - * @param name Name of the forward configuration to return - */ - ForwardConfig findForwardConfig(String name); - - /** - *

Return the form bean configurations for this module. If there are - * none, a zero-length array is returned.

- */ - ForwardConfig[] findForwardConfigs(); - - /** - *

Return the message resources configuration for the specified key, - * if any; otherwise return null.

- * - * @param key Key of the data source configuration to return - */ - MessageResourcesConfig findMessageResourcesConfig(String key); - - /** - *

Return the message resources configurations for this module. If - * there are none, a zero-length array is returned.

- */ - MessageResourcesConfig[] findMessageResourcesConfigs(); - - /** - *

Return the configured plug-in actions for this module. If there - * are none, a zero-length array is returned.

- */ - PlugInConfig[] findPlugInConfigs(); - - /** - *

Freeze the configuration of this module. After this method - * returns, any attempt to modify the configuration will return an - * IllegalStateException.

- */ - void freeze(); - - /** - *

Remove the specified action configuration instance.

- * - * @param config ActionConfig instance to be removed - * @throws IllegalStateException if this module configuration has been - * frozen - */ - void removeActionConfig(ActionConfig config); - - /** - *

Remove the specified exception configuration instance.

- * - * @param config ActionConfig instance to be removed - * @throws IllegalStateException if this module configuration has been - * frozen - */ - void removeExceptionConfig(ExceptionConfig config); - - /** - *

Remove the specified form bean configuration instance.

- * - * @param config FormBeanConfig instance to be removed - * @throws IllegalStateException if this module configuration has been - * frozen - */ - void removeFormBeanConfig(FormBeanConfig config); - - /** - *

Remove the specified forward configuration instance.

- * - * @param config ForwardConfig instance to be removed - * @throws IllegalStateException if this module configuration has been - * frozen - */ - void removeForwardConfig(ForwardConfig config); - - /** - *

Remove the specified message resources configuration instance. - *

- * - * @param config MessageResourcesConfig instance to be removed - * @throws IllegalStateException if this module configuration has been - * frozen - */ - void removeMessageResourcesConfig(MessageResourcesConfig config); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ModuleConfigFactory.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ModuleConfigFactory.java deleted file mode 100644 index d2c05ccf970..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/ModuleConfigFactory.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * $Id: ModuleConfigFactory.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.util.RequestUtils; - -/** - * A factory interface for creating {@link ModuleConfig}s. - * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - * @see ModuleConfig - */ -public abstract class ModuleConfigFactory { - /** - * The Java class to be used for ModuleConfigFactory - * instances. - */ - protected static Class clazz = null; - - /** - * Commons Logging instance. - */ - private static final Log LOG = LogFactory.getLog(ModuleConfigFactory.class); - - /** - * The fully qualified class name to be used for ModuleConfigFactory - * instances. - */ - protected static String factoryClass = - "org.apache.struts.config.impl.DefaultModuleConfigFactory"; - - /** - * Create and return a newly instansiated {@link ModuleConfig}. This - * method must be implemented by concrete subclasses. - * - * @param prefix Module prefix for Configuration - */ - public abstract ModuleConfig createModuleConfig(String prefix); - - // ------------------------------------------------------ Static Properties - - /** - * The fully qualified class name that is used for ModuleConfigFactory - * instances. - * - * @return class name that is used for ModuleConfigFactory - * instances - */ - public static String getFactoryClass() { - return (ModuleConfigFactory.factoryClass); - } - - /** - * Set the fully qualified class name that is used for - * ModuleConfigFactory instances. - * - * @param factoryClass name that is used for ModuleConfigFactory - * instances - */ - public static void setFactoryClass(String factoryClass) { - ModuleConfigFactory.factoryClass = factoryClass; - ModuleConfigFactory.clazz = null; - } - - // --------------------------------------------------------- Static Methods - - /** - * Create and return a ModuleConfigFactory instance of the - * appropriate class, which can be used to create customized - * ModuleConfig instances. If no such factory can be - * created, return null instead. - */ - public static ModuleConfigFactory createFactory() { - ModuleConfigFactory factory = null; - - try { - if (clazz == null) { - clazz = RequestUtils.applicationClass(factoryClass); - } - - factory = (ModuleConfigFactory) clazz.newInstance(); - } catch (ClassNotFoundException e) { - LOG.error("ModuleConfigFactory.createFactory()", e); - } catch (InstantiationException e) { - LOG.error("ModuleConfigFactory.createFactory()", e); - } catch (IllegalAccessException e) { - LOG.error("ModuleConfigFactory.createFactory()", e); - } - - return factory; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/PlugInConfig.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/PlugInConfig.java deleted file mode 100644 index cde647c8d8a..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/PlugInConfig.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * $Id: PlugInConfig.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import java.io.Serializable; - -import java.util.HashMap; -import java.util.Map; - -/** - *

A JavaBean representing the configuration information of a - * <plug-in> element in a Struts configuration file.

- *

Note that this class does not extend BaseConfig because it - * is more "internal" than the other classes which do, and because this class - * has an existing "properties" object which collides with the one in - * BaseConfig. Also, since one always writes a concrete PlugIn - * implementation, there seems to be less call for an arbitrary property map; - * one can simply use bean properties instead.

- * - * @version $Rev: 471754 $ $Date: 2005-05-12 18:41:19 -0400 (Thu, 12 May 2005) - * $ - * @since Struts 1.1 - */ -public class PlugInConfig implements Serializable { - // ----------------------------------------------------- Instance Variables - - /** - * Has this component been completely configured? - */ - protected boolean configured = false; - - /** - * A Map of the name-value pairs that will be used to - * configure the property values of a PlugIn instance. - */ - protected Map properties = new HashMap(); - - // ------------------------------------------------------------- Properties - - /** - * The fully qualified Java class name of the PlugIn - * implementation class being configured. - */ - protected String className = null; - - public String getClassName() { - return (this.className); - } - - public void setClassName(String className) { - this.className = className; - } - - // --------------------------------------------------------- Public Methods - - /** - * Add a new property name and value to the set that will be used to - * configure the PlugIn instance. - * - * @param name Property name - * @param value Property value - */ - public void addProperty(String name, String value) { - if (configured) { - throw new IllegalStateException("Configuration is frozen"); - } - - properties.put(name, value); - } - - /** - * Freeze the configuration of this component. - */ - public void freeze() { - configured = true; - } - - /** - * Return the properties that will be used to configure a - * PlugIn instance. - */ - public Map getProperties() { - return (properties); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/doc-files/configUML.gif b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/doc-files/configUML.gif deleted file mode 100644 index f9d829299427ea73bbedd50cf37696834a4f6119..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13761 zcmW+*WmH?;5=~nuP^>NP!Ci|7NpW}Apv7s?B89X-arkhD;10zdg1fs1cXuf8=sRoO zoSRuQvuE#p@+U`HR*Ij`#P$vJ^$p&H*g9D0w6#D6bOI; z0dODy0R#ZR03a9u1_K~q02B;>fdOzZ009O7AOIi)0EPe{5C9YcfI$Fo2mk>Ayz~P? z0bnQq0)1%=fI$IpC;;(-1p@$K05A*yfdQZ}01O6z!vF{v000L7;Q%lk0D%LbZ~zPr zfWrX@H~@eE01*H%0suh(pa=jA0e~X_2m}BC00aMx1BUzq0mJ^4f)N1l%alMM7z_kM zfM6&P3U@#mEM!YnDfPs*IQ3wPKg@9oYFdPC#K)^2~ zfzW@c5GWW51;e0VI24S4f?t>eVgKqOFfbGbhQYva7#INqzsLcE|7!|?gQ0LR3=W3F z!3a3`MI#^r{DK5QfT0L53;~8Czz75w@K4>Bc2LMad7!X=q@f4^^hGrw@E$>=LPu%XFvq> zg*oJ<7y*SLpl}2ffq(-3or@QGFK)jiy?FRy*NZd%Tm%CDX#oNL>j(qF;XpV7_+rkB z5B~&$fd9e3{>k&A#6Q1*kbkN{Apfvo5I7tHM?hZ0c;Wp*@rBL5fnZQL9QuO%?_>aB z|MZ2x{!Iyk!Qn7C0`>y_g7ebyrTQiDB?f1}xeyAb}BizNk1%27P}rI|JWS%caUxWOauUezIBWtH|z+1d50J zMS4C*yZCjFH^ zNYN%mTWjWPXIjQJ#xcni8&||D$Y~vnR9Q_H84lK#F4nOR4y1wH3qCh~zgS0x)s-9P z`ATkPt4!5FINlxUJ9lTR0lV&57RWi@M^bFJDLgGbrvO;!L2!7B{4pUJNm|XIz}JKZ2Tl3aIu=7A@9rJ&2tqJU#$Ga z&b#U6#G=XX`3qUv#?*!3_{MhQO0jd*$$T$CxJHxZkxE61W00?q+u0K`Y9bVWSQ_?a zi>v@5)n&b<;Zy1Qh1A%LmVPCmi>Gh;7w#*<@mHj;XN`j_qv~~k(d7lYGQ{~7P$>f5Oz0ST@o3FY zM!`JlkpVXxmm`Vxz{>z+0-aMh0qWf3rlo;k!$!(?P630|xMA5Z=`2P`8L?b%lXIPY z&fRI#i77*LqpxGD1H@2BIl5n6FU2T-z$T4~d_&-J|0=4jfHyf4nU2ZC;v-sqW_lfC zh^lYdQx(BMy2!jWS?s-q>_Kth1V2NB-VC8dCbORFR7o^#@EC|zc5Pc!-){W3@GPlw z*oR)+Oly%lq*HLR(b6f3H4)V!lb=@BzFr0votL3y$#F<*X>O7JR!~rK@j(XJ+dRjz zoAZ>kP`;vfhvjV|y2kbcbg}-jCv(&RRl^w03ZjoXp`{;^-;V7euNs|Vy-tqPN%pwfyW!P_CqRv zzucIauf-*p>5Fv1B$#6G&*%xm*XXK2j89>loe=LZ&KdHmqYue~r$+?t?`4zv>8O{h zNA#$V_%hx|-R{62@FUz;Jx*Air+v#GHrq_V!+-x38wiu|=^&Ki9Mb~*y`uKDkI@IX z-2l-4wqv?@%^0{K@$Axa_+P!&h>hm!-ctSZ{f8j%OhURE-E!;~%caa#9!hQj=X;M| zdWhGheG-G2>|vBnlo}`839B{&F_k}xn%s^@R(+Dfp8Q=(SwF1b!n}?w0{OXY z2xYM^nLjPttt;EI@{g9thRMLXbYaNc%LwsTUM#S#-m@v$Vf2l>;QDcVCQ@o2mbDZHU8mu$Mi94lPZg(Z>GJ-Tdp-?&(mz4ApKk+~@~ z2gp|$Xg+!H55;zkCc^tDu_xUsd~ne?5&_!iPMJJ%&6h?h_y37VHTXh|N z&HM&pUIkB*4*!@%NzzaW4GP0K9+--k7~&iVMi`z z4ox${vHT5LB0EL$k`^dGVrC_CpU0eT&(~E-W#o=!N6K8qk;Y`Za)?67lZyGLC6N_FOBkL}6L!${nxn^uk2#*K8I$ z4N#?CLp44n%_I1^IyrJt65nhHx0uuaz5k%8mXDPtv;1_edYRbN8@{jY^~qC<8-ICg z(S9B|U{5VGtl-y;UTlWJwKKh}m0C7v5{a30N42?z(^I|E3Dhr^eG5j&!z3oP>OB1y zD~|H)kV~-wIJ9<(kWe||tT_ZiYisp@O``Bq>{yMJ)k}irbz#atK?V8CtU5?C&W!i+ zCrZ?A?QjA$VrH|jKRWC2T>-tshhk3;zd_vb`jOM||CPp7)GT8+ym{Q0>n#GHq#&Wb zSK7t(LHwfl3xA{0`ZG>;Ml5`vuo)HY%m>-uOjBvAYXf8!{^m>ONlk;l_0v1FNy%2- zj_pnmxq9+M4hYzZ=|1PVD~?&H_WRfM7>i+aqWwR!F1sj0XMt(dcID2pk3}YvYXCh+r|?096d$u&JRZ^fq&uIQ*u}$&T_5MM5GZn+mklU{CO}5 zU|NOG&$qndWeq=4aCezp{8Yni+#sjk*|f2lhh3*We0&moyUY}yiz+-jmDkg>xsuB# zd1&v*8@`9`xO;=_*~>|77gBu3{|hdlbvoX`I>z?>`$P>WkL~2$XxZ}h^Eo89INn*Y zH7WKRkt#;UXQIBY)-8qC)H0(U0}ZVf`5$LbQ?4t`Fpq8xK+dp;56O#ZIcE1@Ksp5J zzjn-I07ceu1cyHj&F6RGDsY~3&dR8#*}dv4FQZ(ggJZm*%{bE4t>M5`lhS&b!_Bbn z(0KcxrN_%>dz^jc(Y27sC#u-U@IX}Qhv;6lku^)&A&;)3`Bss(HsiHP3-ZOejMR}D z-v->9(0%RVrhwA8=000iuWp^^`?=B9>v6RagnHNQwj1ZbZ1Z1~qJ?F|g@_YJ>C;3k z`S-3!!5(oj*YUKBboR!!WZ9L5Yreq8r&-!fJl`L9Uf-RV*xg(ePp3Sb=<)BqxM_W& zKS_|h$Rx*0Bqy9B$43Q{@VgNd{G6cIKq7>qivuZ9)!yEcWzKpjqqrd~gtK2eY?ufE zwMp5uJu*M(Q0v(A?pV|8zGvJeV=nmi+1alg#ZR&8(fJsRfqS)=7ZS9k*DPBpa|>L&&|B^6v_8$uCJXYaS% zzdz9Y=CAssMC%u&9#HNYu)9w4mD?ZxCP47bXC)*v*rx1=8N2DOeR{rk463b0tZPy| zdw+sc3PYe>H8fMgcm?U_#3#YX7F;hpr4@ISjBGBdan@|;zNHxnp97k+2xgaWGpgf7jR&6;Q+T{gSw+5$rjFJG`@Zqa1Rv)3_TPBZTY`NzqF6otqwV>1 zkM|#~b@cO27}8z%V?kg>m#KDj)XzRb209vBd;ZYEp5JmCPFA;xP? z@p6awi9Q_8+XXIrP_Wc$<KrFQmH_jt&4c%;^?|Bxy8 zEEz`~bs1GQ4!xgFp$<-a&O%EWvetac5Av+^%S4HEV~pbM4_(%ctM5>ChGNn|rU`d&%MS+5Jju=IzYuPX@ z*+?_XO!}hKS4CN`WngRr(L-}#zmNmzzGUy9*)TO`e~rx&NhVs=h21Aca>zj+7w10sX@jcs#nvj#gem?&_Wi;|-Z4Qg3sas;5pMr{ zj&O3mghjrTYktmNE*}e0o{t_W)U%+xKHqpDKSVDHd|$BCR}ipY5PdIYCP-V-P?)+< zn68IYh8F(YvrrN$Qo9f0 ztBNuYDqm_Wzw9k*Ixk-*{v*c!N8-*+#s3dJdd2cyStV0GdCs3T&T?+EJk)nFd&F|6 z2Nmt@f2!C2EQeG~o)u5%D$f!Np?KxtgjTA#CY^><1<93B^;H#YRHAfLPB2xwcb74R zRuLB$gV3uVcB_;?ezK(piHamOxpJjiBo$KfK#7AAeUQ6+N(~i%jmtz$-+c`vwAOSG zXs%zY*;LEJ?-_(vSIb!^YE|1=R2wp1>+o%EmQ2WP0ohG55Unr?Bdi}U(y}NFG z#(n*NBn{Dnbs8k~VT<*@_#2X&8d6gTD}w8qi|X_i8*=m;^O%zw(HiTR8WR>9NwXTO z2O7&jO|M@!l`}O}r!=jaG?j!jH9j^61NWV>KI}(t}2f^K#Q^vkqKcd4oDB;a}6lg*)*)#aNLo$rRR4i}! zGpM~+x4qS~Jt?J~_%MZ(B~xUsm^vY%a^lnPV%%U!xZt?w8A-=8$x{BEsT6bM;~;J466%a!EXHbtIqB;BN$l#k=^(o4)Ftd95bUZI=xCCO-1`C>c2>?I z_+;2?goBokme_r+$+OJRMaR%>B;H*p-?>H*wV7Zl7;Jf+YvVQ)w{a8kJuF9sG^ipg zKxNu5pwEkQs3+r~heb;y!^$hUE`qAd*F!=7y=>IinJ$%g9D*2b@(R$8f0JzO`f{wh zuV!Py41CB@ob~TxQzZIjSo)andkl96wgaQn?ScX@29g*Dwgr0s7KZXQWMKIBjwE!J z@@5GLmJy>c+c8ubeF@}0H`28>j#se!5jHp`n9r}{`&l4<(l|JGcV@8D`*WdCo#C01`ZUNJy^k3{OFVROW^%~F~y07ab-R@wf91qv)B0Mt0AGStL z8}A>oS#6HPB(lXS?6)Z)NmG~*{yZ+-ls}fFBk-;tZP}OW$8Tp+9ayg(|6>`Q;-Jy) zqyTgL6X`TdOt&i8FsAcl>3*8*aJ4+W*DZb%D6@-b@6R!_o=aT5sqouF)!r&sy!P zHR9t=@|m@U_BEhS4TZ>hHRU>8`t)hadg;$~7Lgf@i*;6qH7+drd&7;~wRQgE>Ay7_ zMgmG3B1XwXq=^5m_-tdx>RJwrP8*K6MEzdoZI0Tj8x7 zqy4otCfsGa`pi`|5vPQ&*gH5!zL|Vz5X4*%F!XRZ%C-GlhqQ|QI!GnWG^48b z4Q3QY1y8@#rHFN440@8xtKjP+#R{Jf-(EvgbGM}35MjaTsKFS8 zvfPfo`#RSrHF-irpZ;sU&}tm?BIQtW^m>M5)1 zdxNc<-{mt_+LOC0(2qX+vx{`mF=HX>`EC!hN00qJ{^afpMQ?=N9WQoRq1`}NkPn}y zO~Wz~R{x#B>OJ@UW!&HSD(r>!wvl}0J6^$<{erMbRNEb?JM8eQ8>~UwOKtwk_OEmIgT%JLd)4ZU|!KM95qv}m9^3tTua<%5; zyNG0$)44F56E+`oO^bZE z2Rvu|+s$%t?=^_M{iNtu>F3vX z`d=%yNF~Ppyndtcrvr(v`cw?%0eR_t=LPX3M;F$I%lDG#L^-A1DAb4VyKw#9MG2B* z`dN3sBgzTs#kZImm&6iQ8*jtb#pUY52%vEgBXIXt=|YWSs%*##V=3*6JQW<5W*sbM zSK#cWsme2oW}Sg(KM!c{KimeSes za@FFrxKbY-)|-x0*XP-|n&ta}S34)6{$onVBEh0|J|Sp$Qr9}4EMCtRO|o{}wr;C- z5tJ#6X5iR+rDfnWdS=0>&lY7~XXw5fz-Q#KlUrxxb<)je{NrY;&e-=EnXrH8HC;W# z4_k`gBw$Cf&g6E=m4CfoE3V!&)Sm3bG@MTa*EE85Zj=7&eM@8dWP4+s2ZcRfwIT1|`TsyU(6SL7S+h26Pe@)PG`BhOm$}q1> z-8jZ|c8BWms#80G?0mtoj?8`DdiL>h#dj3%cFKdmXM0^W^6`63FuRDy7P9-3M@15W zi09r>?UQFoA&Q9C(c<;fLw>`vu=iOn@AKd6{uALJS9NaBkLmNX!ajHTwa-tu-v??h9%{}%2rl~n}lR4Ipl}f)qArWCE^me>iQ3=GnSi{cM?3_YY4cg#Z z|BxUlvB}8kDC=Tck!U5zAQh#jS-oD8rz6N>S)prqX)ujJc=ND@WWCn`p({-!+1Oh1_E4DPboT3PUgb(d%eU5IN%|dQ$&-;g{6S3J zXMWT2xMQ!>77HtN!<Nku#zl)gCaXFYYDiH{ z+bRUmYM}3F+}`2ZY0;8^rs=0OoN6L9x|6jf8D|84UD=o~)95W*X%!X5MLY0N>$lZ# zG|o(y)l@PWbTVjz_V7e}j%c-#x@X%k)&8Ul9xhggeD0*H&4|$4Fg50dL4L@kwlJX? z?On3`#G9#r)=-%U$fmkTg;phz<(`?M=y|P7*F5}sF8M(-$d!=Brd|>)*SG(sYLc7GocK1&jqkeJ9?K z&i6?*GrxQ9dE=CI;2$7+{J8|Ls@O0NbyjhR6We4Vh4}oqPPkMxROc^E@`8v~P-}=o z#8)1w;Y!B##T-Yu!xTOESqOU}nxp#^I^<9Rr4eBg?jT1ZrG)oI@w@ZaIqrvL)NJz( zcdyuSwjr|fsl?9cJH_C0uQkBpZKJM+-syYNf?F}UFIWy0p$+IAgc~mx!?;M! z*WG)RYq>&~3C#z^_=F#=Ln4jLayfb}W%CrzMLUeb3WspfyWjEp)$Bi(pZ(2t0^Qmt%S0jwh+b9Uz2hQ~oHdwdqc=OACJNjz? z^LjYh)7Px-#r1QW?;VV--$ImAHz=@6dp?VttA?g-($ALls2;#XWE^COrUdFw%7Y`tw?g?bhvvcI+3 zxl7(j-Z?fSIA*D^nN%ITem-^YC? zuo-h5Dn^QQa+~d5-K}lbEmQS0dixnX;z^CTW$XhAlJE#l`SxNoz8xkGQq_k8|bIA*h!W!qMGVkL@Sv+V(=vOWi?9U<9LyJ3tNmlH3L zCTx`C!{d63$TuDx+ZK){XJI0Rh}B!3zTJood67w5%B6)y@*y$ohbro7E#Ao2Z>kGlDUWgERA z#k~)WB@0ZXza)CAoW&%%c6>~dq!L7(l_&jiG2(NGD=keW-?BXu3nL-NrU{1n=a z_b`-viS|W;H3>f2aB|o#R&j$Sb!TcISAQgV zPZ0qWltf_+K@>9Z!pGM9K_S)>=(L|uvzyLcGDxme7CV); z%|sec$@^IpV>bsihd#tes+TB^4Mr2sa}b*gajJI%X{8@3CXzsEDJ-?*{qJz6 zIB|32*;x3RQ-}X@swZyr{W+}cH4qszmmuaI|C}npMK&=mCKErXMwweucu7V)DV$0p z+EOBecU7_`)*vL@%!>Jk^D&BdV00ElOlOGQT}0J6UKyF7?R&oGo3Gb|h;qY0mT+=67(#wZfZGJxAHBT)};*%!x6bw(1Yfx{@4`$=&xQL-WB88T7jvV&6-@5TOLn4q<*2Hg4tQk zqL0hCW8MNi-(H#8;om86sHNMELFMans!nVg;uUxNOvX&$C219Mw} z*;>xWYOZZM)_7Akx-!(wA%P#YZ3-rz@(j*$H$tCN$lf?qX=)5Vwut`h7sdWPtkYtM zRV-q{OM;d5pTjN zr6#mt{Bas5tc6`mYON<+TPVE*{k**(SY0h$7TW>*-nEZr30FIBLgsCGg9LaZx^^xG z1i(Zj(MaK5nd|1U>PdyZy6E;u3vAvS1V){$-?!yjwUXJkB?sA`&L^1Au?i&1v0s^et!+Q8+#5QSaKvBacv^2V z*Qb6m;fvAaG3rp#?BHgT-y={&(+|Y zVrU49TIeepyj*yTN-FMDzdF#o-^RLDMPD?Po8lm;9nAK@e6Y2?xn=)3#T{!gWoBj# z@3NH^hP0+xhHHuEJ=r?N?dFo$4Jnxk+38Op>36a1RgYjrv)HcN#`JH?8Di9BI7}1< zRHCS3x8!}aD&Fahu$Ol+Y)3mR3#nK!!6G^X*|Hsd5mdJx={aIODp&Mwp*kSuOov~- z?x+7ejjXDvZLWDH0;f`d|2JiTcUG0}8XcI9I3lvosah%qbHDw&L4;;?V$|U(YxSP) zpg0fyOkR7x-7OM-IQAQMl=D2>F5sZ1wq8m5#V*|TZJP89&+)BDBTB*)s@jS@-|)R<|75qRIg9nJkP#$?F1*EoqXPzVm_l#P9#Z? zPIN_VzdENDB{Ue3`-nY`XRP=BnfX7qSiD*D4@KuICg+FQBv_+oTm}f@mK7+^2n+qt zfwv>CL_f067{}@+Es7+-JM6>t$;kD|N3C7(wk#+??djTvx6Nsp@*<7Y)TOwM$HyA) zvh%&AL1BPHk+8G#<3*O&g~}zCK$=A7O2p}k0=2Cf({HPHhNED5%d+(2yphW$8rC8V zje13MxA4ow4_D+rM2c20?0U8jW|fw@V_kViQ!HY_TvaEV3t&$tArps+0MW zpu=#ZZ}4u*Rr@^KO&zPR$e0D?twrKS?MVDd&8{f~LXD^W6Y?lQJgy3Vjf+U5@cj<@i zBU&%2B8NyK+%x#P0)5AXZcMM&g$NxkiP_qxZCz6@%7i$@2dmd`{13(HFKd8*6*W#$ z@ZC@G9z?FzqRMP2Nw29_#LtU8ukaQdo~BIVqlL8})#(q^2zI(6gyK%Thb?)wbs~Fu zZ5sV;q;I_JY`99l>v#Khtgjrr`K{6BvxWKG`eW#go8ZzTaOQE^@koS1u!R1wd-1a5 zc~39Wbf~&wwCs4>mp;Z_PHk0kr^tp=(#^-n8-v^j?CsGPxMxe^fWT6`u5(aEK?OX& z{m5c<3heNIN5EybdrH|A^pRez#Of@o!!3pP)mZ&r7B~EYf5{TNIv@FT0uk387uv+K&&o>9W?v2VC8ZLGxh_E7smgz4K7V6AKMjkJ2PS>9`jgQWS z?l1Res~k_BguSmfb|#HUpGBVj-rroDv{i{f`{M|JKaq*Q1An10-7Z7X1#f}=ALRHc z1MqotD1Q^#)KdnM5xZvwQikwT1=A)6eF*w^S4S1f+IYMEgMNUYI-KV^&QxM$US}yn z`2LpqzxQjXQ4ybiThc_!GI^~3C(YKs6r(C9VBxPA;*ab2g)AW5f?x5{SX@#~fG)}6 z^%sjo3G(<{$e($Fcz60OE4nn-g<#TTj9lae#qYtgQD6Lz3aMc3#GVXU&xuYPoB+i}#=N+Jy+Q>!f!r}IGu^8KMZ2dYhT_sjn>8t?553em5jJ}9 zsR3K})}_YF`*=EyHv6`DM$^QFDO`b=U*eOl+7XLNsGc`H%pqI6yvM)09VGs=FwSFvac1pu#PCYND-B>ss z;&wmOt>itqpQ-@7u{$5#%1YrJlq6Bi9hCT#{6`(;l*~32t(S~DZDBa>U##`=cPr1V znh7o5Kry*6?>spj8T)tqNP>a|i>623;4fZ>1dCVG!rV(92Q8UP_KV1LKcNpTd}{&B zb9_UkA@=+m;qrm}D%&80G1l+8PxV=yy+rindyh<`;fT_3V(f+GLM;7Wo^NL?K|YX9l{tJM3)}edg11BwPr( zE-Vf!HbC1TzkhP&T9zpH#qx%UZ};Z^;IuPK`=wi%%u@nGe*cU7FXVv#7dv?_3hVP- z5;C(+1*|{p6DATR1_eX=!w(j7MgyH59jngM?mvMdX*na$=aOyBb}Tw#)bm(Be^*{V z{s|UNrNp-07Or0A2+&+2$4@Je#2$&%XtpMNbm!z-Zy$k;Po+v}1om&?=+yWVdtr^fd7`wZIEKyPAa`SXlVt>;sn;ynWI);p=p1arzK3Xe(+nwm z=gY+v+~UlB*qLF+jFyL}+V5+0>S_LoxGJ{HWzwDW)T$`LE45`U*54SIsjGD@bE?^w z)UZ)@Ji9VLAGU$Nm7YY~b4~v_02{_AsQ4AVK)ZUqdc4@!1PG-H-(eHp7 z@vg4^Ij8hn3_9mJQ(Xh4X_<3&G3BmYU8BEbnQN67{k~0IlRxTunR}<#*p!iS^ENHc z_tD~&F%$QeV=@P?Rp!-=X!q7@%#Zs_g{zP8r>zsij=>5Cs~)ctC0>)Cg3yJs-cWx} zdq=01$-CdWT!1cLdIa$cc!1EG?8#R*p4M&0u5CKhdwuNr`gEBfiJSkutDUvt{;m2r zeh5>(@*vBjWeGg7XrQ~jCx8?4M~JGW;Sj`t2Oq1De-kq~tXrha{^vunIi4KnHwFb$ zV%M1}x{b4bl?caBX=g?zc8uaes*5X#sh(^i3W$ zU^j|aZwxI=cn(!rmz>fKiMvI5-8zk$St33aw}kC?l@blhO^+1deCE=ti@4^F(hte6v z5r?{_ILwppBwj0*$2Bb{g2D&h2Psp3kNL8nF~9Pmdn1(D>e~&&PW``pU&E08(@Al> z8YI8eid$aq%^vaX#>RVN|ERuq82$V|)H2i&R^}9U+R_5#NA factory for creating {@link ModuleConfig} instances.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:45:39 -0400 (Sat, 07 May 2005) - * $ - * @see ModuleConfig - * @see ModuleConfigFactory - */ -public class DefaultModuleConfigFactory extends ModuleConfigFactory - implements Serializable { - // --------------------------------------------------------- Public Methods - - /** - *

Create and return a newly instansiated {@link ModuleConfig}. This - * method must be implemented by concrete subclasses.

- * - * @param prefix Module prefix for Configuration - */ - public ModuleConfig createModuleConfig(String prefix) { - return new ModuleConfigImpl(prefix); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/impl/ModuleConfigImpl.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/impl/ModuleConfigImpl.java deleted file mode 100644 index d08a6647085..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/impl/ModuleConfigImpl.java +++ /dev/null @@ -1,715 +0,0 @@ -/* - * $Id: ModuleConfigImpl.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config.impl; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ActionConfigMatcher; -import org.apache.struts.config.BaseConfig; -import org.apache.struts.config.ControllerConfig; -import org.apache.struts.config.ExceptionConfig; -import org.apache.struts.config.FormBeanConfig; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.MessageResourcesConfig; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.config.PlugInConfig; - -import java.io.Serializable; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -/** - *

The collection of static configuration information that describes a - * Struts-based module. Multiple modules are identified by a prefix - * at the beginning of the context relative portion of the request URI. If no - * module prefix can be matched, the default configuration (with a prefix - * equal to a zero-length string) is selected, which is elegantly backwards - * compatible with the previous Struts behavior that only supported one - * module.

- * - * @version $Rev: 471754 $ $Date: 2005-12-31 03:57:16 -0500 (Sat, 31 Dec 2005) - * $ - * @since Struts 1.1 - */ -public class ModuleConfigImpl extends BaseConfig implements Serializable, - ModuleConfig { - /** - *

Commons Logging instance.

- */ - protected static Log log = LogFactory.getLog(ModuleConfigImpl.class); - - // ----------------------------------------------------- Instance Variables - // Instance Variables at end to make comparing Interface and implementation easier. - - /** - *

The set of action configurations for this module, if any, keyed by - * the path property.

- */ - protected HashMap actionConfigs = null; - - /** - *

The set of action configuration for this module, if any, keyed by - * the actionId property.

- */ - protected HashMap actionConfigIds = null; - - /** - *

The set of action configurations for this module, if any, listed in - * the order in which they are added.

- */ - protected List actionConfigList = null; - - /** - *

The set of exception handling configurations for this module, if - * any, keyed by the type property.

- */ - protected HashMap exceptions = null; - - /** - *

The set of form bean configurations for this module, if any, keyed - * by the name property.

- */ - protected HashMap formBeans = null; - - /** - *

The set of global forward configurations for this module, if any, - * keyed by the name property.

- */ - protected HashMap forwards = null; - - /** - *

The set of message resources configurations for this module, if any, - * keyed by the key property.

- */ - protected HashMap messageResources = null; - - /** - *

The set of configured plug-in Actions for this module, if any, in - * the order they were declared and configured.

- */ - protected ArrayList plugIns = null; - - /** - *

The controller configuration object for this module.

- */ - protected ControllerConfig controllerConfig = null; - - /** - *

The prefix of the context-relative portion of the request URI, used - * to select this configuration versus others supported by the controller - * servlet. A configuration with a prefix of a zero-length String is the - * default configuration for this web module.

- */ - protected String prefix = null; - - /** - *

The default class name to be used when creating action form bean - * instances.

- */ - protected String actionFormBeanClass = - "org.apache.struts.action.ActionFormBean"; - - /** - * The default class name to be used when creating action mapping - * instances. - */ - protected String actionMappingClass = - "org.apache.struts.action.ActionMapping"; - - /** - * The default class name to be used when creating action forward - * instances. - */ - protected String actionForwardClass = - "org.apache.struts.action.ActionForward"; - - /** - *

Matches action config paths against compiled wildcard patterns

- */ - protected ActionConfigMatcher matcher = null; - - /** - *

Constructor for ModuleConfigImpl. Assumes default - * configuration.

- * - * @since Struts 1.2.8 - */ - public ModuleConfigImpl() { - this(""); - } - - /** - *

Construct an ModuleConfigImpl object according to the specified - * parameter values.

- * - * @param prefix Context-relative URI prefix for this module - */ - public ModuleConfigImpl(String prefix) { - super(); - this.prefix = prefix; - this.actionConfigs = new HashMap(); - this.actionConfigIds = new HashMap(); - this.actionConfigList = new ArrayList(); - this.actionFormBeanClass = "org.apache.struts.action.ActionFormBean"; - this.actionMappingClass = "org.apache.struts.action.ActionMapping"; - this.actionForwardClass = "org.apache.struts.action.ActionForward"; - this.configured = false; - this.controllerConfig = null; - this.exceptions = new HashMap(); - this.formBeans = new HashMap(); - this.forwards = new HashMap(); - this.messageResources = new HashMap(); - this.plugIns = new ArrayList(); - } - - // --------------------------------------------------------- Public Methods - - /** - *

Has this module been completely configured yet. Once this flag - * has been set, any attempt to modify the configuration will return an - * IllegalStateException.

- */ - public boolean getConfigured() { - return (this.configured); - } - - /** - *

The controller configuration object for this module.

- */ - public ControllerConfig getControllerConfig() { - if (this.controllerConfig == null) { - this.controllerConfig = new ControllerConfig(); - } - - return (this.controllerConfig); - } - - /** - *

The controller configuration object for this module.

- * - * @param cc The controller configuration object for this module. - */ - public void setControllerConfig(ControllerConfig cc) { - throwIfConfigured(); - this.controllerConfig = cc; - } - - /** - *

The prefix of the context-relative portion of the request URI, used - * to select this configuration versus others supported by the controller - * servlet. A configuration with a prefix of a zero-length String is the - * default configuration for this web module.

- */ - public String getPrefix() { - return (this.prefix); - } - - /** - *

The prefix of the context-relative portion of the request URI, used - * to select this configuration versus others supported by the controller - * servlet. A configuration with a prefix of a zero-length String is the - * default configuration for this web module.

- */ - public void setPrefix(String prefix) { - throwIfConfigured(); - this.prefix = prefix; - } - - /** - *

The default class name to be used when creating action form bean - * instances.

- */ - public String getActionFormBeanClass() { - return this.actionFormBeanClass; - } - - /** - *

The default class name to be used when creating action form bean - * instances.

- * - * @param actionFormBeanClass default class name to be used when creating - * action form bean instances. - */ - public void setActionFormBeanClass(String actionFormBeanClass) { - this.actionFormBeanClass = actionFormBeanClass; - } - - /** - *

The default class name to be used when creating action mapping - * instances.

- */ - public String getActionMappingClass() { - return this.actionMappingClass; - } - - /** - *

The default class name to be used when creating action mapping - * instances.

- * - * @param actionMappingClass default class name to be used when creating - * action mapping instances. - */ - public void setActionMappingClass(String actionMappingClass) { - this.actionMappingClass = actionMappingClass; - } - - /** - *

Ad d a new ActionConfig instance to the set - * associated with this module.

- * - * @param config The new configuration instance to be added - * @throws IllegalStateException if this module configuration has been - * frozen - */ - public void addActionConfig(ActionConfig config) { - throwIfConfigured(); - config.setModuleConfig(this); - - String path = config.getPath(); - if (actionConfigs.containsKey(path)) { - log.warn("Overriding ActionConfig of path " + path); - } - - String actionId = config.getActionId(); - if ((actionId != null) && !actionId.equals("")) { - if (actionConfigIds.containsKey(actionId)) { - if (log.isWarnEnabled()) { - ActionConfig otherConfig = (ActionConfig) actionConfigIds.get(actionId); - StringBuffer msg = new StringBuffer("Overriding actionId["); - msg.append(actionId); - msg.append("] for path["); - msg.append(otherConfig.getPath()); - msg.append("] with path["); - msg.append(path); - msg.append("]"); - log.warn(msg); - } - } - actionConfigIds.put(actionId, config); - } - - actionConfigs.put(path, config); - actionConfigList.add(config); - } - - /** - *

Add a new ExceptionConfig instance to the set - * associated with this module.

- * - * @param config The new configuration instance to be added - * @throws IllegalStateException if this module configuration has been - * frozen - */ - public void addExceptionConfig(ExceptionConfig config) { - throwIfConfigured(); - - String key = config.getType(); - - if (exceptions.containsKey(key)) { - log.warn("Overriding ExceptionConfig of type " + key); - } - - exceptions.put(key, config); - } - - /** - *

Add a new FormBeanConfig instance to the set - * associated with this module.

- * - * @param config The new configuration instance to be added - * @throws IllegalStateException if this module configuration has been - * frozen - */ - public void addFormBeanConfig(FormBeanConfig config) { - throwIfConfigured(); - - String key = config.getName(); - - if (formBeans.containsKey(key)) { - log.warn("Overriding ActionForm of name " + key); - } - - formBeans.put(key, config); - } - - /** - *

The default class name to be used when creating action forward - * instances.

- */ - public String getActionForwardClass() { - return this.actionForwardClass; - } - - /** - *

The default class name to be used when creating action forward - * instances.

- * - * @param actionForwardClass default class name to be used when creating - * action forward instances. - */ - public void setActionForwardClass(String actionForwardClass) { - this.actionForwardClass = actionForwardClass; - } - - /** - *

Add a new ForwardConfig instance to the set of global - * forwards associated with this module.

- * - * @param config The new configuration instance to be added - * @throws IllegalStateException if this module configuration has been - * frozen - */ - public void addForwardConfig(ForwardConfig config) { - throwIfConfigured(); - - String key = config.getName(); - - if (forwards.containsKey(key)) { - log.warn("Overriding global ActionForward of name " + key); - } - - forwards.put(key, config); - } - - /** - *

Add a new MessageResourcesConfig instance to the set - * associated with this module.

- * - * @param config The new configuration instance to be added - * @throws IllegalStateException if this module configuration has been - * frozen - */ - public void addMessageResourcesConfig(MessageResourcesConfig config) { - throwIfConfigured(); - - String key = config.getKey(); - - if (messageResources.containsKey(key)) { - log.warn("Overriding MessageResources bundle of key " + key); - } - - messageResources.put(key, config); - } - - /** - *

Add a newly configured {@link org.apache.struts.config.PlugInConfig} - * instance to the set of plug-in Actions for this module.

- * - * @param plugInConfig The new configuration instance to be added - */ - public void addPlugInConfig(PlugInConfig plugInConfig) { - throwIfConfigured(); - plugIns.add(plugInConfig); - } - - /** - *

Return the action configuration for the specified path, first - * looking a direct match, then if none found, a wildcard pattern match; - * otherwise return null.

- * - * @param path Path of the action configuration to return - */ - public ActionConfig findActionConfig(String path) { - ActionConfig config = (ActionConfig) actionConfigs.get(path); - - // If a direct match cannot be found, try to match action configs - // containing wildcard patterns only if a matcher exists. - if ((config == null) && (matcher != null)) { - config = matcher.match(path); - } - - return config; - } - - /** - *

Returns the action configuration for the specifed action - * action identifier.

- * - * @param actionId the action identifier - * @return the action config if found; otherwise null - * @see ActionConfig#getActionId() - * @since Struts 1.3.6 - */ - public ActionConfig findActionConfigId(String actionId) { - if (actionId != null) { - return (ActionConfig) this.actionConfigIds.get(actionId); - } - return null; - } - - /** - *

Return the action configurations for this module. If there are - * none, a zero-length array is returned.

- */ - public ActionConfig[] findActionConfigs() { - ActionConfig[] results = new ActionConfig[actionConfigList.size()]; - - return ((ActionConfig[]) actionConfigList.toArray(results)); - } - - /** - *

Return the exception configuration for the specified type, if any; - * otherwise return null.

- * - * @param type Exception class name to find a configuration for - */ - public ExceptionConfig findExceptionConfig(String type) { - return ((ExceptionConfig) exceptions.get(type)); - } - - /** - *

Find and return the ExceptionConfig instance defining - * how Exceptions of the specified type should be handled. - * - *

In original Struts usage, this was only available in - * ActionConfig, but there are cases when an exception could - * be thrown before an ActionConfig has been identified, - * where global exception handlers may still be pertinent.

- * - *

TODO: Look for a way to share this logic with - * ActionConfig, although there are subtle differences, and - * it certainly doesn't seem like it should be done with inheritance.

- * - * @param type Exception class for which to find a handler - * @since Struts 1.3.0 - */ - public ExceptionConfig findException(Class type) { - // Check through the entire superclass hierarchy as needed - ExceptionConfig config = null; - - while (true) { - // Check for a locally defined handler - String name = type.getName(); - - log.debug("findException: look locally for " + name); - config = findExceptionConfig(name); - - if (config != null) { - return (config); - } - - // Loop again for our superclass (if any) - type = type.getSuperclass(); - - if (type == null) { - break; - } - } - - return (null); // No handler has been configured - } - - /** - *

Return the exception configurations for this module. If there are - * none, a zero-length array is returned.

- */ - public ExceptionConfig[] findExceptionConfigs() { - ExceptionConfig[] results = new ExceptionConfig[exceptions.size()]; - - return ((ExceptionConfig[]) exceptions.values().toArray(results)); - } - - /** - *

Return the form bean configuration for the specified key, if any; - * otherwise return null.

- * - * @param name Name of the form bean configuration to return - */ - public FormBeanConfig findFormBeanConfig(String name) { - return ((FormBeanConfig) formBeans.get(name)); - } - - /** - *

Return the form bean configurations for this module. If there are - * none, a zero-length array is returned.

- */ - public FormBeanConfig[] findFormBeanConfigs() { - FormBeanConfig[] results = new FormBeanConfig[formBeans.size()]; - - return ((FormBeanConfig[]) formBeans.values().toArray(results)); - } - - /** - *

Return the forward configuration for the specified key, if any; - * otherwise return null.

- * - * @param name Name of the forward configuration to return - */ - public ForwardConfig findForwardConfig(String name) { - return ((ForwardConfig) forwards.get(name)); - } - - /** - *

Return the form bean configurations for this module. If there are - * none, a zero-length array is returned.

- */ - public ForwardConfig[] findForwardConfigs() { - ForwardConfig[] results = new ForwardConfig[forwards.size()]; - - return ((ForwardConfig[]) forwards.values().toArray(results)); - } - - /** - *

Return the message resources configuration for the specified key, - * if any; otherwise return null.

- * - * @param key Key of the data source configuration to return - */ - public MessageResourcesConfig findMessageResourcesConfig(String key) { - return ((MessageResourcesConfig) messageResources.get(key)); - } - - /** - *

Return the message resources configurations for this module. If - * there are none, a zero-length array is returned.

- */ - public MessageResourcesConfig[] findMessageResourcesConfigs() { - MessageResourcesConfig[] results = - new MessageResourcesConfig[messageResources.size()]; - - return ((MessageResourcesConfig[]) messageResources.values().toArray(results)); - } - - /** - *

Return the configured plug-in actions for this module. If there - * are none, a zero-length array is returned.

- */ - public PlugInConfig[] findPlugInConfigs() { - PlugInConfig[] results = new PlugInConfig[plugIns.size()]; - - return ((PlugInConfig[]) plugIns.toArray(results)); - } - - /** - *

Freeze the configuration of this module. After this method - * returns, any attempt to modify the configuration will return an - * IllegalStateException.

- */ - public void freeze() { - super.freeze(); - - ActionConfig[] aconfigs = findActionConfigs(); - - for (int i = 0; i < aconfigs.length; i++) { - aconfigs[i].freeze(); - } - - matcher = new ActionConfigMatcher(aconfigs); - - getControllerConfig().freeze(); - - ExceptionConfig[] econfigs = findExceptionConfigs(); - - for (int i = 0; i < econfigs.length; i++) { - econfigs[i].freeze(); - } - - FormBeanConfig[] fbconfigs = findFormBeanConfigs(); - - for (int i = 0; i < fbconfigs.length; i++) { - fbconfigs[i].freeze(); - } - - ForwardConfig[] fconfigs = findForwardConfigs(); - - for (int i = 0; i < fconfigs.length; i++) { - fconfigs[i].freeze(); - } - - MessageResourcesConfig[] mrconfigs = findMessageResourcesConfigs(); - - for (int i = 0; i < mrconfigs.length; i++) { - mrconfigs[i].freeze(); - } - - PlugInConfig[] piconfigs = findPlugInConfigs(); - - for (int i = 0; i < piconfigs.length; i++) { - piconfigs[i].freeze(); - } - } - - /** - *

Remove the specified action configuration instance.

- * - * @param config ActionConfig instance to be removed - * @throws IllegalStateException if this module configuration has been - * frozen - */ - public void removeActionConfig(ActionConfig config) { - throwIfConfigured(); - config.setModuleConfig(null); - actionConfigs.remove(config.getPath()); - actionConfigList.remove(config); - } - - /** - *

Remove the specified exception configuration instance.

- * - * @param config ActionConfig instance to be removed - * @throws IllegalStateException if this module configuration has been - * frozen - */ - public void removeExceptionConfig(ExceptionConfig config) { - throwIfConfigured(); - exceptions.remove(config.getType()); - } - - /** - *

Remove the specified form bean configuration instance.

- * - * @param config FormBeanConfig instance to be removed - * @throws IllegalStateException if this module configuration has been - * frozen - */ - public void removeFormBeanConfig(FormBeanConfig config) { - throwIfConfigured(); - formBeans.remove(config.getName()); - } - - /** - *

Remove the specified forward configuration instance.

- * - * @param config ForwardConfig instance to be removed - * @throws IllegalStateException if this module configuration has been - * frozen - */ - public void removeForwardConfig(ForwardConfig config) { - throwIfConfigured(); - forwards.remove(config.getName()); - } - - /** - *

Remove the specified message resources configuration instance. - *

- * - * @param config MessageResourcesConfig instance to be removed - * @throws IllegalStateException if this module configuration has been - * frozen - */ - public void removeMessageResourcesConfig(MessageResourcesConfig config) { - throwIfConfigured(); - messageResources.remove(config.getKey()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/impl/package.html b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/impl/package.html deleted file mode 100644 index 36aad1c5765..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/impl/package.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - -

Provides default implementation classes for the configuration objects.

- - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/package.html b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/package.html deleted file mode 100644 index 49de1b9d5c7..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/config/package.html +++ /dev/null @@ -1,25 +0,0 @@ - - -

The "config" package contains configuration objects that correspond to - elements that may be specified in the struts-config.xml - module configuration file.

-Config UML -
- diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/doc-files/Stamp.gif b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/doc-files/Stamp.gif deleted file mode 100644 index 720e284bb4e0b7590868bf9c6a4006ee37041e7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4938 zcmX9=c{Eks-`|FG4VP<3S17JyOy!axNya#mh+`@lDpO9GGL5}+i4k~m6It1hAx zf>Jn2QGe_N2nKKrP#6R-2*Ds6gD4CJ7>r;rj=>a$0t`hk6vt2s!vKaM7=~jQg%JQF z5RAYvg2G6EkqAcO7)h-rgHZ@Z;TT2zi3lJBzzIMR5Fj9gfN%n$2pAABLcllyQv?bK z6d_QYKq&$P1cne8PGA&40D?dW0w)NHAOS%l1c?(QwVF0TAq0gJ6!j-|fRF$u0YyT9 zgb)(KNr)n0K*9(K<0MRxC?HXUL~#UBq)*uB#DqDPLkAW zgGdS?DV(IJKUD$<1@P5Yt(J*`5DLOq8?YKY1tS!Uucoyc5``iZimy7mYAA&v6o#+5 zuqvJ+5Q@N88LtwhNQ5HsRrFO*ib5y~Up*=Q;QzlF(EPLinF$lx>aC!hH6yM!ktV5e zX!uHHe=0-Crp&sv>UIWGCval8wR$K=VW))Lk1q-%d1{XMp^>Y#cMG+S+$n?G>h6~s zgw0Njw9V{GR_}}@>pppv>isPs)Ny+|{Rx^2#S2T(oVtQ1O?b>wMPxK0J~j(Jn{I1< zf%!ebJ@!ffvNL!}rL2*T>mIj7w}>!IxM@5}{4}O{6o;wUKaeG<7c_2Q8b5GeSoLFI zLsLauJnvcoMpM+Y4FO8Bk@e)`2FD?zmhO(@MPUJFOaHpC)an0j*p0rv`06`*p8*j` z$bY=SAwfV!T1SOzev^kcgQ>^@Q*57OmYa3$C$>SAnP6MHK9 z>eg{*g%3}b*FHFT{ED&7ub-92JmXa8{$A&Jf3KfR`1+}E5*D3Jtw<8TIp&xwjIS$o zHxt)=>L2wYL6nu2nMO0<)-=39dij;IwJHx4lp8obV!AQC)Rx8#-lnl1X!T`k-&3gO zFP6*MrJ*_)V#-)w#*AlL^qDDuxWW9V_K9MfGbj1rLh`+iM2d9559#71#qHBcYov=* z&eDhgtVFprK($2U+O>g;UkM%P5clJ^yy zvD)`_W}m*^H)i}+4-AOP4h(cZOFSLjFIhetxUZ#za@II^>HfM8O3}rZWY=;>eX68=YpF`|DQW(hbIbegVt+j}lx=An_q`j`Ht5`hmYsf3^5NPq z`HauqABhj2d%Eg`zFc1%JO1THGhXV~9O}H%lo(^S`AYe_p9h2f;%?0R(kG&SX6n+n z*$;CAQZBzru1oth&kxGIO$r%ONYxA-j(lynFrrp}?*zW7>Eps(txoCEZnGOw?{^ae zwt3eKR|di!26fmTs3j+LkD0-Y$}DkTe#JeEYJPDGpA2!;VuM2Od><{B00A0%nDNAB z*CSW+`G+P-rArshs%!Q-p_9s;dJhbgL~`zV>klwkG-|TU?2MpRoTrk#RS_d;%Z~IM z*9?8T%&9o>LF5ghrrK={_xbb{jM>3_({lEo%U&WMeR^-w1``89JjHEYnI1ze+J^R-^u;lv#B!_9 z`OODUmMO`0>S`Lywq_n5@UaW+)Xr=DUqzaGNxG!Ku_aIB6 z$l8wgHsW`*M$L-)x5>`TAMp);%j_Rk-Nv%bx>O_C3t8WBPtW8K_iDGwq}=uRxls6d zcE4IYe9tH0YF>$Lop#~KJzvAG#iNU9d#m94f$m>R#_!eXDOH&qiTPSO1iiJJ*0*Vo z|5~Oa{?Y+3&RcWx6bQ~ixeXyYz8rrG<)c#!UZr_3Ky>(~9YIz@7Ik6t4Y`137 zo#mw#%Urss6tDfKl|~=X%qq&*4A^>5@WI=y{SFuRh%(=Se*1WZc!H9!#3u?b{{>Ygx)-!G5n|G_tkktQkWNWef`~$IHAXT4#A|LAy@M@E&J&_$e_9sF#HMe>OM z4rX|*eM862^lu`)gmez@r)_dqk(%E7I%9(*^xm@I>a#FwPhNckamF70vUTya3+6SG z2EKCfj4c?iVw!Zaxn-R79&KYA+VS^=GXIJo!PRRNc=s zxw$3u2X)-VWa`a^^*%#%d6%w{XN+~x5^5qRl%$_EtkHG~-@#m%HgcNEim~Z&4oUN= z@9Qc(VzyJ%!DK0*Upz^x3`)^TisOf9rWTj1+!SkgHXTk_DCi!b?Xl;R{m$K^i#t3P z6kF^S3aU-nl;&+>#yPdSvLe(fsKAu|PsQI+PI^(#MI+k#s?!v#ghtp#%@dq3bzT;| zzqNG4WBbjzj(IzCMVh?j9=3O|X2>M@UM_Xa%6w2jqS97at-mies7nHja|I;2a?0Xb zl*_fI>kr3jb6P$hQJCqN=ot7h_L7-?iGBNnt#_b9FFFaEod zCbAqqSou!cCP8X4jsK4Q9(GWrFe+Ez7|)^?-Lmx#^~|`>+M9mudDdn3wv|_NOYZ{Z zy1ZO6iVHL)Rc`!1CNv8&a{934s~`8xt$DcN)ybdF+ZT7uX)Co&-dm{ZkhnCo%^c}p zXB?(}^4o};%EYVF18?O!@eyor%Sf`L;9i}b#-9^&j7(?#o5fCEf1i;v*}Ht=#~PKx3l)*4Cp~q4j+P$wP2PQD zHulBRv!34(E$420JSDyIf;@aI?)r_-Yv5`0=kH~%*v+|AG4Y?`)c4{2Hx~-U;B&WP zmq)+2{^Ke0-)#Tu{IQ3|qfeb;KAqluuLJ9KT)Nd0yT5MY|=U)m49* zUw%+XwB0qxtKYdM)J1}o!2HM+`SospyZ*Tf)$JCEIzqMEH$D~!9ThmC;BaS>C4F1g zC7vbw%wf}QAyz*9nZgOVytD3B=Nf0|bMs;^?RnRl0);s>crJnTqNOMZ?9dZ63)Q7E z^L5L31e6wcaGxa3AJv=mi^HDp?M~5AZ(zVCynDk0dKLMr83JjoN1Trs8+Pe>@X>BP zS=VAuKNhBE!Hm9(tWR0TifLV6tjix8B7c`Hw7ZX)?X8RT>b{Sc(P~d@X3!rgY)}~A z${IcmjmMgaufsU}>KuMlYXinzFC6dYt;^dR;_MylJjk|~UnAq<=up9teb!+%07TO4 z=`R?9t-2eoEu^|8r4x|rOD!Z|ls`8P!731&DmM{vdA+#cj4Kkr^K znL|>I940GFXZcK$U+&8;%XJo6)D^KbOlqyJS}XUwORn*dl1SC$;Q?>C;Yw&c7n@7l zmB8jb6C&?pZ!n>l$I+GZ*WI|SPqrdX_eSqVwuIo%U{2zN3t|E$xtr=WXaf0b&8(#A zcGINuGa7xz8?@5a28%wA9xyxQ{BKqc9LW@vG&hwRv!{OqBHY9s#XO=?X&zXv(MW$m zO1!+S1aG&xcI_4wkOa?Ppz7Z>P1E5r&H)ZTW{pK+yzIYNzE ztOg)j$tO}{;-MA3L+)6^b@s+XM?81_@X_Cqid9~$edegk+SoX!{GFpb4g@Pol%LKS zKjrSPR*#4uuRg|>CFiPd;iiiJn2u=~KGrgevJ_D}>eQ@mp5*M|{@rK$QF8++r4Qyx z1z+7Y7cT0V2}|syX9m|z-?7;5pr##oqUDZtSB&KST8ZR0zDWnxdpD}zh)`Eixp=;B z|E;>KoT{s(5^cPdCq8wbkZ(GrGb+>D(*2}68K|@hVAK1|~A+M~hRO`FOt*a)wOdN;8_3JI= zBD-E`Yig#qom~ljbD_(7DB8fCu(J#cmkmAOVnrW{^|aW6hIgbdTV-T)UnULfHut>Z z4Q?+DE8UroFV@WzYqi#doQla0b8iCX^@SPNou7B-9PEDAcwKiUlzX}-+oh{yXUqlR z?x%j&rDj652S%DNhmNv(p1N2uT(ln_ubRm5FK4ffj1%t3UkQD>vucN|&Y8_V?NF9W zy~elWw^r`9?%k=uHnglA>e#oA%MHH;_i$@cS6>Eh=PZ|D)NAvhUFuBlJgb*^y|><{ zgD?FIC-;jrRPtYkH%u59v(}p7}MDB{-ar zc`L$bI7PEPwQM-LtSfzD_<9wQEjMx{J{CJPQWhRvaA;)Hy>=6Fr2N-NMJ5c1Gr-RO E0V?nNQvd(} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/doc-files/jakarta-feather-small.gif b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/doc-files/jakarta-feather-small.gif deleted file mode 100644 index b479bdbd2b10e78ab4c2e750579cdd9e3a513b4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1872 zcmX|A3s6&M7Cw2A8=;znN5Zp2k@B=;hgG9=7XpPqof1-HDa}e^2(LhaBpBT=V+fZ9 zG<0z{Td5*V#E5ha3u-F0lUY!q;%F3#sdcw8t+;8|I*FnNUAK2{bhiKe-~XR;zVF<7 z&bf1oiVHVyl2$y^0qQu`xab6kInSoLZ3=6}c5$r-<$v)cUkMuib>H z*q96gHm#Kp4sD53!FJ1F&}0mFT`GkvU==xM9o8zu>9D$HZ8noaR#oD2S#4Un%f|QF zQ@u{qiXy5i2)I(6HoDUW_Catv!0VD>UT`?rE7u+^k zs*??T4pi~Lr~pg>?m@szsk17unZPYWj3uCufzgf!5r@<0)`H0emcS!V;ff{+ zw{&6QFMP=@7DV9O3(W&2EM`2_NNzsW;NKYo+%GSBqAA!S7AjjBrzw6-uy+KX1{>$_7rwwEnF1;JGlJ` z#xW)oe7>x?bah#?c(wq7dd|}z1CS9sg8xJ=f&l@E6SR8tdL%qed}-Wr!9ZkX2+f|U zPxh0JCg!b`uZn!V`n)mv^labZP06 z-oq=btoO#6CKi_FW=2Z;Qh28(dQHjO#zdA=lqEK|x@e!}9Ybj;61}ZbXP!R(50rVQ z>hHu$xcbYE^dz}WF`iDo~d{uY8D@W`1kFKkm0-};U)q96X4f}#gxZ>DM_7XY# zTBOXZzZPficvf@MFGYJO+3w3jM}$4AqOz3f5>>5{m0B^7T}*uZ#{+$Dp>OprOx$B< zuPeLEA?!03iZJ6}6GMz=8d7sA|30!hep7R~yKQ*(>R`5V!N~Yg zZk$h-bhOO~b_hFXqTUrtyID2QIZ#e`Zs}V6TXI=Go%hqYK9_=6`VDEwclzB)9}Rp( zB#9$*p{pWcaRS3(x5yFT%F|#P#UFs5#C#CkAx-GvROlh|z8^I@TUQBPKUa|0SwC?(z9Gzah`(k8dUK=@++8+|<*P#Qj6G zaJI|vs@8wt%bfvfU}#u1pstQ>@UW|68jb3_)p^hTq;vm%=Fbm1#8vkj4!S}ap?gnA zMsu?!fyAKh@$;)9>m{8ZKXJvf!dMKmt^kP>qQq9+e&()@^21b0!;w}J{XfZZJH#7u zPJF-r?RxHA^UvL7cVguC^P;4YO;dR^|GsUp4I6Y7|7@H4HjNUQ5&L-i(dNa@bqV|4 z)bT^ZE*@XbFZeX8>jo`loD%s?#`Mz3xi{ttBE&6ucP%o3w=h1o$U~(>4vZ6Mujj^` zaxl9Ex85KA6E<;M^je?KGDjJ0m+RTh(p zl%ZW;gp4MRo};kDrHp&m3RikJk4+N-Gb}NJ%(9mbW#8^-pKPO&4pnbCh$KyspCuf1 z2^Ix{wq}Z6cyjDDTRG*3q9|X%Wq$tag^3ff>cy;#OW$98lYwmXpK+JAezy0va5(?# zmHT_wT&A$qjf8Gk$d{vxVj(}gR%c19MDin75m#^g-JhLh7k{General purpose Action for unit tests.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class MockAction extends Action { -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockActionServlet.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockActionServlet.java deleted file mode 100644 index 6612651246d..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockActionServlet.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * $Id: MockActionServlet.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.mock; - -import org.apache.struts.action.ActionServlet; - -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; - -/** - *

Mock ActionServlet object for low-level unit tests of - * Struts controller components. Coarser grained tests should be implemented - * in terms of the Cactus framework, instead of the mock object classes.

- * - *

WARNING - Only getter methods for servletContext and - * servletConfig are provided, plus additional methods to configure this - * object as necessary. Methods for unsupported operations will throw - * UnsupportedOperationException.

- * - *

WARNING - Because unit tests operate in a single - * threaded environment, no synchronization is performed.

- * - * @version $Rev: 471754 $ $Date: 2005-05-14 02:09:06 -0400 (Sat, 14 May 2005) - * $ - */ -public class MockActionServlet extends ActionServlet { - protected ServletContext servletContext; - protected ServletConfig servletConfig; - - /** - *

Constructor.

- */ - public MockActionServlet(ServletContext servletContext, - ServletConfig servletConfig) { - this.servletContext = servletContext; - this.servletConfig = servletConfig; - } - - /** - *

Constructor.

- */ - public MockActionServlet() { - ; // do nothing - } - - /** - *

Set property

- * - * @param servletContext - */ - public void setServletContext(ServletContext servletContext) { - this.servletContext = servletContext; - } - - /** - *

Get property

- * - * @return - */ - public ServletContext getServletContext() { - return servletContext; - } - - /** - *

Set property - * - * @param servletConfig - */ - public void setServletConfig(ServletConfig servletConfig) { - this.servletConfig = servletConfig; - } - - /** - *

Get property

- * - * @return - */ - public ServletConfig getServletConfig() { - return servletConfig; - } - - /** - *

Expose as public so that test classes can exercise things which - * retrieve messages.

- */ - public void initInternal() - throws ServletException { - super.initInternal(); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockEnumeration.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockEnumeration.java deleted file mode 100644 index 2e38a39895d..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockEnumeration.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * $Id: MockEnumeration.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.mock; - -import java.util.Enumeration; -import java.util.Iterator; - -/** - *

General purpose Enumeration wrapper around an - * Iterator specified to our controller.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class MockEnumeration implements Enumeration { - protected Iterator iterator; - - public MockEnumeration(Iterator iterator) { - this.iterator = iterator; - } - - public boolean hasMoreElements() { - return (iterator.hasNext()); - } - - public Object nextElement() { - return (iterator.next()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockFormBean.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockFormBean.java deleted file mode 100644 index e22770cbef4..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockFormBean.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * $Id: MockFormBean.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.mock; - -import org.apache.struts.action.ActionForm; - -import java.util.HashMap; -import java.util.Map; - -/** - *

General purpose form bean for unit tests.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:45:39 -0400 (Sat, 07 May 2005) - * $ - */ -public class MockFormBean extends ActionForm { - /* - *

- * Flag to indicate whether certain methods should complete properly - * or throw an Exception - *

- */ - private boolean throwException = false; - private boolean returnNulls = false; - private String defaultValue; - private Double defaultDouble; - private int arrayCount; - protected boolean booleanProperty = false; - protected String stringProperty = null; - - // ------------------- Constructors - public MockFormBean() { - this(null); - } - - public MockFormBean(boolean throwException, boolean returnNulls) { - super(); - this.throwException = throwException; - this.returnNulls = returnNulls; - } - - public MockFormBean(boolean throwException) { - this.throwException = throwException; - } - - public MockFormBean(boolean throwException, boolean returnNulls, - String defaultValue) { - this(throwException, returnNulls); - this.defaultValue = defaultValue; - } - - public MockFormBean(String stringProperty) { - this.stringProperty = stringProperty; - } - - public MockFormBean(boolean throwException, boolean returnNulls, - String defaultValue, int arrayCount) { - this(throwException, returnNulls, defaultValue); - this.arrayCount = arrayCount; - } - - public MockFormBean(boolean throwException, boolean returnNulls, - Double defaultDouble) { - this(throwException, returnNulls); - this.defaultDouble = defaultDouble; - } - - // ------------------- public methods - public String getJustThrowAnException() - throws Exception { - throw new Exception(); - } - - public Object getThrowIllegalAccessException() - throws Exception { - if (true) { - throw new IllegalAccessException(); - } - - return null; - } - - public String getStringValue() - throws Exception { - if (throwException) { - throw new Exception(); - } - - if (returnNulls) { - return null; - } - - return defaultValue; - } - - public String[] getStringArray() - throws Exception { - if (throwException) { - throw new Exception(); - } - - if (returnNulls) { - return null; - } - - String[] rtn = new String[arrayCount]; - - for (int i = 0; i < rtn.length; i++) { - rtn[i] = defaultValue + i; - } - - return rtn; - } - - public Double getDoubleValue() - throws Exception { - if (throwException) { - throw new Exception(); - } - - if (returnNulls) { - return null; - } - - return defaultDouble; - } - - public boolean getBooleanProperty() { - return (this.booleanProperty); - } - - public void setBooleanProperty(boolean booleanProperty) { - this.booleanProperty = booleanProperty; - } - - public Map getMapProperty() { - HashMap map = new HashMap(); - - map.put("foo1", "bar1"); - map.put("foo2", "bar2"); - - return (map); - } - - public Map getMapPropertyArrayValues() { - HashMap map = new HashMap(); - - map.put("foo1", new String[] { "bar1", "baz1" }); - map.put("foo2", new String[] { "bar2", "baz2" }); - - return (map); - } - - public String getStringProperty() { - return (this.stringProperty); - } - - public void setStringProperty(String stringProperty) { - this.stringProperty = stringProperty; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockHttpServletRequest.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockHttpServletRequest.java deleted file mode 100644 index e08cf06f902..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockHttpServletRequest.java +++ /dev/null @@ -1,428 +0,0 @@ -/* - * $Id: MockHttpServletRequest.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.mock; - -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletInputStream; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import java.io.BufferedReader; - -import java.security.Principal; - -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; - -/** - *

Mock HttpServletRequest object for low-level unit tests - * of Struts controller components. Coarser grained tests should be - * implemented in terms of the Cactus framework, instead of the mock object - * classes.

- * - *

WARNING - Only the minimal set of methods needed to - * create unit tests is provided, plus additional methods to configure this - * object as necessary. Methods for unsupported operations will throw - * UnsupportedOperationException.

- * - *

WARNING - Because unit tests operate in a single - * threaded environment, no synchronization is performed.

- * - * @version $Rev: 471754 $ $Date: 2006-11-06 15:55:09 +0100 (Mon, 06 Nov 2006) $ - */ -public class MockHttpServletRequest implements HttpServletRequest { - // ----------------------------------------------------- Instance Variables - - /** - *

The set of request attributes.

- */ - protected HashMap attributes = new HashMap(); - - /** - *

The context path for this request.

- */ - protected String contextPath = null; - - /** - *

The preferred locale for this request.

- */ - protected Locale locale = null; - - /** - *

The set of arrays of parameter values, keyed by parameter name. - *

- */ - protected HashMap parameters = new HashMap(); - - /** - *

The extra path information for this request. v *

- */ - protected String pathInfo = null; - - /** - *

The authenticated user for this request.

- */ - protected Principal principal = null; - - /** - *

The query string for this request.

- */ - protected String queryString = null; - - /** - *

The servlet path for this request.

- */ - protected String servletPath = null; - - /** - *

The HttpSession with which we are associated.

- */ - protected HttpSession session = null; - - /** - *

The HTTP request method.

- */ - protected String method = null; - - /** - *

The Content Type for this request.

- */ - protected String contentType = null; - - // ----------------------------------------------------------- Constructors - public MockHttpServletRequest() { - super(); - } - - public MockHttpServletRequest(HttpSession session) { - super(); - setHttpSession(session); - } - - public MockHttpServletRequest(String contextPath, String servletPath, - String pathInfo, String queryString) { - super(); - setPathElements(contextPath, servletPath, pathInfo, queryString); - } - - public MockHttpServletRequest(String contextPath, String servletPath, - String pathInfo, String queryString, HttpSession session) { - super(); - setPathElements(contextPath, servletPath, pathInfo, queryString); - setHttpSession(session); - } - - // --------------------------------------------------------- Public Methods - public void addParameter(String name, String value) { - String[] values = (String[]) parameters.get(name); - - if (values == null) { - String[] results = new String[] { value }; - - parameters.put(name, results); - - return; - } - - String[] results = new String[values.length + 1]; - - System.arraycopy(values, 0, results, 0, values.length); - results[values.length] = value; - parameters.put(name, results); - } - - public void setHttpSession(HttpSession session) { - this.session = session; - } - - public void setLocale(Locale locale) { - this.locale = locale; - } - - public void setMethod(String method) { - this.method = method; - } - - public void setContentType(String contentType) { - this.contentType = contentType; - } - - public void setPathElements(String contextPath, String servletPath, - String pathInfo, String queryString) { - this.contextPath = contextPath; - this.servletPath = servletPath; - this.pathInfo = pathInfo; - this.queryString = queryString; - } - - public void setUserPrincipal(Principal principal) { - this.principal = principal; - } - - // --------------------------------------------- HttpServletRequest Methods - public String getAuthType() { - throw new UnsupportedOperationException(); - } - - public String getContextPath() { - return (contextPath); - } - - public Cookie[] getCookies() { - throw new UnsupportedOperationException(); - } - - public long getDateHeader(String name) { - throw new UnsupportedOperationException(); - } - - public String getHeader(String name) { - throw new UnsupportedOperationException(); - } - - public Enumeration getHeaderNames() { - throw new UnsupportedOperationException(); - } - - public Enumeration getHeaders(String name) { - throw new UnsupportedOperationException(); - } - - public int getIntHeader(String name) { - throw new UnsupportedOperationException(); - } - - public String getMethod() { - return (method); - } - - public String getPathInfo() { - return (pathInfo); - } - - public String getPathTranslated() { - throw new UnsupportedOperationException(); - } - - public String getQueryString() { - return (queryString); - } - - public String getRemoteUser() { - if (principal != null) { - return (principal.getName()); - } else { - return (null); - } - } - - public String getRequestedSessionId() { - throw new UnsupportedOperationException(); - } - - public String getRequestURI() { - StringBuffer sb = new StringBuffer(); - - if (contextPath != null) { - sb.append(contextPath); - } - - if (servletPath != null) { - sb.append(servletPath); - } - - if (pathInfo != null) { - sb.append(pathInfo); - } - - if (sb.length() > 0) { - return (sb.toString()); - } - - throw new UnsupportedOperationException(); - } - - public StringBuffer getRequestURL() { - throw new UnsupportedOperationException(); - } - - public String getServletPath() { - return (servletPath); - } - - public HttpSession getSession() { - return (getSession(true)); - } - - public HttpSession getSession(boolean create) { - if (create && (session == null)) { - session = new MockHttpSession(); - - // modified to act like the real deal, - // call with (false) if you want null - // throw new UnsupportedOperationException(); - } - - return (session); - } - - public Principal getUserPrincipal() { - return (principal); - } - - public boolean isRequestedSessionIdFromCookie() { - throw new UnsupportedOperationException(); - } - - public boolean isRequestedSessionIdFromUrl() { - throw new UnsupportedOperationException(); - } - - public boolean isRequestedSessionIdFromURL() { - throw new UnsupportedOperationException(); - } - - public boolean isRequestedSessionIdValid() { - throw new UnsupportedOperationException(); - } - - public boolean isUserInRole(String role) { - if ((principal != null) && (principal instanceof MockPrincipal)) { - return (((MockPrincipal) principal).isUserInRole(role)); - } else { - return (false); - } - } - - // ------------------------------------------------- ServletRequest Methods - public Object getAttribute(String name) { - return (attributes.get(name)); - } - - public Enumeration getAttributeNames() { - return (new MockEnumeration(attributes.keySet().iterator())); - } - - public String getCharacterEncoding() { - throw new UnsupportedOperationException(); - } - - public int getContentLength() { - throw new UnsupportedOperationException(); - } - - public String getContentType() { - return (contentType); - } - - public ServletInputStream getInputStream() { - throw new UnsupportedOperationException(); - } - - public Locale getLocale() { - return (locale); - } - - public Enumeration getLocales() { - throw new UnsupportedOperationException(); - } - - public String getParameter(String name) { - String[] values = (String[]) parameters.get(name); - - if (values != null) { - return (values[0]); - } else { - return (null); - } - } - - public Map getParameterMap() { - return (parameters); - } - - public Enumeration getParameterNames() { - return (new MockEnumeration(parameters.keySet().iterator())); - } - - public String[] getParameterValues(String name) { - return ((String[]) parameters.get(name)); - } - - public String getProtocol() { - throw new UnsupportedOperationException(); - } - - public BufferedReader getReader() { - throw new UnsupportedOperationException(); - } - - public String getRealPath(String path) { - throw new UnsupportedOperationException(); - } - - public String getRemoteAddr() { - throw new UnsupportedOperationException(); - } - - public String getRemoteHost() { - throw new UnsupportedOperationException(); - } - - public RequestDispatcher getRequestDispatcher(String path) { - throw new UnsupportedOperationException(); - } - - public String getScheme() { - return ("http"); - } - - public String getServerName() { - return ("localhost"); - } - - public int getServerPort() { - return (8080); - } - - public boolean isSecure() { - return (false); - } - - public void removeAttribute(String name) { - attributes.remove(name); - } - - public void setAttribute(String name, Object value) { - if (value == null) { - attributes.remove(name); - } else { - attributes.put(name, value); - } - } - - public void setCharacterEncoding(String name) { - throw new UnsupportedOperationException(); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockHttpServletResponse.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockHttpServletResponse.java deleted file mode 100644 index 757be562223..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockHttpServletResponse.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * $Id: MockHttpServletResponse.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.mock; - -import javax.servlet.ServletOutputStream; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletResponse; - -import java.io.IOException; -import java.io.PrintWriter; - -import java.util.Locale; - -/** - *

Mock HttpServletResponse object for low-level unit - * tests of Struts controller components. Coarser grained tests should be - * implemented in terms of the Cactus framework, instead of the mock object - * classes.

- * - *

WARNING - Only the minimal set of methods needed to - * create unit tests is provided, plus additional methods to configure this - * object as necessary. Methods for unsupported operations will throw - * UnsupportedOperationException.

- * - *

WARNING - Because unit tests operate in a single - * threaded environment, no synchronization is performed.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class MockHttpServletResponse implements HttpServletResponse { - // ----------------------------------------------------- Instance Variables - // --------------------------------------------------------- Public Methods - // -------------------------------------------- HttpServletResponse Methods - public void addCookie(Cookie cookie) { - throw new UnsupportedOperationException(); - } - - public void addDateHeader(String name, long value) { - throw new UnsupportedOperationException(); - } - - public void addHeader(String name, String value) { - throw new UnsupportedOperationException(); - } - - public void addIntHeader(String name, int value) { - throw new UnsupportedOperationException(); - } - - public boolean containsHeader(String name) { - throw new UnsupportedOperationException(); - } - - public String encodeRedirectUrl(String url) { - return (encodeRedirectURL(url)); - } - - public String encodeRedirectURL(String url) { - return (url); - } - - public String encodeUrl(String url) { - return (encodeURL(url)); - } - - public String encodeURL(String url) { - return (url); - } - - public void sendError(int status) { - throw new UnsupportedOperationException(); - } - - public void sendError(int status, String message) { - throw new UnsupportedOperationException(); - } - - public void sendRedirect(String location) { - throw new UnsupportedOperationException(); - } - - public void setDateHeader(String name, long value) { - throw new UnsupportedOperationException(); - } - - public void setHeader(String name, String value) { - throw new UnsupportedOperationException(); - } - - public void setIntHeader(String name, int value) { - throw new UnsupportedOperationException(); - } - - public void setStatus(int status) { - throw new UnsupportedOperationException(); - } - - public void setStatus(int status, String message) { - throw new UnsupportedOperationException(); - } - - // ------------------------------------------------ ServletResponse Methods - public void flushBuffer() { - throw new UnsupportedOperationException(); - } - - public int getBufferSize() { - throw new UnsupportedOperationException(); - } - - public String getCharacterEncoding() { - throw new UnsupportedOperationException(); - } - - public Locale getLocale() { - throw new UnsupportedOperationException(); - } - - public ServletOutputStream getOutputStream() - throws IOException { - throw new UnsupportedOperationException(); - } - - public PrintWriter getWriter() - throws IOException { - throw new UnsupportedOperationException(); - } - - public boolean isCommitted() { - throw new UnsupportedOperationException(); - } - - public void reset() { - throw new UnsupportedOperationException(); - } - - public void resetBuffer() { - throw new UnsupportedOperationException(); - } - - public void setBufferSize(int size) { - throw new UnsupportedOperationException(); - } - - public void setContentLength(int length) { - throw new UnsupportedOperationException(); - } - - public void setContentType(String type) { - throw new UnsupportedOperationException(); - } - - public void setLocale(Locale locale) { - throw new UnsupportedOperationException(); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockHttpSession.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockHttpSession.java deleted file mode 100644 index eb8bcf5f38f..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockHttpSession.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * $Id: MockHttpSession.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.mock; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpSession; -import javax.servlet.http.HttpSessionContext; - -import java.util.Enumeration; -import java.util.HashMap; - -/** - *

Mock HttpSession object for low-level unit tests of - * Struts controller components. Coarser grained tests should be implemented - * in terms of the Cactus framework, instead of the mock object classes.

- * - *

WARNING - Only the minimal set of methods needed to - * create unit tests is provided, plus additional methods to configure this - * object as necessary. Methods for unsupported operations will throw - * UnsupportedOperationException.

- * - *

WARNING - Because unit tests operate in a single - * threaded environment, no synchronization is performed.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class MockHttpSession implements HttpSession { - // ----------------------------------------------------- Instance Variables - - /** - *

The set of session attributes.

- */ - protected HashMap attributes = new HashMap(); - - /** - *

The ServletContext with which we are associated.

- */ - protected ServletContext servletContext = null; - - // ----------------------------------------------------------- Constructors - public MockHttpSession() { - super(); - } - - public MockHttpSession(ServletContext servletContext) { - super(); - setServletContext(servletContext); - } - - // --------------------------------------------------------- Public Methods - public void setServletContext(ServletContext servletContext) { - this.servletContext = servletContext; - } - - // ---------------------------------------------------- HttpSession Methods - public Object getAttribute(String name) { - return (attributes.get(name)); - } - - public Enumeration getAttributeNames() { - return (new MockEnumeration(attributes.keySet().iterator())); - } - - public long getCreationTime() { - throw new UnsupportedOperationException(); - } - - public String getId() { - throw new UnsupportedOperationException(); - } - - public long getLastAccessedTime() { - throw new UnsupportedOperationException(); - } - - public int getMaxInactiveInterval() { - throw new UnsupportedOperationException(); - } - - public ServletContext getServletContext() { - return (this.servletContext); - } - - public HttpSessionContext getSessionContext() { - throw new UnsupportedOperationException(); - } - - public Object getValue(String name) { - throw new UnsupportedOperationException(); - } - - public String[] getValueNames() { - throw new UnsupportedOperationException(); - } - - public void invalidate() { - throw new UnsupportedOperationException(); - } - - public boolean isNew() { - throw new UnsupportedOperationException(); - } - - public void putValue(String name, Object value) { - throw new UnsupportedOperationException(); - } - - public void removeAttribute(String name) { - attributes.remove(name); - } - - public void removeValue(String name) { - throw new UnsupportedOperationException(); - } - - public void setAttribute(String name, Object value) { - if (value == null) { - attributes.remove(name); - } else { - attributes.put(name, value); - } - } - - public void setMaxInactiveInterval(int interval) { - throw new UnsupportedOperationException(); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockMultipartRequestHandler.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockMultipartRequestHandler.java deleted file mode 100644 index 0da44a1546f..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockMultipartRequestHandler.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * $Id: MockMultipartRequestHandler.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.mock; - -import java.util.Enumeration; -import java.util.Hashtable; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import org.apache.struts.action.ActionServlet; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.upload.MultipartRequestHandler; - -/** - *

Mock MultipartRequestHandler object for unit tests.

- * - * @version $Rev: 471754 $ - */ -public class MockMultipartRequestHandler implements MultipartRequestHandler { - - /** mock ActionServlet instance. */ - private ActionServlet servlet; - - /** mock ActionMapping instance. */ - private ActionMapping mapping = new ActionMapping(); - - /** request elements. */ - private Hashtable elements; - - /** - * Convienience method to set a reference to a mock - * ActionServlet instance. - * @param servlet Mock servlet instance. - */ - public void setServlet(ActionServlet servlet) { - this.servlet = servlet; - } - - /** - * Convienience method to set a reference to a mock - * ActionMapping instance. - * @param mapping Mock action mapping instance. - */ - public void setMapping(ActionMapping mapping) { - this.mapping = mapping; - } - - /** - * Get the mock ActionServlet instance. - * @return The mock servlet instance. - */ - public ActionServlet getServlet() { - return this.servlet; - } - - /** - * Get the ActionMapping instance for this mock request. - * @return The mock action mapping instance. - */ - public ActionMapping getMapping() { - return this.mapping; - } - - /** - *

Mock parsing of the ServletInputStream.

- * - *

Constructs a Hashtable of elements - * from the HttpServletRequest's parameters - no - * FormFile elements are created.

- * @param request Mock request instance. - * @throws ServletException If there is a problem with - * processing the request. - */ - public void handleRequest(HttpServletRequest request) throws ServletException { - elements = new Hashtable(); - Enumeration enumer = request.getParameterNames(); - while (enumer.hasMoreElements()) { - String key = enumer.nextElement().toString(); - elements.put(key, request.getParameter(key)); - } - } - - /** - * This method is called on to retrieve all the text - * input elements of the request. - * - * @return A Hashtable where the keys and values are the names and - * values of the request input parameters - */ - public Hashtable getTextElements() { - return this.elements; - } - - /** - *

This method is called on to retrieve all the FormFile - * input elements of the request.

- * - * @return This mock implementation returns an empty - * Hashtable - */ - public Hashtable getFileElements() { - return new Hashtable(); - } - - /** - * This method returns all elements of a multipart request. - * @return This mock implementation returns a Hashtable where - * the keys are input names and values are either Strings - * (no FormFile elements) - */ - public Hashtable getAllElements() { - return this.elements; - } - - /** - * Mock rollback() method does nothing. - */ - public void rollback() { - // ignore - } - - /** - * Mock finish() method does nothing. - */ - public void finish() { - // ignore - } - -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockPageContext.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockPageContext.java deleted file mode 100644 index e28b5b2cb61..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockPageContext.java +++ /dev/null @@ -1,605 +0,0 @@ -/* - * $Id: MockPageContext.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.mock; - -import javax.servlet.Servlet; -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.servlet.jsp.JspWriter; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.BodyContent; - -import java.io.IOException; -import java.io.Reader; -import java.io.Writer; - -import java.util.Collections; -import java.util.Enumeration; -import java.util.HashMap; - -/** - *

Mock ServletContext object for low-level unit tests of - * Struts controller components. Coarser grained tests should be implemented - * in terms of the Cactus framework, instead of the mock object classes.

- * - *

WARNING - Only the minimal set of methods needed to - * create unit tests is provided, plus additional methods to configure this - * object as necessary. Methods for unsupported operations will throw - * UnsupportedOperationException.

- * - *

WARNING - Because unit tests operate in a single - * threaded environment, no synchronization is performed.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:45:39 -0400 (Sat, 07 May 2005) - * $ - */ -public class MockPageContext extends PageContext { - // ----------------------------------------------------- Instance Variables - protected ServletContext application = null; - protected HashMap attributes = new HashMap(); // Page scope attributes - protected ServletConfig config = null; - protected ServletRequest request = null; - protected ServletResponse response = null; - protected HttpSession session = null; - private boolean throwIOException; - private boolean returnBodyContent; - - // ----------------------------------------------------------- Constructors - public MockPageContext() { - super(); - } - - public MockPageContext(ServletConfig config, ServletRequest request, - ServletResponse response) { - super(); - setValues(config, request, response); - } - - /** - *

Construct a new PageContext impl.

- * - * @param throwIOException Determines if the returned JspWriter should - * throw an IOException on any method call. - * @param returnBody Determines if getOut() should return a new - * JspWriter or a BodyContent. - */ - public MockPageContext(boolean throwIOException, boolean returnBody) { - this.throwIOException = throwIOException; - this.returnBodyContent = returnBody; - } - - private void checkAndThrow() - throws IOException { - if (throwIOException) { - throw new IOException(); - } - } - - // --------------------------------------------------------- Public Methods - public void setValues(ServletConfig config, ServletRequest request, - ServletResponse response) { - this.config = config; - - if (config != null) { - this.application = config.getServletContext(); - } else { - this.application = null; - } - - this.request = request; - this.response = response; - - if (request != null) { - session = ((HttpServletRequest) request).getSession(false); - } else { - this.session = null; - } - } - - // ---------------------------------------------------- PageContext Methods - public Object findAttribute(String name) { - Object value = getAttribute(name, PageContext.PAGE_SCOPE); - - if (value == null) { - value = getAttribute(name, PageContext.REQUEST_SCOPE); - } - - if (value == null) { - value = getAttribute(name, PageContext.SESSION_SCOPE); - } - - if (value == null) { - value = getAttribute(name, PageContext.APPLICATION_SCOPE); - } - - return (value); - } - - public void forward(String path) { - throw new UnsupportedOperationException(); - } - - public Object getAttribute(String name) { - return (getAttribute(name, PageContext.PAGE_SCOPE)); - } - - public Object getAttribute(String name, int scope) { - if (scope == PageContext.PAGE_SCOPE) { - return (attributes.get(name)); - } else if (scope == PageContext.REQUEST_SCOPE) { - if (request != null) { - return (request.getAttribute(name)); - } - - return (null); - } else if (scope == PageContext.SESSION_SCOPE) { - if (session != null) { - return (session.getAttribute(name)); - } - - return (null); - } else if (scope == PageContext.APPLICATION_SCOPE) { - if (application != null) { - return (application.getAttribute(name)); - } - - return (null); - } else { - throw new IllegalArgumentException("Invalid scope " + scope); - } - } - - public Enumeration getAttributeNamesInScope(int scope) { - if (scope == PageContext.PAGE_SCOPE) { - return (new MockEnumeration(attributes.keySet().iterator())); - } else if (scope == PageContext.REQUEST_SCOPE) { - if (request != null) { - return (request.getAttributeNames()); - } - - return (new MockEnumeration(Collections.EMPTY_LIST.iterator())); - } else if (scope == PageContext.SESSION_SCOPE) { - if (session != null) { - return (session.getAttributeNames()); - } - - return (new MockEnumeration(Collections.EMPTY_LIST.iterator())); - } else if (scope == PageContext.APPLICATION_SCOPE) { - if (application != null) { - return (application.getAttributeNames()); - } - - return new MockEnumeration(Collections.EMPTY_LIST.iterator()); - } else { - throw new IllegalArgumentException("Invalid scope " + scope); - } - } - - public int getAttributesScope(String name) { - if (attributes.get(name) != null) { - return (PageContext.PAGE_SCOPE); - } else if ((request != null) && (request.getAttribute(name) != null)) { - return (PageContext.REQUEST_SCOPE); - } else if ((session != null) && (session.getAttribute(name) != null)) { - return (PageContext.SESSION_SCOPE); - } else if ((application != null) - && (application.getAttribute(name) != null)) { - return (PageContext.APPLICATION_SCOPE); - } else { - return (0); - } - } - - public Exception getException() { - throw new UnsupportedOperationException(); - } - - /** - *

Custom JspWriter that throws the specified exception (supplied on - * the constructor...if any), else it simply returns.

- */ - public JspWriter getOut() { - JspWriter jspWriter = - new JspWriter(0, false) { - public void print(String s) - throws IOException { - checkAndThrow(); - } - - public void newLine() - throws IOException { - checkAndThrow(); - } - - public void print(boolean b) - throws IOException { - checkAndThrow(); - } - - public void print(char c) - throws IOException { - checkAndThrow(); - } - - public void print(int i) - throws IOException { - checkAndThrow(); - } - - public void print(long l) - throws IOException { - checkAndThrow(); - } - - public void print(float f) - throws IOException { - checkAndThrow(); - } - - public void print(double d) - throws IOException { - checkAndThrow(); - } - - public void print(char[] s) - throws IOException { - checkAndThrow(); - } - - public void print(Object obj) - throws IOException { - checkAndThrow(); - } - - public void println() - throws IOException { - checkAndThrow(); - } - - public void println(boolean x) - throws IOException { - checkAndThrow(); - } - - public void println(char x) - throws IOException { - checkAndThrow(); - } - - public void println(int x) - throws IOException { - checkAndThrow(); - } - - public void println(long x) - throws IOException { - checkAndThrow(); - } - - public void println(float x) - throws IOException { - checkAndThrow(); - } - - public void println(double x) - throws IOException { - checkAndThrow(); - } - - public void println(char[] x) - throws IOException { - checkAndThrow(); - } - - public void println(String x) - throws IOException { - checkAndThrow(); - } - - public void println(Object x) - throws IOException { - checkAndThrow(); - } - - public void clear() - throws IOException { - checkAndThrow(); - } - - public void clearBuffer() - throws IOException { - checkAndThrow(); - } - - public void flush() - throws IOException { - checkAndThrow(); - } - - public void close() - throws IOException { - checkAndThrow(); - } - - public int getRemaining() { - return 0; - } - - public void write(char[] cbuf, int off, int len) - throws IOException { - checkAndThrow(); - } - }; - - if (returnBodyContent) { - return new BodyContent(jspWriter) { - public Reader getReader() { - return null; - } - - public String getString() { - return null; - } - - public void writeOut(Writer out) - throws IOException { - checkAndThrow(); - } - - public void newLine() - throws IOException { - checkAndThrow(); - } - - public void print(boolean b) - throws IOException { - checkAndThrow(); - } - - public void print(char c) - throws IOException { - checkAndThrow(); - } - - public void print(int i) - throws IOException { - checkAndThrow(); - } - - public void print(long l) - throws IOException { - checkAndThrow(); - } - - public void print(float f) - throws IOException { - checkAndThrow(); - } - - public void print(double d) - throws IOException { - checkAndThrow(); - } - - public void print(char[] s) - throws IOException { - checkAndThrow(); - } - - public void print(String s) - throws IOException { - checkAndThrow(); - } - - public void print(Object obj) - throws IOException { - checkAndThrow(); - } - - public void println() - throws IOException { - checkAndThrow(); - } - - public void println(boolean x) - throws IOException { - checkAndThrow(); - } - - public void println(char x) - throws IOException { - checkAndThrow(); - } - - public void println(int x) - throws IOException { - checkAndThrow(); - } - - public void println(long x) - throws IOException { - checkAndThrow(); - } - - public void println(float x) - throws IOException { - checkAndThrow(); - } - - public void println(double x) - throws IOException { - checkAndThrow(); - } - - public void println(char[] x) - throws IOException { - checkAndThrow(); - } - - public void println(String x) - throws IOException { - checkAndThrow(); - } - - public void println(Object x) - throws IOException { - checkAndThrow(); - } - - public void clear() - throws IOException { - checkAndThrow(); - } - - public void clearBuffer() - throws IOException { - checkAndThrow(); - } - - public void close() - throws IOException { - checkAndThrow(); - } - - public int getRemaining() { - return 0; - } - - public void write(char[] cbuf, int off, int len) - throws IOException { - checkAndThrow(); - } - }; - } - - return jspWriter; - } - - public Object getPage() { - throw new UnsupportedOperationException(); - } - - public ServletRequest getRequest() { - return (this.request); - } - - public ServletResponse getResponse() { - return (this.response); - } - - public ServletConfig getServletConfig() { - return (this.config); - } - - public ServletContext getServletContext() { - return (this.application); - } - - public HttpSession getSession() { - return (this.session); - } - - public void handlePageException(Exception e) { - throw new UnsupportedOperationException(); - } - - public void handlePageException(Throwable t) { - throw new UnsupportedOperationException(); - } - - public void include(String path) { - throw new UnsupportedOperationException(); - } - - public void initialize(Servlet servlet, ServletRequest request, - ServletResponse response, String errorPageURL, boolean needsSession, - int bufferSize, boolean autoFlush) { - throw new UnsupportedOperationException(); - } - - public JspWriter popBody() { - throw new UnsupportedOperationException(); - } - - public BodyContent pushBody() { - throw new UnsupportedOperationException(); - } - - public void release() { - throw new UnsupportedOperationException(); - } - - public void removeAttribute(String name) { - int scope = getAttributesScope(name); - - if (scope != 0) { - removeAttribute(name, scope); - } - } - - public void removeAttribute(String name, int scope) { - if (scope == PageContext.PAGE_SCOPE) { - attributes.remove(name); - } else if (scope == PageContext.REQUEST_SCOPE) { - if (request != null) { - request.removeAttribute(name); - } - } else if (scope == PageContext.SESSION_SCOPE) { - if (session != null) { - session.removeAttribute(name); - } - } else if (scope == PageContext.APPLICATION_SCOPE) { - if (application != null) { - application.removeAttribute(name); - } - } else { - throw new IllegalArgumentException("Invalid scope " + scope); - } - } - - public void setAttribute(String name, Object value) { - setAttribute(name, value, PageContext.PAGE_SCOPE); - } - - public void setAttribute(String name, Object value, int scope) { - if (scope == PageContext.PAGE_SCOPE) { - attributes.put(name, value); - } else if (scope == PageContext.REQUEST_SCOPE) { - if (request != null) { - request.setAttribute(name, value); - } - } else if (scope == PageContext.SESSION_SCOPE) { - if (session != null) { - session.setAttribute(name, value); - } - } else if (scope == PageContext.APPLICATION_SCOPE) { - if (application != null) { - application.setAttribute(name, value); - } - } else { - throw new IllegalArgumentException("Invalid scope " + scope); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockPrincipal.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockPrincipal.java deleted file mode 100644 index 85ed973bb51..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockPrincipal.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * $Id: MockPrincipal.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.mock; - -import java.security.Principal; - -/** - *

Mock Principal object for low-level unit tests of - * Struts controller components. Coarser grained tests should be implemented - * in terms of the Cactus framework, instead of the mock object classes.

- * - *

WARNING - Only the minimal set of methods needed to - * create unit tests is provided, plus additional methods to configure this - * object as necessary. Methods for unsupported operations will throw - * UnsupportedOperationException.

- * - *

WARNING - Because unit tests operate in a single - * threaded environment, no synchronization is performed.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class MockPrincipal implements Principal { - protected String name = null; - protected String[] roles = null; - - public MockPrincipal() { - super(); - this.name = ""; - this.roles = new String[0]; - } - - public MockPrincipal(String name) { - super(); - this.name = name; - this.roles = new String[0]; - } - - public MockPrincipal(String name, String[] roles) { - super(); - this.name = name; - this.roles = roles; - } - - public String getName() { - return (this.name); - } - - public boolean isUserInRole(String role) { - for (int i = 0; i < roles.length; i++) { - if (role.equals(roles[i])) { - return (true); - } - } - - return (false); - } - - public boolean equals(Object o) { - if (o == null) { - return (false); - } - - if (!(o instanceof Principal)) { - return (false); - } - - Principal p = (Principal) o; - - if (name == null) { - return (p.getName() == null); - } else { - return (name.equals(p.getName())); - } - } - - public int hashCode() { - if (name == null) { - return ("".hashCode()); - } else { - return (name.hashCode()); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockServletConfig.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockServletConfig.java deleted file mode 100644 index 437a48501f9..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockServletConfig.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * $Id: MockServletConfig.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.mock; - -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; - -import java.util.Enumeration; -import java.util.HashMap; - -/** - *

Mock ServletConfig object for low-level unit tests of - * Struts controller components. Coarser grained tests should be implemented - * in terms of the Cactus framework, instead of the mock object classes.

- * - *

WARNING - Only the minimal set of methods needed to - * create unit tests is provided, plus additional methods to configure this - * object as necessary. Methods for unsupported operations will throw - * UnsupportedOperationException.

- * - *

WARNING - Because unit tests operate in a single - * threaded environment, no synchronization is performed.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class MockServletConfig implements ServletConfig { - // ----------------------------------------------------- Instance Variables - protected ServletContext context = null; - protected HashMap parameters = new HashMap(); - - // ----------------------------------------------------------- Constructors - public MockServletConfig() { - super(); - } - - public MockServletConfig(ServletContext context) { - super(); - setServletContext(context); - } - - // --------------------------------------------------------- Public Methods - public void addInitParameter(String name, String value) { - parameters.put(name, value); - } - - public void setServletContext(ServletContext context) { - this.context = context; - } - - // ------------------------------------------------- ServletContext Methods - public String getInitParameter(String name) { - return ((String) parameters.get(name)); - } - - public Enumeration getInitParameterNames() { - return (new MockEnumeration(parameters.keySet().iterator())); - } - - public ServletContext getServletContext() { - return (this.context); - } - - public String getServletName() { - return ("action"); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockServletContext.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockServletContext.java deleted file mode 100644 index ed5e1f14364..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/MockServletContext.java +++ /dev/null @@ -1,185 +0,0 @@ -/* - * $Id: MockServletContext.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.mock; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.servlet.RequestDispatcher; -import javax.servlet.Servlet; -import javax.servlet.ServletContext; - -import java.io.InputStream; - -import java.net.URL; - -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Set; - -/** - *

Mock ServletContext object for low-level unit tests of - * Struts controller components. Coarser grained tests should be implemented - * in terms of the Cactus framework, instead of the mock object classes.

- * - *

WARNING - Only the minimal set of methods needed to - * create unit tests is provided, plus additional methods to configure this - * object as necessary. Methods for unsupported operations will throw - * UnsupportedOperationException.

- * - *

WARNING - Because unit tests operate in a single - * threaded environment, no synchronization is performed.

- * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class MockServletContext implements ServletContext { - // ----------------------------------------------------- Instance Variables - - /** - *

The set of servlet context attributes.

- */ - protected HashMap attributes = new HashMap(); - - /** - *

Default destination for LOG() output.

- */ - protected Log log = LogFactory.getLog(MockServletContext.class); - - /** - *

The set of context initialization parameters.

- */ - protected HashMap parameters = new HashMap(); - - // --------------------------------------------------------- Public Methods - public void addInitParameter(String name, String value) { - parameters.put(name, value); - } - - public void setLog(Log log) { - this.log = log; - } - - // ------------------------------------------------- ServletContext Methods - public Object getAttribute(String name) { - return (attributes.get(name)); - } - - public Enumeration getAttributeNames() { - return (new MockEnumeration(attributes.keySet().iterator())); - } - - public ServletContext getContext(String uripath) { - throw new UnsupportedOperationException(); - } - - public String getInitParameter(String name) { - return ((String) parameters.get(name)); - } - - public Enumeration getInitParameterNames() { - return (new MockEnumeration(parameters.keySet().iterator())); - } - - public int getMajorVersion() { - return (2); - } - - public String getMimeType(String file) { - throw new UnsupportedOperationException(); - } - - public int getMinorVersion() { - return (3); - } - - public RequestDispatcher getNamedDispatcher(String name) { - throw new UnsupportedOperationException(); - } - - public String getRealPath(String path) { - throw new UnsupportedOperationException(); - } - - public RequestDispatcher getRequestDispatcher(String path) { - throw new UnsupportedOperationException(); - } - - public URL getResource(String path) { - return this.getClass().getResource(path); - - //throw new UnsupportedOperationException(); - } - - public InputStream getResourceAsStream(String path) { - return this.getClass().getResourceAsStream(path); - - //throw new UnsupportedOperationException(); - } - - public Set getResourcePaths(String path) { - throw new UnsupportedOperationException(); - } - - public String getServerInfo() { - return ("MockServletContext/$Version$"); - } - - public Servlet getServlet(String name) { - throw new UnsupportedOperationException(); - } - - public String getServletContextName() { - return (getServerInfo()); - } - - public Enumeration getServletNames() { - throw new UnsupportedOperationException(); - } - - public Enumeration getServlets() { - throw new UnsupportedOperationException(); - } - - public void log(Exception exception, String message) { - log(message, exception); - } - - public void log(String message) { - log.info(message); - } - - public void log(String message, Throwable throwable) { - log.error(message, throwable); - } - - public void removeAttribute(String name) { - attributes.remove(name); - } - - public void setAttribute(String name, Object value) { - if (value == null) { - attributes.remove(name); - } else { - attributes.put(name, value); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/TestMockBase.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/TestMockBase.java deleted file mode 100644 index bcd5c25b62c..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/TestMockBase.java +++ /dev/null @@ -1,388 +0,0 @@ -/* - * $Id: TestMockBase.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.mock; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -import org.apache.struts.Globals; -import org.apache.struts.action.ActionFormBean; -import org.apache.struts.action.ActionForward; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.config.ControllerConfig; -import org.apache.struts.config.FormPropertyConfig; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.config.ModuleConfigFactory; - -/** - *

Convenience base class for unit tests of the org.apache.struts.util - * package, and others that require a runtime environment similar to what the - * Struts controller servlet sets up. The setUp() method - * establishes a consistent basic environment for the various tests. The only - * tests included in this class are simple validations that the basic - * environment was set up correctly.

- * - * @version $Rev: 471754 $ $Date: 2005-08-14 17:24:39 -0400 (Sun, 14 Aug 2005) - * $ - */ -public class TestMockBase extends TestCase { - // ----------------------------------------------------- Instance Variables - protected ModuleConfig moduleConfig = null; - protected ModuleConfig moduleConfig2 = null; - protected ModuleConfig moduleConfig3 = null; - protected MockServletConfig config = null; - protected MockServletContext context = null; - protected MockPageContext page = null; - protected MockPrincipal principal = null; - protected MockHttpServletRequest request = null; - protected MockHttpServletResponse response = null; - protected MockHttpSession session = null; - - // ----------------------------------------------------------------- Basics - public TestMockBase(String name) { - super(name); - } - - public static void main(String[] args) { - junit.awtui.TestRunner.main(new String[] { TestMockBase.class.getName() }); - } - - public static Test suite() { - return (new TestSuite(TestMockBase.class)); - } - - // ----------------------------------------------------- Setup and Teardown - public void setUp() { - // Set up the servlet API objects for a test scenario - context = new MockServletContext(); - config = new MockServletConfig(context); - session = new MockHttpSession(context); - request = new MockHttpServletRequest(session); - principal = - new MockPrincipal("username", new String[] { "admin", "manager" }); - request.setUserPrincipal(principal); - response = new MockHttpServletResponse(); - page = new MockPageContext(config, request, response); - - // Set up application configurations for our supported modules - setUpDefaultApp(); - setUpSecondApp(); - setUpThirdApp(); - - // NOTE - we do not initialize the request attribute - // for the selected module so that fallbacks to the - // default module can be tested. To select a module, - // tests should set the request attribute Globals.MODULE_KEY - // to the ModuleConfig instance for the selected module - } - - protected void setUpDefaultApp() { - ActionFormBean formBean = null; - ActionMapping mapping = null; - - ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory(); - - moduleConfig = factoryObject.createModuleConfig(""); - - context.setAttribute(Globals.MODULE_KEY, moduleConfig); - - // Forward "external" to "http://jakarta.apache.org/" - moduleConfig.addForwardConfig(new ActionForward("external", - "http://jakarta.apache.org/", false)); - - // Forward "foo" to "/bar.jsp" - moduleConfig.addForwardConfig(new ActionForward("foo", "/bar.jsp", false)); - - // Forward "relative1" to "relative.jsp" non-context-relative - moduleConfig.addForwardConfig(new ActionForward("relative1", - "relative.jsp", false)); - - // Forward "relative2" to "relative.jsp" context-relative - moduleConfig.addForwardConfig(new ActionForward("relative2", - "relative.jsp", false)); - - // Form Bean "static" is a standard ActionForm subclass - formBean = - new ActionFormBean("static", "org.apache.struts.mock.MockFormBean"); - moduleConfig.addFormBeanConfig(formBean); - - // Action "/static" uses the "static" form bean in request scope - mapping = new ActionMapping(); - mapping.setInput("/static.jsp"); - mapping.setName("static"); - mapping.setPath("/static"); - mapping.setScope("request"); - mapping.setType("org.apache.struts.mock.MockAction"); - moduleConfig.addActionConfig(mapping); - - // Form Bean "dynamic" is a DynaActionForm with the same properties - formBean = - new ActionFormBean("dynamic", - "org.apache.struts.action.DynaActionForm"); - formBean.addFormPropertyConfig(new FormPropertyConfig( - "booleanProperty", "boolean", "false")); - formBean.addFormPropertyConfig(new FormPropertyConfig( - "stringProperty", "java.lang.String", null)); - moduleConfig.addFormBeanConfig(formBean); - - // Action "/dynamic" uses the "dynamic" form bean in session scope - mapping = new ActionMapping(); - mapping.setInput("/dynamic.jsp"); - mapping.setName("dynamic"); - mapping.setPath("/dynamic"); - mapping.setScope("session"); - mapping.setType("org.apache.struts.mock.MockAction"); - moduleConfig.addActionConfig(mapping); - - // Form Bean "/dynamic0" is a DynaActionForm with initializers - formBean = - new ActionFormBean("dynamic0", - "org.apache.struts.action.DynaActionForm"); - formBean.addFormPropertyConfig(new FormPropertyConfig( - "booleanProperty", "boolean", "true")); - formBean.addFormPropertyConfig(new FormPropertyConfig( - "stringProperty", "java.lang.String", "String Property")); - formBean.addFormPropertyConfig(new FormPropertyConfig("intArray1", - "int[]", "{1,2,3}", 4)); // 4 should be ignored - formBean.addFormPropertyConfig(new FormPropertyConfig("intArray2", - "int[]", null, 5)); // 5 should be respected - formBean.addFormPropertyConfig(new FormPropertyConfig("principal", - "org.apache.struts.mock.MockPrincipal", null)); - formBean.addFormPropertyConfig(new FormPropertyConfig("stringArray1", - "java.lang.String[]", "{aaa,bbb,ccc}", 2)); // 2 should be ignored - formBean.addFormPropertyConfig(new FormPropertyConfig("stringArray2", - "java.lang.String[]", null, 3)); // 3 should be respected - moduleConfig.addFormBeanConfig(formBean); - - // Action "/dynamic0" uses the "dynamic0" form bean in request scope - mapping = new ActionMapping(); - mapping.setName("dynamic0"); - mapping.setPath("/dynamic0"); - mapping.setScope("request"); - mapping.setType("org.apache.struts.mock.MockAction"); - moduleConfig.addActionConfig(mapping); - - // Action "/noform" has no form bean associated with it - mapping = new ActionMapping(); - mapping.setPath("/noform"); - mapping.setType("org.apache.struts.mock.MockAction"); - moduleConfig.addActionConfig(mapping); - - // Configure global forward declarations - moduleConfig.addForwardConfig(new ForwardConfig("moduleForward", - "/module/forward", false)); // No redirect, same module - - moduleConfig.addForwardConfig(new ForwardConfig("moduleRedirect", - "/module/redirect", true)); // Redirect, same module - - moduleConfig.addForwardConfig(new ForwardConfig("contextForward", - "/forward", false, // No redirect - "/context")); // Specify module - - moduleConfig.addForwardConfig(new ForwardConfig("contextRedirect", - "/redirect", true, // Redirect - "/context")); // Specify module - - moduleConfig.addForwardConfig(new ForwardConfig("moduleNoslash", - "module/noslash", false)); // No redirect, same module - - moduleConfig.addForwardConfig(new ForwardConfig("contextNoslash", - "noslash", false, // No redirect - "/context")); // Specify module - } - - protected void setUpSecondApp() { - ActionFormBean formBean = null; - ActionMapping mapping = null; - - ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory(); - - moduleConfig2 = factoryObject.createModuleConfig("/2"); - - context.setAttribute(Globals.MODULE_KEY + "/2", moduleConfig2); - - // Forward "external" to "http://jakarta.apache.org/" - moduleConfig2.addForwardConfig(new ActionForward("external", - "http://jakarta.apache.org/", false)); - - // Forward "foo" to "/baz.jsp" (different from default) - moduleConfig2.addForwardConfig(new ActionForward("foo", "/baz.jsp", - false)); - - // Forward "relative1" to "relative.jsp" non-context-relative - moduleConfig2.addForwardConfig(new ActionForward("relative1", - "relative.jsp", false)); - - // Forward "relative2" to "relative.jsp" context-relative - moduleConfig2.addForwardConfig(new ActionForward("relative2", - "relative.jsp", false)); - - // Form Bean "static" is a standard ActionForm subclass (same as default) - formBean = - new ActionFormBean("static", "org.apache.struts.mock.MockFormBean"); - moduleConfig2.addFormBeanConfig(formBean); - - // Action "/static" uses the "static" form bean in request scope (same as default) - mapping = new ActionMapping(); - mapping.setInput("/static.jsp"); - mapping.setName("static"); - mapping.setPath("/static"); - mapping.setScope("request"); - mapping.setType("org.apache.struts.mock.MockAction"); - moduleConfig2.addActionConfig(mapping); - - // Form Bean "dynamic2" is a DynaActionForm with the same properties - formBean = - new ActionFormBean("dynamic2", - "org.apache.struts.action.DynaActionForm"); - formBean.addFormPropertyConfig(new FormPropertyConfig( - "booleanProperty", "boolean", "false")); - formBean.addFormPropertyConfig(new FormPropertyConfig( - "stringProperty", "java.lang.String", null)); - moduleConfig2.addFormBeanConfig(formBean); - - // Action "/dynamic2" uses the "dynamic2" form bean in session scope - mapping = new ActionMapping(); - mapping.setInput("/dynamic2.jsp"); - mapping.setName("dynamic2"); - mapping.setPath("/dynamic2"); - mapping.setScope("session"); - mapping.setType("org.apache.struts.mock.MockAction"); - moduleConfig2.addActionConfig(mapping); - - // Action "/noform" has no form bean associated with it (same as default) - mapping = new ActionMapping(); - mapping.setPath("/noform"); - mapping.setType("org.apache.struts.mock.MockAction"); - moduleConfig2.addActionConfig(mapping); - - // Configure global forward declarations - moduleConfig2.addForwardConfig(new ForwardConfig("moduleForward", - "/module/forward", false)); // No redirect, same module - - moduleConfig2.addForwardConfig(new ForwardConfig("moduleRedirect", - "/module/redirect", true)); // Redirect, same module - - moduleConfig2.addForwardConfig(new ForwardConfig("contextForward", - "/forward", false, // No redirect - "/context")); // Specify module - - moduleConfig2.addForwardConfig(new ForwardConfig("contextRedirect", - "/redirect", true, // Redirect - "/context")); // Specify module - - moduleConfig2.addForwardConfig(new ForwardConfig("moduleNoslash", - "module/noslash", false)); // No redirect, same module - - moduleConfig2.addForwardConfig(new ForwardConfig("contextNoslash", - "noslash", false, // No redirect - "/context")); // Specify module - } - - // Set up third app for testing URL mapping - protected void setUpThirdApp() { - ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory(); - - moduleConfig3 = factoryObject.createModuleConfig("/3"); - - context.setAttribute(Globals.MODULE_KEY + "/3", moduleConfig3); - - // Instantiate the controller configuration for this app - ControllerConfig controller = new ControllerConfig(); - - moduleConfig3.setControllerConfig(controller); - - // Configure the properties we will be testing - controller.setForwardPattern("/forwarding$M$P"); - controller.setInputForward(true); - controller.setPagePattern("/paging$M$P"); - - // Configure global forward declarations - moduleConfig3.addForwardConfig(new ForwardConfig("moduleForward", - "/module/forward", false)); // No redirect, same module - - moduleConfig3.addForwardConfig(new ForwardConfig("moduleRedirect", - "/module/redirect", true)); // Redirect, same module - - moduleConfig3.addForwardConfig(new ForwardConfig("contextForward", - "/forward", false, // No redirect - "/context")); // Specify module - - moduleConfig3.addForwardConfig(new ForwardConfig("contextRedirect", - "/redirect", true, // Redirect - "/context")); // Specify module - - moduleConfig3.addForwardConfig(new ForwardConfig("moduleNoslash", - "module/noslash", false)); // No redirect, same module - - moduleConfig3.addForwardConfig(new ForwardConfig("contextNoslash", - "noslash", false, // No redirect - "/context")); // specify module - } - - public void tearDown() { - moduleConfig3 = null; - moduleConfig2 = null; - moduleConfig = null; - config = null; - context = null; - page = null; - principal = null; - request = null; - response = null; - session = null; - } - - // ------------------------------------------------------- Individual Tests - // Test the basic setup of the mock object environment - public void testUtilBaseEnvironment() { - // Validate the servlet API objects and inter-relationships - assertNotNull("config is present", config); - assertNotNull("context is present", context); - assertNotNull("page is present", page); - assertNotNull("principal is present", principal); - assertNotNull("request is present", request); - assertNotNull("response is present", response); - assertNotNull("session is present", session); - assertEquals("page-->config", config, page.getServletConfig()); - assertEquals("config-->context", context, config.getServletContext()); - assertEquals("page-->context", context, page.getServletContext()); - assertEquals("page-->request", request, page.getRequest()); - assertEquals("page-->response", response, page.getResponse()); - assertEquals("page-->session", session, page.getSession()); - assertEquals("request-->principal", principal, - request.getUserPrincipal()); - assertEquals("request-->session", session, request.getSession()); - assertEquals("session-->context", context, session.getServletContext()); - - // Validate the configuration for the default module - assertNotNull("moduleConfig is present", moduleConfig); - assertEquals("context-->moduleConfig", moduleConfig, - context.getAttribute(Globals.MODULE_KEY)); - - // Validate the configuration for the second module - assertNotNull("moduleConfig2 is present", moduleConfig2); - assertEquals("context-->moduleConfig2", moduleConfig2, - context.getAttribute(Globals.MODULE_KEY + "/2")); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/package.html b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/package.html deleted file mode 100644 index 148fa65be79..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/mock/package.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - -

Mock objects of the Struts Framework.

- - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/package.html b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/package.html deleted file mode 100644 index daff8c38931..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/package.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - -

Global data for the entire Struts Framework.

- - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/CommonsMultipartRequestHandler.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/CommonsMultipartRequestHandler.java deleted file mode 100644 index 6ef37451289..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/CommonsMultipartRequestHandler.java +++ /dev/null @@ -1,643 +0,0 @@ -/* - * $Id: CommonsMultipartRequestHandler.java 524895 2007-04-02 19:29:21Z germuska $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.upload; - -import org.apache.commons.fileupload.DiskFileUpload; -import org.apache.commons.fileupload.disk.DiskFileItem; -import org.apache.commons.fileupload.FileItem; -import org.apache.commons.fileupload.FileUploadException; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.Globals; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.action.ActionServlet; -import org.apache.struts.config.ModuleConfig; - -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.io.Serializable; - -import java.util.ArrayList; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.List; - -/** - *

This class implements the MultipartRequestHandler - * interface by providing a wrapper around the Jakarta Commons FileUpload - * library.

- * - * @version $Rev: 524895 $ $Date: 2007-04-02 21:29:21 +0200 (Mon, 02 Apr 2007) $ - * @since Struts 1.1 - */ -public class CommonsMultipartRequestHandler implements MultipartRequestHandler { - // ----------------------------------------------------- Manifest Constants - - /** - *

The default value for the maximum allowable size, in bytes, of an - * uploaded file. The value is equivalent to 250MB.

- */ - public static final long DEFAULT_SIZE_MAX = 250 * 1024 * 1024; - - /** - *

The default value for the threshold which determines whether an - * uploaded file will be written to disk or cached in memory. The value is - * equivalent to 250KB.

- */ - public static final int DEFAULT_SIZE_THRESHOLD = 256 * 1024; - - // ----------------------------------------------------- Instance Variables - - /** - *

Commons Logging instance.

- */ - protected static Log log = - LogFactory.getLog(CommonsMultipartRequestHandler.class); - - /** - *

The combined text and file request parameters.

- */ - private Hashtable elementsAll; - - /** - *

The file request parameters.

- */ - private Hashtable elementsFile; - - /** - *

The text request parameters.

- */ - private Hashtable elementsText; - - /** - *

The action mapping with which this handler is associated.

- */ - private ActionMapping mapping; - - /** - *

The servlet with which this handler is associated.

- */ - private ActionServlet servlet; - - // ---------------------------------------- MultipartRequestHandler Methods - - /** - *

Retrieves the servlet with which this handler is associated.

- * - * @return The associated servlet. - */ - public ActionServlet getServlet() { - return this.servlet; - } - - /** - *

Sets the servlet with which this handler is associated.

- * - * @param servlet The associated servlet. - */ - public void setServlet(ActionServlet servlet) { - this.servlet = servlet; - } - - /** - *

Retrieves the action mapping with which this handler is associated. - *

- * - * @return The associated action mapping. - */ - public ActionMapping getMapping() { - return this.mapping; - } - - /** - *

Sets the action mapping with which this handler is associated. - *

- * - * @param mapping The associated action mapping. - */ - public void setMapping(ActionMapping mapping) { - this.mapping = mapping; - } - - /** - *

Parses the input stream and partitions the parsed items into a set - * of form fields and a set of file items. In the process, the parsed - * items are translated from Commons FileUpload FileItem - * instances to Struts FormFile instances.

- * - * @param request The multipart request to be processed. - * @throws ServletException if an unrecoverable error occurs. - */ - public void handleRequest(HttpServletRequest request) - throws ServletException { - // Get the app config for the current request. - ModuleConfig ac = - (ModuleConfig) request.getAttribute(Globals.MODULE_KEY); - - // Create and configure a DIskFileUpload instance. - DiskFileUpload upload = new DiskFileUpload(); - - // The following line is to support an "EncodingFilter" - // see http://issues.apache.org/bugzilla/show_bug.cgi?id=23255 - upload.setHeaderEncoding(request.getCharacterEncoding()); - - // Set the maximum size before a FileUploadException will be thrown. - upload.setSizeMax(getSizeMax(ac)); - - // Set the maximum size that will be stored in memory. - upload.setSizeThreshold((int) getSizeThreshold(ac)); - - // Set the the location for saving data on disk. - upload.setRepositoryPath(getRepositoryPath(ac)); - - // Create the hash tables to be populated. - elementsText = new Hashtable(); - elementsFile = new Hashtable(); - elementsAll = new Hashtable(); - - // Parse the request into file items. - List items = null; - - try { - items = upload.parseRequest(request); - } catch (DiskFileUpload.SizeLimitExceededException e) { - // Special handling for uploads that are too big. - request.setAttribute(MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED, - Boolean.TRUE); - - return; - } catch (FileUploadException e) { - log.error("Failed to parse multipart request", e); - throw new ServletException(e); - } - - // Partition the items into form fields and files. - Iterator iter = items.iterator(); - - while (iter.hasNext()) { - FileItem item = (FileItem) iter.next(); - - if (item.isFormField()) { - addTextParameter(request, item); - } else { - addFileParameter(item); - } - } - } - - /** - *

Returns a hash table containing the text (that is, non-file) - * request parameters.

- * - * @return The text request parameters. - */ - public Hashtable getTextElements() { - return this.elementsText; - } - - /** - *

Returns a hash table containing the file (that is, non-text) - * request parameters.

- * - * @return The file request parameters. - */ - public Hashtable getFileElements() { - return this.elementsFile; - } - - /** - *

Returns a hash table containing both text and file request - * parameters.

- * - * @return The text and file request parameters. - */ - public Hashtable getAllElements() { - return this.elementsAll; - } - - /** - *

Cleans up when a problem occurs during request processing.

- */ - public void rollback() { - Iterator iter = elementsFile.values().iterator(); - - Object o; - while (iter.hasNext()) { - o = iter.next(); - if (o instanceof List) { - for (Iterator i = ((List)o).iterator(); i.hasNext(); ) { - ((FormFile)i.next()).destroy(); - } - } else { - ((FormFile)o).destroy(); - } - } - } - - /** - *

Cleans up at the end of a request.

- */ - public void finish() { - rollback(); - } - - // -------------------------------------------------------- Support Methods - - /** - *

Returns the maximum allowable size, in bytes, of an uploaded file. - * The value is obtained from the current module's controller - * configuration.

- * - * @param mc The current module's configuration. - * @return The maximum allowable file size, in bytes. - */ - protected long getSizeMax(ModuleConfig mc) { - return convertSizeToBytes(mc.getControllerConfig().getMaxFileSize(), - DEFAULT_SIZE_MAX); - } - - /** - *

Returns the size threshold which determines whether an uploaded - * file will be written to disk or cached in memory.

- * - * @param mc The current module's configuration. - * @return The size threshold, in bytes. - */ - protected long getSizeThreshold(ModuleConfig mc) { - return convertSizeToBytes(mc.getControllerConfig().getMemFileSize(), - DEFAULT_SIZE_THRESHOLD); - } - - /** - *

Converts a size value from a string representation to its numeric - * value. The string must be of the form nnnm, where nnn is an arbitrary - * decimal value, and m is a multiplier. The multiplier must be one of - * 'K', 'M' and 'G', representing kilobytes, megabytes and gigabytes - * respectively.

If the size value cannot be converted, for - * example due to invalid syntax, the supplied default is returned - * instead.

- * - * @param sizeString The string representation of the size to be - * converted. - * @param defaultSize The value to be returned if the string is invalid. - * @return The actual size in bytes. - */ - protected long convertSizeToBytes(String sizeString, long defaultSize) { - int multiplier = 1; - - if (sizeString.endsWith("K")) { - multiplier = 1024; - } else if (sizeString.endsWith("M")) { - multiplier = 1024 * 1024; - } else if (sizeString.endsWith("G")) { - multiplier = 1024 * 1024 * 1024; - } - - if (multiplier != 1) { - sizeString = sizeString.substring(0, sizeString.length() - 1); - } - - long size = 0; - - try { - size = Long.parseLong(sizeString); - } catch (NumberFormatException nfe) { - log.warn("Invalid format for file size ('" + sizeString - + "'). Using default."); - size = defaultSize; - multiplier = 1; - } - - return (size * multiplier); - } - - /** - *

Returns the path to the temporary directory to be used for uploaded - * files which are written to disk. The directory used is determined from - * the first of the following to be non-empty.

  1. A temp dir - * explicitly defined either using the tempDir servlet init - * param, or the tempDir attribute of the <controller> - * element in the Struts config file.
  2. The container-specified - * temp dir, obtained from the javax.servlet.context.tempdir - * servlet context attribute.
  3. The temp dir specified by the - * java.io.tmpdir system property.
  4. (/ol>

    - * - * @param mc The module config instance for which the path should be - * determined. - * @return The path to the directory to be used to store uploaded files. - */ - protected String getRepositoryPath(ModuleConfig mc) { - // First, look for an explicitly defined temp dir. - String tempDir = mc.getControllerConfig().getTempDir(); - - // If none, look for a container specified temp dir. - if ((tempDir == null) || (tempDir.length() == 0)) { - if (servlet != null) { - ServletContext context = servlet.getServletContext(); - File tempDirFile = - (File) context.getAttribute("javax.servlet.context.tempdir"); - - tempDir = tempDirFile.getAbsolutePath(); - } - - // If none, pick up the system temp dir. - if ((tempDir == null) || (tempDir.length() == 0)) { - tempDir = System.getProperty("java.io.tmpdir"); - } - } - - if (log.isTraceEnabled()) { - log.trace("File upload temp dir: " + tempDir); - } - - return tempDir; - } - - /** - *

    Adds a regular text parameter to the set of text parameters for - * this request and also to the list of all parameters. Handles the case - * of multiple values for the same parameter by using an array for the - * parameter value.

    - * - * @param request The request in which the parameter was specified. - * @param item The file item for the parameter to add. - */ - protected void addTextParameter(HttpServletRequest request, FileItem item) { - String name = item.getFieldName(); - String value = null; - boolean haveValue = false; - String encoding = null; - - if (item instanceof DiskFileItem) { - encoding = ((DiskFileItem)item).getCharSet(); - if (log.isDebugEnabled()) { - log.debug("DiskFileItem.getCharSet=[" + encoding + "]"); - } - } - - if (encoding == null) { - encoding = request.getCharacterEncoding(); - if (log.isDebugEnabled()) { - log.debug("request.getCharacterEncoding=[" + encoding + "]"); - } - } - - if (encoding != null) { - try { - value = item.getString(encoding); - haveValue = true; - } catch (Exception e) { - // Handled below, since haveValue is false. - } - } - - if (!haveValue) { - try { - value = item.getString("ISO-8859-1"); - } catch (java.io.UnsupportedEncodingException uee) { - value = item.getString(); - } - - haveValue = true; - } - - if (request instanceof MultipartRequestWrapper) { - MultipartRequestWrapper wrapper = (MultipartRequestWrapper) request; - - wrapper.setParameter(name, value); - } - - String[] oldArray = (String[]) elementsText.get(name); - String[] newArray; - - if (oldArray != null) { - newArray = new String[oldArray.length + 1]; - System.arraycopy(oldArray, 0, newArray, 0, oldArray.length); - newArray[oldArray.length] = value; - } else { - newArray = new String[] { value }; - } - - elementsText.put(name, newArray); - elementsAll.put(name, newArray); - } - - /** - *

    Adds a file parameter to the set of file parameters for this - * request and also to the list of all parameters.

    - * - * @param item The file item for the parameter to add. - */ - protected void addFileParameter(FileItem item) { - FormFile formFile = new CommonsFormFile(item); - - String name = item.getFieldName(); - if (elementsFile.containsKey(name)) { - Object o = elementsFile.get(name); - if (o instanceof List) { - ((List)o).add(formFile); - } else { - List list = new ArrayList(); - list.add((FormFile)o); - list.add(formFile); - elementsFile.put(name, list); - elementsAll.put(name, list); - } - } else { - elementsFile.put(name, formFile); - elementsAll.put(name, formFile); - } - } - - // ---------------------------------------------------------- Inner Classes - - /** - *

    This class implements the Struts FormFile interface by - * wrapping the Commons FileUpload FileItem interface. This - * implementation is read-only; any attempt to modify an instance - * of this class will result in an UnsupportedOperationException. - *

    - */ - static class CommonsFormFile implements FormFile, Serializable { - /** - *

    The FileItem instance wrapped by this object. - *

    - */ - FileItem fileItem; - - /** - * Constructs an instance of this class which wraps the supplied file - * item.

    - * - * @param fileItem The Commons file item to be wrapped. - */ - public CommonsFormFile(FileItem fileItem) { - this.fileItem = fileItem; - } - - /** - *

    Returns the content type for this file.

    - * - * @return A String representing content type. - */ - public String getContentType() { - return fileItem.getContentType(); - } - - /** - *

    Sets the content type for this file.

    NOTE: This method is - * not supported in this implementation.

    - * - * @param contentType A string representing the content type. - */ - public void setContentType(String contentType) { - throw new UnsupportedOperationException( - "The setContentType() method is not supported."); - } - - /** - *

    Returns the size, in bytes, of this file.

    - * - * @return The size of the file, in bytes. - */ - public int getFileSize() { - return (int) fileItem.getSize(); - } - - /** - *

    Sets the size, in bytes, for this file.

    NOTE: This method - * is not supported in this implementation.

    - * - * @param filesize The size of the file, in bytes. - */ - public void setFileSize(int filesize) { - throw new UnsupportedOperationException( - "The setFileSize() method is not supported."); - } - - /** - *

    Returns the (client-side) file name for this file.

    - * - * @return The client-size file name. - */ - public String getFileName() { - return getBaseFileName(fileItem.getName()); - } - - /** - *

    Sets the (client-side) file name for this file.

    NOTE: This - * method is not supported in this implementation.

    - * - * @param fileName The client-side name for the file. - */ - public void setFileName(String fileName) { - throw new UnsupportedOperationException( - "The setFileName() method is not supported."); - } - - /** - *

    Returns the data for this file as a byte array. Note that this - * may result in excessive memory usage for large uploads. The use of - * the {@link #getInputStream() getInputStream} method is encouraged - * as an alternative.

    - * - * @return An array of bytes representing the data contained in this - * form file. - * @throws FileNotFoundException If some sort of file representation - * cannot be found for the FormFile - * @throws IOException If there is some sort of IOException - */ - public byte[] getFileData() - throws FileNotFoundException, IOException { - return fileItem.get(); - } - - /** - *

    Get an InputStream that represents this file. This is the - * preferred method of getting file data.

    - * - * @throws FileNotFoundException If some sort of file representation - * cannot be found for the FormFile - * @throws IOException If there is some sort of IOException - */ - public InputStream getInputStream() - throws FileNotFoundException, IOException { - return fileItem.getInputStream(); - } - - /** - *

    Destroy all content for this form file. Implementations should - * remove any temporary files or any temporary file data stored - * somewhere

    - */ - public void destroy() { - fileItem.delete(); - } - - /** - *

    Returns the base file name from the supplied file path. On the - * surface, this would appear to be a trivial task. Apparently, - * however, some Linux JDKs do not implement File.getName() - * correctly for Windows paths, so we attempt to take care of that - * here.

    - * - * @param filePath The full path to the file. - * @return The base file name, from the end of the path. - */ - protected String getBaseFileName(String filePath) { - // First, ask the JDK for the base file name. - String fileName = new File(filePath).getName(); - - // Now check for a Windows file name parsed incorrectly. - int colonIndex = fileName.indexOf(":"); - - if (colonIndex == -1) { - // Check for a Windows SMB file path. - colonIndex = fileName.indexOf("\\\\"); - } - - int backslashIndex = fileName.lastIndexOf("\\"); - - if ((colonIndex > -1) && (backslashIndex > -1)) { - // Consider this filename to be a full Windows path, and parse it - // accordingly to retrieve just the base file name. - fileName = fileName.substring(backslashIndex + 1); - } - - return fileName; - } - - /** - *

    Returns the (client-side) file name for this file.

    - * - * @return The client-size file name. - */ - public String toString() { - return getFileName(); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/FormFile.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/FormFile.java deleted file mode 100755 index 30d8a94637e..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/FormFile.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * $Id: FormFile.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.upload; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; - -/** - *

    This interface represents a file that has been uploaded by a client. It - * is the only interface or class in upload package which is typically - * referenced directly by a Struts application.

    - */ -public interface FormFile { - /** - *

    Returns the content type for this file.

    - * - * @return A String representing content type. - */ - public String getContentType(); - - /** - *

    Sets the content type for this file.

    - * - * @param contentType The content type for the file. - */ - public void setContentType(String contentType); - - /** - *

    Returns the size of this file.

    - * - * @return The size of the file, in bytes. - */ - public int getFileSize(); - - /** - *

    Sets the file size.

    - * - * @param fileSize The size of the file, in bytes, - */ - public void setFileSize(int fileSize); - - /** - *

    Returns the file name of this file. This is the base name of the - * file, as supplied by the user when the file was uploaded.

    - * - * @return The base file name. - */ - public String getFileName(); - - /** - *

    Sets the file name of this file.

    - * - * @param fileName The base file name. - */ - public void setFileName(String fileName); - - /** - *

    Returns the data for the entire file as byte array. Care is needed - * when using this method, since a large upload could easily exhaust - * available memory. The preferred method for accessing the file data is - * {@link #getInputStream() getInputStream}.

    - * - * @return The file data as a byte array. - * @throws FileNotFoundException if the uploaded file is not found. - * @throws IOException if an error occurred while reading the - * file. - */ - public byte[] getFileData() - throws FileNotFoundException, IOException; - - /** - *

    Returns an input stream for this file. The caller must close the - * stream when it is no longer needed.

    - * - * @throws FileNotFoundException if the uploaded file is not found. - * @throws IOException if an error occurred while reading the - * file. - */ - public InputStream getInputStream() - throws FileNotFoundException, IOException; - - /** - *

    Destroys all content for the uploaded file, including any - * underlying data files.

    - */ - public void destroy(); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/MultipartRequestHandler.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/MultipartRequestHandler.java deleted file mode 100755 index 6272b4baa3b..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/MultipartRequestHandler.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * $Id: MultipartRequestHandler.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.upload; - -import org.apache.struts.action.ActionMapping; -import org.apache.struts.action.ActionServlet; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; - -import java.util.Hashtable; - -/** - *

    MultipartRequestHandler provides an standard interface for struts to - * deal with file uploads from forms with enctypes of "multipart/form-data". - * Providers must provide a no-argument constructor for initialization.

    - */ -public interface MultipartRequestHandler { - /** - *

    This is the ServletRequest attribute that should be set when a - * multipart request is being read and the maximum length is exceeded. The - * value is a Boolean. If the maximum length isn't exceeded, this - * attribute shouldn't be put in the ServletRequest. It's the job of the - * implementation to put this attribute in the request if the maximum - * length is exceeded; in the handleRequest(HttpServletRequest) method. - *

    - */ - public static final String ATTRIBUTE_MAX_LENGTH_EXCEEDED = - "org.apache.struts.upload.MaxLengthExceeded"; - - /** - *

    Convienience method to set a reference to a working ActionServlet - * instance.

    - */ - public void setServlet(ActionServlet servlet); - - /** - *

    Convienience method to set a reference to a working ActionMapping - * instance.

    - */ - public void setMapping(ActionMapping mapping); - - /** - *

    Get the ActionServlet instance

    - */ - public ActionServlet getServlet(); - - /** - *

    Get the ActionMapping instance for this request

    - */ - public ActionMapping getMapping(); - - /** - *

    After constructed, this is the first method called on by - * ActionServlet. Use this method for all your data-parsing of the - * ServletInputStream in the request

    - * - * @throws ServletException thrown if something goes wrong - */ - public void handleRequest(HttpServletRequest request) - throws ServletException; - - /** - *

    This method is called on to retrieve all the text input elements of - * the request.

    - * - * @return A Hashtable where the keys and values are the names and values - * of the request input parameters - */ - public Hashtable getTextElements(); - - /** - *

    This method is called on to retrieve all the FormFile input - * elements of the request.

    - * - * @return A Hashtable where the keys are the input names of the files and - * the values are FormFile objects - * @see FormFile - */ - public Hashtable getFileElements(); - - /** - *

    This method returns all elements of a multipart request.

    - * - * @return A Hashtable where the keys are input names and values are - * either String arrays or FormFiles - */ - public Hashtable getAllElements(); - - /** - *

    This method is called on when there's some sort of problem and the - * form post needs to be rolled back. Providers should remove any - * FormFiles used to hold information by setting them to null and also - * physically delete them if the implementation calls for writing directly - * to disk. NOTE: Currently implemented but not automatically supported, - * ActionForm implementors must call rollback() manually for rolling back - * file uploads.

    - */ - public void rollback(); - - /** - *

    This method is called on when a successful form post has been made. - * Some implementations will use this to destroy temporary files or write - * to a database or something of that nature.

    - */ - public void finish(); -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/MultipartRequestWrapper.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/MultipartRequestWrapper.java deleted file mode 100644 index cf7760286fb..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/MultipartRequestWrapper.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * $Id: MultipartRequestWrapper.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.upload; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletRequestWrapper; - -import java.util.Collection; -import java.util.Collections; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Vector; - -/** - *

    This class functions as a wrapper around HttpServletRequest to provide - * working getParameter methods for multipart requests.

    - */ -public class MultipartRequestWrapper extends HttpServletRequestWrapper { - /** - *

    The parameters for this multipart request

    - */ - protected Map parameters; - - public MultipartRequestWrapper(HttpServletRequest request) { - super(request); - this.parameters = new HashMap(); - } - - /** - *

    Sets a parameter for this request. The parameter is actually - * separate from the request parameters, but calling on the getParameter() - * methods of this class will work as if they weren't.

    - */ - public void setParameter(String name, String value) { - String[] mValue = (String[]) parameters.get(name); - - if (mValue == null) { - mValue = new String[0]; - } - - String[] newValue = new String[mValue.length + 1]; - - System.arraycopy(mValue, 0, newValue, 0, mValue.length); - newValue[mValue.length] = value; - - parameters.put(name, newValue); - } - - /** - *

    Attempts to get a parameter for this request. It first looks in - * the underlying HttpServletRequest object for the parameter, and if that - * doesn't exist it looks for the parameters retrieved from the multipart - * request

    - */ - public String getParameter(String name) { - String value = getRequest().getParameter(name); - - if (value == null) { - String[] mValue = (String[]) parameters.get(name); - - if ((mValue != null) && (mValue.length > 0)) { - value = mValue[0]; - } - } - - return value; - } - - /** - *

    Returns the names of the parameters for this request. The - * enumeration consists of the normal request parameter names plus the - * parameters read from the multipart request

    - */ - public Enumeration getParameterNames() { - Enumeration baseParams = getRequest().getParameterNames(); - Vector list = new Vector(); - - while (baseParams.hasMoreElements()) { - list.add(baseParams.nextElement()); - } - - Collection multipartParams = parameters.keySet(); - Iterator iterator = multipartParams.iterator(); - - while (iterator.hasNext()) { - list.add(iterator.next()); - } - - return Collections.enumeration(list); - } - - /** - *

    Returns the values of a parameter in this request. It first looks - * in the underlying HttpServletRequest object for the parameter, and if - * that doesn't exist it looks for the parameter retrieved from the - * multipart request.

    - */ - public String[] getParameterValues(String name) { - String[] value = getRequest().getParameterValues(name); - - if (value == null) { - value = (String[]) parameters.get(name); - } - - return value; - } - - /** - *

    Combines the parameters stored here with those in the underlying - * request. If paramater values in the underlying request take precedence - * over those stored here.

    - */ - public Map getParameterMap() { - Map map = new HashMap(parameters); - - map.putAll(getRequest().getParameterMap()); - - return map; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/doc-files/uploadUML.jpg b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/doc-files/uploadUML.jpg deleted file mode 100644 index 01d2abd4a46ba8c8a97c00819dd51ce62fa8ea40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57462 zcmeFYbx>SQw?4WF?h*(tfgzCK9^8TlcXxM}-~@LF5Zv9}2?Te71qOF__uu5)WAFRb z`ObH5{ri6o7(Uv{1AF@Uj310|;<%@NlpQ z@bK`6hzLk1*r+JT$SC+&uhFrI2}ntZ35bZuK=f2(`1MLA`>8frW!dKtw`@+)$4Jyn=#;egy*!3kw4Sx!Vi!I{bnd;-dMRMhW3u(GjpeB|U3{v;wQCN3eV zsHCi-s-~`CXk=_+YG!WX=;Z9;>gMhd@HH?fI3zSIF8*6WV$%2Il$_kW{DQ)w;*y%$ zy84F3rskHP-95d1{R4wTlT*_(v%lx&!E5Uqn_JsEyLCkluh;*C@~anD%d${cDE#|9`UVKMngYyTAYnG!$g;pfLe{;O3sXLbhAOq}4Ik zoFJ%pUE4@|&=%!J#X%FC6Z`>xgJJ+JmlJP*;y2F(yt;_#zK8S73y^SaZSo*JpT1%w zPB=2gl*!Jq7d5x>g8CVvji(Y` z_FFk~j^hCnImLSoigOEfss!oFSzE)1Hi?vajC}H2IVkoS$(t8b_@`zX5geG3&$P3q zpX^4lW7Pxg(3iON;Nc5lNQJ1O9m2+^FAqvz0GdPa=yhr>cgH{sM{=4WpOx(tarN{L zkAXD%&=*3Nunoo5X`*I*y2+k0IQSu+I>9KGDV_`uy;oZ}!Ek{^-S*g(>!T)4Vko~P zaK5VoPg4zmorj&^C3%I#KlKqKRJMrz9_~a}iS{n@eoJC*kwCaT#S$0>kr-ru zxRoK*+ZUikAi|u(g}K|_d4o8k`1Kpzp;L7?Ixnt&JlUk8N9$c#X1 z%EF_4X`g0itT~GJaZMRVKhhOz4uGYV(laHKgUiPm-c6jcuoEoSxc#BkT#r@7q@}SS z($u%5O)TBg@;Ef)K`O*G+gDhqt$U|yGHYA6l)QBP$**l>1OLL%`}hWyI6CTye#zNLo-jmlNt&+C5bfTflAn<)v9+j18`ElMcTDD@|%F=om3hkcU$Fkk` z#I!&xYs;iymU=Q-%?J~^zjuuy_%F$H4T*Cc{Ck{ zVZ`M)RmOLqSwz1p+k$aXgyyzZJsq=~RYAlAr<335$d`yD4Z{l|x2Lo?PlZE6duh>@ z_^3w87Dc{g^z}Hw;135Dph#;=awE>e4ysuMTMp`fXmCU~Iv+GcRaQiQ<@s`Awx!e+ zjWn+&yy=0Cn*VskmR&4SEMilh57y8cZ-bL6P4p95J;yh6kg@OM&T!jFt!?{p`T~4C zHjS3d*mf*g!NgRD!#v(LcEBVN%EOEdnO`h~a`@SQy|h&r_yW|ISCE|%jxr3>`QtPy zk4@EmdKXhf6W~W-YnWb~?n_8u1n%juy{?aptYF%DiaR^za2|90^!;dxb8s)peB60G zzbV1`(waaVI+k#-R5D^X15w^e;Nwwzw4&B?J8VPqYNPs@F+t_~MBpE1XKDWyEb}HZQz?Z5zBLPdGo@ z!fY$uvE%mEVuTkgkS>$jegQ1i=D-^yy7LSq8?IVAP7+Z|ENL0vx6}SY8te>w^V5X4z~Af)a5gEtx{6SH@<_;4inT`B*L^d5@R3x9mk3K z^A`7$FlC?03k8i?9S$P|opt#-RF`}gCk)m5OzN+v=moM`*-E%ets0Gm-P(GF5 zuphR$JFdEm3i`EL(irz2D?4;6N=_GaOgj&|t1u?wmfB*c-!^>iqceh^F@$bG|UV&3s)q8*hrAlk;xT`eyrNuk2QaLz9Sz7xE&m zU?Q?squM2207UeD{`=Rg{11;m9%Ho+-1>%P+ck;3IezUpHoUh%zh~`-KbF36?7Gvm z^r=-`zD-0XHsMATDq^ZD+swSugKpDv;5+U2{6YjRxs(0^{1iSLfBrg({`>+kyZ|8i zzdwNOM{gy{xWijVcYyP0vuaJ0?`x*aQm>PTPnZ*(JZ9OIrn+k!j%R0?{qKMP^_D7` z(fPYwr3*eLV0>shGQD>o(LYx%5k@NOgf&^R`?-fl>uWCctpSD1xWb+<~6ZL5I@li zu={!91voi>0nSA{dVW_6x?5Z9amH=9{EXqw0yDdQgjHOy$KPeP=mp$ffPeT4>1oWP z;|q|@BK!jU7=8f;arRT9N)7Y!TUQqQfu^RYS>h$5gawP7sJ!?)K%x_7X6RovordJ0 zmp~@nowB}XDkz-9vl=V~Vl;w&m{*n*3w#@Oji-ROieUyl`U3oY45guE zV?59bWnK<`-y}PyNDP|CV?|-KuGY-IIu^6E4CRoW6Z||T%RIXeO2Gw-Zt5YWk%$Ts zTk@-SG}X;`@}gi_MV-jGnGy;v`_H-qJB1@*ZkLy%fcuYs#dEJMJ)Aq5t#d~0w^o)u zO=s+@VOKfpcPn+!%0f$}rW}Ks?x&C;G3E`j0c=YT%t_s#~ET znFIz`D20(8!uW?y9KN1c+|%EnHeP_ghXc0H-`+;G>R${+j@cXBB=%~F4omACJ?u4P zlt8*E7e>h)GUhnIc#!R?4L5N%PU1P%v8fkNp(haExyTNHpU03tgYM65V`2b-uWZKysp+^SSw{ch3`KS?!Ml!NnWQBcD05PZwl>l zfodXDb{WH_cQYFEh&Ic5ReMP%`(WD*HYwk{{D|LYpN2G1;vtiY z7MZKI=W;|LXlzT|X8jg6EGH0V6)Fu~Pym-YCpXB=My?I3{{y@cZ3G^i%7^Z#H9r^^ zvM?Ynj5_Ppzc(~l-P(?LC39!wFYRL84{+AB#$dS@05g#cTITyw0$NwVhdUI}b<1nl zNsCDOY+Ki&TOYmA{D@Xb(skw@z~O6)UW5MMYh%wO^r=Zim{x9Ij!$rD63BXg|p1q z?NEw^9XtI>*_Zb^Q!>t%=ZC_NjGbQ9Bn}eB=bw?3U*{KwQA#=M8GFXbf1V>;Zxx`N z3q0%m2KkW=O1}WLl(!OVPl`%ssEd<2i{{e2)Aw~D$YsAmv90Y&3frS)Vu~OPL?97}q&|E}CK&`1#7ApB4_j=qd}HJ3u@9^VxE;K}+Vhntd#_ zQJm+7bFCVLe9WMF`+A&o@_A~?MQl(!jY(fZF}EB0^}*+v%8E86R*83QwdyH5gYD;C z-Jce|Vj*%sVIZK7u(OXRwMDB;nasSKT%V>Rl?&t;HmiM~fE%UG62oV_8MQH6AqStj z#|R!S)b4*O=MP)EFkm0fZF?x+?nw<>8gzKTD@5U$hO%Qyu6l@5UttK!4(?&U@u+_R zz$~x!CXdq5(D^(G!v~@F zg>ygf3Q^D{EaEanHoF<2!EK?nMJpTY@8gjK`M%%9u(-b0=r7mmw|8wzALi+Q}f)bhn|WjKU)qI+vh;Rgzsnk(5jcTL7!DYMsQ>sWDySpz;sTozne|@dQ)Q}XI27qKgbGSTYP{l3V|YR`WqlG zf(@v6*A~A3Mr!?zn|H0pN97I23(;Ig;VyO_wqx8IM9$?%g~fYS`whjm+~P$^7+SBs zLbtqEQ6>uL+XNm=3pF5B%s;6=ydxowr)6H%6w-E>746ujN6pxsx-C> zg@L6P+w6kxPF?BMQ60VJ^pP??uP<>)M{+@TzD9c+Dh0)&tesSh%$~8injJi0n%_}W zyCp*(A0-Li>DAS~Fi)d|Icvk3)piQ+ZZe6XD1yisr$L)(1{y$bkwG%W7VhGIjEFWLJ30c zU`htv$@x9>Z|qnN7P#q3{JO%oJ=D+O4mH3S&^T6Am6I|mWl~rOXR@-PJ(i%HOS?QX z?$&urpqgxG@9Jo1@k(iZO1}pYY1h?RZf&hRGO~%)Rjjz0MlXeRMyF) zy!W18~1O9RElr6Jt%V`D>zK=o6Nl>`PTB>(OO_=30CNpUQP?+ajkNUsbnn9*6D zJduiQEwoTnzfHHHa~ifB zXWme8&z)Wt&qFDRrV)h`su~nRrWZnQgIbhcJ7V5YB8Z3)H(jn_M%=^{KZvY2gPS{M zufYEnTg~XL-1ikj*wPlKy-mIwMjY$ohFnP)901q>L#MY)qaG+8q&USd?oG{&Vi&xVFigO?MZxEp+i+;I zGRk@E@*MzTP{qlDW|wKcxa9^R#DMJkvX!w>0ALmP*sEF-)JIb;a)e^yZUen+9dD0y zCttM4a-K#aBu*Rj7n=$_q@d}AEU;Gu}t1p;q6dv zzs4Vs{~f4~do%_y(9&tj|2lp*X;pqSPgWOaX#YC7LkNes_RY!n`1plvyvjU_sO((x z`;1Jw$eA)*m@GKCroD*>CyII{s)6b9F9g5r6m=#a8)p|XN#7Nhs`ZuHTTT81?xxbB z=7?LOyc1kjdalvj-{IO2p?~}GirX)KxjjJrme-NwEN|(qifQ|OOUc>9&FU9#wl0ef zoVI%UmW;0}tyJd72~_y2PmVe}*BwYLTfHK59n=LK3Q;NU1>>b%Ej21#>x$=zFTl1Rd>?F#9Cwz5u4vDhgd&2?`0g zgU|TyI`%Zr=^IEf6%JkpDR`|Pz5v3zX5Ngu8FH4X+;f{$P?*X;lJP16WY125*eD3P zOBeE@vfG+d_3@A5yDnE_WIz8NE{5yK4+hh2DX_FvbNlU7plf;a`}LGNmVZK)DEzeF zwq*=ND~@p<%F6L_P4gtGw0&5aWw?kO!{54gc3ke+F~;U3@Xw%S|aHDz1$aiWz4yU~h;aEcvS zizKWwS^?Vx0i(Bei+UTc+SkJt19rqF>x-P1=)pta;LXT~U2t;%gSRIa#JzYaVuSXMZmqeq5KYTB*Y}k5xPV9!yQb!}>(c;9cIv{9IJ`@_7rn~yy{DKKTFlP- znHupZpaVK9AO$E*Kr@`Q$u_q&w?f$S{iR5e+OREX7B}%Bk%D4iaO?d8^9dBOgcU_F zg|+K9Ir!u`H;XBiGwAS0EGd2VYA-ME7r@xfFm(_Pj2GIu9M{jEBBQQ#*A2rBTgfz1E5x{Tzz z^X|G9r;Xbld~B>AYWq!MkmHrIdi;&67M)S7KG%Amrs@p+F_?$y1<+ULzYN=NLE3qQ zRGn|f5nq5m>kN5I7K%^EEN<)zpm&@4xh`Y-L3kQVEDFp*JE<}F&^-C^4y6a@AOaSI zspIWQRlZ=(huS(_2H6PfmzMW6)`ttFyl}y$(M+rjq4kZhcYJcM*uA`M-Ew?+bUQOJ zn*#b;koUpXS4-uYLDjHhrA9c}-*i~|ez^BIe83DuZB`{>AT!W(b5*YKGMW4>I9>S_ zY*I#WeLN&(xvM?n8>No%y;8VJArF_+y4y^SW|xZ^dPgb~)v{moN8qKj#8t7=C?YHV z^U&dJIYHKU+NR!W6uc@ES)IFbH&2d|h5cZ~V5#Z2(?=n5m{M%t@_5rPQ9s|oqjU#B z31eX!E>UNp`E)Vv%|2sPhf7Q{)P>_*@U#+M8mBNUv%A8X@T64@@?dJiV#~oZtVto% zY4WProAcJWrj!NhF||dpe`~;E+R7X`|JpnLcnOMwG6Z=jH1?R+vo*xApe1kBciZT5 zCJLUv=b?_!gs!ts9_$1q?)_JJfldk;oOJZBFTf!V)pLNePL~e7T**Ao~Qj z-|p{=bm9K)>|Oln#?J}$xh~wKH?i2Gyqk#^pdd5(9BOjgZ>MEarYI}#`_S`LNQ2v? zNLpBPy;K}0g&5_n!kO&78V>ev_kI*s5Y{4)gL)G{j7^A0XIH^ zNtr6b2jOz3+&z6ItW6j$(8r~*(KYE_QfHjUg}vddE9BS)i-jX)A>xx@9j(|16j37O zx8L?9w{hU!W7=6>aqSX)kTk*ZHd(I&n&Ib<`1nx4_Awr&k?;c1-ES@qG>klID2APr z>k?B$zJ#L0S^1WV2RJ@0Vr8NB9KG{pzM^Tj;m2IuwZ9Fzrzve0nw6qbvknus*kc*^ z`aN_h{7ae^NlIwLmTGoSB*SbcgpC*%3^=dgo{vng1S?CFTaz0<}&(ESu=59%d71nGY zDT#X*`0h+(QKjsNQ@5!`#MPKMH#aZRE>eK%HSTno`{#WxVTD!_?KT9~;gAiKuUVsA ze4lND-!?=5jCV-$VdPRz!q2b2>m@11(Y&_b6oElRi5c-8F*?uZKQPQZk%$d>tQWjV zsUYU)R(WHnF8vB-M9z0&@AK55LJ-^e4A1ztG9!9E?Et^V0Ey-a+pED7tGeXX>CN!h zIiX|ieWnWxA0))L^q6(4a^=D zMyhTbcgAX#D|xdI7pLlnHn^nZkT+ixiarkfp27I-B2)BN1)?13TyP=a6*h zT2To;d3Z-VL=<{A8L8>Bj_h}}<$}D6Enf9aVfcn_>9dxd*o=|*dCGyq0Q`vYolqcR zbz%3KwvOh5nkR4LQB%sP_O8N0{vc|Mc7CYx9E*`r{Pg`VFZ;DfzH=${y7$YU>fV65 zvc{PS9iYyI^F%&-K26wh8L~nJufKN9yG`m%8B2B~&IOyP{JtR9%;s?Dv$>{?5WHhA znC(Op(BeAU;a6#hS#*nAdGJ1dzkMc}cGd?&=pSH!C}#)?WbR`bUySA)wmo7)<>*#a zU$o?Cfx+ds3}dnz&1bD0Nfs(O`^rp&BU~4qWHvzPR#_;#rmcCT^5&Ujp6E=JN~#=5 z(``$GMmyH+1{RC$8`9`va;59Y~Dma zR4w4lbXR{2e-8x(P;zY>)=gRGqX8ck9TtA*4y_46I%Bmhyb?TmO~nv+zjHb zjU6f?iwL534!z7?w-%N@6Up;2`)!q{ZZrAb;DM#zq~f5iaNvzwmx1_P>43?Kws9LD z&e@w>7tQWvb^A@tMmX6Nu zq`~wRJ2=%Kjb>cwO539DH=t%M>^i*5DAJl= zGK<$-*l@Ffi7k2Eblk7CdHv3p@lxzerMz5c4;&nt6~wJ6ZnTsyj2+!JYLAaf8={vf$SHa6e`g_D2#gc#zd>FQf~p(w2#+_-Chm z`qd&^e-ICUnfQd6VwYz%2-V&&YwRxK!;v7ZJcbgiyssU*-$Ep+Agg&DcX;X&!x1}& zx7KeA_O$c1{!Jtu49J`+o^fauwQuxAv$?+-Crg@!^sFJALa<5wYIs`rWwcT+8V{a;Av!niA`2zMt_TK zjleT&RZ5T5Ds>?JN}B#ezU^0T2J&U-am-#MZ6jbfd_j(&9kywwN)t857G0#i`^@mG z;Fr_Eds-VTNG_t8Itu4DJ4q!^7!nbV2b0~2)Lke9g$*UEa)vV-`=*p`C4_IBxG>b} zD98QrE2`~>1)i8VC1ass8Y9oucTyN=hT&>wnv1#?!ScV#>t295-33A7rwKJb-;p90 z1mS@1!kjFObD+0kP#g@lbyC(Mnkth!tuxtSA2-_?C+Lk;z$${(vmAHAzForUWn7!e z!>Q6xbjQx~b!MAihV6+*!V6fFUVmB>?H33V#RDV7b`tqP_J}*vX3HZaFR>niZ$5gz zjUR+`d(8m3HJB41?rGNg^hnIS*D4^vNX%KTjX+&EeRfe-Om$$pu)zF)o57r{|#qJm_LnzX-zqtH1$?|fEVDP&Itqlr`CO%_FB{I29ZbM(~jZ~yNY}X zmDc2M7jwlhB&z`$N!RQU5`m+>J880|^XqPA8wv-;w?SeQWElx0`FVRSqb&>jDPH-P zNNcm)MJmdu{>;#?So}r3M#T!uH26Xx;HJ@@3Ok7l&v=byp5|GasTqEstgfN}0ZvlZ zZmwWe+%MbX6X8WEJEIoNV^oSHJ9hGjHzqcjJz}4sbbMfMRrc34!=q8nretZ7;v{Iv zOyhJ{qh*~qeNLQSZCaeDBD`f zy%v61M!%2W{XI14`NTc_QY4KC0e?{WrIh7EP2w!1mJZtLF;S9ZEIhWN6a|LTR!w=f z+Yk$GTSY^iBi~J`liOdXA~((2)-1x_eS@GzaBIHZG;sJTFpE>Hbfljyd}^FZ3DLPp zOy}t)>2AkZ>QFYQDvKfcx9sf~OMR%X2O8x)29w}fOpe%xSes`flvV?LBLnfJ7{?1Z zoJsQr)WU^22VL#up=0fx7Gv6e00kB)3;^_%(DF9pWIUgdPs?X|8gWSoeidY>GJxXL zK8+m8NPsFNsM2PG{%L>!T4n7t3Mmirzv;HreyZt|w}}W2D%zqn+jtzu2IH-w7sr2| zsPlR~`aC#UX2o;po@vx5-nj8`Y=R{sqobfqV@`bzayDjI=f5(ZP?$OxL6uD5wPWRM z=ojbC3T4n{d+ipReQRDK88gUTP)I{7pMbI{j61}E!R+B6a7Er8_m4+E@Q)y_LI@JN z^YmQv2TFw?rZfDzpMUe8TtToZkShO~!Sfel?rt6BrK>iUTmM<)%&Nf;5+GVq4|JLx zPUxI-8KyBBk_DZaHm>D&ZBd%Lmtw8;!D0k$9IwYg<+vvlLHLrRG%R1`@)JbW{eD)F z5%>S?k(LK75dr9{<<=cF^FHSy_FS?(l^B);8L3&}+=O&88_LtPRLv=GVlgyDE1&a? z*P^ZzL)B38{O9q8&s3v%gjZhxB9V6m)pbW}Jy_kgw3FtiGQUOmCN~KEp`yYxV|>$& zv(WYr!*?TGNzt#|q3~eyszGRJukCw{wQhZ+Tj57;oy$y%XxQQ)J$2f^m#dsr_DCE4 zbXW{`uAbJE4nt%^$g21J&`Q3w#q0;oX)=$eo{EH*MnaLgF4N{LpjSJkD$7Twix%@R zQj$xUN#@&IBfeK_hUYb}ZuhkVlsN##3!8pMtltIGEV&WthoQIJaCuK< zH1~9K4w6P!vh8a$SU5g~-KR6dnEB z#F5C@_1ZUH^cT5+gw=@ljtJ~0qu8HYzA9JY5%scSUN#*@(<9Z+IQjB(Vc_?4OKP`N z+A*az+EeNnXcD_Nvc=_@x8lyS_pjN;AD)c=z}C?vZt*>dV3}%1bCPd1b!okHZQ*Zm zanT6|iR2l{(hv>gB)3f|g?eKw9eY|vTD03R!NUaFV>>oh+ik`oq%0x&gp04_C5HUk zup9%e_9hFZHPRGxB>O@6?`;PD;Eex0=;a|$JQ@UH5He|o&<4tW+>uvbW@1}{^a4BN1ZnMHzFnb*BteT-&sgO~Akt(6 zN#<8wsvk|{uF^ZcV^TN%)(U=!vy9T*TUY7!S&FF3{cAD##xQiIWvVzgB~eY3k-&=I zP>M_?)~^)(1-Qol>eWB!Z;8)Da)r;z0mHL+(IZ2-1wnf6QTw5TcnnCEcz*Jj_Knb1 zSA-Z7C}9p!&(5=xktu%kpyT~4{pF}dAEI7O#`UD^p=l&>#L%P|ih>vyf8w%vGNVLf z4sCwI@9iu!2(^M(5yA~|gm6RDA(I{Yh3jaBCs0VIAY5@< zbHRsEExC;7KM0c_lOgnj9sTF#Tn&e;udYzPD72hOm&sYYNlftyD&&c8&9zD#BUF0L z&HuebNSY}k%C1X>-)Ys?=C3yW{rO^RUXBXW#|&0i;cAB`N0aX}rbUM)Xalc{t!gCs zghMf#H?bosP+2x`17xO7j@tt3Q;zR;oJ6hEgs9%zWnoFiB)$NQLz%3GC*^?IU!PUh zt|~WMSx=0%&H#V#mX<+dU2baLsJJnOmf>DZd-DAb5%eY7v8VjHHK}NZwaJupv>X@C zY+mAN5RENeOMf$QBPk<`B>Hfp&1AFB4;8xlNXdSg`euK(ok?q3gGr>NQVCbPpQ{>m zqttpOu3OdBjj&@%9T?Dx|BH_^n{L0(YNQU6J?NwuG&f;__ZpE@mht8vubMqYm>Z_G zsG(U3h<%4G#Q55tnI^5+B&@OE8k?uF)oLr$d79diIqb=)(;!EdNsh4GuWj&NeLC}6 zOo^C9UL&?!62^8E&oIs$iqd*N4rUsRgiwI&RsI&p@}@5UCA#_xP^BFF9NAid-jhM! zamrV_k*Z#4vnAm)a3xI!chNC)ykcr~7wosg%qWwgF94B{zJ1tj)=qMfHm` zYgd`NMdO=>1HzzsOA!-+lOI??$N_;e%_QHTb~FDvE&h!m^B1$VyyG`~@GLpx_FQIL z2rOKeNgHRa34|GgcqhL)#lzGZ%dACM^S@t-?4PEF&ir4!wo8*bxiekSW?5FgSzVu> z-}c^`xRptK9xSvr4wX+`#fNYQnrgOOJSMX0mqGNY!^q6vnKTdXNEhSjr+5`rSELX9w9xi1?b*?o-9gOITP zl@m$o9ABjWp|M=G%RZ2bWnAfBY-?9{!5wutjdf8(yPz$N4Yfu?bMio|n|3Q|s)4SP zFgu!wyR`}XVR^1y;l#f`_Iw)3VMKchi_J{VRa9jgg*i~%yPz-i(x?1d&MG<~)5 zB-WK`{NZQxDVf>u8*s)UDh8xilp$3e3KExW8SZ)@{xY3@XRUJoEOn=1E?l zIqzf8;=&5qlVR@FrZS|e0TJmv*AG&Gef%C}q&yC;Mi4sSj2DMM?PLYP7x#K97oo4( z7OJ?&5dl934xu(GSbk4WKxo_1UTdYOLg!M&6>LheXR&bQ&PXW0$4@cTdvlJz%e7KJ z`+L!vk5kV1k{4XICQ$y|AZ=Gc&*0>)aUXLqgV5NcEpzu;;4^)$hc_e14QW;^8efZs zaMFINVXk1hX+^n+nD(d$$p3spknnVzZxfcfc_e{@4KT~VJA9dd+rk+S zJvyl;{DH(4bQt^ifkYg?f) z@@zzBU9$grY_NVPzJAMTvqG5OAy030Cj10d%>p-0TiU)PFFGQG&9X>N59%k#PfVse zqumVJAZ)y)uEv@Rm41EOZ6nEw3G)lcQC!KUGlnsy0VDpx$aj8VRJHooGM20oU9PV#PF08GVh1A!p2kuS0ieX z*?fDurU4$>s7?~D4PGy4v40u`fR((`_7qvB6oKQQ3mHOjJN=e~T~q&wa==cM%wdLO zT1sWUnVi`TF4n@*zCzw^m_cht;+9;oZL(*dLEdrK4!p(LZ!&^!@*)5>q?sOsmPlkT z_vi3n?%Temtc!1$jvR*?ADUnIO(|D5PF^C{5i1(>8M0V)f@x3Qjb3>BG`0;y#LKMcot*5ge7`-}W}8JrED+MZ$S(tbu^t2io)7+N z4}ipx&fwqib6;*$Rn^nk#%qQnVh*j;Lk|1pg%_YF@yX?LGI;S5q)t0(BITr2k& zrE{j^&`SBZC9y%1v(k4aUie}60K-UsKaWIwS6b|hP<8sU)CWx@e`V0 zurYzmtJ78mI7PDu*Bm|C7VSFT)=E!r`o93rn0I>mMN8rhB@-h-B3OsQ7xe7V1Xzay z>}b*eruj0gKc!lo4`x64(x68pV&Q&{J!{w-(bv`&e0p%AheSpZ(=qe6So27NYfmO1 zE<Y_Ku8yGhP2Gtg|F1EK|KbH2_PbQ3*4^VIAeerADh)!wf4+JNUALZdn`jw*) z>Xm02#MZv7u}H#8KX}$FxEwEFm|_-en-Ct%(!OhInkp}7tAC)Jj-?p2-A3doBzq&> z9n>{2a1d54Kw?Xhx{CMM*#g(RRi}!PM2*oWu1Olia1{k;vXl zajp+ck7_0^FOxud{}k-$lH-eQ)En;$uQ8me`uoz5McRiXYtJTF!6njrv_R(k6Wq^| z2m_@!b#?7(Aq7L7o!mE+Ws%_A;aJcnRA_DKMyWb*tUPARR_Z$1H ztOZWKHcv^j9|Rdoa`zQs&SA@_y$+P006?kh^eHK)RYBJ5;)z#IH^N09mXagC+`eW?{ZN%A5n z6|9=4E`1|s3FHh33F+UN*ZjK11bR8^y?n%2Xjb}*mg-wX?8*tAQikPH#N!ZRN^-x4 zCL{;o+Jy!CcYDU~do-k1NUVLEF>TE_Im|R|Zw`A4;xh$n=r)C=iCFY9M_yDdCGY@h z)w4Xjg(5^Qv)&ZiHOa{C?*w*}z5b0$TR z*1x7Gbn_#}#nPq`$+KV@h#NRO-XrfLmY}}_i=n7y_o{}r;lI-8MGG$Lhpo}-$41Vv zctw|l+M;Ck*j^T4=Tb$cr-y=c0s++NyCH#@@@(8*89LJ1jc+%gS|(1);?9E{b1blYa#*qxmjt6XBNLE{v=DBve6bw&AkaHH z?D*I6EH{Hm=Pp7ilqN3rESK+T5?B?6cZQ<)YQGVf?HFZ@g5^(pJBpm~E>AEJZ|cH= z#iu{Zx0*WUiSmZ*I2tDia<5QrTU|pq8Sqxm81+qYMw4v)=kF%#-|LBM6`M^` zMdZAl%e5%NljE{iVJ#QyCZOx>9ZgJMhiz*9<3aIh<2b#*uoKsaL<)BxK26U_4&Gb@ zu)AIc)kXJdq(7(~_|IDNP2#OQpj~V`#cfvgCuG2c-aQbog=ZpKf}@griubrSZ#1+z zoKqp^g%-$Ld`dgWc<|qJn)kGOv7vVEzj-6gT;W$%)@eIP6rOiX zfLdjxSI_(=4Dyy%yYu(KhGrha^ZUQCv~_y!-(~$&*CovSeqQ(iVIcwop{wFN47jMP zJLPJT1apK?rrR3)xY(Iu<1{v3*RHM=A5i!A7f_Il$lxs6nDT@s{f;Z}o2Mac9sBE^ zMr;&z=95_{l6AO?IQOel@jabb5x~9uICYg+2sY?I;5R7J>Gradzo!0exY?4?r!{Wo z;&H_&8JZ$Ufio=i0%U4K#0@a2KORk5AbjyZWzS!~Esp#mAYTMia|UB7=XFCz5?w^W z;%-SIjBs9PK|QpAH?Ct@mgCFmdiE~(T`nrbt3msCc|jb{-5q!GLvQfTs|O?b85}j< z@KIJxGf>nAttd;7eq`C>kjv_%N^<)dl|IhPH4Aa)#xq1~8J`WwMf@Q<&4f+q98Lcp z@(Y#l8vg?4IX5jwnP%wM-9Qn2n%v&! zzMX*}%otI0h}KmhY`FdmE&0nj@)6RqJ7}5~lVqO>Ce;89N~>cjnQRkfCt%m!;6S;$ z=0|l^Q*#t|>y1yn-ikP8c&9k zh3K)kT|YEvJ>RJ!p&EW_^Rj32vxTch(IntTF8p9U?|wlxcpeb|Z?mN`oVoI0O-vB= zs(pNZv@OHQ6%#)vg_41gYIqEyw{F55rvMp2hhsx+KeMQ`CiPvH8kY=Axp^ayvCq2V zB^q1$V`}4~j{GuuB?#-cri*_+n_4hz?_&<<=f(G(zlOoHnYA<&CJs5r#)vy6>HE)J zqO?}juG)IvtFZoQPx-t(ALEPd4BdJu5XMu~q-Of0So+>Wz7->Qk;Gf{d9M>5z1VEe zeZ6#4RyDlGPK&2%*c>M^r?ubeZTN_8T|XhK?#DD%`;q((Yrlv9FQ?Pzc=(@@fb81f zcB{M7cmpU!t9J2C*ryB6UTR&7zIXDmjr!mpG}L^_1^bC9^{vuo=NM56pAxCU#20|I zU!BGu$$SL{^gJ*uwg7j}H|6=aC!g6{_~#6@g~Z=!N)xPQ9&W!^p}PrSY6IQTQUC}Y zBC8^hwTA6?S7SqqNxYZkdTx#c>el+t*=6UGL^urdUFpJBV}mRcZ~=bi45b^j2shF7q2P5EzP%^Dl))jwj* zQJjYah*)#2X~+a3){Kp(u+@(&j!XwlbzAxEBz}x($uiZ;s%2Crx}g<-ZYERlY7Ak0 zXq>@9udm&+QP}hDWqj*@{L`4<&1Ka$wFY1Op_>fOFMn~5Km)wAkEJs})cAd2K+Y%d zbJVezPx{808^=y39+n zSL00}ZMB6*+M7ucv)?roagsmFiktlQN3hY#+~maBss&*6!ClO^2P#cwc^G`jMxk#N z>ywRJXrXq+QSzb|g3E1GJh?Jc*9n)X2K(pB$(k=*y-wJ+wVV3!&K=V(S{pba3iB{( z;7|K|k+MsZ`B$2pFV|lVIL>~|ue(`$6IdkSV)dh7S~#@DiFYYu3uA)fI|0X(Yss@0 zV7~uZVjH4;`@^$SQi7Uv%Tzq&2(vyUZ#rv8wYbKuUJ<0L$hU4b7I2CGVMnn&#x$p* z)!>6hRcoBom&j}(T_je_UUHw`+{}R)zg7K=T9Q{JoeJ=vTxe58J&F{&d8`O)(`vZi zXF#N`EK8pzX)VcYzkjHS6NLUzZrpW7`oMgl`0MJymRq%Yny$=%z(JpZVDn9|UhEH- z1;Iu9hR8Oi0c@zGLP!pUR=4nAEy_=lapai7iQSW9&uaW0X zl|RDg%|8Y8uXD^FQiN^OXo}Z2QAp{2j8m6fOHZOQkLg(4sbs72e!rW!8$(%sVWG

    K&&5DHRX@4KR(MEDWP6wDo7gwOe^X9eSMR@2hb>$O(Pk0e=ZQ7M=@%yF0x3uv3M zNp!7bA8e@b@nNu_47&UH(5t7)%OGd}%##&7A#n^`8%lwj@n+DD4aaI5pc^*OGso$- z+4G(Zre9gELZ!4GUtwcnZ-UlE#dHKovSz(jdbn*lbn9!U>dEifVp^J8;+A0Sf_z7k zBR3@w$qa3v#$hTo#sk)`!x9ySU9F2TO>GT%k0v!>!&sX?8GG6q0Q6Y}>doB3fd&9* zij4tbFNLSY;!)h+Yys}Q(RBG6aV;i;wOG|JED%n+?XqJN#t2$a{JJijxxDNPfRmBn zZ12dBZtuvKYulj;E zKC6L=c>U3|qDd<Qu<5)}A5rcwDd_FJ6_FRLMPvzVfTG&e2?f8Z|9d=ZHKM$;id& z5nXatdnLFNH^q#0IMQ45(6AW@&I>R=4G%*G(o%cnpRgl+Vo#D?mgKk!DWp4M0= zC7ugcq>axHzRqt7q>QQMHqu|9J$9*O_MZo=wHs)8q*g~+x@W;`nGu&o8})TkYNpS> z8kwn;kjlr0)bvPH@sFZtsvyMEYW91}+}ZBNDK?IB00ThZ6S;OB*>{HI*Y9rtC`_*NU9$}8R0z7fMTo4e8p2<4W$ zrS(+n`VG6?qflL)lxA?NNw{3CZJo@R)*zX)G1V6qUqG%018!zvLU6+eQP>t+c7vF} z^%K(MV37d+0IAy%nbFlM)Gn+OBm@1UDP0MGh)69bAlg4ebV%5UJyLl?KC>$!=}A`v z|D&=KB=7zI@B6>*7ZqAh^|f}Hb8c>Q40Bai1ydtNoqmc2C@Lg08G!1vJPe|5{D%}# zHTpLAStj_W&oxr~3n181srTQ`g#U}p`yZmgSIrOnchnx^PyS{6m)1*8IOFpWtW7EZiYCnAI{I8`67Z0ZU^0ZyyMjBa)21g@>mXz3RE2QxsH9s5iizb8#={K zqj#t~jp77`kK=2yQbm;t?s97!3w2dp)T7iW61VJE4{`}|62!E1MWAH1l#nR~ZCB?l z48Y_7Lq4R&eDHK`7!}xwMib#8xvcWD@}x$;woq@0atd1kPf~3_w|gek@AQ+12xOq~ z1+`VxFn!!=x#KN^(NW6G?||K!fR^(Ut~2W7WB;W#Biq?i*Gx*Jd{jZ5yl{Stu3cx1jx|16 z<#?nWE~y>cO@vZ45a3}HW11m7(fR=@eGwpu0C{C3-6!W-B!#yCUe;)B99N$6UP$>Y zcVH5|(>i9Z8`gPLyGs657R#pEs^)nln#x*U)8zSq%ripV2AYydX}qTL#IN?!WbB55 zdXWKYn?6pn-@MjYxSmfWKHW+K@~y%2S357cId@sR83clPLFMo+b~lbsiC@CwtwPMn zuxyffKRc}r;1l`CGuSfoymt50l&5&uJxCY`H5Glv*_ReY`+fhAyWX#YTi55U7g5Jr zi#UPK`fwcDtubSf5{UwFH{wd_*J9}%Xg=-Sdx>=QdP|mjl(h|4$qk6Mlzn|aF*i7$ zF74B(;WHiFC8mbf%9@t)o1N= z^YUtoHm*M%uE(p?ry!n6Y)c_Q_9at{?)X);5#|Dr!Z4DH<{=28T`0>Dd5z;l2g(jU z#^&mLOqYJN^pG@-28ZO8&>>lZI@*cN1HLq)k3~rmee$& zWKzd(ZBscXtfxytZ8`6r&UxTou3c$PX4SVHCqzx9_*6P@>Q;xFQ1t|lNK;txo&+{r zQ-AJjZfrSO7<{C89PNSB&Ayp?ovQ3)`|bH?EgFwnf%zxxC0vG@0i(^R&#-}zYeS{l zvHf!v7xkKoFpA)#;VPmrsA?Bxi%on3HJ_yirQp0W63!V#xAC&P#z`9VK8vRzUo}tD zB=M`?@oO#coAj@9Lv7hPH55W%p|Cj~^J1BHS30 z%Hfk^j9FnV?B4c89PQuhyXP)+coE0P{au1w;0pYsR+vQWy7FJoQ#*gcmMZW#>ea~=IAp6O~MQk7Fx2gXUZB<9!Lh2sK? zrIn|`IlbE<#a% zp@b37(HD-MJF#eFQ#=t;-;#BQH4bg=(w|y0_{LWakhGkYv|bOPKWEk5evn*_hZ>`*pkmJ8rtw(CV?f; zfVAlB41U^E7D-WYVfatF(W&nyCXyR?_D`&g54eXK^5{!0sV(1Uq?$R8U{ML*&#tVb zaYBvW3#g}e=qTmS=PYHpc$q=#DT^$;;456oCz#JsQd@ZcxrH4)ybuvn_p6bZ85(3n`{pN@Ss{S^sVk_!t_K=D&(rS+jvVBk#&O)d zL|-?qvGgd!a1K!-k>&$0el7hL+?jxy2UAyOy?sFzOzyj zd+JG%$p3<&}Rt^I3@34o0swXZ@a;5Va#8uEx-_WNmaNA z&v|iYcl&lkA;k3qQ7mhBJOj#aM?6ni&UK4?XlIq;dV5b;zP#L&Ui-#x*$%T|l(K1$ zIPm*9$=q|h|6CIi0kWS^zv~0g8_avo;dO4E)*-`dIg=C2-phqlS*SBAmgXnf>+trP znUG0~o?}1r&sMpuO^tnu)suGB$1EI_KE<4g33YL_V|`HSoKEM!xBhpWTZUnXPSoeA z&xe2~Q(>s%;fsPP@Yq?oK9rz0RFgu+t_s8+=SFe9UK7>2$;fNj0n zuS>>5?D1XW_QQ3^4^Z?Ne7TANuy+0Rp8ehVdBOhA!T$e#&1#63iOQOv2Q0LUVouf& zb?$-{+;J)Wt5BM1Iq=EFnETChaxbc}nMC5$^x$pi zF6K46KFc)nh<6Ql)b-S_bZ@**EQ}|F6O!<}o4~jS3cA1~v2Q3g1DT%g+n>>$KUdf5 z=S(s9HogE9z~R6Lm8?!j%4O5f^u+>ShF!y*>(^mO z1JudS3-dEf!HUx$=+sF!wlzhi5uqV8tZV1P=@;DUm8Ss z_Y9`(=GPTY9D><0H0j56c48QV+xcni`$rJ?uW(+=tmW2wxt`#KeElANgg;KRSlAsz z?NdaKSqybleftt#PRhlpZ>=EBG@{#p%suE*z9?H>o_B24;k*=e`c>d;;8OM-S)|x^ zAt1Q4lI-v(pMe?>zWvy@j&_Us-S3(fNF{)aNbkDwlFc>}-5*7c?Q$kPmXR;b`Skpy z)gT+D=zfHtL#Fg9V80N+9LzFy{QyZrzFmsp`;EB+wylGE`948yeau@Ox5}lEwJpo@ z3io)S@iVD@rim4S><^IKhzpZNT34PUYUS@Aod5S$n3G4=l$W zrmiABK%G(yf)^;hn0BRApfe=8ex7spp~~p>Z2jvF*_a2mZHiEQf{itQA$g|ws>Ycb zq=+IfHr#9DEiail7h*w^CdoM}RM;i8P1%lf(FB)$Uv|I<9Rda?z^d(r5eV2ZrT_X} zvi|ih#Sd=ly@YfjH6prqhR;&=dBKY}hI3e~523pDzT-}*Cj8t`vwwgyM5}BreQu{p zx^e5=zLD`Ngv=q2m1<@8RYq2z4M@rnsD8hVA4Mr?uKOcENa0Bx7f?t~@Mn0iFW_m- zLTFjp7chw^9j1=%rq|L=m2*9_^GKtDnp;>P4hC2h$4WI=TdFH~$cN;EY}`T=}B6w(LE8-rUs{+s>QI z*1oi;Jz}%>>~#r@)Ra&eh2i^|6qh0%lMkYf1~R1CuLICvFnZ~s$+~ZEziS|z-YsJ4Uj_=3IR$+25mX8K8=e#RH;ZqEGQD?bsMFW=MRCZ#3liMJFawrbX{|7#{ z@QFXH80vSi*|%?;77a%8cj4&Q>)RRxz;=O1=PL0*7v|K7=H_KTK$Lk85x|^p{{wXB z_ki;Q1kB7+pf^9oA^+<~&!;yiYtIk;Lixasu@~^N$BVt&Y8JAaxLB5)>WM9&^D;6} zJHt2k?`c+iB;k^0x(JEmiYq0RFKwTp5mnm@7uRU^iX8No#^q;9DR%okP_YYO8{+ge^y@Cs+Ymi` z2}oBKMjc!&kX@dUN2O-G%;s8w_IG@lq+!;(`!*`cpCt(wz?f|1aK8kC?Cm@F&qc7u|Vs0i){+#wXE**At_zM_Zoc1>7^)tQev%>R#JO z2YXZxB}L2bQ))vC#lWbzEh{OI@{&=RkH(sQ7p&@)`ogZtrJ9o88dsvNk zQ9#_EuV9~T52ACIcKEOkKfx4ooF2x)Jqq{T4KGn}!(F4%rZHjpLqbBCTfgE%KQaDdI#mk(_BAkm|3rndrvL2-6V?;HR!GX*$9_q&qQ)aCKm5=?Sjl#>|wXitoBA{`o{8^OHw&s2|jf zBG2hA=+0XAZ z$+-EC4#$-RrZ;ZIB^`rCGD97sV%T|x6RVSJlio#5d&($^p04JxTUNsxaSgVa`h)Fm zE4_ujFV!w%4Xy=$f=T>P^t)g*pX~ClAGeGbzJP=AM_?yL<#WxScYqQ5)YMs3mx3ul z>&@is-kai<`OwG6OA9Yi;{yw_So8?duAf>DC&Se0$XmP)+~-)7v5iE=)MEaIF!!;* zt}mFPPKcrR+h&cALQnFdAj`#6$<)R0bPUcSxX%u@Tw2Q_jT^j~O72*STMal7<6b6Kkb4ZL zI`7A&3Q%qLYFZ7rq~fSm__>tmUdL!R9X~we?9F|@G+rO6=Hp!axZR|QKM_bK&W2<%53y~Sfi`CdHq z*+&{le1-V;1nm_5Fg$!Gv{lq9ORY^NSgb|4JGn?|GIdQ@EY)Cc=4An6+IVdBCM)m(aUFEH?O%e}0vU8kUUR za#b&POkpKJOI?IY>m;Z*3@*nrf2Sf!V~{Du17*_OjP*ExOIG-f;@uP!_YK{Uwv8gokxT!vLEioLo zOta#1yf%I48+nH5>@qM6ve=35e`Gm6xHt-B-9$1g5MSG+r}!Fhi11#y#!-)p*)+3@ zTV6AmqM*yw)50WYfd=q*oXO4Gf_`A?w9G2 zMqk6rgZflTdy|Q$uhQqLJVMmdbic7=SasVuFiF;%)CyqY8%y%WwMYp08&RNEl;pOU z+1dH|xI4JJJLN?THQ5+hlG5i2s7Y%_zFXRM}hXOeTHY=*6|cWj?MUKVs8 z3=rdSkMtb26wfVK z^IpEqCj2noldE9kUPC4Bz-oZCnV|869h(yu6C?d&KY#JH(fGkVw9D#uja#9+5|KA| zQF6j`Z;>ksJ>|6}H$Td>(;TDm_YLX8me#CZzu7r38wb!>d?LpoU3hVQE>w}SU(-}Z z4(}p}9py5Ro1O|AiG|sn0}>C6`DX-m4W20AJ}2iKlnVV*Zp(K-QBM1*ID+TmSCY5N z0K{iN_=N2tptSA$m4-erN{UNaN?C+?++i;BRhML&+1`{Og1g^SBInaA#)>rqV%N1% zOdV@qlo@8`eb)ij((1cVBjtUej)r+&L{8)O0jd&^I}Y(#myH8UPj>}?eln1wehr|X zZvH*^3|?$w$-^On$)UzF;*97G^{{zMH$C8?A5!(3g5ED7 zN;kzSqf9kx;-2<#V`g}4L(7^@{hB zF7MQhYQ=)|3H&`}?mPtDCSSU zZ0`q1is#qMrLL?2_+`c4XXf>L+p?JPYEO0hzkNRqM%-14O968Qeh1=Gf16GE?|lD{ z>4nO|ygwa61!DH+K^tIc#GekfG6-tKh7^Hz#-6gZHC*=1b*h||1!IC0K5_8`fW~rE z<+}1Pzqu?Hhe1~?U6k_i!H(TI;Rlb8s56eU3ux!Q>L*{xwm3WB68eW)}i5AI!xX07o~^{uK5 z9>CqgP6c%dc3JhOr{PF&+SDBmjpQJ(fj^HJpx*!hZ!^FLciqY% zmO*QS3CahoK9bfVk)X{i83OS42)g>1A)h;S<$li&>c|ABcOW30{?E_S26bi)o8#K= z#Z--#ojk$DSh{-J{QRV_Qbsot15vc|NkTGnkDIZ$gx(dD z(O++w<=>rcK@33z$C_7^!H9x_2<4@aWwv>w=fZku{^&<>nrwI%+n1#&p%j-h<=06$ z)-xFMR*8fO7kk-J8#>v}j2}2QU##Az9>nQ}ArK(SIv0xn>zg<_eQ(DS98$R0k!2|5 z375`u0oMOQUoU%k7;hQxTzC{&+1l6jn&Gwh*rc#F+^2LgrB+d?FH6e@r!liecFWx9 zV#AN6N|Z~!&-$2Rf4`dGg`P(BsfQYHX%6z0k}6q^l{-6AxwJF19AT+j7O_Rem#*&P z-M5gfPgZ%>ikD1*4ld5e2w$QCm;#f?>xIgB;r5kq5|YJ!&6VW;ntlI|+RJ}v<9KLX zE|*VKt(o2~H-BTf6p8&__v(q<$C$M!UuEWFBztdm3=xnV43e?w95*UZmfUXcaPbH__*CaZ-kyZW~jhVU=HK)}v= zZ;-_9WS}1R(i=~9wU%{vd7U6S16z_epaezE^D1U@*Pz*j?4~{|a?XpT$^zO7WCtg2HfhqzuXJsnR zYYA9c7<35`P}cFE4h6V8lKu>&L;(0pvd1``83`?SQOxnuvO@;|gKN>~c;=I&*6>b0 zfbofj0FFxywgpKL$kIyCR**Lea1yGcU=y0%PO9JIGKOPg`NKJiz`C4WOW$tTM9zP8 z)H7JhxriFBNt`mLvEnxS&0K3-*IOOm700Wa= z;_?FoU)Og3)}L#+1GVl|gzh!VKJIw$(%`Hv7dPCvAur~L>BHI~Grp0W9;iK_mtUBm zsH?Q6P%Lyk_45mBu4gp@V<4d!V)j_b0aE$*o3bmTOE4LP}`o>mMH_h1O1 z48(3QyiAGrkhHUg9NE{m(cU(=QXtxgvc!2MO?6=F0hFGnbONmaWiq$OXyRm2~K7XrS0Lj z`IE+&vktQDjW#9qm<;9s>Z^%J4OHmd_v{fJ!uIG}GkQ;VXen9lYinuFi<1xV}LdCIWRtLf5G zhu8HnDouDCeIyl;U7_P5IT5u-Kmj1q$oiN+6CfgbmWBnCTNkI_O1b_v4yI`8-d7jt z-q}pq$y*)hHH%qKv0A7ZN4^gNOY0rD5%jtI)Q10U?DMzx8lstNK721G72mJjD&&Nj zn^sR8vbtsABFcr~BY&`O4K4!M#b!T;Vks~b1DKW{xx`6eaYp}ctIR#Ej^X|7UivlV z&jHE}NZf%N`P)Xn{|_HZ>k6pXn0BD9ZmO7}{I=c>=E_{c@|K0SF=nM8=y)|0D**+C z>2K@TKl1}*43zh!`rV}i36me78L^8NSinpif3osB+XKc!I4~X}zX3i)A}}6A8@C@3 z%KWZ}fgrW!PwCz-8_9nCr=R_u{@afP-TPK11=*Rl2<xSC+=Mm1m4(Li@|eEKF3h(NAg+aCnSj|`F~hw(UPb||?Z;y)}g zJ)`jUmro!Mc*exgp#g)g<}U$*j!*;?H|H8W^Q6uCG7Q6~y0X|I7>_ayRDukMS8E%8wWiy1LWnB8(1nFDJJe8q<1ce8SvC<%AT78Sl<}KyUwiJf8lP9^i0` z-QxkdvhEqaRS~YvRtmvLyjIxbhp5eju5RP#d4@#UX_-)2q9Fr-`dCjTMl0Ke2s)Q% z`g+es7U2EN)rEKo{kR9r(-EPBg3ZEm?yLHOTI;K|IEMn333XIAJO0Mx#&+ zhwr-Fw(?hiw*e;#f{KWU!n6TQi)#J^%RsjD0QM?3oohe*AhQ-j$fdKDU3qX3dKO4L zT1h$G1_vFl%Z^?qCafwj+l|iK9jx~rEchOixQU9m)n%62#vm@`Cb?#L&~_iJYOLXe#mbh|5`dVtSbgmg>-qc0NeiSrAA&$_V{VPcP>2g4B zA2jLUgIme;^`smezIYg0ZPwwb^pTV_adj%e_(Or;pETvjpavbUt?7Qu9B*czPOL1( zLrA>b=%M26kp_7e>u!Qhl}Rk2%fHkM>^~An-ty~{bz#w#IZj_XOWE1>?-zE*dPNOl zMc$8OwUBZj8wS~VBLRssKNQQcQQS|?Cj%t!<@-Bn$pi4n14k^OoBzo|5jx4{PK2xX z_F(g25jU}7N5}UjFIGC@Q)&AUDV!YiNf9aGNp#GbYXWl(5&>&gqATw)B)e?0k4d`n zwM&h^20Z>vA6)_SFO@~E1-Vw`I~rvU(6aqkSc{k&SdH2`8pKe&+vHv*Wjdgtmc%Qy z6XaW-(k#&wlALTlWsyqhQ+YE_HMS#+1T{})}B zj7U@Cx{;CCP{Q=pC5vMVh$2icY;lW{gX2Bs!zQaEW|@z&!|b;CczZoIqZBy3Gsl8e zj{=DB-TECqlz6418Bo{ay|pi@eH>@V;Mzq`iDMk>Ka?-(3x*J`!!SnX>)FjiDLztI z5pD8b&L<2v^S<2W(x)lV%BqReZibB3IU+VNW>gFy7OQs-xURPd_CBRr=?gFcaTI)hrvamC-)Cft8|mNS3Sk% z!eDN}k(T#+6CAI89Nki2t-8e8l-q5lfWG^t&LMgF6=&StNtf(!+`}UBhCMkUhR5LC zp>S9=M1F1^=(DpwL}*u?DEWojO_O5iCM<@z6|(L-80*nEdJxQ8)ry;|U9#G&6_|bY zoOpnclH)`9Y0j=cNeIlQyTy`+vR1?6)agYL{v)Jt!CJ0K$?fz$oz0qT8D;L2a$x=X z`X+ec>8ee?14icL3T|zkJKv>BOD1a))>C%^d|BvTobMciQr6@ zmW!yAor3}?mPP)v*W$Svh}m@mEi&Zx{R}Oh#ck*|X%zK>FOsE7b8_`db1zSKuACOu zZZzf&dEtlriH0yjG>8;LC7605#Ncf-aBrV$Jd#&Ooez`Ru`*~X(p0YU4t>ow^UhZq zN8tBO37%sSCh|0%m#dw$eH}gY(q@Ncbz)HB?77kDss!7ircD#6At#6Z`vOqjS~@0V zNh*^qghzlSquEQhpma5eq;-`0xHGI)iUKL@^Hk{QA^z*LsL*CLwvzLUy2_@Sbk+LC z%CJLBK3$v8=M9*J1BozQw7i(8OY$2U-mNgnOuG5i2O9io3JX@NHYu+d7Zy6$K9f`y zHljo@c#~!lSsWK&Dz8AEFX;@Jl|3XPu}Jzz&XZLX#Zz}0uW7KHvF@ZmxuFLIE7-+} zbDWQo0%3(t5hu|S2k-I)59=Y-_?Oked~rDmWL}Io#aI9CTU0x zsbb6<RT1U8;dp|_> zeoBLU(CPGrGZdL%k%j%sWQ_#BqP_WjcXyXQ>&B9jul={Cu{m8GIIVN!?%#8@@Y%n9 zQrE*7xdhENpY#Aj*wZ!N>TOA}qmG;xx|idq3nC8kV0ceFsi`OCdw_usrEBYV4BjOS z3A5w&sQxV9Ies~~tKO1eq^TcF4rb&6XI-Th#~lvQYC@fah;Zr z!hKOAMjTka3N$$D2sLy~*DV-bJWtBwqp8wZUmd=#7I3AkMNt>E<_yeH9EV>E^Xn~O z6=G4xhsu{R@A+^mJoAQKHXo8k(bzr_ZDwj%$$Tg^CwlJe+>d>*@_DGSCnTth8-gYk zu>8v3x=}H2HnYh_(in_YjpNb$^^_`dgI_2XT{2Np?EN8a)#RH`Jo=3^NAnR9IQ3Xt zD^2`XS_zDVnv72v@LzzT?LlZ!8PPij_S|+FOKS{vlxYI06q`P|8qvIq)Qo!#((<^y zD}o`2)}lfa+(o)OWtnM^5?8eS6XNk_WGQqXXkhiT5wLp~-nqT%~rxSilluniZW^3&@hSGwhc7rL&|?{ zR%J-ZAUb^MMygX;#UMEgd&--ufZo&2tbM%;z-@Q|lxhuZ`VbdSVei_ca0!Bi(4*Nh zv46E!J4WKjc=qbR+OX2r^7Bc1xSX8s`2$E)Pf1O&JBqMM*kDvXjdvho5jNGM4o2@Z zQT(-uO3PIB-Vnt2Y2t**AueKkc7Wv3#vl<#@4Bh&djXDIB+Q;D4{wS>z~6sG+XPip zJ!Q{>Q|EO`dbk!4C})+VVoZeHgjcUNA7GfiCX zQv27q@|WdL2$t=&{b|DU$3*#oK)ZsFKAU<|YeTpd?h=vHDK}?mj&$5dX#!nGG129u z0QbJu*1DC2VGF&cHXrGp67z6`>E3N+uIG=MpJMnuGvpi6q!)s^m}SH$AcoJ5H7YWJ za0FaM4uYL=OEd!IxB<6v^&pM#)5qP$Qf!k=7z=84kg)E$16`-)j4zqhM*1DSHOCT7 zS#sh@V@22;e(=pDKMWI0?>3YSr`$S52FY7}w_O2MlGoaEln5(CI`a$x_Hmt0paqx@ zIVE~I3)Dxu_KvQlqhmpt$t}wE zK36q{Dga-A$c5Vq^<0wMXHN{$o!I}3 z0)t&y9XTBaT-k9B>}b%Ue-$r3J}7Z9^>b@TQO}nJ9UTuHFS$g0dH#frYIYgqvoK78 zFN^I9<&0!Q4{JBnY$#x;Oq?WtN;|dPM?i@ahZ3B5i37ewGQ}cepg~4u=LFW+N^nZ3 z;xV0XErPryUGdqxkyh`BhL}P^dq}EZF~=3hpvUqhHWN?)vH{;0alzO`C~l)Y^SMo= zVFmhmm&qw!w23o=9?47m2CH1;O!TMGNM!YQl4T$F<4S|pn4+*1t;|GI3PhH&tRG#w zjn-;fQU|tsP2AvQM?cImb5)89&`$!{xbVu()lT*`CtGh1aR~^t6t;FV%2>mC?>uM}FIOK@U>3@KlH?yI^aPsfK zN(-?&f(dD5F0OW~JL}aI)6<9ZOLTRwgr9Wn`#%?MFA9b#-xPgevUOua>I2`SiOV1&*uQuDc*$*jQZ7qP^e#chAhV+v&fZ&e ztc-hDg|6-RYqIxFrq*oBdWstxvrwYM#|`r?Xxyj7p}|fy5_!4T8haWMowu4{_f%V2 zTHnF5@~6Wv0Ro8ane{${%MGzlK9LI&2WXMQ^`u3u2yo+0)sO+=5v5=P)4F=kgVz{+ z)Xvo`A&i_klR?x^B#56lY0!?f66^NZG0$rTQAO|4ra_jL7N44^FO6i!e3HEHjs|T5 zf`V@~0_Rag%Jt)in}j&swxfA^GL{Yi>{23QjuJnVHL_nG#K)KfvhO;f4Rp%6e%2jB z7IJ3c^@X2f(I9NNsE_9B0rkk{r)*J2qbk26?5GZLXQ)X(BX6L+P=;oZ*!t1F*vXN@ z4-gsISzq4m=;hlxwYY1W)${r6c|9Gv;6Gcf)z)sQ83>s6ir*xGg<^C@XSiFu^{iue z8eh2k*-bOMQl}~8gwx1Im75CVEq{EvDm&}^)Tn&I;b|jaZMs}mhYpmK`BWODeT=?T ze^lPaiRQoWs+FwrH2pY++}{xf?Fbtjvucr^D+QObs*rv_R9p4#V5P?O>FSqtl2@cp{jY-$ zb960xJ$o@eI$NYE!!|;YReD5*$*#a0eIqz1|+fVKNbz~Gq0SLPAZqM{w7<;)lAa? zy3g;|yz8lNS7~j82gaI=r>g~R!s_$J>d;XaB;AFOV0I|hy~x6q!1zAO@(Tqt^u@j8 z;5>&_0;+(E^E@+!A}7aTyEo$kaqci99o1y)C!47IRC#3{jB9%`)5XfcM>RqNG;Q^@ zpDs8q#m}m9X`}IyEaSX42k1X8P%&}AEhi>(gDP-+A?&VmPSm^);XG>sVxR=aS7(gi9cBH{-!ASRoa|^>PteWS~YcOU(zfh z?3O4v4_VOdzTCC&*Yb%)2>FQP*v?CwHxTK)%wjT{ab399dpok;b!VEcJYyusa%2n^ zxpH}G3{xS!ZA9jtMZr%K;Qp)ZK+Pwnm+YJbNT?nw@&TAo0K&5t#kzZYrP|th9Enk~ z(a0YOk%R7I9`Mk_#98c!d{u1g#tx+~VTNdEY$w$H4JUncud-FfB?Mbcpt?%>%`&=`G3yEM%;Tov;sVx?#Mt{{< zfVLjVEH#tO^W&GV%@sx8j1}7&oD4VNC6Wx0e|6?EdKUo`{rnmKe8y(q>fT+8P?wu1 z#WC}3P;UAcIU{Ntk)q1}PKZ0ocxms$*Lp@d#C~V|$~>oERq!&uX;(llw-1ReYc>Ov zgfN%vi{F!@0u-HGkPyUBPVfNB-Lsm^Il2qJmVJY*ZX zsXayQQ~9~i_9QSemeOd>-DqIN^OeN7?e?+HWuANP1NbRT<0RMvqN=51;(%R+qXnTb z>W?b#Z*ohT`~I(PuNY5av#^YlmqUiqZW=kB6M?ip3N+cvC01)ly%$w1JHZ<$E%AYqL8pm}V`0Ni-#!B~1EeJ+9nIwVX@%YcQVSn88|5x_d zxcHCRyFc#1KQ|Wt)-FZMmaWv2`x{kllg$F|HneUKwxBBbhv5rHm%eRA|^i7Z`mz`;S?~|1N>mKN4R3&-VX4;o5)c^(*x?#2S9c z^D{GBg=he^IGn{?iqH#;4jkDZNlgd)Hsicr{w2Zs3)dcSiGSmk|1|~vx4`}1;q-sa z=lpc4c}u* zKfVGwUupwHE&%Ou9zN}l2Ji8~BfV>yuMGJ_UnHAz5w0p3AMl`V?8u>J1U40%qCE-n z3Ozno4_jzPYW3mGu^iw-tO>yj^B>}Jp<{F9~PYN91&xk zo~91QUR0WV`6Mz;2}EL(5-*;veZulsAPCtBrmhPfd}EpX@`NaMJpX3Ggl6C+u|?uw z0ixxTW>UfA17>@mQHgZAi-TM5t(|N(rHz}JsU}8j|AIo%1{Pueg7hN(+Q~&X=MKjn zp(Ju`G7qgwVyWNf@KQrPmOXM&0s2N&nGhc;!L=23bC zbzw<5gJ3Go`o-a4PVPkV}XHJ&;-p)7vWxuG#lqfDU|HMN%@ReJ^s z5`rgA_16R96qPnQu$k3qQY}qj4ngG#O0xh>q7THalC{_YSwvy5n%w7P*osAqTE&+b z3mpY>yqT|e98JyNt7(E0Z0oq6qXysnjdW648LZkSWH_B@v^eH_ipEKmA$cU!$+;^%_k1%Dp86W5F4 zUZl^2{CNry=qD*(KLqTW2jR!Q_beQAC#P{5moB_Apqb7-p@~j+u&}~b*(=L~V7*aJ z!J8fKjJpF0eHW#r3E3McB2bY05EqnpUsEr4Il!olsKBO8k#%% zgg*6Xl7cEQn}HtnjRWu$#VRHMg`)vlSa#I^Y_aNcxhqJAvZ6? z{%~n-Ensh7f%*N5?=hjX-IVmg-9vKJrYL<5(5`Q;V@ao1Gs>%{Sjp?F!e*o=vl>EK zx^sCR)4k1aGbP0K6Q!xvSbCiFC?W%z6l7L9^-JD;rMYm~;_kS@mG1VM0J@eu+dh zXWYD0#JnX&|Lg;txbXL(M2v%hg*F_QUjz12US+T)Gndh>2O45^*66!v<+_iDvbFn2 zA7ciE>+1#RhKNrWiamxN#od-KaVGrEYYBe^bo?!> zqeMWFQeEvOryT7bP$ckkJ_00bzq-l4g+~BU@Bc%)h{$jE=x}SyxD%#Dxj-AtFAQM6 z)vMspwuq*DMidP4zxn=FQ~N)!d;P1V3h0KQ-1YYJMpDuv*?8$;cJEDIWweYf2u>?9 z6$HPk`zQVlfi4h0f~frr!|0;{DtMWD@-*Nz^VQF)eW0R7@h_OT-}h5LdL;1>y;Ewa z0#-aO@^xox9?g4R_^Ps3Pxz?pR)d|DCY z1}ML_VcT!aZ5sx3u{len)!z3W1YX_-grRt>Gveji| z(Y)M6k&=D4%a^gm_&|jJ05!{P@pGOtrZ!;|TZb>sWV1veBpt6 zm}2<&E9X6uL4BofObhXMlgRlSczU_wFb>S9;v?S4SK(i#?W$|XxE(~-mTcY|6)RLT z+Yy$FeV-dK({q|VKZK%*dEbndKiB7Kvl@jeYegcHzycA~A&3d;u`B4x-#O&12QG>cLO@xbW6?K#6dnri$_d~k*X$0|3L~-wsIRyw{ z&NEQOx^MaX@7Xek^C8z3UEy6rUZokf7^>)+2pNi*pTWuZNlH48Mxmr*>u`w5DkCWgZK}8rW-&A0L`Thqf z@%KkSRbr(Laeh(C$zipGkYLU6PeE7v2D;=1y63R{|6Ub4F(Bsl+kgiYoJRUUMpnVR zGypI^Z~&AEbsI?iCOsw&>%)R@26o(&COqDm%p9`rA9l6PF`Gn~We38;$Rl}<)_uLv zj!n?tf?*_V9HfViA3tKtJ$ceswx~Y`3Gu7c>cbt9gF{95fP0qi@aeRQg0bl-yKg`j%4m9vz6#efx8@3(DE2NViS>5OxexN_6OBf0>hB2T+R%4ka( zNw5rMu%;@z1pLpY1~F(rk-zQc%JFm*)(2DOL<|PTLG=)%u>$hwl{j%?@3&hGRyj+% z%4Gwt4@p^zkmukI^axGUC5=@l!Z`FBD1_zi)Pn`;yX4{Cl8o_+Wtk0Q6no zFgmyP{Pc4rX0$WO$2T^ge(eZ?4$7`D~|^NBu) zMY!NFqL*cnAuj9r8Sh}9<$GgcFn;V_;_YGHC5uh>x80L@YfS^pisoRvaNbaP)h*SE zf-X!LXPhBkK91KN;v_kv0sC81#fZ8)a+x~winjA|6YpfssO6B*KGJvf5I`F}vToqa zwgQbGm9%Nv#*6JYz!cEUmpc@eUGNBU#QCp@NI1Es{RNsH3}3~lP1>)w#gUg!GgnVl zV)Pm((BAQGJ8Sx$TqgETtDMqG+|+4~T_}3%S-Dv2RR7G4u~p9m2&wgFxH;75 z_1~^te$tYY?)?wi_L+d<#~oXqv40Lxm-_qC*+1awzih`zFWBRKtC>JNx~0Epsx#Ls zk-Qnqi6KYOD=pWVzZsrS4YJfAzMUFA=&sd4#u#N*GD$n#5M1b#n0Jd6^Iom`APJ%$ z93^Py09a?cf>*=EF%>)8G5ht|+M;85sd~K28624lU2s>q3NZRQ)vjlWx?rwbFxV7EjL9{E%?A;F17APk zV9{D9a?}Ah?>xX9&H>Ej;TgyR_cHmq)`C6N3c0f*$tg08L`V@g z7E*O}W^Umm#eJCc7IaTTC$<&|i$>R3Joj;L7kA206lCgJ##zj2J^!!v-ZChzZD0Fs z+zF828Z>x9aF<}|5D4xPTpD)?65O5O5ZtYy@j!45?k-KxAi+W)cV_Lo@7^nGuf6s; zr|QFi^{}YX*EHP% zlHIm;Y{@kndT$_DT3*4E6-)t(lI`vCSolKR3K$mti-D4)^1@sG9gAn?1761~3d)qv zuF@6c*BftCEs5Hd=@WOHLX(wJAtNo@*RTesM!0;vScnE+@~j3G!$c)L3~J4AfB(&E zZnnpJpCPr!aX3{9<8Gecdmlzc2^JfX=4WwCm}v% z>ogjO1&w4&-gf+%}(H4@yoavBJ8M?iuRcUiWL|0hL z60YM;Zl|B2JGQxFZH?~rBA!TB37#Qz&yTo#^SXN!jKPJ0((!_Dbh2gp6D)hZqH6AY z)dS6#n&q|w@>ZF{2J@Q(rzgu94HEs=t1+2%uVa{$TxCS7m;&I<6GTJZ zRMd^I@XJHuI)kgQtWAq>xiMKfV(;A4e1lZi+HHHy>bb15^@2gI{4ARB4`UP3ft9s{ zA@2r9hoAY?rKtHFCgbLIVm}opJZ#k|kzLp1w5j;IXuXM@AI`z339pEfvn}n#XD0EI zPqNT}zIdz}Rpp_kU}aP_*e`{XoiAcrxt~`rFh2m!CJjkrKv&97e^5a8R1MT!@1meTv2*{VO)c5e z)+?;AtzOO#qzj4KNZN?!?Ie|zBz=j29Kb~q9T?su4FV3xkQr{VYmB0ctSo-w~{et z^SW|ytwYJu#g!%j#uv;iJ4}~hqpryWC|H0fPF*CrJzih7$jaW=Y|qhr5SFH9vq4^r{gCH+kRWdPWj>M ze%R5fRJFC|70<1?gJ(L8Q&d{)V`bK2%bK3WS0j7JmDvhczMR4)1mO38ELD5Tc7~$%HAE?sN3qoqFyr+JgTvc#IbR%(m*qxRHO*2V; zGQY=%pv~5;%Iz39K)(ajGdSt2Wy+wJzX_obdaiuC(qt+M6MV zJ*>;1@0Tjx+CnA8mX)*ulhl)(_aA&W&%$UaYTh!QZ>nEYD#Q_o6BTz2D)T-wu+KQJUb`gztug2XRRL zwGHy~X4R^x(%_LMkp&(l34SxF@kraP|AykavCa2Y7LJ#?R}7w&wthp<$70eG+XtLj>Z;qJljW3TgMzhkEzZ&GdH{V2_c*-v#Bg>62 z^`|V3dpABD z%dzAqEnN5ZcA#k$TFiKAq|-A4$9=LqGy2Mz5b1y`OXe zkT0*n_ZZplbPGkdxSl(=*R?=LwI`5xt>o-(ep8?4uAwo_{@th?dZDhOD^n|BqFVdV z5SP8PSGKrv;vdh8|Mdu<F>5t5QvT?52mebxj%?*g zVN)Mp)F7YYg=Nc&>aqo}EpMx%E)g=Ag(|-4#bw#A+Xrd*@Z6p44aKtH-lYRp42G6S zNSp_U!qSuB+UtkpG`VuE9q%wv4L}Ln_pKHvS0iNJF9fF3oJiKl6(&*GPWY)=s0MSG zg!bZ9Zb&)G}3Ms+8DHFR)H~P$Q@H&Of_zF|vgaV!cCo`>K zuykK?ncuc<vX-XXZ^OTZ^CFsbD%5(&tG^{+>}@hhZL^7Y5mwS6Soiw6SJr z^^FL1PgH`>goE7#7G&q9pC&8u{<4u?{b54r|R< z3N~|3`kwx{UAH>W992d@oxsqaY(oS~V^VY?C9167xg}+$!qnP&08@Cxo9clCxo?%l zR$PMN83}a?Kgr==Us(7EM^S0&Ya620cQwXXvFh@z`uHQ(x9rpNXUK)z1iiM@%=imK zk075V*YDm0P+BX*DDgH!w%jl{ss|X~`e3Gdce*}HA=>%!KudTa0-xq~9@GOp-2D$O zeD`tZB`igDoaTi6JT9TTIg;2O3qD+`y~RRG&EB#didRlTnlwr|z6Y=4IZO$yC!}I* zsq-QZ3`~4arT@6L z;U~IJu!hjT8(0=SgOTah@MMRg=IHng(fX~nWeV(K`nvk z@e+Ffem~t5+0IvAw4VGZUcTvb)*Byo#CZvqt)RfrVF~|eZnKA^DR6r4?oApz1gi9n z^bwUCy8cNTgF`+1dVap;xCV)BGsbRntefrYUPZL+-7Jo7_vB5fR-%2!!}uZm1>yWxNoIYPmTO)@tU$eqM?sCg7MeWRkL6#xK#WPK#(U_K zj*9I+u-4>Q(f|fNo3-isqTIO;cxWtxr`079 z@An&y)$1uwJ`Z~U6t^> zk-teAB$g=|BeoMc$Yi*b*KeTnc72VUEF{42L*0iOve7b#k;e`Z)PDm#>WMKka<3N5 zE+K?1?~N+6Dr>G+PWq>s7eG5m{cXMidV8Rxi8G|2i&bX)doQdeyx?(|QpDSd zJ17pYE!EVqkt^EiBd?~$MLA}F`}t%S27}Fx_Z5rgR0+vcw9Q9`O463e+?kXPc5Is% z0imM+a5ArF2kLM^Xb(zDVohBe(^ZHZvU3DA4D5d$}16G)XI!Q*wj>aVJ}%GTqZ zC2PyOP2QutuZh~PixwbIVf#9AIKLOGfe(+=Va&VbT~xcok%*;ea{%{0Os@MBZ&vD1uch zXu2}V+y&xxp_9@!9Y_>@r~JG${@tYzmt6imHlKMecfI*L`eUCd^@$~|PnFj9mxqig zj?Y*)JS}vGM8Q>bEG*(wvAq~Zr zLcdm`UXJ#FbUZj{H7(wE3&6QAzDjO+(Hx-Y>t0PK%kPMaZ(`VG_9T)*j0S}>+t|go z+yd}XbfJ8{;ePamL8kGBeJL(~Z2|ms~~c2BM~m&+|i~ zLGlOT`vVI#&vb^6OspJRmP`^d`vf|=UEg2?^v+7bLbRq`El$IXR!;a*LtB&7QH4?P z;~N#4mNd6V_dr!e?lTu>{mH(#pX_jYmZu}}Z%g?ycS1(#A!vrm)sL4<)~`Bsm?9cbC|R5zqN*xiZqM`* zEufG($Sq11zZrw`kcgV(I5wUs(qT1Z2ey)gt+SHrIkIj(o`_CoPn!PN=ufF;rs_Vx zpxax{bqEC!8xD>kXEB{{)SJ4w85PbiU_g$z8|3qw=|;jg*188}6Bl289z4lTx03VtQvVz}eL5KU}>>Yc?l<2>+Pf?+1<;xnYa#TrYqf&))5zXVNh9ZgI1T#P$N z9?cGB$Ub%TcadVv9Vs{_T`uko~xjv@!HEhJR;0<1Rlx4}}EMCFpFC~EV zg)#>_s}&>yDi=fa9S}aAy$z`F{i+Pen15H{`==_Pmgh_XPnwjqVa-s z4MKS5hWgY7#RE;C>?EfodWN#z$JQSPg+GoN16l?MKh6CB^@x=86^M~R4hoz*+Suo0 zv?@-fI0$5=F2x6p5OZt;{*gNPFN7q2*{lBh!^xkgXMt?Uugx$2ubAWKh94`*1x!Q$ zY%OEV{~h(ed?sLjR;DIo`2FhrNAcElzd3QiCtlX1roG4=zVcB(Vs6sL45gnAy)<%U z)IOg>(@&gv*|!^T)3^ccC`>ZQbBYDFO#IMkq0(r)4yziBm7bhIVTrjx6K34Uj#^mGy#~k)d2bn zkp#d+2B4SU;(lAZPLnBMN-dr1AXUR%0kt$h)#+Ap(lfT=6B_hxhfG}i1 zaT$1kPYSvzgB;`E%ufE{74i!&@87ZXUIB(VC``+SsQr}@4{Qzy0;qLcl5!z8&@?mZ0k#wY)?gJDct(LKhhevXnO+8y1aYuCSvqsF|f7CaXmM`(L2P=Z_dCzRYS? zhs#DS`C2Y^7Yx?~(mW3p;3`4K6|m^k6=E~Akr3unKhf100t|rsH{*E$10WMTS!DcC ztLHoGKpTeLD_AWxN0?J0jQ!FEJ{TBCHQxTR!yZ4ykY3m#=U;*Y|9Jxb^z|R8u)rxK zf46zGXrs(WMG@NW?-IIf+#F=8wEDV%6v3aglTH-wCy2wO9HKQ|?gDm+Gi-xJZ}7x| zI`yPL_Hv{5N-BNjPKXMaBF}xORf)1qqBjR7;Q@@2!!@!`WgnW+v=1a!uC~%9Rf8(- zVY%xl92Z7GOiisV5(-*h0gM2f8lEBAO|Q*(`GKwMR*!Oz??P2zjwUyZNl4YAih`_s zYJo>0S4TBrl4~VWZ)6cl4Ln{zTn^dOH>xP5$1{U?1X++JrO+vIy3 zyr+I9Z*9gdR(Dtq?PtrfPUh;LQ6W{8LpFTm(*s6aw8x#y%z4|@&SF3yU7|}#CP%GF z78xhYRyp`kS`}L@HzGLtS`0UF;=oK9@Ns=M@;R*hqo`IA&>S{78J>^;|jNw zI$}ljhSlB}tPo(@DF=uPCII8q`pqi+!qhMwIz z$;?7I5$mizNcTcdey++8L83#`Mz41)xK{#J`v@YfY9-C^8GT5|Mr??Z+6y%ELeq5h~aOP*{3-17{Y7#~+H4cJ-~(R^U#2?|(Sf?r(@US#74xC})6J{mhU1l*qPC#JjAVB2 z4|ezIhwpR^tQ)oF6a7<#YjY(t(>q5$e^Wx~KDi9qa+W){*m8x1?1vmDa>AqWLa!KHozLShU|hXOGW2@G?K<{Eu3OaadU1*0+*eUKUJc{8n`v;g z1cZ3DQ*7q~S!VHeEOKu~$rzM~9q-m2JE~?JE;Oxxc&UN=8a}#r>Lb-(-w--FsfZny zUlV|Om70i=!j?mFiPZMwGKF5Bdz`6NM^pcs78Ns7XkXz{tpXWHYtw;ho;ayfS;|(4 zOVd1NN|;24{FyP;DiheR`$Nam8A3`|e8ewModkfzz?WYroM4>U~l4H#XX4 zsgM$hqN|3TOC?!5(Om)owPaUnhcs?!4}@z3ce*3QSgg3K;uUK_g^_~8_wKG=UNn7( z*D2GYO|VfQJHkH5RSJ_bDSF04|CqM>jp%V}v+lyX={y~hio3~+Fgj=17{BL4ui$vY zrGrf@!w>wrF*%?W&sV#fAuCD7g;An?FB+k8Y3sQUGkW_=%kG2T_Dhet6 z>SAQajBN_3;lK6>n=>-~0aEYt>n&S$pHvJ{ubEsAKeFWD;hQw0oiW;yt4?)%^8!z1 zn8HsjB0!BK@+@~xdrCvQY}v9_(LT*fyS_YfOqad<&^}rRIVZ9GvGB-SWbRCs#^c%W z571R*>nQS1K1MFcp%|_o3;P#&6}2$q^RXEZ1CJDLln}QBcS1S89LZ$gCNa&Qqck*4 znqb3t$2@MZ4;GIXH`U`*-`lSR+}NLLc}tGLtHa?JT5R-*NLrm}si{w{_t9qDJqwPhcUC@`b%ir5j{xHv2eV?Bq%^NlD6hmWIjT z>l)aWQwE(ewaT$+Pj6d^f!4f*uT^^z$HN(p!|qvL+!}f-y2wImRGN-dVw6vVuHWa) zKZ-tzKH9VPV&`V)+C5U=?w$i4`TpRqJe#%b&Dfs?RUTb+C74T-8#LctWm8=NBs-u-$xfev*&S!mfMD3j&#g5d1a%DtfN+HMT3+o#iEtyH19^ z5`N0K!AFNkV&ce!v8((_PXkf%4#A5k&4MhwZn8MhYD+YsQb^&X0Adfrk(iiT~kR^2gvE_Mj!^LTh8GDXnV zHjDxz*;08sioha6DG#a@Y(RAoC;RUN8HAsP*26wPzkIQ2l`ft0X;w?KFa(<^Y;ecW z4F|pRuBr0;TiA|&sB#w~0+#~|7G*U|NTghkh1?UOKM-f zKXm(TC1!EV($_bKtpk1DPnt;Zx@cGFXtI)~{;OgWb^VqSg`#UytRPa+QZSPL9IV%sIi~~!4amK?vZMQ_*Xgs4;h<=Y^=4T3 z#)>99K=mF)T(zkS9ZdjWljx-U6Nyd>uh}oOg852V+5^kiJ9NwRLewU^2mU=1<)2JF z|0{v||8T4Z-$rB9^iBv{+QtzHM?J56`;Zeo_8z+}1>$&Z10QXMd3BDvinMhIOy|~Q zG_>+022cM;?X_gQ@PXg+YP8?tUIxN}J$>qN=OLGPa10)pKAJ9Ih28b*fN&rIKEgZf zH3E4W5Y`h+j0ayc`Q)Zu$lFBLPxPX;^Iw6vH9V*1I%4~Yv0>O1cjXx+G$z2Dng# z=Z=HLQeIr`dN2|zr@=Z?A;uK2>VNUc`02R&hj+`C-0h@(QYpXGcgG*8U?bf)UVX8T zdPo888;tb$dfxN1nTNR0QjnwOy=aLsu%?7^JjM-utS*@K-n&LdRq-!?A9lQM>>pim z$j<92+NV=U<+da1G%wC^x80sKv-tRKI9!)ukt+ZdfpyByUIFBZ{AZqUHD5Iu+uG9g z+rs4vQn87WPnl84?GL03Ppdcw4<6?ukW~+xq@7)nOE<%kS2py_ep5;@!aN7}WYB4b zerlzdel_d(n-{|G96YA8%RV<#MW8@oPp_h8Hjc=jow}s&bPcXQs5!GQOBkT{#EwS* z9XzW1l|KYOw>x0xxHuYteAjamDO;eAK&^MqNl!6}v5a3w!Wn!JD~A%22l+{nkC=dh zMPxQMu%g6z7OX#pt}XAwP)x8jy(=h(0%S&IBuEWjX=nf5r{eFhiN7$f0L%)Q?AC9I z&I!OmF?hPqY#Cr4#CmP7?#ql;YI1kPQeqz8qo+!x-T6E;mSOrFSKvOFXpmcbR|cf|E%Y79+F+QHK|7)oj0oyF2P&8@)u&1Gs+I(~1O!SI7| z13!vC{{Ryeyi(I0-0>|d6XI(Q$S1)%#qkyfH@pv61acMqK#_sao4D2ZQ6QbxeW0Re#ho`L-DTtVx@JFvavM^DJK(~9yF-qhs)9B}m0NBswllMkWcaMl}(^^}p7Q^w`@?0GoYIk7wMzs2TI z`Aa*xWszO^6fJ2lu6)iSX~;Uf(2?b-XyzV?ee4%mGlby3Ct?9~4&1A>Q%EFZ3T9|Q zA2kH)xZ0P(d4x0V#)-ZIc4={W@ zak5ONww-1#2c)9BX0-p*cu9I{Xz^GMXK0y?fR66k3HTf191%a0r8mne{rs z9Zrp{UHX@Y z5qvVvjgJ>SY)aQjf_u@i2lFr3&{WipxK~5Q_tGj8h(lVR+~yW(v2T@#w6$84F1DXR z7(fdJVFrnEAsJ(60OG;X9bkJ3<_qdJGX>vQO6BXZm}%J1(DzX7mAlr76{3Fr5P(?j zr%#%qhOLL$eti0lU}iakr70?U?5W>ciAX45&*_q=ac@HrjJ=xOT zMaFd)__w@Gj-%6xo)E4QQH==+`A~4HYQMo?#jrs;VQdDO!>7 ztJ^vNhlu!7hwlU^MQDL)H*J6&pX`)zxP0Cur^4__cR~J>cZ{KluZHkUu~i)~@9A5eN=enhIF?u*YnlZ6*8@ML)4|9nv{xKSq~Oz7(C`y!Q>k!uLu5 z;6KM%+?Yp-eMb3NsDss!SN)^-m={OVD$xhenTXJfdshmE=2nsD{XG z9UwvQ2%Ac3P$+>ZBq!88LF$7jb-P)}jq)f4{UjA5EOJ?9W|NEM+M%LFbVVGi?E%sC zJ)?_HB)(%Bvy z9=rEQZp}M4kquHe@yk_yom@_h_)jm$rij!969sK%zUc<=RX1X|J=Kk4>DS`=LOXyd zC+C4qPv{uLk{KP7Csl0ut^PwW&5h&!>kS<&5%w9d=3O7X0|LB<+ylaGwIQP_zIAp= zRJn2Ot@vB(_4*+o{YUn%7|zF&P**4FC__ZR29*C2$Z9@Zecjr!X%J^h=KK@{c+&~t zbay1GeajZiY=Ntr!yfAi68#oZ`Xtq&LgOTl^F)1OQ;Ob{_K{J69`u8$vHj(WPS{cj0HGIz z;>`K{enF4_el>_w`I_cGW7|^T>zbWuPWYVSU_s#HzwRT(s4LA@$b<2O>EV3L3HEj* zj1uK8vq;ZfLj`s`1Ni!A53pA)JQMWN!Jxa(oNd|~&Ie0saXaddB~)B7w)p%P_X5`! zTZ`OBluwjKlv1M!Qfn~|4h!{@Z5Ye$+YLCDSzId+w%Yg9 zbiZG9nUB(%VwI{#uBZ?2E~OJ<-BX{bS=n>g%_5s+ceeg;5W`+kZXPC^ODN zw?+qtCY*y{(^ZE#)iY+(?`PP^$oF^2Hsr>nEG}6lQB9+Uy}C}{i>p0oR4QBf<*UuS z$u{0#=QzFFo0XUdoIMSz#Ll8^j(zGM8D#B9?1wgphMD(166EA5ok*r%lB>P=Sup8c z{Rvgh(Xr<9hHd(r=X8K29D?>728ki7kq#D(?oAu5%G!P-?F7%Gs*n(-h8di;jPU`F zVpu#K+hER8{Jy9jxRMk`S#{>g^veV6m%D(Fy)pghQ<-#;&k4-U@vs|dBN(f}E-B}zq7 z58(Q-KRPXoh?Y#a=g1KyC7)JVqS^bZ{ktJ2 zZm0J@6bkc#s5vvx&&xANZ8%vVMAXYauD@obvm&OpC#liQ{RcAo8I zgC-!}tgsr=N;_}GDbbN&Of|Pio|z?*HnK=_9Q@G!sv1L;x#P1tVbfnhc|B7?&e`?P ztLmc&j&{%4xyZHH+3IEL!HWeU$zkwxq%r{(#d?1`7!H!awtsXT(@H0QMJ)GN9d<$CaCygzEo#z z@#X3zFV+_NSSr!9G*P@vidE-`C@G_9ZUp=M3rgwtpwAr4Zwv*8NwXI&qY-dfqFgu6 zw1@%HsAm&{``eMJ!ov#H+p5OHUHE=WnN|Kr8ePB^&9{;~dkJd@2B*4&81aX@)5k%G zM`#~!AO(2G7Y&ghF$gLCdzMr7+pbF@Slk}b9a)x~?dz6?tRbZ->F!$6pxQ7dH#bCK zour3klEg-s@}{~iVrY9(;K|$>ZlRW<1WD+`RzvL!8G4>Y>)5IV%We~?sqUecLl_7x z;I`-&w(~Ey8)0N9-#Xc|F#g!xQ|QCN$m?(Cl_SG)pK$sX$V~)x#9GBW8*ujCGC0vv z;Z!#rw?|pxRQVkp*3+5V;d~ts$#)nXXI@%m%THm*MlN1@9&Ad@_4Swi`3I;r6IDp1 z-mY7-^=ATYKyqhs$y*~_*Zq2e^fCyhE7#rqM)Eo5aS^#|A1b`g)N4b5=r|M63!`qhipiKXWx=hT?i$#-OJ9l_L{@Ij855@7)lRAut2Nv)H uq%)B=Bh=!RqRCxC=XzQoFB!~-jrtrRgQ|Y&A4-A$q+;^FbPU>$`Tqxl&HL*B diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/package.html b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/package.html deleted file mode 100644 index 13c895af543..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/upload/package.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - -

    The upload package facilities to upload files using - multi-part requests.

    -
    -
    -Upload Package UML -
    - -

    Package Specification

    -##### FILL IN ANY SPECS NEEDED BY JAVA COMPATIBILITY KIT ##### - - -

    Related Documentation

    -For overviews, tutorials, examples, guides, and tool documentation, -please see: - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ImageButtonBean.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ImageButtonBean.java deleted file mode 100644 index 50684cb7c1a..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ImageButtonBean.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * $Id: ImageButtonBean.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import java.io.Serializable; - -/** - * A simple JavaBean to encapsulate the request parameters sent for an HTML - * input element of type image. Such an element causes two parameters to be - * sent, one each for the X and Y coordinates of the button press. An instance - * of this bean within an ActionForm can be used to capture these - * and provide a simple means of detecting whether or not the corresponding - * image was selected. - * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class ImageButtonBean implements Serializable { - // ------------------------------------------------------------- Properties - - /** - * The X coordinate of the button press. - */ - private String x; - - /** - * The Y coordinate of the button press. - */ - private String y; - - // ----------------------------------------------------------- Constructors - - /** - * Construct an instance with empty property values. - */ - public ImageButtonBean() { - ; // do nothing - } - - /** - * Construct an instance with the supplied property values. - * - * @param x The X coordinate of the button press. - * @param y The Y coordinate of the button press. - */ - public ImageButtonBean(String x, String y) { - this.x = x; - this.y = y; - } - - public String getX() { - return (this.x); - } - - public void setX(String x) { - this.x = x; - } - - public String getY() { - return (this.y); - } - - public void setY(String y) { - this.y = y; - } - - // --------------------------------------------------------- Public Methods - - /** - * A convenience method to determine whether or not the corresponding - * image element was selected. - */ - public boolean isSelected() { - return ((x != null) || (y != null)); - } - - /** - * Return a string representation of this object. - */ - public String toString() { - StringBuffer sb = new StringBuffer("ImageButtonBean["); - - sb.append(this.x); - sb.append(", "); - sb.append(this.y); - sb.append("]"); - - return (sb.toString()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/IteratorAdapter.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/IteratorAdapter.java deleted file mode 100644 index 8a6bff04e47..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/IteratorAdapter.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * $Id: IteratorAdapter.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import java.util.Enumeration; -import java.util.Iterator; -import java.util.NoSuchElementException; - -/** - * Utility method for converting Enumeration to an Iterator class. If you - * attempt to remove() an Object from the iterator, it will throw an - * UnsupportedOperationException. Added for use by TagLib so Enumeration can - * be supported - * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class IteratorAdapter implements Iterator { - private Enumeration e; - - public IteratorAdapter(Enumeration e) { - this.e = e; - } - - public boolean hasNext() { - return e.hasMoreElements(); - } - - public Object next() { - if (!e.hasMoreElements()) { - throw new NoSuchElementException( - "IteratorAdaptor.next() has no more elements"); - } - - return e.nextElement(); - } - - public void remove() { - throw new UnsupportedOperationException( - "Method IteratorAdaptor.remove() not implemented"); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/LabelValueBean.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/LabelValueBean.java deleted file mode 100644 index 6268d569703..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/LabelValueBean.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * $Id: LabelValueBean.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import java.io.Serializable; - -import java.util.Comparator; - -/** - * A simple JavaBean to represent label-value pairs. This is most commonly - * used when constructing user interface elements which have a label to be - * displayed to the user, and a corresponding value to be returned to the - * server. One example is the <html:options> tag. - * - *

    Note: this class has a natural ordering that is inconsistent with - * equals.

    - * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class LabelValueBean implements Comparable, Serializable { - /** - * Comparator that can be used for a case insensitive sort of - * LabelValueBean objects. - */ - public static final Comparator CASE_INSENSITIVE_ORDER = - new Comparator() { - public int compare(Object o1, Object o2) { - String label1 = ((LabelValueBean) o1).getLabel(); - String label2 = ((LabelValueBean) o2).getLabel(); - - return label1.compareToIgnoreCase(label2); - } - }; - - // ------------------------------------------------------------- Properties - - /** - * The property which supplies the option label visible to the end user. - */ - private String label = null; - - /** - * The property which supplies the value returned to the server. - */ - private String value = null; - - // ----------------------------------------------------------- Constructors - - /** - * Default constructor. - */ - public LabelValueBean() { - super(); - } - - /** - * Construct an instance with the supplied property values. - * - * @param label The label to be displayed to the user. - * @param value The value to be returned to the server. - */ - public LabelValueBean(String label, String value) { - this.label = label; - this.value = value; - } - - public String getLabel() { - return this.label; - } - - public void setLabel(String label) { - this.label = label; - } - - public String getValue() { - return this.value; - } - - public void setValue(String value) { - this.value = value; - } - - // --------------------------------------------------------- Public Methods - - /** - * Compare LabelValueBeans based on the label, because that's the human - * viewable part of the object. - * - * @see Comparable - */ - public int compareTo(Object o) { - // Implicitly tests for the correct type, throwing - // ClassCastException as required by interface - String otherLabel = ((LabelValueBean) o).getLabel(); - - return this.getLabel().compareTo(otherLabel); - } - - /** - * Return a string representation of this object. - */ - public String toString() { - StringBuffer sb = new StringBuffer("LabelValueBean["); - - sb.append(this.label); - sb.append(", "); - sb.append(this.value); - sb.append("]"); - - return (sb.toString()); - } - - /** - * LabelValueBeans are equal if their values are both null or equal. - * - * @see Object#equals(Object) - */ - public boolean equals(Object obj) { - if (obj == this) { - return true; - } - - if (!(obj instanceof LabelValueBean)) { - return false; - } - - LabelValueBean bean = (LabelValueBean) obj; - int nil = (this.getValue() == null) ? 1 : 0; - - nil += ((bean.getValue() == null) ? 1 : 0); - - if (nil == 2) { - return true; - } else if (nil == 1) { - return false; - } else { - return this.getValue().equals(bean.getValue()); - } - } - - /** - * The hash code is based on the object's value. - * - * @see Object#hashCode() - */ - public int hashCode() { - return (this.getValue() == null) ? 17 : this.getValue().hashCode(); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/LocalStrings.properties b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/LocalStrings.properties deleted file mode 100644 index ff86644cd88..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/LocalStrings.properties +++ /dev/null @@ -1,19 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -computeURL.forwards=Cannot retrieve ActionForwards collection - -parameters.single=Cannot cast to String for name={0} property={1} scope={2} - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/LocalStrings_ja.properties b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/LocalStrings_ja.properties deleted file mode 100644 index d53bbfbcdfd..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/LocalStrings_ja.properties +++ /dev/null @@ -1,19 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -computeURL.forwards=ActionForwards\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304c\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093 - -parameters.single=name= {0} property= {1} scope= {2} \u3092String\u306b\u30ad\u30e3\u30b9\u30c8\u3067\u304d\u307e\u305b\u3093 - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/MessageResources.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/MessageResources.java deleted file mode 100755 index ff2d3741e88..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/MessageResources.java +++ /dev/null @@ -1,510 +0,0 @@ -/* - * $Id: MessageResources.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.io.Serializable; - -import java.text.MessageFormat; - -import java.util.HashMap; -import java.util.Locale; - -/** - * General purpose abstract class that describes an API for retrieving - * Locale-sensitive messages from underlying resource locations of an - * unspecified design, and optionally utilizing the MessageFormat - * class to produce internationalized messages with parametric replacement. - *

    Calls to getMessage() variants without a - * Locale argument are presumed to be requesting a message string - * in the default Locale for this JVM.

    Calls to - * getMessage() with an unknown key, or an unknown - * Locale will return null if the - * returnNull property is set to true. Otherwise, a - * suitable error message will be returned instead.

    IMPLEMENTATION - * NOTE - Classes that extend this class must be Serializable so that - * instances may be used in distributable application server environments. - * - * @version $Rev: 471754 $ $Date: 2005-08-29 23:57:50 -0400 (Mon, 29 Aug 2005) - * $ - */ -public abstract class MessageResources implements Serializable { - // ------------------------------------------------------------- Properties - - /** - * Commons Logging instance. - */ - protected static Log log = LogFactory.getLog(MessageResources.class); - - // --------------------------------------------------------- Static Methods - - /** - * The default MessageResourcesFactory used to create MessageResources - * instances. - */ - protected static MessageResourcesFactory defaultFactory = null; - - /** - * The configuration parameter used to initialize this MessageResources. - */ - protected String config = null; - - /** - * The default Locale for our environment. - */ - protected Locale defaultLocale = Locale.getDefault(); - - /** - * The MessageResourcesFactory that created this instance. - */ - protected MessageResourcesFactory factory = null; - - /** - * The set of previously created MessageFormat objects, keyed by the key - * computed in messageKey(). - */ - protected HashMap formats = new HashMap(); - - /** - * Indicate is a null is returned instead of an error message - * string when an unknown Locale or key is requested. - */ - protected boolean returnNull = false; - - /** - * Indicates whether 'escape processing' should be performed on the error - * message string. - */ - private boolean escape = true; - - // ----------------------------------------------------------- Constructors - - /** - * Construct a new MessageResources according to the specified - * parameters. - * - * @param factory The MessageResourcesFactory that created us - * @param config The configuration parameter for this MessageResources - */ - public MessageResources(MessageResourcesFactory factory, String config) { - this(factory, config, false); - } - - /** - * Construct a new MessageResources according to the specified - * parameters. - * - * @param factory The MessageResourcesFactory that created us - * @param config The configuration parameter for this - * MessageResources - * @param returnNull The returnNull property we should initialize with - */ - public MessageResources(MessageResourcesFactory factory, String config, - boolean returnNull) { - super(); - this.factory = factory; - this.config = config; - this.returnNull = returnNull; - } - - /** - * The configuration parameter used to initialize this MessageResources. - * - * @return parameter used to initialize this MessageResources - */ - public String getConfig() { - return (this.config); - } - - /** - * The MessageResourcesFactory that created this instance. - * - * @return MessageResourcesFactory that created instance - */ - public MessageResourcesFactory getFactory() { - return (this.factory); - } - - /** - * Indicates that a null is returned instead of an error - * message string if an unknown Locale or key is requested. - * - * @return true if null is returned if unknown key or locale is requested - */ - public boolean getReturnNull() { - return (this.returnNull); - } - - /** - * Indicates that a null is returned instead of an error - * message string if an unknown Locale or key is requested. - * - * @param returnNull true Indicates that a null is returned - * if an unknown Locale or key is requested. - */ - public void setReturnNull(boolean returnNull) { - this.returnNull = returnNull; - } - - /** - * Indicates whether 'escape processing' should be performed on the error - * message string. - * - * @since Struts 1.2.8 - */ - public boolean isEscape() { - return escape; - } - - /** - * Set whether 'escape processing' should be performed on the error - * message string. - * - * @since Struts 1.2.8 - */ - public void setEscape(boolean escape) { - this.escape = escape; - } - - // --------------------------------------------------------- Public Methods - - /** - * Returns a text message for the specified key, for the default Locale. - * - * @param key The message key to look up - */ - public String getMessage(String key) { - return this.getMessage((Locale) null, key, null); - } - - /** - * Returns a text message after parametric replacement of the specified - * parameter placeholders. - * - * @param key The message key to look up - * @param args An array of replacement parameters for placeholders - */ - public String getMessage(String key, Object[] args) { - return this.getMessage((Locale) null, key, args); - } - - /** - * Returns a text message after parametric replacement of the specified - * parameter placeholders. - * - * @param key The message key to look up - * @param arg0 The replacement for placeholder {0} in the message - */ - public String getMessage(String key, Object arg0) { - return this.getMessage((Locale) null, key, arg0); - } - - /** - * Returns a text message after parametric replacement of the specified - * parameter placeholders. - * - * @param key The message key to look up - * @param arg0 The replacement for placeholder {0} in the message - * @param arg1 The replacement for placeholder {1} in the message - */ - public String getMessage(String key, Object arg0, Object arg1) { - return this.getMessage((Locale) null, key, arg0, arg1); - } - - /** - * Returns a text message after parametric replacement of the specified - * parameter placeholders. - * - * @param key The message key to look up - * @param arg0 The replacement for placeholder {0} in the message - * @param arg1 The replacement for placeholder {1} in the message - * @param arg2 The replacement for placeholder {2} in the message - */ - public String getMessage(String key, Object arg0, Object arg1, Object arg2) { - return this.getMessage((Locale) null, key, arg0, arg1, arg2); - } - - /** - * Returns a text message after parametric replacement of the specified - * parameter placeholders. - * - * @param key The message key to look up - * @param arg0 The replacement for placeholder {0} in the message - * @param arg1 The replacement for placeholder {1} in the message - * @param arg2 The replacement for placeholder {2} in the message - * @param arg3 The replacement for placeholder {3} in the message - */ - public String getMessage(String key, Object arg0, Object arg1, Object arg2, - Object arg3) { - return this.getMessage((Locale) null, key, arg0, arg1, arg2, arg3); - } - - /** - * Returns a text message for the specified key, for the default Locale. A - * null string result will be returned by this method if no relevant - * message resource is found for this key or Locale, if the - * returnNull property is set. Otherwise, an appropriate - * error message will be returned.

    This method must be implemented by - * a concrete subclass. - * - * @param locale The requested message Locale, or null for - * the system default Locale - * @param key The message key to look up - */ - public abstract String getMessage(Locale locale, String key); - - /** - * Returns a text message after parametric replacement of the specified - * parameter placeholders. A null string result will be returned by this - * method if no resource bundle has been configured. - * - * @param locale The requested message Locale, or null for - * the system default Locale - * @param key The message key to look up - * @param args An array of replacement parameters for placeholders - */ - public String getMessage(Locale locale, String key, Object[] args) { - // Cache MessageFormat instances as they are accessed - if (locale == null) { - locale = defaultLocale; - } - - MessageFormat format = null; - String formatKey = messageKey(locale, key); - - synchronized (formats) { - format = (MessageFormat) formats.get(formatKey); - - if (format == null) { - String formatString = getMessage(locale, key); - - if (formatString == null) { - return returnNull ? null : ("???" + formatKey + "???"); - } - - format = new MessageFormat(escape(formatString)); - format.setLocale(locale); - formats.put(formatKey, format); - } - } - - return format.format(args); - } - - /** - * Returns a text message after parametric replacement of the specified - * parameter placeholders. A null string result will never be returned by - * this method. - * - * @param locale The requested message Locale, or null for - * the system default Locale - * @param key The message key to look up - * @param arg0 The replacement for placeholder {0} in the message - */ - public String getMessage(Locale locale, String key, Object arg0) { - return this.getMessage(locale, key, new Object[] { arg0 }); - } - - /** - * Returns a text message after parametric replacement of the specified - * parameter placeholders. A null string result will never be returned by - * this method. - * - * @param locale The requested message Locale, or null for - * the system default Locale - * @param key The message key to look up - * @param arg0 The replacement for placeholder {0} in the message - * @param arg1 The replacement for placeholder {1} in the message - */ - public String getMessage(Locale locale, String key, Object arg0, Object arg1) { - return this.getMessage(locale, key, new Object[] { arg0, arg1 }); - } - - /** - * Returns a text message after parametric replacement of the specified - * parameter placeholders. A null string result will never be returned by - * this method. - * - * @param locale The requested message Locale, or null for - * the system default Locale - * @param key The message key to look up - * @param arg0 The replacement for placeholder {0} in the message - * @param arg1 The replacement for placeholder {1} in the message - * @param arg2 The replacement for placeholder {2} in the message - */ - public String getMessage(Locale locale, String key, Object arg0, - Object arg1, Object arg2) { - return this.getMessage(locale, key, new Object[] { arg0, arg1, arg2 }); - } - - /** - * Returns a text message after parametric replacement of the specified - * parameter placeholders. A null string result will never be returned by - * this method. - * - * @param locale The requested message Locale, or null for - * the system default Locale - * @param key The message key to look up - * @param arg0 The replacement for placeholder {0} in the message - * @param arg1 The replacement for placeholder {1} in the message - * @param arg2 The replacement for placeholder {2} in the message - * @param arg3 The replacement for placeholder {3} in the message - */ - public String getMessage(Locale locale, String key, Object arg0, - Object arg1, Object arg2, Object arg3) { - return this.getMessage(locale, key, - new Object[] { arg0, arg1, arg2, arg3 }); - } - - /** - * Return true if there is a defined message for the - * specified key in the system default locale. - * - * @param key The message key to look up - */ - public boolean isPresent(String key) { - return this.isPresent(null, key); - } - - /** - * Return true if there is a defined message for the - * specified key in the specified Locale. - * - * @param locale The requested message Locale, or null for - * the system default Locale - * @param key The message key to look up - */ - public boolean isPresent(Locale locale, String key) { - String message = getMessage(locale, key); - - if (message == null) { - return false; - } else if (message.startsWith("???") && message.endsWith("???")) { - return false; // FIXME - Only valid for default implementation - } else { - return true; - } - } - - // ------------------------------------------------------ Protected Methods - - /** - * Escape any single quote characters that are included in the specified - * message string. - * - * @param string The string to be escaped - */ - protected String escape(String string) { - if (!isEscape()) { - return string; - } - - if ((string == null) || (string.indexOf('\'') < 0)) { - return string; - } - - int n = string.length(); - StringBuffer sb = new StringBuffer(n); - - for (int i = 0; i < n; i++) { - char ch = string.charAt(i); - - if (ch == '\'') { - sb.append('\''); - } - - sb.append(ch); - } - - return sb.toString(); - } - - /** - * Compute and return a key to be used in caching information by a Locale. - * NOTE - The locale key for the default Locale in our - * environment is a zero length String. - * - * @param locale The locale for which a key is desired - */ - protected String localeKey(Locale locale) { - return (locale == null) ? "" : locale.toString(); - } - - /** - * Compute and return a key to be used in caching information by Locale - * and message key. - * - * @param locale The Locale for which this format key is calculated - * @param key The message key for which this format key is calculated - */ - protected String messageKey(Locale locale, String key) { - return (localeKey(locale) + "." + key); - } - - /** - * Compute and return a key to be used in caching information by locale - * key and message key. - * - * @param localeKey The locale key for which this cache key is calculated - * @param key The message key for which this cache key is - * calculated - */ - protected String messageKey(String localeKey, String key) { - return (localeKey + "." + key); - } - - /** - * Create and return an instance of MessageResources for the - * created by the default MessageResourcesFactory. - * - * @param config Configuration parameter for this message bundle. - */ - public synchronized static MessageResources getMessageResources( - String config) { - if (defaultFactory == null) { - defaultFactory = MessageResourcesFactory.createFactory(); - } - - return defaultFactory.createResources(config); - } - - /** - * Log a message to the Writer that has been configured for our use. - * - * @param message The message to be logged - */ - public void log(String message) { - log.debug(message); - } - - /** - * Log a message and exception to the Writer that has been configured for - * our use. - * - * @param message The message to be logged - * @param throwable The exception to be logged - */ - public void log(String message, Throwable throwable) { - log.debug(message, throwable); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/MessageResourcesFactory.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/MessageResourcesFactory.java deleted file mode 100644 index 68d6164b794..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/MessageResourcesFactory.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * $Id: MessageResourcesFactory.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.config.MessageResourcesConfig; - -import java.io.Serializable; - -/** - * Factory for MessageResources instances. The general usage - * pattern for this class is: - * - *

      - * - *
    • Call MessageResourcesFactory().createFactory() to retrieve - * a MessageResourcesFactory instance.
    • Set properties as - * required to configure this factory instance to create - * MessageResources instances with desired characteristics.
    • - * - *
    • Call the createResources() method of the factory to - * retrieve a newly instantiated MessageResources instance.
    • - * - *
    - * - * @version $Rev: 471754 $ $Date: 2005-08-29 23:57:50 -0400 (Mon, 29 Aug 2005) - * $ - */ -public abstract class MessageResourcesFactory implements Serializable { - // ------------------------------------------------------ Static Properties - - /** - * The Java class to be used for MessageResourcesFactory - * instances. - */ - protected static transient Class clazz = null; - - /** - * Commons Logging instance. - */ - private static Log LOG = LogFactory.getLog(MessageResourcesFactory.class); - - /** - * The fully qualified class name to be used for MessageResourcesFactory - * instances. - */ - protected static String factoryClass = - "org.apache.struts.util.PropertyMessageResourcesFactory"; - - // ---------------------------------------------------- Instance Properties - - /** - * Configuration information for Message Resources. - */ - protected MessageResourcesConfig config; - - /** - * The "return null" property value to which newly created - * MessageResourcess should be initialized. - */ - protected boolean returnNull = true; - - /** - * Set the configuration information for Message Resources. - * - * @since Struts 1.2.8 - */ - public MessageResourcesConfig getConfig() { - return config; - } - - /** - * Return the configuration information for Message Resources. - * - * @since Struts 1.2.8 - */ - public void setConfig(MessageResourcesConfig config) { - this.config = config; - } - - /** - * Get default value of the "returnNull" property used to initialize newly - * created MessageResourcess. - * - * @return default value of the "returnNull" property newly created - * MessageResourcess are initialized to. - */ - public boolean getReturnNull() { - return (this.returnNull); - } - - /** - * Set the default value of the "returnNull" property newly created - * MessageResourcess are initialized to. - * - * @param returnNull default value of the "returnNull" MessageResourcess - * are initialized to. - */ - public void setReturnNull(boolean returnNull) { - this.returnNull = returnNull; - } - - // --------------------------------------------------------- Public Methods - - /** - * Create and return a newly instansiated MessageResources. - * This method must be implemented by concrete subclasses. - * - * @param config Configuration parameter(s) for the requested bundle - */ - public abstract MessageResources createResources(String config); - - /** - * The fully qualified class name that is used for MessageResourcesFactory - * instances. - * - * @return class name that is used for MessageResourcesFactory - * instances - */ - public static String getFactoryClass() { - return (MessageResourcesFactory.factoryClass); - } - - /** - * Set the fully qualified class name that is used for - * MessageResourcesFactory instances. - * - * @param factoryClass name that is used for MessageResourcesFactory - * instances - */ - public static void setFactoryClass(String factoryClass) { - MessageResourcesFactory.factoryClass = factoryClass; - MessageResourcesFactory.clazz = null; - } - - // --------------------------------------------------------- Static Methods - - /** - * Create and return a MessageResourcesFactory instance of - * the appropriate class, which can be used to create customized - * MessageResources instances. If no such factory can be - * created, return null instead. - */ - public static MessageResourcesFactory createFactory() { - // Construct a new instance of the specified factory class - try { - if (clazz == null) { - clazz = RequestUtils.applicationClass(factoryClass); - } - - MessageResourcesFactory factory = - (MessageResourcesFactory) clazz.newInstance(); - - return (factory); - } catch (Throwable t) { - LOG.error("MessageResourcesFactory.createFactory", t); - - return (null); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ModuleException.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ModuleException.java deleted file mode 100644 index abad43d373f..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ModuleException.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * $Id: ModuleException.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import org.apache.struts.action.ActionMessage; - -/** - * Used for specialized exception handling. - */ -public class ModuleException extends Exception { - protected String property = null; - - /** - * The ActionMessage associated with this exception. - * - * @since Struts 1.2 - */ - protected ActionMessage message = null; - - /** - * Construct an module exception with no replacement values. - * - * @param key Message key for this error message - */ - public ModuleException(String key) { - super(key); - message = new ActionMessage(key); - } - - /** - * Construct an module exception with the specified replacement values. - * - * @param key Message key for this error message - * @param value First replacement value - */ - public ModuleException(String key, Object value) { - super(key); - message = new ActionMessage(key, value); - } - - /** - * Construct an module exception with the specified replacement values. - * - * @param key Message key for this error message - * @param value0 First replacement value - * @param value1 Second replacement value - */ - public ModuleException(String key, Object value0, Object value1) { - super(key); - message = new ActionMessage(key, value0, value1); - } - - /** - * Construct an module exception with the specified replacement values. - * - * @param key Message key for this error message - * @param value0 First replacement value - * @param value1 Second replacement value - * @param value2 Third replacement value - */ - public ModuleException(String key, Object value0, Object value1, - Object value2) { - super(key); - message = new ActionMessage(key, value0, value1, value2); - } - - /** - * Construct an module exception with the specified replacement values. - * - * @param key Message key for this error message - * @param value0 First replacement value - * @param value1 Second replacement value - * @param value2 Third replacement value - * @param value3 Fourth replacement value - */ - public ModuleException(String key, Object value0, Object value1, - Object value2, Object value3) { - super(key); - message = new ActionMessage(key, value0, value1, value2, value3); - } - - /** - * Construct an error with the specified replacement values. - * - * @param key Message key for this message - * @param values Array of replacement values - */ - public ModuleException(String key, Object[] values) { - super(key); - message = new ActionMessage(key, values); - } - - /** - * Returns the property associated with the exception. - * - * @return Value of property. - */ - public String getProperty() { - return (property != null) ? property : message.getKey(); - } - - /** - * Set the property associated with the exception. It can be a name of the - * edit field, which 'caused' the exception. - */ - public void setProperty(String property) { - this.property = property; - } - - /** - * Returns the error associated with the exception. - * - * @return Value of property error. - * @since Struts 1.2 - */ - public ActionMessage getActionMessage() { - return this.message; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ModuleUtils.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ModuleUtils.java deleted file mode 100644 index 390445e69e5..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ModuleUtils.java +++ /dev/null @@ -1,264 +0,0 @@ -/* - * $Id: ModuleUtils.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.Globals; -import org.apache.struts.action.RequestProcessor; -import org.apache.struts.config.MessageResourcesConfig; -import org.apache.struts.config.ModuleConfig; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; - -/** - * General purpose utility methods related to module processing. - * - * @version $Rev: 471754 $ - * @since Struts 1.2 - */ -public class ModuleUtils { - /** - * The Singleton instance. - */ - private static final ModuleUtils instance = new ModuleUtils(); - - /** - * Commons logging instance. - */ - private static final Log log = LogFactory.getLog(ModuleUtils.class); - - /** - * Constructor for ModuleUtils. - */ - protected ModuleUtils() { - super(); - } - - /** - * Returns the Singleton instance of TagUtils. - */ - public static ModuleUtils getInstance() { - return instance; - } - - /** - * Return the current ModuleConfig object stored in request, if it exists, - * null otherwise. This method can be used by plugin to retrieve the - * current module config object. If no moduleConfig is found, this means - * that the request haven't hit the server throught the struts servlet. - * The appropriate module config can be set and found with {@link - * ModuleUtils#selectModule(HttpServletRequest, ServletContext)} . - * - * @param request The servlet request we are processing - * @return the ModuleConfig object from request, or null if none is set in - * the request. - */ - public ModuleConfig getModuleConfig(HttpServletRequest request) { - return (ModuleConfig) request.getAttribute(Globals.MODULE_KEY); - } - - /** - * Return the desired ModuleConfig object stored in context, if it exists, - * null otherwise. - * - * @param prefix The module prefix of the desired module - * @param context The ServletContext for this web application - * @return the ModuleConfig object specified, or null if not found in the - * context. - */ - public ModuleConfig getModuleConfig(String prefix, ServletContext context) { - if ((prefix == null) || "/".equals(prefix)) { - return (ModuleConfig) context.getAttribute(Globals.MODULE_KEY); - } else { - return (ModuleConfig) context.getAttribute(Globals.MODULE_KEY - + prefix); - } - } - - /** - * Return the desired ModuleConfig object stored in context, if it exists, - * otherwise return the current ModuleConfig - * - * @param prefix The module prefix of the desired module - * @param request The servlet request we are processing - * @param context The ServletContext for this web application - * @return the ModuleConfig object specified, or null if not found in the - * context. - */ - public ModuleConfig getModuleConfig(String prefix, - HttpServletRequest request, ServletContext context) { - ModuleConfig moduleConfig = null; - - if (prefix != null) { - //lookup module stored with the given prefix. - moduleConfig = this.getModuleConfig(prefix, context); - } else { - //return the current module if no prefix was supplied. - moduleConfig = this.getModuleConfig(request, context); - } - - return moduleConfig; - } - - /** - * Return the ModuleConfig object is it exists, null otherwise. - * - * @param request The servlet request we are processing - * @param context The ServletContext for this web application - * @return the ModuleConfig object - */ - public ModuleConfig getModuleConfig(HttpServletRequest request, - ServletContext context) { - ModuleConfig moduleConfig = this.getModuleConfig(request); - - if (moduleConfig == null) { - moduleConfig = this.getModuleConfig("", context); - request.setAttribute(Globals.MODULE_KEY, moduleConfig); - } - - return moduleConfig; - } - - /** - * Get the module name to which the specified request belong. - * - * @param request The servlet request we are processing - * @param context The ServletContext for this web application - * @return The module prefix or "" - */ - public String getModuleName(HttpServletRequest request, - ServletContext context) { - // Acquire the path used to compute the module - String matchPath = - (String) request.getAttribute(RequestProcessor.INCLUDE_SERVLET_PATH); - - if (matchPath == null) { - matchPath = request.getServletPath(); - } - - return this.getModuleName(matchPath, context); - } - - /** - * Get the module name to which the specified uri belong. - * - * @param matchPath The uri from which we want the module name. - * @param context The ServletContext for this web application - * @return The module prefix or "" - */ - public String getModuleName(String matchPath, ServletContext context) { - if (log.isDebugEnabled()) { - log.debug("Get module name for path " + matchPath); - } - - String prefix = ""; // Initialize prefix before we try lookup - String[] prefixes = getModulePrefixes(context); - - // Get all other possible prefixes - int lastSlash = 0; // Initialize before loop - - while (prefix.equals("") - && ((lastSlash = matchPath.lastIndexOf("/")) > 0)) { - // We may be in a non-default module. Try to get it's prefix. - matchPath = matchPath.substring(0, lastSlash); - - // Match against the list of module prefixes - for (int i = 0; i < prefixes.length; i++) { - if (matchPath.equals(prefixes[i])) { - prefix = prefixes[i]; - - break; - } - } - } - - if (log.isDebugEnabled()) { - log.debug("Module name found: " - + (prefix.equals("") ? "default" : prefix)); - } - - return prefix; - } - - /** - * Return the list of module prefixes that are defined for this web - * application. NOTE - the "" prefix for the default - * module is not included in this list. - * - * @param context The ServletContext for this web application. - * @return An array of module prefixes. - */ - public String[] getModulePrefixes(ServletContext context) { - return (String[]) context.getAttribute(Globals.MODULE_PREFIXES_KEY); - } - - /** - * Select the module to which the specified request belongs, and add - * corresponding request attributes to this request. - * - * @param request The servlet request we are processing - * @param context The ServletContext for this web application - */ - public void selectModule(HttpServletRequest request, ServletContext context) { - // Compute module name - String prefix = getModuleName(request, context); - - // Expose the resources for this module - this.selectModule(prefix, request, context); - } - - /** - * Select the module to which the specified request belongs, and add - * corresponding request attributes to this request. - * - * @param prefix The module prefix of the desired module - * @param request The servlet request we are processing - * @param context The ServletContext for this web application - */ - public void selectModule(String prefix, HttpServletRequest request, - ServletContext context) { - // Expose the resources for this module - ModuleConfig config = getModuleConfig(prefix, context); - - if (config != null) { - request.setAttribute(Globals.MODULE_KEY, config); - - MessageResourcesConfig[] mrConfig = - config.findMessageResourcesConfigs(); - - for (int i = 0; i < mrConfig.length; i++) { - String key = mrConfig[i].getKey(); - MessageResources resources = - (MessageResources) context.getAttribute(key + prefix); - - if (resources != null) { - request.setAttribute(key, resources); - } else { - request.removeAttribute(key); - } - } - } else { - request.removeAttribute(Globals.MODULE_KEY); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/PropertyMessageResources.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/PropertyMessageResources.java deleted file mode 100644 index 43b4330f46e..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/PropertyMessageResources.java +++ /dev/null @@ -1,456 +0,0 @@ -/* - * $Id: PropertyMessageResources.java 480549 2006-11-29 12:16:15Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.io.IOException; -import java.io.InputStream; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Locale; -import java.util.Properties; - -/** - * Concrete subclass of MessageResources that reads message keys - * and corresponding strings from named property resources in a similar manner - * (see modes below) that java.util.PropertyResourceBundle does. The - * base property defines the base property resource name, and - * must be specified.

    IMPLEMENTATION NOTE - This class - * trades memory for speed by caching all messages located via generalizing - * the Locale under the original locale as well. This results in specific - * messages being stored in the message cache more than once, but improves - * response time on subsequent requests for the same locale + key - * combination. - * - *

    Operating Modes

    - * This implementation can be configured to operate in one of three modes: - *
      - *
    • 1. Default - default, backwardly compatible, Struts behaviour (i.e. the way - * its always worked).
    • - *
    • 2. JSTL - compatible with how JSTL finds messages - * (fix for STR-2925)
    • - *
    • 3. Resource - compatible with how Java's PropertyResourceBundle - * finds messages (fix for - * STR-2077)
    • - *
    - * - *

    1. Default Mode

    - * Default mode is the way this implementation has always operated. It searches - * for a message key for property resources in the following sequence: - *
    - *      base + "_" + localeLanguage + "_" + localeCountry + "_" + localeVariant
    - *      base + "_" + localeLanguage + "_" + localeCountry
    - *      base + "_" + localeLanguage
    - *      base + "_" + default locale
    - *      base
    - * 
    - *

    - * This mode is the default and requires no additional configuration. - * - *

    2. JSTL Mode

    - * JSTL mode is compatible with how JSTL operates and the default Locale - * is not used when looking for a message key. JSTL mode searches for - * a message key for property resources in the following sequence: - *
    - *      base + "_" + localeLanguage + "_" + localeCountry + "_" + localeVariant
    - *      base + "_" + localeLanguage + "_" + localeCountry
    - *      base + "_" + localeLanguage
    - *      base
    - * 
    - *

    - * Configure PropertyMessageResources to operate in this mode by - * specifying a value of JSTL for the mode - * key in your struts-config.xml: - *

    - *      <message-resources parameter="mypackage.MyMessageResources">
    - *          <set-property key="mode" value="JSTL"/>
    - *      </message-resources>
    - * 
    - * - *

    3. Resource Mode

    - * Resource mode is compatible with how Java's PropertyResourceBundle - * operates. Resource mode searches first through the specified Locale's language, - * country and variant, then through the default Locale's language, - * country and variant and finally using just the base: - *
    - *      base + "_" + localeLanguage + "_" + localeCountry + "_" + localeVariant
    - *      base + "_" + localeLanguage + "_" + localeCountry
    - *      base + "_" + localeLanguage
    - *      base + "_" + defaultLanguage + "_" + defaultCountry + "_" + defaultVariant
    - *      base + "_" + defaultLanguage + "_" + defaultCountry
    - *      base + "_" + defaultLanguage
    - *      base
    - * 
    - *

    - * Configure PropertyMessageResources to operate in this mode by - * specifying a value of resource for the mode - * key in your struts-config.xml: - *

    - *      <message-resources parameter="mypackage.MyMessageResources">
    - *          <set-property key="mode" value="resource"/>
    - *      </message-resources>
    - * 
    - * - * @version $Rev: 480549 $ $Date: 2006-11-29 13:16:15 +0100 (Wed, 29 Nov 2006) $ - */ -public class PropertyMessageResources extends MessageResources { - - - /** Indicates compatibility with how PropertyMessageResources has always looked up messages */ - private static final int MODE_DEFAULT = 0; - - /** Indicates compatibility with how JSTL looks up messages */ - private static final int MODE_JSTL = 1; - - /** Indicates compatibility with how java's PropertyResourceBundle looks up messages */ - private static final int MODE_RESOURCE_BUNDLE = 2; - - /** - * The Log instance for this class. - */ - protected static final Log log = - LogFactory.getLog(PropertyMessageResources.class); - - // ------------------------------------------------------------- Properties - - /** - * The set of locale keys for which we have already loaded messages, keyed - * by the value calculated in localeKey(). - */ - protected HashMap locales = new HashMap(); - - /** - * The cache of messages we have accumulated over time, keyed by the value - * calculated in messageKey(). - */ - protected HashMap messages = new HashMap(); - - /** - * Compatibility mode that PropertyMessageResources is operating in. - */ - private int mode = MODE_DEFAULT; - - // ----------------------------------------------------------- Constructors - - /** - * Construct a new PropertyMessageResources according to the specified - * parameters. - * - * @param factory The MessageResourcesFactory that created us - * @param config The configuration parameter for this MessageResources - */ - public PropertyMessageResources(MessageResourcesFactory factory, - String config) { - super(factory, config); - log.trace("Initializing, config='" + config + "'"); - } - - /** - * Construct a new PropertyMessageResources according to the specified - * parameters. - * - * @param factory The MessageResourcesFactory that created us - * @param config The configuration parameter for this - * MessageResources - * @param returnNull The returnNull property we should initialize with - */ - public PropertyMessageResources(MessageResourcesFactory factory, - String config, boolean returnNull) { - super(factory, config, returnNull); - log.trace("Initializing, config='" + config + "', returnNull=" - + returnNull); - } - - // --------------------------------------------------------- Public Methods - - /** - * Set the compatibility mode this implementation uses for message lookup. - * - * @param mode JSTL for JSTL compatibility, - * resource for PropertyResourceBundle compatibility or - * default for Struts backward compatibility. - */ - public void setMode(String mode) { - String value = (mode == null ? null : mode.trim()); - if ("jstl".equalsIgnoreCase(value)) { - this.mode = MODE_JSTL; - if (log.isDebugEnabled()) { - log.info("Operating in JSTL compatible mode [" + mode + "]"); - } - } else if ("resource".equalsIgnoreCase(value)) { - this.mode = MODE_RESOURCE_BUNDLE; - if (log.isDebugEnabled()) { - log.info("Operating in PropertyResourceBundle compatible mode [" + mode + "]"); - } - } else { - this.mode = MODE_DEFAULT; - if (log.isDebugEnabled()) { - log.info("Operating in Default mode [" + mode + "]"); - } - } - } - - /** - * Returns a text message for the specified key, for the specified or default - * Locale. A null string result will be returned by this method if no relevant - * message resource is found for this key or Locale, if the - * returnNull property is set. Otherwise, an appropriate - * error message will be returned.

    This method must be implemented by - * a concrete subclass. - * - * @param locale The requested message Locale, or null for - * the system default Locale - * @param key The message key to look up - * @return text message for the specified key and locale - */ - public String getMessage(Locale locale, String key) { - if (log.isDebugEnabled()) { - log.debug("getMessage(" + locale + "," + key + ")"); - } - - // Initialize variables we will require - String localeKey = localeKey(locale); - String originalKey = messageKey(localeKey, key); - String message = null; - - // Search the specified Locale - message = findMessage(locale, key, originalKey); - if (message != null) { - return message; - } - - // JSTL Compatibility - JSTL doesn't use the default locale - if (mode == MODE_JSTL) { - - // do nothing (i.e. don't use default Locale) - - // PropertyResourcesBundle - searches through the hierarchy - // for the default Locale (e.g. first en_US then en) - } else if (mode == MODE_RESOURCE_BUNDLE) { - - if (!defaultLocale.equals(locale)) { - message = findMessage(defaultLocale, key, originalKey); - } - - // Default (backwards) Compatibility - just searches the - // specified Locale (e.g. just en_US) - } else { - - if (!defaultLocale.equals(locale)) { - localeKey = localeKey(defaultLocale); - message = findMessage(localeKey, key, originalKey); - } - - } - if (message != null) { - return message; - } - - // Find the message in the default properties file - message = findMessage("", key, originalKey); - if (message != null) { - return message; - } - - // Return an appropriate error indication - if (returnNull) { - return (null); - } else { - return ("???" + messageKey(locale, key) + "???"); - } - } - - // ------------------------------------------------------ Protected Methods - - /** - * Load the messages associated with the specified Locale key. For this - * implementation, the config property should contain a fully - * qualified package and resource name, separated by periods, of a series - * of property resources to be loaded from the class loader that created - * this PropertyMessageResources instance. This is exactly the same name - * format you would use when utilizing the java.util.PropertyResourceBundle - * class. - * - * @param localeKey Locale key for the messages to be retrieved - */ - protected synchronized void loadLocale(String localeKey) { - if (log.isTraceEnabled()) { - log.trace("loadLocale(" + localeKey + ")"); - } - - // Have we already attempted to load messages for this locale? - if (locales.get(localeKey) != null) { - return; - } - - locales.put(localeKey, localeKey); - - // Set up to load the property resource for this locale key, if we can - String name = config.replace('.', '/'); - - if (localeKey.length() > 0) { - name += ("_" + localeKey); - } - - name += ".properties"; - - InputStream is = null; - Properties props = new Properties(); - - // Load the specified property resource - if (log.isTraceEnabled()) { - log.trace(" Loading resource '" + name + "'"); - } - - ClassLoader classLoader = - Thread.currentThread().getContextClassLoader(); - - if (classLoader == null) { - classLoader = this.getClass().getClassLoader(); - } - - is = classLoader.getResourceAsStream(name); - - if (is != null) { - try { - props.load(is); - } catch (IOException e) { - log.error("loadLocale()", e); - } finally { - try { - is.close(); - } catch (IOException e) { - log.error("loadLocale()", e); - } - } - if (log.isTraceEnabled()) { - log.trace(" Loading resource completed"); - } - } else { - if (log.isWarnEnabled()) { - log.warn(" Resource "+name+" Not Found."); - } - } - - - // Copy the corresponding values into our cache - if (props.size() < 1) { - return; - } - - synchronized (messages) { - Iterator names = props.keySet().iterator(); - - while (names.hasNext()) { - String key = (String) names.next(); - - if (log.isTraceEnabled()) { - log.trace(" Saving message key '" - + messageKey(localeKey, key)); - } - - messages.put(messageKey(localeKey, key), props.getProperty(key)); - } - } - } - - // -------------------------------------------------------- Private Methods - - /** - * Returns a text message for the specified key, for the specified Locale. - *

    - * A null string result will be returned by this method if no relevant - * message resource is found. This method searches through the locale - * hierarchy (i.e. variant --> languge --> country) for the message. - * - * @param locale The requested message Locale, or null for - * the system default Locale - * @param key The message key to look up - * @param originalKey The original message key to cache any found message under - * @return text message for the specified key and locale - */ - private String findMessage(Locale locale, String key, String originalKey) { - - // Initialize variables we will require - String localeKey = localeKey(locale); - String messageKey = null; - String message = null; - int underscore = 0; - - // Loop from specific to general Locales looking for this message - while (true) { - message = findMessage(localeKey, key, originalKey); - if (message != null) { - break; - } - - // Strip trailing modifiers to try a more general locale key - underscore = localeKey.lastIndexOf("_"); - - if (underscore < 0) { - break; - } - - localeKey = localeKey.substring(0, underscore); - } - - return message; - - } - - /** - * Returns a text message for the specified key, for the specified Locale. - *

    - * A null string result will be returned by this method if no relevant - * message resource is found. - * - * @param locale The requested key of the Locale - * @param key The message key to look up - * @param originalKey The original message key to cache any found message under - * @return text message for the specified key and locale - */ - private String findMessage(String localeKey, String key, String originalKey) { - - // Load this Locale's messages if we have not done so yet - loadLocale(localeKey); - - // Check if we have this key for the current locale key - String messageKey = messageKey(localeKey, key); - - // Add if not found under the original key - boolean addIt = !messageKey.equals(originalKey); - - synchronized (messages) { - String message = (String) messages.get(messageKey); - - if (message != null) { - if (addIt) { - messages.put(originalKey, message); - } - - } - return (message); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/PropertyMessageResourcesFactory.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/PropertyMessageResourcesFactory.java deleted file mode 100644 index eb6d7a4e4b2..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/PropertyMessageResourcesFactory.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * $Id: PropertyMessageResourcesFactory.java 480549 2006-11-29 12:16:15Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - - -/** - * Factory for PropertyMessageResources instances. The - * configuration paramter for such instances is the base Java package name of - * the resources entries from which our keys and values will be loaded. - * - * @version $Rev: 480549 $ $Date: 2006-11-29 13:16:15 +0100 (Wed, 29 Nov 2006) $ - */ -public class PropertyMessageResourcesFactory extends MessageResourcesFactory { - // --------------------------------------------------------- Public Methods - - /** - * Create and return a newly instansiated MessageResources. - * This method must be implemented by concrete subclasses. - * - * @param config Configuration parameter(s) for the requested bundle - */ - public MessageResources createResources(String config) { - PropertyMessageResources messageResources = - new PropertyMessageResources(this, config, this.returnNull); - String mode = null; - if (getConfig() != null) { - mode = getConfig().getProperty("mode"); - } - messageResources.setMode(mode); - return messageResources; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/RequestUtils.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/RequestUtils.java deleted file mode 100644 index 3d6a9c4d1cf..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/RequestUtils.java +++ /dev/null @@ -1,1115 +0,0 @@ -/* - * $Id: RequestUtils.java 524895 2007-04-02 19:29:21Z germuska $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import org.apache.commons.beanutils.BeanUtils; -import org.apache.commons.beanutils.PropertyUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.Globals; -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.action.ActionServlet; -import org.apache.struts.action.ActionServletWrapper; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.FormBeanConfig; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.upload.FormFile; -import org.apache.struts.upload.MultipartRequestHandler; -import org.apache.struts.upload.MultipartRequestWrapper; - -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import java.lang.reflect.InvocationTargetException; -import java.net.MalformedURLException; -import java.net.URL; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Hashtable; -import java.util.List; -import java.util.Locale; -import java.util.Map; - -/** - *

    General purpose utility methods related to processing a servlet request - * in the Struts controller framework.

    - * - * @version $Rev: 524895 $ $Date: 2007-04-02 21:29:21 +0200 (Mon, 02 Apr 2007) $ - */ -public class RequestUtils { - // ------------------------------------------------------- Static Variables - - /** - *

    Commons Logging instance.

    - */ - protected static Log log = LogFactory.getLog(RequestUtils.class); - - // --------------------------------------------------------- Public Methods - - /** - *

    Create and return an absolute URL for the specified context-relative - * path, based on the server and context information in the specified - * request.

    - * - * @param request The servlet request we are processing - * @param path The context-relative path (must start with '/') - * @return absolute URL based on context-relative path - * @throws MalformedURLException if we cannot create an absolute URL - */ - public static URL absoluteURL(HttpServletRequest request, String path) - throws MalformedURLException { - return (new URL(serverURL(request), request.getContextPath() + path)); - } - - /** - *

    Return the Class object for the specified fully - * qualified class name, from this web application's class loader.

    - * - * @param className Fully qualified class name to be loaded - * @return Class object - * @throws ClassNotFoundException if the class cannot be found - */ - public static Class applicationClass(String className) - throws ClassNotFoundException { - return applicationClass(className, null); - } - - /** - *

    Return the Class object for the specified fully - * qualified class name, from this web application's class loader.

    - * - * @param className Fully qualified class name to be loaded - * @param classLoader The desired classloader to use - * @return Class object - * @throws ClassNotFoundException if the class cannot be found - */ - public static Class applicationClass(String className, - ClassLoader classLoader) - throws ClassNotFoundException { - if (classLoader == null) { - // Look up the class loader to be used - classLoader = Thread.currentThread().getContextClassLoader(); - - if (classLoader == null) { - classLoader = RequestUtils.class.getClassLoader(); - } - } - - // Attempt to load the specified class - return (classLoader.loadClass(className)); - } - - /** - *

    Return a new instance of the specified fully qualified class name, - * after loading the class from this web application's class loader. The - * specified class MUST have a public zero-arguments - * constructor.

    - * - * @param className Fully qualified class name to use - * @return new instance of class - * @throws ClassNotFoundException if the class cannot be found - * @throws IllegalAccessException if the class or its constructor is not - * accessible - * @throws InstantiationException if this class represents an abstract - * class, an interface, an array class, a - * primitive type, or void - * @throws InstantiationException if this class has no zero-arguments - * constructor - */ - public static Object applicationInstance(String className) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException { - return applicationInstance(className, null); - } - - /** - *

    Return a new instance of the specified fully qualified class name, - * after loading the class from this web application's class loader. The - * specified class MUST have a public zero-arguments - * constructor.

    - * - * @param className Fully qualified class name to use - * @param classLoader The desired classloader to use - * @return new instance of class - * @throws ClassNotFoundException if the class cannot be found - * @throws IllegalAccessException if the class or its constructor is not - * accessible - * @throws InstantiationException if this class represents an abstract - * class, an interface, an array class, a - * primitive type, or void - * @throws InstantiationException if this class has no zero-arguments - * constructor - */ - public static Object applicationInstance(String className, - ClassLoader classLoader) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException { - return (applicationClass(className, classLoader).newInstance()); - } - - /** - *

    Create (if necessary) and return an ActionForm instance - * appropriate for this request. If no ActionForm instance - * is required, return null.

    - * - * @param request The servlet request we are processing - * @param mapping The action mapping for this request - * @param moduleConfig The configuration for this module - * @param servlet The action servlet - * @return ActionForm instance associated with this request - */ - public static ActionForm createActionForm(HttpServletRequest request, - ActionMapping mapping, ModuleConfig moduleConfig, ActionServlet servlet) { - // Is there a form bean associated with this mapping? - String attribute = mapping.getAttribute(); - - if (attribute == null) { - return (null); - } - - // Look up the form bean configuration information to use - String name = mapping.getName(); - FormBeanConfig config = moduleConfig.findFormBeanConfig(name); - - if (config == null) { - log.warn("No FormBeanConfig found under '" + name + "'"); - - return (null); - } - - ActionForm instance = - lookupActionForm(request, attribute, mapping.getScope()); - - // Can we recycle the existing form bean instance (if there is one)? - if ((instance != null) && config.canReuse(instance)) { - return (instance); - } - - return createActionForm(config, servlet); - } - - private static ActionForm lookupActionForm(HttpServletRequest request, - String attribute, String scope) { - // Look up any existing form bean instance - if (log.isDebugEnabled()) { - log.debug(" Looking for ActionForm bean instance in scope '" - + scope + "' under attribute key '" + attribute + "'"); - } - - ActionForm instance = null; - HttpSession session = null; - - if ("request".equals(scope)) { - instance = (ActionForm) request.getAttribute(attribute); - } else { - session = request.getSession(); - instance = (ActionForm) session.getAttribute(attribute); - } - - return (instance); - } - - /** - *

    Create and return an ActionForm instance appropriate to - * the information in config.

    - * - *

    Does not perform any checks to see if an existing ActionForm exists - * which could be reused.

    - * - * @param config The configuration for the Form bean which is to be - * created. - * @param servlet The action servlet - * @return ActionForm instance associated with this request - */ - public static ActionForm createActionForm(FormBeanConfig config, - ActionServlet servlet) { - if (config == null) { - return (null); - } - - ActionForm instance = null; - - // Create and return a new form bean instance - try { - instance = config.createActionForm(servlet); - - if (log.isDebugEnabled()) { - log.debug(" Creating new " - + (config.getDynamic() ? "DynaActionForm" : "ActionForm") - + " instance of type '" + config.getType() + "'"); - log.trace(" --> " + instance); - } - } catch (Throwable t) { - log.error(servlet.getInternal().getMessage("formBean", - config.getType()), t); - } - - return (instance); - } - - /** - *

    Retrieves the servlet mapping pattern for the specified {@link ActionServlet}.

    - * - * @return the servlet mapping - * @see Globals#SERVLET_KEY - * @since Struts 1.3.6 - */ - public static String getServletMapping(ActionServlet servlet) { - ServletContext servletContext = servlet.getServletConfig().getServletContext(); - return (String)servletContext.getAttribute(Globals.SERVLET_KEY); - } - - /** - *

    Look up and return current user locale, based on the specified - * parameters.

    - * - * @param request The request used to lookup the Locale - * @param locale Name of the session attribute for our user's Locale. If - * this is null, the default locale key is - * used for the lookup. - * @return current user locale - * @since Struts 1.2 - */ - public static Locale getUserLocale(HttpServletRequest request, String locale) { - Locale userLocale = null; - HttpSession session = request.getSession(false); - - if (locale == null) { - locale = Globals.LOCALE_KEY; - } - - // Only check session if sessions are enabled - if (session != null) { - userLocale = (Locale) session.getAttribute(locale); - } - - if (userLocale == null) { - // Returns Locale based on Accept-Language header or the server default - userLocale = request.getLocale(); - } - - return userLocale; - } - - /** - *

    Populate the properties of the specified JavaBean from the specified - * HTTP request, based on matching each parameter name against the - * corresponding JavaBeans "property setter" methods in the bean's class. - * Suitable conversion is done for argument types as described under - * convert().

    - * - * @param bean The JavaBean whose properties are to be set - * @param request The HTTP request whose parameters are to be used to - * populate bean properties - * @throws ServletException if an exception is thrown while setting - * property values - */ - public static void populate(Object bean, HttpServletRequest request) - throws ServletException { - populate(bean, null, null, request); - } - - /** - *

    Populate the properties of the specified JavaBean from the specified - * HTTP request, based on matching each parameter name (plus an optional - * prefix and/or suffix) against the corresponding JavaBeans "property - * setter" methods in the bean's class. Suitable conversion is done for - * argument types as described under setProperties.

    - * - *

    If you specify a non-null prefix and a non-null - * suffix, the parameter name must match - * both conditions for its value(s) to be used in - * populating bean properties. If the request's content type is - * "multipart/form-data" and the method is "POST", the - * HttpServletRequest object will be wrapped in a - * MultipartRequestWrapper - * - * @param bean The JavaBean whose properties are to be set - * @param prefix The prefix (if any) to be prepend to bean property names - * when looking for matching parameters - * @param suffix The suffix (if any) to be appended to bean property - * names when looking for matching parameters - * @param request The HTTP request whose parameters are to be used to - * populate bean properties - * @throws ServletException if an exception is thrown while setting - * property values - */ - public static void populate(Object bean, String prefix, String suffix, - HttpServletRequest request) - throws ServletException { - // Build a list of relevant request parameters from this request - HashMap properties = new HashMap(); - - // Iterator of parameter names - Enumeration names = null; - - // Map for multipart parameters - Map multipartParameters = null; - - String contentType = request.getContentType(); - String method = request.getMethod(); - boolean isMultipart = false; - - if (bean instanceof ActionForm) { - ((ActionForm) bean).setMultipartRequestHandler(null); - } - - MultipartRequestHandler multipartHandler = null; - if ((contentType != null) - && (contentType.startsWith("multipart/form-data")) - && (method.equalsIgnoreCase("POST"))) { - // Get the ActionServletWrapper from the form bean - ActionServletWrapper servlet; - - if (bean instanceof ActionForm) { - servlet = ((ActionForm) bean).getServletWrapper(); - } else { - throw new ServletException("bean that's supposed to be " - + "populated from a multipart request is not of type " - + "\"org.apache.struts.action.ActionForm\", but type " - + "\"" + bean.getClass().getName() + "\""); - } - - // Obtain a MultipartRequestHandler - multipartHandler = getMultipartHandler(request); - - if (multipartHandler != null) { - isMultipart = true; - - // Set servlet and mapping info - servlet.setServletFor(multipartHandler); - multipartHandler.setMapping((ActionMapping) request - .getAttribute(Globals.MAPPING_KEY)); - - // Initialize multipart request class handler - multipartHandler.handleRequest(request); - - //stop here if the maximum length has been exceeded - Boolean maxLengthExceeded = - (Boolean) request.getAttribute(MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED); - - if ((maxLengthExceeded != null) - && (maxLengthExceeded.booleanValue())) { - ((ActionForm) bean).setMultipartRequestHandler(multipartHandler); - return; - } - - //retrieve form values and put into properties - multipartParameters = - getAllParametersForMultipartRequest(request, - multipartHandler); - names = Collections.enumeration(multipartParameters.keySet()); - } - } - - if (!isMultipart) { - names = request.getParameterNames(); - } - - while (names.hasMoreElements()) { - String name = (String) names.nextElement(); - String stripped = name; - - if (prefix != null) { - if (!stripped.startsWith(prefix)) { - continue; - } - - stripped = stripped.substring(prefix.length()); - } - - if (suffix != null) { - if (!stripped.endsWith(suffix)) { - continue; - } - - stripped = - stripped.substring(0, stripped.length() - suffix.length()); - } - - Object parameterValue = null; - - if (isMultipart) { - parameterValue = multipartParameters.get(name); - parameterValue = rationalizeMultipleFileProperty(bean, name, parameterValue); - } else { - parameterValue = request.getParameterValues(name); - } - - // Populate parameters, except "standard" struts attributes - // such as 'org.apache.struts.action.CANCEL' - if (!(stripped.startsWith("org.apache.struts."))) { - properties.put(stripped, parameterValue); - } - } - - // Set the corresponding properties of our bean - try { - BeanUtils.populate(bean, properties); - } catch (Exception e) { - throw new ServletException("BeanUtils.populate", e); - } finally { - if (multipartHandler != null) { - // Set the multipart request handler for our ActionForm. - // If the bean isn't an ActionForm, an exception would have been - // thrown earlier, so it's safe to assume that our bean is - // in fact an ActionForm. - ((ActionForm) bean).setMultipartRequestHandler(multipartHandler); - } - } - } - - /** - *

    If the given form bean can accept multiple FormFile objects but the user only uploaded a single, then - * the property will not match the form bean type. This method performs some simple checks to try to accommodate - * that situation.

    - * @param bean - * @param name - * @param parameterValue - * @return - * @throws ServletException if the introspection has any errors. - */ - private static Object rationalizeMultipleFileProperty(Object bean, String name, Object parameterValue) throws ServletException { - if (!(parameterValue instanceof FormFile)) return parameterValue; - - FormFile formFileValue = (FormFile) parameterValue; - try { - Class propertyType = PropertyUtils.getPropertyType(bean, name); - - if (propertyType.isAssignableFrom(List.class)) { - ArrayList list = new ArrayList(1); - list.add(formFileValue); - return list; - } - - if (propertyType.isArray() && propertyType.getComponentType().equals(FormFile.class)) { - return new FormFile[] { formFileValue }; - } - - } catch (IllegalAccessException e) { - throw new ServletException(e); - } catch (InvocationTargetException e) { - throw new ServletException(e); - } catch (NoSuchMethodException e) { - throw new ServletException(e); - } - - // no changes - return parameterValue; - - } - - /** - *

    Try to locate a multipart request handler for this request. First, - * look for a mapping-specific handler stored for us under an attribute. - * If one is not present, use the global multipart handler, if there is - * one.

    - * - * @param request The HTTP request for which the multipart handler should - * be found. - * @return the multipart handler to use, or null if none is found. - * @throws ServletException if any exception is thrown while attempting to - * locate the multipart handler. - */ - private static MultipartRequestHandler getMultipartHandler( - HttpServletRequest request) - throws ServletException { - MultipartRequestHandler multipartHandler = null; - String multipartClass = - (String) request.getAttribute(Globals.MULTIPART_KEY); - - request.removeAttribute(Globals.MULTIPART_KEY); - - // Try to initialize the mapping specific request handler - if (multipartClass != null) { - try { - multipartHandler = - (MultipartRequestHandler) applicationInstance(multipartClass); - } catch (ClassNotFoundException cnfe) { - log.error("MultipartRequestHandler class \"" + multipartClass - + "\" in mapping class not found, " - + "defaulting to global multipart class"); - } catch (InstantiationException ie) { - log.error("InstantiationException when instantiating " - + "MultipartRequestHandler \"" + multipartClass + "\", " - + "defaulting to global multipart class, exception: " - + ie.getMessage()); - } catch (IllegalAccessException iae) { - log.error("IllegalAccessException when instantiating " - + "MultipartRequestHandler \"" + multipartClass + "\", " - + "defaulting to global multipart class, exception: " - + iae.getMessage()); - } - - if (multipartHandler != null) { - return multipartHandler; - } - } - - ModuleConfig moduleConfig = - ModuleUtils.getInstance().getModuleConfig(request); - - multipartClass = moduleConfig.getControllerConfig().getMultipartClass(); - - // Try to initialize the global request handler - if (multipartClass != null) { - try { - multipartHandler = - (MultipartRequestHandler) applicationInstance(multipartClass); - } catch (ClassNotFoundException cnfe) { - throw new ServletException("Cannot find multipart class \"" - + multipartClass + "\"" + ", exception: " - + cnfe.getMessage()); - } catch (InstantiationException ie) { - throw new ServletException( - "InstantiationException when instantiating " - + "multipart class \"" + multipartClass + "\", exception: " - + ie.getMessage()); - } catch (IllegalAccessException iae) { - throw new ServletException( - "IllegalAccessException when instantiating " - + "multipart class \"" + multipartClass + "\", exception: " - + iae.getMessage()); - } - - if (multipartHandler != null) { - return multipartHandler; - } - } - - return multipartHandler; - } - - /** - *

    Create a Map containing all of the parameters supplied - * for a multipart request, keyed by parameter name. In addition to text - * and file elements from the multipart body, query string parameters are - * included as well.

    - * - * @param request The (wrapped) HTTP request whose parameters are - * to be added to the map. - * @param multipartHandler The multipart handler used to parse the - * request. - * @return the map containing all parameters for this multipart request. - */ - private static Map getAllParametersForMultipartRequest( - HttpServletRequest request, MultipartRequestHandler multipartHandler) { - Map parameters = new HashMap(); - Hashtable elements = multipartHandler.getAllElements(); - Enumeration e = elements.keys(); - - while (e.hasMoreElements()) { - String key = (String) e.nextElement(); - - parameters.put(key, elements.get(key)); - } - - if (request instanceof MultipartRequestWrapper) { - request = - (HttpServletRequest) ((MultipartRequestWrapper) request) - .getRequest(); - e = request.getParameterNames(); - - while (e.hasMoreElements()) { - String key = (String) e.nextElement(); - - parameters.put(key, request.getParameterValues(key)); - } - } else { - log.debug("Gathering multipart parameters for unwrapped request"); - } - - return parameters; - } - - /** - *

    Compute the printable representation of a URL, leaving off the - * scheme/host/port part if no host is specified. This will typically be - * the case for URLs that were originally created from relative or - * context-relative URIs.

    - * - * @param url URL to render in a printable representation - * @return printable representation of a URL - */ - public static String printableURL(URL url) { - if (url.getHost() != null) { - return (url.toString()); - } - - String file = url.getFile(); - String ref = url.getRef(); - - if (ref == null) { - return (file); - } else { - StringBuffer sb = new StringBuffer(file); - - sb.append('#'); - sb.append(ref); - - return (sb.toString()); - } - } - - /** - *

    Return the context-relative URL that corresponds to the specified - * {@link ActionConfig}, relative to the module associated with the - * current modules's {@link ModuleConfig}.

    - * - * @param request The servlet request we are processing - * @param action ActionConfig to be evaluated - * @param pattern URL pattern used to map the controller servlet - * @return context-relative URL relative to the module - * @since Struts 1.1 - */ - public static String actionURL(HttpServletRequest request, - ActionConfig action, String pattern) { - StringBuffer sb = new StringBuffer(); - - if (pattern.endsWith("/*")) { - sb.append(pattern.substring(0, pattern.length() - 2)); - sb.append(action.getPath()); - } else if (pattern.startsWith("*.")) { - ModuleConfig appConfig = - ModuleUtils.getInstance().getModuleConfig(request); - - sb.append(appConfig.getPrefix()); - sb.append(action.getPath()); - sb.append(pattern.substring(1)); - } else { - throw new IllegalArgumentException(pattern); - } - - return sb.toString(); - } - - /** - *

    Return the context-relative URL that corresponds to the specified - * ForwardConfig. The URL is calculated based on the - * properties of the {@link ForwardConfig} instance as follows:

    - * - *
      - * - * - *
    • If the contextRelative property is set, it is assumed - * that the path property contains a path that is already - * context-relative: - * - *
        - * - *
      • If the path property value starts with a slash, it is - * returned unmodified.
      • If the path property value - * does not start with a slash, a slash is prepended.
      • - * - *
    • - * - *
    • Acquire the forwardPattern property from the - * ControllerConfig for the application module used to - * process this request. If no pattern was configured, default to a - * pattern of $M$P, which is compatible with the hard-coded - * mapping behavior in Struts 1.0.
    • - * - *
    • Process the acquired forwardPattern, performing the - * following substitutions: - * - *
        - * - *
      • $M - Replaced by the module prefix for the - * application module processing this request.
      • - * - *
      • $P - Replaced by the path property of - * the specified {@link ForwardConfig}, prepended with a slash if it does - * not start with one.
      • - * - *
      • $$ - Replaced by a single dollar sign - * character.
      • - * - *
      • $x (where "x" is any charater not listed above) - - * Silently omit these two characters from the result value. (This has - * the side effect of causing all other $+letter combinations to be - * reserved.)
      • - * - *
    • - * - *
    - * - * @param request The servlet request we are processing - * @param forward ForwardConfig to be evaluated - * @return context-relative URL - * @since Struts 1.1 - */ - public static String forwardURL(HttpServletRequest request, - ForwardConfig forward) { - return forwardURL(request, forward, null); - } - - /** - *

    Return the context-relative URL that corresponds to the specified - * ForwardConfig. The URL is calculated based on the - * properties of the {@link ForwardConfig} instance as follows:

    - * - *
      - * - *
    • If the contextRelative property is set, it is assumed - * that the path property contains a path that is already - * context-relative:
        - * - *
      • If the path property value starts with a slash, it is - * returned unmodified.
      • If the path property value - * does not start with a slash, a slash is prepended.
      • - * - *
    • - * - *
    • Acquire the forwardPattern property from the - * ControllerConfig for the application module used to - * process this request. If no pattern was configured, default to a - * pattern of $M$P, which is compatible with the hard-coded - * mapping behavior in Struts 1.0.
    • - * - *
    • Process the acquired forwardPattern, performing the - * following substitutions:
      • $M - Replaced by the - * module prefix for the application module processing this request.
      • - * - *
      • $P - Replaced by the path property of - * the specified {@link ForwardConfig}, prepended with a slash if it does - * not start with one.
      • - * - *
      • $$ - Replaced by a single dollar sign - * character.
      • - * - *
      • $x (where "x" is any charater not listed above) - - * Silently omit these two characters from the result value. (This has - * the side effect of causing all other $+letter combinations to be - * reserved.)
      • - * - *
    - * - * @param request The servlet request we are processing - * @param forward ForwardConfig to be evaluated - * @param moduleConfig Base forward on this module config. - * @return context-relative URL - * @since Struts 1.2 - */ - public static String forwardURL(HttpServletRequest request, - ForwardConfig forward, ModuleConfig moduleConfig) { - //load the current moduleConfig, if null - if (moduleConfig == null) { - moduleConfig = ModuleUtils.getInstance().getModuleConfig(request); - } - - String path = forward.getPath(); - - //load default prefix - String prefix = moduleConfig.getPrefix(); - - //override prefix if supplied by forward - if (forward.getModule() != null) { - prefix = forward.getModule(); - - if ("/".equals(prefix)) { - prefix = ""; - } - } - - StringBuffer sb = new StringBuffer(); - - // Calculate a context relative path for this ForwardConfig - String forwardPattern = - moduleConfig.getControllerConfig().getForwardPattern(); - - if (forwardPattern == null) { - // Performance optimization for previous default behavior - sb.append(prefix); - - // smoothly insert a '/' if needed - if (!path.startsWith("/")) { - sb.append("/"); - } - - sb.append(path); - } else { - boolean dollar = false; - - for (int i = 0; i < forwardPattern.length(); i++) { - char ch = forwardPattern.charAt(i); - - if (dollar) { - switch (ch) { - case 'M': - sb.append(prefix); - - break; - - case 'P': - - // add '/' if needed - if (!path.startsWith("/")) { - sb.append("/"); - } - - sb.append(path); - - break; - - case '$': - sb.append('$'); - - break; - - default: - ; // Silently swallow - } - - dollar = false; - - continue; - } else if (ch == '$') { - dollar = true; - } else { - sb.append(ch); - } - } - } - - return (sb.toString()); - } - - /** - *

    Return the URL representing the current request. This is equivalent - * to HttpServletRequest.getRequestURL in Servlet 2.3.

    - * - * @param request The servlet request we are processing - * @return URL representing the current request - * @throws MalformedURLException if a URL cannot be created - */ - public static URL requestURL(HttpServletRequest request) - throws MalformedURLException { - StringBuffer url = requestToServerUriStringBuffer(request); - - return (new URL(url.toString())); - } - - /** - *

    Return the URL representing the scheme, server, and port number of - * the current request. Server-relative URLs can be created by simply - * appending the server-relative path (starting with '/') to this.

    - * - * @param request The servlet request we are processing - * @return URL representing the scheme, server, and port number of the - * current request - * @throws MalformedURLException if a URL cannot be created - */ - public static URL serverURL(HttpServletRequest request) - throws MalformedURLException { - StringBuffer url = requestToServerStringBuffer(request); - - return (new URL(url.toString())); - } - - /** - *

    Return the string representing the scheme, server, and port number - * of the current request. Server-relative URLs can be created by simply - * appending the server-relative path (starting with '/') to this.

    - * - * @param request The servlet request we are processing - * @return URL representing the scheme, server, and port number of the - * current request - * @since Struts 1.2.0 - */ - public static StringBuffer requestToServerUriStringBuffer( - HttpServletRequest request) { - StringBuffer serverUri = - createServerUriStringBuffer(request.getScheme(), - request.getServerName(), request.getServerPort(), - request.getRequestURI()); - - return serverUri; - } - - /** - *

    Return StringBuffer representing the scheme, server, - * and port number of the current request. Server-relative URLs can be - * created by simply appending the server-relative path (starting with - * '/') to this.

    - * - * @param request The servlet request we are processing - * @return URL representing the scheme, server, and port number of the - * current request - * @since Struts 1.2.0 - */ - public static StringBuffer requestToServerStringBuffer( - HttpServletRequest request) { - return createServerStringBuffer(request.getScheme(), - request.getServerName(), request.getServerPort()); - } - - /** - *

    Return StringBuffer representing the scheme, server, - * and port number of the current request.

    - * - * @param scheme The scheme name to use - * @param server The server name to use - * @param port The port value to use - * @return StringBuffer in the form scheme: server: port - * @since Struts 1.2.0 - */ - public static StringBuffer createServerStringBuffer(String scheme, - String server, int port) { - StringBuffer url = new StringBuffer(); - - if (port < 0) { - port = 80; // Work around java.net.URL bug - } - - url.append(scheme); - url.append("://"); - url.append(server); - - if ((scheme.equals("http") && (port != 80)) - || (scheme.equals("https") && (port != 443))) { - url.append(':'); - url.append(port); - } - - return url; - } - - /** - *

    Return StringBuffer representing the scheme, server, - * and port number of the current request.

    - * - * @param scheme The scheme name to use - * @param server The server name to use - * @param port The port value to use - * @param uri The uri value to use - * @return StringBuffer in the form scheme: server: port - * @since Struts 1.2.0 - */ - public static StringBuffer createServerUriStringBuffer(String scheme, - String server, int port, String uri) { - StringBuffer serverUri = createServerStringBuffer(scheme, server, port); - - serverUri.append(uri); - - return serverUri; - } - - /** - *

    Returns the true path of the destination action if the specified forward - * is an action-aliased URL. This method version forms the URL based on - * the current request; selecting the current module if the forward does not - * explicitly contain a module path.

    - * - * @param forward the forward config - * @param request the current request - * @param servlet the servlet handling the current request - * @return the context-relative URL of the action if the forward has an action identifier; otherwise null. - * @since Struts 1.3.6 - */ - public static String actionIdURL(ForwardConfig forward, HttpServletRequest request, ActionServlet servlet) { - ModuleConfig moduleConfig = null; - if (forward.getModule() != null) { - String prefix = forward.getModule(); - moduleConfig = ModuleUtils.getInstance().getModuleConfig(prefix, servlet.getServletContext()); - } else { - moduleConfig = ModuleUtils.getInstance().getModuleConfig(request); - } - return actionIdURL(forward.getPath(), moduleConfig, servlet); - } - - /** - *

    Returns the true path of the destination action if the specified forward - * is an action-aliased URL. This method version forms the URL based on - * the specified module. - * - * @param originalPath the action-aliased path - * @param moduleConfig the module config for this request - * @param servlet the servlet handling the current request - * @return the context-relative URL of the action if the path has an action identifier; otherwise null. - * @since Struts 1.3.6 - */ - public static String actionIdURL(String originalPath, ModuleConfig moduleConfig, ActionServlet servlet) { - if (originalPath.startsWith("http") || originalPath.startsWith("/")) { - return null; - } - - // Split the forward path into the resource and query string; - // it is possible a forward (or redirect) has added parameters. - String actionId = null; - String qs = null; - int qpos = originalPath.indexOf("?"); - if (qpos == -1) { - actionId = originalPath; - } else { - actionId = originalPath.substring(0, qpos); - qs = originalPath.substring(qpos); - } - - // Find the action of the given actionId - ActionConfig actionConfig = moduleConfig.findActionConfigId(actionId); - if (actionConfig == null) { - if (log.isDebugEnabled()) { - log.debug("No actionId found for " + actionId); - } - return null; - } - - String path = actionConfig.getPath(); - String mapping = RequestUtils.getServletMapping(servlet); - StringBuffer actionIdPath = new StringBuffer(); - - // Form the path based on the servlet mapping pattern - if (mapping.startsWith("*")) { - actionIdPath.append(path); - actionIdPath.append(mapping.substring(1)); - } else if (mapping.startsWith("/")) { // implied ends with a * - mapping = mapping.substring(0, mapping.length() - 1); - if (mapping.endsWith("/") && path.startsWith("/")) { - actionIdPath.append(mapping); - actionIdPath.append(path.substring(1)); - } else { - actionIdPath.append(mapping); - actionIdPath.append(path); - } - } else { - log.warn("Unknown servlet mapping pattern"); - actionIdPath.append(path); - } - - // Lastly add any query parameters (the ? is part of the query string) - if (qs != null) { - actionIdPath.append(qs); - } - - // Return the path - if (log.isDebugEnabled()) { - log.debug(originalPath + " unaliased to " + actionIdPath.toString()); - } - return actionIdPath.toString(); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ResponseUtils.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ResponseUtils.java deleted file mode 100644 index ca77d382b6f..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ResponseUtils.java +++ /dev/null @@ -1,183 +0,0 @@ -/* - * $Id: ResponseUtils.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -import java.net.URLEncoder; - -/** - * General purpose utility methods related to generating a servlet response in - * the Struts controller framework. - * - * @version $Rev: 471754 $ $Date: 2005-08-21 14:46:28 -0400 (Sun, 21 Aug 2005) - * $ - */ -public class ResponseUtils { - // ------------------------------------------------------- Static Variables - - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources( - "org.apache.struts.util.LocalStrings"); - - /** - * Java 1.4 encode method to use instead of deprecated 1.3 version. - */ - private static Method encode = null; - - /** - * Commons logging instance. - */ - private static final Log log = LogFactory.getLog(ResponseUtils.class); - - /** - * Initialize the encode variable with the - * Java 1.4 method if available. - */ - static { - try { - // get version of encode method with two String args - Class[] args = new Class[] { String.class, String.class }; - - encode = URLEncoder.class.getMethod("encode", args); - } catch (NoSuchMethodException e) { - log.debug("Could not find Java 1.4 encode method. Using deprecated version.", - e); - } - } - - // --------------------------------------------------------- Public Methods - - /** - * Filter the specified string for characters that are senstive to HTML - * interpreters, returning the string with these characters replaced by - * the corresponding character entities. - * - * @param value The string to be filtered and returned - */ - public static String filter(String value) { - if ((value == null) || (value.length() == 0)) { - return value; - } - - StringBuffer result = null; - String filtered = null; - - for (int i = 0; i < value.length(); i++) { - filtered = null; - - switch (value.charAt(i)) { - case '<': - filtered = "<"; - - break; - - case '>': - filtered = ">"; - - break; - - case '&': - filtered = "&"; - - break; - - case '"': - filtered = """; - - break; - - case '\'': - filtered = "'"; - - break; - } - - if (result == null) { - if (filtered != null) { - result = new StringBuffer(value.length() + 50); - - if (i > 0) { - result.append(value.substring(0, i)); - } - - result.append(filtered); - } - } else { - if (filtered == null) { - result.append(value.charAt(i)); - } else { - result.append(filtered); - } - } - } - - return (result == null) ? value : result.toString(); - } - - /** - * URLencodes a string assuming the character encoding is UTF-8. - * - * @param url - * @return String The encoded url in UTF-8 - */ - public static String encodeURL(String url) { - return encodeURL(url, "UTF-8"); - } - - /** - * Use the new URLEncoder.encode() method from Java 1.4 if available, else - * use the old deprecated version. This method uses reflection to find - * the appropriate method; if the reflection operations throw exceptions, - * this will return the url encoded with the old URLEncoder.encode() - * method. - * - * @param enc The character encoding the urlencode is performed on. - * @return String The encoded url. - */ - public static String encodeURL(String url, String enc) { - try { - if ((enc == null) || (enc.length() == 0)) { - enc = "UTF-8"; - } - - // encode url with new 1.4 method and UTF-8 encoding - if (encode != null) { - return (String) encode.invoke(null, new Object[] { url, enc }); - } - } catch (IllegalAccessException e) { - log.debug("Could not find Java 1.4 encode method. Using deprecated version.", - e); - } catch (InvocationTargetException e) { - log.debug("Could not find Java 1.4 encode method. Using deprecated version.", - e); - } - - return URLEncoder.encode(url); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ServletContextWriter.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ServletContextWriter.java deleted file mode 100644 index cd41a6b5f84..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/ServletContextWriter.java +++ /dev/null @@ -1,364 +0,0 @@ -/* - * $Id: ServletContextWriter.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import javax.servlet.ServletContext; - -import java.io.PrintWriter; -import java.io.StringWriter; - -/** - * A PrintWriter implementation that uses the logging facilities of a - * javax.servlet.ServletContext to output its results. Output - * will be buffered until a newline character is output, flush() - * is called, or until one of the println() methods is called. - * Along the way, carriage return characters are skipped. - * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - */ -public class ServletContextWriter extends PrintWriter { - // ------------------------------------------------------------- Properties - - /** - * The buffer into which we accumulate lines to be logged. - */ - protected StringBuffer buffer = new StringBuffer(); - - /** - * The servlet context with which we are associated. - */ - protected ServletContext context = null; - - /** - * The error state for this stream. - */ - protected boolean error = false; - - // ----------------------------------------------------------- Constructors - - /** - * Construct a ServletContextWriter associated with the specified - * ServletContext instance. - * - * @param context The associated servlet context - */ - public ServletContextWriter(ServletContext context) { - super(new StringWriter()); - this.context = context; - } - - // --------------------------------------------------------- Public Methods - - /** - * Flush the stream and check for its error state. IMPLEMENTATION - * NOTE - our associated servlet context gives no indication of - * problems with logging, so the only way this method will return - * true is if setError() is called. - */ - public boolean checkError() { - flush(); - - return (error); - } - - /** - * Close the stream. - */ - public void close() { - flush(); - } - - /** - * Flush the stream. - */ - public void flush() { - if (buffer.length() > 0) { - context.log(buffer.toString()); - buffer.setLength(0); - } - } - - /** - * Print a boolean value. - * - * @param b The value to be printed - */ - public void print(boolean b) { - write(String.valueOf(b)); - } - - /** - * Print a character value. - * - * @param c The value to be printed - */ - public void print(char c) { - write(c); - } - - /** - * Print a character array. - * - * @param c The character array to be printed - */ - public void print(char[] c) { - for (int i = 0; i < c.length; i++) { - write(c[i]); - } - } - - /** - * Print a double value. - * - * @param d The value to be printed - */ - public void print(double d) { - write(String.valueOf(d)); - } - - /** - * Print a float value. - * - * @param f The value to be printed - */ - public void print(float f) { - write(String.valueOf(f)); - } - - /** - * Print an integer value. - * - * @param i The value to be printed - */ - public void print(int i) { - write(String.valueOf(i)); - } - - /** - * Print a long value. - * - * @param l The value to be printed - */ - public void print(long l) { - write(String.valueOf(l)); - } - - /** - * Print an object. - * - * @param o The value to be printed - */ - public void print(Object o) { - write(o.toString()); - } - - /** - * Print a String value. - * - * @param s The value to be printed - */ - public void print(String s) { - int len = s.length(); - - for (int i = 0; i < len; i++) { - write(s.charAt(i)); - } - } - - /** - * Terminate the current line and flush the buffer. - */ - public void println() { - flush(); - } - - /** - * Print a boolean value and terminate the line. - * - * @param b The value to be printed - */ - public void println(boolean b) { - println(String.valueOf(b)); - } - - /** - * Print a character value and terminate the line. - * - * @param c The value to be printed - */ - public void println(char c) { - write(c); - println(); - } - - /** - * Print a character array and terminate the line. - * - * @param c The character array to be printed - */ - public void println(char[] c) { - for (int i = 0; i < c.length; i++) { - print(c[i]); - } - - println(); - } - - /** - * Print a double value and terminate the line. - * - * @param d The value to be printed - */ - public void println(double d) { - println(String.valueOf(d)); - } - - /** - * Print a float value and terminate the line. - * - * @param f The value to be printed - */ - public void println(float f) { - println(String.valueOf(f)); - } - - /** - * Print an integer value and terminate the line. - * - * @param i The value to be printed - */ - public void println(int i) { - println(String.valueOf(i)); - } - - /** - * Print a long value and terminate the line. - * - * @param l The value to be printed - */ - public void println(long l) { - println(String.valueOf(l)); - } - - /** - * Print an object and terminate the line. - * - * @param o The value to be printed - */ - public void println(Object o) { - println(o.toString()); - } - - /** - * Print a String value and terminate the line. - * - * @param s The value to be printed - */ - public void println(String s) { - int len = s.length(); - - for (int i = 0; i < len; i++) { - print(s.charAt(i)); - } - - println(); - } - - /** - * Set the error state for this stream. - */ - public void setError() { - this.error = true; - } - - /** - * Write a single character to this stream. - * - * @param c The character to be written - */ - public void write(char c) { - if (c == '\n') { - flush(); - } else if (c != '\r') { - buffer.append(c); - } - } - - /** - * Write a single character to this stream. - * - * @param c The character to be written - */ - public void write(int c) { - write((char) c); - } - - /** - * Write an array of charaters to this stream. - * - * @param buf The character array to be written - */ - public void write(char[] buf) { - for (int i = 0; i < buf.length; i++) { - write(buf[i]); - } - } - - /** - * Write the specified subset of an array of characters to this stream. - * - * @param buf The character array from which to write - * @param off The zero-relative starting offset to write - * @param len The number of characters to write - */ - public void write(char[] buf, int off, int len) { - for (int i = off; i < len; i++) { - write(buf[i]); - } - } - - /** - * Write a String to this stream. - * - * @param s The string to be written - */ - public void write(String s) { - int len = s.length(); - - for (int i = 0; i < len; i++) { - write(s.charAt(i)); - } - } - - /** - * Write the specified portion of a String to this stream. - * - * @param s The String from which to write - * @param off The zero-relative starting offset to write - * @param len The number of characters to write - */ - public void write(String s, int off, int len) { - for (int i = off; i < len; i++) { - write(s.charAt(i)); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/TokenProcessor.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/TokenProcessor.java deleted file mode 100644 index 1c619ef0b50..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/TokenProcessor.java +++ /dev/null @@ -1,231 +0,0 @@ -/* - * $Id: TokenProcessor.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import org.apache.struts.Globals; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; - -/** - * TokenProcessor is responsible for handling all token related functionality. - * The methods in this class are synchronized to protect token processing from - * multiple threads. Servlet containers are allowed to return a different - * HttpSession object for two threads accessing the same session so it is not - * possible to synchronize on the session. - * - * @since Struts 1.1 - */ -public class TokenProcessor { - /** - * The singleton instance of this class. - */ - private static TokenProcessor instance = new TokenProcessor(); - - /** - * The timestamp used most recently to generate a token value. - */ - private long previous; - - /** - * Protected constructor for TokenProcessor. Use TokenProcessor.getInstance() - * to obtain a reference to the processor. - */ - protected TokenProcessor() { - super(); - } - - /** - * Retrieves the singleton instance of this class. - */ - public static TokenProcessor getInstance() { - return instance; - } - - /** - *

    Return true if there is a transaction token stored in - * the user's current session, and the value submitted as a request - * parameter with this action matches it. Returns false - * under any of the following circumstances:

    - * - *
      - * - *
    • No session associated with this request
    • - * - *
    • No transaction token saved in the session
    • - * - *
    • No transaction token included as a request parameter
    • - * - *
    • The included transaction token value does not match the transaction - * token in the user's session
    • - * - *
    - * - * @param request The servlet request we are processing - */ - public synchronized boolean isTokenValid(HttpServletRequest request) { - return this.isTokenValid(request, false); - } - - /** - * Return true if there is a transaction token stored in the - * user's current session, and the value submitted as a request parameter - * with this action matches it. Returns false - * - *
      - * - *
    • No session associated with this request
    • No transaction - * token saved in the session
    • - * - *
    • No transaction token included as a request parameter
    • - * - *
    • The included transaction token value does not match the transaction - * token in the user's session
    • - * - *
    - * - * @param request The servlet request we are processing - * @param reset Should we reset the token after checking it? - */ - public synchronized boolean isTokenValid(HttpServletRequest request, - boolean reset) { - // Retrieve the current session for this request - HttpSession session = request.getSession(false); - - if (session == null) { - return false; - } - - // Retrieve the transaction token from this session, and - // reset it if requested - String saved = - (String) session.getAttribute(Globals.TRANSACTION_TOKEN_KEY); - - if (saved == null) { - return false; - } - - if (reset) { - this.resetToken(request); - } - - // Retrieve the transaction token included in this request - String token = request.getParameter(Globals.TOKEN_KEY); - - if (token == null) { - return false; - } - - return saved.equals(token); - } - - /** - * Reset the saved transaction token in the user's session. This - * indicates that transactional token checking will not be needed on the - * next request that is submitted. - * - * @param request The servlet request we are processing - */ - public synchronized void resetToken(HttpServletRequest request) { - HttpSession session = request.getSession(false); - - if (session == null) { - return; - } - - session.removeAttribute(Globals.TRANSACTION_TOKEN_KEY); - } - - /** - * Save a new transaction token in the user's current session, creating a - * new session if necessary. - * - * @param request The servlet request we are processing - */ - public synchronized void saveToken(HttpServletRequest request) { - HttpSession session = request.getSession(); - String token = generateToken(request); - - if (token != null) { - session.setAttribute(Globals.TRANSACTION_TOKEN_KEY, token); - } - } - - /** - * Generate a new transaction token, to be used for enforcing a single - * request for a particular transaction. - * - * @param request The request we are processing - */ - public synchronized String generateToken(HttpServletRequest request) { - HttpSession session = request.getSession(); - - return generateToken(session.getId()); - } - - /** - * Generate a new transaction token, to be used for enforcing a single - * request for a particular transaction. - * - * @param id a unique Identifier for the session or other context in which - * this token is to be used. - */ - public synchronized String generateToken(String id) { - try { - long current = System.currentTimeMillis(); - - if (current == previous) { - current++; - } - - previous = current; - - byte[] now = new Long(current).toString().getBytes(); - MessageDigest md = MessageDigest.getInstance("MD5"); - - md.update(id.getBytes()); - md.update(now); - - return toHex(md.digest()); - } catch (NoSuchAlgorithmException e) { - return null; - } - } - - /** - * Convert a byte array to a String of hexadecimal digits and return it. - * - * @param buffer The byte array to be converted - */ - private String toHex(byte[] buffer) { - StringBuffer sb = new StringBuffer(buffer.length * 2); - - for (int i = 0; i < buffer.length; i++) { - sb.append(Character.forDigit((buffer[i] & 0xf0) >> 4, 16)); - sb.append(Character.forDigit(buffer[i] & 0x0f, 16)); - } - - return sb.toString(); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/WildcardHelper.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/WildcardHelper.java deleted file mode 100644 index 60ca42fc7ff..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/WildcardHelper.java +++ /dev/null @@ -1,459 +0,0 @@ -/* - * $Id: WildcardHelper.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import java.util.Map; - -/** - * This class is an utility class that perform wilcard-patterns matching and - * isolation taken from Apache Cocoon. - * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - * @since Struts 1.2 - */ -public class WildcardHelper { - /** - * The int representing '*' in the pattern int []. - */ - protected static final int MATCH_FILE = -1; - - /** - * The int representing '**' in the pattern int []. - */ - protected static final int MATCH_PATH = -2; - - /** - * The int representing begin in the pattern int []. - */ - protected static final int MATCH_BEGIN = -4; - - /** - * The int representing end in pattern int []. - */ - protected static final int MATCH_THEEND = -5; - - /** - * The int value that terminates the pattern int []. - */ - protected static final int MATCH_END = -3; - - /** - *

    Translate the given String into a int [] - * representing the pattern matchable by this class.
    This function - * translates a String into an int array converting the - * special '*' and '\' characters.
    Here is how the conversion - * algorithm works:

    - * - *
      - * - *
    • The '*' character is converted to MATCH_FILE, meaning that zero or - * more characters (excluding the path separator '/') are to be - * matched.
    • - * - *
    • The '**' sequence is converted to MATCH_PATH, meaning that zero or - * more characters (including the path separator '/') are to be - * matched.
    • - * - *
    • The '\' character is used as an escape sequence ('\*' is translated - * in '*', not in MATCH_FILE). If an exact '\' character is to be matched - * the source string must contain a '\\'. sequence.
    • - * - *
    - * - *

    When more than two '*' characters, not separated by another - * character, are found their value is considered as '**' (MATCH_PATH). - *
    The array is always terminated by a special value (MATCH_END). - *
    All MATCH* values are less than zero, while normal characters are - * equal or greater.

    - * - * @param data The string to translate. - * @return The encoded string as an int array, terminated by the MATCH_END - * value (don't consider the array length). - * @throws NullPointerException If data is null. - */ - public int[] compilePattern(String data) { - // Prepare the arrays - int[] expr = new int[data.length() + 2]; - char[] buff = data.toCharArray(); - - // Prepare variables for the translation loop - int y = 0; - boolean slash = false; - - // Must start from beginning - expr[y++] = MATCH_BEGIN; - - if (buff.length > 0) { - if (buff[0] == '\\') { - slash = true; - } else if (buff[0] == '*') { - expr[y++] = MATCH_FILE; - } else { - expr[y++] = buff[0]; - } - - // Main translation loop - for (int x = 1; x < buff.length; x++) { - // If the previous char was '\' simply copy this char. - if (slash) { - expr[y++] = buff[x]; - slash = false; - - // If the previous char was not '\' we have to do a bunch of - // checks - } else { - // If this char is '\' declare that and continue - if (buff[x] == '\\') { - slash = true; - - // If this char is '*' check the previous one - } else if (buff[x] == '*') { - // If the previous character als was '*' match a path - if (expr[y - 1] <= MATCH_FILE) { - expr[y - 1] = MATCH_PATH; - } else { - expr[y++] = MATCH_FILE; - } - } else { - expr[y++] = buff[x]; - } - } - } - } - - // Must match end at the end - expr[y] = MATCH_THEEND; - - return expr; - } - - /** - * Match a pattern agains a string and isolates wildcard replacement into - * a Stack. - * - * @param map The map to store matched values - * @param data The string to match - * @param expr The compiled wildcard expression - * @return True if a match - * @throws NullPointerException If any parameters are null - */ - public boolean match(Map map, String data, int[] expr) { - if (map == null) { - throw new NullPointerException("No map provided"); - } - - if (data == null) { - throw new NullPointerException("No data provided"); - } - - if (expr == null) { - throw new NullPointerException("No pattern expression provided"); - } - - char[] buff = data.toCharArray(); - - // Allocate the result buffer - char[] rslt = new char[expr.length + buff.length]; - - // The previous and current position of the expression character - // (MATCH_*) - int charpos = 0; - - // The position in the expression, input, translation and result arrays - int exprpos = 0; - int buffpos = 0; - int rsltpos = 0; - int offset = -1; - - // The matching count - int mcount = 0; - - // We want the complete data be in {0} - map.put(Integer.toString(mcount), data); - - // First check for MATCH_BEGIN - boolean matchBegin = false; - - if (expr[charpos] == MATCH_BEGIN) { - matchBegin = true; - exprpos = ++charpos; - } - - // Search the fist expression character (except MATCH_BEGIN - already - // skipped) - while (expr[charpos] >= 0) { - charpos++; - } - - // The expression charater (MATCH_*) - int exprchr = expr[charpos]; - - while (true) { - // Check if the data in the expression array before the current - // expression character matches the data in the input buffer - if (matchBegin) { - if (!matchArray(expr, exprpos, charpos, buff, buffpos)) { - return (false); - } - - matchBegin = false; - } else { - offset = indexOfArray(expr, exprpos, charpos, buff, buffpos); - - if (offset < 0) { - return (false); - } - } - - // Check for MATCH_BEGIN - if (matchBegin) { - if (offset != 0) { - return (false); - } - - matchBegin = false; - } - - // Advance buffpos - buffpos += (charpos - exprpos); - - // Check for END's - if (exprchr == MATCH_END) { - if (rsltpos > 0) { - map.put(Integer.toString(++mcount), - new String(rslt, 0, rsltpos)); - } - - // Don't care about rest of input buffer - return (true); - } else if (exprchr == MATCH_THEEND) { - if (rsltpos > 0) { - map.put(Integer.toString(++mcount), - new String(rslt, 0, rsltpos)); - } - - // Check that we reach buffer's end - return (buffpos == buff.length); - } - - // Search the next expression character - exprpos = ++charpos; - - while (expr[charpos] >= 0) { - charpos++; - } - - int prevchr = exprchr; - - exprchr = expr[charpos]; - - // We have here prevchr == * or **. - offset = - (prevchr == MATCH_FILE) - ? indexOfArray(expr, exprpos, charpos, buff, buffpos) - : lastIndexOfArray(expr, exprpos, charpos, buff, buffpos); - - if (offset < 0) { - return (false); - } - - // Copy the data from the source buffer into the result buffer - // to substitute the expression character - if (prevchr == MATCH_PATH) { - while (buffpos < offset) { - rslt[rsltpos++] = buff[buffpos++]; - } - } else { - // Matching file, don't copy '/' - while (buffpos < offset) { - if (buff[buffpos] == '/') { - return (false); - } - - rslt[rsltpos++] = buff[buffpos++]; - } - } - - map.put(Integer.toString(++mcount), new String(rslt, 0, rsltpos)); - rsltpos = 0; - } - } - - /** - * Get the offset of a part of an int array within a char array.
    This - * method return the index in d of the first occurrence after dpos of that - * part of array specified by r, starting at rpos and terminating at - * rend. - * - * @param r The array containing the data that need to be matched in - * d. - * @param rpos The index of the first character in r to look for. - * @param rend The index of the last character in r to look for plus 1. - * @param d The array of char that should contain a part of r. - * @param dpos The starting offset in d for the matching. - * @return The offset in d of the part of r matched in d or -1 if that was - * not found. - */ - protected int indexOfArray(int[] r, int rpos, int rend, char[] d, - int dpos) { - // Check if pos and len are legal - if (rend < rpos) { - throw new IllegalArgumentException("rend < rpos"); - } - - // If we need to match a zero length string return current dpos - if (rend == rpos) { - return (d.length); //?? dpos? - } - - // If we need to match a 1 char length string do it simply - if ((rend - rpos) == 1) { - // Search for the specified character - for (int x = dpos; x < d.length; x++) { - if (r[rpos] == d[x]) { - return (x); - } - } - } - - // Main string matching loop. It gets executed if the characters to - // match are less then the characters left in the d buffer - while (((dpos + rend) - rpos) <= d.length) { - // Set current startpoint in d - int y = dpos; - - // Check every character in d for equity. If the string is matched - // return dpos - for (int x = rpos; x <= rend; x++) { - if (x == rend) { - return (dpos); - } - - if (r[x] != d[y++]) { - break; - } - } - - // Increase dpos to search for the same string at next offset - dpos++; - } - - // The remaining chars in d buffer were not enough or the string - // wasn't matched - return (-1); - } - - /** - * Get the offset of a last occurance of an int array within a char array. - *
    This method return the index in d of the last occurrence after - * dpos of that part of array specified by r, starting at rpos and - * terminating at rend. - * - * @param r The array containing the data that need to be matched in - * d. - * @param rpos The index of the first character in r to look for. - * @param rend The index of the last character in r to look for plus 1. - * @param d The array of char that should contain a part of r. - * @param dpos The starting offset in d for the matching. - * @return The offset in d of the last part of r matched in d or -1 if - * that was not found. - */ - protected int lastIndexOfArray(int[] r, int rpos, int rend, char[] d, - int dpos) { - // Check if pos and len are legal - if (rend < rpos) { - throw new IllegalArgumentException("rend < rpos"); - } - - // If we need to match a zero length string return current dpos - if (rend == rpos) { - return (d.length); //?? dpos? - } - - // If we need to match a 1 char length string do it simply - if ((rend - rpos) == 1) { - // Search for the specified character - for (int x = d.length - 1; x > dpos; x--) { - if (r[rpos] == d[x]) { - return (x); - } - } - } - - // Main string matching loop. It gets executed if the characters to - // match are less then the characters left in the d buffer - int l = d.length - (rend - rpos); - - while (l >= dpos) { - // Set current startpoint in d - int y = l; - - // Check every character in d for equity. If the string is matched - // return dpos - for (int x = rpos; x <= rend; x++) { - if (x == rend) { - return (l); - } - - if (r[x] != d[y++]) { - break; - } - } - - // Decrease l to search for the same string at next offset - l--; - } - - // The remaining chars in d buffer were not enough or the string - // wasn't matched - return (-1); - } - - /** - * Matches elements of array r from rpos to rend with array d, starting - * from dpos.
    This method return true if elements of array r from - * rpos to rend equals elements of array d starting from dpos to - * dpos+(rend-rpos). - * - * @param r The array containing the data that need to be matched in - * d. - * @param rpos The index of the first character in r to look for. - * @param rend The index of the last character in r to look for. - * @param d The array of char that should start from a part of r. - * @param dpos The starting offset in d for the matching. - * @return true if array d starts from portion of array r. - */ - protected boolean matchArray(int[] r, int rpos, int rend, char[] d, - int dpos) { - if ((d.length - dpos) < (rend - rpos)) { - return (false); - } - - for (int i = rpos; i < rend; i++) { - if (r[i] != d[dpos++]) { - return (false); - } - } - - return (true); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/package.html b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/package.html deleted file mode 100644 index a009957199b..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/util/package.html +++ /dev/null @@ -1,379 +0,0 @@ - - - - Package Documentation for org.apache.struts.util Package - - - -The Utilities package provides a variety of families of classes, -to solve problems that are commonly encountered in building web applications. -

    - - - - -
    - - - -

    Introduction

    - -

    The Struts Utilities Package offers several families - of classes that assist in solving commonly encountered problems when - building - web applications. Most of the classes in this package do not rely on the - controller servlet framework, or the custom tag libraries, so they are - also - suitable for general Java application programming. The following families - are included:

    -
      -
    • Beans - A small set of utility beans useful - for - encapsulating form elements.
    • -
    • Servlet Utilities - A set of classes - useful - for working with servlet-related classes.
    • -
    • Message Resources - A family of classes - that - features access to internationalized message strings based on a - message - key coupled with a java.util.Locale object representing a - particular user's preferred language.
    • -
    - -
    - - - -

    Beans

    - -

    The ImageButtonBean is a simple JavaBean to encapsulate the - request parameters sent for an HTML input element of type image. The - LabelValueBean is a simple JavaBean to represent label-value - pairs, especially useful for html option elements. -

    - -
    - - - -

    Servlet Utilities

    - -

    The RequestUtils is a general purpose utility methods - related to processing a servlet request. The ResponseUtils - is a general purpose utility methods related to generating a servlet - response. The ServletContextWriter is a PrintWriter - implementation that uses the logging facilities of a - javax.servlet.ServletContext to output its results. -

    - -
    - - - -

    Message Resources

    - -
    Background
    - -

    Modern applications often include the requirement to support multiple - languages, for users who prefer to interact in a language other than the - default language configured on the server platform. In addition, sentences - often need to be constructed, with dynamic content whose placement in the - message depends on the standard sentence structure in that particular - language.

    - -

    The standard Java platform includes a family of classes - (java.util.ResourceBundle) designed to support looking up - message - strings based on a standard "key". The resource bundle classes - automatically - access a Java class (or properties file) that is named with a naming - convention that includes the Locale to which messages in that class (or - file) - pertain. However, this selection is based only on the default Locale of - the - server platform, and cannot be adjusted on a per-user basis as required - for an - internationalized web application.

    - -

    Struts includes a family of classes - (org.apache.struts.util.MessageResources) that extends the - basic - approach to looking up message strings by key, allowing you to optionally - specify a Locale along with the key. In this way, you can build - applications - that let your users select which Locale they wish to operate within, and - then - look up messages in that language - using the same message keys no matter - what - language is selected.

    - -

    In addition to supporting dynamic selection of a Locale for message lookup, - the MessageResources family of classes optionally allow you - to - specify up to four parameter replacement objects, which are used to - replace the - parameter placeholders "{0}" through "{3}" in the retrieved message. This - replacement uses the facilities of the standard Java - java.text.MessageFormat class, which supports many extended - formatting capabilities as well.

    - -

    For more information about internationalized messages, consult the - following - resources in your Java Development Kit documentation bundle:

    -
      -
    • Internationalization Info - General information on Java's - standard - support for internationalized applications can be found at - <$JAVA_HOME/docs/guide/internat/index.html>. - The "Internationalization Overview" section includes useful - information - about Locales, localized resources, message formatting, and other - relevant topics.
    • -
    • Internationalization Tutorial - The Java Language Tutorial - has a - comprehensive trail covering internationalization, available at: - - http://java.sun.com/docs/books/tutorial/i18n/index.html.
    • -
    • Javadoc APIs - You will want to consult the Javadoc API - documentation for the following standard Java classes: -
        -
      • java.text.MessageFormat -
      • java.util.ResourceBundle -
      • java.util.PropertyResourceBundle -
      • java.util.Properties - See the documentation for - the - load() method for the valid syntax of properties - files - that you prepare.
      • -
    • -
    - -
    Using the Standard MessageResources Implementation
    - -

    The standard MessageResources implementation provided by the - Struts library uses Java properties files to initialize message strings, - in a - manner very similar to that supported by the - java.util.PropertyResourceBundle class. The following steps - are - required to use these facilities in your Java application.

    - -

    First, prepare a Java properties file for each language (or Locale) in - which - you wish to support your messages. The filenames you use must conform to - the - naming convention for property resource bundles, as described in the - documentation referenced above. Be sure you use the same message keys in - each - file to identify the same message.

    - -

    For example, you might prepare files in French, Spanish, and English that - contain language-specific versions of the word "Hello". The French file - would - be named Messages_fr.properties and contain the following: -

    -
    -    hi=Bonjour
    -
    - -

    while the Spanish and English files would be named - Messages_es.properties and - Messages_en.properties - respectively. The corresponding message string definitions would say - hi=Hola and hi=Hello in these files.

    - -

    Second, place these properties files into the class path for your - application, exactly as you would with class files themselves. The name - actually used to load resources will look like a fully qualified Java - class - name (with appropriate package prefixes), so the file should be nested - inside - a directory structure that matches the packaging (either in an unpacked - directory, or within a JAR file, as appropriate). For example, assume you - place directory "foo" on your classpath, and stored the above properties - files - in directory "foo/com/mycompany/mypackage". (If you were using a JAR file - like - "foo.jar" instead, the files would be in directory - "com/mycompany/mypackage" - within the JAR file). - -

    Third, initialize a MessageResources object that corresponds - to the set of properties files for a particular name, within a particular - package. The easiest way to do this is to initialize a variable in your - main - application class, like this:

    -
    -    public static MessageResources messages =
    -    MessageResources.getMessageResources("com.mycompany.mypackage.Messages");
    -
    - -

    Note that the "com.mycompany.mypackage" part of the name matches the - package - directory into which you placed your properties files, and "Messages" is - the - filename prefix for the particular family of properties files supported by - this - MessageResources instance. Depending on your development - process, - you might find it convenient to store all message strings for an entire - application in a single properties file family, or to have several - families - - in Struts, for example, there is a family of properties files for each - Java - package.

    - -

    To access a message string with a particular Locale, execute a statement - like this:

    -
    -    Locale locale = ... select the locale to be used ...
    -    String message = messages.getMessage(locale, "hi");
    -
    - -

    In this case, the variable message will contain the message - string corresponding to the key "hi", in the language that corresponds to - the - locale that was selected.

    - -

    For an example of message formatting with replaceable parameters, assume - that the message strings looked like this, instead (only the English - version - is shown - corresponding changes would be made in the other files):

    -
    -    hi=Hello {0}
    -
    - -

    Now, you can personalize the retrieved message like this:

    -
    -    Locale locale = ... select the locale to be used ...
    -    String name = "Joe";
    -    String message = messages.getMessage(locale, "hi", name);
    -
    - -

    and the marker "{0}" will have been replaced by the specified name (Joe), - no matter which language is in use. See the JavaDoc API documentation for - the - java.text.MessageFormat class for more advanced uses of the - parameter replacement mechanism.

    - -
    Developing Your Own MessageResources Implementation
    - -

    In the above example, we were using the default - MessageResources implementation supplied by Struts, which - uses - property files to store the message strings. It is also possible to create - customized mechanisms to retrieve messages (such as loading them on demand - from a database). The steps required are as follows:

    -
      -
    • Create a customized subclass of - org.apache.struts.util.MessageResources that implements - message lookup operations as you require.
    • -
    • Create a customized subclass of - org.apache.struts.util.MessageResourcesFactory that will - create an instance of your custom MessageResources class - when the createResources method is called. Note that the - "config" argument to this method can be used to select families of - messages in any manner appropriate to your needs - you are not - required - to emulate the "fully qualified Java class name" approach that is used - by the standard PropertyMessageResourcesFactory class. -
    • -
    • Tell the MessageResourcesFactory class the name of the - customized MessageResourcesFactory implementation to use - when creating new factory instances.
    • -
    • Create a new factory instance.
    • -
    • Ask the new factory instance to create a MessageResources - instance for you.
    • -
    - -

    A code example that illustrates this technique is:

    -
    -    MessageResourcesFactory.setFactoryClass("com.mycompany.mypkg.MyFactory");
    -    MessageResourcesFactory factory = MessageResourcesFactory.createFactory();
    -    MessageResources resources =
    -    factory.createResources("configuration information");
    -
    - -

    Once you have created your custom MessageResources instance, you utilize it - to access message strings (with or without parameter replacement objects), - exactly as we illustrated with the standard implementation in the previous - section.

    - -
    Using MessageResources With Struts
    - -

    If your application uses the Struts controller servlet, you can optionally - configure Struts to load an application-specific message resources - instance for - you, and make it available as a servlet context attribute (in JSP terms, - an - application-scope bean). This mechanism is managed by setting the - following - servlet initialization parameters in the web application deployment - descriptor: -

    -
      -
    • application - The configuration string that will be - passed to the createResources() method of the message - resources factory, in order to identify the family of resources to be - supported. If you use the standard message resources factory, this - must - be the base fully qualified name of the property resources files used - to contain these messages, as illustrated above.
    • -
    • factory - Fully qualified Java class name of the - MessageResourcesFactory to be used. By default, the - standard - implementation provided by Struts - (org.apache.struts.util.PropertyMessageResourcesFactory) - will be used.
    • -
    - -

    Struts provides several JSP custom tags that assume the existence of a - java.util.Locale attribute in the user's session, under the - key - named by the constant string value of Action.LOCALE_KEY. Your - own - application logic can set this attribute at any time, or you can ask - Struts to - set it automatically (if not already set) based on the - Accept-Language HTTP header included with the request. There - are - two mechanisms by which you request Struts to perform this service:

    -
      -
    • To have this service performed on every request submitted to the - controller - servlet, set the servlet initialization parameter locale - to - the value true in the application deployment descriptor. -
    • -
    • To have this service performed by a JSP page when it is accessed - directly - by a user, utilize a <form:html ... locale="true" ... - /> - tag at the top of each page.
    • -
    - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/BeanValidatorForm.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/BeanValidatorForm.java deleted file mode 100644 index 22729113bf8..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/BeanValidatorForm.java +++ /dev/null @@ -1,337 +0,0 @@ -/* - * $Id: BeanValidatorForm.java 472728 2006-11-09 01:10:58Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.validator; - -import org.apache.commons.beanutils.ConvertUtils; -import org.apache.commons.beanutils.DynaBean; -import org.apache.commons.beanutils.DynaClass; -import org.apache.commons.beanutils.WrapDynaBean; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.config.FormBeanConfig; - -import javax.servlet.http.HttpServletRequest; - -import java.io.Serializable; - -import java.lang.reflect.Array; - -import java.util.List; -import java.util.Map; - -/** - *

    Struts validator ActionForm backed by either a - * DynaBean or POJO JavaBean.

    - * - *

    Passing a POJO JavaBean to the constructor will automatically create an - * associated WrapDynaBean. One use for this would be to migrate - * view objects from an existing system which, for the usual reasons, - * can't be changed to extend .

    - * - *

    This form is based on the standard struts ValidatorForm for - * use with the Validator framework and validates either using the - * name from the Struts ActionMapping or the - * ActionMapping's path depending on whether - * pathValidation is true or - * false.

    - * - *

    Note: WrapDynaBean is NOT serializable. If you use this class - * with a WrapDynaBean (as described above), you should not store your form in - * session scope.

    - */ -public class BeanValidatorForm extends ValidatorForm implements DynaBean, - Serializable { - /** - * Commons Logging - */ - protected static Log logger = LogFactory.getLog(BeanValidatorForm.class); - - /** - * The DynaBean that this ActionForm is backed by. - */ - protected DynaBean dynaBean; - - /** - * Indicates whether the ActionMapping's path should be used for the - * validation key. - */ - protected boolean pathValidation = false; - - /** - * The name used to identify the ActionForm in the struts-config.xml - */ - private String strutsConfigFormName; - - // ------------------- Constructor ---------------------------------- - - /** - * Construct a new BeanValidatorForm with the specified - * bean. - */ - public BeanValidatorForm(Object bean) { - if (bean instanceof DynaBean) { - dynaBean = (DynaBean) bean; - } else { - dynaBean = new WrapDynaBean(bean); - } - } - - // ------------------- Protected Methods ---------------------------------- - - /** - *

    Set whether this form should validate based on the - * ActionMapping's path.

    - */ - protected void setPathValidation(boolean pathValidation) { - this.pathValidation = pathValidation; - } - - /** - *

    Indicates whether this form should validate based on the - * ActionMapping's path.

    - */ - protected boolean isPathValidation() { - return pathValidation; - } - - // ------------------- Public Methods ---------------------------------- - - /** - *

    Perform intialization of the ActionForm.

    - *

    This method is called when the form is created.

    - * - * @since Struts 1.3.6 - */ - public void initialize(FormBeanConfig formBeanConfig) { - strutsConfigFormName = formBeanConfig.getName(); - } - - /** - * Return name used to identify the ActionForm in the - * struts-config.xml. - * - * @since Struts 1.3.6 - */ - public String getStrutsConfigFormName() { - return strutsConfigFormName; - } - - /** - *

    Return the DynaBean that this ActionForm - * is backed by.

    - */ - public DynaBean getDynaBean() { - return dynaBean; - } - - /** - *

    Return the Bean that this ActionForm is - * backed by.

    - * - *

    If the DynaBean is a WrapDynaBean type - * then this method returns the 'Wrapped' POJO bean associated with it. If - * you require the actual WrapDynaBean then use the - * getDynaBean() method.

    - */ - public Object getInstance() { - if (dynaBean instanceof WrapDynaBean) { - return ((WrapDynaBean) dynaBean).getInstance(); - } - - return dynaBean; - } - - /** - *

    Return the size of an indexed or mapped property.

    - */ - public int size(String name) { - Object value = dynaBean.get(name); - - if (value == null) { - return 0; - } - - if (value instanceof Map) { - return ((Map) value).size(); - } - - if (value instanceof List) { - return ((List) value).size(); - } - - if ((value.getClass().isArray())) { - return Array.getLength(value); - } - - return 0; - } - - // ------------------- ValidatorForm Methods ---------------------------------- - - /** - * Returns the Validation key - * - * @param mapping The mapping used to select this instance - * @param request The servlet request we are processing - * @return validation key to use - */ - public String getValidationKey(ActionMapping mapping, - HttpServletRequest request) { - String validationKey = null; - - if (isPathValidation()) { - // Get the path replacing any slashes by underscore - validationKey = mapping.getPath(); - - // Remove any leading slash - if (validationKey.charAt(0) == '/') { - validationKey = validationKey.substring(1); - } - - // Replace any slashes by underscore - if (validationKey.indexOf("/") > 0) { - validationKey = validationKey.replace('/', '_'); - } - } else { - validationKey = mapping.getAttribute(); - } - - if (logger.isDebugEnabled()) { - logger.debug("Validating ActionForm '" + mapping.getName() - + "' using key '" + validationKey + "' for mapping '" - + mapping.getPath() + "'"); - } - - return validationKey; - } - - // ------------------- DynaBean Methods ---------------------------------- - - /** - * Return the DynaClass instance that describes the set of - * properties available for this DynaBean. - */ - public DynaClass getDynaClass() { - return dynaBean.getDynaClass(); - } - - /** - * Return the value of a simple property with the specified name. - * - * @param name Name of the property whose value is to be retrieved - */ - public Object get(String name) { - return dynaBean.get(name); - } - - /** - * Return the value of an indexed property with the specified name. - * - * @param name Name of the property whose value is to be retrieved - * @param index Index of the value to be retrieved - */ - public Object get(String name, int index) { - return dynaBean.get(name, index); - } - - /** - * Return the value of a mapped property with the specified name, or - * null if there is no value for the specified key. - * - * @param name Name of the property whose value is to be retrieved - * @param key Key of the value to be retrieved - */ - public Object get(String name, String key) { - return dynaBean.get(name, key); - } - - /** - * Set the value of a simple property with the specified name. - * - * @param name Name of the property whose value is to be set - * @param value Value to which this property is to be set - */ - public void set(String name, Object value) { - // Set the page number (for validator) - if ("page".equals(name)) { - if (value == null) { - page = 0; - } else if (value instanceof Integer) { - page = ((Integer) value).intValue(); - } else { - try { - page = - ((Integer) ConvertUtils.convert(value.toString(), - Integer.class)).intValue(); - } catch (Exception ignore) { - page = 0; - } - } - } - - dynaBean.set(name, value); - } - - /** - * Set the value of an indexed property with the specified name. - * - * @param name Name of the property whose value is to be set - * @param index Index of the property to be set - * @param value Value to which this property is to be set - */ - public void set(String name, int index, Object value) { - dynaBean.set(name, index, value); - } - - /** - * Set the value of a mapped property with the specified name. - * - * @param name Name of the property whose value is to be set - * @param key Key of the property to be set - * @param value Value to which this property is to be set - */ - public void set(String name, String key, Object value) { - dynaBean.set(name, key, value); - } - - /** - * Does the specified mapped property contain a value for the specified - * key value? - * - * @param name Name of the property to check - * @param key Name of the key to check - */ - public boolean contains(String name, String key) { - return dynaBean.contains(name, key); - } - - /** - * Remove any existing value for the specified key on the specified mapped - * property. - * - * @param name Name of the property for which a value is to be removed - * @param key Key of the value to be removed - */ - public void remove(String name, String key) { - dynaBean.remove(name, key); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/DynaValidatorForm.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/DynaValidatorForm.java deleted file mode 100644 index f535d1fb168..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/DynaValidatorForm.java +++ /dev/null @@ -1,213 +0,0 @@ -/* - * $Id: DynaValidatorForm.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.validator; - -import org.apache.commons.beanutils.DynaBean; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.validator.Validator; -import org.apache.commons.validator.ValidatorException; -import org.apache.commons.validator.ValidatorResults; -import org.apache.struts.action.ActionErrors; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.action.DynaActionForm; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; - -import java.io.Serializable; - -import java.util.Map; - -/** - *

    This class extends DynaActionForm and provides basic - * field validation based on an XML file. The key passed into the validator - * is the action element's 'name' attribute from the struts-config.xml which - * should match the form element's name attribute in the validation.xml.

    - * - *
      - * - *
    • See ValidatorPlugin definition in struts-config.xml for - * validation rules.
    • - * - *
    - * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - * @see org.apache.struts.action.ActionForm - * @since Struts 1.1 - */ -public class DynaValidatorForm extends DynaActionForm implements DynaBean, - Serializable { - /** - * Commons Logging instance. - */ - private static Log log = LogFactory.getLog(DynaValidatorForm.class); - - /** - * The results returned from the validation performed by the - * Validator. - */ - protected ValidatorResults validatorResults = null; - - /** - * Used to indicate the current page of a multi-page form. - */ - protected int page = 0; - - /** - * Gets page. - * - * @return page number. - */ - public int getPage() { - return page; - } - - /** - * Sets page. - * - * @param page page number - */ - public void setPage(int page) { - this.page = page; - } - - /** - * Validate the properties that have been set from this HTTP request, and - * return an ActionErrors object that encapsulates any - * validation errors that have been found. If no errors are found, return - * null or an ActionErrors object with no - * recorded error messages. - * - * @param mapping The mapping used to select this instance. - * @param request The servlet request we are processing. - * @return ActionErrors object that encapsulates any - * validation errors. - */ - public ActionErrors validate(ActionMapping mapping, - HttpServletRequest request) { - this.setPageFromDynaProperty(); - - ServletContext application = getServlet().getServletContext(); - ActionErrors errors = new ActionErrors(); - - String validationKey = getValidationKey(mapping, request); - - Validator validator = - Resources.initValidator(validationKey, this, application, request, - errors, page); - - try { - validatorResults = validator.validate(); - } catch (ValidatorException e) { - log.error(e.getMessage(), e); - } - - return errors; - } - - /** - * Returns the Validation key. - * - * @param mapping The mapping used to select this instance - * @param request The servlet request we are processing - * @return validation key - the form element's name in this case - */ - public String getValidationKey(ActionMapping mapping, - HttpServletRequest request) { - return mapping.getAttribute(); - } - - /** - * Sets this.page to the value of the Dyna property "page" if it's - * defined. This is used to setup the page variable before validation - * starts. - * - * @since Struts 1.2 - */ - protected void setPageFromDynaProperty() { - Map props = this.getMap(); - - if (props.containsKey("page")) { - Integer p = null; - - try { - p = (Integer) props.get("page"); - } catch (ClassCastException e) { - log.error("Dyna 'page' property must be of type java.lang.Integer.", - e); - throw e; - } - - if (p == null) { - throw new NullPointerException( - "Dyna 'page' property must not be null. " - + " Either provide an initial value or set 'convertNull' to false. "); - } - - this.page = p.intValue(); - } - } - - /** - * Reset all properties to their default values. - * - * @param mapping The mapping used to select this instance - * @param request The servlet request we are processing - */ - public void reset(ActionMapping mapping, HttpServletRequest request) { - super.reset(mapping, request); - page = 0; - validatorResults = null; - } - - /** - * Get results of the validation performed by the Validator. - * - * @return validator results as ValidatorResults object - */ - public ValidatorResults getValidatorResults() { - return validatorResults; - } - - /** - * Set results of the validation performed by the Validator. - * - * @param validatorResults Set results of the validation performed - */ - public void setValidatorResults(ValidatorResults validatorResults) { - this.validatorResults = validatorResults; - } - - /** - * Returns a Map of values returned from any validation that - * returns a value other than null or Boolean - * with the key the full property path of the field. - * - * @return Returns a Map of values, otherwise returns null if - * no results. - */ - public Map getResultValueMap() { - return ((validatorResults != null) - ? validatorResults.getResultValueMap() : null); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/FieldChecks.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/FieldChecks.java deleted file mode 100644 index feefe290fb7..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/FieldChecks.java +++ /dev/null @@ -1,1336 +0,0 @@ -/* - * $Id: FieldChecks.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.validator; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.validator.Field; -import org.apache.commons.validator.GenericTypeValidator; -import org.apache.commons.validator.GenericValidator; -import org.apache.commons.validator.UrlValidator; -import org.apache.commons.validator.Validator; -import org.apache.commons.validator.ValidatorAction; -import org.apache.commons.validator.util.ValidatorUtils; -import org.apache.struts.action.ActionMessage; -import org.apache.struts.action.ActionMessages; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.RequestUtils; - -import javax.servlet.http.HttpServletRequest; - -import java.io.Serializable; - -import java.util.Locale; -import java.util.StringTokenizer; - -/** - *

    This class contains the default validations that are used in the - * validator-rules.xml file.

    In general passing in a null or blank - * will return a null Object or a false boolean. However, nulls and blanks do - * not result in an error being added to the errors.

    - * - * @since Struts 1.1 - */ -public class FieldChecks implements Serializable { - /** - * Commons Logging instance. - */ - private static final Log log = LogFactory.getLog(FieldChecks.class); - - /** - * The message resources for this package. - */ - private static MessageResources sysmsgs = - MessageResources.getMessageResources( - "org.apache.struts.validator.LocalStrings"); - public static final String FIELD_TEST_NULL = "NULL"; - public static final String FIELD_TEST_NOTNULL = "NOTNULL"; - public static final String FIELD_TEST_EQUAL = "EQUAL"; - - /** - * Checks if the field isn't null and length of the field is greater than - * zero not including whitespace. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if meets stated requirements, false otherwise. - */ - public static boolean validateRequired(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - - return false; - } else { - return true; - } - } - - /** - * Checks if the field isn't null based on the values of other fields. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if meets stated requirements, false otherwise. - */ - public static boolean validateRequiredIf(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object form = - validator.getParameterValue(org.apache.commons.validator.Validator.BEAN_PARAM); - String value = null; - boolean required = false; - - value = evaluateBean(bean, field); - - int i = 0; - String fieldJoin = "AND"; - - if (!GenericValidator.isBlankOrNull(field.getVarValue("fieldJoin"))) { - fieldJoin = field.getVarValue("fieldJoin"); - } - - if (fieldJoin.equalsIgnoreCase("AND")) { - required = true; - } - - while (!GenericValidator.isBlankOrNull(field.getVarValue("field[" + i - + "]"))) { - String dependProp = field.getVarValue("field[" + i + "]"); - String dependTest = field.getVarValue("fieldTest[" + i + "]"); - String dependTestValue = field.getVarValue("fieldValue[" + i + "]"); - String dependIndexed = field.getVarValue("fieldIndexed[" + i + "]"); - - if (dependIndexed == null) { - dependIndexed = "false"; - } - - String dependVal = null; - boolean thisRequired = false; - - if (field.isIndexed() && dependIndexed.equalsIgnoreCase("true")) { - String key = field.getKey(); - - if ((key.indexOf("[") > -1) && (key.indexOf("]") > -1)) { - String ind = key.substring(0, key.indexOf(".") + 1); - - dependProp = ind + dependProp; - } - } - - dependVal = ValidatorUtils.getValueAsString(form, dependProp); - - if (dependTest.equals(FIELD_TEST_NULL)) { - if ((dependVal != null) && (dependVal.length() > 0)) { - thisRequired = false; - } else { - thisRequired = true; - } - } - - if (dependTest.equals(FIELD_TEST_NOTNULL)) { - if ((dependVal != null) && (dependVal.length() > 0)) { - thisRequired = true; - } else { - thisRequired = false; - } - } - - if (dependTest.equals(FIELD_TEST_EQUAL)) { - thisRequired = dependTestValue.equalsIgnoreCase(dependVal); - } - - if (fieldJoin.equalsIgnoreCase("AND")) { - required = required && thisRequired; - } else { - required = required || thisRequired; - } - - i++; - } - - if (required) { - if (GenericValidator.isBlankOrNull(value)) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - - return false; - } else { - return true; - } - } - - return true; - } - - /** - * Checks if the field matches the regular expression in the field's mask - * attribute. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if field matches mask, false otherwise. - */ - public static boolean validateMask(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - String value = null; - - value = evaluateBean(bean, field); - - try { - String mask = - Resources.getVarValue("mask", field, validator, request, true); - - if (value != null && value.length()>0 - && !GenericValidator.matchRegexp(value, mask)) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - - return false; - } else { - return true; - } - } catch (Exception e) { - processFailure(errors, field, "mask", e); - - return false; - } - } - - /** - * Checks if the field can safely be converted to a byte primitive. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if valid, false otherwise. - */ - public static Object validateByte(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object result = null; - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - return Boolean.TRUE; - } - - result = GenericTypeValidator.formatByte(value); - - if (result == null) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - } - - return (result == null) ? Boolean.FALSE : result; - } - - /** - * Checks if the field can safely be converted to a byte primitive. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if valid, false otherwise. - */ - public static Object validateByteLocale(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object result = null; - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - return Boolean.TRUE; - } - - Locale locale = RequestUtils.getUserLocale(request, null); - - result = GenericTypeValidator.formatByte(value, locale); - - if (result == null) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - } - - return (result == null) ? Boolean.FALSE : result; - } - - /** - * @param bean - * @param field - * @return - */ - private static String evaluateBean(Object bean, Field field) { - String value; - - if (isString(bean)) { - value = (String) bean; - } else { - value = ValidatorUtils.getValueAsString(bean, field.getProperty()); - } - - return value; - } - - /** - * Checks if the field can safely be converted to a short primitive. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if valid, false otherwise. - */ - public static Object validateShort(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object result = null; - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - return Boolean.TRUE; - } - - result = GenericTypeValidator.formatShort(value); - - if (result == null) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - } - - return (result == null) ? Boolean.FALSE : result; - } - - /** - * Checks if the field can safely be converted to a short primitive. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if valid, false otherwise. - */ - public static Object validateShortLocale(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object result = null; - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - return Boolean.TRUE; - } - - Locale locale = RequestUtils.getUserLocale(request, null); - - result = GenericTypeValidator.formatShort(value, locale); - - if (result == null) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - } - - return (result == null) ? Boolean.FALSE : result; - } - - /** - * Checks if the field can safely be converted to an int primitive. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if valid, false otherwise. - */ - public static Object validateInteger(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object result = null; - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - return Boolean.TRUE; - } - - result = GenericTypeValidator.formatInt(value); - - if (result == null) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - } - - return (result == null) ? Boolean.FALSE : result; - } - - /** - * Checks if the field can safely be converted to an int primitive. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if valid, false otherwise. - */ - public static Object validateIntegerLocale(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object result = null; - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - return Boolean.TRUE; - } - - Locale locale = RequestUtils.getUserLocale(request, null); - - result = GenericTypeValidator.formatInt(value, locale); - - if (result == null) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - } - - return (result == null) ? Boolean.FALSE : result; - } - - /** - * Checks if the field can safely be converted to a long primitive. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if valid, false otherwise. - */ - public static Object validateLong(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object result = null; - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - return Boolean.TRUE; - } - - result = GenericTypeValidator.formatLong(value); - - if (result == null) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - } - - return (result == null) ? Boolean.FALSE : result; - } - - /** - * Checks if the field can safely be converted to a long primitive. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if valid, false otherwise. - */ - public static Object validateLongLocale(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object result = null; - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - return Boolean.TRUE; - } - - Locale locale = RequestUtils.getUserLocale(request, null); - - result = GenericTypeValidator.formatLong(value, locale); - - if (result == null) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - } - - return (result == null) ? Boolean.FALSE : result; - } - - /** - * Checks if the field can safely be converted to a float primitive. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if valid, false otherwise. - */ - public static Object validateFloat(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object result = null; - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - return Boolean.TRUE; - } - - result = GenericTypeValidator.formatFloat(value); - - if (result == null) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - } - - return (result == null) ? Boolean.FALSE : result; - } - - /** - * Checks if the field can safely be converted to a float primitive. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if valid, false otherwise. - */ - public static Object validateFloatLocale(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object result = null; - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - return Boolean.TRUE; - } - - Locale locale = RequestUtils.getUserLocale(request, null); - - result = GenericTypeValidator.formatFloat(value, locale); - - if (result == null) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - } - - return (result == null) ? Boolean.FALSE : result; - } - - /** - * Checks if the field can safely be converted to a double primitive. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if valid, false otherwise. - */ - public static Object validateDouble(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object result = null; - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - return Boolean.TRUE; - } - - result = GenericTypeValidator.formatDouble(value); - - if (result == null) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - } - - return (result == null) ? Boolean.FALSE : result; - } - - /** - * Checks if the field can safely be converted to a double primitive. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if valid, false otherwise. - */ - public static Object validateDoubleLocale(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object result = null; - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - return Boolean.TRUE; - } - - Locale locale = RequestUtils.getUserLocale(request, null); - - result = GenericTypeValidator.formatDouble(value, locale); - - if (result == null) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - } - - return (result == null) ? Boolean.FALSE : result; - } - - /** - * Checks if the field is a valid date. If the field has a datePattern - * variable, that will be used to format java.text.SimpleDateFormat. - * If the field has a datePatternStrict variable, that will be used to - * format java.text.SimpleDateFormat and the length will be - * checked so '2/12/1999' will not pass validation with the format - * 'MM/dd/yyyy' because the month isn't two digits. If no datePattern - * variable is specified, then the field gets the DateFormat.SHORT format - * for the locale. The setLenient method is set to false for - * all variations. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if valid, false otherwise. - */ - public static Object validateDate(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object result = null; - String value = null; - - value = evaluateBean(bean, field); - - boolean isStrict = false; - String datePattern = - Resources.getVarValue("datePattern", field, validator, request, - false); - - if (GenericValidator.isBlankOrNull(datePattern)) { - datePattern = - Resources.getVarValue("datePatternStrict", field, validator, - request, false); - - if (!GenericValidator.isBlankOrNull(datePattern)) { - isStrict = true; - } - } - - Locale locale = RequestUtils.getUserLocale(request, null); - - if (GenericValidator.isBlankOrNull(value)) { - return Boolean.TRUE; - } - - try { - if (GenericValidator.isBlankOrNull(datePattern)) { - result = GenericTypeValidator.formatDate(value, locale); - } else { - result = - GenericTypeValidator.formatDate(value, datePattern, isStrict); - } - } catch (Exception e) { - log.error(e.getMessage(), e); - } - - if (result == null) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - } - - return (result == null) ? Boolean.FALSE : result; - } - - /** - * Checks if a fields value is within a range (min & max specified in - * the vars attribute). - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return True if in range, false otherwise. - */ - public static boolean validateLongRange(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - String value = null; - - value = evaluateBean(bean, field); - - if (!GenericValidator.isBlankOrNull(value)) { - try { - String minVar = - Resources.getVarValue("min", field, validator, request, true); - String maxVar = - Resources.getVarValue("max", field, validator, request, true); - long longValue = Long.parseLong(value); - long min = Long.parseLong(minVar); - long max = Long.parseLong(maxVar); - - if (min > max) { - throw new IllegalArgumentException(sysmsgs.getMessage( - "invalid.range", minVar, maxVar)); - } - - if (!GenericValidator.isInRange(longValue, min, max)) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - - return false; - } - } catch (Exception e) { - processFailure(errors, field, "longRange", e); - - return false; - } - } - - return true; - } - - /** - * Checks if a fields value is within a range (min & max specified in - * the vars attribute). - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return True if in range, false otherwise. - */ - public static boolean validateIntRange(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - String value = null; - - value = evaluateBean(bean, field); - - if (!GenericValidator.isBlankOrNull(value)) { - try { - String minVar = - Resources.getVarValue("min", field, validator, request, true); - String maxVar = - Resources.getVarValue("max", field, validator, request, true); - int min = Integer.parseInt(minVar); - int max = Integer.parseInt(maxVar); - int intValue = Integer.parseInt(value); - - if (min > max) { - throw new IllegalArgumentException(sysmsgs.getMessage( - "invalid.range", minVar, maxVar)); - } - - if (!GenericValidator.isInRange(intValue, min, max)) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - - return false; - } - } catch (Exception e) { - processFailure(errors, field, "intRange", e); - - return false; - } - } - - return true; - } - - /** - * Checks if a fields value is within a range (min & max specified in - * the vars attribute). - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return True if in range, false otherwise. - */ - public static boolean validateDoubleRange(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - String value = null; - - value = evaluateBean(bean, field); - - if (!GenericValidator.isBlankOrNull(value)) { - try { - String minVar = - Resources.getVarValue("min", field, validator, request, true); - String maxVar = - Resources.getVarValue("max", field, validator, request, true); - double doubleValue = Double.parseDouble(value); - double min = Double.parseDouble(minVar); - double max = Double.parseDouble(maxVar); - - if (min > max) { - throw new IllegalArgumentException(sysmsgs.getMessage( - "invalid.range", minVar, maxVar)); - } - - if (!GenericValidator.isInRange(doubleValue, min, max)) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - - return false; - } - } catch (Exception e) { - processFailure(errors, field, "doubleRange", e); - - return false; - } - } - - return true; - } - - /** - * Checks if a fields value is within a range (min & max specified in - * the vars attribute). - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return True if in range, false otherwise. - */ - public static boolean validateFloatRange(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - String value = null; - - value = evaluateBean(bean, field); - - if (!GenericValidator.isBlankOrNull(value)) { - try { - String minVar = - Resources.getVarValue("min", field, validator, request, true); - String maxVar = - Resources.getVarValue("max", field, validator, request, true); - float floatValue = Float.parseFloat(value); - float min = Float.parseFloat(minVar); - float max = Float.parseFloat(maxVar); - - if (min > max) { - throw new IllegalArgumentException(sysmsgs.getMessage( - "invalid.range", minVar, maxVar)); - } - - if (!GenericValidator.isInRange(floatValue, min, max)) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - - return false; - } - } catch (Exception e) { - processFailure(errors, field, "floatRange", e); - - return false; - } - } - - return true; - } - - /** - * Checks if the field is a valid credit card number. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return true if valid, false otherwise. - */ - public static Object validateCreditCard(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object result = null; - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - return Boolean.TRUE; - } - - result = GenericTypeValidator.formatCreditCard(value); - - if (result == null) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - } - - return (result == null) ? Boolean.FALSE : result; - } - - /** - * Checks if a field has a valid e-mail address. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return True if valid, false otherwise. - */ - public static boolean validateEmail(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - String value = null; - - value = evaluateBean(bean, field); - - if (!GenericValidator.isBlankOrNull(value) - && !GenericValidator.isEmail(value)) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - - return false; - } else { - return true; - } - } - - /** - * Checks if the field's length is less than or equal to the maximum - * value. A Null will be considered an error. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return True if stated conditions met. - */ - public static boolean validateMaxLength(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - String value = null; - - value = evaluateBean(bean, field); - - if (value != null) { - try { - String maxVar = - Resources.getVarValue("maxlength", field, validator, - request, true); - int max = Integer.parseInt(maxVar); - - boolean isValid = false; - String endLth = Resources.getVarValue("lineEndLength", field, - validator, request, false); - if (GenericValidator.isBlankOrNull(endLth)) { - isValid = GenericValidator.maxLength(value, max); - } else { - isValid = GenericValidator.maxLength(value, max, - Integer.parseInt(endLth)); - } - - if (!isValid) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - - return false; - } - } catch (Exception e) { - processFailure(errors, field, "maxlength", e); - - return false; - } - } - - return true; - } - - /** - * Checks if the field's length is greater than or equal to the minimum - * value. A Null will be considered an error. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return True if stated conditions met. - */ - public static boolean validateMinLength(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - String value = null; - - value = evaluateBean(bean, field); - - if (!GenericValidator.isBlankOrNull(value)) { - try { - String minVar = - Resources.getVarValue("minlength", field, validator, - request, true); - int min = Integer.parseInt(minVar); - - boolean isValid = false; - String endLth = Resources.getVarValue("lineEndLength", field, - validator, request, false); - if (GenericValidator.isBlankOrNull(endLth)) { - isValid = GenericValidator.minLength(value, min); - } else { - isValid = GenericValidator.minLength(value, min, - Integer.parseInt(endLth)); - } - - if (!isValid) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - - return false; - } - } catch (Exception e) { - processFailure(errors, field, "minlength", e); - - return false; - } - } - - return true; - } - - /** - * Checks if a field has a valid url. Four optional variables can be - * specified to configure url validation. - * - *
      - * - *
    • Variable allow2slashes can be set to true - * or false to control whether two slashes are allowed - - * default is false (i.e. two slashes are NOT allowed).
    • - * - *
    • Variable nofragments can be set to true - * or false to control whether fragments are allowed - - * default is false (i.e. fragments ARE allowed).
    • - * - *
    • Variable allowallschemes can be set to - * true or false to control if all schemes are - * allowed - default is false (i.e. all schemes are NOT - * allowed).
    • - * - *
    • Variable schemes can be set to a comma delimited list - * of valid schemes. This value is ignored if allowallschemes - * is set to true. Default schemes allowed are "http", - * "https" and "ftp" if this variable is not specified.
    • - * - *
    - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently - * being performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors - * to if any validation errors occur. - * @param validator The Validator instance, used to access - * other field values. - * @param request Current request object. - * @return True if valid, false otherwise. - */ - public static boolean validateUrl(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - String value = null; - - value = evaluateBean(bean, field); - - if (GenericValidator.isBlankOrNull(value)) { - return true; - } - - // Get the options and schemes Vars - String allowallschemesVar = - Resources.getVarValue("allowallschemes", field, validator, request, - false); - boolean allowallschemes = "true".equalsIgnoreCase(allowallschemesVar); - int options = allowallschemes ? UrlValidator.ALLOW_ALL_SCHEMES : 0; - - String allow2slashesVar = - Resources.getVarValue("allow2slashes", field, validator, request, - false); - - if ("true".equalsIgnoreCase(allow2slashesVar)) { - options += UrlValidator.ALLOW_2_SLASHES; - } - - String nofragmentsVar = - Resources.getVarValue("nofragments", field, validator, request, - false); - - if ("true".equalsIgnoreCase(nofragmentsVar)) { - options += UrlValidator.NO_FRAGMENTS; - } - - String schemesVar = - allowallschemes ? null - : Resources.getVarValue("schemes", field, - validator, request, false); - - // No options or schemes - use GenericValidator as default - if ((options == 0) && (schemesVar == null)) { - if (GenericValidator.isUrl(value)) { - return true; - } else { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - - return false; - } - } - - // Parse comma delimited list of schemes into a String[] - String[] schemes = null; - - if (schemesVar != null) { - StringTokenizer st = new StringTokenizer(schemesVar, ","); - - schemes = new String[st.countTokens()]; - - int i = 0; - - while (st.hasMoreTokens()) { - schemes[i++] = st.nextToken().trim(); - } - } - - // Create UrlValidator and validate with options/schemes - UrlValidator urlValidator = new UrlValidator(schemes, options); - - if (urlValidator.isValid(value)) { - return true; - } else { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - - return false; - } - } - - /** - * Process a validation failure. - */ - private static void processFailure(ActionMessages errors, Field field, - String validator, Throwable t) { - // Log the error - String logErrorMsg = - sysmsgs.getMessage("validation.failed", validator, - field.getProperty(), t.toString()); - - log.error(logErrorMsg); - - // Add general "system error" message to show to the user - String userErrorMsg = sysmsgs.getMessage("system.error"); - - errors.add(field.getKey(), new ActionMessage(userErrorMsg, false)); - } - - /** - * Return true if the specified object is a String or a - * null value. - * - * @param o Object to be tested - * @return The string value - */ - protected static boolean isString(Object o) { - return (o == null) ? true : String.class.isInstance(o); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/LazyValidatorForm.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/LazyValidatorForm.java deleted file mode 100644 index 5ee1cdf9a9c..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/LazyValidatorForm.java +++ /dev/null @@ -1,196 +0,0 @@ -/* - * $Id: LazyValidatorForm.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.validator; - -import org.apache.commons.beanutils.DynaBean; -import org.apache.commons.beanutils.LazyDynaBean; - -import java.util.List; -import java.util.Map; - -/** - *

    Struts Lazy ActionForm which wraps a - * LazyDynaBean.

    - * - *

    There isn't really that much to this implementation as most of the - * lazy behaviour is in LazyDynaBean and wrapping - * the LazyDynaBean is handled in the parent - * BeanValidatorForm. The only thing it really does is populate - * indexed properties which are a List type with a - * LazyDynaBean in the get(name, index) method.

    - * - *

    Lazy DynaBeans provide several types of lazy - * behaviour:

    - * - *
      - * - *
    • lazy property addition - properties which do not exist - * are automatically added.
    • - * - *
    • lazy List facilities - automatically grows a - * List or Array to accomodate the index value being - * set.
    • - * - *
    • lazy List creation - automatic creation of a - * List or Array for indexed properties, if - * it doesn't exist.
    • lazy Map creation - automatic - * creation of a Map for mapped properties, if it doesn't - * exist.
    • - * - *
    - * - *

    Using this lazy ActionForm means that you don't have - * to define the ActionForm's properties in the struts-config.xml. - * However, a word of warning, everything in the Request gets populated into - * this ActionForm circumventing the normal firewall - * function of Struts forms. Therefore you should only take out of this - * form properties you expect to be there rather than blindly populating all - * the properties into the business tier.

    - * - *

    Having said that it is not necessary to pre-define properties in the - * struts-config.xml, it is useful to sometimes do so for - * mapped or indexed properties. For example, if you want to use - * a different Map implementation from the default - * HashMap or an array for indexed properties, rather than the - * default List type:

    - * - *
    
    - *   <form-bean name="myForm" type="org.apache.struts.validator.LazyValidatorForm">
    - *     <form-property name="myMap" type="java.util.TreeMap" />
    - *     <form-property name="myBeans" type="org.apache.commons.beanutils.LazyDynaBean[]"
    - * />
    - *   </form-bean>
    - * 
    - * - *

    Another reason for defining indexed properties in the - * struts-config.xml is that if you are validating indexed - * properties using the Validator and none are submitted then the indexed - * property will be null which causes validator to fail. - * Pre-defining them in the struts-config.xml will result in a - * zero-length indexed property (array or List) being instantiated, avoiding - * an issue with validator in that circumstance.

    - * - *

    This implementation validates using the ActionForm name. If you - * require a version that validates according to the path then it can - * be easily created in the following manner:

    - * - *
    
    - *    public class MyLazyForm extends LazyValidatorForm {
    - *
    - *        public MyLazyForm () {
    - *            super();
    - *            setPathValidation(true);
    - *        }
    - *
    - *    }
    - * 
    - * - *

    Rather than using this class, another alternative is to either use a - * LazyDynaBean or custom version of LazyDynaBean - * directly. Struts now automatically wraps objects which are not - * ActionForms in a BeanValidatorForm. For - * example:

    - * - *
    
    - *   <form-bean name="myForm" type="org.apache.commons.beanutils.LazyDynaBean">
    - *     <form-property name="myBeans" type="org.apache.commons.beanutils.LazyDynaBean[]"
    - * />
    - *   </form-bean>
    - * 
    - * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - * @see Commons - * BeanUtils JavaDoc - * @since Struts 1.2.6 - */ -public class LazyValidatorForm extends BeanValidatorForm { - // ------------------- Constructors ---------------------------------- - - /** - * Default Constructor which creates a LazyDynaBean to - * back this form. - */ - public LazyValidatorForm() { - super(new LazyDynaBean()); - } - - /** - */ - public LazyValidatorForm(DynaBean bean) { - super(bean); - } - - // ------------------- DynaBean methods ---------------------------------- - - /** - *

    Return an indexed property value.

    - * - *

    If the "indexed" property is a List type then any - * missing values are populated with a bean (created in the - * newIndexedBean(name) method - in this implementation this - * is a LazyDynaBean type.

    - */ - public Object get(String name, int index) { - int size = size(name); - - // Get the indexed property - Object value = dynaBean.get(name, index); - - // Create missing beans for Lists - if (value == null) { - Object indexedValue = dynaBean.get(name); - - if (List.class.isAssignableFrom(indexedValue.getClass())) { - for (int i = size; i <= index; i++) { - value = newIndexedBean(name); - set(name, i, value); - } - } - } - - return value; - } - - // ------------------- Public methods ---------------------------------- - - /** - *

    Return the Map containing the property values.

    - * - *

    Provided so that properties can be access using JSTL.

    - */ - public Map getMap() { - return ((LazyDynaBean) dynaBean).getMap(); - } - - // ------------------- Protected methods ---------------------------------- - - /** - *

    Creates new DynaBean instances to populate an 'indexed' - * property of beans - defaults to LazyDynaBean type.

    - * - *

    Override this method if you require a different type of - * DynaBean.

    - */ - protected DynaBean newIndexedBean(String name) { - return new LazyDynaBean(); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/LocalStrings.properties b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/LocalStrings.properties deleted file mode 100644 index 734b94ba0e7..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/LocalStrings.properties +++ /dev/null @@ -1,20 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -system.error=SYSTEM ERROR: Check logs for details. -validation.failed={0} validation failed for property {1}: {2} -variable.missing=Variable {0} is missing. -variable.resource.notfound=Key {1} not found for Variable {0} in bundle {2}. -invalid.range=Minimum value {0} is greater than maximum value {1} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/Resources.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/Resources.java deleted file mode 100644 index 4e8352ffd95..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/Resources.java +++ /dev/null @@ -1,521 +0,0 @@ -/* - * $Id: Resources.java 476419 2006-11-18 02:28:07Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.validator; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.validator.Arg; -import org.apache.commons.validator.Field; -import org.apache.commons.validator.Msg; -import org.apache.commons.validator.Validator; -import org.apache.commons.validator.ValidatorAction; -import org.apache.commons.validator.ValidatorResources; -import org.apache.commons.validator.Var; -import org.apache.struts.Globals; -import org.apache.struts.action.ActionMessage; -import org.apache.struts.action.ActionMessages; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.ModuleUtils; -import org.apache.struts.util.RequestUtils; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; - -import java.util.Locale; - -/** - * This class helps provides some useful methods for retrieving objects from - * different scopes of the application. - * - * @version $Rev: 476419 $ $Date: 2005-09-16 23:34:41 -0400 (Fri, 16 Sep 2005) - * $ - * @since Struts 1.1 - */ -public class Resources { - /** - * The message resources for this package. - */ - private static MessageResources sysmsgs = - MessageResources.getMessageResources( - "org.apache.struts.validator.LocalStrings"); - - /** - *

    Commons Logging instance.

    - */ - private static Log log = LogFactory.getLog(Resources.class); - - /** - * Resources key the ServletContext is stored under. - */ - private static String SERVLET_CONTEXT_PARAM = - "javax.servlet.ServletContext"; - - /** - * Resources key the HttpServletRequest is stored under. - */ - private static String HTTP_SERVLET_REQUEST_PARAM = - "javax.servlet.http.HttpServletRequest"; - - /** - * Resources key the ActionMessages is stored under. - */ - private static String ACTION_MESSAGES_PARAM = - "org.apache.struts.action.ActionMessages"; - - /** - * Retrieve ValidatorResources for the current module. - * - * @param application Application Context - * @param request The ServletRequest - */ - public static ValidatorResources getValidatorResources( - ServletContext application, HttpServletRequest request) { - String prefix = - ModuleUtils.getInstance().getModuleConfig(request, application) - .getPrefix(); - - return (ValidatorResources) application.getAttribute(ValidatorPlugIn.VALIDATOR_KEY - + prefix); - } - - /** - * Retrieve MessageResources for the module. - * - * @param request the servlet request - */ - public static MessageResources getMessageResources( - HttpServletRequest request) { - return (MessageResources) request.getAttribute(Globals.MESSAGES_KEY); - } - - /** - * Retrieve MessageResources for the module and bundle. - * - * @param application the servlet context - * @param request the servlet request - * @param bundle the bundle key - */ - public static MessageResources getMessageResources( - ServletContext application, HttpServletRequest request, String bundle) { - if (bundle == null) { - bundle = Globals.MESSAGES_KEY; - } - - MessageResources resources = - (MessageResources) request.getAttribute(bundle); - - if (resources == null) { - ModuleConfig moduleConfig = - ModuleUtils.getInstance().getModuleConfig(request, application); - - resources = - (MessageResources) application.getAttribute(bundle - + moduleConfig.getPrefix()); - } - - if (resources == null) { - resources = (MessageResources) application.getAttribute(bundle); - } - - if (resources == null) { - throw new NullPointerException( - "No message resources found for bundle: " + bundle); - } - - return resources; - } - - /** - * Get the value of a variable. - * - * @param varName The variable name - * @param field the validator Field - * @param validator The Validator - * @param request the servlet request - * @param required Whether the variable is mandatory - * @return The variable's value - */ - public static String getVarValue(String varName, Field field, - Validator validator, HttpServletRequest request, boolean required) { - Var var = field.getVar(varName); - - if (var == null) { - String msg = sysmsgs.getMessage("variable.missing", varName); - - if (required) { - throw new IllegalArgumentException(msg); - } - - if (log.isDebugEnabled()) { - log.debug(field.getProperty() + ": " + msg); - } - - return null; - } - - ServletContext application = - (ServletContext) validator.getParameterValue(SERVLET_CONTEXT_PARAM); - - return getVarValue(var, application, request, required); - } - - /** - * Get the value of a variable. - * - * @param var the validator variable - * @param application The ServletContext - * @param request the servlet request - * @param required Whether the variable is mandatory - * @return The variables values - */ - public static String getVarValue(Var var, ServletContext application, - HttpServletRequest request, boolean required) { - String varName = var.getName(); - String varValue = var.getValue(); - - // Non-resource variable - if (!var.isResource()) { - return varValue; - } - - // Get the message resources - String bundle = var.getBundle(); - MessageResources messages = - getMessageResources(application, request, bundle); - - // Retrieve variable's value from message resources - Locale locale = RequestUtils.getUserLocale(request, null); - String value = messages.getMessage(locale, varValue, null); - - // Not found in message resources - if ((value == null) && required) { - throw new IllegalArgumentException(sysmsgs.getMessage( - "variable.resource.notfound", varName, varValue, bundle)); - } - - if (log.isDebugEnabled()) { - log.debug("Var=[" + varName + "], " + "bundle=[" + bundle + "], " - + "key=[" + varValue + "], " + "value=[" + value + "]"); - } - - return value; - } - - /** - * Gets the Locale sensitive value based on the key passed - * in. - * - * @param messages The Message resources - * @param locale The locale. - * @param key Key used to lookup the message - */ - public static String getMessage(MessageResources messages, Locale locale, - String key) { - String message = null; - - if (messages != null) { - message = messages.getMessage(locale, key); - } - - return (message == null) ? "" : message; - } - - /** - * Gets the Locale sensitive value based on the key passed - * in. - * - * @param request servlet request - * @param key the request key - */ - public static String getMessage(HttpServletRequest request, String key) { - MessageResources messages = getMessageResources(request); - - return getMessage(messages, RequestUtils.getUserLocale(request, null), - key); - } - - /** - * Gets the locale sensitive message based on the ValidatorAction - * message and the Field's arg objects. - * - * @param messages The Message resources - * @param locale The locale - * @param va The Validator Action - * @param field The Validator Field - */ - public static String getMessage(MessageResources messages, Locale locale, - ValidatorAction va, Field field) { - String[] args = getArgs(va.getName(), messages, locale, field); - String msg = - (field.getMsg(va.getName()) != null) ? field.getMsg(va.getName()) - : va.getMsg(); - - return messages.getMessage(locale, msg, args); - } - - /** - * Gets the Locale sensitive value based on the key passed - * in. - * - * @param application the servlet context - * @param request the servlet request - * @param defaultMessages The default Message resources - * @param locale The locale - * @param va The Validator Action - * @param field The Validator Field - */ - public static String getMessage(ServletContext application, - HttpServletRequest request, MessageResources defaultMessages, - Locale locale, ValidatorAction va, Field field) { - Msg msg = field.getMessage(va.getName()); - - if ((msg != null) && !msg.isResource()) { - return msg.getKey(); - } - - String msgKey = null; - String msgBundle = null; - MessageResources messages = defaultMessages; - - if (msg == null) { - msgKey = va.getMsg(); - } else { - msgKey = msg.getKey(); - msgBundle = msg.getBundle(); - - if (msg.getBundle() != null) { - messages = - getMessageResources(application, request, msg.getBundle()); - } - } - - if ((msgKey == null) || (msgKey.length() == 0)) { - return "??? " + va.getName() + "." + field.getProperty() + " ???"; - } - - // Get the arguments - Arg[] args = field.getArgs(va.getName()); - String[] argValues = - getArgValues(application, request, messages, locale, args); - - // Return the message - return messages.getMessage(locale, msgKey, argValues); - } - - /** - * Gets the ActionMessage based on the - * ValidatorAction message and the Field's arg - * objects. - *

    - * Note: this method does not respect bundle information - * stored with the field's <msg> or <arg> elements, and localization - * will not work for alternative resource bundles. This method is - * deprecated for this reason, and you should use - * {@link #getActionMessage(Validator,HttpServletRequest,ValidatorAction,Field)} - * instead. - * - * @param request the servlet request - * @param va Validator action - * @param field the validator Field - * @deprecated Use getActionMessage(Validator, HttpServletRequest, - * ValidatorAction, Field) method instead - */ - public static ActionMessage getActionMessage(HttpServletRequest request, - ValidatorAction va, Field field) { - String[] args = - getArgs(va.getName(), getMessageResources(request), - RequestUtils.getUserLocale(request, null), field); - - String msg = - (field.getMsg(va.getName()) != null) ? field.getMsg(va.getName()) - : va.getMsg(); - - return new ActionMessage(msg, args); - } - - /** - * Gets the ActionMessage based on the - * ValidatorAction message and the Field's arg - * objects. - * - * @param validator the Validator - * @param request the servlet request - * @param va Validator action - * @param field the validator Field - */ - public static ActionMessage getActionMessage(Validator validator, - HttpServletRequest request, ValidatorAction va, Field field) { - Msg msg = field.getMessage(va.getName()); - - if ((msg != null) && !msg.isResource()) { - return new ActionMessage(msg.getKey(), false); - } - - String msgKey = null; - String msgBundle = null; - - if (msg == null) { - msgKey = va.getMsg(); - } else { - msgKey = msg.getKey(); - msgBundle = msg.getBundle(); - } - - if ((msgKey == null) || (msgKey.length() == 0)) { - return new ActionMessage("??? " + va.getName() + "." - + field.getProperty() + " ???", false); - } - - ServletContext application = - (ServletContext) validator.getParameterValue(SERVLET_CONTEXT_PARAM); - MessageResources messages = - getMessageResources(application, request, msgBundle); - Locale locale = RequestUtils.getUserLocale(request, null); - - Arg[] args = field.getArgs(va.getName()); - String[] argValues = - getArgValues(application, request, messages, locale, args); - - ActionMessage actionMessage = null; - - if (msgBundle == null) { - actionMessage = new ActionMessage(msgKey, argValues); - } else { - String message = messages.getMessage(locale, msgKey, argValues); - - actionMessage = new ActionMessage(message, false); - } - - return actionMessage; - } - - /** - * Gets the message arguments based on the current ValidatorAction - * and Field. - * - * @param actionName action name - * @param messages message resources - * @param locale the locale - * @param field the validator field - */ - public static String[] getArgs(String actionName, - MessageResources messages, Locale locale, Field field) { - String[] argMessages = new String[4]; - - Arg[] args = - new Arg[] { - field.getArg(actionName, 0), field.getArg(actionName, 1), - field.getArg(actionName, 2), field.getArg(actionName, 3) - }; - - for (int i = 0; i < args.length; i++) { - if (args[i] == null) { - continue; - } - - if (args[i].isResource()) { - argMessages[i] = getMessage(messages, locale, args[i].getKey()); - } else { - argMessages[i] = args[i].getKey(); - } - } - - return argMessages; - } - - /** - * Gets the message arguments based on the current ValidatorAction - * and Field. - * - * @param application the servlet context - * @param request the servlet request - * @param defaultMessages Default message resources - * @param locale the locale - * @param args The arguments for the message - */ - private static String[] getArgValues(ServletContext application, - HttpServletRequest request, MessageResources defaultMessages, - Locale locale, Arg[] args) { - if ((args == null) || (args.length == 0)) { - return null; - } - - String[] values = new String[args.length]; - - for (int i = 0; i < args.length; i++) { - if (args[i] != null) { - if (args[i].isResource()) { - MessageResources messages = defaultMessages; - - if (args[i].getBundle() != null) { - messages = - getMessageResources(application, request, - args[i].getBundle()); - } - - values[i] = messages.getMessage(locale, args[i].getKey()); - } else { - values[i] = args[i].getKey(); - } - } - } - - return values; - } - - /** - * Initialize the Validator to perform validation. - * - * @param key The key that the validation rules are under (the - * form elements name attribute). - * @param bean The bean validation is being performed on. - * @param application servlet context - * @param request The current request object. - * @param errors The object any errors will be stored in. - * @param page This in conjunction with the page property of a - * Field can control the processing of - * fields. If the field's page is less than or equal - * to this page value, it will be processed. - */ - public static Validator initValidator(String key, Object bean, - ServletContext application, HttpServletRequest request, - ActionMessages errors, int page) { - ValidatorResources resources = - Resources.getValidatorResources(application, request); - - Locale locale = RequestUtils.getUserLocale(request, null); - - Validator validator = new Validator(resources, key); - - validator.setUseContextClassLoader(true); - - validator.setPage(page); - - validator.setParameter(SERVLET_CONTEXT_PARAM, application); - validator.setParameter(HTTP_SERVLET_REQUEST_PARAM, request); - validator.setParameter(Validator.LOCALE_PARAM, locale); - validator.setParameter(ACTION_MESSAGES_PARAM, errors); - validator.setParameter(Validator.BEAN_PARAM, bean); - - return validator; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/ValidatorForm.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/ValidatorForm.java deleted file mode 100644 index 8e5b8f8da80..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/ValidatorForm.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * $Id: ValidatorForm.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.validator; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.validator.Validator; -import org.apache.commons.validator.ValidatorException; -import org.apache.commons.validator.ValidatorResults; -import org.apache.struts.action.ActionErrors; -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.ActionMapping; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; - -import java.io.Serializable; - -import java.util.Map; - -/** - *

    This class extends ActionForm and provides basic field - * validation based on an XML file. The key passed into the validator is the - * action element's 'name' attribute from the struts-config.xml which should - * match the form element's name attribute in the validation.xml.

    - * - *
      - * - *
    • See ValidatorPlugin definition in struts-config.xml for - * validation rules.
    • - * - *
    - * - * @version $Rev: 471754 $ $Date: 2005-05-07 12:11:38 -0400 (Sat, 07 May 2005) - * $ - * @see org.apache.struts.action.ActionForm - * @since Struts 1.1 - */ -public class ValidatorForm extends ActionForm implements Serializable { - /** - * Commons Logging instance. - */ - private static Log log = LogFactory.getLog(ValidatorForm.class); - - /** - * The results returned from the validation performed by the - * Validator. - */ - protected ValidatorResults validatorResults = null; - - /** - * Used to indicate the current page of a multi-page form. - */ - protected int page = 0; - - /** - * Gets page. - * - * @return page number - */ - public int getPage() { - return page; - } - - /** - * Sets page. - * - * @param page page number - */ - public void setPage(int page) { - this.page = page; - } - - /** - * Validate the properties that have been set from this HTTP request, and - * return an ActionErrors object that encapsulates any - * validation errors that have been found. If no errors are found, return - * null or an ActionErrors object with no - * recorded error messages. - * - * @param mapping The mapping used to select this instance - * @param request The servlet request we are processing - * @return ActionErrors object that encapsulates any - * validation errors - */ - public ActionErrors validate(ActionMapping mapping, - HttpServletRequest request) { - ServletContext application = getServlet().getServletContext(); - ActionErrors errors = new ActionErrors(); - - String validationKey = getValidationKey(mapping, request); - - Validator validator = - Resources.initValidator(validationKey, this, application, request, - errors, page); - - try { - validatorResults = validator.validate(); - } catch (ValidatorException e) { - log.error(e.getMessage(), e); - } - - return errors; - } - - /** - * Returns the Validation key. - * - * @param mapping The mapping used to select this instance - * @param request The servlet request we are processing - * @return validation key - the form element's name in this case - */ - public String getValidationKey(ActionMapping mapping, - HttpServletRequest request) { - return mapping.getAttribute(); - } - - /** - * Reset all properties to their default values. - * - * @param mapping The mapping used to select this instance - * @param request The servlet request we are processing - */ - public void reset(ActionMapping mapping, HttpServletRequest request) { - super.reset(mapping, request); - page = 0; - validatorResults = null; - } - - /** - * Get results of the validation performed by the Validator. - * - * @return results of the validation - */ - public ValidatorResults getValidatorResults() { - return validatorResults; - } - - /** - * Set results of the validation performed by the Validator. - * - * @param validatorResults results of validation - */ - public void setValidatorResults(ValidatorResults validatorResults) { - this.validatorResults = validatorResults; - } - - /** - * Returns a Map of values returned from any validation that - * returns a value other than null or Boolean - * with the key the full property path of the field. - * - * @return Map of non-null values - */ - public Map getResultValueMap() { - return ((validatorResults != null) - ? validatorResults.getResultValueMap() : null); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/ValidatorPlugIn.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/ValidatorPlugIn.java deleted file mode 100644 index 1b2b8f60c06..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/ValidatorPlugIn.java +++ /dev/null @@ -1,257 +0,0 @@ -/* - * $Id: ValidatorPlugIn.java 483039 2006-12-06 11:34:28Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.validator; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.validator.ValidatorResources; -import org.apache.struts.action.ActionServlet; -import org.apache.struts.action.PlugIn; -import org.apache.struts.config.ModuleConfig; -import org.xml.sax.SAXException; - -import javax.servlet.ServletException; -import javax.servlet.UnavailableException; - -import java.io.IOException; - -import java.net.URL; - -import java.util.ArrayList; -import java.util.List; -import java.util.StringTokenizer; - -/** - * Loads ValidatorResources based on configuration in the - * struts-config.xml file. - * - * @version $Rev: 483039 $ $Date: 2005-08-30 00:22:27 -0400 (Tue, 30 Aug 2005) - * $ - * @since Struts 1.1 - */ -public class ValidatorPlugIn implements PlugIn { - /** - * Commons Logging instance. - */ - private static Log log = LogFactory.getLog(ValidatorPlugIn.class); - - /** - * Delimitter for Validator resources. - */ - private final static String RESOURCE_DELIM = ","; - - /** - * Application scope key that ValidatorResources is stored - * under. - */ - public final static String VALIDATOR_KEY = - "org.apache.commons.validator.VALIDATOR_RESOURCES"; - - /** - * Application scope key that StopOnError is stored under. - * - * @since Struts 1.2 - */ - public final static String STOP_ON_ERROR_KEY = - "org.apache.struts.validator.STOP_ON_ERROR"; - - /** - * The module configuration for our owning module. - */ - private ModuleConfig config = null; - - /** - * The {@link ActionServlet} owning this application. - */ - private ActionServlet servlet = null; - - /** - * The set of Form instances that have been created and initialized, keyed - * by the struts form name. - */ - protected ValidatorResources resources = null; - - // ------------------------------------------------------------- Properties - - /** - * A comma delimitted list of Validator resource. - */ - private String pathnames = null; - - /** - * Informs the Validators if it has to stop validation when finding the - * first error or if it should continue. Default to true to - * keep Struts 1.1 backwards compatibility. - */ - private boolean stopOnFirstError = true; - - /** - * Gets a comma delimitted list of Validator resources. - * - * @return comma delimited list of Validator resource path names - */ - public String getPathnames() { - return pathnames; - } - - /** - * Sets a comma delimitted list of Validator resources. - * - * @param pathnames delimited list of Validator resource path names - */ - public void setPathnames(String pathnames) { - this.pathnames = pathnames; - } - - /** - * Gets the value for stopOnFirstError. - * - * @return A boolean indicating whether JavaScript validation should stop - * when it finds the first error (Struts 1.1 behaviour) or - * continue validation. - * @since Struts 1.2 - */ - public boolean isStopOnFirstError() { - return this.stopOnFirstError; - } - - /** - * Sets the value for stopOnFirstError. - * - * @param stopOnFirstError A boolean indicating whether JavaScript - * validation should stop when it finds the first - * error (Struts 1.1 behaviour) or continue - * validation. - * @since Struts 1.2 - */ - public void setStopOnFirstError(boolean stopOnFirstError) { - this.stopOnFirstError = stopOnFirstError; - } - - /** - * Initialize and load our resources. - * - * @param servlet The ActionServlet for our application - * @param config The ModuleConfig for our owning module - * @throws ServletException if we cannot configure ourselves correctly - */ - public void init(ActionServlet servlet, ModuleConfig config) - throws ServletException { - // Remember our associated configuration and servlet - this.config = config; - this.servlet = servlet; - - // Load our database from persistent storage - try { - this.initResources(); - - servlet.getServletContext().setAttribute(VALIDATOR_KEY - + config.getPrefix(), resources); - - servlet.getServletContext().setAttribute(STOP_ON_ERROR_KEY + '.' - + config.getPrefix(), - (this.stopOnFirstError ? Boolean.TRUE : Boolean.FALSE)); - } catch (Exception e) { - log.error(e.getMessage(), e); - throw new UnavailableException( - "Cannot load a validator resource from '" + pathnames + "'"); - } - } - - /** - * Gracefully shut down, releasing any resources that were allocated at - * initialization. - */ - public void destroy() { - if (log.isDebugEnabled()) { - log.debug("Destroying ValidatorPlugin"); - } - - servlet = null; - config = null; - - destroyResources(); - } - - /** - * Initialize the validator resources for this module. - * - * @throws IOException if an input/output error is encountered - * @throws ServletException if we cannot initialize these resources - */ - protected void initResources() - throws IOException, ServletException { - if ((pathnames == null) || (pathnames.length() <= 0)) { - return; - } - - StringTokenizer st = new StringTokenizer(pathnames, RESOURCE_DELIM); - - List urlList = new ArrayList(); - - try { - while (st.hasMoreTokens()) { - String validatorRules = st.nextToken().trim(); - - if (log.isInfoEnabled()) { - log.info("Loading validation rules file from '" - + validatorRules + "'"); - } - - URL input = - servlet.getServletContext().getResource(validatorRules); - - // If the config isn't in the servlet context, try the class - // loader which allows the config files to be stored in a jar - if (input == null) { - input = getClass().getResource(validatorRules); - } - - if (input != null) { - urlList.add(input); - } else { - throw new ServletException( - "Skipping validation rules file from '" - + validatorRules + "'. No url could be located."); - } - } - - int urlSize = urlList.size(); - URL[] urlArray = new URL[urlSize]; - - for (int urlIndex = 0; urlIndex < urlSize; urlIndex++) { - urlArray[urlIndex] = (URL) urlList.get(urlIndex); - } - - this.resources = new ValidatorResources(urlArray); - } catch (SAXException sex) { - log.error("Skipping all validation", sex); - throw new ServletException(sex); - } - } - - /** - * Destroy ValidatorResources. - */ - protected void destroyResources() { - resources = null; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/doc-files/validatorUML.jpg b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/doc-files/validatorUML.jpg deleted file mode 100644 index 0fe54c4a761c8d7997a8cac0e3fbb407f1e22fa9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47363 zcmeFZ1yr2dwkG=H!3n`VPy~VocMHKn(BKjXUbs6HfdC0E!8HU6?k<7C-QC^YwQG03 z+kI~K?Y+-^-LKz!W1JdeQBd_W*P6@bn%_6)dYpP(0&w0+%18omuon{?697EU0^-0E zWMmX%q$emSD5$7U&@k{YG0@R5h;g4`gMkE**_rg%h#Z&=x;Hxaq$U>89y?! zvU75O=9QIKR902j)Yi2^+uA!iySjTuM#sh{Ca0!nmRDBS);Bh{ws($CPS4ISF0Za{ z{?H2!K=^NJ{ddiN)9WcrFL*>m1VofS^n!zTffa66Y6 z84LEF?YSSAUkO)4UdK=Sxmzdvbsb`1Ud2t}?Acs72hu(cS+yhXkWx@m2LF|CMWh}^ zENl{2wVf444+!qor~>2XFy6xz6K6UAAO%HtFl^)$ZQant+!y9eO}R~3rPTGN-Agb+Hw49>G3naO`}Z z^36$eWu-PLwt%qS%mFU*Rfk8s4t$9R|6-6b{r%;3>lW zUUWphJ}_Siw3hW-IsLrPyP+T%>GqsNaURJ$3i{<2V}fXyL&N#N?wWB6UBC((m5dTA zFrP#>HK&3s`nZ{d+R9RV?Rdie5|Pa4DDYFm%cB*jT+{{Qn~5w587ER-4dO4)V|nxu z-4;~fDoV%>sD_X!?>Jrj9)T^=BFN$w$kjgO(eMKHBam)g`v`bHe*{)5cguRoo+i-h z=RQG9o#uV0lyI8o*o)NZ_rPqhUwc_&M78<`>Vi5AZ+*%z$9OK1a6Rb(=Jyi9|S(MNC5wm_K#z| zhoAPt95Qpku5&G{)?1%sRbOq|ov<>Wj8)GOHr**?hS2*6EdOYL4V37-!^55UBhYE~ z`=Ax;XZQ$0ejB;)E3-qCM_`CY=MiYec?6DUF3{)^I{*JKjZXyqPUa{lc%EvcQsZH& ztMG!aB}gZRNdNA`F$t4e({P}0Lb#eu10|Cv?Kv`=`(_W zf2QPsxS0!P6`qIRiZO3U!$o7Rb4VJsZbsG`ba#?D4)QQkY;>$B5QF1(DXcz@9xO** zV#h4V8vG!4d)mByz-aIf=011Rmo(qa>VP`TjP`Yu6m@{Q@+&bE-zTehaB11Q7yRwe z7x5#yvv~wOr7Tw6U2w|sQIw4-Nxt8n2PGqr7d6@xx*eNEUGGpEB>H^rHlxh&nO0)u z>k3J>)Nhw(*V+;>KHdLt;W7WhHIcilS;TBMwI=dpFOzVtjBp1&1_7~hq?j{JWRK@` ze)d{!ZF;d!&nQLxS;UAHo%8;~$2F@NLNL%deCJ@qDfG0meoLgvNl1uwVxVV6%2~4I znp*e3mX!RobQWN=8mc;WPO&S}n?jzo0Ovq+Nl%DGhr63W(&{Edd6};au(T=dO2ad@ zgh3<#b z zQ{-7<=m9q0jKAQ=<+(1H-Mx+_(Aydk!!K;x_sE)OOL*bj^ITD|mis#z5%)EjBw$Sa zqw=UK%OW4ldr^+;hdvXHj_m9fJ*?gVEwj!Ne_9C2v zw91Xtvwzmx(`sNa>EQIu0{zIx@~YZr3hZ;%Co9zzvEZinfql|hlNKMf8MsT)Y^Cvg zw^Q*a_l#n9yGlB^9o8afpONoY1 zN^lUV*W1&+k^s>;8Nzq?!rQv#dChqqu(vgnyo`H zc~kIUKg^LK+1--Of`>n&BGs$Cf%_mc^t&OLSbCMOuQ1gEE9Do9k^~;`TY+1B1PC92 zweNRqk3h-KM_{<>d^e8ZNOxA&$^pYcjNx04&5m=(C}aD=e{Xf3R3B4seO9 z%d9K<)@@ssGHCU(<^9Pfc>7N1-hEOHtC4|AWv63zK1r5D!VkUjLA6J1xoV&;oh{YFX4D z0iSx!yG6aU(SE}$^obv6`E}LjmlTItcShB2QOtVpToK6JCJr~?&ObDUzq>qpQ8!CT zdG+Ce)2z}=rM6?5Jxd;LQxL1so#fht*Hg;uRX*NsRK1HKZ>P>V3c?X`+I@cBER{vd z3#G84ugNY#A{@I{YFzeeMO)*Kz^{x)fGcOi&FNLm%UynloRd1?hRX4Z+3i$Pxz{5r zD#S(s#?DFyaI3lbF~@7}C$qjrRZZ1IfNk%9`;m~x#eUd5a@?`3;^^uLv!IwA$r-#Y z87n#9=}%cq-dzMXj?b;9BX*b3J1}KB*<*YlcT5AnXfCd~2@5(7MOjrTYsXJ%&(unp zWmAbl_2mo{^!#MESj7>BTH7m?GBj`i`K;%fdc0@3pNMu$=>!P zQzk|6+YK;|j*pMAzcLnj!iSGILEu6dI~lDdMmt_~Sl)N+du&Z)Rp6!*hQ&XgQote|>b+m?mB_>7=W*BOr~4D^yvR(V!IC3j+Jq?7s_7o6HKol53E-FTGgY z$3BBx$w8JWZc(Bsqc6N_=2MzX6Vj3dj?5E;7oJ{e=so^n(%B96@3MJxsUQGa;g**^YRuLRp(b55!`FkFVaX;}5Odr(_i)Li>??vu@h^-RyLMYpqT-BuY5zc134 z#(rvG9nr@<RGP3Zvwu1QUU^ zvw4^IE+dCU=dS%J=k4=X>Os6wLN5v4lZA99Z)hvqt9+`!M=~;uL(a)v+{M}bnzt84 zE(|HnYLi`iS3POW#DgeKrA!?TVSqlpWLM7+j?V730bAdA{SY(Sx+tw+P(v2`OwZ=e zz>8=|o+q-$O!@FhP2_m{g7WH8;p*}cNEH%+E!gtW86S>2Ixi0g3kW#3TQDxsYjHXY zJR#I}t<(*b@^`x5P_2@5jvz*Wf9H+oOInP%FgqtfHYEFV2Mn^OH+JHQ_I)CVBSlo$ zONuVUJ|G}~F3rqrIMAgZA{iVd(;9{>Lw8&NL4E|fur?oB>*5|_`$Z`fGVjZkAA!%1 z<0#g^eRqaVj#j8l*9KT}NLmUS-4jhPH1K8_MrT}p+H z$<}v127ip!)xwFYaw#r0wA~xVLgpxA9o61yul;d}>@8ouvJ+?v^ zcl^c*_kOfX-MBLJ$J9<{IsVLmeL4;*&9`x3YIEnVnS&$<*uxGsO`@dZM!=EKml2C! zG$K!N)alkS3|Z=ZBkVqGI(;|0oN**^+K4f)iBLemH8Ywf3 z@wzEw)EO}t>7n1XbLU6NQT!_Jwbdp-Rn5nOsP{>QJN&K{u}?nFWZLC@<0G{lKImr4 zMKq+T-KRR5@UyVNZ*2OS4MkLk-{D=Ylu(JsK!rhgzgAteqL|U8e2;CYM+ywuYB zWF4_U5pXmC9WJkcXJf00z)+E1N6DOSOO^)IsZ5~p^%J9tr+ya|Sj9}1ou4QpqGNSD zuh5f?DRXnze2G&DW9jFYy^cBPX-UC4#ouT8*adI}hLD8pSN9Uh_lKKq5pCa$^g2?X zzEdh@>1mvzw={Z%f|!r}ZSp89v?FDi`NhPA2+K7y4Uc|_fhhwrYFoiE3Lu;0>_qm{+`=3BYb>q!G`ColO8rSh&Yjt$0Ib*r8$=6VF{ zC%*s$2j%gKd6Ic+E|^*EK(-C09qYx7ZQ(`wLi~%4q9Zs(Tduq&Y++Zi!q<(0Q+ho? zH6gh~6poKJh!>%0G%TR(JigefK^%r%)j8gLwuPO@8wdtTx-g2-k?&VC_9(uXDsj0;%0|Y4|_pxySn?yNN9F2NhZR8+E?0>>9+l**Re~1M*iMvT}aA?il8CdngP1xTUTVHutk>s`s8@TQ)+kDz$zPS^;BJ{d#!OrPWI$gg zCYhl&G;GMhXX&TV7n(vTi=r*q+Pn!(&HrO<9`bLHeuk}09_|ek1i;r}NIhkn1ap2M zc7jCBFT2IY0tPjqf?9-og}o;&BfCkKPvb--N1C)SxNUvg+@-!0Rbt9}1Y?>gZfE!7 zC4P&2J~uO8F^Kzxh(%L-oe3ClVGmJ6(R5qcMRy+FsE$G}|0(mS^kYR3-jZ$U9*f}}; z_8lF_F1z%iH^#KuRJ3XzSC)R!cRAt7l#c%wvVc|$S4U=fB~vf2^j!w3nsK;_@-f5e z8tRR8)6mOK{-2`h`7b>WI`BT#0Pb&2p%ymG?QNw{MClJQApN``WEs#AK(CMyg_vTY|^Xfdjbqe#Uz>;QJAmMyxj_~ zH=8o1i;21yw=&sJFsUzzKs_Y{8FuCbjOqt-T@W`wvqKVJr&>r%@G*JP_3sIc`EB)$GQ z@XWctQy&Fvnh&n?Zy#@r{SI~z`mt9VMjSIk&`o5ErLr#FawhyuDj!^K9u2lLCkW4d zowQz|`K>3olPRH#lKn)=ZdYf~Z=Z{qyT899Sg3%S(ZY;5J8D5@NtFr1;0={f!^cmr z*Sa9?(x6_N#ESM~^&sPHRYhPNUS~MS0h`-pi8A9fm zpkDg+%!gv{nUu`!%D^2O9@suk`9 zmy)g0Wp+vs8IN48p!?QLMKd;wpx_MF?5+rQZ?=RBXxRHf95?$p6qm-pC+b0SS@`|H z)PZB6!6TqEUK|*(R(|^$94GL3h*D_ZIwT7fJB_nV3Hk6FJN{w?V+o2`-9gxmqkGU! z6|*7BBfzqz^E~td*#v5e0!Nl6TDWE2IpaN?V$*+7xpdgt zuzslcd;I+3Jd=sGGZTe#3?BZs&_3E<-2k3t1a~Y@oORW#Qdcs3c<4w^Q$0bAZ4&G9 z;Mli;oT3!78mdko!qIRyEA?8#3@pqxe2$GRp0Be*z^%6xd&y%bT9wMJ_aXyNI;jwbxL9$w__uK`*WV z{G9Im{LZe{>cW%)L8wKp)}nd2_LGgLy%+?exMiGQR=7|pR9^4>;(o$}&t#Fv^^iqS zkKg%uvnk95M|0s<6jwg#^H6;mBILM`0$dg>RNPz|qzfN+q|p1+98>aj|2abEGE<`= zX^>ia0-CYf8NVn#`}9cf*SL>)Qv_WwTeOww zf=6ed4!KMdC(_3y35ZW6BJjJ(+7$XwFd9#gKl7(0t&q;sb$3n|Qq`WicpY+W=+<-+ zoj4?))>rYt7_L8?W`xcM)<>XQ{L1hV`1t-2_+hm>`qy1JnQ*7~2t)-Qbw0G_JOYxl zlO>8MB98#-q92R_uo!v-jtpU_JHFH%oj2_Ld$IT<&=MkYr)qoI{8UiJH2o^4P1`Z2 zbjYcC^r8Ji6EV7@tRvynbB@tKzWzzq_5fo+^Oau~IF+`1n6>a=De7WLTf6T;18c3! zZ~gGpmr(h8pNC8f3K&Ba)Nri#iFK82{wf$c`u%~Jby?(=%Yi3W58ZmMcJd5FSGQy5 zm%LdXG!nO>!jnqUG+vQHr)*(o>}F>O5vsA!oB`&zJ6MTmv^}_7+#qL8Ij0JCJA#9Xj1qOv*pdB zYG_qt2nEl`xb&~Zyf;%zw`bd(lN048M``{_(}fSuw;Im+=Y%+h(q4Iqoo`MwqAjjW z1{M`=yy|qJopY(WcnN+Qpcbpy!uB~5#D?SCBx4u)nT!m9wz!>{;=y&_((ztx<;Lpu zN-L=XEp?RSCxos?puq_(o&9KCn~v0#*DffyuFkvoZeVJYcWYniZtoG`bd$Yu?>4d{ z4E3ZR_WR8GQxcWTkjhrzcu*nxxeb<9IRS*wRj8ZFbEeGkQuxQ@_71%C~U2%kykPr-C3CEc6^FD>UJBVBL#R1ENGX&(>v+!&* zWcT?o-KX{0!9yc|IoBZ}&`MGpC9mWxhlVhaN0$QI!^`m;w zkL@EUS-azF!tXQoy6`07oLTBsmaC3ea!1=U^Ydr>7Y`MVrq&AMCkhT3J)`s{`+ANJ zYL^DFXJp}B2W8`>Z%?_4qE?Sh>2`M~i!4kZo;CkLDolQV1eQ7|9~cV2!c=nVO7)|Q z3QeUA6+tgeg7)$BrH#-7)QoM;jn-uls7!73Gp;^~RMC_qDKu4wxqU$QsEt(PTURwP zR;uqK1AXS8Qhr7iq3)0)&$;pg$tdilO!s^YjHeKQ5mT7%ln)pmAAyxznCo`<2Q$UB z1-W7id<24W&mbfky97sbw6R$>`0bHRRUF#uMbwJ*J=6sDDs>n*Jl04&Vdig+jSvO` zcIBHY#@_dyoLzfnCqg*9`;*8c*4pXRNMCbskCW!LQ68mSi97@}!d4;jD;Qa#0%>*m zgSjF(6S*UTxk>G+UQ+EYI3LWaCftS2CJCE7qqT@cV+_9_IU$xve5C0NFq!HhwZI)d zh_WHs&NpJ+r>bun9htW-vfdwlt<~BE!dRZxND1_A!&uUfA&s*|O#9m!`yF(vhOG88 zQ$VrW`TmtvzT6VvEPZKF-59vm((8CrB4Q9ipu=i-$*%hGJlF;L&Ud8MEL+yItKWg+ z4P3ZO!lX@a$*Y$yr09td#D5>S@GJQ{7^x)w0oIj%M3Aez2-l1$?YUmAtT|RI4=Y1X zd7QFd-axZ!4PTTQ99(RZ4%Y$Uq}65G0tDqzmgT0}#>N0rjn9_*m<^ z{^5$UYSD(VVD;-v91mYibKR?)y_xaxin10fQ~WtKZ_nmUErKF z1G4zaWSmAtS@^rAs`q%4<)ry)^URs%$XhX}!XMpe?q`8zacfmt9zf$yv+~F9O)5XP zA<@;Gs*X-yeDQ;P{+qp~ygtkGR2wE|CQKY3t;L=wK=;?vN8q=4sq|-SqAn;@B)%d9eVF`WlN&hYYcha};})#_5g3K$h{5p=|x|YMAcp#n-+X)UH}ej7$u(-1#qQODpux zsg};DNd9(~s`K!)wI{o3X+Jlsx(WSOm;IBT+2I1+?8n?vp8i^sA(ksfrj_BZC`fP} zZE6D7{y|FKtmWv^*sA~P*HjO%(bN2*X|xay7IA#RGr=Jgu|KQxC*x?kBZ5=t*e^LL z8z(WYr=B_@JGi&i5RhQ-TI%k6X3x14l~mxPyl9^N-P_WNiE~-Lkpn}_cK^bxJWV&{ zZsrj}m3felDG=RgFzbu8DoXmdI;sgm@G9JFm&()jj>g!5xsb7a2>uCFY;C_B_ zT5J338*wkYkM!8lW+;=VvgM*&*;r`Scw~cYH}l1>Old6$0h&lk88cxpuknt(7TM%Q~OG zBize6?lmXM(*i&HY?-yZ2z0wB)YeV-=D_pr%HBfF(1O^i3l~%?JckZ7^*$Nac&G@y zam=gF$htYss59v#B!3kWg1-(a55J4<7k_9igKXvIPyGq_P(&&DjcoayeEGM(;lgvl zJaH7yN4YEnrl@W~@3s5!COY)E`6ymkW%BRY%=w^V2wNwshRTy0=rP{DxapWAJ{6uc zxg@PKBsG5LvYWi-*vXHlh$O@<^p??CSNULM!)q;nW|k9;5W%;QCdwhzVa~3T??~(F zr!}=jsHtQWu+$Z~&HjUZGlFO?0!v_Nb!cK84{mVo%3*IN*j$*xPkhuSd+{Pa!LgWI zrW$9_4HR-t%r_vGs@XKApotwYT*uB2w%t>Kh?V^gx~V+1m`Qj9C+mMBqes^uTj zSnTvo$2tCv{U*$6gRmH*2%S3Z#aVI4Q)&up7_H_zOL;sNBVR$ zcT4wgYI}8A^I3hj-RhN9W_TZ+ED8q=@|m< z$ZugB$vxAXCEE+@e_~SqSj_(so4SX;`e%xDJ25Vxg4|>o1}Q$1Yf4e1?shVdD$$Ad z(RdaTWp`kPfGv9E@?)DM>}T$R*3=HqWMV zlN40^zPonUm_^XSn#8_t+kT=}=%$;Gn_^822q0I zT|P@YZ7_Vzd^1A2lox2Da5ZDwKWD7JpKz_v(7Rs-j5aaJpfMDx8jZH7JL$ z^@$Z{qqzL&c>)vjIXMM7dW(fMPQM+YtgnkLu?wT*D@|T5>7giP~Wse904>n^cBt3#v0-lV&4I$J>KBVm!pY2kIu>qo- zf_%%3;?Ru&xPngZB&10Hg4NOGYPA}6LU3R#pyaErPjn!|N0(X5`f=$tg+R{c-4R8g za01vY&Sg-jfK7&^f>F3@NU~+^XQA5$^eZJ*Y5#sfVmACDN7mp<=x=4wN=i zDP2`};GmV8!Oy?z{VD&;jy)gD;Cq4_ITJZ4xv|wUk0jUqqUu?G{W~Hh?IU)QieE|hV%)P&qPhMUYtM~K0>9^IdFMt!qPI(-|?f3gR!0K zWOx>X6yP7DY4k$yIkDGl&^HErAEpc+9zkZqqWlj#T7!|~>+4e{;s93FHqM(6q*&4T zXb&Iq&Vf#}0q0YfW{d>f4e5X+C&8-s;GgUoOfDKVMxh5e@wKN}($G?>=k^1<^FgH$ zY-q0n_6~oBtGXn%N$^9sM;3Dup+gnbf~9_jz+KZvQb|&}bxWPVcUMkaDgE6?6ESGB z`=``3!-5G-hM(IMh@9u9Ra;Z~&_W_$A+x$y@~g_ehCj`l&Fh|erOxP;e-HSuFvd2JM;iLWGIlmRk+FaGEKUkE*`a9;{Ij(VkZ-w8Uqzn`L{^Hg^?*BQvi z1Cw+_OUqC7wE6fJ%++F`!`GaIqx5E06=z>zi`R@=Ra~8uPQR!O;0fXh>0Zw$u%yuU zvy(JJ@Pu$vQm=O;ENc|&t{kxju8n+b3|5Fe+#5y#XF7&og4bgl)gzU@I#Ct)ff)mU z9WEp;J1IbibOX*~Jju!;`Yb zTx{%PN5tYFFNU=9>aAxMIqlwJ4F@QE*SR{=!wfZ;K~DqBoG*Cd?5AgXCL*u9~mEvFe7BTX&dUdt$ac7vBC zbF~ZT)Hpw^u{!UlQvblN-v5DJIf~rLQ6Blif_pE5UyiRz~X@j){fYTo>|3) zSqwsZS%wyZMSj8{jfM;v0sE-sczfHodm#MYV-)C>r&z&#+49+Rx<{~EruICqj(k4p z^H=RJZE3#x+Sh9*fCLYIjr~ch9}hSRf8Y{7zr%2eI?9I^J}(!pD99CcrE>LTm|Se! zKo2?}iMlzx-&kWwBMW#98zOSMJgrf3SSH<9oa@iGV4Is0stG^}8|?Lcy204x&l3$& zcC!tXGLTk>`zDMucqJwX^Oj#{!@AHH20$c=EF;3u3A9AY2Xt7KD`p6kGFM*rkq-Ft z6*H=hBRlyJx~a2f>K7r}T+LB9($dTGP-`lV=!&(C)+?6NTLPh%=Y=IxT0&LPAc74( z=J?j3g0fc*8`8OLm`z&i@%sbwiGS+H-*?_23$#iY`zR~*w}S-Nzomy-;OJK-M@YWL#8ie>6=wW;?>;Ji3LR^quF0*&0v23{B6~!4{uupy;xyPSw@xo`>Wts9+icowTn`*l2W_(A7sO+Enkp|-c?N@>H~g+IjoZr{=R zY_=E7^8NH}w<&Q5aoCda0#S5mpisZl-**;@Nah{;L;o>FQjtvl^`zQO!1r98j9E*W z%sPqJI5xESuftI7-PW9kjuiZyC{Z+~wwq@k0n1TlD^T!Wv!TZ2yHU-+Wq{3@#f z-hQ*+M`IYq%G3G5U|p3zU|n657D0-;T+tn zVNuOK-KeQg+>i-cPV$J#bK{#zqCvUM{ow-;!`k!PlKj2#Fvt6Y$Sp4n-4+}Z*<+-8 z2nuR^FE`={qk9X_8iiqWul+uG0V8hgFXHE-#J>=PTN{cmU~vdhZn=;tHHCY8e82+< zPf7HDrI5iQ#$h3NsjhJkE$VtVFZ0ujAf1pC1wq+IKtI3u9&dc;&*A&Ohx7l#-zedK z0^imD^ij6C7E)@yZTXzsPntYL_(|oOY8|6gH6BF;A-mL6UmwBy2eRGCSPH76`?)$x zcb4j+-k&DXa zK?5ujd2eVK(g_SBpl&T6Q++Lj32r48QwW0#&u)d}&gxU-b*(q|js|il`3PypQ5g_o z&|`_I>lF5iVT;%jVg#{Sgn%D`!MHonq_@lb{H5UiqDyKDUpkij=(2VB$E+)@d241C zO6VkEUQpcV3~8=uH}*zH){3ny8s@K%yZQW*BX9qLEAt7cj9GRh}EOmGgau(Xnc`bTt{v#duOvLG#_~s=N1|; zZKsz>Em<%$)&q~%5KaQrp^Hn4m6i_+O}BK@!jl(=S8q2?oUfbIL{>Ll7FV6;Yge5Q z7=+9Zf7Ri>o=kl{_BHlQ!#}*u#Zp}_<+B{~SleU`J;<(D#7W0p1=gNG5H~pnY0dy$asX zuOoVK+c&P=mIj&X8yeQD9N|9YyV_`sIZ4*KF_}z*jSQSk!wGS8t`G9!ZCLo6JJ690 z1S@-*hSi=QZ3Z5&vRE#UJ87~M!nz&r7=PKd8l!0anXx?|@vfT4GA1nib8{CK>ff?| z2n*;*$7oc5)?H-Er^_c{-c1r%2{k7k;zBKG21%Hb#8^%uh#k{pa?8+OERR=6>T98#Twt4fkC<2 z5$TslGH&j zpKG)(`(i{Pc}97=pF)+Gw;0^ZW41*!oyVFe9<4Ny4V|G`G(uS|_WPfkS%u z8he<97k6yFzL^v`^6-G=So}dZ@W3{nv_gkR0HwP5&fSM*Xz%=RKPly@p{#)Pw@9nSS zM_{`1L1qJXa{H($a;BoXlW3iQ9AiDC-R-|hq5ICl_#9yf@>R6ru%PO)`Ut4n zPxqLtx_QP%@CCh9@Q;A0BHiR`SJVpZc;f&}8H*($D?ueem)N+GsWkkmT8xPKSt+yN z(4PHo;2E(VJUA6tEQQz38TRk|)9)ogb)m-S#?{}PCLqORy!yI8^a~<$ ztW!4)n)_tN@5G+cpBV>H3ccg%H)EdrE_$~jcd{bOl+|UYm&G@S)g8Can=bR4yq%32 z4M&t;vL=hpyEx65mxHxOtTRT_Q-%65Gv!FH^_;lZA4J{1(f-z))kG}-iAc5t|4M7sZo|Jc3dp!m)+gJB{UV0AwCtm^9(JP#SMJODV!u; zA*|j}9f$7QfEos2>sG{<54dlEZ_*AMVYH z-Yt?YWGlPK_a9R8GXDN|=;R&w@*v(1mdYP9y0xOI4lkxv#jW9tbofIyeWc#+Sl9;v zr?7*9vL3d`)(4p1H5>lGCw2FdH8Aar6|%P9`3R5|i^9@6AAtwFIOyOFVe^SI3_%Zr zZC7Zr%bWM;i`N2nu!9QY5Pdo}ETqVv_UQD%|L`uQ29`qn4bmEQLe}z4TAbCDu1b3&G31 z5E{vmeI~^Wns@`W5hNnr{qe5u^{;|yT4VoYy6peaCHX(QNaO$T=dcwhGbBg{LyH~? z3wPZqVtAr+%^h^+6%3-9+UnClDOq9oUN;7H*uUdIo1FoHU+<9eH9@28j+gFjYU?&H z0)!5ocqt4zM4bkB_2*2(@8=tGjOooF>_ld4%+f9xQp%5Ym zE|-gZF=#ka@Mn4i%9_kRsDv;Le`6`DeHG3koTp&}7bP|@U^ILNL0r(@F4;-NKk7&* z)YA_3A4z?p<)n<-F(F|fiXy^__-d25PyyG~ef9mAA$Nb(q|z4+b0~07rEEklFDaJD z8i#UE=M8aYq-^JR`2rfxv|tv#@pzxBx$vYwxFe#kR0f?bxkv3i&%qRCCd>F2(?dnX zM1rr&%;xkU2$HLJ|C&dI1-NjDs^B6|<%g<3j}uS$WtomnvQ4hw}p) ze8fGub69Xt5x`f@Oc%UBQ*$hFQE9O}SR!VJ{}W6TJARIN9Q>In==M9VfrN73=A{n2 z#=a;f_TFG1W)b-2jXPl=sBVmz;$+r1s}@(X-d2iOzz??u5hu*yWc*77Yv41l`ks-7 zmvk52-m_H;bN5Nag9)A8p@ox_jyGz00TqWhQ#&MYMz<~@^f@%Qt-Sjh21ciK6Y{OjQ*&X= zqlXl0tAkXJ*)PnoPu8nzWL-ivazQqh0s6H_uHDa_S4dpw{gEZq6-Y=@#89Q-onejB3b; zYiQ74`IQ9~6ibC5*1&ai{o$PS&CxFpL~PgWiAC-ml@fNl6ZrJxWLpjm_YevMe$$x- zzU4*aU1jF^%8Js?H8{#Ns!*ab$*b#lThS#pvJj%X*E6d+JMIlP7_k$lFQPFsgvR9f zYQnC*VFWoFI{HLz04nqgS@E4T5U@hFo_5NM8!vBNHR$`sO4aJmu+*uGIs}1S<=BuK zb`BfFh&)Mv2RopNlKDo1`|I*2*MqLujfurR6BVpqEbP*1YBVMK?j$)Y3aD2$??(3y znFK|$v~;ENwr5}X_VCU-xIN+3XJ<#H3^kqGn!Gr<3eu)T9e_pKB8Bbi!%|{?Fun{cnAyh!v{kU0HCYEd72X{wIC3;eKWC${ zxASLevkPAlZg4E7sh`LWZkcq!aSb{kJzehJoFMxUXQ3v$bi7dcR;2lem(b7`^`t&~-HBqe!?CD%my zfD@hPwh<^_C5ZNP6ud`5{^Mqbzp1z3V786X`C>?R#f@ro-)Yo}eY-CI1AUbTax|;0 zdjHD}re;1Wy1}lKn25;+DF?&lX_n>+qc9H(kJ^gvLoSy}870$r(IKCl{o?h^H(yZ^ ziNX{T+kD*V?r3Im?y=lA@2|^XRET>{)^u;72J=JGYQM?O@ci(LFh=SEr59$f`^HfIPogIrew_X9X{f(n#Kv`VE1TjxJ)mJsEc(p%%7JNp9R$Mu1|5VN8IYOqK42-9v8b!vZfCO^YGOt!dfZLs%v6+Vgd@@P zgeG|`?I_$l?Tin0jnD?{KAgzi!8;m<9COH#zgekk>^1Wu^l(!H>N)II&Kj}E7$R-^ z?#G%XYt$CEf290pt%xa5|mrPYNr1ce_u6qM!`Vja>N9vc~q+ z^x-D{Q*9X7uhbRv7Xuxdq*(jUtmkMd9&D+xX$beJTNzo--d+8R6_=dA+lQISRX-W2v5$!xn7XTCoa#@i zj+0`HOoe6adC0nuPf&^R@7{ZXvvgcD_MPV6jw;n0HI~mRfQrcqe$Ck%QZc>x7V1#S z-B6=jOh-k&`8T7_~Jjv{h1 zw1xya?V4G03iz#TbD!^7bdnzZ}Tw7mR zJ_c`uTjbT7_OW%eZ|cmZ%)EuHV03iyH@SRs2DVJAsa{suK{0zf!385 zvcJJ!Viam*-+~b0T6tM}6q7QRxb_HG>tSlkX5uv&^SFmizsbXUb^Gqq2#%rt6&<4I zCKbh}KW}_BTuBzuu=H8i8c-bkxN-EGHz9A0PO1nksPbIy8Y2B#3T_MCXP_#R=ct~# zG~LE40sk}wDoBp08egzS1VjFANHy#mabz*yn4%UPdyB{gD3i&oO8&B{; zw+IjzyppO^xFI_qygh}Tn7Yo>3bf2`Xe$f%ycx!=AuAtE(V>FeN#vl~Fm4n}v_+@E z*NkaHcM>M7oQyHYQZrho+6|-dGTtC@E26Y+(OM|CMCmD(kqw)eJsHB3Ywv@o^Wp{m zDCDe)lwD?_m~Y%CoDS3YOkeOKlYHzVw-_rj zeE49jS+k05wbmKu<#bE|H0cMbQSs$c}e1m|MbIo(1w<`+=l$cj(3Juj# zp)6L$qrq<0Ds@jm12wcbo5a_WPZ0eKWye@6l8`C_TOO!v$=BRKscjWe0&y<9H3&?7 z{jlhPUx5A}=N>!v%$wAokSyIa%&XM7?MdWingCq^%L2vk*mWknGY8EtDLqrupTg`j zDi-X=YZI7}h7>ekQ~%c^APn;kgdzXmIbalJ^Mu}Aq|_aVKj$7bar6G+4^tPk1q+yl zJm8YQfB4+*@Bqs?gq%oF9!2b=oxQL~yS#zz`caJO|D5KVFr@1_?BMVYc5pa{9UMSv zo*#tV&c8aw-!T?(ooQdTHw_sYwDk|Bg&`hOG`H{B)fVr(2iIwna)rsgUT$yvW)H8L z?TuH0LQ5FuY5$b$BJaf29Dn$EX=P26K(I%6mADHP#v@?HV&tOFeY7_~u5QNoU#NTQ zu&CC(e|Tt-?hauHDW$t5MpBgSk{BB46a+*%1VKt^3F+=`lxFA_Wauv6#Xisb{LXei z$Gy+*Jny;A`-j(sGi%nmXT?3=`}-;SJQxlL4_L1K{dLIv=?hs}!qQKQQ{o^v)5W8B zb1>rBiBTis@D$7y+Tbp-$0dCwOj3X8;{M?)0&T(nywmPm>Q?aGb)xFYnWlObz} z8Rj|Ev3V4^E=ZbMUhXp{icsA4e>@ZZndju+y>0*am3Z#=D9h6Y=z`_;9&h9J#2Q(m zm3X~NFHFAo8=3!>^WcoT-G~aAwJVlSF@@HPOGu^)ynh(5cZ=>8v-7~qUE6`y6#EX} zJf<$cCA8pNQ@BZx@I>KkUQo<6M!`KfpVUc9ZY>M)#LsuEX!E}#_ACBv&f+gOAj5h8q$F&KiolR={>FlPs!LHrPg<V#?UUcgaUA`k?#0fp@&#W`x1c0W z#8T(-NwQ;2)ffhFY8c*OVwyz@F8lK`7yDked&<3M7#}|=z)59Bj&Rxm&u=4s%8O_2 ze~2JKC4m@}w$RDF3Oh*3r$s!!{=R_6KV8YG(B-Sp4R6rj`WSw=O;>wFq4{KZ~o#U7o2%dWPk z-TT~clUVjB<1;D_K^<g>q2>s%NT(_a#$(;$PKvRA--SJWTmT7>nh z>woJqEUx&q=tUI&_Q(QceZ>v7yHVT49qv&)<9X8MJ}e2iT>aynXJGZQq-EzwewryH z!Po!D8iG2pqw6|!XD!nl>^v&4`He;NmrovW{R2$LW_ST7KVV>i%){)x9?!(UqR9f;Hx=7m;T$fV$`utFJ&u zEvg=WX^{psDLcY?Y^$l9u*Or@j2nEe(L1@5>0ABg)O;?%b|*(*L=dTmi|V(GOIdJ6T)ykTP{dK z?pXr!&gkgUM8hh1G((UscySE4-9ESu^{`luf?KgKj*me6+}MU>y3z{y(wR9q-?p~f z;PG{A4EZ)RHROAcyv|JM*MoU07zkC z@-AoI=~(*xR@v@RE-84M%K4N^CYqR6cdnXZHqe)$;+;!mzueTJL2@@mIW(o zeHSk4g(<-?wb8l-dSEF?X1j#Q2l|%>!K$TI!@)nLH!Dd==?Czo4Pe|J{dMDXs0|^ik96?BXOxJGGKXwT%FoBO^IPXaH31i}7XN+3tK3)fVa zC4J?Eb{)}^Bq-n!Wre#5w*iMM=J+HWFwf6xz!&Q2B-F({A~Hs=#G;m#a;%cgPBqH( zEB0og4~srd$ZLxNHX>FUXv-n zCVte)l|6H6?0lhVnWK8)ha;*GdiEdwW(odY7Pf9QznVvgH=g}t2*J}#eTxBdy0C$jvSnje9zxPQn_DSQ$|TyAv|-E|os=Qw)|&zGQVsz55pB)4%r#kGpPV>gr}4&&v2A!n78j7#nlQ#(U3pao$h z^;fWTue77xS6h(FkuPuedfw}Z9pmib$WY_nFiO>7R)}6b_!N7#1l#cv2KxS|#Kpy< z2!W1po(LMXbk)G8;|-h1%a5Q1s*{#6?9-+dWZ{M!i>c1*Ki^v(vcK={DVgKg7 zJWRT_VfMit2cfifgx3Hm{U<_WZT%%X^|v#pzG2C+j1d|w59(Ph6-r&PL9p4omg_Mk z@SDP7Tro3~!omT^)zL)F(Ta{S_TzUvy1EgMIq!T;cFLM%)p=>phHs2a5m2H?d(O}C zI2!x#Ct7In4aJw0G2;>_+(BQ7FitjoCUJr5o&-=53ve-QY+H+}lic8Po3lWwRqGT@2~NItqlPf$*G7>IkfkSpN>*d0{f+Tw!3{R`Ld;Rx0h*&^-~Hm@_o5!^H=$5IT}ysY40K+NJS$u z(}`nReeCWKVi;?}tuJ>^*QgHRb6iL9>Tn-gV=$G8Sntv@Lqo53+6BS?^d@NEqr}x> zfG=-qI)skE`0CSD66UwuW>;)GEEplrYAk9%tVuYMWc1>;ou4~|DL&*tY`x8SWIbjJgZOwD`qAvso){HKYqRoALgkx}uJwSCwdbkmm{ z${Mq{yoXhnNII0QY}eS0O4ys50b=zS{P) zpRs&$c!b#&hdr`U00gAhXRcu$BI%aoU=vYRcvo4rV5 zZ&p@E*mihD8O66FAUqJ>NiSXb?H#%RVN)}DKQ1Cwdf6H<9-V*dsz_$7s9fMN^Wxri zOfNKFDq7E=;t3>IIf#A2)$%Q2hQLAE!`G+|ck|BgfJiSMf4fL+jF_D;;27PuAK|O2 zub<34SmgqlK3$vRl$r+Ff$*g^oS8+LuI|+tUR^`e&qM)M%*y!SCYM5?H&5waJfBcJ z$*AQ%pwOCo^+nDalTMJb;`N8V!yq*U$`|@WrQfLuOX9jhvwna~riM+6=5ju}+za5^ ze{USh9doJ;n>EE$Np()KL;VXgQ^U>BI1gN?YenfRZ*L`frT$|<{&qLQgPD?APTA4A zoi}_Q>@$wEXbi&x#gg`J&e@Wmr>3S2C9$rvD~N})+@GIx34q<+GQN`wzFwx6U0qXn zrH)2Vi&XOU$R6i=g1w8mS22$jYlrjad4kq+-O#AME%mWeIgM}Dox8zDqGBk?TbFu~ zd2+ljM@h#KbORoVI%%PF(@k%46)bF_BJ#bs3yojR zT#Wch^gqsX&RI_Ie8!%4x3=FNzB`n_X-!N3K|6UAlL@aei+57M*XR+7`o)cdiHQvC9Qanm6uI~3Ukk_YxOMeoutV8#T?Knw z_POiqwfNEV7~a=W6b^0Xx$SdJ%ilP&k;Zl`6u?mvmHo2|QLvqZQSG zI|sA8cq&rf>0(!=H`5P}WeXYu=Q>91+KF=$2_i?RkZ_Z-01*e&*gU9jD%HJ5)Fe6CA13-i2w4wbRec@dTy8 zfT!9)erO^_U)Q2fmDzqSC{t&&kmLqmWqXcB{dzu>sOx=%*thlThS>qGX5Qgp`y^#E zQkxRk8EEGZ2hA5D5t%eV**os+C{q%tGcWH2hij*XKZbx0AR_Bkv`Kch%c;mO!4g~G zh?v`+IOy3W?wwsNU*uaN-O}ev6dgbvm3_;Nye)=)@vrt${G8cy_&T6a{K$6h1<~*{ z(BhPy@Y^Ob23)u7z5&Ge{~1t43fs4P@67LiTwsVfY-tp`pnAASyz6w>w>A(;rj0sz zh#5#~LlBN>bWHwh>HQG}w2?`wUc1Q5qZ5AJCP{J6ifG3?1_Tc3XMLc?ndUeMF)dt} zo0mhLCmXlPv|0C9tz>?Oe1QMl&eH+MP}veG>MwS~%i+hYUNpfsq!SN#FTYoeH2^n> z?X#}K82ft%nbCD%wld~fH(A}jdr7lPjRb1r_H1^mpR>kRj{ZQ|vub|Rg=~`12$>%>SN2{rbnfNL}*8Dt_)cY#S3}kxdx*gieXJF96z8iEs98U?C4=XQdur`rGFk6_bHruydX0kkHWqp8mj@QbO=nyDB zL7@>7IQK56y`L<4&t$;*&d~gwn755c?e=a~BGF18prH)2InY$88(r?kHWZWuGWYW* zxVFkIX-;GAZLENE>x(lUxRd;ZR&mp4j_AAguFG*17)?1#HO3HVh>IC1u5Nr$-aM2S z!thmQJ5Z&eZgQ=nG6wk}KGyP1tlXi2Lw-#Fv8vxVGrm>Yz3K_JqxW<69o#eLFou)~ zCzw8I_-R%j2cm2`+W{+^M2C6{7%N>6?d!e9G<~+YrX)AaC9`%~ZfPu*f#`GZ|_nP&vkJlG#IB8a?7dY_hpG&!0KTHNI=;#ZltlKb@eb!M=x zAKui=xuLCkDACA-U|5cX$&=@3zOEi@npPUT&T@@u;>2?X*1oI(WOVfnm&)&!)%IbT z^7K}O1E#^EVFaPxS;Kw&1os}mtaXakBHB9bm#!65rCx?tmFa#8j5|o@dM3Cc%Gt9~ z%qHz6Qm0+-!?i=!#_badqrXotpjQyz+fBnKNJgIma=N%)%kpJOrZUv3AI(r;rcpfL zFknnrY-p3Dgm$+3m-ucM2ChG;-nf^)YHGMyYXBgGP;0$b!Nc zyqG`^YXw@L#LMn_s*+#`2M;7{jh206S$bBAYdnUAsQ%1c&7a($Ip@33db*Y4indrQ zQPZcgR_sru>jHL(y%sU@abogw&A!^EOafN?7q9rs`?KFy1Flmk^!!t)AGu<=gZgR} zQydRXV`2q6g?~9_32HafWv}LKDEhXyB*RHHrP`2_kVC3(F-?%A4}a3xOPm^-sM4xnBN?Lbe)>`(Jr zvuqkSG-H*>%%uHLhPph!j^dC(I*ogjGSYLout*F$>w#kzSj9fOxjXc9iUz#lS0Jn6@~xq!st@k#KI zv;b+VwREIdWx4*nu!r3P?+1l5lH>%9s};6`QE!RVoCbELWI#>>nT=X;9cn_-d`Taz zb+Q{m(}kupB*IAx=-Eax3-Xb1H3M5$aX|u?MUPE$p@9;Vsx|oos{;8}r_s2Vc0lF9%_#q{Azt$NROIS$90_&{iuJ(`;R`0NulwYONLbdm9J>c2W#ucf!%B~=U=1s>R|-Jq@v4R})X8XQCX9VRPQh)Z z3|z44mR3Ke;@apyFWjmVNwl(M(doCWs>BL5eq8zW5D6HJ+11q*n&tr2;D^kn$<9BU{!|BQDAJf z%x>q$IHIr-HBgD$mtO)oWT_8wEMXKI@%Qd0;4sKtVE~q@t~*=9dXbQ$qekMV!^J#z z6rBg|;RRux^ge>3o5e>@meTQMi$vMuS4Ie5 zOp%>8ohYW)Mh0g#6CH-|-ft^^C4-Q)t?A_`3!Ins^inP&^&MlGLYiv#&BsH+G7^?t z?${k&vtWd|DV#4=Rk{09D1NTfYBMIautO6p!oi(4>|QR?(cEV{;nwM=nR+oJ4^BQ< z$6@62qr>5mV_fIvI1M_9?kKs#=SD0vcs;l3ptO{#(Z@Grk*1&)>aTK-@%ctB==f+o zYphbYpCahZLi_yvo;CQMhcQhUoabA@ib4Wo z`95e2!@kxm{d5we9s!Y?_FO_$1skXd+Ju4{s^{rOijHY2yK}4&Nx$xdA3O>soeFkk z7~WNEUuQyje58lfV{ehDz;B{mjm|aki&ZO zou9kQ^yZ6~yP5;I-{bKJ=|SzHot1;*u&85aUw2h$O;ndo>ZM$mcEzQ`6dah%_JDPu z%^pu**{!ypYDBkmbv4a1)-z6r=655g{PIMC@&{-}1gJ(O*a4wG8n@p8`~TK97T>8E z_lX0aCu&|W#+NkY-+kwTkw0`Q@T5wZPb3AQTMbQ(wd5D!P_4jRYPhm-o^b|UZ}WhN zS7kgoK7$I+54as_(eYC z?2`%(RD3f;#Vt*r&+r_1iv*1kF2NAZ2l2@;*Do1i)Uv-bQW z@phkGL(_oEr4XI{=2J-ZJwh^?yERCntR=tk1ghNIZ~S#=Zm^#N`~n@Z=@py{1i%GF z@I62vgZ_<5@SnR$?NSk+Ek#?MY@);0iW3dhnVzq)&&p`kWF-W8j)?OAPaM+kAmP7* ziho`-eb4v_g#pYd{x1z1fP4S7_$Y4#5`;#m*VW#RZu6ayejl(#d%jepjLqMe8R&o2gBq@T=Fm_TKLvNcofLL%OzYsIBu|+AN$RBAnIsDsu`7i?f|Q^6%?9 zBDUMR?y+2ThM`751DudRGrHDh_-|zWf?pI+VRWX^m6TUSC~iW1M_pX8KNEMGCOFs4 zt+I8*KDRlHZJ|Pan^#m7`yxv~=Q_%7iy&_dyDGLqv@% zqHK`r3)M&Rx|F3z;2>4d{WF!*3ul9Q=c4{f-iHgGWbqcgNN1)>-A0r|w&x~mGZ}@A z3NpI=LCuwE3Zlw97*uV3_ayC zF42TkJ4BH3=A$R~S0niam}W#hRRM|qPnNYm32T9!uvcDtF0^@$l`G{mHJW?cEJfH- znOKoUON5Jz4itdpT=xhDDVkQy{(?hoEDdfeeX5Y)O6@oiIj=KviO#I@8#lVg>WQ=k z=IW{OtgBQJ+BY=&sW~4qWxTxnESZ$J`nGmp^GxiR<@xvIz@^UqF)y2Q=jSUBoPYM~ zEP;DlEvfHM6gkW@e0_zJqfIAozYH5Fnz z;5(dE{95=#&?4fgXIVwP9uWfRE0Kd2><#+4deFoZgen-!YHthmDj1i?$-Wn#Xu5(W zACojNp?lT_^rvdzCl4YTgl(TsYSx8J(QBK&3Oh5abQrSd%emu&)@n(Gc!&pUr=fE&qnRI!-m8oe+IOR4eHu|C+Efw0&mgYYXL7o0A z7>jX!1k2TZQk8F$VY(tfoAy;qu&YsSUzme8PmnB8?YS<|&Xv!S7gMu#r6pjqWU!qW zMQKl`Tb3u_s(ueLG>&{VaF;_17X$`M#@}nI|KP)W8*BwgIwf&Vn#X!?3U0iv7j7eo za(;lenqis0GnyGg`0^JmOMesMYl;^Dc`j$o?TO7^!n#dcga16j@K+L_>y)8&Zpclk^#Gd9U zuCBz|yzQb00mlt} zW8aSe)VRM;OMr|Q+?_j`_u^pICG6Ro6^#jN2H&-6LJjyMwI(?2=-o4!!A}~Ubd8x% zW(bcyqq)aokitLHkHl@md=u?4q&?`*%d`f}^;EGUegMEZkB6<6^zv~FM%4In{gKR#4AF2yY89Ws6uX3xlf%m zY2?IG?%cYE;B04=?X*8CynAP&!&7OsiEGUMGrNu1C{sn{8+`KzOi9SG@`b87Uk@M4 z-wQ?M6}@@-OQP~O#Pm=R;e2aN^0H|PY1Hx@j`vQ7k9#Kia_r~nf{gEXY^*VeEuJ^o zCp6x?{H(u8%~!7VV%*1eO1re)8^scTHc8y&Ai6Z9WiEEciL++w*QeU_yADn$ui+Vl z54H&a-%!gKtNry0=`zXn9i~(97aqHTW9QJ8c~@)qF9Qo$B2trhfN`x{Ef?5MU%ep# zc&fn`O{hL7kUvns3l`3#cAt(G+dL4_FNQ!}2->+kTuq%G-V2s#l9d!?M#}pqYX_wC zJ&PR?LF#wzwjA0o_99L@90lbSqIP+t_=iBktsq2Jz>rHBVD|3kR9cJ(Pi2hZHfzSA zqDx(TD%4nwl;=8d=tGnIn+2Gh2=1J2zr7XFD+okq0urm+$hQ1jn(t7<-U5HM zxb;_(H4<#}$=SP{aaRuN@zzyf>XXm%*(z(t~5zB6nb&DVEc6I z4oPGfyhC&HD+D{8Ae5bLO|6I?>20#PNC5U-S>IjE1+nokr$6@%_(v7fKX_fxk76!p zw5Xz%{d0EZSoVQE^++Eyien1V3|TfSV)0I0fJj^W4msm~V#u!8*IX6or{TJL8#7`- z?$Z&c%(FQ(bu(Jdt*uAAW18X?x0$Bex0W;^Hxcz2cdn@N``yePjoCcoumnf$*zLj@ zU+yeV-R+sT4lopc`+7^YickP4>tB$1ZyYxtiQ}DlJ*8w-;7I3go|Ru$T8x_xFOl$% z3tTrvE?dbc^dr)mwWcN+GcJo7Xx0j!kai%g4L^@gb6=K`9!8_wPySNUR6Ta|9eOD! z(yyBrYiVdj5#!I|;6aA$l7aE}t0Uv#?7?h3g}iUQ^odTVLLTww&Z}$T#*tImz3efS zdgbcm?T z;N#QRhU0tZKSb|>uq@)gibX*A+QNHFs@19<7n%CXR9zQH?Nc-$D@e~Iu(;PB-6E7A z%QB<2I1%)FV%l%(Huc@lMMvKSIf}CmmJ|`C62P$lk+kgDlcQKjMf%WiJ`+k zu7$}i(vnVgS(fMR%dLse`A+Y-*$(m3bI6{}AUUmCfC36X^;5qus2p$CTF~w_&Z8qa z&>x?8hKvMO7P~;Dbs`FWR#v<=l>Kz9V#-C>B~mu_KD{HD1P>P+AaMu#RRDK@Br>if zOG`ejzuw2vZ5NDwXwT7{Ws6;QZ&h6YHzmISa{S$aPOvIEOl#*!Eu{UE&EI(+5*b`v zEGU=9Zf&V>5VnBtn?Pt;K7}Wk$RkLAV?oHtpa;LalL{{>D8goXj`cOfIm~)1%GpSD z5bv;cnDKPrV_*g$e~iUw2#Sd4gs*xQ7tkbfnZdLZFxe51iA}i3P0&$-r2?KnQ0A5X zzvJ!ye}Biw+yv%*tLxie)h~)aTT7;hEe!(g-_&n!t01%R;V|fC6gJ}nk!m;OV}0W&?I3jMw0@#i~8H(yCt-^Edh6sab?U~o!vgp%2<4wgSbJ3 zUsaEp15_Q(mN!N(pW!RxwSZRdAyg&tvj{E*Z_Vp^z0OQVSIvs)`S5lu99MENK%f%@ zkpZgf0~WujW?)^jdjqVpzZxD7Uu&!qw7UQaISr+Q$a&O)^hSMKvXaO^3h%l<_~V=0 zd~4Osgzw-maGCtF0Q)jv0s0Cb4}sPK6bk`?v|p>rgJOSuyA79?)-*OmsgIi;tSi1( z;A#!ZpbZ$1l~$CbE$LBxe4nICS9Hi&CmUY8y#=SSWlk z@bO+&x!y)k1Uq~>yNxZx5^4RMN;hiB$P@3`F&0fLYxdTmr2*hvQl4k^TCoaO65Xd= zP`Z?|Ahi(0+Dp0;d;c$bHIy#Fg*%9w*hd+fM|XpYn$jJgulhu=!IP4S5$83Y*d!M62E<& ztZp9h=3E*ynAew@?}FGYR=s%DPsg}!groGmrB~3vKY@g;;en5>eZGWgMJn5N_9%~* zJ;6g#O0XUA*CSi$Y>%we1LYx)@_q;?WF1ka9qaMa4HDw*1*s-rH|2CT|@ z?eggAY9X2Il}V585oRLPhL{--n!~;saFp%c#F+ENxHU~5O`BDXGL%1jT(yqX<(6m@ z?ET1hY5FDkj(~}T5SGyJQbP7eJt(K;4QZ50bxrKNZm4Zh04x1=ubn@CUw>SWi|E!` zSJ2+_$dGV`^hOQU%iv_KuTG*e(mYDFF~8FJ81oJ~KUelMb2Z}$8vJ=IJ# z3mG9CGow!eOw5Cjp0k-i9thMe#4D{Ibau3;dD6Ha$`^}-W2giZ{XX}D>^B<`WUS0z9O=>kQIMZ4F|7JabKPnN&*9#)Wp-B`IbhS z>|xtE=GYCj8`z6`NeeRjAY!+v<>?ok6DV`$X3rnQ%@@ba@2yKyj)##c=5|=80rAy~ zD|bZjM^$>DG;X^f=XWN{0iSh`JXNi?=bE7t)Np~&*yK9Sh#0Ma@4R!>Zy^zZEQw=n zCi|qWg@haxDC8aM3!8n>mZK=PzlVm2Dl199U%U)7fXMuMuxEfsZu^^rc72rpp$PtS zVB_ygdO}U{WedD}r2i*ZR+%C2(|g=wW}ZwsXhtqWafMlzPujBH$28vUiqfD+GRHuj{u4=@!2 zCXHHYDPv9(FWYIUf{1$OwENBdOpP4@cLw45(-)PmI?e0UUh9{L4Sr!>JzB-iLZUi) zkYnit)w~g&WM`v)t$3hfYel9m(86L{jVg#_$8WYmw(KwbH#6AZcTb+Q{=yI83mWA2 zHFVU^QfZu!^c#GN1=cRljg$0g+Do||Tk)~o_kBM=i9XFK&&*O$i_A!~6ZJtjhF?D&yUic;D0T+NifwuneDf6vmB`i4pWtT70g6noP zds7k$AYz=A+ksP{Su&yJY0!UYL9>!^yig>7I;t=vMu^DWL_LV(QZcqg%7kmSLfF-t zzUObwSNvo$0hp5C7Bs&%MfmoIJ`+&96NN0XzOOGrPd?dFs9kPss6JeMrs48tU281* zrKYgz3&iSQH3a_f9#Zrn9;NZ}QD9T99=)Fe6F* zSDAusFbep_ysO65f_kdKdfgnI!o=Q!Bb#hK-&bo}l5BP2emPR;69wSmRJVAz5`c#@ zX#Nck|Goc=vN-nlFI#ceF$QPGyy$Ue)zA!q+Z_6v(f*4dsMg5r0_FC1y!iWG%Hy(n&D2qj>Af3a2%$`Z^W-DX8Yj9!HE1<(*=s0hDld zr&p#%DX0%4A#8bCizsH7@8|Qj>+RJ&p~+v?IlgM-mW)0v)-3d5OJo z1$_N`!|1?r8t~nxt1E02SJ{8&E7Vj|GsZLVvaoOhLh|@6vAVV$`Xfdsq86LDL!aYw zSutA`f=;iKRMeAxvWfI2#<$SvEs3cNW07l584IFfY`#9!VC4UaJXWuBFArx|wCh9>&EHl|`SmY-3 zH6>kjAw!3*-xp^T!uh3N0bqbzzW*H1(MF_hgjUQLTNU@vCWso_UA@*-irXMi`9<~m)(6uhgMK+(+pF|nV^%xqEIx3=w=J)3;ln;OVAyGJ3Yaq?Y#<=nQjj^mD{1Wh$=cwjfvBP} zE%l!??IYOZo<+hr*pAqRZnj!?CZ=sSI)b0a5Lkh{gWfh7&PTMoB-L>hT9_6uyRvoT zc#EBsXN^zNbo1roG(gz?v+v7!r=%7nuIAd-Dbfy((7IHCOjsoI$_{I#P6XE z@zg^JB*5bIPuwH`{ZGu14^n%AP}*nlDbu&?$4WBAda`4i#|G3hV7rhLa*F< z?Y&%V$_m?_u4V0%qT0lE_Z4JU%m>3ABej zM*Y&OzUSIDTTYK{Ja->LlhnIf_$DS+m6+w3mi9%sS%nL20ssEZA=@dY9QgIYL!z?( z8BWy{Us^bV%jrz$ri;M~GlnrsW{AV{k)np_(NhuebkrU(eJp&_)qFgpKGwUDnD z)zC~keOKtDzcvPP!)od;-*-ebd}esff2p8n=T~7j)5Emh*el|9Af%Vff7N8b@pLDDHsG&E#aBqbAs8b`WrFA^x_Q68-|Cs_yQ_4v;kE z?VPK3-Q&UvvB|b;GW(j&hth3xuU?Q8?StSH>reP~DPXgV>@5{Ee|J&rPUq8wea`)y#ODp&Igc)0bvS6qVIk9Qd@8H_O6!CPjYVh& z*=T9a{038}`05uGLNM>w0QOiYWFjdbq48fezy1T?!}jZ<`F0^9RCZOAt>5W6a(wUs zt7-}OiTJkrunT=-jiOW^MYFl|7TI}^(Q^eLJ85KbjubI3F}VcEkdFW~0mD$w@XTpM zVOnJ7n;UGd2MAr+tCwMACOuck#A{iMM3X=${re~e0G1B=0UGtIsO;Lfl!Z40_}b`p zUgn)t@5^55n0M1O3k)gnq_L-&?OjzR#P$-cXM8uc2P-~`smQf@3tD|Q){uqiNG1rv z=c5gv&~-0@F9SG?L`*k%&@1gK?FNs zXT~0h76tKBxVi z91AHO_;n7AinL{qdbr6Kd^}!rebo6eG(NKCQ5`b1xO*=0K_g(Uj`sufc(nL9?gxl7 zth!OrXCefH5)9&5Qqk%^Ls316mQEb$3!ybb#rVTBA(vzFu}XL>8a7 zd=(n*?-nhOd`o8rS{94xb7xXr{hv?Vl5%!`fYQ>R$7C!-&NMVmZIE>-bN^RggeYXW zcAcDav~Vq!^;-R=9SXKl|7fAX&Me|g2?f9F8BVOgl`rZ8n*6H_E9twso5bn6_i9pZ z6u^$TwKFbLH1Cj{?%b=aeltJM3?SX;l#Y1-(hUL$fUr5${*Ea6yMD_5#_O7Z8$J3$ zAfWYw-Y#5C0fIEqA2Pge8!`Xk+o^j|T#70K{YH!$4!GG+Z$`9yM1W*FHufF*y@K0L zz4=xX?dTCS%*(5}vf}j4E}?7HQ@zq>ETl2`oFEd(xX6#U7D0YD1nduPd|ZaF@C<;Q zBp^AEYXrz@ngr&fRwCf?ll{M85kI{Q5ZHeAIlv|5-@mW*js2l8K(o`?p)>ICQP66v z68`aT1g|g zNOXT|(-ix)E^G?XoU}VLma|$@L?L&b;i6I@v0>cB73hnLg_yW^Uo%PHbQ_pWnCpvM zF1}k}bjr;zfBD=&g-rD!@m(yAXsX14O7;feq$I_H-obHV%&i(8=I2=}+{i;}+pG9X~+W4a}!?KH-T^ zHZPnpLW}S<4^|FVEe||kEnG1v-W!2mPNJu!v#p*_%9U2Uq?3K9ON-lCv%0eOw1QY9 zIyYZ{2ch#!p{qK1#xht*S9&aK%ml~TJf}kgirHbte(x}S4HMadrI{zJNBsU4&YKtJ z4aqQtVb;ERau1Ui{_)6lg#*YoeMG0sCbHc<6uP7r;vtn06w+V8L2SyOb2m40XC+TU zaP?(t?kWa|wkF!GF_3bclhBCmD~S;C7IkHvT+jqFrCBtliAo*dA1aR~k;>4$LQy5- zBc8vExdY?B%Ai8_<@mZ*mb__JkH{KTR>5v6G-N&no+^nyB;7W;x_|EEiTEhSJrk0q z{^ovetZYT>{u6cvaFz|e1nR=^n~wWYy8#ZGyip_}$2Em)jEA%dJMF5_dN0A{Sk#$E!TdTmj=0aTIqqgD)KPN~)V>t<+H#xrJ3_P0L@% zaG3kUP1LySQ~lu-RfP#n6cgY*n;XK0*e(phk@t$hTf`n_iKo6geLYgI_YfEmyc4>X zs@Fkd)Er+2>-)^=<>a1S@+5F)w-X~rln~-Syr;MJESx@l(Z*WKPi)>H2epsK;#&SrdwzB zg1Q{a`dw%+E$u~reUiy2+sD+fwy#E4U&X#?$Rd~Cec13>aGR}S%Eqpe;&rmr=_%r} zYKPIoHv%OMFJ{QooO{J3l{X*_?>no=+YDL~s;c62c}uGp76!~r+LRVCNi$nueqm#_ zpkeYhch5~WmsEp`Ed?L3UDf1GI1#-izWUl5=7HCRBR*P^)Q*Ui@UC)m1?ec58BJ;qG zn1S$}NyjyPXp0>eX9MnMB_}d! zH89|*>yakaxASoG{%h~j#|}d{y`$^;!1z86t{9#Uhx4d%D4;eRysK zWTdPJg!<~iKpWH@Wh`B4;xkI);6$Y*EGV@l?Mt_j#vD!}*y4q+l`Dg}-?=5K`a@I- zcNBp6O{k~!T_cgZaNp{4w*COjSr@@+l5-Fd8M%t;U2iFoyNMH7`+ah(<=ASClU%8B z-?5t~H9;CAP@V*hNd7pRS40eyS3xJAVq2l&&-QHBOY=5Q6E7knMzvvjvQ55eZs3Er z#%wmR`BBF5Z7UmhDK^;LLdBPe$9HyLypPb-t*G}RjN+Edd7aC}n(#bQVxu3QIRdPQ z+gFG>Hw)7HIsXkZy?3+C-$}jf_0MRa%(wOaKPFLU-(sJK*Yu4I3FmA7ltY8U_VR*W%hW)iw2(I>UC6 zF%YO1Z#jxn_DfEoSoB8%g5Oxx01yPwiCm4E-f?EH`{ zt2GX0W)%tnmXn(N>cp*0P$d}>J(biBP|^cn zH;G@i)kHENIDOX%ShDzjmky3~Val7sbjqVo9cYMZ5W2eo2ShEVEAQ)L285I{%47}1 zeK@tvHPDLj*yZV?<{$QoFasDU;onjJ{*(U(R;)Ac>-Euf`nD7xYmMdAhbzyX%OtEb zPx&t;3hN!C0*rgQi+pS||e}aDESh9|3J=V3GCHgEpLu zo-xT@VI^X!Q!VxSp59 zOFMu|s=`@gQc$6)6ahGWDww&Mm;ofVvb!o#-JYw}uD&X;d%>^~*{~t7T)k~+mjmR; z@ZFLJF!<6dbyLSYcf%*aed1i#CfwRsEhg*S>rx&op+q<$l+ImHj;$eG)=LVEC~7F@ z+(LbJAtNjMNW2vM<%!)(Ii_4%7g`De%j$_9YClRS=RFsRVX8L)1Fg@T?Z-+%*sCuk z$kS&$-LB{tW&lrWp!s4kEjF{UZGSAxzcUlD;Fe-4Hg4F?$4~4j5PKocadV)}u@hbL zTrMW;PJdMMTJcn%o7N-<6CqLrc||%zhMHwkyxb&|R_m?~uBjp@+&jE%5hU4T9PNaT zCjEQ5!0jUbfkpP*7B0_36aOSQ!aNq=JB%|V0>)1{<7#fa8!3>__|?8BTI5Dx!bEE8 zWtuP%N>V`H`a-@5h^iOSU+6LG`>01_<{mNLrpq7`pNP7NK}lh0@2nZ)U{WV8?wB#$ zTV>bpnGv^mf9t${7?qk2pCPGxok9&B^`q*qrYR`iaN*d20PG1ev`-~l*t~2!^^Jc+ zlbdS)h9<9S|5g_BP2ZBku|NJ6TKOkY9{@Y~x2WFVk3mC(39ukMqXFQ|@cp!`4Ev?t<8u2y)&)TP@MWjYU}D;Dve{x1F0@@HPf zuYc$LKm1*@eS1N)TWPF4zeywG?Q-Gm>K8+2{9;vK0KB{bxUBufKdn#SLEt?iTt9td!EuVGH9bYXv*PS`5hp{!3xj}<@ z_Lb7t(zZe0J=>22#YNlhoqO9;Z}StipEjR9c^5Qn5j2P{VsQ*FKC(dTRB^G#HM{E% zx#fjspU{hTx}rDf?b~-Xet|EAb1p*wMRrF&Diybuac)fT?%!fi8gF~>zmu9Lztyj{RcHG0>qYwcTX-t|^- z-=x!rpS?L=DkK>ZbNX9L;SJUan_F);_WW7W{Bl0QXpoUxyL#=uwTZ>H|2CVg728<1 zIpW5#>q2f#(p$Erwyf64OTH1@D#Uc|;GtIU)Cr=DlY_8A;ECC1{r_tvC-WVxibuv~0KskP|koVZM-Or4nMnX}(4 zX?VcC^YkXM*tI7<9lP^ew(7S32eakt_{BZTS9n*KFN?f)H-53R@ZQsFbOMre7{Y>X zdkQ|6R|o}OV}p9j07e+g>Fe8Q+&b5pE!x|*v~-c_vB}GC+?{>=^V&zBnv-0@bWUt& z4Oqi}^NDSFns4<#!QK7bUf<*tckjBKaOKNOwHaBLy+u^+DsBAj_NjQwlXahjIUa^g zI1ZehAT&Sy`1%pE@6)U16j!trFXb1|*gN%I@8(<4rX4A6sW&cY>E*nH^Rx_D|>2`|B>3^z@UqR7Ah!o9y*jrHk$9E0I?1ev>>Ff#u1^b~WG5vRY8< zRvo>fWXW{rR=rvBTkbupS+zhR#w_ekWsXeEf#m1bzT8FWMe>q^NpKE*6fu`sPjjLzUm^-Os20wsz?b*?Mk? z^qJlD=0Y-ZA&>40^f=XA{d@n+);p+IU7%mFz>w!?V;=S~Ci=9@1+T`(lgxNPw+Okj z2%gL4KQRB3zl|yA@csC|B3n?+SuH2LamQsF>4i7q+@Ic!dim|cnc0oEUQ4w}%E$;* R1+X0*EK@cE=nnb+Hvu%uSt0-c diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/package.html b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/package.html deleted file mode 100644 index a45adf7fac6..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/package.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - -

    The validator package provides a series of classes to validate - ActionForm type of input.

    -
    -
    -Validator Package UML -
    - -

    Package Specification

    -##### FILL IN ANY SPECS NEEDED BY JAVA COMPATIBILITY KIT ##### - - -

    Related Documentation

    -For overviews, tutorials, examples, guides, and tool documentation, -please see: - - -Struts 1.1 - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhen.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhen.java deleted file mode 100644 index 5bac37f748a..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhen.java +++ /dev/null @@ -1,192 +0,0 @@ -/* - * $Id: ValidWhen.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.validator.validwhen; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.validator.Field; -import org.apache.commons.validator.Validator; -import org.apache.commons.validator.ValidatorAction; -import org.apache.commons.validator.util.ValidatorUtils; -import org.apache.struts.action.ActionMessage; -import org.apache.struts.action.ActionMessages; -import org.apache.struts.util.MessageResources; -import org.apache.struts.validator.Resources; - -import javax.servlet.http.HttpServletRequest; - -import java.io.StringReader; - -/** - * This class contains the validwhen validation that is used in the - * validator-rules.xml file. - * - * @since Struts 1.2 - */ -public class ValidWhen { - /** - * Commons Logging instance. - */ - private static final Log log = LogFactory.getLog(ValidWhen.class); - - /** - * The message resources for this package. - */ - private static MessageResources sysmsgs = - MessageResources.getMessageResources( - "org.apache.struts.validator.LocalStrings"); - - /** - * Returns true if obj is null or a String. - */ - private static boolean isString(Object obj) { - return (obj == null) ? true : String.class.isInstance(obj); - } - - /** - * Checks if the field matches the boolean expression specified in - * test parameter. - * - * @param bean The bean validation is being performed on. - * @param va The ValidatorAction that is currently being - * performed. - * @param field The Field object associated with the - * current field being validated. - * @param errors The ActionMessages object to add errors to - * if any validation errors occur. - * @param request Current request object. - * @return true if meets stated requirements, - * false otherwise. - */ - public static boolean validateValidWhen(Object bean, ValidatorAction va, - Field field, ActionMessages errors, Validator validator, - HttpServletRequest request) { - Object form = validator.getParameterValue(Validator.BEAN_PARAM); - String value = null; - boolean valid = false; - int index = -1; - - if (field.isIndexed()) { - String key = field.getKey(); - - final int leftBracket = key.indexOf("["); - final int rightBracket = key.indexOf("]"); - - if ((leftBracket > -1) && (rightBracket > -1)) { - index = - Integer.parseInt(key.substring(leftBracket + 1, - rightBracket)); - } - } - - if (isString(bean)) { - value = (String) bean; - } else { - value = ValidatorUtils.getValueAsString(bean, field.getProperty()); - } - - String test = null; - - try { - test = - Resources.getVarValue("test", field, validator, request, true); - } catch (IllegalArgumentException ex) { - String logErrorMsg = - sysmsgs.getMessage("validation.failed", "validwhen", - field.getProperty(), ex.toString()); - - log.error(logErrorMsg); - - String userErrorMsg = sysmsgs.getMessage("system.error"); - - errors.add(field.getKey(), new ActionMessage(userErrorMsg, false)); - - return false; - } - - // Create the Lexer - ValidWhenLexer lexer = null; - - try { - lexer = new ValidWhenLexer(new StringReader(test)); - } catch (Exception ex) { - String logErrorMsg = - "ValidWhenLexer Error for field ' " + field.getKey() + "' - " - + ex; - - log.error(logErrorMsg); - - String userErrorMsg = sysmsgs.getMessage("system.error"); - - errors.add(field.getKey(), new ActionMessage(userErrorMsg, false)); - - return false; - } - - // Create the Parser - ValidWhenParser parser = null; - - try { - parser = new ValidWhenParser(lexer); - } catch (Exception ex) { - String logErrorMsg = - "ValidWhenParser Error for field ' " + field.getKey() + "' - " - + ex; - - log.error(logErrorMsg); - - String userErrorMsg = sysmsgs.getMessage("system.error"); - - errors.add(field.getKey(), new ActionMessage(userErrorMsg, false)); - - return false; - } - - parser.setForm(form); - parser.setIndex(index); - parser.setValue(value); - - try { - parser.expression(); - valid = parser.getResult(); - } catch (Exception ex) { - String logErrorMsg = - "ValidWhen Error for field ' " + field.getKey() + "' - " + ex; - - log.error(logErrorMsg); - - String userErrorMsg = sysmsgs.getMessage("system.error"); - - errors.add(field.getKey(), new ActionMessage(userErrorMsg, false)); - - return false; - } - - if (!valid) { - errors.add(field.getKey(), - Resources.getActionMessage(validator, request, va, field)); - - return false; - } - - return true; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenLexer.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenLexer.java deleted file mode 100644 index a5ce43a9a25..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenLexer.java +++ /dev/null @@ -1,670 +0,0 @@ -// $ANTLR 2.7.2: "ValidWhenParser.g" -> "ValidWhenLexer.java"$ - -/* - * $Id: ValidWhenLexer.java 504715 2007-02-07 22:10:26Z bayard $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.validator.validwhen; - -import java.util.Stack; -import org.apache.commons.validator.util.ValidatorUtils; - - -import java.io.InputStream; -import antlr.TokenStreamException; -import antlr.TokenStreamIOException; -import antlr.TokenStreamRecognitionException; -import antlr.CharStreamException; -import antlr.CharStreamIOException; -import antlr.ANTLRException; -import java.io.Reader; -import java.util.Hashtable; -import antlr.CharScanner; -import antlr.InputBuffer; -import antlr.ByteBuffer; -import antlr.CharBuffer; -import antlr.Token; -import antlr.CommonToken; -import antlr.RecognitionException; -import antlr.NoViableAltForCharException; -import antlr.MismatchedCharException; -import antlr.TokenStream; -import antlr.ANTLRHashString; -import antlr.LexerSharedInputState; -import antlr.collections.impl.BitSet; -import antlr.SemanticException; - -public class ValidWhenLexer extends antlr.CharScanner implements ValidWhenParserTokenTypes, TokenStream - { -public ValidWhenLexer(InputStream in) { - this(new ByteBuffer(in)); -} -public ValidWhenLexer(Reader in) { - this(new CharBuffer(in)); -} -public ValidWhenLexer(InputBuffer ib) { - this(new LexerSharedInputState(ib)); -} -public ValidWhenLexer(LexerSharedInputState state) { - super(state); - caseSensitiveLiterals = true; - setCaseSensitive(false); - literals = new Hashtable(); - literals.put(new ANTLRHashString("null", this), new Integer(11)); - literals.put(new ANTLRHashString("or", this), new Integer(16)); - literals.put(new ANTLRHashString("and", this), new Integer(15)); -} - -public Token nextToken() throws TokenStreamException { - Token theRetToken=null; -tryAgain: - for (;;) { - Token _token = null; - int _ttype = Token.INVALID_TYPE; - resetText(); - try { // for char stream error handling - try { // for lexical error handling - switch ( LA(1)) { - case '\t': case '\n': case '\r': case ' ': - { - mWS(true); - theRetToken=_returnToken; - break; - } - case '-': case '1': case '2': case '3': - case '4': case '5': case '6': case '7': - case '8': case '9': - { - mDECIMAL_LITERAL(true); - theRetToken=_returnToken; - break; - } - case '"': case '\'': - { - mSTRING_LITERAL(true); - theRetToken=_returnToken; - break; - } - case '[': - { - mLBRACKET(true); - theRetToken=_returnToken; - break; - } - case ']': - { - mRBRACKET(true); - theRetToken=_returnToken; - break; - } - case '(': - { - mLPAREN(true); - theRetToken=_returnToken; - break; - } - case ')': - { - mRPAREN(true); - theRetToken=_returnToken; - break; - } - case '*': - { - mTHIS(true); - theRetToken=_returnToken; - break; - } - case '.': case '_': case 'a': case 'b': - case 'c': case 'd': case 'e': case 'f': - case 'g': case 'h': case 'i': case 'j': - case 'k': case 'l': case 'm': case 'n': - case 'o': case 'p': case 'q': case 'r': - case 's': case 't': case 'u': case 'v': - case 'w': case 'x': case 'y': case 'z': - { - mIDENTIFIER(true); - theRetToken=_returnToken; - break; - } - case '=': - { - mEQUALSIGN(true); - theRetToken=_returnToken; - break; - } - case '!': - { - mNOTEQUALSIGN(true); - theRetToken=_returnToken; - break; - } - default: - if ((LA(1)=='0') && (LA(2)=='x')) { - mHEX_LITERAL(true); - theRetToken=_returnToken; - } - else if ((LA(1)=='<') && (LA(2)=='=')) { - mLESSEQUALSIGN(true); - theRetToken=_returnToken; - } - else if ((LA(1)=='>') && (LA(2)=='=')) { - mGREATEREQUALSIGN(true); - theRetToken=_returnToken; - } - else if ((LA(1)=='0') && (true)) { - mOCTAL_LITERAL(true); - theRetToken=_returnToken; - } - else if ((LA(1)=='<') && (true)) { - mLESSTHANSIGN(true); - theRetToken=_returnToken; - } - else if ((LA(1)=='>') && (true)) { - mGREATERTHANSIGN(true); - theRetToken=_returnToken; - } - else { - if (LA(1)==EOF_CHAR) {uponEOF(); _returnToken = makeToken(Token.EOF_TYPE);} - else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} - } - } - if ( _returnToken==null ) continue tryAgain; // found SKIP token - _ttype = _returnToken.getType(); - _ttype = testLiteralsTable(_ttype); - _returnToken.setType(_ttype); - return _returnToken; - } - catch (RecognitionException e) { - throw new TokenStreamRecognitionException(e); - } - } - catch (CharStreamException cse) { - if ( cse instanceof CharStreamIOException ) { - throw new TokenStreamIOException(((CharStreamIOException)cse).io); - } - else { - throw new TokenStreamException(cse.getMessage()); - } - } - } -} - - public final void mWS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = WS; - int _saveIndex; - - { - int _cnt15=0; - _loop15: - do { - switch ( LA(1)) { - case ' ': - { - match(' '); - break; - } - case '\t': - { - match('\t'); - break; - } - case '\n': - { - match('\n'); - break; - } - case '\r': - { - match('\r'); - break; - } - default: - { - if ( _cnt15>=1 ) { break _loop15; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} - } - } - _cnt15++; - } while (true); - } - _ttype = Token.SKIP; - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mDECIMAL_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = DECIMAL_LITERAL; - int _saveIndex; - - { - switch ( LA(1)) { - case '-': - { - match('-'); - break; - } - case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': - case '9': - { - break; - } - default: - { - throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); - } - } - } - { - matchRange('1','9'); - } - { - _loop20: - do { - if (((LA(1) >= '0' && LA(1) <= '9'))) { - matchRange('0','9'); - } - else { - break _loop20; - } - - } while (true); - } - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mHEX_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = HEX_LITERAL; - int _saveIndex; - - match('0'); - match('x'); - { - int _cnt23=0; - _loop23: - do { - switch ( LA(1)) { - case '0': case '1': case '2': case '3': - case '4': case '5': case '6': case '7': - case '8': case '9': - { - matchRange('0','9'); - break; - } - case 'a': case 'b': case 'c': case 'd': - case 'e': case 'f': - { - matchRange('a','f'); - break; - } - default: - { - if ( _cnt23>=1 ) { break _loop23; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} - } - } - _cnt23++; - } while (true); - } - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mOCTAL_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = OCTAL_LITERAL; - int _saveIndex; - - match('0'); - { - _loop26: - do { - if (((LA(1) >= '0' && LA(1) <= '7'))) { - matchRange('0','7'); - } - else { - break _loop26; - } - - } while (true); - } - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mSTRING_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = STRING_LITERAL; - int _saveIndex; - - switch ( LA(1)) { - case '\'': - { - { - match('\''); - { - int _cnt30=0; - _loop30: - do { - if ((_tokenSet_0.member(LA(1)))) { - matchNot('\''); - } - else { - if ( _cnt30>=1 ) { break _loop30; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} - } - - _cnt30++; - } while (true); - } - match('\''); - } - break; - } - case '"': - { - { - match('\"'); - { - int _cnt33=0; - _loop33: - do { - if ((_tokenSet_1.member(LA(1)))) { - matchNot('\"'); - } - else { - if ( _cnt33>=1 ) { break _loop33; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} - } - - _cnt33++; - } while (true); - } - match('\"'); - } - break; - } - default: - { - throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); - } - } - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mLBRACKET(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = LBRACKET; - int _saveIndex; - - match('['); - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mRBRACKET(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = RBRACKET; - int _saveIndex; - - match(']'); - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mLPAREN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = LPAREN; - int _saveIndex; - - match('('); - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mRPAREN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = RPAREN; - int _saveIndex; - - match(')'); - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mTHIS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = THIS; - int _saveIndex; - - match("*this*"); - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mIDENTIFIER(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = IDENTIFIER; - int _saveIndex; - - { - switch ( LA(1)) { - case 'a': case 'b': case 'c': case 'd': - case 'e': case 'f': case 'g': case 'h': - case 'i': case 'j': case 'k': case 'l': - case 'm': case 'n': case 'o': case 'p': - case 'q': case 'r': case 's': case 't': - case 'u': case 'v': case 'w': case 'x': - case 'y': case 'z': - { - matchRange('a','z'); - break; - } - case '.': - { - match('.'); - break; - } - case '_': - { - match('_'); - break; - } - default: - { - throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn()); - } - } - } - { - int _cnt42=0; - _loop42: - do { - switch ( LA(1)) { - case 'a': case 'b': case 'c': case 'd': - case 'e': case 'f': case 'g': case 'h': - case 'i': case 'j': case 'k': case 'l': - case 'm': case 'n': case 'o': case 'p': - case 'q': case 'r': case 's': case 't': - case 'u': case 'v': case 'w': case 'x': - case 'y': case 'z': - { - matchRange('a','z'); - break; - } - case '0': case '1': case '2': case '3': - case '4': case '5': case '6': case '7': - case '8': case '9': - { - matchRange('0','9'); - break; - } - case '.': - { - match('.'); - break; - } - case '_': - { - match('_'); - break; - } - default: - { - if ( _cnt42>=1 ) { break _loop42; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());} - } - } - _cnt42++; - } while (true); - } - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mEQUALSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = EQUALSIGN; - int _saveIndex; - - match('='); - match('='); - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mNOTEQUALSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = NOTEQUALSIGN; - int _saveIndex; - - match('!'); - match('='); - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mLESSTHANSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = LESSTHANSIGN; - int _saveIndex; - - match('<'); - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mGREATERTHANSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = GREATERTHANSIGN; - int _saveIndex; - - match('>'); - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mLESSEQUALSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = LESSEQUALSIGN; - int _saveIndex; - - match('<'); - match('='); - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - public final void mGREATEREQUALSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException { - int _ttype; Token _token=null; int _begin=text.length(); - _ttype = GREATEREQUALSIGN; - int _saveIndex; - - match('>'); - match('='); - if ( _createToken && _token==null && _ttype!=Token.SKIP ) { - _token = makeToken(_ttype); - _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin)); - } - _returnToken = _token; - } - - - private static final long[] mk_tokenSet_0() { - long[] data = { -554050771456L, 9223372036854775807L, 0L, 0L}; - return data; - } - public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0()); - private static final long[] mk_tokenSet_1() { - long[] data = { -21474826752L, 9223372036854775807L, 0L, 0L}; - return data; - } - public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1()); - - } diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.g b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.g deleted file mode 100644 index 9eab87a8686..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.g +++ /dev/null @@ -1,286 +0,0 @@ -header { -/* - * $Id: ValidWhenParser.g 504715 2007-02-07 22:10:26Z bayard $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.validator.validwhen; - -import java.util.Stack; -import org.apache.commons.validator.util.ValidatorUtils; - -} -class ValidWhenParser extends Parser; -options { -k=6; -defaultErrorHandler=false; -} -{Stack argStack = new Stack(); -Object form; -int index; -String value; - - public void setForm(Object f) { form = f; }; - public void setIndex (int i) { index = i; }; - public void setValue (String v) { value = v; }; - - public boolean getResult() { - return ((Boolean)argStack.peek()).booleanValue(); - } - - private final int LESS_EQUAL=0; - private final int LESS_THAN=1; - private final int EQUAL=2; - private final int GREATER_THAN=3; - private final int GREATER_EQUAL=4; - private final int NOT_EQUAL=5; - private final int AND=6; - private final int OR=7; - - private boolean evaluateComparison (Object v1, Object compare, Object v2) { - boolean intCompare = true; - if ((v1 == null) || (v2 == null)) { - if (String.class.isInstance(v1)) { - if (((String) v1).length() == 0) { - v1 = null; - } - } - if (String.class.isInstance(v2)) { - if (((String) v2).length() == 0) { - v2 = null; - } - } - switch (((Integer)compare).intValue()) { - case LESS_EQUAL: - case GREATER_THAN: - case LESS_THAN: - case GREATER_EQUAL: - return false; - case EQUAL: - return (v1 == v2); - case NOT_EQUAL: - return (v1 != v2); - } - } - if ((Integer.class.isInstance(v1) || - String.class.isInstance(v1)) && - (Integer.class.isInstance(v2) || - String.class.isInstance(v2))) { - intCompare = true; - } else { - intCompare = false; - } - if (intCompare) { - try { - int v1i = 0, v2i = 0; - if (Integer.class.isInstance(v1)) { - v1i = ((Integer)v1).intValue(); - } else { - v1i = Integer.parseInt((String) v1); - } - if (Integer.class.isInstance(v2)) { - v2i = ((Integer)v2).intValue(); - } else { - v2i = Integer.parseInt((String) v2); - } - switch (((Integer)compare).intValue()) { - case LESS_EQUAL: - return (v1i <= v2i); - - case LESS_THAN: - return (v1i < v2i); - - case EQUAL: - return (v1i == v2i); - - case GREATER_THAN: - return (v1i > v2i); - - case GREATER_EQUAL: - return (v1i >= v2i); - - case NOT_EQUAL: - return (v1i != v2i); - } - } catch (NumberFormatException ex) {}; - } - String v1s = "", v2s = ""; - - if (Integer.class.isInstance(v1)) { - v1s = ((Integer)v1).toString(); - } else { - v1s = (String) v1; - } - - if (Integer.class.isInstance(v2)) { - v2s = ((Integer)v2).toString(); - } else { - v2s = (String) v2; - } - - int res = v1s.compareTo(v2s); - switch (((Integer)compare).intValue()) { - case LESS_EQUAL: - return (res <= 0); - - case LESS_THAN: - return (res < 0); - - case EQUAL: - return (res == 0); - - case GREATER_THAN: - return (res > 0); - - case GREATER_EQUAL: - return (res >= 0); - - case NOT_EQUAL: - return (res != 0); - } - return true; - } - -} - - -integer -: d:DECIMAL_LITERAL { argStack.push(Integer.decode(d.getText())); } -| h:HEX_LITERAL { argStack.push(Integer.decode(h.getText())); } -| o:OCTAL_LITERAL { argStack.push(Integer.decode(o.getText())); } ; - -string : str:STRING_LITERAL { argStack.push(str.getText().substring(1, str.getText().length()-1)); }; - -identifier -: str:IDENTIFIER { argStack.push(str.getText()); } ; - -field -: identifier LBRACKET RBRACKET identifier { - Object i2 = argStack.pop(); - Object i1 = argStack.pop(); - argStack.push(ValidatorUtils.getValueAsString(form, i1 + "[" + index + "]" + i2)); -} -| identifier LBRACKET integer RBRACKET identifier { - Object i5 = argStack.pop(); - Object i4 = argStack.pop(); - Object i3 = argStack.pop(); - argStack.push(ValidatorUtils.getValueAsString(form, i3 + "[" + i4 + "]" + i5)); -} -| identifier LBRACKET integer RBRACKET LBRACKET { - Object i7 = argStack.pop(); - Object i6 = argStack.pop(); - argStack.push(ValidatorUtils.getValueAsString(form, i6 + "[" + i7 + "]")); -} -| identifier LBRACKET RBRACKET { - Object i8 = argStack.pop(); - argStack.push(ValidatorUtils.getValueAsString(form, i8 + "[" + index + "]")); -} -| identifier { - Object i9 = argStack.pop(); - argStack.push(ValidatorUtils.getValueAsString(form, (String)i9)); -} -; - -literal : integer | string | "null" { argStack.push(null);} | THIS {argStack.push(value);}; - -value : field | literal ; - -expression : expr EOF; - -expr: LPAREN comparisonExpression RPAREN | LPAREN joinedExpression RPAREN; - -joinedExpression : expr join expr { - Boolean v1 = (Boolean) argStack.pop(); - Integer join = (Integer) argStack.pop(); - Boolean v2 = (Boolean) argStack.pop(); - if (join.intValue() == AND) { - argStack.push(new Boolean(v1.booleanValue() && v2.booleanValue())); -} else { - argStack.push(new Boolean(v1.booleanValue() || v2.booleanValue())); - } -}; - -join : ANDSIGN { argStack.push(new Integer(AND)); } | - ORSIGN { argStack.push(new Integer(OR)); }; - -comparison : - EQUALSIGN { argStack.push(new Integer(EQUAL)); } | - GREATERTHANSIGN { argStack.push(new Integer(GREATER_THAN)); } | - GREATEREQUALSIGN { argStack.push(new Integer(GREATER_EQUAL)); } | - LESSTHANSIGN { argStack.push(new Integer(LESS_THAN)); } | - LESSEQUALSIGN { argStack.push(new Integer(LESS_EQUAL)); } | - NOTEQUALSIGN { argStack.push(new Integer(NOT_EQUAL)); } ; - -comparisonExpression : value comparison value { - Object v2 = argStack.pop(); - Object comp = argStack.pop(); - Object v1 = argStack.pop(); - argStack.push(new Boolean(evaluateComparison(v1, comp, v2))); -}; - - -class ValidWhenLexer extends Lexer; - -options { - k=2; -caseSensitive=false; -defaultErrorHandler=false; -charVocabulary='\40'..'\176'; -} -tokens { -ANDSIGN="and"; -ORSIGN="or"; -} - -WS : ( ' ' | '\t' | '\n' | '\r' )+ - { $setType(Token.SKIP); } - ; - -DECIMAL_LITERAL : ('-')? ('1'..'9') ('0'..'9')*; - -HEX_LITERAL : '0' 'x' ('0'..'9' | 'a'..'f')+ ; - -OCTAL_LITERAL : '0' ('0'..'7')* ; - -STRING_LITERAL : ('\'' (~'\'')+ '\'') | ('\"' (~'\"')+ '\"') ; - -LBRACKET : '[' ; - -RBRACKET : ']' ; - -LPAREN : '(' ; - -RPAREN : ')' ; - -THIS : "*this*" ; - -IDENTIFIER : ( 'a'..'z' | '.' | '_') ( 'a'..'z' | '0'..'9' | '.' | '_')+ ; - -EQUALSIGN : '=' '=' ; - -NOTEQUALSIGN : '!' '=' ; - -LESSTHANSIGN : '<'; - -GREATERTHANSIGN : '>'; - -LESSEQUALSIGN : '<' '='; - -GREATEREQUALSIGN : '>' '='; - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.java deleted file mode 100644 index a8fb0c67f8f..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParser.java +++ /dev/null @@ -1,538 +0,0 @@ -// $ANTLR 2.7.2: "ValidWhenParser.g" -> "ValidWhenParser.java"$ - -/* - * $Id: ValidWhenParser.java 504715 2007-02-07 22:10:26Z bayard $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.validator.validwhen; - -import java.util.Stack; -import org.apache.commons.validator.util.ValidatorUtils; - - -import antlr.TokenBuffer; -import antlr.TokenStreamException; -import antlr.TokenStreamIOException; -import antlr.ANTLRException; -import antlr.LLkParser; -import antlr.Token; -import antlr.TokenStream; -import antlr.RecognitionException; -import antlr.NoViableAltException; -import antlr.MismatchedTokenException; -import antlr.SemanticException; -import antlr.ParserSharedInputState; -import antlr.collections.impl.BitSet; - -public class ValidWhenParser extends antlr.LLkParser implements ValidWhenParserTokenTypes - { -Stack argStack = new Stack(); -Object form; -int index; -String value; - - public void setForm(Object f) { form = f; }; - public void setIndex (int i) { index = i; }; - public void setValue (String v) { value = v; }; - - public boolean getResult() { - return ((Boolean)argStack.peek()).booleanValue(); - } - - private final int LESS_EQUAL=0; - private final int LESS_THAN=1; - private final int EQUAL=2; - private final int GREATER_THAN=3; - private final int GREATER_EQUAL=4; - private final int NOT_EQUAL=5; - private final int AND=6; - private final int OR=7; - - private boolean evaluateComparison (Object v1, Object compare, Object v2) { - boolean intCompare = true; - if ((v1 == null) || (v2 == null)) { - if (String.class.isInstance(v1)) { - if (((String) v1).length() == 0) { - v1 = null; - } - } - if (String.class.isInstance(v2)) { - if (((String) v2).length() == 0) { - v2 = null; - } - } - switch (((Integer)compare).intValue()) { - case LESS_EQUAL: - case GREATER_THAN: - case LESS_THAN: - case GREATER_EQUAL: - return false; - case EQUAL: - return (v1 == v2); - case NOT_EQUAL: - return (v1 != v2); - } - } - if ((Integer.class.isInstance(v1) || - String.class.isInstance(v1)) && - (Integer.class.isInstance(v2) || - String.class.isInstance(v2))) { - intCompare = true; - } else { - intCompare = false; - } - if (intCompare) { - try { - int v1i = 0, v2i = 0; - if (Integer.class.isInstance(v1)) { - v1i = ((Integer)v1).intValue(); - } else { - v1i = Integer.parseInt((String) v1); - } - if (Integer.class.isInstance(v2)) { - v2i = ((Integer)v2).intValue(); - } else { - v2i = Integer.parseInt((String) v2); - } - switch (((Integer)compare).intValue()) { - case LESS_EQUAL: - return (v1i <= v2i); - - case LESS_THAN: - return (v1i < v2i); - - case EQUAL: - return (v1i == v2i); - - case GREATER_THAN: - return (v1i > v2i); - - case GREATER_EQUAL: - return (v1i >= v2i); - - case NOT_EQUAL: - return (v1i != v2i); - } - } catch (NumberFormatException ex) {}; - } - String v1s = "", v2s = ""; - - if (Integer.class.isInstance(v1)) { - v1s = ((Integer)v1).toString(); - } else { - v1s = (String) v1; - } - - if (Integer.class.isInstance(v2)) { - v2s = ((Integer)v2).toString(); - } else { - v2s = (String) v2; - } - - int res = v1s.compareTo(v2s); - switch (((Integer)compare).intValue()) { - case LESS_EQUAL: - return (res <= 0); - - case LESS_THAN: - return (res < 0); - - case EQUAL: - return (res == 0); - - case GREATER_THAN: - return (res > 0); - - case GREATER_EQUAL: - return (res >= 0); - - case NOT_EQUAL: - return (res != 0); - } - return true; - } - - -protected ValidWhenParser(TokenBuffer tokenBuf, int k) { - super(tokenBuf,k); - tokenNames = _tokenNames; -} - -public ValidWhenParser(TokenBuffer tokenBuf) { - this(tokenBuf,6); -} - -protected ValidWhenParser(TokenStream lexer, int k) { - super(lexer,k); - tokenNames = _tokenNames; -} - -public ValidWhenParser(TokenStream lexer) { - this(lexer,6); -} - -public ValidWhenParser(ParserSharedInputState state) { - super(state,6); - tokenNames = _tokenNames; -} - - public final void integer() throws RecognitionException, TokenStreamException { - - Token d = null; - Token h = null; - Token o = null; - - switch ( LA(1)) { - case DECIMAL_LITERAL: - { - d = LT(1); - match(DECIMAL_LITERAL); - argStack.push(Integer.decode(d.getText())); - break; - } - case HEX_LITERAL: - { - h = LT(1); - match(HEX_LITERAL); - argStack.push(Integer.decode(h.getText())); - break; - } - case OCTAL_LITERAL: - { - o = LT(1); - match(OCTAL_LITERAL); - argStack.push(Integer.decode(o.getText())); - break; - } - default: - { - throw new NoViableAltException(LT(1), getFilename()); - } - } - } - - public final void string() throws RecognitionException, TokenStreamException { - - Token str = null; - - str = LT(1); - match(STRING_LITERAL); - argStack.push(str.getText().substring(1, str.getText().length()-1)); - } - - public final void identifier() throws RecognitionException, TokenStreamException { - - Token str = null; - - str = LT(1); - match(IDENTIFIER); - argStack.push(str.getText()); - } - - public final void field() throws RecognitionException, TokenStreamException { - - - if ((LA(1)==IDENTIFIER) && (LA(2)==LBRACKET) && (LA(3)==RBRACKET) && (LA(4)==IDENTIFIER)) { - identifier(); - match(LBRACKET); - match(RBRACKET); - identifier(); - - Object i2 = argStack.pop(); - Object i1 = argStack.pop(); - argStack.push(ValidatorUtils.getValueAsString(form, i1 + "[" + index + "]" + i2)); - - } - else if ((LA(1)==IDENTIFIER) && (LA(2)==LBRACKET) && ((LA(3) >= DECIMAL_LITERAL && LA(3) <= OCTAL_LITERAL)) && (LA(4)==RBRACKET) && (LA(5)==IDENTIFIER)) { - identifier(); - match(LBRACKET); - integer(); - match(RBRACKET); - identifier(); - - Object i5 = argStack.pop(); - Object i4 = argStack.pop(); - Object i3 = argStack.pop(); - argStack.push(ValidatorUtils.getValueAsString(form, i3 + "[" + i4 + "]" + i5)); - - } - else if ((LA(1)==IDENTIFIER) && (LA(2)==LBRACKET) && ((LA(3) >= DECIMAL_LITERAL && LA(3) <= OCTAL_LITERAL)) && (LA(4)==RBRACKET) && (LA(5)==LBRACKET)) { - identifier(); - match(LBRACKET); - integer(); - match(RBRACKET); - match(LBRACKET); - - Object i7 = argStack.pop(); - Object i6 = argStack.pop(); - argStack.push(ValidatorUtils.getValueAsString(form, i6 + "[" + i7 + "]")); - - } - else if ((LA(1)==IDENTIFIER) && (LA(2)==LBRACKET) && (LA(3)==RBRACKET) && (_tokenSet_0.member(LA(4)))) { - identifier(); - match(LBRACKET); - match(RBRACKET); - - Object i8 = argStack.pop(); - argStack.push(ValidatorUtils.getValueAsString(form, i8 + "[" + index + "]")); - - } - else if ((LA(1)==IDENTIFIER) && (_tokenSet_0.member(LA(2)))) { - identifier(); - - Object i9 = argStack.pop(); - argStack.push(ValidatorUtils.getValueAsString(form, (String)i9)); - - } - else { - throw new NoViableAltException(LT(1), getFilename()); - } - - } - - public final void literal() throws RecognitionException, TokenStreamException { - - - switch ( LA(1)) { - case DECIMAL_LITERAL: - case HEX_LITERAL: - case OCTAL_LITERAL: - { - integer(); - break; - } - case STRING_LITERAL: - { - string(); - break; - } - case LITERAL_null: - { - match(LITERAL_null); - argStack.push(null); - break; - } - case THIS: - { - match(THIS); - argStack.push(value); - break; - } - default: - { - throw new NoViableAltException(LT(1), getFilename()); - } - } - } - - public final void value() throws RecognitionException, TokenStreamException { - - - switch ( LA(1)) { - case IDENTIFIER: - { - field(); - break; - } - case DECIMAL_LITERAL: - case HEX_LITERAL: - case OCTAL_LITERAL: - case STRING_LITERAL: - case LITERAL_null: - case THIS: - { - literal(); - break; - } - default: - { - throw new NoViableAltException(LT(1), getFilename()); - } - } - } - - public final void expression() throws RecognitionException, TokenStreamException { - - - expr(); - match(Token.EOF_TYPE); - } - - public final void expr() throws RecognitionException, TokenStreamException { - - - if ((LA(1)==LPAREN) && (_tokenSet_1.member(LA(2)))) { - match(LPAREN); - comparisonExpression(); - match(RPAREN); - } - else if ((LA(1)==LPAREN) && (LA(2)==LPAREN)) { - match(LPAREN); - joinedExpression(); - match(RPAREN); - } - else { - throw new NoViableAltException(LT(1), getFilename()); - } - - } - - public final void comparisonExpression() throws RecognitionException, TokenStreamException { - - - value(); - comparison(); - value(); - - Object v2 = argStack.pop(); - Object comp = argStack.pop(); - Object v1 = argStack.pop(); - argStack.push(new Boolean(evaluateComparison(v1, comp, v2))); - - } - - public final void joinedExpression() throws RecognitionException, TokenStreamException { - - - expr(); - join(); - expr(); - - Boolean v1 = (Boolean) argStack.pop(); - Integer join = (Integer) argStack.pop(); - Boolean v2 = (Boolean) argStack.pop(); - if (join.intValue() == AND) { - argStack.push(new Boolean(v1.booleanValue() && v2.booleanValue())); - } else { - argStack.push(new Boolean(v1.booleanValue() || v2.booleanValue())); - } - - } - - public final void join() throws RecognitionException, TokenStreamException { - - - switch ( LA(1)) { - case ANDSIGN: - { - match(ANDSIGN); - argStack.push(new Integer(AND)); - break; - } - case ORSIGN: - { - match(ORSIGN); - argStack.push(new Integer(OR)); - break; - } - default: - { - throw new NoViableAltException(LT(1), getFilename()); - } - } - } - - public final void comparison() throws RecognitionException, TokenStreamException { - - - switch ( LA(1)) { - case EQUALSIGN: - { - match(EQUALSIGN); - argStack.push(new Integer(EQUAL)); - break; - } - case GREATERTHANSIGN: - { - match(GREATERTHANSIGN); - argStack.push(new Integer(GREATER_THAN)); - break; - } - case GREATEREQUALSIGN: - { - match(GREATEREQUALSIGN); - argStack.push(new Integer(GREATER_EQUAL)); - break; - } - case LESSTHANSIGN: - { - match(LESSTHANSIGN); - argStack.push(new Integer(LESS_THAN)); - break; - } - case LESSEQUALSIGN: - { - match(LESSEQUALSIGN); - argStack.push(new Integer(LESS_EQUAL)); - break; - } - case NOTEQUALSIGN: - { - match(NOTEQUALSIGN); - argStack.push(new Integer(NOT_EQUAL)); - break; - } - default: - { - throw new NoViableAltException(LT(1), getFilename()); - } - } - } - - - public static final String[] _tokenNames = { - "<0>", - "EOF", - "<2>", - "NULL_TREE_LOOKAHEAD", - "DECIMAL_LITERAL", - "HEX_LITERAL", - "OCTAL_LITERAL", - "STRING_LITERAL", - "IDENTIFIER", - "LBRACKET", - "RBRACKET", - "\"null\"", - "THIS", - "LPAREN", - "RPAREN", - "\"and\"", - "\"or\"", - "EQUALSIGN", - "GREATERTHANSIGN", - "GREATEREQUALSIGN", - "LESSTHANSIGN", - "LESSEQUALSIGN", - "NOTEQUALSIGN", - "WS" - }; - - private static final long[] mk_tokenSet_0() { - long[] data = { 8273920L, 0L}; - return data; - } - public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0()); - private static final long[] mk_tokenSet_1() { - long[] data = { 6640L, 0L}; - return data; - } - public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1()); - - } diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.java b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.java deleted file mode 100644 index dc8de105966..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.java +++ /dev/null @@ -1,53 +0,0 @@ -// $ANTLR 2.7.2: "ValidWhenParser.g" -> "ValidWhenParser.java"$ - -/* - * $Id: ValidWhenParserTokenTypes.java 504715 2007-02-07 22:10:26Z bayard $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.validator.validwhen; - -import java.util.Stack; -import org.apache.commons.validator.util.ValidatorUtils; - - -public interface ValidWhenParserTokenTypes { - int EOF = 1; - int NULL_TREE_LOOKAHEAD = 3; - int DECIMAL_LITERAL = 4; - int HEX_LITERAL = 5; - int OCTAL_LITERAL = 6; - int STRING_LITERAL = 7; - int IDENTIFIER = 8; - int LBRACKET = 9; - int RBRACKET = 10; - int LITERAL_null = 11; - int THIS = 12; - int LPAREN = 13; - int RPAREN = 14; - int ANDSIGN = 15; - int ORSIGN = 16; - int EQUALSIGN = 17; - int GREATERTHANSIGN = 18; - int GREATEREQUALSIGN = 19; - int LESSTHANSIGN = 20; - int LESSEQUALSIGN = 21; - int NOTEQUALSIGN = 22; - int WS = 23; -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.txt b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.txt deleted file mode 100644 index 50a81c65b47..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/ValidWhenParserTokenTypes.txt +++ /dev/null @@ -1,22 +0,0 @@ -// $ANTLR 2.7.2: ValidWhenParser.g -> ValidWhenParserTokenTypes.txt$ -ValidWhenParser // output token vocab name -DECIMAL_LITERAL=4 -HEX_LITERAL=5 -OCTAL_LITERAL=6 -STRING_LITERAL=7 -IDENTIFIER=8 -LBRACKET=9 -RBRACKET=10 -LITERAL_null="null"=11 -THIS=12 -LPAREN=13 -RPAREN=14 -ANDSIGN="and"=15 -ORSIGN="or"=16 -EQUALSIGN=17 -GREATERTHANSIGN=18 -GREATEREQUALSIGN=19 -LESSTHANSIGN=20 -LESSEQUALSIGN=21 -NOTEQUALSIGN=22 -WS=23 diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/package.html b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/package.html deleted file mode 100644 index 10dee73edbb..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/package.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - -

    Generated classes by antlr to support the validwhen -validator.

    - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/readme.txt b/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/readme.txt deleted file mode 100644 index 8e10981730a..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/java/org/apache/struts/validator/validwhen/readme.txt +++ /dev/null @@ -1,13 +0,0 @@ -The following files are generated by antlr from the ValidWhenParser.g file - - ValidWhenLexer.java - ValidWhenParser.java - ValidWhenParserTokenTypes.java - ValidWhenParserTokenTypes.txt - -If you change ValidWhenParser.g then re-generate the above files using antlr - - java antlr.Tool ValidWhenParser.g - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/resources/LICENSE.txt b/tests/projects/struts-1.3.9-diet/core/src/main/resources/LICENSE.txt deleted file mode 100644 index dd5b3a58aa1..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/resources/LICENSE.txt +++ /dev/null @@ -1,174 +0,0 @@ - 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. diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/resources/NOTICE.txt b/tests/projects/struts-1.3.9-diet/core/src/main/resources/NOTICE.txt deleted file mode 100644 index 30195b66e79..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/resources/NOTICE.txt +++ /dev/null @@ -1,10 +0,0 @@ -Apache Struts -Copyright 2000-2007 The Apache Software Foundation - -This product includes software developed by -The Apache Software Foundation (http://www.apache.org/). - -This product includes the ANTLR parsing library, -developed by JGuru.com (http://www.antlr.org and -http://www.jguru.com). - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/chain/chain-config.xml b/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/chain/chain-config.xml deleted file mode 100644 index 0ad8e0be065..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/chain/chain-config.xml +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_0.dtd b/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_0.dtd deleted file mode 100644 index 063c021a980..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_0.dtd +++ /dev/null @@ -1,424 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_1.dtd b/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_1.dtd deleted file mode 100644 index 0ecb92a5586..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_1.dtd +++ /dev/null @@ -1,712 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_2.dtd b/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_2.dtd deleted file mode 100644 index ec1a3d0aaff..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_2.dtd +++ /dev/null @@ -1,702 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_3.dtd b/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_3.dtd deleted file mode 100644 index a9aed162c56..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/struts-config_1_3.dtd +++ /dev/null @@ -1,726 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/web-app_2_3.dtd b/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/web-app_2_3.dtd deleted file mode 100644 index ba39dc9135c..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/resources/web-app_2_3.dtd +++ /dev/null @@ -1,1059 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/validator/validator-rules-compressed.xml b/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/validator/validator-rules-compressed.xml deleted file mode 100644 index e5e4aa96501..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/validator/validator-rules-compressed.xml +++ /dev/null @@ -1,429 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/validator/validator-rules.xml b/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/validator/validator-rules.xml deleted file mode 100644 index 7465070da0c..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/main/resources/org/apache/struts/validator/validator-rules.xml +++ /dev/null @@ -1,418 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionMessage.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionMessage.java deleted file mode 100644 index 66daa7f05a4..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionMessage.java +++ /dev/null @@ -1,201 +0,0 @@ -/* - * $Id: TestActionMessage.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -/** - * Unit tests for the org.apache.struts.action.ActionMessage - * class. - * - * @version $Rev: 471754 $ $Date: 2005-05-19 23:50:06 -0400 (Thu, 19 May 2005) - * $ - */ -public class TestActionMessage extends TestCase { - protected ActionMessage amWithNoValue = null; - protected ActionMessage amWithOneValue = null; - protected ActionMessage amWithTwoValues = null; - protected ActionMessage amWithThreeValues = null; - protected ActionMessage amWithFourValues = null; - protected ActionMessage amWithArrayValues = null; - protected ActionMessage amWithTwoIntegerValues = null; - protected ActionMessage amNoResource = null; - protected Object[] test_values = - new Object[] { - "stringValue1", "stringValue2", "stringValue3", "stringValue4" - }; - - /** - * Defines the testcase name for JUnit. - * - * @param theName the testcase's name. - */ - public TestActionMessage(String theName) { - super(theName); - } - - /** - * Start the tests. - * - * @param theArgs the arguments. Not used - */ - public static void main(String[] theArgs) { - junit.awtui.TestRunner.main(new String[] { - TestActionMessage.class.getName() - }); - } - - /** - * @return a test suite (TestSuite) that includes all methods - * starting with "test" - */ - public static Test suite() { - // All methods starting with "test" will be executed in the test suite. - return new TestSuite(TestActionMessage.class); - } - - public void setUp() { - amWithNoValue = new ActionMessage("amWithNoValue"); - amWithOneValue = - new ActionMessage("amWithOneValue", new String("stringValue")); - amWithTwoValues = - new ActionMessage("amWithTwoValues", new String("stringValue1"), - new String("stringValue2")); - amWithThreeValues = - new ActionMessage("amWithThreeValues", new String("stringValue1"), - new String("stringValue2"), new String("stringValue3")); - amWithFourValues = - new ActionMessage("amWithFourValues", new String("stringValue1"), - new String("stringValue2"), new String("stringValue3"), - new String("stringValue4")); - amWithArrayValues = new ActionMessage("amWithArrayValues", test_values); - amWithTwoIntegerValues = - new ActionMessage("amWithTwoIntegerValues", new Integer(5), - new Integer(10)); - amNoResource = new ActionMessage("amNoResource", false); - } - - public void tearDown() { - amWithNoValue = null; - amWithOneValue = null; - amWithTwoValues = null; - amWithThreeValues = null; - amWithFourValues = null; - amWithArrayValues = null; - amWithTwoIntegerValues = null; - amNoResource = null; - } - - public void testActionMessageWithNoValue() { - assertTrue(amWithNoValue.getValues() == null); - assertTrue(amWithNoValue.isResource()); - assertTrue(amWithNoValue.getKey() == "amWithNoValue"); - assertTrue(amWithNoValue.toString().equals("amWithNoValue[]")); - } - - public void testActionMessageWithAStringValue() { - Object[] values = amWithOneValue.getValues(); - - assertTrue(values != null); - assertTrue(values.length == 1); - assertTrue(values[0].equals("stringValue")); - assertTrue(amWithOneValue.isResource()); - assertTrue(amWithOneValue.getKey() == "amWithOneValue"); - assertTrue(amWithOneValue.toString().equals("amWithOneValue[stringValue]")); - } - - public void testActionMessageWithTwoValues() { - Object[] values = amWithTwoValues.getValues(); - - assertTrue(values != null); - assertTrue(values.length == 2); - assertTrue(values[0].equals("stringValue1")); - assertTrue(values[1].equals("stringValue2")); - assertTrue(amWithTwoValues.isResource()); - assertTrue(amWithTwoValues.getKey() == "amWithTwoValues"); - assertTrue(amWithTwoValues.toString().equals("amWithTwoValues[stringValue1, stringValue2]")); - } - - public void testActionMessageWithThreeValues() { - Object[] values = amWithThreeValues.getValues(); - - assertTrue(values != null); - assertTrue(values.length == 3); - assertTrue(values[0].equals("stringValue1")); - assertTrue(values[1].equals("stringValue2")); - assertTrue(values[2].equals("stringValue3")); - assertTrue(amWithThreeValues.getKey() == "amWithThreeValues"); - assertTrue(amWithThreeValues.isResource()); - assertTrue(amWithThreeValues.toString().equals("amWithThreeValues[stringValue1, stringValue2, stringValue3]")); - } - - public void testActionMessageWithFourValues() { - Object[] values = amWithFourValues.getValues(); - - assertTrue(values != null); - assertTrue(values.length == 4); - assertTrue(values[0].equals("stringValue1")); - assertTrue(values[1].equals("stringValue2")); - assertTrue(values[2].equals("stringValue3")); - assertTrue(values[3].equals("stringValue4")); - assertTrue(amWithFourValues.isResource()); - assertTrue(amWithFourValues.getKey() == "amWithFourValues"); - assertTrue(amWithFourValues.toString().equals("amWithFourValues[stringValue1, stringValue2, stringValue3, stringValue4]")); - } - - public void testActionMessageWithArrayValues() { - Object[] values = amWithArrayValues.getValues(); - - assertTrue(values != null); - assertTrue(values.length == test_values.length); - - for (int i = 0; i < values.length; i++) { - assertTrue(values[i] == test_values[i]); - } - - assertTrue(amWithArrayValues.isResource()); - assertTrue(amWithArrayValues.getKey() == "amWithArrayValues"); - assertTrue(amWithArrayValues.toString().equals("amWithArrayValues[stringValue1, stringValue2, stringValue3, stringValue4]")); - } - - public void testActionWithTwoIntegers() { - Object[] values = amWithTwoIntegerValues.getValues(); - - assertTrue(values != null); - assertTrue(values.length == 2); - assertTrue(values[0] instanceof Integer); - assertTrue(values[0].toString().equals("5")); - assertTrue(values[1] instanceof Integer); - assertTrue(values[1].toString().equals("10")); - assertTrue(amWithTwoIntegerValues.isResource()); - assertTrue(amWithTwoIntegerValues.getKey() == "amWithTwoIntegerValues"); - assertTrue(amWithTwoIntegerValues.toString().equals("amWithTwoIntegerValues[5, 10]")); - } - - public void testActionNoResource() { - assertTrue(amNoResource.getValues() == null); - assertTrue(amNoResource.isResource() == false); - assertTrue(amNoResource.getKey() == "amNoResource"); - assertTrue(amNoResource.toString().equals("amNoResource[]")); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionMessages.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionMessages.java deleted file mode 100644 index 4fa6aa52e28..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionMessages.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * $Id: TestActionMessages.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -import java.util.Iterator; - -/** - * Unit tests for the org.apache.struts.action.ActionMessages - * class. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:09:25 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class TestActionMessages extends TestCase { - protected ActionMessages aMsgs = null; - protected ActionMessages anMsgs = null; - protected ActionMessage msg1 = null; - protected ActionMessage msg2 = null; - protected ActionMessage msg3 = null; - protected ActionMessage msg4 = null; - protected ActionMessage msg5 = null; - - /** - * Defines the testcase name for JUnit. - * - * @param theName the testcase's name. - */ - public TestActionMessages(String theName) { - super(theName); - } - - /** - * Start the tests. - * - * @param theArgs the arguments. Not used - */ - public static void main(String[] theArgs) { - junit.awtui.TestRunner.main(new String[] { - TestActionMessages.class.getName() - }); - } - - /** - * @return a test suite (TestSuite) that includes all methods - * starting with "test" - */ - public static Test suite() { - // All methods starting with "test" will be executed in the test suite. - return new TestSuite(TestActionMessages.class); - } - - public void setUp() { - aMsgs = new ActionMessages(); - anMsgs = new ActionMessages(); - - Object[] objs1 = new Object[] { "a", "b", "c", "d", "e" }; - Object[] objs2 = new Object[] { "f", "g", "h", "i", "j" }; - - msg1 = new ActionMessage("aMessage", objs1); - msg2 = new ActionMessage("anMessage", objs2); - msg3 = new ActionMessage("msg3", "value1"); - msg4 = new ActionMessage("msg4", "value2"); - msg5 = new ActionMessage("msg5", "value3", "value4"); - } - - public void tearDown() { - aMsgs = null; - } - - public void testEmpty() { - assertTrue("aMsgs is not empty!", aMsgs.isEmpty()); - } - - public void testNotEmpty() { - aMsgs.add("myProp", msg1); - assertTrue("aMsgs is empty!", aMsgs.isEmpty() == false); - } - - public void testSizeWithOneProperty() { - aMsgs.add("myProp", msg1); - aMsgs.add("myProp", msg2); - assertTrue("number of mesages is not 2", aMsgs.size("myProp") == 2); - } - - public void testSizeWithManyProperties() { - aMsgs.add("myProp1", msg1); - aMsgs.add("myProp2", msg2); - aMsgs.add("myProp3", msg3); - aMsgs.add("myProp3", msg4); - aMsgs.add("myProp4", msg5); - assertTrue("number of messages for myProp1 is not 1", - aMsgs.size("myProp1") == 1); - assertTrue("number of messages", aMsgs.size() == 5); - } - - public void testSizeAndEmptyAfterClear() { - testSizeWithOneProperty(); - aMsgs.clear(); - testEmpty(); - assertTrue("number of meesages is not 0", aMsgs.size("myProp") == 0); - } - - public void testGetWithNoProperty() { - Iterator it = aMsgs.get("myProp"); - - assertTrue("iterator is not empty!", it.hasNext() == false); - } - - public void testGetForAProperty() { - testSizeWithOneProperty(); - - Iterator it = aMsgs.get("myProp"); - - assertTrue("iterator is empty!", it.hasNext() == true); - } - - /** - * Tests adding an ActionMessages object to an ActionMessages object. - */ - public void testAddMessages() { - ActionMessage msg1 = new ActionMessage("key"); - ActionMessage msg2 = new ActionMessage("key2"); - ActionMessage msg3 = new ActionMessage("key3"); - ActionMessages msgs = new ActionMessages(); - ActionMessages add = new ActionMessages(); - - msgs.add("prop1", msg1); - add.add("prop1", msg2); - add.add("prop3", msg3); - - msgs.add(add); - assertTrue(msgs.size() == 3); - assertTrue(msgs.size("prop1") == 2); - - // test message order - Iterator props = msgs.get(); - int count = 1; - - while (props.hasNext()) { - ActionMessage msg = (ActionMessage) props.next(); - - if (count == 1) { - assertTrue(msg.getKey().equals("key")); - } else if (count == 2) { - assertTrue(msg.getKey().equals("key2")); - } else { - assertTrue(msg.getKey().equals("key3")); - } - - count++; - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionRedirect.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionRedirect.java deleted file mode 100755 index 7ee3d4e0efd..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionRedirect.java +++ /dev/null @@ -1,199 +0,0 @@ -/* - * $Id: TestActionRedirect.java 514052 2007-03-03 02:00:37Z pbenedict $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import junit.framework.AssertionFailedError; -import junit.framework.ComparisonFailure; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -import java.util.Map; - -/** - *

    Unit tests for the {@link ActionRedirect} class.

    - * - * @version $Rev: 514052 $ $Date: 2007-03-03 03:00:37 +0100 (Sat, 03 Mar 2007) $ - */ -public class TestActionRedirect extends TestCase { - public TestActionRedirect(String s) { - super(s); - } - - public static TestSuite getSuite() { - return new TestSuite(TestActionRedirect.class); - } - - public static void main(String[] args) { - junit.textui.TestRunner runner = new junit.textui.TestRunner(); - - runner.doRun(TestActionRedirect.getSuite()); - } - - // ----------------------------------------------------- Test Methods - - /** - * Check that the redirect flag is set. - */ - public void testActionRedirectRedirectFlag() { - ActionRedirect ar = new ActionRedirect("/path.do"); - - assertTrue("Redirect flag should be set to true.", ar.getRedirect()); - } - - /** - * Test all addParameter methods accepting different data types. - */ - public void testActionRedirectAddParameter() { - ActionRedirect ar = new ActionRedirect("/path.do"); - - ar.addParameter("st", "test"); - ar.addParameter("obj", new StringBuffer("someString")); - - assertTrue("Incorrect path", ar.getPath().indexOf("/path.do") == 0); - assertHasParameter(ar.parameterValues, "st", "test"); - assertHasParameter(ar.parameterValues, "obj", "someString"); - } - - /** - * Test redirect with anchor. - */ - public void testActionRedirectWithAnchor() { - ActionRedirect ar = new ActionRedirect("/path.do"); - - ar.addParameter("st", "test"); - ar.setAnchor("foo"); - - assertTrue("Incorrect path", "/path.do?st=test#foo".equals(ar.getPath())); - } - - /** - * Test adding parameters with the same name. - */ - public void testActionRedirectAddSameNameParameter() { - ActionRedirect ar = new ActionRedirect("/path.do"); - - ar.addParameter("param", "param1"); - ar.addParameter("param", "param2"); - ar.addParameter("param", new StringBuffer("someString")); - - assertTrue("Incorrect path", ar.getPath().indexOf("/path.do") == 0); - assertHasParameter(ar.parameterValues, "param", "param1"); - assertHasParameter(ar.parameterValues, "param", "param2"); - assertHasParameter(ar.parameterValues, "param", "someString"); - assertEquals("Incorrect number of parameters", 3, - countParameters(ar.parameterValues, "param")); - } - - /** - * Test creating an ActionRedirect which copies its configuration from an - * existing ActionForward (except for the "redirect" property). - */ - public void testActionRedirectFromExistingForward() { - ActionForward forward = new ActionForward("/path.do?param=param1"); - forward.setRedirect(false); - forward.setProperty("key","value"); - - ActionRedirect ar = new ActionRedirect(forward); - - ar.addParameter("param", "param2"); - ar.addParameter("object1", new StringBuffer("someString")); - - assertTrue("Incorrect path", ar.getPath().indexOf("/path.do") == 0); - assertHasParameter(ar.parameterValues, "param", "param2"); - assertHasParameter(ar.parameterValues, "object1", "someString"); - assertEquals("Incorrect original path.", forward.getPath(), - ar.getOriginalPath()); - assertEquals("Incorrect or missing property", "value", - ar.getProperty("key")); - assertTrue("Original had redirect to false", ar.getRedirect()); - } - - /** - * Assert that the given parameters contains an entry for - * paramValue under the paramName key.

    - * - * @param parameters the map of parameters to check into - * @param paramName the key of the value to be checked - * @param paramValue the value to check for - */ - static void assertHasParameter(Map parameters, String paramName, - String paramValue) { - Object value = parameters.get(paramName); - - if (value == null) { - throw new AssertionFailedError("Parameter [" + paramName - + "] not found"); - } - - if (value instanceof String) { - if (!paramValue.equals(value)) { - throw new ComparisonFailure("Incorrect value found", - paramValue, (String) value); - } - } else if (value instanceof String[]) { - // see if our value is among those in the array - String[] values = (String[]) value; - - for (int i = 0; i < values.length; i++) { - if (paramValue.equals(values[i])) { - return; - } - } - - throw new AssertionFailedError( - "Expected value not found for parameter [" + paramName + "]"); - } else { - // can't recognize the value - throw new AssertionFailedError( - "Unexpected type found as parameter value for [" + paramName - + "]"); - } - } - - /** - * Determine the number of values that are available for a specific - * parameter.

    - * - * @param parameters the map of parameters to check into - * @param paramName the key of the value(s) to count - * @return the number of values for the specified parameter - */ - static int countParameters(Map parameters, String paramName) { - Object value = parameters.get(paramName); - - if (value == null) { - return 0; - } - - if (value instanceof String) { - return 1; - } else if (value instanceof String[]) { - String[] values = (String[]) value; - - return values.length; - } else { - // can't recognize the value - throw new AssertionFailedError( - "Unexpected type found as parameter value for [" + paramName - + "]"); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionServlet.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionServlet.java deleted file mode 100644 index f2ecf0f62ca..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestActionServlet.java +++ /dev/null @@ -1,1163 +0,0 @@ -/* - * $Id: TestActionServlet.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.ExceptionConfig; -import org.apache.struts.config.FormBeanConfig; -import org.apache.struts.config.FormPropertyConfig; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.config.ModuleConfigFactory; -import org.apache.struts.util.MessageResources; - -import javax.servlet.ServletException; -import javax.servlet.UnavailableException; - -import java.util.List; - -/** - * Suite of unit tests for the org.apache.struts.action.ActionServlet - * class. - */ -public class TestActionServlet extends TestCase { - // ----------------------------------------------------- Instance Variables - - /** - * The ModuleConfig we'll use. - */ - protected ModuleConfig moduleConfig = null; - - /** - * The common form bean we'll use. - */ - protected FormBeanConfig baseFormBean = null; - - /** - * The common exception config we'll use. - */ - protected ExceptionConfig baseException = null; - - /** - * The common action config we'll use. - */ - protected ActionMapping baseAction = null; - - /** - * The common action forward we'll use. - */ - protected ActionForward baseForward = null; - - /** - * The ActionServlet we'll test. - */ - protected ActionServlet actionServlet = null; - - // ------------------------------------------ Constructors, suite, and main - - /** - * Defines the testcase name for JUnit. - * - * @param theName the testcase's name. - */ - public TestActionServlet(String theName) { - super(theName); - } - - /** - * Start the tests. - * - * @param theArgs the arguments. Not used - */ - public static void main(String[] theArgs) { - junit.awtui.TestRunner.main(new String[] { - TestActionServlet.class.getName() - }); - } - - /** - * @return a test suite (TestSuite) that includes all methods - * starting with "test" - */ - public static Test suite() { - // All methods starting with "test" will be executed in the test suite. - return new TestSuite(TestActionServlet.class); - } - - // ------------------------------------------------- setUp() and tearDown() - - /** - * Set up instance variables required by this test case. - */ - public void setUp() throws Exception { - actionServlet = new ActionServlet(); - actionServlet.initInternal(); - - ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory(); - - moduleConfig = factoryObject.createModuleConfig(""); - - // Setup the base form - baseFormBean = new FormBeanConfig(); - baseFormBean.setName("baseForm"); - baseFormBean.setType("org.apache.struts.action.DynaActionForm"); - - // Set up id, name, and score - FormPropertyConfig property = new FormPropertyConfig(); - - property.setName("id"); - property.setType("java.lang.String"); - baseFormBean.addFormPropertyConfig(property); - - property = new FormPropertyConfig(); - property.setName("name"); - property.setType("java.lang.String"); - baseFormBean.addFormPropertyConfig(property); - - property = new FormPropertyConfig(); - property.setName("score"); - property.setType("java.lang.String"); - baseFormBean.addFormPropertyConfig(property); - - // Setup the exception handler - baseException = new ExceptionConfig(); - baseException.setType("java.lang.NullPointerException"); - baseException.setKey("msg.exception.npe"); - - // Setup the forward config - baseForward = new ActionForward("success", "/succes.jsp", false); - - // Setup the action config - baseAction = new ActionMapping(); - baseAction.setPath("/index"); - baseAction.setType("org.apache.struts.actions.DummyAction"); - baseAction.setName("someForm"); - baseAction.setInput("/input.jsp"); - baseAction.addForwardConfig(new ActionForward("next", "/next.jsp", false)); - baseAction.addForwardConfig(new ActionForward("prev", "/prev.jsp", false)); - - ExceptionConfig exceptionConfig = new ExceptionConfig(); - - exceptionConfig.setType("java.sql.SQLException"); - exceptionConfig.setKey("msg.exception.sql"); - baseAction.addExceptionConfig(exceptionConfig); - - // Nothing is registered to our module config until they are needed - } - - /** - * Tear down instance variables required by this test case. - */ - public void tearDown() { - moduleConfig = null; - } - - // ----------------------------- initInternal() and destroyInternal() tests - - /** - * Verify that we can initialize and destroy our internal message - * resources object. - */ - public void testInitDestroyInternal() { - ActionServlet servlet = new ActionServlet(); - - try { - servlet.initInternal(); - } catch (ServletException e) { - fail("initInternal() threw exception: " + e); - } - - assertTrue("internal was initialized", servlet.getInternal() != null); - assertTrue("internal of correct type", - servlet.getInternal() instanceof MessageResources); - servlet.destroyInternal(); - assertTrue("internal was destroyed", servlet.getInternal() == null); - } - - /** - * Test class loader resolution and splitting. - */ - public void notestSplitAndResolvePaths() - throws Exception { - ActionServlet servlet = new ActionServlet(); - List list = - servlet.splitAndResolvePaths( - "org/apache/struts/config/struts-config.xml"); - - assertNotNull(list); - assertTrue("List size should be 1", list.size() == 1); - - list = - servlet.splitAndResolvePaths( - "org/apache/struts/config/struts-config.xml, " - + "org/apache/struts/config/struts-config-1.1.xml"); - assertNotNull(list); - assertTrue("List size should be 2, was " + list.size(), list.size() == 2); - - list = servlet.splitAndResolvePaths("META-INF/MANIFEST.MF"); - assertNotNull(list); - assertTrue("Number of manifests should be more than 5, was " - + list.size(), list.size() > 5); - - // test invalid path - try { - list = - servlet.splitAndResolvePaths( - "org/apache/struts/config/struts-asdfasdfconfig.xml"); - fail("Should have thrown an exception on bad path"); - } catch (NullPointerException ex) { - // correct behavior since internal error resources aren't loaded - } - } - - //----- Test initApplication() method -------------------------------------- - - /** - * Verify that nothing happens if no "application" property is defined in - * the servlet configuration. - */ - - /* - public void testInitApplicationNull() throws ServletException - { - ActionServlet servlet = new ActionServlet(); - servlet.init(config); - - // Test the initApplication() method - servlet.initApplication(); - - // As no "application" object is found in the servlet config, no - // attribute should be set in the context - assertTrue(config.getServletContext().getAttribute(Action.MESSAGES_KEY) == null); - } - */ - - /** - * Verify that eveything is fine when only a "application" parameter is - * defined in the servlet configuration. - */ - - /* - public void testInitApplicationOk1() throws ServletException - { - // initialize config - config.setInitParameter("application", "org.apache.struts.webapp.example.ApplicationResources"); - - ActionServlet servlet = new ActionServlet(); - servlet.init(config); - - // Test the initApplication() method - servlet.initApplication(); - - assertTrue(servlet.application != null); - assertTrue(servlet.application.getReturnNull() == true); - - assertTrue(config.getServletContext().getAttribute(Action.MESSAGES_KEY) != null); - assertEquals(servlet.application, config.getServletContext().getAttribute(Action.MESSAGES_KEY)); - - } - */ - - // --------------------------------------------------- FormBeanConfig Tests - - /** - * Test that nothing fails if there are no extensions. - */ - public void testInitModuleFormBeansNoExtends() - throws ServletException { - moduleConfig.addFormBeanConfig(baseFormBean); - - try { - actionServlet.initModuleExceptionConfigs(moduleConfig); - } catch (Exception e) { - fail("Unexpected exception caught."); - } - } - - /** - * Test that initModuleFormBeans throws an exception when a form with a - * null type is present. - */ - public void testInitModuleFormBeansNullFormType() - throws ServletException { - FormBeanConfig formBean = new FormBeanConfig(); - - formBean.setName("noTypeForm"); - moduleConfig.addFormBeanConfig(formBean); - - try { - actionServlet.initModuleFormBeans(moduleConfig); - fail("An exception should've been thrown here."); - } catch (UnavailableException e) { - // success - } catch (Exception e) { - fail("Unrecognized exception thrown: " + e); - } - } - - /** - * Test that initModuleFormBeans throws an exception when a form whose - * prop type is null is present. - */ - public void testInitModuleFormBeansNullPropType() - throws ServletException { - moduleConfig.addFormBeanConfig(baseFormBean); - baseFormBean.findFormPropertyConfig("name").setType(null); - - try { - actionServlet.initModuleFormBeans(moduleConfig); - fail("An exception should've been thrown here."); - } catch (UnavailableException e) { - // success - } catch (Exception e) { - fail("Unrecognized exception thrown: " + e); - } - } - - /** - * Test that processFormBeanExtension() calls processExtends() - */ - public void testProcessFormBeanExtension() - throws ServletException { - CustomFormBeanConfig form = new CustomFormBeanConfig(); - - actionServlet.processFormBeanExtension(form, moduleConfig); - - assertTrue("processExtends() was not called", form.processExtendsCalled); - } - - /** - * Make sure processFormBeanConfigClass() returns an instance of the - * correct class if the base config is using a custom class. - */ - public void testProcessFormBeanConfigClass() - throws Exception { - CustomFormBeanConfig customBase = new CustomFormBeanConfig(); - - customBase.setName("customBase"); - moduleConfig.addFormBeanConfig(customBase); - - FormBeanConfig customSub = new FormBeanConfig(); - - customSub.setName("customSub"); - customSub.setExtends("customBase"); - customSub.setType("org.apache.struts.action.DynaActionForm"); - moduleConfig.addFormBeanConfig(customSub); - - FormBeanConfig result = - actionServlet.processFormBeanConfigClass(customSub, moduleConfig); - - assertTrue("Incorrect class of form bean config", - result instanceof CustomFormBeanConfig); - assertEquals("Incorrect name", customSub.getName(), result.getName()); - assertEquals("Incorrect type", customSub.getType(), result.getType()); - assertEquals("Incorrect extends", customSub.getExtends(), - result.getExtends()); - assertEquals("Incorrect 'restricted' value", customSub.isRestricted(), - result.isRestricted()); - - assertSame("Result was not registered in the module config", result, - moduleConfig.findFormBeanConfig("customSub")); - } - - /** - * Make sure processFormBeanConfigClass() returns what it was given if the - * form passed to it doesn't extend anything. - */ - public void testProcessFormBeanConfigClassNoExtends() - throws Exception { - moduleConfig.addFormBeanConfig(baseFormBean); - - FormBeanConfig result = null; - - try { - result = - actionServlet.processFormBeanConfigClass(baseFormBean, - moduleConfig); - } catch (UnavailableException e) { - fail("An exception should not be thrown when there's nothing to do"); - } - - assertSame("Result should be the same as the input.", baseFormBean, - result); - } - - /** - * Make sure processFormBeanConfigClass() returns the same class instance - * if the base config isn't using a custom class. - */ - public void testProcessFormBeanConfigClassSubFormCustomClass() - throws Exception { - moduleConfig.addFormBeanConfig(baseFormBean); - - FormBeanConfig customSub = new FormBeanConfig(); - - customSub.setName("customSub"); - customSub.setExtends("baseForm"); - moduleConfig.addFormBeanConfig(customSub); - - FormBeanConfig result = - actionServlet.processFormBeanConfigClass(customSub, moduleConfig); - - assertSame("The instance returned should be the param given it.", - customSub, result); - } - - /** - * Make sure the code throws the correct exception when it can't create an - * instance of the base config's custom class. - */ - public void notestProcessFormBeanConfigClassError() - throws Exception { - CustomFormBeanConfigArg customBase = - new CustomFormBeanConfigArg("customBase"); - - moduleConfig.addFormBeanConfig(customBase); - - FormBeanConfig customSub = new FormBeanConfig(); - - customSub.setName("customSub"); - customSub.setExtends("customBase"); - moduleConfig.addFormBeanConfig(customSub); - - try { - actionServlet.processFormBeanConfigClass(customSub, moduleConfig); - fail("Exception should be thrown"); - } catch (UnavailableException e) { - // success - } catch (Exception e) { - fail("Unexpected exception thrown."); - } - } - - /** - * Test the case where the subform has already specified its own form bean - * config class. If the code still attempts to create a new instance, an - * error will be thrown. - */ - public void testProcessFormBeanConfigClassOverriddenSubFormClass() - throws Exception { - CustomFormBeanConfigArg customBase = - new CustomFormBeanConfigArg("customBase"); - - moduleConfig.addFormBeanConfig(customBase); - - FormBeanConfig customSub = new CustomFormBeanConfigArg("customSub"); - - customSub.setExtends("customBase"); - moduleConfig.addFormBeanConfig(customSub); - - try { - actionServlet.processFormBeanConfigClass(customSub, moduleConfig); - } catch (Exception e) { - fail("Exception should not be thrown"); - } - } - - // -------------------------------------------------- ExceptionConfig Tests - - /** - * Test that nothing fails if there are no extensions. - */ - public void testInitModuleExceptionConfigsNoExtends() - throws ServletException { - moduleConfig.addExceptionConfig(baseException); - - try { - actionServlet.initModuleExceptionConfigs(moduleConfig); - } catch (Exception e) { - fail("Unexpected exception caught."); - } - } - - /** - * Test that initModuleExceptionConfigs throws an exception when a handler - * with a null key is present. - */ - public void testInitModuleExceptionConfigsNullFormType() - throws ServletException { - ExceptionConfig handler = new ExceptionConfig(); - - handler.setType("java.lang.NullPointerException"); - moduleConfig.addExceptionConfig(handler); - - try { - actionServlet.initModuleExceptionConfigs(moduleConfig); - fail("An exception should've been thrown here."); - } catch (UnavailableException e) { - // success - } catch (Exception e) { - fail("Unrecognized exception thrown: " + e); - } - } - - /** - * Test that processExceptionExtension() calls processExtends() - */ - public void testProcessExceptionExtension() - throws ServletException { - CustomExceptionConfig handler = new CustomExceptionConfig(); - - handler.setType("java.lang.NullPointerException"); - moduleConfig.addExceptionConfig(handler); - actionServlet.processExceptionExtension(handler, moduleConfig, null); - - assertTrue("processExtends() was not called", - handler.processExtendsCalled); - } - - /** - * Make sure processExceptionConfigClass() returns an instance of the - * correct class if the base config is using a custom class. - */ - public void testProcessExceptionConfigClass() - throws Exception { - CustomExceptionConfig customBase = new CustomExceptionConfig(); - - customBase.setType("java.lang.NullPointerException"); - customBase.setKey("msg.exception.npe"); - moduleConfig.addExceptionConfig(customBase); - - ExceptionConfig customSub = new ExceptionConfig(); - - customSub.setType("java.lang.IllegalStateException"); - customSub.setExtends("java.lang.NullPointerException"); - moduleConfig.addExceptionConfig(customSub); - - ExceptionConfig result = - actionServlet.processExceptionConfigClass(customSub, moduleConfig, - null); - - assertTrue("Incorrect class of exception config", - result instanceof CustomExceptionConfig); - assertEquals("Incorrect type", customSub.getType(), result.getType()); - assertEquals("Incorrect key", customSub.getKey(), result.getKey()); - assertEquals("Incorrect extends", customSub.getExtends(), - result.getExtends()); - - assertSame("Result was not registered in the module config", result, - moduleConfig.findExceptionConfig("java.lang.IllegalStateException")); - } - - /** - * Make sure processExceptionConfigClass() returns what it was given if - * the handler passed to it doesn't extend anything. - */ - public void testProcessExceptionConfigClassNoExtends() - throws Exception { - moduleConfig.addExceptionConfig(baseException); - - ExceptionConfig result = null; - - try { - result = - actionServlet.processExceptionConfigClass(baseException, - moduleConfig, null); - } catch (UnavailableException e) { - fail("An exception should not be thrown when there's nothing to do"); - } - - assertSame("Result should be the same as the input.", baseException, - result); - } - - /** - * Make sure processExceptionConfigClass() returns the same class instance - * if the base config isn't using a custom class. - */ - public void testProcessExceptionConfigClassSubConfigCustomClass() - throws Exception { - moduleConfig.addExceptionConfig(baseException); - - ExceptionConfig customSub = new ExceptionConfig(); - - customSub.setType("java.lang.IllegalStateException"); - customSub.setExtends("java.lang.NullPointerException"); - moduleConfig.addExceptionConfig(customSub); - - ExceptionConfig result = - actionServlet.processExceptionConfigClass(customSub, moduleConfig, - null); - - assertSame("The instance returned should be the param given it.", - customSub, result); - } - - /** - * Make sure the code throws the correct exception when it can't create an - * instance of the base config's custom class. - */ - public void notestProcessExceptionConfigClassError() - throws Exception { - ExceptionConfig customBase = - new CustomExceptionConfigArg("java.lang.NullPointerException"); - - moduleConfig.addExceptionConfig(customBase); - - ExceptionConfig customSub = new ExceptionConfig(); - - customSub.setType("java.lang.IllegalStateException"); - customSub.setExtends("java.lang.NullPointerException"); - moduleConfig.addExceptionConfig(customSub); - - try { - actionServlet.processExceptionConfigClass(customSub, moduleConfig, - null); - fail("Exception should be thrown"); - } catch (UnavailableException e) { - // success - } catch (Exception e) { - fail("Unexpected exception thrown."); - } - } - - /** - * Test the case where the subconfig has already specified its own config - * class. If the code still attempts to create a new instance, an error - * will be thrown. - */ - public void testProcessExceptionConfigClassOverriddenSubFormClass() - throws Exception { - moduleConfig.addExceptionConfig(baseException); - - ExceptionConfig customSub = - new CustomExceptionConfigArg("java.lang.IllegalStateException"); - - customSub.setExtends("java.lang.NullPointerException"); - moduleConfig.addExceptionConfig(customSub); - - try { - actionServlet.processExceptionConfigClass(customSub, moduleConfig, - null); - } catch (Exception e) { - fail("Exception should not be thrown"); - } - } - - // ---------------------------------------------------- ForwardConfig Tests - - /** - * Test that nothing fails if there are no extensions. - */ - public void testInitModuleForwardConfigsNoExtends() - throws ServletException { - moduleConfig.addForwardConfig(baseForward); - - try { - actionServlet.initModuleForwards(moduleConfig); - } catch (Exception e) { - fail("Unexpected exception caught."); - } - } - - /** - * Test that initModuleForwards throws an exception when a forward with a - * null path is present. - */ - public void testInitModuleForwardsNullFormType() - throws ServletException { - ActionForward forward = new ActionForward("success", null, false); - - moduleConfig.addForwardConfig(forward); - - try { - actionServlet.initModuleForwards(moduleConfig); - fail("An exception should've been thrown here."); - } catch (UnavailableException e) { - // success - } catch (Exception e) { - fail("Unrecognized exception thrown: " + e); - } - } - - /** - * Test that processForwardExtension() calls processExtends() - */ - public void testProcessForwardExtension() - throws ServletException { - CustomForwardConfig forward = - new CustomForwardConfig("forward", "/forward.jsp"); - - moduleConfig.addForwardConfig(forward); - actionServlet.processForwardExtension(forward, moduleConfig, null); - - assertTrue("processExtends() was not called", - forward.processExtendsCalled); - } - - /** - * Make sure processForwardConfigClass() returns an instance of the - * correct class if the base config is using a custom class. - */ - public void testProcessForwardConfigClass() - throws Exception { - CustomForwardConfig customBase = - new CustomForwardConfig("success", "/success.jsp"); - - moduleConfig.addForwardConfig(customBase); - - ActionForward customSub = new ActionForward(); - - customSub.setName("failure"); - customSub.setExtends("success"); - moduleConfig.addForwardConfig(customSub); - - ForwardConfig result = - actionServlet.processForwardConfigClass(customSub, moduleConfig, - null); - - assertTrue("Incorrect class of forward config", - result instanceof CustomForwardConfig); - assertEquals("Incorrect name", customSub.getName(), result.getName()); - assertEquals("Incorrect path", customSub.getPath(), result.getPath()); - assertEquals("Incorrect extends", customSub.getExtends(), - result.getExtends()); - - assertSame("Result was not registered in the module config", result, - moduleConfig.findForwardConfig("failure")); - } - - /** - * Make sure processForwardConfigClass() returns what it was given if the - * forward passed to it doesn't extend anything. - */ - public void testProcessForwardConfigClassNoExtends() - throws Exception { - moduleConfig.addForwardConfig(baseForward); - - ForwardConfig result = null; - - try { - result = - actionServlet.processForwardConfigClass(baseForward, - moduleConfig, null); - } catch (UnavailableException e) { - fail("An exception should not be thrown when there's nothing to do"); - } - - assertSame("Result should be the same as the input.", baseForward, - result); - } - - /** - * Make sure processForwardConfigClass() returns the same class instance - * if the base config isn't using a custom class. - */ - public void testProcessForwardConfigClassSubConfigCustomClass() - throws Exception { - moduleConfig.addForwardConfig(baseForward); - - ForwardConfig customSub = new ActionForward(); - - customSub.setName("failure"); - customSub.setExtends("success"); - moduleConfig.addForwardConfig(customSub); - - ForwardConfig result = - actionServlet.processForwardConfigClass(customSub, moduleConfig, - null); - - assertSame("The instance returned should be the param given it.", - customSub, result); - } - - /** - * Make sure the code throws the correct exception when it can't create an - * instance of the base config's custom class. - */ - public void notestProcessForwardConfigClassError() - throws Exception { - ForwardConfig customBase = - new CustomForwardConfigArg("success", "/success.jsp"); - - moduleConfig.addForwardConfig(customBase); - - ForwardConfig customSub = new ActionForward(); - - customSub.setName("failure"); - customSub.setExtends("success"); - moduleConfig.addForwardConfig(customSub); - - try { - actionServlet.processForwardConfigClass(customSub, moduleConfig, - null); - fail("Exception should be thrown"); - } catch (UnavailableException e) { - // success - } catch (Exception e) { - fail("Unexpected exception thrown."); - } - } - - /** - * Test the case where the subconfig has already specified its own config - * class. If the code still attempts to create a new instance, an error - * will be thrown. - */ - public void testProcessForwardConfigClassOverriddenSubConfigClass() - throws Exception { - moduleConfig.addForwardConfig(baseForward); - - ForwardConfig customSub = - new CustomForwardConfigArg("failure", "/failure.jsp"); - - customSub.setExtends("success"); - moduleConfig.addForwardConfig(customSub); - - try { - actionServlet.processForwardConfigClass(customSub, moduleConfig, - null); - } catch (Exception e) { - fail("Exception should not be thrown"); - } - } - - // --------------------------------------------------- ActionConfig Tests - - /** - * Test that nothing fails if there are no extensions. - */ - public void testInitModuleActionConfigsNoExtends() - throws ServletException { - moduleConfig.addActionConfig(baseAction); - - try { - actionServlet.initModuleActions(moduleConfig); - } catch (Exception e) { - fail("Unexpected exception caught."); - } - } - - /** - * Test that processActionConfigExtension() calls processExtends() - */ - public void testProcessActionExtension() - throws ServletException { - CustomActionConfig action = new CustomActionConfig("/action"); - - moduleConfig.addActionConfig(action); - actionServlet.processActionConfigExtension(action, moduleConfig); - - assertTrue("processExtends() was not called", - action.processExtendsCalled); - } - - /** - * Test that an ActionConfig's ForwardConfig can inherit from a - * global ForwardConfig. - */ - public void testProcessActionExtensionWithForwardConfig() - throws ServletException { - ForwardConfig forwardConfig = new ForwardConfig(); - forwardConfig.setName("sub"); - forwardConfig.setExtends("success"); - baseAction.addForwardConfig(forwardConfig); - - moduleConfig.addActionConfig(baseAction); - moduleConfig.addForwardConfig(baseForward); - actionServlet.processActionConfigExtension(baseAction, moduleConfig); - - forwardConfig = baseAction.findForwardConfig("sub"); - - assertEquals("'sub' forward's inheritance was not processed.", - baseForward.getPath(), forwardConfig.getPath()); - } - - /** - * Test that an ActionConfig's ExceptionConfig can inherit from a - * global ExceptionConfig. - */ - public void testProcessActionExtensionWithExceptionConfig() - throws ServletException { - ExceptionConfig exceptionConfig = new ExceptionConfig(); - exceptionConfig.setType("SomeException"); - exceptionConfig.setExtends("java.lang.NullPointerException"); - baseAction.addExceptionConfig(exceptionConfig); - - moduleConfig.addActionConfig(baseAction); - moduleConfig.addExceptionConfig(baseException); - actionServlet.processActionConfigExtension(baseAction, moduleConfig); - - exceptionConfig = baseAction.findExceptionConfig("SomeException"); - - assertEquals("SomeException's inheritance was not processed.", - baseException.getKey(), exceptionConfig.getKey()); - } - - /** - * Make sure processActionConfigClass() returns an instance of the correct - * class if the base config is using a custom class. - */ - public void testProcessActionConfigClass() - throws Exception { - CustomActionConfig customBase = new CustomActionConfig("/base"); - - moduleConfig.addActionConfig(customBase); - - ActionMapping customSub = new ActionMapping(); - - customSub.setPath("/sub"); - customSub.setExtends("/base"); - moduleConfig.addActionConfig(customSub); - - ActionConfig result = - actionServlet.processActionConfigClass(customSub, moduleConfig); - - assertTrue("Incorrect class of action config", - result instanceof CustomActionConfig); - assertEquals("Incorrect path", customSub.getPath(), result.getPath()); - assertEquals("Incorrect extends", customSub.getExtends(), - result.getExtends()); - - assertSame("Result was not registered in the module config", result, - moduleConfig.findActionConfig("/sub")); - } - - /** - * Make sure processActionConfigClass() returns what it was given if the - * action passed to it doesn't extend anything. - */ - public void testProcessActionConfigClassNoExtends() - throws Exception { - moduleConfig.addActionConfig(baseAction); - - ActionConfig result = null; - - try { - result = - actionServlet.processActionConfigClass(baseAction, moduleConfig); - } catch (UnavailableException e) { - fail("An exception should not be thrown here"); - } - - assertSame("Result should be the same as the input.", baseAction, result); - } - - /** - * Make sure processActionConfigClass() returns the same class instance if - * the base config isn't using a custom class. - */ - public void testProcessActionConfigClassSubConfigCustomClass() - throws Exception { - moduleConfig.addActionConfig(baseAction); - - ActionConfig customSub = new ActionMapping(); - - customSub.setPath("/sub"); - customSub.setExtends("/index"); - moduleConfig.addActionConfig(customSub); - - ActionConfig result = - actionServlet.processActionConfigClass(customSub, moduleConfig); - - assertSame("The instance returned should be the param given it.", - customSub, result); - } - - /** - * Make sure the code throws the correct exception when it can't create an - * instance of the base config's custom class. - */ - public void notestProcessActionConfigClassError() - throws Exception { - ActionConfig customBase = new CustomActionConfigArg("/index"); - - moduleConfig.addActionConfig(customBase); - - ActionConfig customSub = new ActionMapping(); - - customSub.setPath("/sub"); - customSub.setExtends("/index"); - moduleConfig.addActionConfig(customSub); - - try { - actionServlet.processActionConfigClass(customSub, moduleConfig); - fail("Exception should be thrown"); - } catch (UnavailableException e) { - // success - } catch (Exception e) { - fail("Unexpected exception thrown."); - } - } - - /** - * Test the case where the subconfig has already specified its own config - * class. If the code still attempts to create a new instance, an error - * will be thrown. - */ - public void testProcessActionConfigClassOverriddenSubConfigClass() - throws Exception { - moduleConfig.addActionConfig(baseAction); - - ActionConfig customSub = new CustomActionConfigArg("/sub"); - - customSub.setExtends("/index"); - moduleConfig.addActionConfig(customSub); - - try { - actionServlet.processActionConfigClass(customSub, moduleConfig); - } catch (Exception e) { - fail("Exception should not be thrown"); - } - } - - /** - * Used for testing custom FormBeanConfig classes. - */ - public static class CustomFormBeanConfig extends FormBeanConfig { - public boolean processExtendsCalled = false; - - public CustomFormBeanConfig() { - super(); - } - - /** - * Set a flag so we know this method was called. - */ - public void processExtends(ModuleConfig moduleConfig) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException { - processExtendsCalled = true; - } - } - - /** - * Used to test cases where the subclass cannot be created with a no-arg - * constructor. - */ - private class CustomFormBeanConfigArg extends FormBeanConfig { - CustomFormBeanConfigArg(String name) { - super(); - setName(name); - } - } - - /** - * Used for testing custom ExceptionConfig classes. - */ - public static class CustomExceptionConfig extends ExceptionConfig { - public boolean processExtendsCalled = false; - - public CustomExceptionConfig() { - super(); - } - - /** - * Set a flag so we know this method was called. - */ - public void processExtends(ModuleConfig moduleConfig, - ActionConfig actionConfig) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException { - processExtendsCalled = true; - } - } - - /** - * Used to test cases where the subclass cannot be created with a no-arg - * constructor. - */ - private class CustomExceptionConfigArg extends ExceptionConfig { - CustomExceptionConfigArg(String type) { - super(); - setType(type); - } - } - - /** - * Used for testing custom ForwardConfig classes. - */ - public static class CustomForwardConfig extends ForwardConfig { - public boolean processExtendsCalled = false; - - public CustomForwardConfig() { - super(); - } - - public CustomForwardConfig(String name, String path) { - super(name, path, false); - } - - /** - * Set a flag so we know this method was called. - */ - public void processExtends(ModuleConfig moduleConfig, - ActionConfig actionConfig) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException { - processExtendsCalled = true; - } - } - - /** - * Used to test cases where the subclass cannot be created with a no-arg - * constructor. - */ - private class CustomForwardConfigArg extends ForwardConfig { - CustomForwardConfigArg(String name, String path) { - super(); - setName(name); - setPath(path); - } - } - - /** - * Used for testing custom ActionConfig classes. - */ - public static class CustomActionConfig extends ActionConfig { - public boolean processExtendsCalled = false; - - public CustomActionConfig() { - super(); - } - - public CustomActionConfig(String path) { - super(); - setPath(path); - } - - /** - * Set a flag so we know this method was called. - */ - public void processExtends(ModuleConfig moduleConfig) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException { - processExtendsCalled = true; - } - } - - /** - * Used to test cases where the subclass cannot be created with a no-arg - * constructor. - */ - private class CustomActionConfigArg extends ActionConfig { - CustomActionConfigArg(String path) { - super(); - setPath(path); - } - } - - // [...] -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestDynaActionForm.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestDynaActionForm.java deleted file mode 100644 index d287c28de5f..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestDynaActionForm.java +++ /dev/null @@ -1,796 +0,0 @@ -/* - * $Id: TestDynaActionForm.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.apache.commons.beanutils.DynaProperty; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.config.FormBeanConfig; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.config.impl.ModuleConfigImpl; -import org.apache.struts.mock.MockHttpServletRequest; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Suite of unit tests for the org.apache.struts.action.DynaActionForm - * class. - */ -public class TestDynaActionForm extends TestDynaActionFormClass { - /** - * The set of property names we expect to have returned when calling - * getDynaProperties(). You should update this list when new - * properties are added to TestBean. - */ - protected final static String[] properties = - { - "booleanProperty", "booleanSecond", "doubleProperty", - "floatProperty", "intArray", "intIndexed", "intProperty", - "listIndexed", "longProperty", "mappedProperty", "mappedIntProperty", - - - // "nullProperty", - "shortProperty", "stringArray", "stringIndexed", "stringProperty", - }; - - // ----------------------------------------------------- Instance Variables - - /** - * Dummy ModuleConfig for calls to reset() and validate(). - */ - protected ModuleConfig moduleConfig = null; - - /** - * The basic DynaActionForm to use for testing. - */ - protected DynaActionForm dynaForm = null; - - /** - * Dummy ActionMapping for calls to reset() and validate(). - */ - protected ActionMapping mapping = null; - protected Log log = null; - - /** - * Defines the testcase name for JUnit. - * - * @param theName the testcase's name. - */ - public TestDynaActionForm(String theName) { - super(theName); - } - - /** - * Start the tests. - * - * @param theArgs the arguments. Not used - */ - public static void main(String[] theArgs) { - junit.awtui.TestRunner.main(new String[] { - TestDynaActionForm.class.getName() - }); - } - - /** - * @return a test suite (TestSuite) that includes all methods - * starting with "test" - */ - public static Test suite() { - // All methods starting with "test" will be executed in the test suite. - return new TestSuite(TestDynaActionForm.class); - } - - // ----------------------------------------------------- Setup and Teardown - public void setUp() { - super.setUp(); - - try { - dynaForm = (DynaActionForm) dynaClass.newInstance(); - } catch (IllegalAccessException e) { - throw new RuntimeException(e.getMessage()); - } catch (InstantiationException e) { - throw new RuntimeException(e.getMessage()); - } - - setupComplexProperties(); - moduleConfig = new DynaActionFormConfig(beanConfig); - mapping = new DynaActionFormMapping(moduleConfig); - log = LogFactory.getLog(this.getClass().getName() + "." - + this.getName()); - } - - public void tearDown() { - super.tearDown(); - moduleConfig = null; - dynaForm = null; - mapping = null; - } - - // --------------------------------------------- Create New DynaActionForms - // Test basic form bean properties on creation - public void testBeanCreate() { - assertEquals("booleanProperty", Boolean.TRUE, - (Boolean) dynaForm.get("booleanProperty")); - assertEquals("booleanSecond", Boolean.TRUE, - (Boolean) dynaForm.get("booleanSecond")); - assertEquals("doubleProperty", new Double(321.0), - (Double) dynaForm.get("doubleProperty")); - assertEquals("floatProperty", new Float((float) 123.0), - (Float) dynaForm.get("floatProperty")); - assertEquals("intProperty", new Integer(123), - (Integer) dynaForm.get("intProperty")); - - // FIXME - listIndexed - assertEquals("longProperty", new Long((long) 321), - (Long) dynaForm.get("longProperty")); - - // FIXME - mappedProperty - // FIXME - mappedIntProperty - // assertEquals("nullProperty", (String) null, - // (String) dynaForm.get("nullProperty")); - assertEquals("shortProperty", new Short((short) 987), - (Short) dynaForm.get("shortProperty")); - assertEquals("stringProperty", "This is a string", - (String) dynaForm.get("stringProperty")); - } - - // Test initialize() method on indexed values to ensure that the - // result returned by FormPropertyConfig().initial() is never clobbered - public void testIndexedInitialize() { - // Update some values in the indexed properties - dynaForm.set("intArray", 1, new Integer(111)); - assertEquals("intArray[1]", new Integer(111), - (Integer) dynaForm.get("intArray", 1)); - dynaForm.set("intIndexed", 2, new Integer(222)); - assertEquals("intIndexed[2]", new Integer(222), - (Integer) dynaForm.get("intIndexed", 2)); - dynaForm.set("stringArray", 3, "New String 3"); - assertEquals("stringArray[3]", "New String 3", - (String) dynaForm.get("stringArray", 3)); - dynaForm.set("stringIndexed", 4, "New String 4"); - assertEquals("stringIndexed[4]", "New String 4", - (String) dynaForm.get("stringIndexed", 4)); - - // Perform initialize() and revalidate the original values - // while ensuring our initial values did not get corrupted - dynaForm.initialize(mapping); - setupComplexProperties(); - testGetIndexedValues(); - } - - // Test initialize() method going back to initial values - public void testScalarInitialize() { - // Update a bunch of scalar properties to new values - dynaForm.set("booleanProperty", Boolean.FALSE); - assertEquals("booleanProperty", Boolean.FALSE, - (Boolean) dynaForm.get("booleanProperty")); - dynaForm.set("booleanSecond", Boolean.FALSE); - dynaForm.set("doubleProperty", new Double(654.0)); - dynaForm.set("floatProperty", new Float((float) 543.0)); - dynaForm.set("intProperty", new Integer(555)); - dynaForm.set("longProperty", new Long((long) 777)); - dynaForm.set("shortProperty", new Short((short) 222)); - dynaForm.set("stringProperty", "New String Value"); - assertEquals("stringProperty", "New String Value", - (String) dynaForm.get("stringProperty")); - - // Perform initialize() and revalidate the original values - dynaForm.initialize(mapping); - setupComplexProperties(); - testBeanCreate(); - } - - // --------------------------------------- Tests from BasicDynaBeanTestCase - - /** - * Corner cases on getDynaProperty invalid arguments. - */ - public void testGetDescriptorArguments() { - DynaProperty descriptor = - dynaForm.getDynaClass().getDynaProperty("unknown"); - - assertNull("Unknown property descriptor should be null", descriptor); - - try { - dynaForm.getDynaClass().getDynaProperty(null); - fail("Should throw IllegalArgumentException"); - } catch (IllegalArgumentException e) { - ; // Expected response - } - } - - /** - * Positive getDynaProperty on property booleanProperty. - */ - public void testGetDescriptorBoolean() { - testGetDescriptorBase("booleanProperty", Boolean.TYPE); - } - - /** - * Positive getDynaProperty on property doubleProperty. - */ - public void testGetDescriptorDouble() { - testGetDescriptorBase("doubleProperty", Double.TYPE); - } - - /** - * Positive getDynaProperty on property floatProperty. - */ - public void testGetDescriptorFloat() { - testGetDescriptorBase("floatProperty", Float.TYPE); - } - - /** - * Positive getDynaProperty on property intProperty. - */ - public void testGetDescriptorInt() { - testGetDescriptorBase("intProperty", Integer.TYPE); - } - - /** - * Positive getDynaProperty on property longProperty. - */ - public void testGetDescriptorLong() { - testGetDescriptorBase("longProperty", Long.TYPE); - } - - /** - * Positive getDynaProperty on property booleanSecond that - * uses an "is" method as the getter. - */ - public void testGetDescriptorSecond() { - testGetDescriptorBase("booleanSecond", Boolean.TYPE); - } - - /** - * Positive getDynaProperty on property shortProperty. - */ - public void testGetDescriptorShort() { - testGetDescriptorBase("shortProperty", Short.TYPE); - } - - /** - * Positive getDynaProperty on property stringProperty. - */ - public void testGetDescriptorString() { - testGetDescriptorBase("stringProperty", String.class); - } - - /** - * Positive test for getDynaPropertys(). Each property name listed in - * properties should be returned exactly once. - */ - public void testGetDescriptors() { - DynaProperty[] pd = dynaForm.getDynaClass().getDynaProperties(); - - assertNotNull("Got descriptors", pd); - - int[] count = new int[properties.length]; - - for (int i = 0; i < pd.length; i++) { - String name = pd[i].getName(); - - for (int j = 0; j < properties.length; j++) { - if (name.equals(properties[j])) { - count[j]++; - } - } - } - - for (int j = 0; j < properties.length; j++) { - if (count[j] < 0) { - fail("Missing property " + properties[j]); - } else if (count[j] > 1) { - fail("Duplicate property " + properties[j]); - } - } - } - - /** - * Corner cases on getIndexedProperty invalid arguments. - */ - public void testGetIndexedArguments() { - try { - dynaForm.get("intArray", -1); - fail("Should throw IndexOutOfBoundsException"); - } catch (IndexOutOfBoundsException e) { - ; // Expected response - } - } - - /** - * Positive and negative tests on getIndexedProperty valid arguments. - */ - public void testGetIndexedValues() { - Object value = null; - - for (int i = 0; i < 5; i++) { - value = dynaForm.get("intArray", i); - assertNotNull("intArray returned value " + i, value); - assertTrue("intArray returned Integer " + i, - value instanceof Integer); - assertEquals("intArray returned correct " + i, i * 10, - ((Integer) value).intValue()); - - value = dynaForm.get("intIndexed", i); - assertNotNull("intIndexed returned value " + i, value); - assertTrue("intIndexed returned Integer " + i, - value instanceof Integer); - assertEquals("intIndexed returned correct " + i, i * 100, - ((Integer) value).intValue()); - - value = dynaForm.get("listIndexed", i); - assertNotNull("listIndexed returned value " + i, value); - assertTrue("list returned String " + i, value instanceof String); - assertEquals("listIndexed returned correct " + i, "String " + i, - (String) value); - - value = dynaForm.get("stringArray", i); - assertNotNull("stringArray returned value " + i, value); - assertTrue("stringArray returned String " + i, - value instanceof String); - assertEquals("stringArray returned correct " + i, "String " + i, - (String) value); - - value = dynaForm.get("stringIndexed", i); - assertNotNull("stringIndexed returned value " + i, value); - assertTrue("stringIndexed returned String " + i, - value instanceof String); - assertEquals("stringIndexed returned correct " + i, "String " + i, - (String) value); - } - } - - /** - * Corner cases on getMappedProperty invalid arguments. - */ - public void testGetMappedArguments() { - Object value = dynaForm.get("mappedProperty", "unknown"); - - assertNull("Should not return a value", value); - } - - /** - * Positive and negative tests on getMappedProperty valid arguments. - */ - public void testGetMappedValues() { - Object value = null; - - value = dynaForm.get("mappedProperty", "First Key"); - assertEquals("Can find first value", "First Value", value); - - value = dynaForm.get("mappedProperty", "Second Key"); - assertEquals("Can find second value", "Second Value", value); - - value = dynaForm.get("mappedProperty", "Third Key"); - assertNull("Can not find third value", value); - } - - /** - * Corner cases on getSimpleProperty invalid arguments. - */ - public void testGetSimpleArguments() { - try { - dynaForm.get(null); - fail("Should throw IllegalArgumentException"); - } catch (IllegalArgumentException e) { - ; // Expected response - } - } - - /** - * Test getSimpleProperty on a boolean property. - */ - public void testGetSimpleBoolean() { - Object value = dynaForm.get("booleanProperty"); - - assertNotNull("Got a value", value); - assertTrue("Got correct type", (value instanceof Boolean)); - assertTrue("Got correct value", ((Boolean) value).booleanValue() == true); - } - - /** - * Test getSimpleProperty on a double property. - */ - public void testGetSimpleDouble() { - Object value = dynaForm.get("doubleProperty"); - - assertNotNull("Got a value", value); - assertTrue("Got correct type", (value instanceof Double)); - assertEquals("Got correct value", ((Double) value).doubleValue(), - (double) 321.0, (double) 0.005); - } - - /** - * Test getSimpleProperty on a float property. - */ - public void testGetSimpleFloat() { - Object value = dynaForm.get("floatProperty"); - - assertNotNull("Got a value", value); - assertTrue("Got correct type", (value instanceof Float)); - assertEquals("Got correct value", ((Float) value).floatValue(), - (float) 123.0, (float) 0.005); - } - - /** - * Test getSimpleProperty on a int property. - */ - public void testGetSimpleInt() { - Object value = dynaForm.get("intProperty"); - - assertNotNull("Got a value", value); - assertTrue("Got correct type", (value instanceof Integer)); - assertEquals("Got correct value", ((Integer) value).intValue(), - (int) 123); - } - - /** - * Test getSimpleProperty on a long property. - */ - public void testGetSimpleLong() { - Object value = dynaForm.get("longProperty"); - - assertNotNull("Got a value", value); - assertTrue("Got correct type", (value instanceof Long)); - assertEquals("Got correct value", ((Long) value).longValue(), (long) 321); - } - - /** - * Test getSimpleProperty on a short property. - */ - public void testGetSimpleShort() { - Object value = dynaForm.get("shortProperty"); - - assertNotNull("Got a value", value); - assertTrue("Got correct type", (value instanceof Short)); - assertEquals("Got correct value", ((Short) value).shortValue(), - (short) 987); - } - - /** - * Test getSimpleProperty on a String property. - */ - public void testGetSimpleString() { - Object value = dynaForm.get("stringProperty"); - - assertNotNull("Got a value", value); - assertTrue("Got correct type", (value instanceof String)); - assertEquals("Got correct value", (String) value, "This is a string"); - } - - /** - * Test contains() method for mapped properties. - */ - public void testMappedContains() { - assertTrue("Can see first key", - dynaForm.contains("mappedProperty", "First Key")); - - assertTrue("Can not see unknown key", - !dynaForm.contains("mappedProperty", "Unknown Key")); - } - - /** - * Test remove() method for mapped properties. - */ - public void testMappedRemove() { - assertTrue("Can see first key", - dynaForm.contains("mappedProperty", "First Key")); - dynaForm.remove("mappedProperty", "First Key"); - assertTrue("Can not see first key", - !dynaForm.contains("mappedProperty", "First Key")); - - assertTrue("Can not see unknown key", - !dynaForm.contains("mappedProperty", "Unknown Key")); - dynaForm.remove("mappedProperty", "Unknown Key"); - assertTrue("Can not see unknown key", - !dynaForm.contains("mappedProperty", "Unknown Key")); - } - - /** - * Test the reset method when the request method is GET. - */ - public void testResetGet() { - // set a choice set of props with non-initial values - dynaForm.set("booleanProperty", Boolean.FALSE); - dynaForm.set("booleanSecond", Boolean.FALSE); - dynaForm.set("doubleProperty", new Double(456.0)); - dynaForm.set("floatProperty", new Float((float) 456.0)); - dynaForm.set("intProperty", new Integer(456)); - - MockHttpServletRequest request = new MockHttpServletRequest(); - - request.setMethod("GET"); - dynaForm.reset(mapping, request); - - assertEquals("booleanProperty should be reset", Boolean.TRUE, - (Boolean) dynaForm.get("booleanProperty")); - assertEquals("booleanSecond should be reset", Boolean.TRUE, - (Boolean) dynaForm.get("booleanSecond")); - assertEquals("doubleProperty should be reset", new Double(321.0), - (Double) dynaForm.get("doubleProperty")); - assertEquals("floatProperty should NOT be reset", - new Float((float) 456.0), (Float) dynaForm.get("floatProperty")); - assertEquals("intProperty should NOT be reset", new Integer(456), - (Integer) dynaForm.get("intProperty")); - } - - /** - * Test the reset method when the request method is GET. - */ - public void testResetPost() { - // set a choice set of props with non-initial values - dynaForm.set("booleanProperty", Boolean.FALSE); - dynaForm.set("booleanSecond", Boolean.FALSE); - dynaForm.set("doubleProperty", new Double(456.0)); - dynaForm.set("floatProperty", new Float((float) 456.0)); - dynaForm.set("intProperty", new Integer(456)); - - MockHttpServletRequest request = new MockHttpServletRequest(); - - request.setMethod("POST"); - dynaForm.reset(mapping, request); - - assertEquals("booleanProperty should be reset", Boolean.TRUE, - (Boolean) dynaForm.get("booleanProperty")); - assertEquals("booleanSecond should be reset", Boolean.TRUE, - (Boolean) dynaForm.get("booleanSecond")); - assertEquals("doubleProperty should NOT be reset", new Double(456), - (Double) dynaForm.get("doubleProperty")); - assertEquals("floatProperty should be reset", new Float((float) 123.0), - (Float) dynaForm.get("floatProperty")); - assertEquals("intProperty should NOT be reset", new Integer(456), - (Integer) dynaForm.get("intProperty")); - } - - /** - * Corner cases on setIndexedProperty invalid arguments. - */ - public void testSetIndexedArguments() { - try { - dynaForm.set("intArray", -1, new Integer(0)); - fail("Should throw IndexOutOfBoundsException"); - } catch (IndexOutOfBoundsException e) { - ; // Expected response - } - } - - /** - * Positive and negative tests on setIndexedProperty valid arguments. - */ - public void testSetIndexedValues() { - Object value = null; - - dynaForm.set("intArray", 0, new Integer(1)); - value = (Integer) dynaForm.get("intArray", 0); - assertNotNull("Returned new value 0", value); - assertTrue("Returned Integer new value 0", value instanceof Integer); - assertEquals("Returned correct new value 0", 1, - ((Integer) value).intValue()); - - dynaForm.set("intIndexed", 1, new Integer(11)); - value = (Integer) dynaForm.get("intIndexed", 1); - assertNotNull("Returned new value 1", value); - assertTrue("Returned Integer new value 1", value instanceof Integer); - assertEquals("Returned correct new value 1", 11, - ((Integer) value).intValue()); - dynaForm.set("listIndexed", 2, "New Value 2"); - value = (String) dynaForm.get("listIndexed", 2); - assertNotNull("Returned new value 2", value); - assertTrue("Returned String new value 2", value instanceof String); - assertEquals("Returned correct new value 2", "New Value 2", - (String) value); - - dynaForm.set("stringArray", 3, "New Value 3"); - value = (String) dynaForm.get("stringArray", 3); - assertNotNull("Returned new value 3", value); - assertTrue("Returned String new value 3", value instanceof String); - assertEquals("Returned correct new value 3", "New Value 3", - (String) value); - - dynaForm.set("stringIndexed", 4, "New Value 4"); - value = (String) dynaForm.get("stringIndexed", 4); - assertNotNull("Returned new value 4", value); - assertTrue("Returned String new value 4", value instanceof String); - assertEquals("Returned correct new value 4", "New Value 4", - (String) value); - } - - /** - * Positive and negative tests on setMappedProperty valid arguments. - */ - public void testSetMappedValues() { - dynaForm.set("mappedProperty", "First Key", "New First Value"); - assertEquals("Can replace old value", "New First Value", - (String) dynaForm.get("mappedProperty", "First Key")); - - dynaForm.set("mappedProperty", "Fourth Key", "Fourth Value"); - assertEquals("Can set new value", "Fourth Value", - (String) dynaForm.get("mappedProperty", "Fourth Key")); - } - - /** - * Test setSimpleProperty on a boolean property. - */ - public void testSetSimpleBoolean() { - boolean oldValue = - ((Boolean) dynaForm.get("booleanProperty")).booleanValue(); - boolean newValue = !oldValue; - - dynaForm.set("booleanProperty", new Boolean(newValue)); - assertTrue("Matched new value", - newValue == ((Boolean) dynaForm.get("booleanProperty")) - .booleanValue()); - } - - /** - * Test setSimpleProperty on a double property. - */ - public void testSetSimpleDouble() { - double oldValue = - ((Double) dynaForm.get("doubleProperty")).doubleValue(); - double newValue = oldValue + 1.0; - - dynaForm.set("doubleProperty", new Double(newValue)); - assertEquals("Matched new value", newValue, - ((Double) dynaForm.get("doubleProperty")).doubleValue(), - (double) 0.005); - } - - /** - * Test setSimpleProperty on a float property. - */ - public void testSetSimpleFloat() { - float oldValue = ((Float) dynaForm.get("floatProperty")).floatValue(); - float newValue = oldValue + (float) 1.0; - - dynaForm.set("floatProperty", new Float(newValue)); - assertEquals("Matched new value", newValue, - ((Float) dynaForm.get("floatProperty")).floatValue(), (float) 0.005); - } - - /** - * Test setSimpleProperty on a int property. - */ - public void testSetSimpleInt() { - int oldValue = ((Integer) dynaForm.get("intProperty")).intValue(); - int newValue = oldValue + 1; - - dynaForm.set("intProperty", new Integer(newValue)); - assertEquals("Matched new value", newValue, - ((Integer) dynaForm.get("intProperty")).intValue()); - } - - /** - * Test setSimpleProperty on a long property. - */ - public void testSetSimpleLong() { - long oldValue = ((Long) dynaForm.get("longProperty")).longValue(); - long newValue = oldValue + 1; - - dynaForm.set("longProperty", new Long(newValue)); - assertEquals("Matched new value", newValue, - ((Long) dynaForm.get("longProperty")).longValue()); - } - - /** - * Test setSimpleProperty on a short property. - */ - public void testSetSimpleShort() { - short oldValue = ((Short) dynaForm.get("shortProperty")).shortValue(); - short newValue = (short) (oldValue + 1); - - dynaForm.set("shortProperty", new Short(newValue)); - assertEquals("Matched new value", newValue, - ((Short) dynaForm.get("shortProperty")).shortValue()); - } - - /** - * Test setSimpleProperty on a String property. - */ - public void testSetSimpleString() { - String oldValue = (String) dynaForm.get("stringProperty"); - String newValue = oldValue + " Extra Value"; - - dynaForm.set("stringProperty", newValue); - assertEquals("Matched new value", newValue, - (String) dynaForm.get("stringProperty")); - } - - // ------------------------------------------------------ Protected Methods - - /** - * Set up the complex properties that cannot be configured from the - * initial value expression. - */ - protected void setupComplexProperties() { - List listIndexed = new ArrayList(); - - listIndexed.add("String 0"); - listIndexed.add("String 1"); - listIndexed.add("String 2"); - listIndexed.add("String 3"); - listIndexed.add("String 4"); - dynaForm.set("listIndexed", listIndexed); - - Map mappedProperty = new HashMap(); - - mappedProperty.put("First Key", "First Value"); - mappedProperty.put("Second Key", "Second Value"); - dynaForm.set("mappedProperty", mappedProperty); - - Map mappedIntProperty = new HashMap(); - - mappedIntProperty.put("One", new Integer(1)); - mappedIntProperty.put("Two", new Integer(2)); - dynaForm.set("mappedIntProperty", mappedIntProperty); - } - - /** - * Base for testGetDescriptorXxxxx() series of tests. - * - * @param name Name of the property to be retrieved - * @param type Expected class type of this property - */ - protected void testGetDescriptorBase(String name, Class type) { - DynaProperty descriptor = dynaForm.getDynaClass().getDynaProperty(name); - - assertNotNull("Got descriptor", descriptor); - assertEquals("Got correct type", type, descriptor.getType()); - } -} - - -class DynaActionFormMapping extends ActionMapping { - private ModuleConfig appConfig = null; - - public DynaActionFormMapping(ModuleConfig appConfig) { - this.appConfig = appConfig; - } - - public ModuleConfig getModuleConfig() { - return (this.appConfig); - } - - public String getName() { - return ("dynaForm"); - } -} - - -class DynaActionFormConfig extends ModuleConfigImpl { - private FormBeanConfig beanConfig = null; - - public DynaActionFormConfig(FormBeanConfig beanConfig) { - super(""); - this.beanConfig = beanConfig; - } - - public FormBeanConfig findFormBeanConfig(String name) { - return (this.beanConfig); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestDynaActionFormClass.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestDynaActionFormClass.java deleted file mode 100644 index 44fe93e9cfd..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/action/TestDynaActionFormClass.java +++ /dev/null @@ -1,267 +0,0 @@ -/* - * $Id: TestDynaActionFormClass.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.action; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -import org.apache.commons.beanutils.DynaProperty; -import org.apache.struts.config.FormBeanConfig; -import org.apache.struts.config.FormPropertyConfig; - -/** - * Suite of unit tests for the org.apache.struts.action.DynaActionFormClass - * class. - */ -public class TestDynaActionFormClass extends TestCase { - /** - * The set of FormPropertyConfig objects to use when creating - * our FormBeanConfig. - */ - protected static final FormPropertyConfig[] dynaProperties = - { - new FormPropertyConfig("booleanProperty", "boolean", "true", "true"), - new FormPropertyConfig("booleanSecond", "boolean", "true", "true"), - new FormPropertyConfig("doubleProperty", "double", "321.0", "GET"), - new FormPropertyConfig("floatProperty", "float", "123.0", - "POST, HEAD"), - new FormPropertyConfig("intArray", "int[]", - "{ 0, 10,20, \"30\" '40' }"), - new FormPropertyConfig("intIndexed", "int[]", - " 0 100, 200, 300, 400 "), - new FormPropertyConfig("intProperty", "int", "123"), - new FormPropertyConfig("listIndexed", "java.util.List", null), - new FormPropertyConfig("longProperty", "long", "321"), - new FormPropertyConfig("mappedProperty", "java.util.Map", null), - new FormPropertyConfig("mappedIntProperty", "java.util.Map", null), - - - // new FormPropertyConfig("nullProperty", "java.lang.String", null), - new FormPropertyConfig("shortProperty", "short", "987"), - new FormPropertyConfig("stringArray", "java.lang.String[]", - "{ 'String 0', 'String 1', 'String 2', 'String 3', 'String 4'}"), - new FormPropertyConfig("stringIndexed", "java.lang.String[]", - "{ 'String 0', 'String 1', 'String 2', 'String 3', 'String 4'}"), - new FormPropertyConfig("stringProperty", "java.lang.String", - "This is a string"), - }; - - // ----------------------------------------------------- Instance Variables - - /** - * The FormBeanConfig structure for the form bean we will be - * creating. - */ - protected FormBeanConfig beanConfig = null; - - /** - * The DynaActionFormClass to use for testing. - */ - protected DynaActionFormClass dynaClass = null; - - /** - * Defines the testcase name for JUnit. - * - * @param theName the testcase's name. - */ - public TestDynaActionFormClass(String theName) { - super(theName); - } - - /** - * Start the tests. - * - * @param theArgs the arguments. Not used - */ - public static void main(String[] theArgs) { - junit.awtui.TestRunner.main(new String[] { - TestDynaActionFormClass.class.getName() - }); - } - - /** - * @return a test suite (TestSuite) that includes all methods - * starting with "test" - */ - public static Test suite() { - // All methods starting with "test" will be executed in the test suite. - return new TestSuite(TestDynaActionFormClass.class); - } - - // ----------------------------------------------------- Setup and Teardown - public void setUp() { - // Construct a FormBeanConfig to be used - beanConfig = new FormBeanConfig(); - beanConfig.setName("dynaForm"); - beanConfig.setType("org.apache.struts.action.DynaActionForm"); - - // Add relevant property definitions - for (int i = 0; i < dynaProperties.length; i++) { - beanConfig.addFormPropertyConfig(dynaProperties[i]); - } - - // Construct a corresponding DynaActionFormClass - dynaClass = new DynaActionFormClass(beanConfig); - } - - public void tearDown() { - dynaClass = null; - beanConfig = null; - } - - // -------------------------------------------------- Verify FormBeanConfig - // Check for ability to add a property before and after freezing - public void testConfigAdd() { - FormPropertyConfig prop = null; - - // Before freezing - prop = beanConfig.findFormPropertyConfig("fooProperty"); - assertNull("fooProperty not found", prop); - beanConfig.addFormPropertyConfig(new FormPropertyConfig("fooProperty", - "java.lang.String", "")); - prop = beanConfig.findFormPropertyConfig("fooProperty"); - assertNotNull("fooProperty found", prop); - - // after freezing - beanConfig.freeze(); - prop = beanConfig.findFormPropertyConfig("barProperty"); - assertNull("barProperty not found", prop); - - try { - beanConfig.addFormPropertyConfig(new FormPropertyConfig( - "barProperty", "java.lang.String", "")); - fail("barProperty add not prevented"); - } catch (IllegalStateException e) { - ; // Expected result - } - } - - // Check basic FormBeanConfig properties - public void testConfigCreate() { - assertTrue("dynamic is correct", beanConfig.getDynamic()); - assertEquals("name is correct", "dynaForm", beanConfig.getName()); - assertEquals("type is correct", - "org.apache.struts.action.DynaActionForm", beanConfig.getType()); - } - - // Check attempts to add a duplicate property name - public void testConfigDuplicate() { - FormPropertyConfig prop = null; - - assertNull("booleanProperty is found", prop); - - try { - beanConfig.addFormPropertyConfig(new FormPropertyConfig( - "booleanProperty", "java.lang.String", "")); - fail("Adding duplicate property not prevented"); - } catch (IllegalArgumentException e) { - ; // Expected result - } - } - - // Check the configured FormPropertyConfig element initial values - public void testConfigInitialValues() { - assertEquals("booleanProperty value", Boolean.TRUE, - beanConfig.findFormPropertyConfig("booleanProperty").initial()); - assertEquals("booleanSecond value", Boolean.TRUE, - beanConfig.findFormPropertyConfig("booleanSecond").initial()); - assertEquals("doubleProperty value", new Double(321.0), - beanConfig.findFormPropertyConfig("doubleProperty").initial()); - assertEquals("floatProperty value", new Float((float) 123.0), - beanConfig.findFormPropertyConfig("floatProperty").initial()); - assertEquals("intProperty value", new Integer(123), - beanConfig.findFormPropertyConfig("intProperty").initial()); - - // FIXME - listIndexed - assertEquals("longProperty value", new Long(321), - beanConfig.findFormPropertyConfig("longProperty").initial()); - - // FIXME - mappedProperty - // FIXME - mappedIntProperty - // assertNull("nullProperty value", - // beanConfig.findFormPropertyConfig("nullProperty").initial()); - assertEquals("shortProperty value", new Short((short) 987), - beanConfig.findFormPropertyConfig("shortProperty").initial()); - - // FIXME - stringArray - // FIXME - stringIndexed - assertEquals("stringProperty value", "This is a string", - beanConfig.findFormPropertyConfig("stringProperty").initial()); - } - - // Check the configured FormPropertyConfig element properties - public void testConfigProperties() { - for (int i = 0; i < dynaProperties.length; i++) { - FormPropertyConfig dynaProperty = - beanConfig.findFormPropertyConfig(dynaProperties[i].getName()); - - assertNotNull("Found dynaProperty " + dynaProperties[i].getName(), - dynaProperty); - assertEquals("dynaProperty name for " + dynaProperties[i].getName(), - dynaProperties[i].getName(), dynaProperty.getName()); - assertEquals("dynaProperty type for " + dynaProperties[i].getName(), - dynaProperties[i].getType(), dynaProperty.getType()); - assertEquals("dynaProperty initial for " - + dynaProperties[i].getName(), dynaProperties[i].getInitial(), - dynaProperty.getInitial()); - } - } - - // Check for ability to remove a property before and after freezing - public void testConfigRemove() { - FormPropertyConfig prop = null; - - // Before freezing - prop = beanConfig.findFormPropertyConfig("booleanProperty"); - assertNotNull("booleanProperty found", prop); - beanConfig.removeFormPropertyConfig(prop); - prop = beanConfig.findFormPropertyConfig("booleanProperty"); - assertNull("booleanProperty not deleted", prop); - - // after freezing - beanConfig.freeze(); - prop = beanConfig.findFormPropertyConfig("booleanSecond"); - assertNotNull("booleanSecond found", prop); - - try { - beanConfig.removeFormPropertyConfig(prop); - fail("booleanSecond remove not prevented"); - } catch (IllegalStateException e) { - ; // Expected result - } - } - - // --------------------------------------------- Create DynaActionFormClass - // Test basic DynaActionFormClass name and properties - public void testClassCreate() { - assertEquals("name", "dynaForm", dynaClass.getName()); - - for (int i = 0; i < dynaProperties.length; i++) { - DynaProperty prop = - dynaClass.getDynaProperty(dynaProperties[i].getName()); - - assertNotNull("Found property " + dynaProperties[i].getName()); - assertEquals("Class for property " + dynaProperties[i].getName(), - dynaProperties[i].getTypeClass(), prop.getType()); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/generic/TestCopyFormToContext.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/generic/TestCopyFormToContext.java deleted file mode 100644 index abccc0c30f7..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/generic/TestCopyFormToContext.java +++ /dev/null @@ -1,243 +0,0 @@ -/* - * $Id: TestCopyFormToContext.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.generic; - -import junit.framework.TestCase; - -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.DynaActionForm; -import org.apache.struts.chain.contexts.MockActionContext; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.FormBeanConfig; -import org.apache.struts.config.FormPropertyConfig; -import org.apache.struts.config.impl.ModuleConfigImpl; -import org.apache.struts.mock.MockFormBean; - -/** - * @version $Id: TestCopyFormToContext.java 161516 2005-04-15 19:22:47Z - * germuska $ - */ -public class TestCopyFormToContext extends TestCase { - private static final String POST_EXECUTION_CONTEXT_KEY = "afterTest"; - private MockActionContext context = null; - - public static void main(String[] args) { - junit.textui.TestRunner.run(TestCopyFormToContext.class); - } - - /* - * @see TestCase#setUp() - */ - protected void setUp() throws Exception { - context = new MockActionContext(); - - ModuleConfigImpl moduleConfig = new ModuleConfigImpl("/"); - - context.setModuleConfig(moduleConfig); - - FormBeanConfig fooFBC = new FormBeanConfig(); - - fooFBC.setName("foo"); - fooFBC.setType("org.apache.struts.mock.MockFormBean"); - moduleConfig.addFormBeanConfig(fooFBC); - - FormBeanConfig barFBC = new FormBeanConfig(); - - barFBC.setName("bar"); - barFBC.setType("org.apache.struts.action.DynaActionForm"); // use a different type so we can verify lookups better - - FormPropertyConfig fpc = new FormPropertyConfig(); - - fpc.setName("property"); - fpc.setType("java.lang.String"); - fpc.setInitial("test"); - barFBC.addFormPropertyConfig(fpc); - moduleConfig.addFormBeanConfig(barFBC); - - ActionConfig testActionConfig = new ActionConfig(); - - testActionConfig.setPath("/Test"); - testActionConfig.setName("foo"); - testActionConfig.setScope("request"); - moduleConfig.addActionConfig(testActionConfig); - - moduleConfig.freeze(); // otherwise, ActionConfigMatcher will be null and we'll get an NPE... - } - - public void testLookupByNameAndRequestScope() - throws Exception { - CopyFormToContext command = new CopyFormToContext(); - String formName = "foo"; - - command.setFormName(formName); - command.setScope("request"); - command.setToKey(POST_EXECUTION_CONTEXT_KEY); - - assertNull(context.get(POST_EXECUTION_CONTEXT_KEY)); - assertNull(context.getRequestScope().get(formName)); - assertNull(context.getSessionScope().get(formName)); - - command.execute(context); - - assertNotNull(context.get(POST_EXECUTION_CONTEXT_KEY)); - assertNotNull(context.getRequestScope().get(formName)); - assertNull(context.getSessionScope().get(formName)); - - assertSame(context.get(POST_EXECUTION_CONTEXT_KEY), - context.getRequestScope().get(formName)); - - ActionForm theForm = - (ActionForm) context.get(POST_EXECUTION_CONTEXT_KEY); - - assertTrue(theForm instanceof MockFormBean); - } - - public void testLookupByActionPath() - throws Exception { - CopyFormToContext command = new CopyFormToContext(); - - command.setActionPath("/Test"); - command.setToKey(POST_EXECUTION_CONTEXT_KEY); - - String formName = "foo"; // we know this, even though it's not being used for the lookup. - - assertNull(context.get(POST_EXECUTION_CONTEXT_KEY)); - assertNull(context.getRequestScope().get(formName)); - assertNull(context.getSessionScope().get(formName)); - - command.execute(context); - - assertNotNull(context.get(POST_EXECUTION_CONTEXT_KEY)); - assertNotNull(context.getRequestScope().get(formName)); - assertNull(context.getSessionScope().get(formName)); - - assertSame(context.get(POST_EXECUTION_CONTEXT_KEY), - context.getRequestScope().get(formName)); - - ActionForm theForm = - (ActionForm) context.get(POST_EXECUTION_CONTEXT_KEY); - - assertTrue(theForm instanceof MockFormBean); - } - - public void testLookupByNameAndSessionScope() - throws Exception { - CopyFormToContext command = new CopyFormToContext(); - String formName = "bar"; - - command.setFormName(formName); - command.setScope("session"); - command.setToKey(POST_EXECUTION_CONTEXT_KEY); - - assertNull(context.get(POST_EXECUTION_CONTEXT_KEY)); - assertNull(context.getRequestScope().get(formName)); - assertNull(context.getSessionScope().get(formName)); - - command.execute(context); - - assertNotNull(context.get(POST_EXECUTION_CONTEXT_KEY)); - assertNull(context.getRequestScope().get(formName)); - assertNotNull(context.getSessionScope().get(formName)); - - assertSame(context.get(POST_EXECUTION_CONTEXT_KEY), - context.getSessionScope().get(formName)); - - ActionForm theForm = - (ActionForm) context.get(POST_EXECUTION_CONTEXT_KEY); - - assertTrue(theForm instanceof DynaActionForm); - - DynaActionForm dForm = (DynaActionForm) theForm; - - assertEquals("test", dForm.get("property")); - } - - public void testExceptionHandlingWithNullFormName() - throws Exception { - CopyFormToContext command = new CopyFormToContext(); - String formName = "bar"; - - // skip setting form name to test exception - // command.setFormName(formName); - command.setScope("session"); - command.setToKey(POST_EXECUTION_CONTEXT_KEY); - - assertNull(context.get(POST_EXECUTION_CONTEXT_KEY)); - assertNull(context.getRequestScope().get(formName)); - assertNull(context.getSessionScope().get(formName)); - - try { - command.execute(context); - fail( - "Execution should throw an exception when form name is not set."); - } catch (IllegalStateException e) { - ; // expected. - } - } - - public void testExceptionHandlingWithNullEverything() - throws Exception { - CopyFormToContext command = new CopyFormToContext(); - String formName = "bar"; - - // skip setting form name to test exception - // command.setFormName(formName); - // command.setScope("session"); - // command.setToKey(POST_EXECUTION_CONTEXT_KEY); - assertNull(context.get(POST_EXECUTION_CONTEXT_KEY)); - assertNull(context.getRequestScope().get(formName)); - assertNull(context.getSessionScope().get(formName)); - - try { - command.execute(context); - fail( - "Execution should throw an exception when no properties are set."); - } catch (IllegalStateException e) { - ; // expected. - } - } - - public void testCopyToDefaultContextKey() - throws Exception { - CopyFormToContext command = new CopyFormToContext(); - String formName = "foo"; - - command.setFormName(formName); - command.setScope("request"); - - assertNull(context.getActionForm()); - assertNull(context.getRequestScope().get(POST_EXECUTION_CONTEXT_KEY)); - assertNull(context.getSessionScope().get(POST_EXECUTION_CONTEXT_KEY)); - - command.execute(context); - - assertNotNull(context.getActionForm()); - assertNotNull(context.getRequestScope().get(formName)); - assertNull(context.getSessionScope().get(formName)); - - assertSame(context.getActionForm(), - context.getRequestScope().get(formName)); - - ActionForm theForm = (ActionForm) context.getActionForm(); - - assertTrue(theForm instanceof MockFormBean); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/generic/TestWrappingLookupCommand.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/generic/TestWrappingLookupCommand.java deleted file mode 100644 index 235bedaaae4..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/generic/TestWrappingLookupCommand.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * $Id: TestWrappingLookupCommand.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.generic; - -import junit.framework.TestCase; - -import org.apache.commons.chain.Context; -import org.apache.commons.chain.impl.ContextBase; -import org.apache.commons.chain.web.servlet.ServletWebContext; -import org.apache.struts.chain.contexts.ServletActionContext; - -/* JUnitTest case for class: org.apache.struts.chain.commands.generic.WrappingLookupCommand */ -public class TestWrappingLookupCommand extends TestCase { - public TestWrappingLookupCommand(String _name) { - super(_name); - } - - /* setUp method for test case */ - protected void setUp() { - } - - /* tearDown method for test case */ - protected void tearDown() { - } - - public void testSame() throws Exception { - WrappingLookupCommand command = new WrappingLookupCommand(); - Context testContext = new ContextBase(); - - Context wrapped = command.getContext(testContext); - - assertNotNull(wrapped); - assertSame(testContext, wrapped); - } - - public void testWrapContextSubclass() - throws Exception { - WrappingLookupCommand command = new WrappingLookupCommand(); - - command.setWrapperClassName(ServletActionContext.class.getName()); - - Context testContext = new ServletWebContext(); - - Context wrapped = command.getContext(testContext); - - assertNotNull(wrapped); - assertTrue(wrapped instanceof ServletActionContext); - } - - /* Executes the test case */ - public static void main(String[] argv) { - String[] testCaseList = { TestWrappingLookupCommand.class.getName() }; - - junit.textui.TestRunner.main(testCaseList); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/servlet/TestAuthorizeAction.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/servlet/TestAuthorizeAction.java deleted file mode 100644 index 89cc2c923f5..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/servlet/TestAuthorizeAction.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * $Id: TestAuthorizeAction.java 481833 2006-12-03 17:32:52Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import junit.framework.TestCase; - -import org.apache.commons.chain.web.servlet.ServletWebContext; -import org.apache.struts.chain.commands.UnauthorizedActionException; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.mock.MockActionServlet; -import org.apache.struts.mock.MockHttpServletRequest; -import org.apache.struts.mock.MockHttpServletResponse; -import org.apache.struts.mock.MockPrincipal; -import org.apache.struts.mock.MockServletConfig; -import org.apache.struts.mock.MockServletContext; - -/* JUnitTest case for class: org.apache.struts.chain.commands.servlet.AuthorizeAction */ -public class TestAuthorizeAction extends TestCase { - MockHttpServletRequest request = null; - MockPrincipal principal = null; - ServletWebContext swContext = null; - ServletActionContext saContext = null; - AuthorizeAction command = null; - - public TestAuthorizeAction(String _name) { - super(_name); - } - - /* setUp method for test case */ - protected void setUp() throws Exception { - this.request = new MockHttpServletRequest(); - this.principal = - new MockPrincipal("Mr. Macri", new String[] { "administrator" }); - this.request.setUserPrincipal(principal); - - MockServletConfig servletConfig = new MockServletConfig(); - MockServletContext servletContext = new MockServletContext(); - MockActionServlet servlet = - new MockActionServlet(servletContext, servletConfig); - - servlet.initInternal(); - - this.saContext = - new ServletActionContext(servletContext, request, - new MockHttpServletResponse()); - - this.saContext.setActionServlet(servlet); - this.command = new AuthorizeAction(); - } - - /* tearDown method for test case */ - protected void tearDown() { - } - - public void testAuthorizeOneRole() - throws Exception { - ActionConfig config = new ActionConfig(); - - config.setPath("/testAuthorizeOneRole"); - config.setRoles("administrator"); - this.saContext.setActionConfig(config); - - boolean result = command.execute(saContext); - - assertFalse(result); - } - - public void testAuthorizeOneOfManyRoles() - throws Exception { - ActionConfig config = new ActionConfig(); - - config.setPath("/testAuthorizeOneOfManyRoles"); - config.setRoles("administrator,roustabout,memory"); - this.saContext.setActionConfig(config); - - boolean result = command.execute(saContext); - - assertFalse(result); - } - - public void testAuthorizeNoRoles() - throws Exception { - ActionConfig config = new ActionConfig(); - - config.setPath("/testAuthorizeNoRoles"); - this.saContext.setActionConfig(config); - - boolean result = command.execute(saContext); - - assertFalse(result); - } - - public void testNotAuthorizedOneRole() - throws Exception { - ActionConfig config = new ActionConfig(); - - config.setPath("/testNotAuthorizedOneRole"); - config.setRoles("roustabout"); - this.saContext.setActionConfig(config); - - try { - boolean result = command.execute(saContext); - } catch (UnauthorizedActionException ex) { - } - } - - public void testNotAuthorizedOneOfManyRoles() - throws Exception { - ActionConfig config = new ActionConfig(); - - config.setPath("/testNotAuthorizedOneOfManyRoles"); - config.setRoles("roustabout,memory"); - this.saContext.setActionConfig(config); - - try { - boolean result = command.execute(saContext); - } catch (UnauthorizedActionException ex) { - } - } - - /* Executes the test case */ - public static void main(String[] argv) { - String[] testCaseList = { TestAuthorizeAction.class.getName() }; - - junit.textui.TestRunner.main(testCaseList); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/servlet/TestPerformForward.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/servlet/TestPerformForward.java deleted file mode 100644 index 47a544a8761..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/servlet/TestPerformForward.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * $Id: TestPerformForward.java 481833 2006-12-03 17:32:52Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import junit.framework.TestCase; - -import org.apache.commons.chain.web.servlet.ServletWebContext; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.mock.MockActionServlet; -import org.apache.struts.mock.MockHttpServletRequest; -import org.apache.struts.mock.MockHttpServletResponse; -import org.apache.struts.mock.MockPrincipal; -import org.apache.struts.mock.MockServletConfig; -import org.apache.struts.mock.MockServletContext; - -/* JUnitTest case for class: org.apache.struts.chain.commands.servlet.PerformForward */ -public class TestPerformForward extends TestCase { - MockHttpServletRequest request = null; - MockPrincipal principal = null; - ServletWebContext swContext = null; - ServletActionContext saContext = null; - PerformForward command = null; - - public TestPerformForward(String _name) { - super(_name); - } - - /* setUp method for test case */ - protected void setUp() throws Exception { - this.request = new MockHttpServletRequest(); - this.principal = - new MockPrincipal("Mr. Macri", new String[] { "administrator" }); - this.request.setUserPrincipal(principal); - - MockServletConfig servletConfig = new MockServletConfig(); - MockServletContext servletContext = new MockServletContext(); - MockActionServlet servlet = - new MockActionServlet(servletContext, servletConfig); - - servlet.initInternal(); - - this.saContext = - new ServletActionContext(servletContext, request, - new MockHttpServletResponse()); - - this.saContext.setActionServlet(servlet); - this.command = new PerformForward(); - } - - /* tearDown method for test case */ - protected void tearDown() { - } - - public void testNullForwardPath() - throws Exception { - ForwardConfig config = new ForwardConfig(); - - config.setPath(null); - - try { - command.perform(saContext, config); - fail( - "Didn't throw an illegal argument exception on null forward path"); - } catch (IllegalArgumentException ex) { - System.out.println("exception: " + ex.getMessage()); - - // Do nothing, the test passed - } - } - - /* Executes the test case */ - public static void main(String[] argv) { - String[] testCaseList = { TestPerformForward.class.getName() }; - - junit.textui.TestRunner.main(testCaseList); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/servlet/TestSetOriginalURI.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/servlet/TestSetOriginalURI.java deleted file mode 100644 index 4b36a2fec95..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/chain/commands/servlet/TestSetOriginalURI.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * $Id: TestSetOriginalURI.java 481833 2006-12-03 17:32:52Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.chain.commands.servlet; - -import junit.framework.TestCase; - -import org.apache.struts.Globals; -import org.apache.struts.chain.contexts.ServletActionContext; -import org.apache.struts.mock.MockActionServlet; -import org.apache.struts.mock.MockHttpServletRequest; -import org.apache.struts.mock.MockHttpServletResponse; -import org.apache.struts.mock.MockServletConfig; -import org.apache.struts.mock.MockServletContext; - -/* JUnitTest case for class: org.apache.struts.chain.commands.servlet.SetOriginalURI */ -public class TestSetOriginalURI extends TestCase { - SetOriginalURI command = null; - - public TestSetOriginalURI(String _name) { - super(_name); - } - - /* setUp method for test case */ - protected void setUp() throws Exception { - this.command = new SetOriginalURI(); - } - - /* tearDown method for test case */ - protected void tearDown() { - } - - public void testSetOriginalURI() - throws Exception { - MockHttpServletRequest request = - new MockHttpServletRequest("foo/", "bar.do", null, null); - MockServletConfig servletConfig = new MockServletConfig(); - MockServletContext servletContext = new MockServletContext(); - MockActionServlet servlet = - new MockActionServlet(servletContext, servletConfig); - - servlet.initInternal(); - - ServletActionContext saContext = - new ServletActionContext(servletContext, request, - new MockHttpServletResponse()); - - saContext.setActionServlet(servlet); - - boolean result = command.execute(saContext); - - assertTrue(!result); - - String uri = (String) request.getAttribute(Globals.ORIGINAL_URI_KEY); - - assertTrue("Original uri not correct: " + uri, "bar.do".equals(uri)); - - request.setPathElements("foo/", "bar2.do", null, null); - uri = (String) request.getAttribute(Globals.ORIGINAL_URI_KEY); - assertTrue("Original uri not correct: " + uri, "bar.do".equals(uri)); - } - - /* Executes the test case */ - public static void main(String[] argv) { - String[] testCaseList = { TestSetOriginalURI.class.getName() }; - - junit.textui.TestRunner.main(testCaseList); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/CustomMappingTest.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/CustomMappingTest.java deleted file mode 100644 index b7db1e53c8b..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/CustomMappingTest.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id: CustomMappingTest.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import org.apache.struts.action.ActionMapping; - -/** - * Custom action mapping used by TestModuleConfing - */ -public class CustomMappingTest extends ActionMapping { - private boolean pub = false; - - public void setPublic(boolean val) { - this.pub = val; - } - - public boolean getPublic() { - return pub; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestActionConfig.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestActionConfig.java deleted file mode 100644 index eb3848dfd6d..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestActionConfig.java +++ /dev/null @@ -1,374 +0,0 @@ -/* - * $Id: TestActionConfig.java 480593 2006-11-29 15:17:52Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -import java.lang.reflect.InvocationTargetException; - -/** - * Unit tests for the org.apache.struts.config.ActionConfig - * class. Currently only contains code to test the methods that support - * configuration inheritance. - * - * @version $Rev: 480593 $ $Date: 2005-05-25 19:35:00 -0400 (Wed, 25 May 2005) - * $ - */ -public class TestActionConfig extends TestCase { - // ----------------------------------------------------- Instance Variables - - /** - * The ModuleConfig we'll use. - */ - protected ModuleConfig config = null; - - /** - * The common base we'll use. - */ - protected ActionConfig baseConfig = null; - - // ----------------------------------------------------------- Constructors - - /** - * Construct a new instance of this test case. - * - * @param name Name of the test case - */ - public TestActionConfig(String name) { - super(name); - } - - // --------------------------------------------------------- Public Methods - - /** - * Set up instance variables required by this test case. - */ - public void setUp() { - ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory(); - - config = factoryObject.createModuleConfig(""); - - // setup the base form - baseConfig = new ActionConfig(); - baseConfig.setPath("/base"); - baseConfig.setType("org.apache.struts.actions.DummyAction"); - - // set up success and failure forward - ForwardConfig forward = - new ForwardConfig("success", "/success.jsp", false); - - baseConfig.addForwardConfig(forward); - - forward = new ForwardConfig("failure", "/failure.jsp", false); - forward.setProperty("forwardCount", "10"); - baseConfig.addForwardConfig(forward); - - // setup an exception handler - ExceptionConfig exceptionConfig = new ExceptionConfig(); - - exceptionConfig.setType("java.sql.SQLException"); - exceptionConfig.setKey("msg.exception.sql"); - exceptionConfig.setProperty("exceptionCount", "10"); - baseConfig.addExceptionConfig(exceptionConfig); - - // set some arbitrary properties - baseConfig.setProperty("label", "base"); - baseConfig.setProperty("version", "1a"); - - // register it to our config - config.addActionConfig(baseConfig); - } - - /** - * Return the tests included in this test suite. - */ - public static Test suite() { - return (new TestSuite(TestActionConfig.class)); - } - - /** - * Tear down instance variables required by this test case. - */ - public void tearDown() { - config = null; - baseConfig = null; - } - - // ------------------------------------------------------- Individual Tests - - /** - * Basic check that shouldn't detect circular inheritance. - */ - public void testCheckCircularInheritance() { - ActionConfig child = new ActionConfig(); - - child.setPath("/child"); - child.setExtends("/base"); - - ActionConfig grandChild = new ActionConfig(); - - grandChild.setPath("/grandChild"); - grandChild.setExtends("/child"); - - config.addActionConfig(child); - config.addActionConfig(grandChild); - - assertTrue("Circular inheritance shouldn't have been detected", - !grandChild.checkCircularInheritance(config)); - } - - /** - * Basic check that should detect circular inheritance. - */ - public void testCheckCircularInheritanceError() { - ActionConfig child = new ActionConfig(); - - child.setPath("/child"); - child.setExtends("/base"); - - ActionConfig grandChild = new ActionConfig(); - - grandChild.setPath("/grandChild"); - grandChild.setExtends("/child"); - - // establish the circular relationship with base - baseConfig.setExtends("/grandChild"); - - config.addActionConfig(child); - config.addActionConfig(grandChild); - - assertTrue("Circular inheritance should've been detected", - grandChild.checkCircularInheritance(config)); - } - - /** - * Test that processExtends() makes sure that a base action's own - * extension has been processed. - */ - public void testProcessExtendsActionExtends() - throws Exception { - CustomActionConfig first = new CustomActionConfig(); - - first.setPath("/first"); - - CustomActionConfig second = new CustomActionConfig(); - - second.setPath("/second"); - second.setExtends("/first"); - - config.addActionConfig(first); - config.addActionConfig(second); - - // set baseConfig to extend second - baseConfig.setExtends("/second"); - - baseConfig.processExtends(config); - - assertTrue("The first action's processExtends() wasn't called", - first.processExtendsCalled); - assertTrue("The second action's processExtends() wasn't called", - second.processExtendsCalled); - } - - /** - * Make sure that correct exception is thrown if a base action can't be - * found. - */ - public void testProcessExtendsMissingAction() - throws Exception { - baseConfig.setExtends("/someMissingAction"); - - try { - baseConfig.processExtends(config); - fail( - "An exception should be thrown if a super form can't be found."); - } catch (NullPointerException e) { - // succeed - } catch (InstantiationException e) { - fail("Unrecognized exception thrown."); - } - } - - /** - * Test a typical form bean configuration extension where various forwards - * and exception handlers should be inherited from a base form. This - * method checks all the subelements. - */ - public void testInheritFrom() - throws Exception { - // create a basic subform - ActionConfig subConfig = new ActionConfig(); - String subConfigPath = "subConfig"; - - subConfig.setPath(subConfigPath); - subConfig.setExtends("/base"); - - // override success - ForwardConfig forward = new ForwardConfig(); - - forward.setName("success"); - forward.setPath("/newSuccess.jsp"); - forward.setRedirect(true); - subConfig.addForwardConfig(forward); - - // add an exception handler - ExceptionConfig handler = new ExceptionConfig(); - - handler.setType("java.lang.NullPointerException"); - handler.setKey("msg.exception.npe"); - subConfig.addExceptionConfig(handler); - - // override arbitrary "label" property - subConfig.setProperty("label", "sub"); - - config.addActionConfig(subConfig); - - subConfig.inheritFrom(baseConfig); - - // check that our subConfig is still the one in the config - assertSame("subConfig no longer in ModuleConfig", subConfig, - config.findActionConfig("subConfig")); - - // check our configured sub config - assertNotNull("Action type was not inherited", subConfig.getType()); - assertEquals("Wrong config path", subConfigPath, subConfig.getPath()); - assertEquals("Wrong config type", baseConfig.getType(), - subConfig.getType()); - - // check our forwards - ForwardConfig[] forwards = subConfig.findForwardConfigs(); - - assertEquals("Wrong forwards count", 2, forwards.length); - - forward = subConfig.findForwardConfig("success"); - assertNotNull("'success' forward was not found", forward); - assertEquals("Wrong path for success", "/newSuccess.jsp", - forward.getPath()); - - forward = subConfig.findForwardConfig("failure"); - - ForwardConfig origForward = baseConfig.findForwardConfig("failure"); - - assertNotNull("'failure' forward was not inherited", forward); - assertEquals("Wrong type for 'failure'", origForward.getPath(), - forward.getPath()); - assertEquals("Arbitrary property not copied", - origForward.getProperty("forwardCount"), - forward.getProperty("forwardCount")); - - // check our exceptions - ExceptionConfig[] handlers = subConfig.findExceptionConfigs(); - - assertEquals("Wrong exception config count", 2, handlers.length); - - handler = subConfig.findExceptionConfig("java.sql.SQLException"); - - ExceptionConfig origHandler = - baseConfig.findExceptionConfig("java.sql.SQLException"); - - assertNotNull("'SQLException' handler was not found", handler); - assertEquals("Wrong key for 'SQLException'", origHandler.getKey(), - handler.getKey()); - assertEquals("Arbitrary property not copied", - origHandler.getProperty("exceptionCount"), - handler.getProperty("exceptionCount")); - - handler = - subConfig.findExceptionConfig("java.lang.NullPointerException"); - assertNotNull("'NullPointerException' handler disappeared", handler); - - // check the arbitrary properties - String version = subConfig.getProperty("version"); - - assertEquals("Arbitrary property 'version' wasn't inherited", "1a", - version); - - String label = subConfig.getProperty("label"); - - assertEquals("Arbitrary property 'label' shouldn't have changed", - "sub", label); - } - - /** - * Make sure that correct exception is thrown if a base action can't be - * found. - */ - public void testInheritBoolean() - throws Exception { - - ActionConfig parentConfig = new ActionConfig(); - parentConfig.setPath("/parent"); - ActionConfig childConfig = null; - - // Test if boolean is NOT set it IS inherited - parentConfig.setValidate(true); - parentConfig.setCancellable(true); - childConfig = new ActionConfig(); - childConfig.inheritFrom(parentConfig); - assertEquals("default validate inherit true", true, childConfig.getValidate()); - assertEquals("default cancellable inherit true", true, childConfig.getValidate()); - - // Test if boolean is NOT set it IS inherited - parentConfig.setValidate(false); - parentConfig.setCancellable(false); - childConfig = new ActionConfig(); - childConfig.inheritFrom(parentConfig); - assertEquals("default validate inherit false", false, childConfig.getValidate()); - assertEquals("default cancellable inherit false", false, childConfig.getValidate()); - - // Test if boolean IS set it is NOT inherited - parentConfig.setValidate(true); - parentConfig.setCancellable(true); - childConfig = new ActionConfig(); - childConfig.setValidate(false); - childConfig.setCancellable(false); - childConfig.inheritFrom(parentConfig); - assertEquals("set validate (not inherit true)", false, childConfig.getValidate()); - assertEquals("set cancellable (not inherit false)", false, childConfig.getValidate()); - - // Test if boolean IS set it is NOT inherited - parentConfig.setValidate(false); - parentConfig.setCancellable(false); - childConfig = new ActionConfig(); - childConfig.setValidate(true); - childConfig.setCancellable(true); - childConfig.inheritFrom(parentConfig); - assertEquals("set validate (not inherit false)", true, childConfig.getValidate()); - assertEquals("set cancellable (not inherit false)", true, childConfig.getValidate()); - - } - - /** - * Used to detect that ActionConfig is making the right calls. - */ - public static class CustomActionConfig extends ActionConfig { - boolean processExtendsCalled = false; - - public void processExtends(ModuleConfig moduleConfig) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException, InvocationTargetException { - super.processExtends(moduleConfig); - processExtendsCalled = true; - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestActionConfigMatcher.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestActionConfigMatcher.java deleted file mode 100755 index 19d0ce3a7dd..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestActionConfigMatcher.java +++ /dev/null @@ -1,230 +0,0 @@ -/* - * $Id: TestActionConfigMatcher.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.apache.struts.action.ActionForward; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.mock.TestMockBase; - -/** - *

    Unit tests for org.apache.struts.util.ActionConfigMatcher.

    - * - * @version $Rev: 471754 $ $Date: 2005-10-27 23:25:01 -0400 (Thu, 27 Oct 2005) - * $ - */ -public class TestActionConfigMatcher extends TestMockBase { - // ----------------------------------------------------------------- Basics - public TestActionConfigMatcher(String name) { - super(name); - } - - public static void main(String[] args) { - junit.awtui.TestRunner.main(new String[] { - TestActionConfigMatcher.class.getName() - }); - } - - public static Test suite() { - return (new TestSuite(TestActionConfigMatcher.class)); - } - - // ----------------------------------------------------- Instance Variables - // ----------------------------------------------------- Setup and Teardown - public void setUp() { - super.setUp(); - } - - public void tearDown() { - super.tearDown(); - } - - // ------------------------------------------------------- Individual Tests - // ---------------------------------------------------------- match() - public void testNoMatch() { - ActionConfig[] configs = new ActionConfig[1]; - ActionConfig mapping = buildActionConfig("/foo"); - - configs[0] = mapping; - - ActionConfigMatcher matcher = new ActionConfigMatcher(configs); - - assertNull("ActionConfig shouldn't be matched", matcher.match("/test")); - } - - public void testNoWildcardMatch() { - ActionConfig[] configs = new ActionConfig[1]; - ActionConfig mapping = buildActionConfig("/fooBar"); - - configs[0] = mapping; - - ActionConfigMatcher matcher = new ActionConfigMatcher(configs); - - assertNull("ActionConfig shouldn't be matched", matcher.match("/fooBar")); - } - - public void testShouldMatch() { - ActionConfig[] configs = new ActionConfig[1]; - ActionConfig mapping = buildActionConfig("/foo*"); - - configs[0] = mapping; - - ActionConfigMatcher matcher = new ActionConfigMatcher(configs); - - ActionConfig matched = matcher.match("/fooBar"); - - assertNotNull("ActionConfig should be matched", matched); - assertTrue("ActionConfig should have two action forward", - matched.findForwardConfigs().length == 2); - assertTrue("ActionConfig should have two exception forward", - matched.findExceptionConfigs().length == 2); - assertTrue("ActionConfig should have properties", - matched.getProperties().size() == 2); - } - - public void testCheckSubstitutionsMatch() { - ActionConfig[] configs = new ActionConfig[1]; - ActionConfig mapping = buildActionConfig("/foo*"); - - configs[0] = mapping; - - ActionConfigMatcher matcher = new ActionConfigMatcher(configs); - ActionConfig m = matcher.match("/fooBar"); - - assertTrue("Name hasn't been replaced", "name,Bar".equals(m.getName())); - assertTrue("Path hasn't been replaced", "/fooBar".equals(m.getPath())); - assertTrue("Scope isn't correct", "request".equals(m.getScope())); - assertTrue("Unknown isn't correct", !m.getUnknown()); - assertTrue("Validate isn't correct", m.getValidate()); - - assertTrue("Prefix hasn't been replaced", - "foo,Bar".equals(m.getPrefix())); - assertTrue("Suffix hasn't been replaced", - "bar,Bar".equals(m.getSuffix())); - assertTrue("Type hasn't been replaced", - "foo.bar.BarAction".equals(m.getType())); - assertTrue("Roles hasn't been replaced", - "public,Bar".equals(m.getRoles())); - assertTrue("Parameter hasn't been replaced", - "param,Bar".equals(m.getParameter())); - assertTrue("Attribute hasn't been replaced", - "attrib,Bar".equals(m.getAttribute())); - assertTrue("Forward hasn't been replaced", - "fwd,Bar".equals(m.getForward())); - assertTrue("Include hasn't been replaced", - "include,Bar".equals(m.getInclude())); - assertTrue("Input hasn't been replaced", - "input,Bar".equals(m.getInput())); - - assertTrue("ActionConfig property not replaced", - "testBar".equals(m.getProperty("testprop2"))); - - ForwardConfig[] fConfigs = m.findForwardConfigs(); - boolean found = false; - - for (int x = 0; x < fConfigs.length; x++) { - ForwardConfig cfg = fConfigs[x]; - - if ("name".equals(cfg.getName())) { - found = true; - assertTrue("Path hasn't been replaced", - "path,Bar".equals(cfg.getPath())); - assertTrue("Property foo hasn't been replaced", - "bar,Bar".equals(cfg.getProperty("foo"))); - assertTrue("Module hasn't been replaced", - "modBar".equals(cfg.getModule())); - } - } - - assertTrue("The forward config 'name' cannot be found", found); - } - - public void testCheckMultipleSubstitutions() { - ActionMapping[] mapping = new ActionMapping[1]; - - mapping[0] = new ActionMapping(); - mapping[0].setPath("/foo*"); - mapping[0].setName("name,{1}-{1}"); - - ActionConfigMatcher matcher = new ActionConfigMatcher(mapping); - ActionConfig m = matcher.match("/fooBar"); - - assertTrue("Name hasn't been replaced correctly: " + m.getName(), - "name,Bar-Bar".equals(m.getName())); - } - - private ActionConfig buildActionConfig(String path) { - ActionMapping mapping = new ActionMapping(); - - mapping.setName("name,{1}"); - mapping.setPath(path); - mapping.setScope("request"); - mapping.setUnknown(false); - mapping.setValidate(true); - - mapping.setPrefix("foo,{1}"); - mapping.setSuffix("bar,{1}"); - - mapping.setType("foo.bar.{1}Action"); - mapping.setRoles("public,{1}"); - mapping.setParameter("param,{1}"); - mapping.setAttribute("attrib,{1}"); - mapping.setForward("fwd,{1}"); - mapping.setInclude("include,{1}"); - mapping.setInput("input,{1}"); - - ForwardConfig cfg = new ActionForward(); - - cfg.setName("name"); - cfg.setPath("path,{1}"); - cfg.setModule("mod{1}"); - cfg.setProperty("foo", "bar,{1}"); - mapping.addForwardConfig(cfg); - - cfg = new ActionForward(); - cfg.setName("name2"); - cfg.setPath("path2"); - cfg.setModule("mod{1}"); - mapping.addForwardConfig(cfg); - - ExceptionConfig excfg = new ExceptionConfig(); - - excfg.setKey("foo"); - excfg.setType("foo.Bar"); - excfg.setPath("path"); - mapping.addExceptionConfig(excfg); - - excfg = new ExceptionConfig(); - excfg.setKey("foo2"); - excfg.setType("foo.Bar2"); - excfg.setPath("path2"); - mapping.addExceptionConfig(excfg); - - mapping.setProperty("testprop", "testval"); - mapping.setProperty("testprop2", "test{1}"); - - mapping.freeze(); - - return mapping; - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestFormBeanConfig.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestFormBeanConfig.java deleted file mode 100644 index 652143e7bec..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestFormBeanConfig.java +++ /dev/null @@ -1,340 +0,0 @@ -/* - * $Id: TestFormBeanConfig.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -import java.lang.reflect.InvocationTargetException; - -/** - * Unit tests for the org.apache.struts.config.FormBeanConfig - * class. Currently only contains code to test the methods that support - * configuration inheritance. - * - * @version $Rev: 471754 $ $Date: 2005-05-25 19:35:00 -0400 (Wed, 25 May 2005) - * $ - */ -public class TestFormBeanConfig extends TestCase { - // ----------------------------------------------------- Instance Variables - - /** - * The ModuleConfig we'll use. - */ - protected ModuleConfig config = null; - - /** - * The common base we'll use. - */ - protected FormBeanConfig baseForm = null; - - // ----------------------------------------------------------- Constructors - - /** - * Construct a new instance of this test case. - * - * @param name Name of the test case - */ - public TestFormBeanConfig(String name) { - super(name); - } - - // --------------------------------------------------------- Public Methods - - /** - * Set up instance variables required by this test case. - */ - public void setUp() { - ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory(); - - config = factoryObject.createModuleConfig(""); - - // setup the base form - baseForm = new FormBeanConfig(); - baseForm.setName("baseForm"); - baseForm.setType("org.apache.struts.action.DynaActionForm"); - - // set up id, name, and score - FormPropertyConfig property = new FormPropertyConfig(); - - property.setName("id"); - property.setType("java.lang.String"); - baseForm.addFormPropertyConfig(property); - - property = new FormPropertyConfig(); - property.setName("name"); - property.setType("java.lang.String"); - property.setProperty("count", "10"); - baseForm.addFormPropertyConfig(property); - - property = new FormPropertyConfig(); - property.setName("score"); - property.setType("java.lang.String"); - baseForm.addFormPropertyConfig(property); - - property = new FormPropertyConfig(); - property.setName("message"); - property.setType("java.lang.String"); - baseForm.addFormPropertyConfig(property); - - // register it to our config - config.addFormBeanConfig(baseForm); - } - - /** - * Return the tests included in this test suite. - */ - public static Test suite() { - return (new TestSuite(TestFormBeanConfig.class)); - } - - /** - * Tear down instance variables required by this test case. - */ - public void tearDown() { - config = null; - baseForm = null; - } - - // ------------------------------------------------------- Individual Tests - - /** - * Basic check that shouldn't detect an error. - */ - public void testCheckCircularInheritance() { - FormBeanConfig child = new FormBeanConfig(); - - child.setName("child"); - child.setExtends("baseForm"); - - FormBeanConfig grandChild = new FormBeanConfig(); - - grandChild.setName("grandChild"); - grandChild.setExtends("child"); - - config.addFormBeanConfig(child); - config.addFormBeanConfig(grandChild); - - assertTrue("Circular inheritance shouldn't have been detected", - !grandChild.checkCircularInheritance(config)); - } - - /** - * Basic check that SHOULD detect an error. - */ - public void testCheckCircularInheritanceError() { - FormBeanConfig child = new FormBeanConfig(); - - child.setName("child"); - child.setExtends("baseForm"); - - FormBeanConfig grandChild = new FormBeanConfig(); - - grandChild.setName("grandChild"); - grandChild.setExtends("child"); - - // establish the circular relationship with base - baseForm.setExtends("grandChild"); - - config.addFormBeanConfig(child); - config.addFormBeanConfig(grandChild); - - assertTrue("Circular inheritance should've been detected", - grandChild.checkCircularInheritance(config)); - } - - /** - * Test that processExtends() makes sure that a base form's own extension - * has been processed. - */ - public void testProcessExtendsBaseFormExtends() - throws Exception { - CustomFormBeanConfig first = new CustomFormBeanConfig(); - - first.setName("first"); - - CustomFormBeanConfig second = new CustomFormBeanConfig(); - - second.setName("second"); - second.setExtends("first"); - - config.addFormBeanConfig(first); - config.addFormBeanConfig(second); - - // set baseForm to extend second - baseForm.setExtends("second"); - - baseForm.processExtends(config); - - assertTrue("The first form's processExtends() wasn't called", - first.processExtendsCalled); - assertTrue("The second form's processExtends() wasn't called", - second.processExtendsCalled); - } - - /** - * Make sure that correct exception is thrown if a base form can't be - * found. - */ - public void testProcessExtendsMissingBaseForm() - throws Exception { - baseForm.setExtends("someMissingForm"); - - try { - baseForm.processExtends(config); - fail( - "An exception should be thrown if a super form can't be found."); - } catch (NullPointerException e) { - // succeed - } catch (InstantiationException e) { - fail("Unrecognized exception thrown."); - } - } - - /** - * Test a typical form bean configuration extension where various - * properties should be inherited from a base form. This method checks - * all the properties. - */ - public void testInheritFrom() - throws Exception { - // give baseForm some arbitrary parameters - String baseFormCount = "1"; - - baseForm.setProperty("count", baseFormCount); - - // create a basic subform - FormBeanConfig subForm = new FormBeanConfig(); - String subFormName = "subForm"; - - subForm.setName(subFormName); - subForm.setExtends("baseForm"); - - // override score - FormPropertyConfig property = new FormPropertyConfig(); - - property.setName("score"); - property.setType("java.lang.Integer"); - subForm.addFormPropertyConfig(property); - - // ... and id - property = new FormPropertyConfig(); - property.setName("id"); - property.setType("java.lang.String"); - property.setInitial("unknown"); - subForm.addFormPropertyConfig(property); - - // ... and message - property = new FormPropertyConfig(); - property.setName("message"); - property.setType("java.lang.String"); - property.setSize(10); - subForm.addFormPropertyConfig(property); - - config.addFormBeanConfig(subForm); - - subForm.inheritFrom(baseForm); - - // check that our subForm is still the one in the config - assertSame("subForm no longer in ModuleConfig", subForm, - config.findFormBeanConfig("subForm")); - - // check our configured sub form - assertNotNull("Form bean type was not inherited", subForm.getType()); - assertEquals("Wrong form bean name", subFormName, subForm.getName()); - assertEquals("Wrong form bean type", baseForm.getType(), - subForm.getType()); - assertEquals("Wrong restricted value", baseForm.isRestricted(), - subForm.isRestricted()); - - FormPropertyConfig[] formPropertyConfigs = - subForm.findFormPropertyConfigs(); - - assertEquals("Wrong prop count", 4, formPropertyConfigs.length); - - // we want to check that the form is EXACTLY as we want it, so - // here are some fine grain checks - property = subForm.findFormPropertyConfig("name"); - - FormPropertyConfig original = baseForm.findFormPropertyConfig("name"); - - assertNotNull("'name' property was not inherited", property); - assertEquals("Wrong type for name", original.getType(), - property.getType()); - assertEquals("Wrong initial value for name", original.getInitial(), - property.getInitial()); - assertEquals("Wrong size value for name", original.getSize(), - property.getSize()); - - property = subForm.findFormPropertyConfig("id"); - original = baseForm.findFormPropertyConfig("id"); - assertNotNull("'id' property was not found", property); - assertEquals("Wrong type for id", original.getType(), property.getType()); - assertEquals("Wrong initial value for id", "unknown", - property.getInitial()); - assertEquals("Wrong size value for id", original.getSize(), - property.getSize()); - - property = subForm.findFormPropertyConfig("score"); - original = baseForm.findFormPropertyConfig("score"); - assertNotNull("'score' property was not found", property); - assertEquals("Wrong type for score", "java.lang.Integer", - property.getType()); - assertEquals("Wrong initial value for score", original.getInitial(), - property.getInitial()); - assertEquals("Wrong size value for score", original.getSize(), - property.getSize()); - - property = subForm.findFormPropertyConfig("message"); - original = baseForm.findFormPropertyConfig("message"); - assertNotNull("'message' property was not found", property); - assertEquals("Wrong type for message", original.getType(), - property.getType()); - assertEquals("Wrong initial value for message", original.getInitial(), - property.getInitial()); - assertEquals("Wrong size value for message", 10, property.getSize()); - - property = subForm.findFormPropertyConfig("name"); - original = baseForm.findFormPropertyConfig("name"); - assertEquals("Arbitrary property not found", - original.getProperty("count"), property.getProperty("count")); - - String count = subForm.getProperty("count"); - - assertEquals("Arbitrary property was not inherited", baseFormCount, - count); - } - - /** - * Used to detect that FormBeanConfig is making the right calls. - */ - public static class CustomFormBeanConfig extends FormBeanConfig { - boolean processExtendsCalled = false; - - public void processExtends(ModuleConfig moduleConfig) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException, InvocationTargetException { - super.processExtends(moduleConfig); - processExtendsCalled = true; - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestFormPropertyConfig.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestFormPropertyConfig.java deleted file mode 100644 index c69e4cb582b..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestFormPropertyConfig.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * $Id: TestFormPropertyConfig.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import junit.framework.TestCase; - -/** - * Unit tests for the org.apache.struts.config.FormPropertyConfig - * class. - * - * @version $Rev: 471754 $ $Date: 2005-05-21 19:06:53 -0400 (Sat, 21 May 2005) - * $ - */ -public class TestFormPropertyConfig extends TestCase { - public void testBasicInherit() - throws Exception { - FormPropertyConfig base = - new FormPropertyConfig("base", "java.lang.String[]", "", 10); - String baseCount = "10"; - - base.setProperty("count", baseCount); - - FormPropertyConfig sub = new FormPropertyConfig(); - - sub.setName("base"); - - sub.inheritFrom(base); - - assertEquals("Type was not inherited", base.getType(), sub.getType()); - assertEquals("Initial is incorrect", base.getInitial(), sub.getInitial()); - assertEquals("Size was not inherited", base.getSize(), sub.getSize()); - assertEquals("Arbitrary config property was not inherited", baseCount, - sub.getProperty("count")); - } - - public void testInheritWithInitialOverride() - throws Exception { - FormPropertyConfig base = - new FormPropertyConfig("base", "java.lang.String", "value"); - - FormPropertyConfig sub = new FormPropertyConfig(); - - sub.setName("base"); - - String initial = "otherValue"; - - sub.setInitial(initial); - - sub.inheritFrom(base); - - assertEquals("Type was not inherited", base.getType(), sub.getType()); - assertEquals("Initial is incorrect", initial, sub.getInitial()); - assertEquals("Size is incorrect", base.getSize(), sub.getSize()); - } - - public void testInheritWithTypeOverride() - throws Exception { - FormPropertyConfig base = - new FormPropertyConfig("base", "java.lang.String", ""); - - FormPropertyConfig sub = new FormPropertyConfig(); - - sub.setName("base"); - sub.setType("java.lang.Integer"); - - sub.inheritFrom(base); - - assertEquals("Type is incorrect", "java.lang.Integer", sub.getType()); - assertEquals("Initial is incorrect", base.getInitial(), sub.getInitial()); - assertEquals("Size is incorrect", base.getSize(), sub.getSize()); - } - - public void testInheritWithTypeOverride2() - throws Exception { - FormPropertyConfig base = - new FormPropertyConfig("base", "java.lang.String", ""); - - FormPropertyConfig sub = new FormPropertyConfig(); - - sub.setName("base"); - - String type = "java.lang.Integer[]"; - int size = 10; - - sub.setType(type); - sub.setSize(size); - - sub.inheritFrom(base); - - assertEquals("Type is incorrect", type, sub.getType()); - assertEquals("Initial is incorrect", base.getInitial(), sub.getInitial()); - assertEquals("Size is incorrect", size, sub.getSize()); - } - - public void testInheritWithSizeOverride() - throws Exception { - FormPropertyConfig base = - new FormPropertyConfig("base", "java.lang.String[]", "", 20); - - FormPropertyConfig sub = new FormPropertyConfig(); - - sub.setName("base"); - - int size = 50; - - sub.setSize(size); - - sub.inheritFrom(base); - - assertEquals("Type was not inherited", base.getType(), sub.getType()); - assertEquals("Initial is incorrect", base.getInitial(), sub.getInitial()); - assertEquals("Size is incorrect", size, sub.getSize()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestForwardConfig.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestForwardConfig.java deleted file mode 100644 index aef989f5788..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestForwardConfig.java +++ /dev/null @@ -1,440 +0,0 @@ -/* - * $Id: TestForwardConfig.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -/** - *

    Unit tests for ForwardConfig. Currently contains tests for methods - * supporting configuration inheritance.

    - * - * @version $Rev: 471754 $ $Date: 2005-05-21 19:06:53 -0400 (Sat, 21 May 2005) - * $ - */ -public class TestForwardConfig extends TestCase { - // ----------------------------------------------------- Instance Variables - - /** - * The ModuleConfig we'll use. - */ - protected ModuleConfig moduleConfig = null; - - /** - * The common base we'll use. - */ - protected ForwardConfig baseConfig = null; - - /** - * The common subForward we'll use. - */ - protected ForwardConfig subConfig = null; - - /** - * A ForwardConfig we'll use to test cases where a ForwardConfig declared - * for an action extends a ForwardConfig declared globally, with both - * ForwardConfigs using the same name. - */ - protected ForwardConfig actionBaseConfig = null; - - /** - * An action mapping we'll use within tests. - */ - protected ActionConfig actionConfig = null; - - // ----------------------------------------------------------- Constructors - - /** - * Construct a new instance of this test case. - * - * @param name Name of the test case - */ - public TestForwardConfig(String name) { - super(name); - } - - // --------------------------------------------------------- Public Methods - - /** - * Set up instance variables required by this test case. - */ - public void setUp() { - ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory(); - - moduleConfig = factoryObject.createModuleConfig(""); - - // Setup the base and sub forwards, with sub extending base - baseConfig = new ForwardConfig(); - baseConfig.setName("baseConfig"); - baseConfig.setPath("/somePage.jsp"); - - subConfig = new ForwardConfig(); - subConfig.setName("subConfig"); - subConfig.setExtends("baseConfig"); - subConfig.setRedirect(true); - - actionBaseConfig = new ForwardConfig(); - actionBaseConfig.setName("baseConfig"); - actionBaseConfig.setExtends("baseConfig"); - actionBaseConfig.setModule("/other"); - - // Setup the default action config - actionConfig = new ActionConfig(); - actionConfig.setPath("/index"); - moduleConfig.addActionConfig(actionConfig); - - // No forward configs are registered to either module or action configs. - // Each test will determine where it needs these configs, if at all. - } - - /** - * Return the tests included in this test suite. - */ - public static Test suite() { - return (new TestSuite(TestForwardConfig.class)); - } - - /** - * Tear down instance variables required by this test case. - */ - public void tearDown() { - moduleConfig = null; - baseConfig = null; - } - - // ------------------------------------------------------- Individual Tests - - /** - * Make sure checkCircularInheritance() works as expected where there is - * no inheritance set up. - */ - public void testCheckCircularInheritanceNoExtends() { - moduleConfig.addForwardConfig(baseConfig); - - boolean result = - baseConfig.checkCircularInheritance(moduleConfig, null); - - assertTrue("Incorrect result", !result); - } - - /** - * Test checkCircularInheritance() for when there is no circular - * inheritance. - */ - public void testCheckCircularInheritanceNoConflicts() { - moduleConfig.addForwardConfig(baseConfig); - moduleConfig.addForwardConfig(subConfig); - - boolean result = subConfig.checkCircularInheritance(moduleConfig, null); - - assertTrue("Incorrect result", !result); - } - - /** - * Test checkCircularInheritance() for circular inheritance between global - * forwards. - */ - public void testCheckCircularInheritanceBasicGlobal() { - moduleConfig.addForwardConfig(subConfig); - moduleConfig.addForwardConfig(baseConfig); - - // set the baseConfig to extend subConfig - baseConfig.setExtends("subConfig"); - - boolean result = subConfig.checkCircularInheritance(moduleConfig, null); - - assertTrue("Circular inheritance not detected.", result); - } - - /** - * Test checkCircularInheritance() for circular inheritance between global - * forwards. - */ - public void testCheckCircularInheritanceGlobal2Levels() { - moduleConfig.addForwardConfig(baseConfig); - moduleConfig.addForwardConfig(subConfig); - - ForwardConfig grand = new ForwardConfig(); - - grand.setName("grandConfig"); - grand.setExtends("subConfig"); - moduleConfig.addForwardConfig(grand); - - // set the baseConfig to extend grandConfig - baseConfig.setExtends("grandConfig"); - - boolean result = grand.checkCircularInheritance(moduleConfig, null); - - assertTrue("Circular inheritance not detected.", result); - } - - /** - * Test checkCircularInheritance() for circular inheritance between - * forwards in an action. - */ - public void testCheckCircularInheritanceActionForwardsNoConflict() { - actionConfig.addForwardConfig(baseConfig); - actionConfig.addForwardConfig(subConfig); - - boolean result = - subConfig.checkCircularInheritance(moduleConfig, actionConfig); - - assertTrue("Incorrect result", !result); - } - - /** - * Test checkCircularInheritance() for circular inheritance between - * forwards in an action. - */ - public void testCheckCircularInheritanceActionForwardsBasic() { - actionConfig.addForwardConfig(baseConfig); - actionConfig.addForwardConfig(subConfig); - - // set base to extend sub - baseConfig.setExtends("subConfig"); - - boolean result = - subConfig.checkCircularInheritance(moduleConfig, actionConfig); - - assertTrue("Circular inheritance not detected.", result); - } - - /** - * Test checkCircularInheritance() for circular inheritance between a - * forward declared in an action and a global forward. - */ - public void testCheckCircularInheritanceActionForwardExtendGlobal() { - actionConfig.addForwardConfig(subConfig); - moduleConfig.addForwardConfig(baseConfig); - - boolean result = - subConfig.checkCircularInheritance(moduleConfig, actionConfig); - - assertTrue("Incorrect result", !result); - } - - /** - * Test checkCircularInheritance() for circular inheritance between a - * forward declared in an action and a global forward and both forwards - * have the same name. - */ - public void testCheckCircularInheritanceActionForwardExtendGlobalSameName() { - moduleConfig.addForwardConfig(baseConfig); - actionConfig.addForwardConfig(actionBaseConfig); - - boolean result = - actionBaseConfig.checkCircularInheritance(moduleConfig, actionConfig); - - assertTrue("Incorrect result", !result); - } - - /** - * Make sure processExtends() throws an error when the config is already - * configured. - */ - public void testProcessExtendsConfigured() - throws Exception { - baseConfig.configured = true; - moduleConfig.addForwardConfig(baseConfig); - - try { - baseConfig.processExtends(moduleConfig, null); - fail( - "processExtends should not succeed when object is already configured"); - } catch (IllegalStateException e) { - // success - } - } - - /** - * Test processExtends() when nothing is extended. - */ - public void testProcessExtendsNoExtension() - throws Exception { - String path = baseConfig.getPath(); - String module = baseConfig.getModule(); - String name = baseConfig.getName(); - String inherit = baseConfig.getExtends(); - boolean redirect = baseConfig.getRedirect(); - - moduleConfig.addForwardConfig(baseConfig); - baseConfig.processExtends(moduleConfig, null); - - assertEquals("Path shouldn't have changed", path, baseConfig.getPath()); - assertEquals("Module shouldn't have changed", module, - baseConfig.getModule()); - assertEquals("Name shouldn't have changed", name, baseConfig.getName()); - assertEquals("Extends shouldn't have changed", inherit, - baseConfig.getExtends()); - assertEquals("Redirect shouldn't have changed", redirect, - baseConfig.getRedirect()); - } - - /** - * Test processExtends() with a basic extension. - */ - public void testProcessExtendsBasicExtension() - throws Exception { - String baseCount = "10"; - - baseConfig.setProperty("count", baseCount); - - String baseLabel = "label a"; - - baseConfig.setProperty("label", baseLabel); - - String path = baseConfig.getPath(); - String module = baseConfig.getModule(); - - String inherit = subConfig.getExtends(); - String name = subConfig.getName(); - boolean redirect = subConfig.getRedirect(); - - String subLabel = "label b"; - - subConfig.setProperty("label", subLabel); - - moduleConfig.addForwardConfig(baseConfig); - moduleConfig.addForwardConfig(subConfig); - subConfig.processExtends(moduleConfig, null); - - assertEquals("Path wasn't inherited", path, subConfig.getPath()); - assertEquals("Module wasn't inherited", module, subConfig.getModule()); - assertEquals("Name shouldn't have changed", name, subConfig.getName()); - assertEquals("Extends shouldn't have changed", inherit, - subConfig.getExtends()); - assertEquals("Redirect shouldn't have changed", redirect, - subConfig.getRedirect()); - assertEquals("Arbitrary config property was not inherited", baseCount, - subConfig.getProperty("count")); - assertEquals("Overridden config property was not retained", subLabel, - subConfig.getProperty("label")); - } - - /** - * Test processExtends() with a basic extension between an action config - * and a global config. - */ - public void testProcessExtendsBasicGlobalExtension() - throws Exception { - String path = baseConfig.getPath(); - String module = baseConfig.getModule(); - - boolean redirect = subConfig.getRedirect(); - String inherit = subConfig.getExtends(); - String name = subConfig.getName(); - - moduleConfig.addForwardConfig(baseConfig); - actionConfig.addForwardConfig(subConfig); - subConfig.processExtends(moduleConfig, actionConfig); - - assertEquals("Path wasn't inherited", path, subConfig.getPath()); - assertEquals("Module wasn't inherited", module, subConfig.getModule()); - assertEquals("Name shouldn't have changed", name, subConfig.getName()); - assertEquals("Extends shouldn't have changed", inherit, - subConfig.getExtends()); - assertEquals("Redirect shouldn't have changed", redirect, - subConfig.getRedirect()); - } - - /** - * Test processExtends() with an incorrect setup where a global config - * attempts to extend an action config. - */ - public void testProcessExtendsGlobalExtendingAction() - throws Exception { - moduleConfig.addForwardConfig(subConfig); - actionConfig.addForwardConfig(baseConfig); - - try { - subConfig.processExtends(moduleConfig, actionConfig); - fail( - "Should not find config from actionConfig when *this* is global"); - } catch (NullPointerException npe) { - // succeed - } - } - - /** - * Test processExtends() with an action config that extends a global - * config with the same name. - */ - public void testProcessExtendsSameNames() - throws Exception { - String path = baseConfig.getPath(); - boolean redirect = baseConfig.getRedirect(); - - String module = actionBaseConfig.getModule(); - String inherit = actionBaseConfig.getExtends(); - String name = actionBaseConfig.getName(); - - moduleConfig.addForwardConfig(baseConfig); - actionConfig.addForwardConfig(actionBaseConfig); - - actionBaseConfig.processExtends(moduleConfig, actionConfig); - - assertEquals("Path wasn't inherited", path, actionBaseConfig.getPath()); - assertEquals("Module shouldn't have changed", module, - actionBaseConfig.getModule()); - assertEquals("Name shouldn't have changed", name, - actionBaseConfig.getName()); - assertEquals("Extends shouldn't have changed", inherit, - actionBaseConfig.getExtends()); - assertEquals("Redirect shouldn't have changed", redirect, - actionBaseConfig.getRedirect()); - } - - /** - * Test processExtends() where an action ForwardConfig extends another - * ForwardConfig, which in turn extends a global ForwardConfig with the - * same name. - */ - public void testProcessExtendsActionExtendsActionExtendsGlobalWithSameName() - throws Exception { - String path = baseConfig.getPath(); - - String module = actionBaseConfig.getModule(); - - boolean redirect = subConfig.getRedirect(); - String inherit = subConfig.getExtends(); - String name = subConfig.getName(); - - moduleConfig.addForwardConfig(baseConfig); - actionConfig.addForwardConfig(actionBaseConfig); - actionConfig.addForwardConfig(subConfig); - - subConfig.processExtends(moduleConfig, actionConfig); - - assertTrue("baseConfig's processExtends() should've been called", - baseConfig.extensionProcessed); - assertTrue("actionBaseConfig's processExtends() should've been called", - actionBaseConfig.extensionProcessed); - - assertEquals("Path wasn't inherited", path, subConfig.getPath()); - assertEquals("Module wasn't inherited", module, subConfig.getModule()); - assertEquals("Name shouldn't have changed", name, subConfig.getName()); - assertEquals("Extends shouldn't have changed", inherit, - subConfig.getExtends()); - assertEquals("Redirect shouldn't have changed", redirect, - subConfig.getRedirect()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestModuleConfig.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestModuleConfig.java deleted file mode 100644 index b3bb0d0346c..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/TestModuleConfig.java +++ /dev/null @@ -1,202 +0,0 @@ -/* - * $Id: TestModuleConfig.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.config; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -import org.apache.commons.digester.Digester; - -import java.io.InputStream; - -/** - * Unit tests for the org.apache.struts.config package. - * - * @version $Rev: 471754 $ $Date: 2005-03-01 20:26:14 -0500 (Tue, 01 Mar 2005) - * $ - */ -public class TestModuleConfig extends TestCase { - // ----------------------------------------------------- Instance Variables - - /** - * The ModuleConfig we are testing. - */ - protected ModuleConfig config = null; - - // ----------------------------------------------------------- Constructors - - /** - * Construct a new instance of this test case. - * - * @param name Name of the test case - */ - public TestModuleConfig(String name) { - super(name); - } - - // --------------------------------------------------------- Public Methods - - /** - * Set up instance variables required by this test case. - */ - public void setUp() { - ModuleConfigFactory factoryObject = ModuleConfigFactory.createFactory(); - - config = factoryObject.createModuleConfig(""); - } - - /** - * Return the tests included in this test suite. - */ - public static Test suite() { - return (new TestSuite(TestModuleConfig.class)); - } - - /** - * Tear down instance variables required by this test case. - */ - public void tearDown() { - config = null; - } - - // ------------------------------------------------ Individual Test Methods - private void parseConfig(String publicId, String entityURL, - String strutsConfig) { - // Prepare a Digester for parsing a struts-config.xml file - Digester digester = new Digester(); - - digester.push(config); - digester.setNamespaceAware(true); - digester.setValidating(true); - digester.addRuleSet(new ConfigRuleSet()); - digester.register(publicId, - this.getClass().getResource(entityURL).toString()); - - // Parse the test struts-config.xml file - try { - InputStream input = - this.getClass().getResourceAsStream(strutsConfig); - - assertNotNull("Got an input stream for " + strutsConfig, input); - digester.parse(input); - input.close(); - } catch (Throwable t) { - t.printStackTrace(System.out); - fail("Parsing threw exception: " + t); - } - } - - /** - * Test parsing of a struts-config.xml file. - */ - public void testParse() { - testParseBase("-//Apache Software Foundation//DTD Struts Configuration 1.2//EN", - "/org/apache/struts/resources/struts-config_1_2.dtd", - "/org/apache/struts/config/struts-config.xml"); - } - - public void testParse1_1() { - testParseBase("-//Apache Software Foundation//DTD Struts Configuration 1.1//EN", - "/org/apache/struts/resources/struts-config_1_1.dtd", - "/org/apache/struts/config/struts-config-1.1.xml"); - } - - public void testParseBase(String publicId, String entityURL, - String strutsConfig) { - parseConfig(publicId, entityURL, strutsConfig); - - // Perform assertion tests on the parsed information - FormBeanConfig[] fbcs = config.findFormBeanConfigs(); - - assertNotNull("Found our form bean configurations", fbcs); - assertEquals("Found three form bean configurations", 3, fbcs.length); - - ForwardConfig[] fcs = config.findForwardConfigs(); - - assertNotNull("Found our forward configurations", fcs); - assertEquals("Found three forward configurations", 3, fcs.length); - - ActionConfig logon = config.findActionConfig("/logon"); - - assertNotNull("Found logon action configuration", logon); - assertEquals("Found correct logon configuration", "logonForm", - logon.getName()); - } - - /** - * Tests a struts-config.xml that contains a custom mapping and property. - */ - public void testCustomMappingParse() { - // Prepare a Digester for parsing a struts-config.xml file - testCustomMappingParseBase("-//Apache Software Foundation//DTD Struts Configuration 1.2//EN", - "/org/apache/struts/resources/struts-config_1_2.dtd", - "/org/apache/struts/config/struts-config-custom-mapping.xml"); - } - - /** - * Tests a struts-config.xml that contains a custom mapping and property. - */ - public void testCustomMappingParse1_1() { - // Prepare a Digester for parsing a struts-config.xml file - testCustomMappingParseBase("-//Apache Software Foundation//DTD Struts Configuration 1.1//EN", - "/org/apache/struts/resources/struts-config_1_1.dtd", - "/org/apache/struts/config/struts-config-custom-mapping-1.1.xml"); - } - - /** - * Tests a struts-config.xml that contains a custom mapping and property. - */ - private void testCustomMappingParseBase(String publicId, String entityURL, - String strutsConfig) { - parseConfig(publicId, entityURL, strutsConfig); - - // Perform assertion tests on the parsed information - CustomMappingTest map = - (CustomMappingTest) config.findActionConfig("/editRegistration"); - - assertNotNull("Cannot find editRegistration mapping", map); - assertTrue("The custom mapping attribute has not been set", - map.getPublic()); - } - - /** - * Test order of action mappings defined perserved. - */ - public void testPreserveActionMappingsOrder() { - parseConfig("-//Apache Software Foundation//DTD Struts Configuration 1.2//EN", - "/org/apache/struts/resources/struts-config_1_2.dtd", - "/org/apache/struts/config/struts-config.xml"); - - String[] paths = - new String[] { - "/editRegistration", "/editSubscription", "/logoff", "/logon", - "/saveRegistration", "/saveSubscription", "/tour" - }; - - ActionConfig[] actions = config.findActionConfigs(); - - for (int x = 0; x < paths.length; x++) { - assertTrue("Action config out of order:" + actions[x].getPath(), - paths[x].equals(actions[x].getPath())); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config-1.1.xml b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config-1.1.xml deleted file mode 100644 index 0dc40369fc6..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config-1.1.xml +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config-custom-mapping-1.1.xml b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config-custom-mapping-1.1.xml deleted file mode 100644 index 99caf1fe028..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config-custom-mapping-1.1.xml +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config-custom-mapping.xml b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config-custom-mapping.xml deleted file mode 100644 index a0dfb0ddb6f..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config-custom-mapping.xml +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config.xml b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config.xml deleted file mode 100644 index b7625f24a3c..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/config/struts-config.xml +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo.properties b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo.properties deleted file mode 100644 index aa2b373729c..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo.properties +++ /dev/null @@ -1,20 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -key.all=ALL default -key.default=default only -key.lang=LANG default -key.country=COUNTRY default - diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_de.properties b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_de.properties deleted file mode 100644 index d070535a527..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_de.properties +++ /dev/null @@ -1,18 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -key.all=ALL de -key.de=de only -key.lang=LANG de diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_de_DE.properties b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_de_DE.properties deleted file mode 100644 index 90b7eceb08c..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_de_DE.properties +++ /dev/null @@ -1,18 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -key.all=ALL de_DE -key.de_DE=de_DE only -key.country=COUNTRY de_DE diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_en.properties b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_en.properties deleted file mode 100644 index 39872deb995..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_en.properties +++ /dev/null @@ -1,18 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -key.all=ALL en -key.en=en only -key.lang=LANG en diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_en_US.properties b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_en_US.properties deleted file mode 100644 index d2f6d6018ec..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/Foo_en_US.properties +++ /dev/null @@ -1,18 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -key.all=ALL en_US -key.en_US=en_US only -key.country=COUNTRY en_US diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/TestPropertyMessageResources.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/TestPropertyMessageResources.java deleted file mode 100644 index c1b618021b2..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/TestPropertyMessageResources.java +++ /dev/null @@ -1,220 +0,0 @@ -/* - * $Id: TestPropertyMessageResources.java 480549 2006-11-29 12:16:15Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import junit.framework.Test; -import junit.framework.TestSuite; -import junit.framework.TestCase; - -import java.util.Locale; -import org.apache.struts.config.MessageResourcesConfig; - -/** - * Unit tests for PropertyMessageResources. - * - * @version $Revision: 480549 $ - */ -public class TestPropertyMessageResources extends TestCase { - - - private static final String FOO_RESOURCES = "org.apache.struts.util.Foo"; - - private Locale defaultLocale; - - // ----------------------------------------------------------------- Basics - public TestPropertyMessageResources(String name) { - super(name); - } - - public static void main(String[] args) { - junit.awtui.TestRunner.main(new String[] { - TestPropertyMessageResources.class.getName() - }); - } - - public static Test suite() { - return (new TestSuite(TestPropertyMessageResources.class)); - } - - // ----------------------------------------------------- Setup and Teardown - public void setUp() { - // cache the default locale - defaultLocale = Locale.getDefault(); - } - - public void tearDown() { - // restore the default locale - Locale.setDefault(defaultLocale); - } - - // ------------------------------------------------------- Individual Tests - - /** - * Test Struts default PropertyMessageResources behaviour - */ - public void testDefaultMode() { - - Locale.setDefault(Locale.US); - - // Create message resources - default Struts Behaviour -// MessageResources resources = createMessageResources(FOO_RESOURCES, true, "DEFAULT"); - MessageResources resources = createMessageResources(FOO_RESOURCES, true, null); - - // Test language (& default) only keys - assertEquals("key.lang FRANCE", "LANG default", resources.getMessage(Locale.FRANCE, "key.lang")); // no cached en_US - assertEquals("key.lang English", "LANG en", resources.getMessage(Locale.ENGLISH, "key.lang")); - assertEquals("key.lang US", "LANG en", resources.getMessage(Locale.US, "key.lang")); - assertEquals("key.lang ITALY", "LANG en", resources.getMessage(Locale.ITALY, "key.lang")); // cached en_US - assertEquals("key.lang German", "LANG de", resources.getMessage(Locale.GERMAN, "key.lang")); - assertEquals("key.lang GERMANY", "LANG de", resources.getMessage(Locale.GERMANY, "key.lang")); - - // Test country (& default) only keys - assertEquals("key.country FRANCE", "COUNTRY en_US", resources.getMessage(Locale.FRANCE, "key.country")); - assertEquals("key.country English", "COUNTRY en_US", resources.getMessage(Locale.ENGLISH, "key.country")); - assertEquals("key.country US", "COUNTRY en_US", resources.getMessage(Locale.US, "key.country")); - assertEquals("key.country ITALY", "COUNTRY en_US", resources.getMessage(Locale.ITALY, "key.country")); - assertEquals("key.country German", "COUNTRY en_US", resources.getMessage(Locale.GERMAN, "key.country")); - assertEquals("key.country GERMANY", "COUNTRY de_DE", resources.getMessage(Locale.GERMANY, "key.country")); - - // Test Unique Keys with wrong Locale - assertEquals("Wrong Locale en only", null, resources.getMessage(Locale.GERMAN, "key.en")); - assertEquals("Wrong Locale en_US only", "en_US only", resources.getMessage(Locale.GERMANY, "key.en_US")); - - // Run tests with common expected results - commonTests(resources); - } - - /** - * Test JSTL compatible PropertyMessageResources behaviour - */ - public void testJstlMode() { - - Locale.setDefault(Locale.US); - - // Create message resources - default Struts Behaviour - MessageResources resources = createMessageResources(FOO_RESOURCES, true, "JSTL"); - - // Test language (& default) only keys - assertEquals("key.lang FRANCE", "LANG default", resources.getMessage(Locale.FRANCE, "key.lang")); - assertEquals("key.lang English", "LANG en", resources.getMessage(Locale.ENGLISH, "key.lang")); - assertEquals("key.lang US", "LANG en", resources.getMessage(Locale.US, "key.lang")); - assertEquals("key.lang ITALY", "LANG default", resources.getMessage(Locale.ITALY, "key.lang")); - assertEquals("key.lang German", "LANG de", resources.getMessage(Locale.GERMAN, "key.lang")); - assertEquals("key.lang GERMANY", "LANG de", resources.getMessage(Locale.GERMANY, "key.lang")); - - // Test country (& default) only keys - assertEquals("key.country FRANCE", "COUNTRY default", resources.getMessage(Locale.FRANCE, "key.country")); - assertEquals("key.country English", "COUNTRY default", resources.getMessage(Locale.ENGLISH, "key.country")); - assertEquals("key.country US", "COUNTRY en_US", resources.getMessage(Locale.US, "key.country")); - assertEquals("key.country ITALY", "COUNTRY default", resources.getMessage(Locale.ITALY, "key.country")); - assertEquals("key.country German", "COUNTRY default", resources.getMessage(Locale.GERMAN, "key.country")); - assertEquals("key.country GERMANY", "COUNTRY de_DE", resources.getMessage(Locale.GERMANY, "key.country")); - - // Test Unique Keys with wrong Locale - assertEquals("Wrong Locale en only", null, resources.getMessage(Locale.GERMAN, "key.en")); - assertEquals("Wrong Locale en_US only", null, resources.getMessage(Locale.GERMANY, "key.en_US")); - - // Run tests with common expected results - commonTests(resources); - - } - - /** - * Test "PropertyResourceBundle" compatible PropertyMessageResources behaviour - */ - public void testResourceBundleMode() { - - Locale.setDefault(Locale.US); - - // Create message resources - default Struts Behaviour - MessageResources resources = createMessageResources(FOO_RESOURCES, true, "RESOURCE"); - - // Test language (& default) only keys - assertEquals("key.lang FRANCE", "LANG en", resources.getMessage(Locale.FRANCE, "key.lang")); - assertEquals("key.lang English", "LANG en", resources.getMessage(Locale.ENGLISH, "key.lang")); - assertEquals("key.lang US", "LANG en", resources.getMessage(Locale.US, "key.lang")); - assertEquals("key.lang ITALY", "LANG en", resources.getMessage(Locale.ITALY, "key.lang")); - assertEquals("key.lang German", "LANG de", resources.getMessage(Locale.GERMAN, "key.lang")); - assertEquals("key.lang GERMANY", "LANG de", resources.getMessage(Locale.GERMANY, "key.lang")); - - // Test country (& default) only keys - assertEquals("key.country FRANCE", "COUNTRY en_US", resources.getMessage(Locale.FRANCE, "key.country")); - assertEquals("key.country English", "COUNTRY en_US", resources.getMessage(Locale.ENGLISH, "key.country")); - assertEquals("key.country US", "COUNTRY en_US", resources.getMessage(Locale.US, "key.country")); - assertEquals("key.country ITALY", "COUNTRY en_US", resources.getMessage(Locale.ITALY, "key.country")); - assertEquals("key.country German", "COUNTRY en_US", resources.getMessage(Locale.GERMAN, "key.country")); - assertEquals("key.country GERMANY", "COUNTRY de_DE", resources.getMessage(Locale.GERMANY, "key.country")); - - // Test Unique Keys with wrong Locale - assertEquals("Wrong Locale en only", "en only", resources.getMessage(Locale.GERMAN, "key.en")); - assertEquals("Wrong Locale en_US only", "en_US only", resources.getMessage(Locale.GERMANY, "key.en_US")); - - // Run tests with common expected results - commonTests(resources); - } - - /** - * Tests with common expected results - */ - public void commonTests(MessageResources resources) { - - // Test "null" Locale - assertEquals("null Locale", "ALL default", resources.getMessage((Locale)null, "key.all")); - - // Test Default only key with all Locales - assertEquals("Check default en", "default only", resources.getMessage(Locale.ENGLISH, "key.default")); - assertEquals("Check default en_US", "default only", resources.getMessage(Locale.US, "key.default")); - assertEquals("Check default de", "default only", resources.getMessage(Locale.GERMAN, "key.default")); - assertEquals("Check default de_DE", "default only", resources.getMessage(Locale.GERMANY, "key.default")); - - // Test key in all locales - assertEquals("Check ALL en", "ALL en", resources.getMessage(Locale.ENGLISH, "key.all")); - assertEquals("Check ALL en_US", "ALL en_US", resources.getMessage(Locale.US, "key.all")); - assertEquals("Check ALL de", "ALL de", resources.getMessage(Locale.GERMAN, "key.all")); - assertEquals("Check ALL de_DE", "ALL de_DE", resources.getMessage(Locale.GERMANY, "key.all")); - - // Test key unique to each locale - assertEquals("Check en only", "en only", resources.getMessage(Locale.ENGLISH, "key.en")); - assertEquals("Check en_US only", "en_US only", resources.getMessage(Locale.US, "key.en_US")); - assertEquals("Check de only", "de only", resources.getMessage(Locale.GERMAN, "key.de")); - assertEquals("Check de_DE only", "de_DE only", resources.getMessage(Locale.GERMANY, "key.de_DE")); - - // Test unique keys with incorrect Locale - assertEquals("Missing default", null, resources.getMessage(Locale.ENGLISH, "missing")); - assertEquals("Missing de only", null, resources.getMessage(Locale.US, "key.de")); - assertEquals("Missing de_DE only", null, resources.getMessage(Locale.US, "key.de_DE")); - } - - /** - * Create the PropertyMessageResources. - */ - private MessageResources createMessageResources(String file, boolean returnNull, String mode) { - MessageResourcesConfig config = new MessageResourcesConfig(); - config.setNull(returnNull); - if (mode != null) { - config.setProperty("mode", mode); - } - PropertyMessageResourcesFactory factory = new PropertyMessageResourcesFactory(); - factory.setConfig(config); - factory.setReturnNull(returnNull); - return factory.createResources(file); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/TestRequestUtils.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/TestRequestUtils.java deleted file mode 100644 index 50d35dd1196..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/TestRequestUtils.java +++ /dev/null @@ -1,664 +0,0 @@ -/* - * $Id: TestRequestUtils.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.apache.struts.Globals; -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.action.DynaActionForm; -import org.apache.struts.action.RequestProcessor; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.mock.MockFormBean; -import org.apache.struts.mock.MockPrincipal; -import org.apache.struts.mock.TestMockBase; - -import java.net.MalformedURLException; - -/** - *

    Unit tests for org.apache.struts.util.RequestUtils.

    - * - * @version $Rev: 471754 $ $Date: 2005-08-14 17:24:39 -0400 (Sun, 14 Aug 2005) - * $ - */ -public class TestRequestUtils extends TestMockBase { - // ----------------------------------------------------------------- Basics - public TestRequestUtils(String name) { - super(name); - } - - public static void main(String[] args) { - junit.awtui.TestRunner.main(new String[] { - TestRequestUtils.class.getName() - }); - } - - public static Test suite() { - return (new TestSuite(TestRequestUtils.class)); - } - - // ----------------------------------------------------- Instance Variables - // ----------------------------------------------------- Setup and Teardown - public void setUp() { - super.setUp(); - } - - public void tearDown() { - super.tearDown(); - } - - // ------------------------------------------------------- Individual Tests - // ---------------------------------------------------------- absoluteURL() - public void testAbsoluteURL() { - request.setPathElements("/myapp", "/action.do", null, null); - - String url = null; - - try { - url = RequestUtils.absoluteURL(request, "/foo/bar.jsp").toString(); - assertEquals("absoluteURL is correct", - "http://localhost:8080/myapp/foo/bar.jsp", url); - } catch (MalformedURLException e) { - fail("Threw MalformedURLException: " + e); - } - } - - // ------------------------------------------------------------ actionURL() - // Default application -- extension mapping - public void testActionURL1() { - request.setAttribute(Globals.MODULE_KEY, moduleConfig); - request.setPathElements("/myapp", "/foo.do", null, null); - - String url = - RequestUtils.actionURL(request, - moduleConfig.findActionConfig("/dynamic"), "*.do"); - - assertNotNull("URL was returned", url); - assertEquals("URL value", "/dynamic.do", url); - } - - // Second application -- extension mapping - public void testActionURL2() { - request.setAttribute(Globals.MODULE_KEY, moduleConfig2); - request.setPathElements("/myapp", "/2/foo.do", null, null); - - String url = - RequestUtils.actionURL(request, - moduleConfig2.findActionConfig("/dynamic2"), "*.do"); - - assertNotNull("URL was returned", url); - assertEquals("URL value", "/2/dynamic2.do", url); - } - - // Default application -- path mapping - public void testActionURL3() { - request.setAttribute(Globals.MODULE_KEY, moduleConfig); - request.setPathElements("/myapp", "/do/foo", null, null); - - String url = - RequestUtils.actionURL(request, - moduleConfig.findActionConfig("/dynamic"), "/do/*"); - - assertNotNull("URL was returned", url); - assertEquals("URL value", "/do/dynamic", url); - } - - // ----------------------------------------------------- createActionForm() - // Default module -- No ActionForm should be created - public void testCreateActionForm1a() { - request.setPathElements("/myapp", "/noform.do", null, null); - - ActionMapping mapping = - (ActionMapping) moduleConfig.findActionConfig("/noform"); - - assertNotNull("Found /noform mapping", mapping); - - ActionForm form = - RequestUtils.createActionForm(request, mapping, moduleConfig, null); - - assertNull("No ActionForm returned", form); - } - - // Second module -- No ActionForm should be created - public void testCreateActionForm1b() { - request.setPathElements("/myapp", "/2/noform.do", null, null); - - ActionMapping mapping = - (ActionMapping) moduleConfig2.findActionConfig("/noform"); - - assertNotNull("Found /noform mapping", mapping); - - ActionForm form = - RequestUtils.createActionForm(request, mapping, moduleConfig2, null); - - assertNull("No ActionForm returned", form); - } - - // Default module -- Standard ActionForm should be created - public void testCreateActionForm2a() { - request.setPathElements("/myapp", "/static.do", null, null); - - ActionMapping mapping = - (ActionMapping) moduleConfig.findActionConfig("/static"); - - assertNotNull("Found /static mapping", mapping); - assertNotNull("Mapping has non-null name", mapping.getName()); - assertEquals("Mapping has correct name", "static", mapping.getName()); - assertNotNull("AppConfig has form bean " + mapping.getName(), - moduleConfig.findFormBeanConfig(mapping.getName())); - - ActionForm form = - RequestUtils.createActionForm(request, mapping, moduleConfig, null); - - assertNotNull("ActionForm returned", form); - assertTrue("ActionForm of correct type", form instanceof MockFormBean); - } - - // Second module -- Standard ActionForm should be created - public void testCreateActionForm2b() { - request.setPathElements("/myapp", "/2/static.do", null, null); - - ActionMapping mapping = - (ActionMapping) moduleConfig2.findActionConfig("/static"); - - assertNotNull("Found /static mapping", mapping); - assertNotNull("Mapping has non-null name", mapping.getName()); - assertEquals("Mapping has correct name", "static", mapping.getName()); - assertNotNull("AppConfig has form bean " + mapping.getName(), - moduleConfig.findFormBeanConfig(mapping.getName())); - - ActionForm form = - RequestUtils.createActionForm(request, mapping, moduleConfig2, null); - - assertNotNull("ActionForm returned", form); - assertTrue("ActionForm of correct type", form instanceof MockFormBean); - } - - // Default module -- Dynamic ActionForm should be created - public void testCreateActionForm3a() { - request.setPathElements("/myapp", "/dynamic.do", null, null); - - ActionMapping mapping = - (ActionMapping) moduleConfig.findActionConfig("/dynamic"); - - assertNotNull("Found /dynamic mapping", mapping); - assertNotNull("Mapping has non-null name", mapping.getName()); - assertEquals("Mapping has correct name", "dynamic", mapping.getName()); - assertNotNull("AppConfig has form bean " + mapping.getName(), - moduleConfig.findFormBeanConfig(mapping.getName())); - - ActionForm form = - RequestUtils.createActionForm(request, mapping, moduleConfig, null); - - assertNotNull("ActionForm returned", form); - assertTrue("ActionForm of correct type", form instanceof DynaActionForm); - } - - // Second module -- Dynamic ActionForm should be created - public void testCreateActionForm3b() { - request.setPathElements("/myapp", "/2/dynamic2.do", null, null); - - ActionMapping mapping = - (ActionMapping) moduleConfig2.findActionConfig("/dynamic2"); - - assertNotNull("Found /dynamic2 mapping", mapping); - assertNotNull("Mapping has non-null name", mapping.getName()); - assertEquals("Mapping has correct name", "dynamic2", mapping.getName()); - assertNotNull("AppConfig has form bean " + mapping.getName(), - moduleConfig2.findFormBeanConfig(mapping.getName())); - - ActionForm form = - RequestUtils.createActionForm(request, mapping, moduleConfig2, null); - - assertNotNull("ActionForm returned", form); - assertTrue("ActionForm of correct type", form instanceof DynaActionForm); - } - - // Default module -- Dynamic ActionForm with initializers - public void testCreateActionForm4a() { - // Retrieve an appropriately configured DynaActionForm instance - request.setPathElements("/myapp", "/dynamic0.do", null, null); - - ActionMapping mapping = - (ActionMapping) moduleConfig.findActionConfig("/dynamic0"); - - assertNotNull("Found /dynamic0 mapping", mapping); - assertNotNull("Mapping has non-null name", mapping.getName()); - assertEquals("Mapping has correct name", "dynamic0", mapping.getName()); - assertNotNull("AppConfig has form bean " + mapping.getName(), - moduleConfig.findFormBeanConfig(mapping.getName())); - - ActionForm form = - RequestUtils.createActionForm(request, mapping, moduleConfig, null); - - assertNotNull("ActionForm returned", form); - assertTrue("ActionForm of correct type", form instanceof DynaActionForm); - - // Validate the property values - DynaActionForm dform = (DynaActionForm) form; - Boolean booleanProperty = (Boolean) dform.get("booleanProperty"); - - assertTrue("booleanProperty is true", booleanProperty.booleanValue()); - - String stringProperty = (String) dform.get("stringProperty"); - - assertEquals("stringProperty is correct", "String Property", - stringProperty); - - Object value = null; - - value = dform.get("intArray1"); - assertNotNull("intArray1 exists", value); - assertTrue("intArray1 is int[]", value instanceof int[]); - - int[] intArray1 = (int[]) value; - - assertEquals("intArray1 length is correct", 3, intArray1.length); - assertEquals("intArray1[0] value is correct", 1, intArray1[0]); - assertEquals("intArray1[1] value is correct", 2, intArray1[1]); - assertEquals("intArray1[2] value is correct", 3, intArray1[2]); - - value = dform.get("intArray2"); - assertNotNull("intArray2 exists", value); - assertTrue("intArray2 is int[]", value instanceof int[]); - - int[] intArray2 = (int[]) value; - - assertEquals("intArray2 length is correct", 5, intArray2.length); - assertEquals("intArray2[0] value is correct", 0, intArray2[0]); - assertEquals("intArray2[1] value is correct", 0, intArray2[1]); - assertEquals("intArray2[2] value is correct", 0, intArray2[2]); - assertEquals("intArray2[3] value is correct", 0, intArray2[3]); - assertEquals("intArray2[4] value is correct", 0, intArray2[4]); - - value = dform.get("principal"); - assertNotNull("principal exists", value); - assertTrue("principal is MockPrincipal", value instanceof MockPrincipal); - - value = dform.get("stringArray1"); - assertNotNull("stringArray1 exists", value); - assertTrue("stringArray1 is int[]", value instanceof String[]); - - String[] stringArray1 = (String[]) value; - - assertEquals("stringArray1 length is correct", 3, stringArray1.length); - assertEquals("stringArray1[0] value is correct", "aaa", stringArray1[0]); - assertEquals("stringArray1[1] value is correct", "bbb", stringArray1[1]); - assertEquals("stringArray1[2] value is correct", "ccc", stringArray1[2]); - - value = dform.get("stringArray2"); - assertNotNull("stringArray2 exists", value); - assertTrue("stringArray2 is int[]", value instanceof String[]); - - String[] stringArray2 = (String[]) value; - - assertEquals("stringArray2 length is correct", 3, stringArray2.length); - assertEquals("stringArray2[0] value is correct", new String(), - stringArray2[0]); - assertEquals("stringArray2[1] value is correct", new String(), - stringArray2[1]); - assertEquals("stringArray2[2] value is correct", new String(), - stringArray2[2]); - - // Different form beans should get different property value instances - Object value1 = null; - DynaActionForm dform1 = - (DynaActionForm) RequestUtils.createActionForm(request, mapping, - moduleConfig, null); - - value = dform.get("principal"); - value1 = dform1.get("principal"); - assertEquals("Different form beans get equal instance values", value, - value1); - assertTrue("Different form beans get different instances 1", - value != value1); - - value = dform.get("stringArray1"); - value1 = dform1.get("stringArray1"); - assertTrue("Different form beans get different instances 2", - value != value1); - - dform1.set("stringProperty", "Different stringProperty value"); - value = dform.get("stringProperty"); - value1 = dform1.get("stringProperty"); - assertTrue("Different form beans get different instances 3", - value != value1); - } - - // ----------------------------------------------------------- forwardURL() - // Default module (default forwardPattern) - public void testForwardURL1() { - request.setAttribute(Globals.MODULE_KEY, moduleConfig); - request.setPathElements("/myapp", "/action.do", null, null); - - ForwardConfig forward = null; - String result = null; - - // redirect=false, module=null - forward = moduleConfig.findForwardConfig("moduleForward"); - assertNotNull("moduleForward found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("moduleForward computed", result); - assertEquals("moduleForward value", "/module/forward", result); - - // redirect=true, module=null - forward = moduleConfig.findForwardConfig("moduleRedirect"); - assertNotNull("moduleRedirect found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("moduleRedirect computed", result); - assertEquals("moduleRedirect value", "/module/redirect", result); - - // redirect=false, module=/context - forward = moduleConfig.findForwardConfig("contextForward"); - assertNotNull("contextForward found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("contextForward computed", result); - assertEquals("contextForward value", "/context/forward", result); - - // redirect=true, module=/context - forward = moduleConfig.findForwardConfig("contextRedirect"); - assertNotNull("contextRedirect found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("contextRedirect computed", result); - assertEquals("contextRedirct value", "/context/redirect", result); - - // noslash, module=null - forward = moduleConfig.findForwardConfig("moduleNoslash"); - assertNotNull("moduleNoslash found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("moduleNoslash computed", result); - assertEquals("moduleNoslash value", "/module/noslash", result); - - // noslash, module=/ - forward = moduleConfig.findForwardConfig("contextNoslash"); - assertNotNull("contextNoslash found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("contextNoslash computed", result); - assertEquals("contextNoslash value", "/context/noslash", result); - } - - // Second module (default forwardPattern) - public void testForwardURL2() { - request.setAttribute(Globals.MODULE_KEY, moduleConfig2); - request.setPathElements("/myapp", "/2/action.do", null, null); - - ForwardConfig forward = null; - String result = null; - - // redirect=false, module=null - forward = moduleConfig2.findForwardConfig("moduleForward"); - assertNotNull("moduleForward found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("moduleForward computed", result); - assertEquals("moduleForward value", "/2/module/forward", result); - - // redirect=true, module=null - forward = moduleConfig2.findForwardConfig("moduleRedirect"); - assertNotNull("moduleRedirect found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("moduleRedirect computed", result); - assertEquals("moduleRedirect value", "/2/module/redirect", result); - - // redirect=false, module=/context - forward = moduleConfig2.findForwardConfig("contextForward"); - assertNotNull("contextForward found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("contextForward computed", result); - assertEquals("contextForward value", "/context/forward", result); - - // redirect=true, module=/context - forward = moduleConfig2.findForwardConfig("contextRedirect"); - assertNotNull("contextRedirect found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("contextRedirect computed", result); - assertEquals("contextRedirct value", "/context/redirect", result); - - // noslash, module=null - forward = moduleConfig2.findForwardConfig("moduleNoslash"); - assertNotNull("moduleNoslash found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("moduleNoslash computed", result); - assertEquals("moduleNoslash value", "/2/module/noslash", result); - - // noslash, module=/ - forward = moduleConfig2.findForwardConfig("contextNoslash"); - assertNotNull("contextNoslash found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("contextNoslash computed", result); - assertEquals("contextNoslash value", "/context/noslash", result); - } - - // Third module (custom forwardPattern) - public void testForwardURL3() { - request.setAttribute(Globals.MODULE_KEY, moduleConfig3); - request.setPathElements("/myapp", "/3/action.do", null, null); - - ForwardConfig forward = null; - String result = null; - - // redirect=false, module=null - forward = moduleConfig3.findForwardConfig("moduleForward"); - assertNotNull("moduleForward found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("moduleForward computed", result); - assertEquals("moduleForward value", "/forwarding/3/module/forward", - result); - - // redirect=true, module=null - forward = moduleConfig3.findForwardConfig("moduleRedirect"); - assertNotNull("moduleRedirect found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("moduleRedirect computed", result); - assertEquals("moduleRedirect value", "/forwarding/3/module/redirect", - result); - - // redirect=false, module=/context - forward = moduleConfig3.findForwardConfig("contextForward"); - assertNotNull("contextForward found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("contextForward computed", result); - assertEquals("contextForward value", "/forwarding/context/forward", - result); - - // redirect=true, module=/context - forward = moduleConfig3.findForwardConfig("contextRedirect"); - assertNotNull("contextRedirect found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("contextRedirect computed", result); - assertEquals("contextRedirct value", "/forwarding/context/redirect", - result); - - // noslash, module=null - forward = moduleConfig3.findForwardConfig("moduleNoslash"); - assertNotNull("moduleNoslash found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("moduleNoslash computed", result); - assertEquals("moduleNoslash value", "/forwarding/3/module/noslash", - result); - - // noslash, module=/ - forward = moduleConfig3.findForwardConfig("contextNoslash"); - assertNotNull("contextNoslash found", forward); - result = RequestUtils.forwardURL(request, forward, null); - assertNotNull("contextNoslash computed", result); - assertEquals("contextNoslash value", "/forwarding/context/noslash", - result); - } - - // Cross module forwards - public void testForwardURLa() { - request.setAttribute(Globals.MODULE_KEY, moduleConfig); - request.setPathElements("/myapp", "/action.do", null, null); - - ForwardConfig forward = null; - String result = null; - - // redirect=false, contextRelative=false, link to module 3 - forward = moduleConfig3.findForwardConfig("moduleForward"); - assertNotNull("moduleForward found", forward); - result = RequestUtils.forwardURL(request, forward, moduleConfig3); - assertNotNull("moduleForward computed", result); - assertEquals("moduleForward value", "/forwarding/3/module/forward", - result); - - // redirect=true, contextRelative=false, link to module 3 - forward = moduleConfig3.findForwardConfig("moduleRedirect"); - assertNotNull("moduleRedirect found", forward); - result = RequestUtils.forwardURL(request, forward, moduleConfig3); - assertNotNull("moduleRedirect computed", result); - assertEquals("moduleRedirect value", "/forwarding/3/module/redirect", - result); - - // redirect=false, module=/context - forward = moduleConfig3.findForwardConfig("contextForward"); - assertNotNull("contextForward found", forward); - result = RequestUtils.forwardURL(request, forward, moduleConfig3); - assertNotNull("contextForward computed", result); - assertEquals("contextForward value", "/forwarding/context/forward", - result); - - // redirect=true, module=/context - forward = moduleConfig3.findForwardConfig("contextRedirect"); - assertNotNull("contextRedirect found", forward); - result = RequestUtils.forwardURL(request, forward, moduleConfig3); - assertNotNull("contextRedirect computed", result); - assertEquals("contextRedirct value", "/forwarding/context/redirect", - result); - - // noslash, contextRelative=false, link to module 3 - forward = moduleConfig3.findForwardConfig("moduleNoslash"); - assertNotNull("moduleNoslash found", forward); - result = RequestUtils.forwardURL(request, forward, moduleConfig3); - assertNotNull("moduleNoslash computed", result); - assertEquals("moduleNoslash value", "/forwarding/3/module/noslash", - result); - - // noslash, module=/ - forward = moduleConfig3.findForwardConfig("contextNoslash"); - assertNotNull("contextNoslash found", forward); - result = RequestUtils.forwardURL(request, forward, moduleConfig3); - assertNotNull("contextNoslash computed", result); - assertEquals("contextNoslash value", "/forwarding/context/noslash", - result); - } - - // ----------------------------------------------------------- requestURL() - public void testRequestURL() { - request.setPathElements("/myapp", "/foo.do", null, null); - - String url = null; - - try { - url = RequestUtils.requestURL(request).toString(); - } catch (MalformedURLException e) { - fail("MalformedURLException: " + e); - } - - assertNotNull("URL was returned", url); - assertEquals("URL value", "http://localhost:8080/myapp/foo.do", url); - } - - // ---------------------------------------------------- selectApplication() - // Map to the default module -- direct - public void testSelectApplication1a() { - request.setPathElements("/myapp", "/noform.do", null, null); - ModuleUtils.getInstance().selectModule(request, context); - - ModuleConfig moduleConfig = - (ModuleConfig) request.getAttribute(Globals.MODULE_KEY); - - assertNotNull("Selected a module", moduleConfig); - assertEquals("Selected correct module", "", moduleConfig.getPrefix()); - - // FIXME - check module resources? - } - - // Map to the second module -- direct - public void testSelectApplication1b() { - String[] prefixes = { "/1", "/2" }; - - context.setAttribute(Globals.MODULE_PREFIXES_KEY, prefixes); - request.setPathElements("/myapp", "/2/noform.do", null, null); - - ModuleUtils.getInstance().selectModule(request, context); - - ModuleConfig moduleConfig = - (ModuleConfig) request.getAttribute(Globals.MODULE_KEY); - - assertNotNull("Selected a module", moduleConfig); - assertEquals("Selected correct module", "/2", moduleConfig.getPrefix()); - - // FIXME - check module resources? - } - - // Map to the default module -- include - public void testSelectApplication2a() { - request.setPathElements("/myapp", "/2/noform.do", null, null); - request.setAttribute(RequestProcessor.INCLUDE_SERVLET_PATH, "/noform.do"); - ModuleUtils.getInstance().selectModule(request, context); - - ModuleConfig moduleConfig = - (ModuleConfig) request.getAttribute(Globals.MODULE_KEY); - - assertNotNull("Selected an application", moduleConfig); - assertEquals("Selected correct application", "", - moduleConfig.getPrefix()); - - // FIXME - check application resources? - } - - // Map to the second module -- include - public void testSelectApplication2b() { - String[] prefixes = { "/1", "/2" }; - - context.setAttribute(Globals.MODULE_PREFIXES_KEY, prefixes); - request.setPathElements("/myapp", "/noform.do", null, null); - request.setAttribute(RequestProcessor.INCLUDE_SERVLET_PATH, - "/2/noform.do"); - ModuleUtils.getInstance().selectModule(request, context); - - ModuleConfig moduleConfig = - (ModuleConfig) request.getAttribute(Globals.MODULE_KEY); - - assertNotNull("Selected a module", moduleConfig); - assertEquals("Selected correct module", "/2", moduleConfig.getPrefix()); - - // FIXME - check application resources? - } - - // ------------------------------------------------------------ serverURL() - // Basic test on values in mock objects - public void testServerURL() { - String url = null; - - try { - url = RequestUtils.serverURL(request).toString(); - } catch (MalformedURLException e) { - fail("Threw MalformedURLException: " + e); - } - - assertNotNull("serverURL is present", url); - assertEquals("serverURL value", "http://localhost:8080", url); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/TestRequestUtilsPopulate.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/TestRequestUtilsPopulate.java deleted file mode 100644 index 757c1372ac6..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/util/TestRequestUtilsPopulate.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * $Id: TestRequestUtilsPopulate.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.util; - -import javax.servlet.ServletException; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.apache.struts.action.ActionMapping; -import org.apache.struts.util.RequestUtils; -import org.apache.struts.Globals; -import org.apache.struts.mock.TestMockBase; -import org.apache.struts.mock.MockFormBean; -import org.apache.struts.mock.MockMultipartRequestHandler; - -/** - * Unit tests for the RequestUtil's populate method. - * - * @version $Rev: 471754 $ - */ -public class TestRequestUtilsPopulate extends TestMockBase { - - /** - * Defines the testcase name for JUnit. - * - * @param theName the testcase's name. - */ - public TestRequestUtilsPopulate(String theName) { - super(theName); - } - - /** - * Start the tests. - * - * @param theArgs the arguments. Not used - */ - public static void main(String[] theArgs) { - junit.awtui.TestRunner.main( - new String[] { TestRequestUtilsPopulate.class.getName()}); - } - - /** - * @return a test suite (TestSuite) that includes all methods - * starting with "test" - */ - public static Test suite() { - // All methods starting with "test" will be executed in the test suite. - return new TestSuite(TestRequestUtilsPopulate.class); - } - - public void setUp() { - super.setUp(); - } - - public void tearDown() { - super.tearDown(); - } - - /** - * Ensure that the getMultipartRequestHandler cannot be seen in - * a subclass of ActionForm. - * - * The purpose of this test is to ensure that Bug #38534 is fixed. - * - */ - public void testMultipartVisibility() throws Exception { - - String mockMappingName = "mockMapping"; - String stringValue = "Test"; - - MockFormBean mockForm = new MockFormBean(); - ActionMapping mapping = new ActionMapping(); - mapping.setName(mockMappingName); - - // Set up the mock HttpServletRequest - request.setMethod("POST"); - request.setContentType("multipart/form-data"); - request.setAttribute(Globals.MULTIPART_KEY, MockMultipartRequestHandler.class.getName()); - request.setAttribute(Globals.MAPPING_KEY, mapping); - - request.addParameter("stringProperty", stringValue); - request.addParameter("multipartRequestHandler.mapping.name", "Bad"); - - // Check the Mapping/ActionForm before - assertNull("Multipart Handler already set", mockForm.getMultipartRequestHandler()); - assertEquals("Mapping name not set correctly", mockMappingName, mapping.getName()); - - // Try to populate - try { - RequestUtils.populate(mockForm, request); - } catch(ServletException se) { - // Expected BeanUtils.populate() to throw a NestedNullException - // which gets wrapped in RequestUtils in a ServletException - assertEquals("Unexpected type of Exception thrown", "BeanUtils.populate", se.getMessage()); - } - - // Check the Mapping/ActionForm after - assertNotNull("Multipart Handler Missing", mockForm.getMultipartRequestHandler()); - assertEquals("Mapping name has been modified", mockMappingName, mapping.getName()); - - } - -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/validator/PojoBean.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/validator/PojoBean.java deleted file mode 100644 index 4a886c87523..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/validator/PojoBean.java +++ /dev/null @@ -1,195 +0,0 @@ -/* - * $Id: PojoBean.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.validator; - -import java.util.HashMap; -import java.util.Map; - -/** - * Test Bean class. - */ -public class PojoBean { - protected String stringValue1; - protected String stringValue2; - protected int intValue1; - protected int intValue2; - protected Integer integerValue1; - protected Integer integerValue2; - protected PojoBean[] beans; - protected Map map = new HashMap(); - - /** - * Default Constructor - */ - public PojoBean() { - } - - /** - * Construct Bean with a pair of String values. - */ - public PojoBean(String stringValue1, String stringValue2) { - setStringValue1(stringValue1); - setStringValue2(stringValue2); - } - - /** - * Construct Bean with a pair of integer values. - */ - public PojoBean(int intValue1, int intValue2) { - setIntValue1(intValue1); - setIntValue2(intValue2); - setIntegerValue1(new Integer(intValue1)); - setIntegerValue2(new Integer(intValue2)); - } - - /** - * Set the stringValue1. - */ - public void setStringValue1(String stringValue1) { - this.stringValue1 = stringValue1; - } - - /** - * Return stringValue1. - */ - public String getStringValue1() { - return stringValue1; - } - - /** - * Set the stringValue2. - */ - public void setStringValue2(String stringValue2) { - this.stringValue2 = stringValue2; - } - - /** - * Return stringValue2. - */ - public String getStringValue2() { - return stringValue2; - } - - /** - * Set the intValue1. - */ - public void setIntValue1(int intValue1) { - this.intValue1 = intValue1; - } - - /** - * Return intValue1. - */ - public int getIntValue1() { - return intValue1; - } - - /** - * Set the intValue2. - */ - public void setIntValue2(int intValue2) { - this.intValue2 = intValue2; - } - - /** - * Return intValue2. - */ - public int getIntValue2() { - return intValue2; - } - - /** - * Set the integerValue1. - */ - public void setIntegerValue1(Integer integerValue1) { - this.integerValue1 = integerValue1; - } - - /** - * Return integerValue1. - */ - public Integer getIntegerValue1() { - return integerValue1; - } - - /** - * Set the integerValue2. - */ - public void setIntegerValue2(Integer integerValue2) { - this.integerValue2 = integerValue2; - } - - /** - * Return integerValue2. - */ - public Integer getIntegerValue2() { - return integerValue2; - } - - /** - * Set the PojoBean[]. - */ - public void setBeans(PojoBean[] beans) { - this.beans = beans; - } - - /** - * Return PojoBean[]. - */ - public PojoBean[] getBeans() { - return beans; - } - - /** - * Return and indexed Bean - */ - public PojoBean getBean(int index) { - return beans[index]; - } - - /** - * Return the Map - */ - public Object getMap() { - return map; - } - - /** - * Return the Map - */ - public void setMap(Map map) { - this.map = map; - } - - /** - * Set a Mapped property - */ - public void setMapped(String key, Object value) { - map.put(key, value); - } - - /** - * Set a Mapped property - */ - public Object getMapped(String key) { - return map.get(key); - } -} diff --git a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/validator/TestValidWhen.java b/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/validator/TestValidWhen.java deleted file mode 100644 index 176bce65d4a..00000000000 --- a/tests/projects/struts-1.3.9-diet/core/src/test/java/org/apache/struts/validator/TestValidWhen.java +++ /dev/null @@ -1,309 +0,0 @@ -/* - * $Id: TestValidWhen.java 504715 2007-02-07 22:10:26Z bayard $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.validator; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.validator.util.ValidatorUtils; -import org.apache.struts.validator.validwhen.ValidWhenLexer; -import org.apache.struts.validator.validwhen.ValidWhenParser; - -import java.io.StringReader; - -/** - * Unit tests for the ValidWhen Parser/Lexer. - */ -public class TestValidWhen extends TestCase { - /** - * All logging goes through this logger - */ - private static Log log = LogFactory.getLog(TestValidWhen.class); - protected PojoBean testBean; - - /** - * Defines the testcase name for JUnit. - * - * @param theName the testcase's name. - */ - public TestValidWhen(String theName) { - super(theName); - } - - /** - * Start the tests. - * - * @param theArgs the arguments. Not used - */ - public static void main(String[] theArgs) { - junit.awtui.TestRunner.main(new String[] { TestValidWhen.class.getName() }); - } - - /** - * @return a test suite (TestSuite) that includes all methods - * starting with "test" - */ - public static Test suite() { - // All methods starting with "test" will be executed in the test suite. - return new TestSuite(TestValidWhen.class); - } - - public void setUp() { - testBean = new PojoBean(123, 789); - testBean.setStringValue1("ABC"); - testBean.setStringValue2(null); - testBean.setBeans(new PojoBean[] { - new PojoBean(11, 12), new PojoBean(21, 22), new PojoBean(31, 42), - new PojoBean(41, 52), new PojoBean(51, 62) - }); - testBean.setMapped("testKey", "mappedValue"); - } - - public void tearDown() { - testBean = null; - } - - /** - * Test Operators. - */ - public void testProperty() { - // *this* - doParse("(*this* == 123)", testBean, 0, "intValue1", true); - - // Named property - doParse("(intValue2 == 789)", testBean, 0, "intValue1", true); - - // Indexed Property - doParse("(beans[].intValue1 == 21)", testBean, 1, "intValue1", true); - doParse("(beans[1].intValue1 == 21)", testBean, 4, "intValue1", true); - - // Mapped Property - *** NOT SUPPORTED *** - // doParse("(mapped(mappedValue) == 'testKey')", testBean , 0, "mappedValue", true); - } - - /** - * Test Operators. - */ - public void testOperators() { - // Equal - doParse("(*this* == 123)", testBean, 0, "intValue1", true); - - // Not Equal - doParse("(*this* != 456)", testBean, 0, "intValue1", true); - - // Less Than - doParse("(*this* < 456)", testBean, 0, "intValue1", true); - - // Greater Than - doParse("(*this* > 100)", testBean, 0, "intValue1", true); - - // Less Than Equal - doParse("(*this* <= 123)", testBean, 0, "intValue1", true); - - // Greater Than Equal - doParse("(*this* >= 123)", testBean, 0, "intValue1", true); - } - - /** - * Test String values. - */ - public void testString() { - doParse("(*this* != '--')", "XX", 0, "stringValue1", true); - doParse("(*this* == '--')", "--", 0, "stringValue1", true); - - String testValue = "dsgUOLMdLsdL"; - - // single quote - doParse("(*this* == '" + testValue + "')", testValue, 0, - "stringValue1", true); - - // double quote - doParse("(*this* == \"" + testValue + "\")", testValue, 0, - "stringValue1", true); - - // obscure characters - doParse("(*this* == \":\")", ":", 0, - "stringValue1", true); - doParse("(*this* == \"foo:bar\")", "foo:bar", 0, - "stringValue1", true); - } - - /** - * Test Numeric values. - */ - public void testNumeric() { - // Test Zero - PojoBean numberBean = new PojoBean(0, -50); - - doParse("(intValue1 == 0)", numberBean, 0, "intValue1", true); - doParse("(intValue2 != 0)", numberBean, 0, "intValue2", true); - doParse("(integerValue1 == 0)", numberBean, 0, "integerValue1", true); - doParse("(integerValue2 != 0)", numberBean, 0, "integerValue2", true); - - // int - doParse("(intValue1 == 123)", testBean, 0, "intValue1", true); - - // Integer - doParse("(integerValue1 == 123)", testBean, 0, "integerValue1", true); - - // Negative Numbers - doParse("((intValue2 < -10) and (intValue2 > -60))", numberBean, 0, - "intValue2", true); - doParse("((integerValue2 < -10) and (integerValue2 > -60))", - numberBean, 0, "integerValue2", true); - - // Hex - doParse("(integerValue1 == 0x7B)", testBean, 0, "integerValue1", true); - - // Octal - doParse("(integerValue1 == 0173)", testBean, 0, "integerValue1", true); - - // Test 'String' numbers - PojoBean stringBean = new PojoBean("11", "2"); - - doParse("(stringValue1 > stringValue2)", stringBean, 0, "stringValue1", - true); - doParse("(stringValue1 < stringValue2)", stringBean, 0, "stringValue1", - false); - } - - /** - * Test Null. - */ - public void testNull() { - // Not Null - doParse("(*this* != null)", testBean, 0, "stringValue1", true); - - // Null - doParse("(*this* == null)", testBean, 0, "stringValue2", true); - } - - /** - * Test Joined expressions ('and' or 'or') - */ - public void testJoined() { - // Join with 'or' - doParse("((*this* == 'ABC') or (stringValue2 == null))", testBean, 0, - "stringValue1", true); - doParse("((*this* != 'ABC') or (stringValue2 == null))", testBean, 0, - "stringValue1", true); - doParse("((*this* == 'ABC') or (stringValue2 != null))", testBean, 0, - "stringValue1", true); - doParse("((*this* != 'ABC') or (stringValue2 != null))", testBean, 0, - "stringValue1", false); - - // Join with 'and' - doParse("((*this* == 'ABC') and (stringValue2 == null))", testBean, 0, - "stringValue1", true); - doParse("((*this* != 'ABC') and (stringValue2 == null))", testBean, 0, - "stringValue1", false); - doParse("((*this* == 'ABC') and (stringValue2 != null))", testBean, 0, - "stringValue1", false); - doParse("((*this* != 'ABC') and (stringValue2 != null))", testBean, 0, - "stringValue1", false); - } - - /** - * Parse the expression and check that the expected result (either true or - * false) occurs - fail if an exception is thrown opr the wrong result - * occurs. - * - * @param test Test expression - * @param bean Test Bean - * @param index index value - * @param property Bean property - * @param expected Expected Result - */ - private void doParse(String test, Object bean, int index, String property, - boolean expected) { - boolean result = false; - - try { - result = doParse(test, bean, index, property); - } catch (Exception ex) { - log.error("Parsing " + test + " for property '" + property + "'", ex); - fail("Parsing " + test + " threw " + ex); - } - - if (expected) { - assertTrue(test + " didn't return TRUE for " + property, result); - } else { - assertFalse(test + " didn't return FALSE for " + property, result); - } - } - - /** - * Parse the expression and check that an Exception is throw. Failes if no - * expection is thrown. - * - * @param test Test expression - * @param bean Test Bean - * @param index index value - * @param property Bean property - */ - private void doParseFail(String test, Object bean, int index, - String property) { - try { - boolean result = doParse(test, bean, index, property); - - fail("Parsing " + test + " didn't throw exception as expected " - + result); - } catch (Exception expected) { - // ignore exception - expected result - } - } - - /** - * Parse the expression returning the result - * - * @param test Test expression - * @param bean Test Bean - * @param index index value - * @param property Bean property - */ - private boolean doParse(String test, Object bean, int index, String property) - throws Exception { - if (bean == null) { - throw new NullPointerException("Bean is null for property '" - + property + "'"); - } - - String value = - String.class.isInstance(bean) ? (String) bean - : ValidatorUtils.getValueAsString(bean, - property); - - ValidWhenLexer lexer = new ValidWhenLexer(new StringReader(test)); - - ValidWhenParser parser = new ValidWhenParser(lexer); - - parser.setForm(bean); - parser.setIndex(index); - parser.setValue(value); - - parser.expression(); - - return parser.getResult(); - } -} diff --git a/tests/projects/struts-1.3.9-diet/pom.xml b/tests/projects/struts-1.3.9-diet/pom.xml deleted file mode 100644 index b3ee7d7151e..00000000000 --- a/tests/projects/struts-1.3.9-diet/pom.xml +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - - org.apache.struts - struts-master - 4 - - - 4.0.0 - org.apache.struts - struts-parent - 1.3.9 - pom - Struts - http://struts.apache.org/ - Apache Struts - - 2000 - - - scm:svn:http://svn.apache.org/repos/asf/struts/struts1/trunk - scm:svn:https://svn.apache.org/repos/asf/struts/struts1/trunk - http://svn.apache.org/viewcvs.cgi/struts/struts1/trunk - - - - JIRA - http://issues.apache.org/struts/ - - - - - - - apache-site - scp://people.apache.org/www/struts.apache.org/1.x/ - - - - - - apps - - - apps - - - - apps - - - - itest - - - itest - - - - integration - - - - assembly - - - assembly - - - - assembly - - - - release - - - release - - - - - - org.apache.maven.plugins - maven-gpg-plugin - - - sign-artifacts - verify - - sign - - - - - - - - - - - core - - - taglib - - - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - - Apache Software Foundation - http://www.apache.org/ - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - 1.4 - 1.4 - - - - maven-site-plugin - 2.0-beta-4 - - - maven-source-plugin - 2.0.1 - - - maven-jar-plugin - 2.1 - - - - true - true - - - - - - net.sf.dtddoc - dtddoc-maven-plugin - 1.0.0 - - - net.sourceforge.maven-taglib - maven-taglib-plugin - 2.3 - - - - - - maven-antrun-plugin - false - 1.1 - - - copy-dtds - site - - - - - - - - - - run - - - - - - - install - - - - - - - org.apache.maven.plugins - maven-project-info-reports-plugin - - - maven-javadoc-plugin - 2.1 - - true - - - - maven-surefire-report-plugin - - - maven-checkstyle-plugin - - http://svn.apache.org/repos/asf/struts/maven/trunk/build/struts_checks.xml - - - - org.apache.maven.plugins - maven-jxr-plugin - - - maven-pmd-plugin - - - net.sf.dtddoc - dtddoc-maven-plugin - - - **/web-app* - - - - - - - - - - - apache.snapshots - Apache Maven Repository (Snapshots and Test Builds) - http://people.apache.org/maven-snapshot-repository - false - true - - - - diff --git a/tests/projects/struts-1.3.9-diet/taglib/pom.xml b/tests/projects/struts-1.3.9-diet/taglib/pom.xml deleted file mode 100644 index ab2bdbdcdec..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/pom.xml +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - org.apache.struts - struts-parent - 1.3.9 - - - 4.0.0 - org.apache.struts - struts-taglib - jar - Struts Taglib - http://struts.apache.org - - - scm:svn:http://svn.apache.org/repos/asf/struts/struts1/trunk/taglib/ - scm:svn:https://svn.apache.org/repos/asf/struts/struts1/trunk/taglib/ - http://svn.apache.org/repos/asf/struts/struts1/trunk/taglib/ - - - - - apache-site - scp://people.apache.org/www/struts.apache.org/1.x/struts-taglib - - - - - - - src/main/resources - - - src/main/java - - **/*.properties - - - - - - - src/test/java - - **/*.java - - - - - - - - - - junit - junit - 3.8.1 - test - - - - javax.servlet - servlet-api - 2.3 - provided - - - - org.apache.struts - struts-core - ${pom.version} - - - - - - - - net.sourceforge.maven-taglib - maven-taglib-plugin - - ${basedir}/src/main/resources/META-INF/tld - - - - - - - - pre-assembly - - - - org.apache.maven.plugins - maven-javadoc-plugin - - - attach-javadoc - jar - - - - - org.apache.maven.plugins - maven-source-plugin - - - attach-source - jar - - - - - - - - - - diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/LocalStrings.properties b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/LocalStrings.properties deleted file mode 100755 index c1729a57c5e..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/LocalStrings.properties +++ /dev/null @@ -1,30 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -actionErrors.errors=Cannot process ActionErrors instance of class {0} -actionMessages.errors=Cannot process ActionMessages instance of class {0} -computeURL.forward=Cannot retrieve ActionForward named {0} -computeURL.specifier=You must specify exactly one of "forward", "href", "page" or "action" -lookup.access=Invalid access looking up property: "{0}" of bean: "{1}" -lookup.argument=Invalid argument looking up property: "{0}" of bean: "{1}" -lookup.bean.any=Cannot find bean: "{0}" in any scope -lookup.bean=Cannot find bean: "{0}" in scope: "{1}" -lookup.method=No getter method for property: "{0}" of bean: "{1}" -lookup.scope=Invalid bean scope: "{0}" -lookup.target=Exception thrown by getter for property {0} of bean {1} -message.message=Missing message for key {0} in bundle {1} for locale {2} -message.bundle=Cannot find message resources under key {0} -parameters.multi=Cannot cast to Map for name={0} property={1} scope={2} -write.io=Input/output error: {0} \ No newline at end of file diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/LocalStrings_ja.properties b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/LocalStrings_ja.properties deleted file mode 100644 index d64ec22703f..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/LocalStrings_ja.properties +++ /dev/null @@ -1,30 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -actionErrors.errors=\u30AF\u30E9\u30B9{0}\u306EActionErrors\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u51E6\u7406\u3067\u304D\u307E\u305B\u3093 -actionMessages.errors=\u30AF\u30E9\u30B9{0}\u306EActionMessages\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u51E6\u7406\u3067\u304D\u307E\u305B\u3093 -computeURL.forward={0}\u3068\u3044\u3046\u540D\u524D\u306EActionForward\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 -computeURL.specifier="forward", "href","page","action" \u306E\u3046\u3061\u306E\u4E00\u3064\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 -lookup.access=Bean {1} \u306E \u30D7\u30ED\u30D1\u30C6\u30A3{0} \u306B\u5BFE\u3059\u308B\u53C2\u7167\u306F\u4E0D\u6B63\u306A\u30A2\u30AF\u30BB\u30B9\u3067\u3059 -lookup.argument=Bean {1} \u306E \u30D7\u30ED\u30D1\u30C6\u30A3{0} \u306B\u5BFE\u3059\u308B\u53C2\u7167\u306F\u4E0D\u6B63\u306A\u30A2\u30AF\u30BB\u30B9\u3067\u3059 -lookup.bean.any=\u3069\u306E\u30B9\u30B3\u30FC\u30D7\u306B\u3082Bean {0} \u304C\u3042\u308A\u307E\u305B\u3093 -lookup.bean=\u30B9\u30B3\u30FC\u30D7 {1} \u306BBean {0} \u304C\u3042\u308A\u307E\u305B\u3093 -lookup.method=Bean {1} \u306E\u30D7\u30ED\u30D1\u30C6\u30A3 {0} \u306B\u5BFE\u3059\u308B\u30B2\u30C3\u30BF\u30FC\u30E1\u30BD\u30C3\u30C9\u304C\u3042\u308A\u307E\u305B\u3093 -lookup.scope=\u30B9\u30B3\u30FC\u30D7 {0} \u306F\u7121\u52B9\u3067\u3059 -lookup.target=Bean {1} \u306E\u30D7\u30ED\u30D1\u30C6\u30A3 {0} \u306B\u5BFE\u3059\u308B\u30B2\u30C3\u30BF\u30FC\u30E1\u30BD\u30C3\u30C9\u3067\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F -message.message=\u30ED\u30B1\u30FC\u30EB {2} \u306E\u30D0\u30F3\u30C9\u30EB {1} \u306E\u30AD\u30FC {0} \u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 -message.bundle=\u30AD\u30FC {0} \u306B\u5BFE\u3059\u308B\u30E1\u30C3\u30BB\u30FC\u30B8\u30EA\u30BD\u30FC\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 -parameters.multi=name={0} property={1} scope={2} \u3092Map\u578B\u306B\u30AD\u30E3\u30B9\u30C8\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 -write.io=\u5165\u51FA\u529B\u30A8\u30E9\u30FC: {0} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/TagUtils.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/TagUtils.java deleted file mode 100644 index 7c44e60a50b..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/TagUtils.java +++ /dev/null @@ -1,1179 +0,0 @@ -/* - * $Id: TagUtils.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib; - -import org.apache.commons.beanutils.PropertyUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.Globals; -import org.apache.struts.action.ActionErrors; -import org.apache.struts.action.ActionMessage; -import org.apache.struts.action.ActionMessages; -import org.apache.struts.action.ActionServlet; -import org.apache.struts.config.ForwardConfig; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.taglib.html.Constants; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.ModuleUtils; -import org.apache.struts.util.RequestUtils; -import org.apache.struts.util.ResponseUtils; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.JspWriter; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.BodyContent; - -import java.io.IOException; - -import java.lang.reflect.InvocationTargetException; - -import java.net.MalformedURLException; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Locale; -import java.util.Map; - -/** - * Provides helper methods for JSP tags. - * - * @version $Rev: 471754 $ - * @since Struts 1.2 - */ -public class TagUtils { - /** - * The Singleton instance. - * @since 1.3.5 Changed to non-final so it may be overridden, use at your own risk (you've been warned!!) - */ - private static TagUtils instance = new TagUtils(); - - /** - * Commons logging instance. - */ - private static final Log log = LogFactory.getLog(TagUtils.class); - - /** - * The message resources for this package. TODO We need to move the - * relevant messages out of this properties file. - */ - private static final MessageResources messages = - MessageResources.getMessageResources( - "org.apache.struts.taglib.LocalStrings"); - - /** - * Maps lowercase JSP scope names to their PageContext integer constant - * values. - */ - private static final Map scopes = new HashMap(); - - /** - * Initialize the scope names map and the encode variable with the - * Java 1.4 method if available. - */ - static { - scopes.put("page", new Integer(PageContext.PAGE_SCOPE)); - scopes.put("request", new Integer(PageContext.REQUEST_SCOPE)); - scopes.put("session", new Integer(PageContext.SESSION_SCOPE)); - scopes.put("application", new Integer(PageContext.APPLICATION_SCOPE)); - } - - /** - * Constructor for TagUtils. - */ - protected TagUtils() { - super(); - } - - /** - * Returns the Singleton instance of TagUtils. - */ - public static TagUtils getInstance() { - return instance; - } - - /** - * Set the instance. - * This blatently violates the Singleton pattern, but then some say Singletons are an anti-pattern. - * @since 1.3.5 Changed to non-final and added setInstance() so TagUtils may be overridden, use at your own risk (you've been warned!!) - * @param instance The instance to set. - */ - public static void setInstance(TagUtils instance){ - TagUtils.instance = instance; - } - - /** - * Compute a set of query parameters that will be dynamically added to a - * generated URL. The returned Map is keyed by parameter name, and the - * values are either null (no value specified), a String (single value - * specified), or a String[] array (multiple values specified). Parameter - * names correspond to the corresponding attributes of the - * <html:link> tag. If no query parameters are - * identified, return null. - * - * @param pageContext PageContext we are operating in - * @param paramId Single-value request parameter name (if any) - * @param paramName Bean containing single-value parameter value - * @param paramProperty Property (of bean named by paramName - * containing single-value parameter value - * @param paramScope Scope containing bean named by paramName - * @param name Bean containing multi-value parameters Map (if - * any) - * @param property Property (of bean named by name - * containing multi-value parameters Map - * @param scope Scope containing bean named by name - * @param transaction Should we add our transaction control token? - * @return Map of query parameters - * @throws JspException if we cannot look up the required beans - * @throws JspException if a class cast exception occurs on a looked-up - * bean or property - */ - public Map computeParameters(PageContext pageContext, String paramId, - String paramName, String paramProperty, String paramScope, String name, - String property, String scope, boolean transaction) - throws JspException { - // Short circuit if no parameters are specified - if ((paramId == null) && (name == null) && !transaction) { - return (null); - } - - // Locate the Map containing our multi-value parameters map - Map map = null; - - try { - if (name != null) { - map = (Map) getInstance().lookup(pageContext, name, property, - scope); - } - - // @TODO - remove this - it is never thrown - // } catch (ClassCastException e) { - // saveException(pageContext, e); - // throw new JspException( - // messages.getMessage("parameters.multi", name, property, scope)); - } catch (JspException e) { - saveException(pageContext, e); - throw e; - } - - // Create a Map to contain our results from the multi-value parameters - Map results = null; - - if (map != null) { - results = new HashMap(map); - } else { - results = new HashMap(); - } - - // Add the single-value parameter (if any) - if ((paramId != null) && (paramName != null)) { - Object paramValue = null; - - try { - paramValue = - TagUtils.getInstance().lookup(pageContext, paramName, - paramProperty, paramScope); - } catch (JspException e) { - saveException(pageContext, e); - throw e; - } - - if (paramValue != null) { - String paramString = null; - - if (paramValue instanceof String) { - paramString = (String) paramValue; - } else { - paramString = paramValue.toString(); - } - - Object mapValue = results.get(paramId); - - if (mapValue == null) { - results.put(paramId, paramString); - } else if (mapValue instanceof String[]) { - String[] oldValues = (String[]) mapValue; - String[] newValues = new String[oldValues.length + 1]; - - System.arraycopy(oldValues, 0, newValues, 0, - oldValues.length); - newValues[oldValues.length] = paramString; - results.put(paramId, newValues); - } else { - String[] newValues = new String[2]; - - newValues[0] = mapValue.toString(); - newValues[1] = paramString; - results.put(paramId, newValues); - } - } - } - - // Add our transaction control token (if requested) - if (transaction) { - HttpSession session = pageContext.getSession(); - String token = null; - - if (session != null) { - token = - (String) session.getAttribute(Globals.TRANSACTION_TOKEN_KEY); - } - - if (token != null) { - results.put(Constants.TOKEN_KEY, token); - } - } - - // Return the completed Map - return (results); - } - - public String computeURL(PageContext pageContext, String forward, - String href, String page, String action, String module, Map params, - String anchor, boolean redirect) - throws MalformedURLException { - return this.computeURLWithCharEncoding(pageContext, forward, href, - page, action, module, params, anchor, redirect, false); - } - - /** - * Compute a hyperlink URL based on the forward, - * href, action or page parameter - * that is not null. The returned URL will have already been passed to - * response.encodeURL() for adding a session identifier. - * - * @param pageContext PageContext for the tag making this call - * @param forward Logical forward name for which to look up the - * context-relative URI (if specified) - * @param href URL to be utilized unmodified (if specified) - * @param page Module-relative page for which a URL should be - * created (if specified) - * @param action Logical action name for which to look up the - * context-relative URI (if specified) - * @param params Map of parameters to be dynamically included (if - * any) - * @param anchor Anchor to be dynamically included (if any) - * @param redirect Is this URL for a response.sendRedirect()? - * @return URL with session identifier - * @throws java.net.MalformedURLException if a URL cannot be created for - * the specified parameters - */ - public String computeURLWithCharEncoding(PageContext pageContext, - String forward, String href, String page, String action, String module, - Map params, String anchor, boolean redirect, boolean useLocalEncoding) - throws MalformedURLException { - return computeURLWithCharEncoding(pageContext, forward, href, page, - action, module, params, anchor, redirect, true, useLocalEncoding); - } - - public String computeURL(PageContext pageContext, String forward, - String href, String page, String action, String module, Map params, - String anchor, boolean redirect, boolean encodeSeparator) - throws MalformedURLException { - return computeURLWithCharEncoding(pageContext, forward, href, page, - action, module, params, anchor, redirect, encodeSeparator, false); - } - - /** - * Compute a hyperlink URL based on the forward, - * href, action or page parameter - * that is not null. The returned URL will have already been passed to - * response.encodeURL() for adding a session identifier. - * - * @param pageContext PageContext for the tag making this call - * @param forward Logical forward name for which to look up the - * context-relative URI (if specified) - * @param href URL to be utilized unmodified (if specified) - * @param page Module-relative page for which a URL should be - * created (if specified) - * @param action Logical action name for which to look up the - * context-relative URI (if specified) - * @param params Map of parameters to be dynamically included - * (if any) - * @param anchor Anchor to be dynamically included (if any) - * @param redirect Is this URL for a response.sendRedirect()? - * @param encodeSeparator This is only checked if redirect is set to - * false (never encoded for a redirect). If true, - * query string parameter separators are encoded - * as >amp;, else & is used. - * @param useLocalEncoding If set to true, urlencoding is done on the - * bytes of character encoding from - * ServletResponse#getCharacterEncoding. Use UTF-8 - * otherwise. - * @return URL with session identifier - * @throws java.net.MalformedURLException if a URL cannot be created for - * the specified parameters - */ - public String computeURLWithCharEncoding(PageContext pageContext, - String forward, String href, String page, String action, String module, - Map params, String anchor, boolean redirect, boolean encodeSeparator, - boolean useLocalEncoding) - throws MalformedURLException { - String charEncoding = "UTF-8"; - - if (useLocalEncoding) { - charEncoding = pageContext.getResponse().getCharacterEncoding(); - } - - // TODO All the computeURL() methods need refactoring! - // Validate that exactly one specifier was included - int n = 0; - - if (forward != null) { - n++; - } - - if (href != null) { - n++; - } - - if (page != null) { - n++; - } - - if (action != null) { - n++; - } - - if (n != 1) { - throw new MalformedURLException(messages.getMessage( - "computeURL.specifier")); - } - - // Look up the module configuration for this request - ModuleConfig moduleConfig = getModuleConfig(module, pageContext); - - // Calculate the appropriate URL - StringBuffer url = new StringBuffer(); - HttpServletRequest request = - (HttpServletRequest) pageContext.getRequest(); - - if (forward != null) { - ForwardConfig forwardConfig = - moduleConfig.findForwardConfig(forward); - - if (forwardConfig == null) { - throw new MalformedURLException(messages.getMessage( - "computeURL.forward", forward)); - } - - // **** removed - see bug 37817 **** - // if (forwardConfig.getRedirect()) { - // redirect = true; - // } - - if (forwardConfig.getPath().startsWith("/")) { - url.append(request.getContextPath()); - url.append(RequestUtils.forwardURL(request, forwardConfig, - moduleConfig)); - } else { - url.append(forwardConfig.getPath()); - } - } else if (href != null) { - url.append(href); - } else if (action != null) { - ActionServlet servlet = (ActionServlet) pageContext.getServletContext().getAttribute(Globals.ACTION_SERVLET_KEY); - String actionIdPath = RequestUtils.actionIdURL(action, moduleConfig, servlet); - if (actionIdPath != null) { - action = actionIdPath; - url.append(request.getContextPath()); - url.append(actionIdPath); - } else { - url.append(instance.getActionMappingURL(action, module, - pageContext, false)); - } - } else /* if (page != null) */ - { - url.append(request.getContextPath()); - url.append(this.pageURL(request, page, moduleConfig)); - } - - // Add anchor if requested (replacing any existing anchor) - if (anchor != null) { - String temp = url.toString(); - int hash = temp.indexOf('#'); - - if (hash >= 0) { - url.setLength(hash); - } - - url.append('#'); - url.append(this.encodeURL(anchor, charEncoding)); - } - - // Add dynamic parameters if requested - if ((params != null) && (params.size() > 0)) { - // Save any existing anchor - String temp = url.toString(); - int hash = temp.indexOf('#'); - - if (hash >= 0) { - anchor = temp.substring(hash + 1); - url.setLength(hash); - temp = url.toString(); - } else { - anchor = null; - } - - // Define the parameter separator - String separator = null; - - if (redirect) { - separator = "&"; - } else if (encodeSeparator) { - separator = "&"; - } else { - separator = "&"; - } - - // Add the required request parameters - boolean question = temp.indexOf('?') >= 0; - Iterator keys = params.keySet().iterator(); - - while (keys.hasNext()) { - String key = (String) keys.next(); - Object value = params.get(key); - - if (value == null) { - if (!question) { - url.append('?'); - question = true; - } else { - url.append(separator); - } - - url.append(this.encodeURL(key, charEncoding)); - url.append('='); // Interpret null as "no value" - } else if (value instanceof String) { - if (!question) { - url.append('?'); - question = true; - } else { - url.append(separator); - } - - url.append(this.encodeURL(key, charEncoding)); - url.append('='); - url.append(this.encodeURL((String) value, charEncoding)); - } else if (value instanceof String[]) { - String[] values = (String[]) value; - - for (int i = 0; i < values.length; i++) { - if (!question) { - url.append('?'); - question = true; - } else { - url.append(separator); - } - - url.append(this.encodeURL(key, charEncoding)); - url.append('='); - url.append(this.encodeURL(values[i], charEncoding)); - } - } else /* Convert other objects to a string */ - { - if (!question) { - url.append('?'); - question = true; - } else { - url.append(separator); - } - - url.append(this.encodeURL(key, charEncoding)); - url.append('='); - url.append(this.encodeURL(value.toString(), charEncoding)); - } - } - - // Re-add the saved anchor (if any) - if (anchor != null) { - url.append('#'); - url.append(this.encodeURL(anchor, charEncoding)); - } - } - - // Perform URL rewriting to include our session ID (if any) - // but only if url is not an external URL - if ((href == null) && (pageContext.getSession() != null)) { - HttpServletResponse response = - (HttpServletResponse) pageContext.getResponse(); - - if (redirect) { - return (response.encodeRedirectURL(url.toString())); - } - - return (response.encodeURL(url.toString())); - } - - return (url.toString()); - } - - /** - * URLencodes a string assuming the character encoding is UTF-8. - * - * @param url - * @return String The encoded url in UTF-8 - */ - public String encodeURL(String url) { - return encodeURL(url, "UTF-8"); - } - - /** - * Use the new URLEncoder.encode() method from Java 1.4 if available, else - * use the old deprecated version. This method uses reflection to find - * the appropriate method; if the reflection operations throw exceptions, - * this will return the url encoded with the old URLEncoder.encode() - * method. - * - * @param enc The character encoding the urlencode is performed on. - * @return String The encoded url. - */ - public String encodeURL(String url, String enc) { - return ResponseUtils.encodeURL(url, enc); - } - - /** - * Filter the specified string for characters that are senstive to HTML - * interpreters, returning the string with these characters replaced by - * the corresponding character entities. - * - * @param value The string to be filtered and returned - */ - public String filter(String value) { - return ResponseUtils.filter(value); - } - - /** - * Return the form action converted into an action mapping path. The - * value of the action property is manipulated as follows in - * computing the name of the requested mapping: - * - *
      - * - *
    • Any filename extension is removed (on the theory that extension - * mapping is being used to select the controller servlet).
    • - * - *
    • If the resulting value does not start with a slash, then a slash is - * prepended.
    • - * - *
    - */ - public String getActionMappingName(String action) { - String value = action; - int question = action.indexOf("?"); - - if (question >= 0) { - value = value.substring(0, question); - } - - int pound = value.indexOf("#"); - - if (pound >= 0) { - value = value.substring(0, pound); - } - - int slash = value.lastIndexOf("/"); - int period = value.lastIndexOf("."); - - if ((period >= 0) && (period > slash)) { - value = value.substring(0, period); - } - - return value.startsWith("/") ? value : ("/" + value); - } - - /** - * Return the form action converted into a server-relative URL. - */ - public String getActionMappingURL(String action, PageContext pageContext) { - return getActionMappingURL(action, null, pageContext, false); - } - - /** - * Return the form action converted into a server-relative URL. - */ - public String getActionMappingURL(String action, String module, - PageContext pageContext, boolean contextRelative) { - HttpServletRequest request = - (HttpServletRequest) pageContext.getRequest(); - - String contextPath = request.getContextPath(); - StringBuffer value = new StringBuffer(); - - // Avoid setting two slashes at the beginning of an action: - // the length of contextPath should be more than 1 - // in case of non-root context, otherwise length==1 (the slash) - if (contextPath.length() > 1) { - value.append(contextPath); - } - - ModuleConfig moduleConfig = getModuleConfig(module, pageContext); - - if ((moduleConfig != null) && (!contextRelative)) { - value.append(moduleConfig.getPrefix()); - } - - // Use our servlet mapping, if one is specified - String servletMapping = - (String) pageContext.getAttribute(Globals.SERVLET_KEY, - PageContext.APPLICATION_SCOPE); - - if (servletMapping != null) { - String queryString = null; - int question = action.indexOf("?"); - - if (question >= 0) { - queryString = action.substring(question); - } - - String actionMapping = getActionMappingName(action); - - if (servletMapping.startsWith("*.")) { - value.append(actionMapping); - value.append(servletMapping.substring(1)); - } else if (servletMapping.endsWith("/*")) { - value.append(servletMapping.substring(0, - servletMapping.length() - 2)); - value.append(actionMapping); - } else if (servletMapping.equals("/")) { - value.append(actionMapping); - } - - if (queryString != null) { - value.append(queryString); - } - } - // Otherwise, assume extension mapping is in use and extension is - // already included in the action property - else { - if (!action.startsWith("/")) { - value.append("/"); - } - - value.append(action); - } - - return value.toString(); - } - - /** - * Retrieves the value from request scope and if it isn't already an - * ActionMessages, some classes are converted to one. - * - * @param pageContext The PageContext for the current page - * @param paramName Key for parameter value - * @return ActionErrors in page context. - * @throws JspException - */ - public ActionMessages getActionMessages(PageContext pageContext, - String paramName) throws JspException { - ActionMessages am = new ActionMessages(); - - Object value = pageContext.findAttribute(paramName); - - if (value != null) { - try { - if (value instanceof String) { - am.add(ActionMessages.GLOBAL_MESSAGE, - new ActionMessage((String) value)); - } else if (value instanceof String[]) { - String[] keys = (String[]) value; - - for (int i = 0; i < keys.length; i++) { - am.add(ActionMessages.GLOBAL_MESSAGE, - new ActionMessage(keys[i])); - } - } else if (value instanceof ActionErrors) { - ActionMessages m = (ActionMessages) value; - - am.add(m); - } else if (value instanceof ActionMessages) { - am = (ActionMessages) value; - } else { - throw new JspException(messages.getMessage( - "actionMessages.errors", value.getClass().getName())); - } - } catch (JspException e) { - throw e; - } catch (Exception e) { - log.warn("Unable to retieve ActionMessage for paramName : " - + paramName, e); - } - } - - return am; - } - - /** - * Return the default ModuleConfig object if it exists, null if - * otherwise. - * - * @param pageContext The page context. - * @return the ModuleConfig object - */ - public ModuleConfig getModuleConfig(PageContext pageContext) { - return getModuleConfig(null, pageContext); - } - - /** - * Return the specified ModuleConfig object for the given prefix if it - * exists, otherwise a NullPointerException will be thrown. - * - * @param module The module prefix - * @param pageContext The page context. - * @return the ModuleConfig object - * @throws NullPointerException Thrown when module cannot be found - */ - public ModuleConfig getModuleConfig(String module, PageContext pageContext) { - ModuleConfig config = - ModuleUtils.getInstance().getModuleConfig(module, - (HttpServletRequest) pageContext.getRequest(), - pageContext.getServletContext()); - - // ModuleConfig not found - if (config == null) { - throw new NullPointerException("Module '" + module + "' not found."); - } - - return config; - } - - /** - * Converts the scope name into its corresponding PageContext constant - * value. - * - * @param scopeName Can be "page", "request", "session", or "application" - * in any case. - * @return The constant representing the scope (ie. PageContext.REQUEST_SCOPE). - * @throws JspException if the scopeName is not a valid name. - */ - public int getScope(String scopeName) - throws JspException { - Integer scope = (Integer) scopes.get(scopeName.toLowerCase()); - - if (scope == null) { - throw new JspException(messages.getMessage("lookup.scope", scope)); - } - - return scope.intValue(); - } - - /** - * Look up and return current user locale, based on the specified - * parameters. - * - * @param pageContext The PageContext associated with this request - * @param locale Name of the session attribute for our user's Locale. - * If this is null, the default locale key - * is used for the lookup. - * @return current user locale - */ - public Locale getUserLocale(PageContext pageContext, String locale) { - return RequestUtils.getUserLocale((HttpServletRequest) pageContext - .getRequest(), locale); - } - - /** - * Returns true if the custom tags are in XHTML mode. - */ - public boolean isXhtml(PageContext pageContext) { - String xhtml = - (String) pageContext.getAttribute(Globals.XHTML_KEY, - PageContext.PAGE_SCOPE); - - return "true".equalsIgnoreCase(xhtml); - } - - /** - * Locate and return the specified bean, from an optionally specified - * scope, in the specified page context. If no such bean is found, return - * null instead. If an exception is thrown, it will have - * already been saved via a call to saveException(). - * - * @param pageContext Page context to be searched - * @param name Name of the bean to be retrieved - * @param scopeName Scope to be searched (page, request, session, - * application) or null to use - * findAttribute() instead - * @return JavaBean in the specified page context - * @throws JspException if an invalid scope name is requested - */ - public Object lookup(PageContext pageContext, String name, String scopeName) - throws JspException { - if (scopeName == null) { - return pageContext.findAttribute(name); - } - - try { - return pageContext.getAttribute(name, instance.getScope(scopeName)); - } catch (JspException e) { - saveException(pageContext, e); - throw e; - } - } - - /** - * Locate and return the specified property of the specified bean, from an - * optionally specified scope, in the specified page context. If an - * exception is thrown, it will have already been saved via a call to - * saveException(). - * - * @param pageContext Page context to be searched - * @param name Name of the bean to be retrieved - * @param property Name of the property to be retrieved, or - * null to retrieve the bean itself - * @param scope Scope to be searched (page, request, session, - * application) or null to use - * findAttribute() instead - * @return property of specified JavaBean - * @throws JspException if an invalid scope name is requested - * @throws JspException if the specified bean is not found - * @throws JspException if accessing this property causes an - * IllegalAccessException, IllegalArgumentException, - * InvocationTargetException, or NoSuchMethodException - */ - public Object lookup(PageContext pageContext, String name, String property, - String scope) throws JspException { - // Look up the requested bean, and return if requested - Object bean = lookup(pageContext, name, scope); - - if (bean == null) { - JspException e = null; - - if (scope == null) { - e = new JspException(messages.getMessage("lookup.bean.any", name)); - } else { - e = new JspException(messages.getMessage("lookup.bean", name, - scope)); - } - - saveException(pageContext, e); - throw e; - } - - if (property == null) { - return bean; - } - - // Locate and return the specified property - try { - return PropertyUtils.getProperty(bean, property); - } catch (IllegalAccessException e) { - saveException(pageContext, e); - throw new JspException(messages.getMessage("lookup.access", - property, name)); - } catch (IllegalArgumentException e) { - saveException(pageContext, e); - throw new JspException(messages.getMessage("lookup.argument", - property, name)); - } catch (InvocationTargetException e) { - Throwable t = e.getTargetException(); - - if (t == null) { - t = e; - } - - saveException(pageContext, t); - throw new JspException(messages.getMessage("lookup.target", - property, name)); - } catch (NoSuchMethodException e) { - saveException(pageContext, e); - - String beanName = name; - - // Name defaults to Contants.BEAN_KEY if no name is specified by - // an input tag. Thus lookup the bean under the key and use - // its class name for the exception message. - if (Constants.BEAN_KEY.equals(name)) { - Object obj = pageContext.findAttribute(Constants.BEAN_KEY); - - if (obj != null) { - beanName = obj.getClass().getName(); - } - } - - throw new JspException(messages.getMessage("lookup.method", - property, beanName)); - } - } - - /** - * Look up and return a message string, based on the specified - * parameters. - * - * @param pageContext The PageContext associated with this request - * @param bundle Name of the servlet context attribute for our - * message resources bundle - * @param locale Name of the session attribute for our user's Locale - * @param key Message key to be looked up and returned - * @return message string - * @throws JspException if a lookup error occurs (will have been saved in - * the request already) - */ - public String message(PageContext pageContext, String bundle, - String locale, String key) - throws JspException { - return message(pageContext, bundle, locale, key, null); - } - - /** - * Look up and return a message string, based on the specified - * parameters. - * - * @param pageContext The PageContext associated with this request - * @param bundle Name of the servlet context attribute for our - * message resources bundle - * @param locale Name of the session attribute for our user's Locale - * @param key Message key to be looked up and returned - * @param args Replacement parameters for this message - * @return message string - * @throws JspException if a lookup error occurs (will have been saved in - * the request already) - */ - public String message(PageContext pageContext, String bundle, - String locale, String key, Object[] args) - throws JspException { - MessageResources resources = - retrieveMessageResources(pageContext, bundle, false); - - Locale userLocale = getUserLocale(pageContext, locale); - String message = null; - - if (args == null) { - message = resources.getMessage(userLocale, key); - } else { - message = resources.getMessage(userLocale, key, args); - } - - if ((message == null) && log.isDebugEnabled()) { - // log missing key to ease debugging - log.debug(resources.getMessage("message.resources", key, bundle, - locale)); - } - - return message; - } - - /** - *

    Return the context-relative URL that corresponds to the specified - * page attribute value, calculated based on the - * pagePattern property of the current module's {@link - * ModuleConfig}.

    - * - * @param request The servlet request we are processing - * @param page The module-relative URL to be substituted in to the - * pagePattern pattern for the current module - * (MUST start with a slash) - * @return context-relative URL - */ - public String pageURL(HttpServletRequest request, String page, - ModuleConfig moduleConfig) { - StringBuffer sb = new StringBuffer(); - String pagePattern = - moduleConfig.getControllerConfig().getPagePattern(); - - if (pagePattern == null) { - sb.append(moduleConfig.getPrefix()); - sb.append(page); - } else { - boolean dollar = false; - - for (int i = 0; i < pagePattern.length(); i++) { - char ch = pagePattern.charAt(i); - - if (dollar) { - switch (ch) { - case 'M': - sb.append(moduleConfig.getPrefix()); - - break; - - case 'P': - sb.append(page); - - break; - - case '$': - sb.append('$'); - - break; - - default: - ; // Silently swallow - } - - dollar = false; - - continue; - } else if (ch == '$') { - dollar = true; - } else { - sb.append(ch); - } - } - } - - return sb.toString(); - } - - /** - * Return true if a message string for the specified message key is - * present for the specified Locale and bundle. - * - * @param pageContext The PageContext associated with this request - * @param bundle Name of the servlet context attribute for our - * message resources bundle - * @param locale Name of the session attribute for our user's Locale - * @param key Message key to be looked up and returned - * @return true if a message string for message key exists - * @throws JspException if a lookup error occurs (will have been saved in - * the request already) - */ - public boolean present(PageContext pageContext, String bundle, - String locale, String key) - throws JspException { - MessageResources resources = - retrieveMessageResources(pageContext, bundle, true); - - Locale userLocale = getUserLocale(pageContext, locale); - - return resources.isPresent(userLocale, key); - } - - /** - * Returns the appropriate MessageResources object for the current module - * and the given bundle. - * - * @param pageContext Search the context's scopes for the resources. - * @param bundle The bundle name to look for. If this is - * null, the default bundle name is - * used. - * @param checkPageScope Whether to check page scope - * @return MessageResources The bundle's resources stored in some scope. - * @throws JspException if the MessageResources object could not be - * found. - */ - public MessageResources retrieveMessageResources(PageContext pageContext, - String bundle, boolean checkPageScope) - throws JspException { - MessageResources resources = null; - - if (bundle == null) { - bundle = Globals.MESSAGES_KEY; - } - - if (checkPageScope) { - resources = - (MessageResources) pageContext.getAttribute(bundle, - PageContext.PAGE_SCOPE); - } - - if (resources == null) { - resources = - (MessageResources) pageContext.getAttribute(bundle, - PageContext.REQUEST_SCOPE); - } - - if (resources == null) { - ModuleConfig moduleConfig = getModuleConfig(pageContext); - - resources = - (MessageResources) pageContext.getAttribute(bundle - + moduleConfig.getPrefix(), PageContext.APPLICATION_SCOPE); - } - - if (resources == null) { - resources = - (MessageResources) pageContext.getAttribute(bundle, - PageContext.APPLICATION_SCOPE); - } - - if (resources == null) { - JspException e = - new JspException(messages.getMessage("message.bundle", bundle)); - - saveException(pageContext, e); - throw e; - } - - return resources; - } - - /** - * Save the specified exception as a request attribute for later use. - * - * @param pageContext The PageContext for the current page - * @param exception The exception to be saved - */ - public void saveException(PageContext pageContext, Throwable exception) { - pageContext.setAttribute(Globals.EXCEPTION_KEY, exception, - PageContext.REQUEST_SCOPE); - } - - /** - * Write the specified text as the response to the writer associated with - * this page. WARNING - If you are writing body content - * from the doAfterBody() method of a custom tag class that - * implements BodyTag, you should be calling - * writePrevious() instead. - * - * @param pageContext The PageContext object for this page - * @param text The text to be written - * @throws JspException if an input/output error occurs (already saved) - */ - public void write(PageContext pageContext, String text) - throws JspException { - JspWriter writer = pageContext.getOut(); - - try { - writer.print(text); - } catch (IOException e) { - saveException(pageContext, e); - throw new JspException(messages.getMessage("write.io", e.toString())); - } - } - - /** - * Write the specified text as the response to the writer associated with - * the body content for the tag within which we are currently nested. - * - * @param pageContext The PageContext object for this page - * @param text The text to be written - * @throws JspException if an input/output error occurs (already saved) - */ - public void writePrevious(PageContext pageContext, String text) - throws JspException { - JspWriter writer = pageContext.getOut(); - - if (writer instanceof BodyContent) { - writer = ((BodyContent) writer).getEnclosingWriter(); - } - - try { - writer.print(text); - } catch (IOException e) { - saveException(pageContext, e); - throw new JspException(messages.getMessage("write.io", e.toString())); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/CookieTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/CookieTag.java deleted file mode 100644 index 66198db74f2..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/CookieTag.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * $Id: CookieTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; - -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.tagext.TagSupport; - -import java.util.ArrayList; - -/** - * Define a scripting variable based on the value(s) of the specified cookie - * received with this request. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class CookieTag extends TagSupport { - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources( - "org.apache.struts.taglib.bean.LocalStrings"); - - // ------------------------------------------------------------- Properties - - /** - * The name of the scripting variable that will be exposed as a page scope - * attribute. - */ - protected String id = null; - - /** - * Return an array of Cookies if multiple is non-null. - */ - protected String multiple = null; - - /** - * The name of the cookie whose value is to be exposed. - */ - protected String name = null; - - /** - * The default value to return if no cookie of the specified name is - * found. - */ - protected String value = null; - - public String getId() { - return (this.id); - } - - public void setId(String id) { - this.id = id; - } - - public String getMultiple() { - return (this.multiple); - } - - public void setMultiple(String multiple) { - this.multiple = multiple; - } - - public String getName() { - return (this.name); - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return (this.value); - } - - public void setValue(String value) { - this.value = value; - } - - // --------------------------------------------------------- Public Methods - - /** - * Retrieve the required property and expose it as a scripting variable. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - // Retrieve the required cookie value(s) - ArrayList values = new ArrayList(); - Cookie[] cookies = - ((HttpServletRequest) pageContext.getRequest()).getCookies(); - - if (cookies == null) { - cookies = new Cookie[0]; - } - - for (int i = 0; i < cookies.length; i++) { - if (name.equals(cookies[i].getName())) { - values.add(cookies[i]); - } - } - - if ((values.size() < 1) && (value != null)) { - values.add(new Cookie(name, value)); - } - - if (values.size() < 1) { - JspException e = - new JspException(messages.getMessage("cookie.get", name)); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - // Expose an appropriate variable containing these results - if (multiple == null) { - Cookie cookie = (Cookie) values.get(0); - - pageContext.setAttribute(id, cookie); - } else { - cookies = new Cookie[values.size()]; - pageContext.setAttribute(id, values.toArray(cookies)); - } - - return (SKIP_BODY); - } - - /** - * Release all allocated resources. - */ - public void release() { - super.release(); - id = null; - multiple = null; - name = null; - value = null; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/CookieTei.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/CookieTei.java deleted file mode 100644 index 54b06084485..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/CookieTei.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $Id: CookieTei.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import javax.servlet.jsp.tagext.TagData; -import javax.servlet.jsp.tagext.TagExtraInfo; -import javax.servlet.jsp.tagext.VariableInfo; - -/** - * Implementation of TagExtraInfo for the cookie tag, - * identifying the scripting object(s) to be made visible. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class CookieTei extends TagExtraInfo { - /** - * Return information about the scripting variables to be created. - */ - public VariableInfo[] getVariableInfo(TagData data) { - String className = null; - - if (data.getAttribute("multiple") == null) { - className = "javax.servlet.http.Cookie"; - } else { - className = "javax.servlet.http.Cookie[]"; - } - - return new VariableInfo[] { - new VariableInfo(data.getAttributeString("id"), className, true, - VariableInfo.AT_BEGIN) - }; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/DefineTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/DefineTag.java deleted file mode 100644 index a0369f1e81e..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/DefineTag.java +++ /dev/null @@ -1,266 +0,0 @@ -/* - * $Id: DefineTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.BodyTagSupport; - -/** - * Define a scripting variable based on the value(s) of the specified bean - * property. - * - * @version $Rev: 471754 $ $Date: 2005-06-15 12:16:32 -0400 (Wed, 15 Jun 2005) - * $ - */ -public class DefineTag extends BodyTagSupport { - /** - * Commons logging instance. - */ - private static final Log log = LogFactory.getLog(DefineTag.class); - - // ---------------------------------------------------- Protected variables - - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources( - "org.apache.struts.taglib.bean.LocalStrings"); - - /** - * The body content of this tag (if any). - */ - protected String body = null; - - // ------------------------------------------------------------- Properties - - /** - * The name of the scripting variable that will be exposed as a page scope - * attribute. - */ - protected String id = null; - - /** - * The name of the bean owning the property to be exposed. - */ - protected String name = null; - - /** - * The name of the property to be retrieved. - */ - protected String property = null; - - /** - * The scope within which to search for the specified bean. - */ - protected String scope = null; - - /** - * The scope within which the newly defined bean will be creatd. - */ - protected String toScope = null; - - /** - * The fully qualified Java class name of the value to be exposed. - */ - protected String type = null; - - /** - * The (String) value to which the defined bean will be set. - */ - protected String value = null; - - public String getId() { - return (this.id); - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return (this.name); - } - - public void setName(String name) { - this.name = name; - } - - public String getProperty() { - return (this.property); - } - - public void setProperty(String property) { - this.property = property; - } - - public String getScope() { - return (this.scope); - } - - public void setScope(String scope) { - this.scope = scope; - } - - public String getToScope() { - return (this.toScope); - } - - public void setToScope(String toScope) { - this.toScope = toScope; - } - - public String getType() { - return (this.type); - } - - public void setType(String type) { - this.type = type; - } - - public String getValue() { - return (this.value); - } - - public void setValue(String value) { - this.value = value; - } - - // --------------------------------------------------------- Public Methods - - /** - * Check if we need to evaluate the body of the tag - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - return (EVAL_BODY_TAG); - } - - /** - * Save the body content of this tag (if any), or throw a JspException if - * the value was already defined. - * - * @throws JspException if value was defined by an attribute - */ - public int doAfterBody() throws JspException { - if (bodyContent != null) { - body = bodyContent.getString(); - - if (body != null) { - body = body.trim(); - } - - if (body.length() < 1) { - body = null; - } - } - - return (SKIP_BODY); - } - - /** - * Retrieve the required property and expose it as a scripting variable. - * - * @throws JspException if a JSP exception has occurred - */ - public int doEndTag() throws JspException { - // Enforce restriction on ways to declare the new value - int n = 0; - - if (this.body != null) { - n++; - } - - if (this.name != null) { - n++; - } - - if (this.value != null) { - n++; - } - - if (n > 1) { - JspException e = - new JspException(messages.getMessage("define.value", id)); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - // Retrieve the required property value - Object value = this.value; - - if ((value == null) && (name != null)) { - value = - TagUtils.getInstance().lookup(pageContext, name, property, scope); - } - - if ((value == null) && (body != null)) { - value = body; - } - - if (value == null) { - JspException e = - new JspException(messages.getMessage("define.null", id)); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - // Expose this value as a scripting variable - int inScope = PageContext.PAGE_SCOPE; - - try { - if (toScope != null) { - inScope = TagUtils.getInstance().getScope(toScope); - } - } catch (JspException e) { - log.warn("toScope was invalid name so we default to PAGE_SCOPE", e); - } - - pageContext.setAttribute(id, value, inScope); - - // Continue processing this page - return (EVAL_PAGE); - } - - /** - * Release all allocated resources. - */ - public void release() { - super.release(); - body = null; - id = null; - name = null; - property = null; - scope = null; - toScope = "page"; - type = null; - value = null; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/DefineTei.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/DefineTei.java deleted file mode 100644 index 4bfe9abb3c0..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/DefineTei.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * $Id: DefineTei.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import javax.servlet.jsp.tagext.TagData; -import javax.servlet.jsp.tagext.TagExtraInfo; -import javax.servlet.jsp.tagext.VariableInfo; - -/** - * Implementation of TagExtraInfo for the define tag, - * identifying the scripting object(s) to be made visible. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class DefineTei extends TagExtraInfo { - /** - * Return information about the scripting variables to be created. - */ - public VariableInfo[] getVariableInfo(TagData data) { - String type = (String) data.getAttribute("type"); - Object name = data.getAttribute("name"); - Object value = data.getAttribute("value"); - - if (type == null) { - if ((value != null) || (name == null)) { - type = "java.lang.String"; - } else { - type = "java.lang.Object"; - } - } - - return new VariableInfo[] { - new VariableInfo(data.getAttributeString("id"), type, true, - VariableInfo.AT_END) - }; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/HeaderTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/HeaderTag.java deleted file mode 100644 index a90ba88bcbd..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/HeaderTag.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * $Id: HeaderTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.tagext.TagSupport; - -import java.util.ArrayList; -import java.util.Enumeration; - -/** - * Define a scripting variable based on the value(s) of the specified header - * received with this request. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class HeaderTag extends TagSupport { - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources( - "org.apache.struts.taglib.bean.LocalStrings"); - - // ------------------------------------------------------------- Properties - - /** - * The name of the scripting variable that will be exposed as a page scope - * attribute. - */ - protected String id = null; - - /** - * Return an array of header values if multiple is non-null. - */ - protected String multiple = null; - - /** - * The name of the header whose value is to be exposed. - */ - protected String name = null; - - /** - * The default value to return if no header of the specified name is - * found. - */ - protected String value = null; - - public String getId() { - return (this.id); - } - - public void setId(String id) { - this.id = id; - } - - public String getMultiple() { - return (this.multiple); - } - - public void setMultiple(String multiple) { - this.multiple = multiple; - } - - public String getName() { - return (this.name); - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return (this.value); - } - - public void setValue(String value) { - this.value = value; - } - - // --------------------------------------------------------- Public Methods - - /** - * Retrieve the required property and expose it as a scripting variable. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - if (this.multiple == null) { - this.handleSingleHeader(); - } else { - this.handleMultipleHeaders(); - } - - return SKIP_BODY; - } - - /** - * Expose an array of header values. - * - * @throws JspException - * @since Struts 1.2 - */ - protected void handleMultipleHeaders() - throws JspException { - ArrayList values = new ArrayList(); - Enumeration items = - ((HttpServletRequest) pageContext.getRequest()).getHeaders(name); - - while (items.hasMoreElements()) { - values.add(items.nextElement()); - } - - if (values.isEmpty() && (this.value != null)) { - values.add(this.value); - } - - String[] headers = new String[values.size()]; - - if (headers.length == 0) { - JspException e = - new JspException(messages.getMessage("header.get", name)); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - pageContext.setAttribute(id, values.toArray(headers)); - } - - /** - * Expose a single header value. - * - * @throws JspException - * @since Struts 1.2 - */ - protected void handleSingleHeader() - throws JspException { - String value = - ((HttpServletRequest) pageContext.getRequest()).getHeader(name); - - if ((value == null) && (this.value != null)) { - value = this.value; - } - - if (value == null) { - JspException e = - new JspException(messages.getMessage("header.get", name)); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - pageContext.setAttribute(id, value); - } - - /** - * Release all allocated resources. - */ - public void release() { - super.release(); - id = null; - multiple = null; - name = null; - value = null; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/HeaderTei.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/HeaderTei.java deleted file mode 100644 index 4b27be53de0..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/HeaderTei.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $Id: HeaderTei.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import javax.servlet.jsp.tagext.TagData; -import javax.servlet.jsp.tagext.TagExtraInfo; -import javax.servlet.jsp.tagext.VariableInfo; - -/** - * Implementation of TagExtraInfo for the header tag, - * identifying the scripting object(s) to be made visible. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class HeaderTei extends TagExtraInfo { - /** - * Return information about the scripting variables to be created. - */ - public VariableInfo[] getVariableInfo(TagData data) { - String className = null; - - if (data.getAttribute("multiple") == null) { - className = "java.lang.String"; - } else { - className = "java.lang.String[]"; - } - - return new VariableInfo[] { - new VariableInfo(data.getAttributeString("id"), className, true, - VariableInfo.AT_BEGIN) - }; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/IncludeTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/IncludeTag.java deleted file mode 100644 index 02c82bb0f5d..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/IncludeTag.java +++ /dev/null @@ -1,285 +0,0 @@ -/* - * $Id: IncludeTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.RequestUtils; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.tagext.TagSupport; - -import java.io.BufferedInputStream; -import java.io.InputStreamReader; - -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLConnection; - -import java.util.Map; - -/** - * Define the contents of a specified intra-application request as a page - * scope attribute of type java.lang.String. If the current - * request is part of a session, the session identifier will be included in - * the generated request, so it will be part of the same session.

    - * FIXME: In a servlet 2.3 environment, we can use a wrapped - * response passed to RequestDispatcher.include(). - * - * @version $Rev: 471754 $ $Date: 2005-08-21 19:08:45 -0400 (Sun, 21 Aug 2005) - * $ - */ -public class IncludeTag extends TagSupport { - // ------------------------------------------------------------- Properties - - /** - * Buffer size to use when reading the input stream. - */ - protected static final int BUFFER_SIZE = 256; - - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources( - "org.apache.struts.taglib.bean.LocalStrings"); - - /** - * The anchor to be added to the end of the generated hyperlink. - */ - protected String anchor = null; - - /** - * The name of the global ActionForward that contains a path - * to our requested resource. - */ - protected String forward = null; - - /** - * The absolute URL to the resource to be included. - */ - protected String href = null; - - /** - * The name of the scripting variable that will be exposed as a page scope - * attribute. - */ - protected String id = null; - - /** - * The context-relative URI of the page or servlet to be included. - */ - protected String page = null; - - /** - * Include transaction token (if any) in the hyperlink? - */ - protected boolean transaction = false; - protected boolean useLocalEncoding = false; - - public String getAnchor() { - return (this.anchor); - } - - public void setAnchor(String anchor) { - this.anchor = anchor; - } - - public String getForward() { - return (this.forward); - } - - public void setForward(String forward) { - this.forward = forward; - } - - public String getHref() { - return (this.href); - } - - public void setHref(String href) { - this.href = href; - } - - public String getId() { - return (this.id); - } - - public void setId(String id) { - this.id = id; - } - - public String getPage() { - return (this.page); - } - - public void setPage(String page) { - this.page = page; - } - - public boolean getTransaction() { - return (this.transaction); - } - - public void setTransaction(boolean transaction) { - this.transaction = transaction; - } - - public boolean isUseLocalEncoding() { - return useLocalEncoding; - } - - public void setUseLocalEncoding(boolean b) { - useLocalEncoding = b; - } - - // --------------------------------------------------------- Public Methods - - /** - * Define the contents returned for the specified resource as a page scope - * attribute. - * - * @throws JspException if a JSP error occurs - */ - public int doStartTag() throws JspException { - // Set up a URLConnection to read the requested resource - Map params = - TagUtils.getInstance().computeParameters(pageContext, null, null, - null, null, null, null, null, transaction); - - // FIXME - attributes - String urlString = null; - URL url = null; - - try { - urlString = - TagUtils.getInstance().computeURLWithCharEncoding(pageContext, - forward, href, page, null, null, params, anchor, false, - useLocalEncoding); - - if (urlString.indexOf(':') < 0) { - HttpServletRequest request = - (HttpServletRequest) pageContext.getRequest(); - - url = new URL(RequestUtils.requestURL(request), urlString); - } else { - url = new URL(urlString); - } - } catch (MalformedURLException e) { - TagUtils.getInstance().saveException(pageContext, e); - throw new JspException(messages.getMessage("include.url", - e.toString())); - } - - URLConnection conn = null; - - try { - // Set up the basic connection - conn = url.openConnection(); - conn.setAllowUserInteraction(false); - conn.setDoInput(true); - conn.setDoOutput(false); - - // Add a session id cookie if appropriate - HttpServletRequest request = - (HttpServletRequest) pageContext.getRequest(); - - addCookie(conn, urlString, request); - - // Connect to the requested resource - conn.connect(); - } catch (Exception e) { - TagUtils.getInstance().saveException(pageContext, e); - throw new JspException(messages.getMessage("include.open", - url.toString(), e.toString())); - } - - // Copy the contents of this URL - StringBuffer sb = new StringBuffer(); - - try { - BufferedInputStream is = - new BufferedInputStream(conn.getInputStream()); - InputStreamReader in = new InputStreamReader(is); // FIXME- encoding - char[] buffer = new char[BUFFER_SIZE]; - int n = 0; - - while (true) { - n = in.read(buffer); - - if (n < 1) { - break; - } - - sb.append(buffer, 0, n); - } - - in.close(); - } catch (Exception e) { - TagUtils.getInstance().saveException(pageContext, e); - throw new JspException(messages.getMessage("include.read", - url.toString(), e.toString())); - } - - // Define the retrieved content as a page scope attribute - pageContext.setAttribute(id, sb.toString()); - - // Skip any body of this tag - return (SKIP_BODY); - } - - /** - * Add a session id cookie if appropriate. Can be overloaded to support a - * cluster. - * - * @param conn - * @param urlString - * @param request - * @since Struts 1.2.0 - */ - protected void addCookie(URLConnection conn, String urlString, - HttpServletRequest request) { - if ((conn instanceof HttpURLConnection) - && urlString.startsWith(request.getContextPath()) - && (request.getRequestedSessionId() != null) - && request.isRequestedSessionIdFromCookie()) { - StringBuffer sb = new StringBuffer("JSESSIONID="); - - sb.append(request.getRequestedSessionId()); - conn.setRequestProperty("Cookie", sb.toString()); - } - } - - /** - * Release all allocated resources. - */ - public void release() { - super.release(); - anchor = null; - forward = null; - href = null; - id = null; - page = null; - transaction = false; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/IncludeTei.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/IncludeTei.java deleted file mode 100644 index 61cd6d8680c..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/IncludeTei.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: IncludeTei.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import javax.servlet.jsp.tagext.TagData; -import javax.servlet.jsp.tagext.TagExtraInfo; -import javax.servlet.jsp.tagext.VariableInfo; - -/** - * Implementation of TagExtraInfo for the include tag, - * identifying the scripting object(s) to be made visible. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class IncludeTei extends TagExtraInfo { - /** - * Return information about the scripting variables to be created. - */ - public VariableInfo[] getVariableInfo(TagData data) { - return new VariableInfo[] { - new VariableInfo(data.getAttributeString("id"), "java.lang.String", - true, VariableInfo.AT_BEGIN) - }; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/LocalStrings.properties b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/LocalStrings.properties deleted file mode 100644 index bfb58c937b7..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/LocalStrings.properties +++ /dev/null @@ -1,37 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -cookie.get=No cookie {0} was included in this request -define.null=Define tag cannot set a null value for bean with id: {0} -define.value=Define tag can contain only one of name attribute, value attribute, or body content for bean with id: {0} -header.get=No header {0} was included in this request -include.destination=You must specify exactly one of forward, href, or page -include.forward=Missing ActionForward entry {0} -include.forwards=Missing ActionForwards application scope bean -include.malformed=Cannot create URL for {0} -include.open=Exception opening resource {0}: {1} -include.read=Exception reading resource {0}: {1} -include.url=Cannot create include URL: {0} -message.message=Missing message for key {0} in bundle {1} for locale {2} -message.property=Property for message key must be a String -message.resources=Missing resources attribute {0} -page.selector=Invalid page context selector {0} -parameter.get=No parameter {0} was included in this request -resource.get=No resource {0} available in this application -size.collection=No valid collection specified for size tag -size.noCollectionOrName=Must specify either a collection or name attribute for size tag -struts.missing=No Struts internal object named {0} is available -struts.selector=You must specify exactly one of formBean, forward, or mapping -write.format=Wrong format string: '{0}' diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/LocalStrings_ja.properties b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/LocalStrings_ja.properties deleted file mode 100644 index b1629b2e6cb..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/LocalStrings_ja.properties +++ /dev/null @@ -1,37 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -cookie.get=\u30af\u30c3\u30ad\u30fc {0} \u306f\u3053\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u5185\u306b\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093 -define.null=define\u30bf\u30b0\u306b\u306fnull\u306e\u5024\u3092\u8a2d\u5b9a\u3067\u304d\u307e\u305b\u3093 -define.value=define\u30bf\u30b0\u306b\u306fname\u5c5e\u6027\u3001value\u5c5e\u6027\u3001body\u30b3\u30f3\u30c6\u30f3\u30c8\u306e\u3044\u305a\u308c\u304b\u4e00\u3064\u3060\u3051\u3092\u542b\u3080\u3053\u3068\u304c\u51fa\u6765\u307e\u3059 -header.get=\u30d8\u30c3\u30c0 {0} \u306f\u3053\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u5185\u306b\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093 -include.destination=forward\u3001href\u3001page\u306E\u3044\u305A\u308C\u304B\u4E00\u3064\u3092\u6307\u5B9A\u3057\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093 -include.forward=\u30a2\u30af\u30b7\u30e7\u30f3\u30d5\u30a9\u30ef\u30fc\u30c9 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093 -include.forwards=ActionForwards\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b9\u30b3\u30fc\u30d7bean\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093 -include.malformed={0} \u306b\u5bfe\u5fdc\u3059\u308bURL\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u305b\u3093 -include.open=\u30ea\u30bd\u30fc\u30b9 {0} \u3092\u958b\u304f\u969b\u306e\u4f8b\u5916: {1} -include.read=\u30ea\u30bd\u30fc\u30b9 {0} \u3092\u8aad\u307f\u8fbc\u3080\u969b\u306e\u4f8b\u5916: {1} -include.url=\u30a4\u30f3\u30af\u30eb\u30fc\u30c9URL\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u305b\u3093: {0} -message.message=\u30ad\u30fc {0} \u306b\u5bfe\u5fdc\u3059\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093 -message.property=\u30e1\u30c3\u30bb\u30fc\u30b8\u30ad\u30fc\u306b\u5bfe\u5fdc\u3059\u308b\u30d7\u30ed\u30d1\u30c6\u30a3\u306fString\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093 -message.resources=\u30ea\u30bd\u30fc\u30b9\u306e\u5c5e\u6027 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093 -page.selector=\u4e0d\u6b63\u306a\u30da\u30fc\u30b8\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30bb\u30ec\u30af\u30bf {0} -parameter.get=\u30d1\u30e9\u30e1\u30fc\u30bf {0} \u306f\u3053\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u5185\u306b\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093 -resource.get=\u30ea\u30bd\u30fc\u30b9 {0} \u306f\u3053\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u5229\u7528\u3067\u304d\u307e\u305b\u3093 -size.collection=size\u30bf\u30b0\u306b\u5bfe\u3057\u3066\u6709\u52b9\u306a\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093 -size.noCollectionOrName=size\u30bf\u30b0\u306b\u306f\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304bname\u5c5e\u6027\u306e\u3046\u3061\u3069\u3061\u3089\u304b\u3092\u6b63\u78ba\u306b\u6307\u5b9a\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093 -struts.missing= {0} \u3068\u3044\u3046\u540d\u79f0\u306eStruts\u306e\u5185\u90e8\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u5229\u7528\u3067\u304d\u307e\u305b\u3093 -struts.selector=formBean\u3001forward\u3001mapping\u306e\u3044\u305a\u308c\u304b\u4e00\u3064\u3092\u6b63\u78ba\u306b\u6307\u5b9a\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093 -write.format=\u4e0d\u6b63\u306a\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306e\u6587\u5b57\u5217: '{0}' diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/MessageTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/MessageTag.java deleted file mode 100644 index a51b43ff92c..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/MessageTag.java +++ /dev/null @@ -1,265 +0,0 @@ -/* - * $Id: MessageTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import org.apache.struts.Globals; -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.tagext.TagSupport; - -import java.util.Locale; - -/** - * Custom tag that retrieves an internationalized messages string (with - * optional parametric replacement) from the ActionResources - * object stored as a context attribute by our associated - * ActionServlet implementation. - * - * @version $Rev: 471754 $ $Date: 2005-09-16 09:38:33 -0400 (Fri, 16 Sep 2005) - * $ - */ -public class MessageTag extends TagSupport { - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources( - "org.apache.struts.taglib.bean.LocalStrings"); - - // ------------------------------------------------------------- Properties - - /** - * The first optional argument. - */ - protected String arg0 = null; - - /** - * The second optional argument. - */ - protected String arg1 = null; - - /** - * The third optional argument. - */ - protected String arg2 = null; - - /** - * The fourth optional argument. - */ - protected String arg3 = null; - - /** - * The fifth optional argument. - */ - protected String arg4 = null; - - /** - * The servlet context attribute key for our resources. - */ - protected String bundle = null; - - /** - * The message key of the message to be retrieved. - */ - protected String key = null; - - /** - * Name of the bean that contains the message key. - */ - protected String name = null; - - /** - * Name of the property to be accessed on the specified bean. - */ - protected String property = null; - - /** - * The scope to be searched to retrieve the specified bean. - */ - protected String scope = null; - - /** - * The session scope key under which our Locale is stored. - */ - protected String localeKey = Globals.LOCALE_KEY; - - public String getArg0() { - return (this.arg0); - } - - public void setArg0(String arg0) { - this.arg0 = arg0; - } - - public String getArg1() { - return (this.arg1); - } - - public void setArg1(String arg1) { - this.arg1 = arg1; - } - - public String getArg2() { - return (this.arg2); - } - - public void setArg2(String arg2) { - this.arg2 = arg2; - } - - public String getArg3() { - return (this.arg3); - } - - public void setArg3(String arg3) { - this.arg3 = arg3; - } - - public String getArg4() { - return (this.arg4); - } - - public void setArg4(String arg4) { - this.arg4 = arg4; - } - - public String getBundle() { - return (this.bundle); - } - - public void setBundle(String bundle) { - this.bundle = bundle; - } - - public String getKey() { - return (this.key); - } - - public void setKey(String key) { - this.key = key; - } - - public String getName() { - return (this.name); - } - - public void setName(String name) { - this.name = name; - } - - public String getProperty() { - return (this.property); - } - - public void setProperty(String property) { - this.property = property; - } - - public String getScope() { - return (this.scope); - } - - public void setScope(String scope) { - this.scope = scope; - } - - public String getLocale() { - return (this.localeKey); - } - - public void setLocale(String localeKey) { - this.localeKey = localeKey; - } - - // --------------------------------------------------------- Public Methods - - /** - * Process the start tag. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - String key = this.key; - - if (key == null) { - // Look up the requested property value - Object value = - TagUtils.getInstance().lookup(pageContext, name, property, scope); - - if ((value != null) && !(value instanceof String)) { - JspException e = - new JspException(messages.getMessage("message.property", key)); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - key = (String) value; - } - - // Construct the optional arguments array we will be using - Object[] args = new Object[] { arg0, arg1, arg2, arg3, arg4 }; - - // Retrieve the message string we are looking for - String message = - TagUtils.getInstance().message(pageContext, this.bundle, - this.localeKey, key, args); - - if (message == null) { - Locale locale = - TagUtils.getInstance().getUserLocale(pageContext, this.localeKey); - String localeVal = - (locale == null) ? "default locale" : locale.toString(); - JspException e = - new JspException(messages.getMessage("message.message", - "\"" + key + "\"", - "\"" + ((bundle == null) ? "(default bundle)" : bundle) - + "\"", localeVal)); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - TagUtils.getInstance().write(pageContext, message); - - return (SKIP_BODY); - } - - /** - * Release any acquired resources. - */ - public void release() { - super.release(); - arg0 = null; - arg1 = null; - arg2 = null; - arg3 = null; - arg4 = null; - bundle = Globals.MESSAGES_KEY; - key = null; - name = null; - property = null; - scope = null; - localeKey = Globals.LOCALE_KEY; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/PageTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/PageTag.java deleted file mode 100644 index 164b57e0776..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/PageTag.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * $Id: PageTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.tagext.TagSupport; - -/** - * Define a scripting variable that exposes the requested page context item as - * a scripting variable and a page scope bean. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class PageTag extends TagSupport { - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources( - "org.apache.struts.taglib.bean.LocalStrings"); - - // ------------------------------------------------------------- Properties - - /** - * The name of the scripting variable that will be exposed as a page scope - * attribute. - */ - protected String id = null; - - /** - * The name of the page context property to be retrieved. - */ - protected String property = null; - - public String getId() { - return (this.id); - } - - public void setId(String id) { - this.id = id; - } - - public String getProperty() { - return (this.property); - } - - public void setProperty(String property) { - this.property = property; - } - - // --------------------------------------------------------- Public Methods - - /** - * Retrieve the required configuration object and expose it as a scripting - * variable. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - // Retrieve the requested object to be exposed - Object object = null; - - if ("application".equalsIgnoreCase(property)) { - object = pageContext.getServletContext(); - } else if ("config".equalsIgnoreCase(property)) { - object = pageContext.getServletConfig(); - } else if ("request".equalsIgnoreCase(property)) { - object = pageContext.getRequest(); - } else if ("response".equalsIgnoreCase(property)) { - object = pageContext.getResponse(); - } else if ("session".equalsIgnoreCase(property)) { - object = pageContext.getSession(); - } else { - JspException e = - new JspException(messages.getMessage("page.selector", property)); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - // Expose this value as a scripting variable - pageContext.setAttribute(id, object); - - return (SKIP_BODY); - } - - /** - * Release all allocated resources. - */ - public void release() { - super.release(); - id = null; - property = null; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/PageTei.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/PageTei.java deleted file mode 100644 index 76ce596cabc..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/PageTei.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * $Id: PageTei.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import javax.servlet.jsp.tagext.TagData; -import javax.servlet.jsp.tagext.TagExtraInfo; -import javax.servlet.jsp.tagext.VariableInfo; - -/** - * Implementation of TagExtraInfo for the page tag, - * identifying the scripting object(s) to be made visible. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class PageTei extends TagExtraInfo { - /** - * Return information about the scripting variables to be created. - */ - public VariableInfo[] getVariableInfo(TagData data) { - String type = null; - String property = data.getAttributeString("property"); - - if ("application".equalsIgnoreCase(property)) { - type = "javax.servlet.ServletContext"; - } else if ("config".equalsIgnoreCase(property)) { - type = "javax.servlet.ServletConfig"; - } else if ("request".equalsIgnoreCase(property)) { - type = "javax.servlet.ServletRequest"; - } else if ("response".equalsIgnoreCase(property)) { - type = "javax.servlet.ServletResponse"; - } else if ("session".equalsIgnoreCase(property)) { - type = "javax.servlet.http.HttpSession"; - } else { - type = "java.lang.Object"; - } - - return new VariableInfo[] { - new VariableInfo(data.getAttributeString("id"), type, true, - VariableInfo.AT_BEGIN) - }; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ParameterTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ParameterTag.java deleted file mode 100644 index 77b1275ea16..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ParameterTag.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * $Id: ParameterTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.tagext.TagSupport; - -/** - * Define a scripting variable based on the value(s) of the specified - * parameter received with this request. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class ParameterTag extends TagSupport { - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources( - "org.apache.struts.taglib.bean.LocalStrings"); - - // ------------------------------------------------------------- Properties - - /** - * The name of the scripting variable that will be exposed as a page scope - * attribute. - */ - protected String id = null; - - /** - * Return an array of parameter values if multiple is - * non-null. - */ - protected String multiple = null; - - /** - * The name of the parameter whose value is to be exposed. - */ - protected String name = null; - - /** - * The default value to return if no parameter of the specified name is - * found. - */ - protected String value = null; - - public String getId() { - return (this.id); - } - - public void setId(String id) { - this.id = id; - } - - public String getMultiple() { - return (this.multiple); - } - - public void setMultiple(String multiple) { - this.multiple = multiple; - } - - public String getName() { - return (this.name); - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return (this.value); - } - - public void setValue(String value) { - this.value = value; - } - - // --------------------------------------------------------- Public Methods - - /** - * Retrieve the required property and expose it as a scripting variable. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - // Deal with a single parameter value - if (multiple == null) { - String value = pageContext.getRequest().getParameter(name); - - if ((value == null) && (this.value != null)) { - value = this.value; - } - - if (value == null) { - JspException e = - new JspException(messages.getMessage("parameter.get", name)); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - pageContext.setAttribute(id, value); - - return (SKIP_BODY); - } - - // Deal with multiple parameter values - String[] values = pageContext.getRequest().getParameterValues(name); - - if ((values == null) || (values.length == 0)) { - if (this.value != null) { - values = new String[] { this.value }; - } - } - - if ((values == null) || (values.length == 0)) { - JspException e = - new JspException(messages.getMessage("parameter.get", name)); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - pageContext.setAttribute(id, values); - - return (SKIP_BODY); - } - - /** - * Release all allocated resources. - */ - public void release() { - super.release(); - id = null; - multiple = null; - name = null; - value = null; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ParameterTei.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ParameterTei.java deleted file mode 100644 index b08f496ebba..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ParameterTei.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $Id: ParameterTei.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import javax.servlet.jsp.tagext.TagData; -import javax.servlet.jsp.tagext.TagExtraInfo; -import javax.servlet.jsp.tagext.VariableInfo; - -/** - * Implementation of TagExtraInfo for the parameter tag, - * identifying the scripting object(s) to be made visible. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class ParameterTei extends TagExtraInfo { - /** - * Return information about the scripting variables to be created. - */ - public VariableInfo[] getVariableInfo(TagData data) { - String className = null; - - if (data.getAttribute("multiple") == null) { - className = "java.lang.String"; - } else { - className = "java.lang.String[]"; - } - - return new VariableInfo[] { - new VariableInfo(data.getAttributeString("id"), className, true, - VariableInfo.AT_BEGIN) - }; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ResourceTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ResourceTag.java deleted file mode 100644 index 6e4fc49201a..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ResourceTag.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * $Id: ResourceTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.tagext.TagSupport; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; - -/** - * Define a scripting variable based on the contents of the specified web - * application resource. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class ResourceTag extends TagSupport { - // ------------------------------------------------------------- Properties - - /** - * Buffer size to use when reading the input stream. - */ - protected static final int BUFFER_SIZE = 256; - - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources( - "org.apache.struts.taglib.bean.LocalStrings"); - - /** - * The name of the scripting variable that will be exposed as a page scope - * attribute. - */ - protected String id = null; - - /** - * Return an InputStream to the specified resource if this is non-null. - */ - protected String input = null; - - /** - * The module-relative URI of the resource whose contents are to be - * exposed. - */ - protected String name = null; - - public String getId() { - return (this.id); - } - - public void setId(String id) { - this.id = id; - } - - public String getInput() { - return (this.input); - } - - public void setInput(String input) { - this.input = input; - } - - public String getName() { - return (this.name); - } - - public void setName(String name) { - this.name = name; - } - - // --------------------------------------------------------- Public Methods - - /** - * Retrieve the required property and expose it as a scripting variable. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - // Acquire an input stream to the specified resource - InputStream stream = - pageContext.getServletContext().getResourceAsStream(name); - - if (stream == null) { - JspException e = - new JspException(messages.getMessage("resource.get", name)); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - // If we are returning an InputStream, do so and return - if (input != null) { - pageContext.setAttribute(id, stream); - - return (SKIP_BODY); - } - - // Accumulate the contents of this resource into a StringBuffer - try { - StringBuffer sb = new StringBuffer(); - InputStreamReader reader = new InputStreamReader(stream); - char[] buffer = new char[BUFFER_SIZE]; - int n = 0; - - while (true) { - n = reader.read(buffer); - - if (n < 1) { - break; - } - - sb.append(buffer, 0, n); - } - - reader.close(); - pageContext.setAttribute(id, sb.toString()); - } catch (IOException e) { - TagUtils.getInstance().saveException(pageContext, e); - throw new JspException(messages.getMessage("resource.get", name)); - } - - return (SKIP_BODY); - } - - /** - * Release all allocated resources. - */ - public void release() { - super.release(); - id = null; - input = null; - name = null; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ResourceTei.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ResourceTei.java deleted file mode 100644 index 95bbf31a030..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/ResourceTei.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $Id: ResourceTei.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import javax.servlet.jsp.tagext.TagData; -import javax.servlet.jsp.tagext.TagExtraInfo; -import javax.servlet.jsp.tagext.VariableInfo; - -/** - * Implementation of TagExtraInfo for the resource tag, - * identifying the scripting object(s) to be made visible. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class ResourceTei extends TagExtraInfo { - /** - * Return information about the scripting variables to be created. - */ - public VariableInfo[] getVariableInfo(TagData data) { - String type = null; - - if (data.getAttribute("input") == null) { - type = "java.lang.String"; - } else { - type = "java.io.InputStream"; - } - - return new VariableInfo[] { - new VariableInfo(data.getAttributeString("id"), type, true, - VariableInfo.AT_BEGIN) - }; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/SizeTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/SizeTag.java deleted file mode 100644 index dd2b47f0c2d..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/SizeTag.java +++ /dev/null @@ -1,186 +0,0 @@ -/* - * $Id: SizeTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.TagSupport; - -import java.lang.reflect.Array; - -import java.util.Collection; -import java.util.Map; - -/** - * Define a scripting variable that will contain the number of elements found - * in a specified array, Collection, or Map. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class SizeTag extends TagSupport { - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources( - "org.apache.struts.taglib.bean.LocalStrings"); - - // ------------------------------------------------------------- Properties - - /** - * The actual collection to be counted. - */ - protected Object collection = null; - - /** - * The name of the scripting variable that will be exposed as a page scope - * attribute. - */ - protected String id = null; - - /** - * The name of the bean owning the property to be counted. - */ - protected String name = null; - - /** - * The name of the property to be retrieved. - */ - protected String property = null; - - /** - * The scope within which to search for the specified bean. - */ - protected String scope = null; - - public Object getCollection() { - return (this.collection); - } - - public void setCollection(Object collection) { - this.collection = collection; - } - - public String getId() { - return (this.id); - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return (this.name); - } - - public void setName(String name) { - this.name = name; - } - - public String getProperty() { - return (this.property); - } - - public void setProperty(String property) { - this.property = property; - } - - public String getScope() { - return (this.scope); - } - - public void setScope(String scope) { - this.scope = scope; - } - - // --------------------------------------------------------- Public Methods - - /** - * Retrieve the required property and expose it as a scripting variable. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - // Retrieve the required property value - Object value = this.collection; - - if (value == null) { - if (name == null) { - // Must specify either a collection attribute or a name - // attribute. - JspException e = - new JspException(messages.getMessage( - "size.noCollectionOrName")); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - value = - TagUtils.getInstance().lookup(pageContext, name, property, scope); - } - - // Identify the number of elements, based on the collection type - int size = 0; - - if (value == null) { - JspException e = - new JspException(messages.getMessage("size.collection")); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } else if (value.getClass().isArray()) { - size = Array.getLength(value); - } else if (value instanceof Collection) { - size = ((Collection) value).size(); - } else if (value instanceof Map) { - size = ((Map) value).size(); - } else { - JspException e = - new JspException(messages.getMessage("size.collection")); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - // Expose this size as a scripting variable - pageContext.setAttribute(this.id, new Integer(size), - PageContext.PAGE_SCOPE); - - return (SKIP_BODY); - } - - /** - * Release all allocated resources. - */ - public void release() { - super.release(); - collection = null; - id = null; - name = null; - property = null; - scope = null; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/SizeTei.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/SizeTei.java deleted file mode 100644 index f27cea037b7..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/SizeTei.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: SizeTei.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import javax.servlet.jsp.tagext.TagData; -import javax.servlet.jsp.tagext.TagExtraInfo; -import javax.servlet.jsp.tagext.VariableInfo; - -/** - * Implementation of TagExtraInfo for the size tag, - * identifying the scripting object(s) to be made visible. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class SizeTei extends TagExtraInfo { - /** - * Return information about the scripting variables to be created. - */ - public VariableInfo[] getVariableInfo(TagData data) { - return new VariableInfo[] { - new VariableInfo(data.getAttributeString("id"), - "java.lang.Integer", true, VariableInfo.AT_BEGIN) - }; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/StrutsTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/StrutsTag.java deleted file mode 100644 index cc4a8a3fea9..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/StrutsTag.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * $Id: StrutsTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.tagext.TagSupport; - -/** - * Define a scripting variable that exposes the requested Struts internal - * configuraton object. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class StrutsTag extends TagSupport { - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources( - "org.apache.struts.taglib.bean.LocalStrings"); - - // ------------------------------------------------------------- Properties - - /** - * The name of the scripting variable that will be exposed as a page scope - * attribute. - */ - protected String id = null; - - /** - * The name of the ActionFormBean object to be exposed. - */ - protected String formBean = null; - - /** - * The name of the ActionForward object to be exposed. - */ - protected String forward = null; - - /** - * The name of the ActionMapping object to be exposed. - */ - protected String mapping = null; - - public String getId() { - return (this.id); - } - - public void setId(String id) { - this.id = id; - } - - public String getFormBean() { - return (this.formBean); - } - - public void setFormBean(String formBean) { - this.formBean = formBean; - } - - public String getForward() { - return (this.forward); - } - - public void setForward(String forward) { - this.forward = forward; - } - - public String getMapping() { - return (this.mapping); - } - - public void setMapping(String mapping) { - this.mapping = mapping; - } - - // --------------------------------------------------------- Public Methods - - /** - * Retrieve the required configuration object and expose it as a scripting - * variable. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - // Validate the selector arguments - int n = 0; - - if (formBean != null) { - n++; - } - - if (forward != null) { - n++; - } - - if (mapping != null) { - n++; - } - - if (n != 1) { - JspException e = - new JspException(messages.getMessage("struts.selector")); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - // Retrieve our module configuration information - ModuleConfig config = - TagUtils.getInstance().getModuleConfig(pageContext); - - // Retrieve the requested object to be exposed - Object object = null; - String selector = null; - - if (formBean != null) { - selector = formBean; - object = config.findFormBeanConfig(formBean); - } else if (forward != null) { - selector = forward; - object = config.findForwardConfig(forward); - } else if (mapping != null) { - selector = mapping; - object = config.findActionConfig(mapping); - } - - if (object == null) { - JspException e = - new JspException(messages.getMessage("struts.missing", selector)); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - // Expose this value as a scripting variable - pageContext.setAttribute(id, object); - - return (SKIP_BODY); - } - - /** - * Release all allocated resources. - */ - public void release() { - super.release(); - id = null; - formBean = null; - forward = null; - mapping = null; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/StrutsTei.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/StrutsTei.java deleted file mode 100644 index c3ebb88f9c8..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/StrutsTei.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * $Id: StrutsTei.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import javax.servlet.jsp.tagext.TagData; -import javax.servlet.jsp.tagext.TagExtraInfo; -import javax.servlet.jsp.tagext.VariableInfo; - -/** - * Implementation of TagExtraInfo for the struts tag, - * identifying the scripting object(s) to be made visible. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class StrutsTei extends TagExtraInfo { - /** - * Return information about the scripting variables to be created. - */ - public VariableInfo[] getVariableInfo(TagData data) { - String type = null; - - if (data.getAttribute("formBean") != null) { - type = "org.apache.struts.action.ActionFormBean"; - } else if (data.getAttribute("forward") != null) { - type = "org.apache.struts.action.ActionForward"; - } else if (data.getAttribute("mapping") != null) { - type = "org.apache.struts.action.ActionMapping"; - } else { - type = "java.lang.Object"; - } - - return new VariableInfo[] { - new VariableInfo(data.getAttributeString("id"), type, true, - VariableInfo.AT_BEGIN) - }; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/WriteTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/WriteTag.java deleted file mode 100644 index 9b4d90f2204..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/WriteTag.java +++ /dev/null @@ -1,396 +0,0 @@ -/* - * $Id: WriteTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.bean; - -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.tagext.TagSupport; - -import java.math.BigDecimal; -import java.math.BigInteger; - -import java.text.DecimalFormat; -import java.text.Format; -import java.text.NumberFormat; -import java.text.SimpleDateFormat; - -import java.util.Locale; - -/** - * Tag that retrieves the specified property of the specified bean, converts - * it to a String representation (if necessary), and writes it to the current - * output stream, optionally filtering characters that are sensitive in HTML. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class WriteTag extends TagSupport { - /** - * The key to search default format string for java.sql.Timestamp in - * resources. - */ - public static final String SQL_TIMESTAMP_FORMAT_KEY = - "org.apache.struts.taglib.bean.format.sql.timestamp"; - - /** - * The key to search default format string for java.sql.Date in - * resources. - */ - public static final String SQL_DATE_FORMAT_KEY = - "org.apache.struts.taglib.bean.format.sql.date"; - - /** - * The key to search default format string for java.sql.Time in - * resources. - */ - public static final String SQL_TIME_FORMAT_KEY = - "org.apache.struts.taglib.bean.format.sql.time"; - - /** - * The key to search default format string for java.util.Date in - * resources. - */ - public static final String DATE_FORMAT_KEY = - "org.apache.struts.taglib.bean.format.date"; - - /** - * The key to search default format string for int (byte, short, etc.) in - * resources. - */ - public static final String INT_FORMAT_KEY = - "org.apache.struts.taglib.bean.format.int"; - - /** - * The key to search default format string for float (double, BigDecimal) - * in resources. - */ - public static final String FLOAT_FORMAT_KEY = - "org.apache.struts.taglib.bean.format.float"; - - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources( - "org.apache.struts.taglib.bean.LocalStrings"); - - // ------------------------------------------------------------- Properties - - /** - * Filter the rendered output for characters that are sensitive in HTML? - */ - protected boolean filter = true; - - /** - * Should we ignore missing beans and simply output nothing? - */ - protected boolean ignore = false; - - /** - * Name of the bean that contains the data we will be rendering. - */ - protected String name = null; - - /** - * Name of the property to be accessed on the specified bean. - */ - protected String property = null; - - /** - * The scope to be searched to retrieve the specified bean. - */ - protected String scope = null; - - /** - * The format string to be used as format to convert value to String. - */ - protected String formatStr = null; - - /** - * The key to search format string in applciation resources - */ - protected String formatKey = null; - - /** - * The session scope key under which our Locale is stored. - */ - protected String localeKey = null; - - /** - * The servlet context attribute key for our resources. - */ - protected String bundle = null; - - public boolean getFilter() { - return (this.filter); - } - - public void setFilter(boolean filter) { - this.filter = filter; - } - - public boolean getIgnore() { - return (this.ignore); - } - - public void setIgnore(boolean ignore) { - this.ignore = ignore; - } - - public String getName() { - return (this.name); - } - - public void setName(String name) { - this.name = name; - } - - public String getProperty() { - return (this.property); - } - - public void setProperty(String property) { - this.property = property; - } - - public String getScope() { - return (this.scope); - } - - public void setScope(String scope) { - this.scope = scope; - } - - public String getFormat() { - return (this.formatStr); - } - - public void setFormat(String formatStr) { - this.formatStr = formatStr; - } - - public String getFormatKey() { - return (this.formatKey); - } - - public void setFormatKey(String formatKey) { - this.formatKey = formatKey; - } - - public String getLocale() { - return (this.localeKey); - } - - public void setLocale(String localeKey) { - this.localeKey = localeKey; - } - - public String getBundle() { - return (this.bundle); - } - - public void setBundle(String bundle) { - this.bundle = bundle; - } - - // --------------------------------------------------------- Public Methods - - /** - * Process the start tag. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - // Look up the requested bean (if necessary) - if (ignore) { - if (TagUtils.getInstance().lookup(pageContext, name, scope) - == null) { - return (SKIP_BODY); // Nothing to output - } - } - - // Look up the requested property value - Object value = - TagUtils.getInstance().lookup(pageContext, name, property, scope); - - if (value == null) { - return (SKIP_BODY); // Nothing to output - } - - // Convert value to the String with some formatting - String output = formatValue(value); - - // Print this property value to our output writer, suitably filtered - if (filter) { - TagUtils.getInstance().write(pageContext, - TagUtils.getInstance().filter(output)); - } else { - TagUtils.getInstance().write(pageContext, output); - } - - // Continue processing this page - return (SKIP_BODY); - } - - /** - * Retrieve format string from message bundle and return null if message - * not found or message string. - * - * @param formatKey value to use as key to search message in bundle - * @throws JspException if a JSP exception has occurred - */ - protected String retrieveFormatString(String formatKey) - throws JspException { - String result = - TagUtils.getInstance().message(pageContext, this.bundle, - this.localeKey, formatKey); - - if ((result != null) - && !(result.startsWith("???") && result.endsWith("???"))) { - return result; - } else { - return null; - } - } - - /** - * Format value according to specified format string (as tag attribute or - * as string from message resources) or to current user locale. - * - * When a format string is retrieved from the message resources, - * applyLocalizedPattern is used. For more about localized - * patterns, see - * . - * (To obtain the correct value for some characters, you may need to view - * the file in a hex editor and then use the Unicode escape form in the - * property resources file.) - * - * @param valueToFormat value to process and convert to String - * @throws JspException if a JSP exception has occurred - */ - protected String formatValue(Object valueToFormat) - throws JspException { - Format format = null; - Object value = valueToFormat; - Locale locale = - TagUtils.getInstance().getUserLocale(pageContext, this.localeKey); - boolean formatStrFromResources = false; - String formatString = formatStr; - - // Return String object as is. - if (value instanceof java.lang.String) { - return (String) value; - } else { - // Try to retrieve format string from resources by the key from - // formatKey. - if ((formatString == null) && (formatKey != null)) { - formatString = retrieveFormatString(this.formatKey); - - if (formatString != null) { - formatStrFromResources = true; - } - } - - // Prepare format object for numeric values. - if (value instanceof Number) { - if (formatString == null) { - if ((value instanceof Byte) || (value instanceof Short) - || (value instanceof Integer) - || (value instanceof Long) - || (value instanceof BigInteger)) { - formatString = retrieveFormatString(INT_FORMAT_KEY); - } else if ((value instanceof Float) - || (value instanceof Double) - || (value instanceof BigDecimal)) { - formatString = retrieveFormatString(FLOAT_FORMAT_KEY); - } - - if (formatString != null) { - formatStrFromResources = true; - } - } - - if (formatString != null) { - try { - format = NumberFormat.getNumberInstance(locale); - - if (formatStrFromResources) { - ((DecimalFormat) format).applyLocalizedPattern( - formatString); - } else { - ((DecimalFormat) format).applyPattern(formatString); - } - } catch (IllegalArgumentException e) { - JspException ex = - new JspException(messages.getMessage( - "write.format", formatString)); - - TagUtils.getInstance().saveException(pageContext, ex); - throw ex; - } - } - } else if (value instanceof java.util.Date) { - if (formatString == null) { - if (value instanceof java.sql.Timestamp) { - formatString = - retrieveFormatString(SQL_TIMESTAMP_FORMAT_KEY); - } else if (value instanceof java.sql.Date) { - formatString = - retrieveFormatString(SQL_DATE_FORMAT_KEY); - } else if (value instanceof java.sql.Time) { - formatString = - retrieveFormatString(SQL_TIME_FORMAT_KEY); - } else if (value instanceof java.util.Date) { - formatString = retrieveFormatString(DATE_FORMAT_KEY); - } - } - - if (formatString != null) { - format = new SimpleDateFormat(formatString, locale); - } - } - } - - if (format != null) { - return format.format(value); - } else { - return value.toString(); - } - } - - /** - * Release all allocated resources. - */ - public void release() { - super.release(); - filter = true; - ignore = false; - name = null; - property = null; - scope = null; - formatStr = null; - formatKey = null; - localeKey = null; - bundle = null; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/doc-files/beanUML.gif b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/doc-files/beanUML.gif deleted file mode 100644 index d19250c412dec88a60a5f89de8ee4c704516f3ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13450 zcmW++byyQ_7o8}=4?zWyjwzkeB{8I1x?yy8_h_V)ZW!I&J-SABkM3>|`0%^Wv%TBh zz4zR6&bz-hF$qyFPCYjy)YmtFe*yXb1M>d^^70M>fxW~MEN}1>1O$MA00!E{00jYHAOHdc0Du8NFaQJwfWZI=7ytzWU|;|O40xFbgaAMg z02uNz7yyL;U=RS}1q%uQLIEHs01O2{pa3Wo0D}S$Pyhf10Kxzu7yt|dKwtnU3;=@x z5HJ7$0RSQZAOrx606-7`C;|XO01yZO00091TL%RG2LgirYXu}l70y=2m}Fvpdb(o1VX$F0E2+we_1dX1ObDfU=R!pLV!UpB!Q5B zrC|KOSDSXNO3n&Bv zgFp}v$cqy|DCC6?_$38}K%o#A6oP<4UhDzFATK1rFLf{o6b6C8AP5-b#WNrR^1>Ya z(u{yW5fB&xfh)-$GCb3zM?Kb%6LIS>fs`Q@@a1D^kXyqqtuUgFE$o0l{I zK>zRQ-**Cl`tr$tMB)|D4u8~7v|9ZYnO(sj$s|+7E3*3S|#gB)RXlmi?oO8N*C+pM+eiSICDmuTrc)z++506+r2%I zNTeH>RMLY!(TO%YRBrSIVhW{8;~Q=aCbGt~mNZtI1Vsz@yags3?M@W%Ias>_ufP*! z@@0`S4`=2yr620rToBqvEfqe$QyE%rb=NfkORTqLZiK$N^ja0Ch<8XHy@hW_pQ5;K zPE1-CpC=mw5x%b#-_JECl=u6S-4SUeK6l)dH+l)$pvW*^dIvn?*JQ{dV^T-?##3M; zWLA84pvo9e7m>0G;G0n#%^JN?_C6wmZe|f!f*k)VUZyl$&cAv%eyG+{>q3hibztAW zpYfK$ScbW>Wia`7$$oR;#CFS`%#n!%4x>9r3p_gBW@4TqGp!<1>YTnu`nV#VY^XKZ zkFO6t7T*AAVl`|DaAui-|2$XjZY3u;(fmoZ?Q8)5;kvrrNN3)o$wcB+Zh$j&;jyB} z^x;jeF@Gg_mGPR=+b-C~&AgB@Nk>OxCohR7z#!i&i+iWQ0BdtQH(4W@w#c|Hl-B1} zdPpOFy64P&bjI_Xft)=L#TRsezaKT=nZ3aMoES0QKclZHRK#cu659r8ij5Z3i#o5GcW4`XFdW_9j2> zHLUl2F|op*A(ylJJ$sGEN-scr!B);>n$1_j%uIT}_Axwu&T<6T6WmdSoBHOmTY-v* zarzx`>1CY-{}Lr6-~2CUW4KMYbsq_C>D4Bqw{WU0dN+p_;+q_bF)AFRo+AP~rCE*0$mPd6eSuU)$D; zx^%wPmNXtX^nvYU7gmFQktubpC>$(C%_AHeIkNoh5E*T8<0;$P{>^8)71!*yjY|us zH*?|W;rX-R7zq=kXLz7j}4^>`sF@*7XEe&U|m_ zi*?t8uw%N7sr3qeLKZF5_X6a@6MAfo@9n2Th-?G*fCx0~&B%{bJ3_$Z%5dbyRg@>> zPER7bU(%AqXc1omfV`NYm-b)KpM$AULjQP@H2A(#Qc7hu$A~cA1b+Q5i_T+ChUW|V z8fIiJHS*xcFvd?m&`xeY0nsZU>DgJC#-^_XpPyi{0v{v4RM+(jkCexSPfZgZ|Ln#j zW)^NZ{27B4SI(tV9`GcUiNw|T3Funop?K^2&inNB2kMKr@NO(C6?_)8rgOI$w*JQz z=CnQPq4>xjGr_%_{0&zhJk_Lko_9k!zW@L~`I2C7pnGtm{R+0JH|iYa5~3J9!m6mi zb=)TPteItWzX8eJJ5Vf-4z0Pd6v2;Y)0xJkB&=jcTVLK+Os|lafE;&*v;21hl0H9j zqHe1Dh~J;SqH~Sm8T6Y9vA*v6C^O;9rHviS+dby3rkBLoPyn>~`Q7u}A%}cAUxLC< zAyy-wTi3Nq>f0DSHU1a=ukb!hQ?%R^>+uNr4M)MBJv{x}(ia71{$U!kgEMu;6lCHN z;)**>GGE^!{u6~pXKPSRrqCRq3W@)~%3*qgthIr!TBS=i>Mr9H$W|EUX4y$TgxRD~ z7d6{hVx;_Q=2{-7D$4gjL2xl@^mw2$$LLT*Wn*Th>AJQe!b*#&w{l@dI3$nZ$P6i= z!{2RCIuFyzT9Gh){5ePYn=8wat-&-~;F!4?uTq>guzq123%9ZNioS1zI<5Xni5=p zn?a@%Sv0xMnregVKhqw1S;YeVEz-`r(jMtWJ6{yGjm~+s9!$owT7r14TfJM2!Hd(z z6_1S%`L}&;?plaQI=z#R`2FH4_TEG9w3#~Um4XQ;BOBjr12@$ArG+ZPx*ovzi*B|q z@eZyJU7JuZnr9b*>kk`%d{W|vBWE6t)9$~;yB`l`+eMCJPj)q#zmFz}mJq9E#f3BB zc`Ud(M%Sc$L=iYrP#?xzNkfFk*KkQ4_SkV~O-%eXBUR;|q4usUGx0naIBpuW?X9lR z^P*bgnN{ddCupSQSPd6ZH!~7-fUbtuyl-BZXs@d)J=5Yco#dXI4{|DT%RhW;QKF2t zQIY;dd-s!SLr+!mRa3p!5qRT%sI<+&=j!i1mdW?tnjn|7D;X=lou+1~vI@smB~Z@9)uWVl$R7CVC@ z&&D%342v`uhEL*bJe!AYR20M3+V~q6h&hd9s~4t-E*Q?v-)Y5=CGMQHa@TM&9OSvU zP24ji9J6^L_)K_CIYurKB+|F{PoATn_QqEdWzTD=PC!JnO*4YBHff5SD=B?;qe4EX z6$#pxuS~8to;BS<>WTL#jorEr6b}34v~22vTjHHE9`~P$qq> z5IMPHC)B#b!sVGw$S~+%rLh}GQR!v$SzlbNe^Ai*)~PF?e_BmcUlGg_`1{d040-f~ z+{LQ|#ou#N!@_+{d$c_d?Hky}qiH5g)g-~##nRd4BEk9NThj~``%PrWc4QaLAgx(3 znV++aGs?b|CN4OF>UPr}d!Lb~8{n_z$wbkea`W zDbby%g1T$q>~vsikB3Q)pN?zbGgys~H$f>n*jInfBa+k0GT*U=B9K5W2oxP48t471 zCg?Xx@QR4>7o1>?w+>S#!RSANR^>gk=1eexteYl-5A)sFcPP8xhD_gh2Dxg6Bofos zhqNa+#rHufCbXgT7Mi>Enz#;0uEB(t*6Db^*0DVQP#FkP10bX+(AB{-`B4{E0%2(zyMDMiVtH92IC7g-7$}&95M$z3)G{qRG{x zDGR|S*wMuE;iQEcIn&W}65LFC1i0#d2=HT0SYyTtqL1peXkB8sByf3t5wQOXnnI1O z#)}pH`zx05KMhYjQy}nOr3Cv6cn?Rdi<0oiAZ0wsFu5w#EzhI*3|FfsphxI)UJNLg{kGS zDTRgcqyMEnlBZ2dq)nTp9r!sZas^Q0r>}FTOBV#`h^Ox+rSA{m$eM*5+@+u5XGoZ3 z#xJR7T)S!BBxT%7_&v;LJelb{<3o||gI{Yv-!4EfeF5o8n3XR&Bx1I@Cz zCYnOolCyc;gU{!)K?Ha~mDz$CIb_t{qRBZupEV>Ga#YvU+j1Spx6-zEa#WJZHgWxS zsVoy+a&lMVqHo7kE+-f;9Upx~VWXw;&J2 z%eBdT{cV1#M$u!3e~F7rh#2IC$~n=zsKUMIh}|xVpcr2==gVwRT~l$6#%DaW;uhLW z7=d?(utv!SRZeem3EzJig9{}i_a$Qlr4u}*QyQf+?xl0dr3+1^OADnd_oWDevUQ%a zO^vc`_p;sOvi+vA!-cZr`?6Dl^09NC@=J~KYxnZoVCG-rjw_9Wk5&8KwJUQcw{zD2-j^9 zNtkxfAQ0;y$abp&NR36EQYB6s#9v?J)~6dAqN{gq9`nmsG|03hxjOPzi+az6O~o;M z*0gM)n5{XdMb%~KCei_i`LV!CNzE~wqbR^MG;N1LX^1JRw_5EXi1nf7cHEIL_?KRg zqk*WqO|kJro%UM1E5|$TI}Tgz#R8M(u)3d%_ChA6sHhFERm0rstZ)0me`{1V?iXB% zReg0StQV`4lPXM_^#ttbS-bz5p{g(HkBnb1&M>bnt*cMf{3Ux(FV~d+Sm&f<;ZVo* ziznD-8pi?2)uJ?|7TlMsreZ8SYjqu88!J_{lfq-iJ=RO2^e>E}}8 z^NiIRoR!u4xdo7sUOjM>*S zFK#iZMV!5bW~g0@y8TCE1t6RhMH2?%g3&a3*l;>#s=LU$mpp~R@HRtH^CA6n!Iq}s zSeDRPv63t_!vTsq+~$tQ{~Gm`-quBGbR0@`-VEplBzHQ_#KCXd=;3LBDfw}son&Ip z1>$w=TAg2|ePWv$zw;6*Ncjj@W{9TbM-bW`B{~zkbg3qF8y8aX6FLj=Ha@u6Y2}l_ zpCx((3MR*i0bvW<4IEb;~J5S>e zu6^`L_Rguj+A}p_I3X3{?S7u=zXREm&0X>8JBe^QB8c#43-p*Cx*hK|gY^ayq+waP zZ47+_E)VY6ID-VCA#4S~tWq7}(gH;#;wh$nScC(Rlp(s3{^}*UG>zPEoO9` zs_=t!HV>2OcjZbwbB1_3b5yjCEVa7i^I+7Y2>P}Mdi{CN(N(JI*;Kg40vwf0rpuUf z5UDkB^Pp)c zO76!hiPEX6fhn1zsV6x6KbcWhV*gjfl@m1T#n_`W;nRd_-gEOq@T7sNqRC~=F*2z! zrK4%~0bi@588Y6PCW={yh^c!0Sr_8TrlM&r?Fq-_S>NzH1&ndI;Wq4BJ(1hVbGmsy z)HdO?iGatsWxM1MtNwbd_VDGoNaDFThh$xuvRJ;Jc(3`K)ad}?k>XZ%_OzKm?Wx4a zh4Q0`KMYeyX$!wv=5iS3*up1S=m^`i%WE(eY3r63);y4!OU<6sJ=)XH0=&!X($M11E9<3Wt6np7zALNy%L~hsLd1)%rAx1B`ZZ}{2Oy;XCl^^tVbC$5hRf%SS0ITz1Lq`ug?=Bq_m4@ zBP+Ks7I51(D4teyFxI2da^b}tPp-aaURCY9>*U^>;>R0O5eU}g+{hLQDl zigt=_(e`44i@R#mF&_NS*z0XS{@vJ-rGU0IOtV~nPCe5lyRYhP?oF!+kz43b>+fZE zoFX>_R&qkU!@0ByR-JoQ%O;}v_u{N~RdjZpNANVPgG!oRGu%U^Q(Focck0U43d;_7 z(+~RF_CX8#Tw3n)yO12*4eiqX;mCvPm5l}OZP5AQTB&I_XU)57mm!_Q9Ph(rowbRQ zx!}2j=g7vUG|h!7-=hKRqb2YCX73P=`_&rBP2Y4NxA$t^$m);uKc`RaatlD3TUH_2 z)3-hcuLU+fF09evZ+_A}K*~7l<=??tt>j2MU2VkW8lHk2Z+{fnC;q*zuAfD!b9(*$ zl+I>P^!>%-^7(C3@`s3Xn(}kj^0NiKGc)hg533g(x))-j%N)ez7R0AS8JD+h$5id7 z#~QP;&zAz_hw7u}tchj1sR2857yRv4Ai1lprgbCIGtuX>dD*igiu2d^lVl9n<^tD- z8P}q_rHn3lQH}-MZ=N@n- zhXDBkP)URnf39`g`l;zAY2?v&$TwJV7;E!?YNQoHDhgP%HDDzto*GXSqPGhc@Ej%nIBY_>4ii!rfpa z8y=cOyX}F+GB^-htCFssWIbAd`^?X%dA=h$>i!D%DNOCke5MpXFQ{3q%sAPKnbo-Y zs!nqyS|BW!7Oz2Y)JPBI8>#}C$yBqpKrqQN%S6Azt8AIJMrN~odtDc&r)AUI#%}{; zlwJgUmU~Cb?E)$D%_7IHN2?58K5h3yx}&O8=vB|?Qlm{XbN=51ku%?YBRdowEH65~ zUZ?APM4uXNM<2H^10h8fz^RIkW^C##|i=N8+z6fT?61a?xmQr9OlEtx4fUkzorN_MQ$^m{&HNhM_= zBbgahhoxubS#3A=xIPUziukb~K1P?Sx>0k~U^}IMW?UBf4?Oe`uklSQ8uC7zBm{+Bq?CtaOpJX;h zbyhCh1u0jq4%@{z?h(Pbm3MU=$71a+XMMPBUOO~$0#7uvCaYc-^&hmoA0_hJpN!;9fQ7@5uP4 z{=Qu+0A-F&RLX;ZZ`f$)3~zZ#&3@{#bbnE|?iBa#R;$S6Gg<-8N6iJ);~Lm_3F$Yhnv-8 z5mff~z8*0PAM+>s>y9eI^W#{0zEg5IF@cYX@uweolL4ulOAD^x0LW!><{ZsToO?t* z>RDNT&eAne@QC5uNtsR)Qzo`w3dvlJ(L6*ECxL7Jr?hhl_A)t*x`b4Gv?I><$Zlzz zx~AcX;G9$=jH^T#`vQyeyxUf@be&X68l`!~6cM$rI9#7VQH?cLGXdU7(issR6ZdY5 ztx#RcBA&@`J{-P`$5E%KGiq>xoyR@IElHn={znH*rf!CY6V+QG^=!%D)sBSR5YQy< zgmylivI1_3b@i3hJ6<440MrlvpuXDSn^k()%3Kv}|Q# za6bn};w-IGPPg%~SZXfgXspUrkV%qio>RG@7wxfjR&;II3%#m?9__S@kS!l?57RD) z*tjpp;hZBCgSVW_zvuU^jQnQ_I(iN~>D%;RyLVThSz2P0C)r%V+jhy%{h{eYw@81F zco!YXTjEO>ibzF`*1?G+cj)|Ha*2?&MT@QY+L6PcDYMgYrOo7$)*JP{dIIXEPra@& zpKlobU;CH5tk5mZ^|@I2o;f4&q&%tJtE4>TTRF^*X1H$HOdx{dsJXrDiyW#*0+Euh=A8!X!Q}++?vqBlG8j zj9upvu_{hkW>MZ+X)fy8T8IqUxwX8NZ-Rf|uwaqz!H`vY%(jcwH6 zFT;V(4&Tl-yLrVjMl57SGhZ*ye5P+Aj$j-x(`DI{La`i4LBE>h({9ME;hDa3wze?V zK6rC|H`RX3QLd|fXpmupHB{zUlhQKwTH9lhjM%PWC~bqeym|TNvrDy$_6Zu*z1Usk zbw|dv2csBo^K&{QB?r?%;BUIkfubM5&)-P8Wis5h7<8>UB>63#`P^L9Bk@N)Zg!GZ zZ++kWb1m{zo|n730Dh8JO?n$*H6^?NC0 zZ%UewQ%ij=YV@V@K6F$>Tckc6)Ld zfU5;2fvhtR6w&VlY9|E${^Y!9ZfEi3xOyjqOcc}A?@@(s`NO+N;BPfym02NYKrst_ z?YH8Zkh|(#A)#jrK|bCxM@34P6d2-Nr?I9m!@G{JY(Io}D~P@ea^?t^xi$?F6$^NJ)Db*dd~PW)_o&- zf!3=h&7{xPtH9f9Xo#&^LSp17n%G>HYZBYLAJ%JDBl?c5#X?&20}=J|DzuwS8Sl|vMaoAtf zR8BCJWmR$~(zZt5)9;zfCs$v_e79Ofm8meVA z9IA61st*`yh#hLo8EUE-YVICtnHp-{9BR89YJUTVVZ%Gf;hk*oE@61L61>L{-uvtb z?+bwU$HE74;Da^rp>8<*4NvAKeB@I4azc7;gFBsGaw4^73|kdMsmnv;dobEw*L<>LEv%(6C}PT|9aBl#&<)p%{W~WbF-zskqADk8}P| zQ2b5zo^&YawYYX?=dLBpI;rn?D%zx(1tq7(@b!;4#}W7STs5hxmCI^@#k#jCDe@a_ z4>8q7r z@bJ!5lGLZjvb$QeBaT;b{XB+UM~kBv)uW##Yd&CrbUux|+WLw2DEDTF{O0o|F0i`# z=oA09rE%;y7*oyIm!2`HXQH3x50MQ?LZn;cL{@S*-_gcSbv(=V&$m4m* zzv5G{-NZKztK2)3KY`2QX?_i{tNxBHXRMiPH2K4gY=GN}^P)x;rF#T8H8y5BTwyLN z$d-6=uYg(7zZ2c5E`%#ctQ4t~hkMCYUop@fGBu(x^@Fcr5iTK((Ik1*J9;@Khpf!G zHWgMVGe4Ej;K+td+$uyo?Uq#`%E#e_#Lp*!C1W+cey#v&%|G=V(_HQfTFU?GA4_;O zt!tIY<2kB(UaL1RLP=moRpkHWE>JtvqvK$*P$j!a^Mt-OnGpd_vi9z_ilqv&TBpYAXtnK-%r_sA>p7MLs zg085U^=cVEh8nF04maNSCVV3l_G((1Bj{Ob%!TZ}t#csKTCrSXsp z1~3Y~t!vmXUBcX6dOrhxSGIZ}vi8YXw})L1r)>2j31X)Qafq>m8?^RTR_|3AVrClS zzh0ThyAL~vRigJRq)+NZBYMPc+YXmFnQ_pC{(}PJk5P-I6n!NS#xK6s> z^(Q{C`IbH@|1xsC?rH5O%~$#+^acd)H@Ie&R<>4>iIg$jb-Ara8ix)3@=b6C8Su#( zTy1Xf^KT5jG5lR>ux7N5Ubaqx!!#_t`T4D$Xqo=k_!ZkqxI~_zAc-M{)kox!&Hl|z z*>pXrw#|+$UK6toPWr7_SX_a}dS%3#B%@l7=axpDkrIja`EFtp8eD6}NG{z7C2!Th zdhL^$QRAm=J$@rLZ(~L8P16;fcFXNII9neWjSb?B^+`5bTDC=ljFq1Z4ZRUokqBuF zW!dp{WoHwcYkddC9TyJqbF`QxW@Cps>J^uSN0~9V%-~bnrG~_V&Xlb>yvIu6{Rw8)#cV}8nLn)!>?a~q~kbM z`#HA8&UrO=!ZHbuD&#*DQYT!UYZ=XpeKTIi8QjGY8>o?$RREzFsJEz7u47hhDX_vB4508VhH9C9E3xhU0>dYI1 zX47=Sa4otOw?;&PsM;*EwVj~JbghKyy8w$8!e5tF&? zZGRjq_dSuo>)k+-quI9o!CuYDR*}`9!#V!VNsgm!<73Nf;Z0}j0Y>xv^uy^g>*lf^ zCu0*!%F-?G<2A}-*!EF9FHQW4)w!`%@{DyIug#^3&B1${)rgqp>t1Fvq{G!2o3*z# zP5Xnk92SS~Pb1SU5XK)Lj>~MTthN|W57PI~pCpl~_U~{`#yD(+1#M@m>XA)O-@4d- z7tKMRr3aMTK9SfW-JHI28P0JmEVWb-#QI>r%x{OCVB>qBmHUQ-P2ucv#xBi!Ios2oR`;9`_Y|R0<|EriigHfYcZSD# z9M5*nEO&;bdO@^v&LX#KNp$f3!^H=&qd)6*?fwqC@#k0GwuI&9e?}bmexLB2I1uDa znejS&A-&|rbr8uo|ERm)=5Y4K=ZwpR==k_J=~>od#jiy2_xTSo`=wzs`1YklzM~xO zC4GXUOuN_))|Dca$H~pzQ=bJgYY?`0s2!%VjEg~V!`O1OkHEF) ziGF%K`(JctOBwqNuht-n#O=5%wRS5NDFHk;h0OHCVAa-PDP7pZ^-mX9a~n%*!fp!W zDOLa5nAz_O$gL8}(KB?-)yayMn?bi%8F?ftkcDsP!&d~T=)C#%?H{9;p`@l zp4j9y9d(LnnP_;bltikYGoIX&lUERH3X@1ro*!C5(_tPv?$>pWMISsqu1d3&#rYaq zCe=?y1)DEBI>rQhJhoLvE8GX2L?B(US46t8^4?CI#gw{uxVqegaXONZaP3EQp?Gz& zVY`M=-L>63v~zBGjXHjP=B&>gvFH&H2+g<)^>Nb*eGu{SAR_py@}Ch$*H3}V(N-Oc zKI4(hR~H3hjq^9z=5ik0%f@`}n1toc7Eb{vH+|3TEArK1 zsyL(VPwWW}dCgqQlTODdk4uz0tE*4vKHtlIiZ1&$tW|ps>=DDNbF0|iYEQR3NFhFe zCroQBN(yYVdcp}f?GM#3$+~|5Ks-cu@?Ryx$oZ-)_s+L^ zHFAreCRcxj0vDs^3~o@J)GtY{B)lzgBP+ z$8uL~eIquSqB+;&)?TMEkyDdFy0+Y;Jyp!b(Q~qDp*L1upG|w-OcUxXF^Qx7P&YKj zEEqErL1?32P>A0?jqY*1v{~T8I=kC^x4WZwCzrKmp-D* z`ow(cU-HG(kIS^3n(oaE5(=bV4LOd(0~-hXHZ1<4NpH{(L+dpq2_JGZT@N>&Zg`%K zXx{YkN3RLoMMa8{ftqB*e|jN;R{xha#3 z>?Lp5w-L{F=7n>H)AmXU|PidqzP3c7*32o$PHODIw8#qpr8o!6f$v~9PaEi6_v z*DTOc;&3@=*bAatbt#o;E`#nJ7iBjt4tkszpZ+i=^;*emTCKVDmMX5DL-XWkYW>O+ zqF7u>aSaZ9{cg$F(d?_|nLCbwv|a19{$FN20y0m^wB6`;EQ63=o=gL+dI>CWzfxXi zWA|jZ75tf7Ziji8z4>p|h+wfH<+!X)N!~CUS}WTmXy?}kTtM-sv&5XM=016ssnWH?W~+f4 zXtW5I-;Y^q5h*-#i1lN1m4rym88MY)Q6+ugZDcJ7v6*f>s5+6&23JyJa@+fqiSkr$D+GTC7&jciW!#&8_nrR|E9h`~XqSaUvzZ& ztTsWPQaAq^b5BZ$XQnBpjayRjEYplSFk_@&VCV5QJCAxT6s7m8 zmEG%*EG?oZUV~Lhjulm8Hd#0jdc&O%U0aZQVZH=&pT545`eC)Kir31O`!4x&={GA{ zAnT`Tx4^6LGIg-wSRW7=bQ)$|Z81Y)Bqm635^S>krOPu!5QZf0%WjF#!;~7wySI+| zeMCFoE2-8u@w4Ln6x6tVaDKfdF3{i0s!MH-ZzsyG#EWkYtyXDa;4Nlt;b%>hlsV!3 z(m}RZ?Jr1iulpCBIqL6|NMY$aNyqMM;NPq^W64#G z<{sLmeeIrPtSqCO{^^PPx4)!_sp{`gmV5S&2)!(7D-PpHvMd`q*o3k{7+>W~_`_$F z+zB-*rWN`yo05$Ub*Dc5ytHs1`c1*XI!6hsGhDHdzn=@cn-dFfAbf diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/package.html b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/package.html deleted file mode 100644 index 4b75847cdd3..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/bean/package.html +++ /dev/null @@ -1,558 +0,0 @@ - - - - - Package Documentation for org.apache.struts.taglib.bean - Package - - - -The "struts-bean" tag library contains JSP custom tags useful in defining -new beans (in any desired scope) from a variety of possible sources, as well -as a tag to render a particular bean (or bean property) to the output -response. -
    -
    - - -

    - -
    - -

    Introduction

    - -

    Much of the power of JavaServer Pages (JSP) technology comes from the - simple and powerful mechanisms by which the servlet that is generated - automatically - from your JSP source page can interact with JavaBeans that represent the - computational - state of your application. In standard JSP pages, the <jsp:useBean> - tag is used create a bean (if necessary), as well as a "scripting - variable" - that can be used within scriptlets to refer to these beans.

    - -

    The "struts-bean" tag library provides substantial enhancements to the - basic capability provided by <jsp:useBean>, as - discussed - in the following sections:

    - -
      -
    • Bean Properties - - Extended syntax to refer to JavaBean properties with simple names - (same as the standard JSP tags <jsp:getProperty> - and - <jsp:setProperty>), nested names (a property named - address.city returns the value retrieved by the Java - expression getAddress().getCity()), and indexed names (a - property named address[3] retrieves the fourth address - from - the indexed "address" property of a bean).
    • -
    • Bean Creation - - New JSP beans, in any scope, can be created from a variety of - objects - and APIs associated with the current request, or with the servlet - container - in which this page is running.
    • -
    • Bean Output - - Supports the rendering of textual output from a bean (or bean - property), - which will be included in the response being created by your JSP page. -
    • - -
    - -

    See the Bean Tags - Reference - for detailed information about the available tags in this tag library, and - the valid attributes for each tag.
    - Bean Tag UML -
    -

    - - -

    Bean Properties

    - -
    Common Tag Attributes
    - -

    The tags in the "struts-bean" tag library (and, generally, in all tag - libraries - included with the Struts framework) share a common set of tag attributes - that have the same meaning, no matter what tag they are used on. These - common - attributes include:

    - -
      -
    • id - Names the scripting variable that will be created - by this custom tag, as well as the key value used to locate this bean - in the scope defined by the scope attribute.
    • -
    • name - Defines the key value by which an existing bean will - be looked up in the scope defined by the scope attribute - (if any), or by searching through the various scopes in the standard - order (page, request, session, application).
    • -
    • property - Defines the name of a JavaBeans property, of the - JSP bean identified by the name and (optional) - scope - attributes, whose value is to be used by this custom tag. If not - specified, the bean identified by name is itself used - as the value of interest. See below for more discussion about how a - property can be referenced.
    • -
    • scope - Identifies the JSP scope ("page", "request", - "session", - or "application" within which a particular bean will be searched for - (under the key specified by the name attribute) or - created - (under the key specified by the id attribute). If not - specified, beans will generally be searched for in the order listed - above, - or created in page scope.
    • - -
    - - -
    Property References
    - -

    Struts tags that support the property tag generally also - recognize - a rich syntax for getting and setting properties. There are three types - of references supported: simple, nested, and indexed.

    - -

    Simple References - These are equivalent to the syntax you use - with the standard <jsp:getProperty> and <jsp:setProperty> - tags. A reference to a property named "foo" is converted into a method - call to getFoo() or setFoo(value) (as - appropriate), - using the standard JavaBeans Specification naming conventions for bean - properties. - Struts uses the standard Java introspection APIs to identify the names of - the actual property getter and setter methods, so your beans can provided - customized method names through the use of a BeanInfo class. - See the JavaBeans Specification, available at - http://java.sun.com/products/javabeans/ - , for more information.

    - -

    Nested References - Nested references are used to access a - property - through a hierarchy of property names separated by periods ("."), similar - to the way that nested properties are accessed in JavaScript. For example, - the following property reference in a getter (such as the <bean:define> - tag discussed below):

    - -
     property="foo.bar.baz"
    - -

    is translated into the equivalent the Java expression:

    - -
     getFoo().getBar().getBaz()
    - -

    If a nested reference is used in a setter (such as when an input form - is processed), the property setter is called on the last - property in the chain. For the above property reference, the equivalent - Java expression would be:

    - -
     getFoo().getBar().setBaz(value)
    - -

    Indexed References - Subscripts can be used to access individual - elements of properties whose value is actually an array, or whose - underlying - JavaBean offers indexed getter and setter methods. For example, the - following - property reference in a getter (such as the - <bean:define> - tag discussed below):

    - -
     property="foo[2]"
    - -

    is translated into the equivalent of the Java expression:

    - -
     getFoo(2);
    - -

    while the same property reference in a setter would call the equivalent - of:

    - -
     setFoo(2, value)
    - -

    As you can see from the above translations, the subscripts used in indexed - references are zero relative (that is, the first element - in an array is foo[0]), just as is true in the Java language. -

    - -

    Combined References - Nesting and indexing can be combined in - arbitrary ways, so that expressions like foo.bar[0].baz[2] - are - legal. You must be careful, of course, to ensure that the actual beans - being - accessed by these references have properties of the appropriate names and - types. Otherwise, JSP runtime exceptions will be thrown.

    - -

    See the JavaDocs for PropertyUtils - for more detailed information about the mechanisms that Struts uses to - access - properties in a general way, through Java reflection APIs.

    - -
    - -

    Bean Creation

    - -
    Introduction
    - -

    New beans can be created, and introduced into one of the four standard - JSP scopes (page, request, session, and application) through a variety of - techniques. The following subsections describe the use of the following - approaches:

    - -
      -
    • Java Code in Action Classes
    • -
    • Java Code in Scriptlets
    • -
    • The Standard <jsp:useBean> Tag
    • -
    • The Struts <bean:define> Tag
    • -
    • Other Struts Copying Tags
    • - -
    - -
    Java Code in Action Classes
    - -

    Because the JSP pages are compiled into Servlets, your Action - classes that are invoked by the Struts controller servlet have convenient - access to three of the four standard JSP scopes (request, session, and - application). - It is very common practice for the business logic contained in your - Action class to create results that are stored in request or - session - scope, which will be used by a JSP page you forward control to in - rendering - the next page of the user interface.

    - -

    Request Scope - To store a bean in request scope under name - "cust", - your Action class would execute code similar to this:

    - -
     Customer customer = ... create or acquire a customer reference ...;
    - request.setAttribute("cust", customer);
    - -

    Session Scope - To store a bean in session scope under name "user" - (perhaps in a logon action), your Action class would execute - code similar to this:

    - -
     User user = ... look up valid user in the database ...;
    HttpSession - session = request.getSession();
    session.setAttribute("user", user); -
    - -

    Application Scope - Generally, application scope beans are - initialized - in the init() method of a startup servlet. However, it is - legal - for an Action class to create such beans, if this is - appropriate, - like this:

    - -
     Foo foo = ... create a Foo ...;
    - servlet.getServletContext().setAttribute("foo", foo);
    - -
    Java Code in Scriptlets
    - -

    While it is not a recommended practice in Struts-based applications - (because - developers will be tempted to mix business logic and presentation logic in - their JSP pages), it is legal for scriptlet code in a JSP page to create - new JavaBeans dynamically, and add them to any of the four possible - scopes, - as demonstrated in the code examples below:

    - -

    Page Scope - To store a bean in page scope under name "foo", your - scriptlet must execute code like this:

    - -
    <%
    Foo foo = ... create a foo ...;
    - pageContext.setAttribute("foo", foo, PageContext.PAGE_SCOPE);
    %>
    -
    - -

    Request Scope - To store a bean in request scope under name - "cust", - your scriplet must execute code like this:

    - -
    <%
    Customer customer = ... create or acquire a customer reference - ...;
    pageContext.setAttribute("cust", customer, - PageContext.REQUEST_SCOPE);
    %>
    - -

    Session Scope - To store a bean in session scope under name - "user", - (perhaps as a result of a validated login), your scriplet must execute - code - like this:

    - -
    <%
    User user = ... look up valid user in the database ...;
    - pageContext.setAttribute("user", user, PageContext.SESSION_SCOPE);
    %> -
    - -

    Application Scope - Generally, application scope beans are - initialized - in the init() method of a startup servlet. However, a - scriptlet - can create such beans, if appropriate, like this:

    - -
    <%
    Foo foo = ... create a Foo ...;
    - pageContext.setAttribute("foo", foo, PageContext.APPLICATION_SCOPE);
    %> -
    - -

    NOTE - As mentioned above, using scriptlets in your JSP - pages is strongly discouraged in a Struts based application, unless you - are - executing code that is only related to presentation of - existing - data. In general, your application's processing logic should be - encapsulated - in Action classes (or in beans or EJBs called by those - classes), - rather than being intermixed in your JSP pages.

    - -
    The Standard <jsp:useBean> Tag
    - -

    JavaServer Pages (JSP) offers a standard tag, - <jsp:useBean> - that can be used to create a new bean, or introduce a reference to an - existing - bean, into a JSP page. Beans (or bean references) introduced through this - mechanism are completely interoperable with beans created by any of the - Struts - creation techniques described in this section.

    - -

    You must use <jsp:useBean> to introduce - a reference to an existing bean, if you wish to reference that bean with - other standard JSP tags (such as <jsp:getProperty> or - - <jsp:setProperty>). If you only wish to reference such - beans - with other Struts tags, use of <jsp:useBean> is not - required.

    - -

    For more information about the <jsp:useBean> tag, see - the JavaServer Pages Specification, available at - http://java.sun.com/products/jsp/download.html - .

    - -
    The Struts <bean:define> Tag
    - -

    Struts provides a powerful, general purpose, tag ( - <bean:define> - ) that can be used to create a new bean, in any scope, by copying another - bean (or the value of the property of another bean). This tag supports the - "property" attribute, and therefore all the power of property references, - as discused above - . It can be used in a variety of different ways, described further below. - Unless you specify the "toScope" attribute, all defined beans will be - created - in page scope.

    - -

    Introduce A String Constant - You can create a new bean that - has a constant String value (or the result of calculating a runtime - expression): -

    - -
        <bean:define id="foo" value="This is a new String"/>
    <bean:define - id="bar" value='<%= "Hello, " + user.getName() %>'/>
    <bean:define - id="last" scope="session"
    value='<%= request.getRequestURI() %>'/> -
    - -

    Copy An Existing Bean - You can create a new reference to an - existing - bean object. You can specify the Java class or interface the new bean is - expected to conform to with the "type" attribute, or accept the default - type - of java.lang.Object (this only affects the scripting variable - that is exposed to scriptlets, so it is not generally meaningful in - Struts-based - applications).

    - -
        <bean:define id="foo" name="bar"/>
    <bean:define id="baz" - name="bop" type="com.mycompany.MyBopClass"/>
    - -

    Copy An Existing Bean Property - You can create a new bean that - is initialized to the value returned by a property getter. The value of - the "property" attribute can be any simple, nested, or indexed property - reference - that follows the rules described earlier. In the first example below, we - also illustrate accessing the property of a request scope bean, and - creating - the new bean in session scope (rather than the default page scope).

    - -
        <bean:define id="foo" name="bar" property="baz" scope="request"
    -    
    toScope="session"/>
    <bean:define id="bop" name="user" - property="role[3].name"/>
    - -
    Other Struts Copying Tags
    - -

    Struts offers a variety of bean creation tags that copy existing beans - (or bean properties) from the environment within which this page is - running, - and the request that is currently being processed. Not all of the - attributes - for each tag are illustrated in the examples below - see the - Bean Tags Reference - for more information. Any bean created by these tags exists only in page - scope, for the remainder of the current page.

    - -

    Copy A Cookie - You can create a new bean containing a - javax.servlet.http.Cookie that was included in the current request. - If no cookie of the specified name was included, a request time expression - will be thrown - therefore, it is common to nest the use of this tag - inside - a <logic:present cookie="xxx"> tag to ensure that the - cookie was really included. If there is the possibility that more than one - cookie of the same name was included, specify the "multiple" attribute - (and - the resulting bean will be an array of Cookies, instead of a single - Cookie).

    - -
        <bean:cookie id="foo" name="cookiename"/>
    <bean:cookie - id="all" name="JSESSIONID" multiple="true"/>
    - -

    Copy A Request Header - You can create a new bean containing - the value of an HTTP header included in this request. If no header of the - specified name was included, a request time exception will be thrown - - therefore, - it is common to nest the use of this tag inside a <logic:present - header="xxx"> tag to ensure that the header was really included. - If there is the possibility that more than one header of the same name was - included, specify the "multiple" attribute (and the resulting value bean - will be an array of String values, instead of a single String).

    - -
        <bean:header id="agent" name="User-Agent"/>
    <bean:header - id="languages" name="Accept-Language" multiple="true"/>
    - -

    Copy A Dynamically Created Response - You can generate an internal - request to the application you are running, and turn the response data - that - is returned from that request into a bean (of type String). One possible - use for this technique is to acquire dynamically created XML formatted - data - that will be stored in a bean and later manipulated (such as by applying - an XSLT stylesheet). If the current request is part of a session, the - generated - request for the include will also include the session identifier (and thus - be considered part of the same session).

    - -
        <bean:include id="text" page="/generateXml?param1=a&param2=b"/>
    -    
    - -

    Copy A JSP Implicitly Defined Object - You can create a bean - that is one of the JSP implicitly defined objects (see the JSP spec for - more - details). This is useful if you wish to perform property getter actions - against - the implicit object with a custom tag instead of a scriptlet.

    - -
        <bean:page id="app" property="application"/>
    <bean:page - id="sess" property="session"/>
    - -

    Copy A Request Parameter - You can create a new bean containing - the value of a parameter included in this request. If no parameter of the - specified name was included, a request time exception will be thrown - - therefore, - it is common to nest the use of this tag inside a <logic:present - parameter="xxx"> tag to ensure that the parameter was really - included. - If there is the possibility that more than one parameter of the same name - was included, specify the "multiple" attribute (and the resulting value - bean - will be an array of String values, instead of a single String).

    - -
        <bean:parameter id="name" name="name"/>
    <bean:header - id="options" name="option" multiple="true"/>
    - -

    Copy a Web Application Resource - You can create a new bean - containing - either the value of a web application resource as a String, or a - java.io.InputStream - for reading the content of that resource. The resource is accessed with - a context-relative path (beginning with "/"), using the - ServletContext.getResource() - or ServletContext.getResourceAsStream() methods on the - underlying - application object.

    - -
        <bean:resource id="deployment" name="/WEB-INF/web.xml"/>
    - <bean:resource id="stream" name="/WEB-INF/web.xml"
    input="true"/> -
    - -

    Copy A Struts Configuration Object - You can create a new bean - containing one of the standard Struts framework configuration objects. - Doing - this gives you access to the properties of the configuration object, if - needed. -

    - -
        <bean:struts id="form" formBean="CustomerForm"/>
    <bean:struts - id="fwd" forward="success"/>
    <bean:struts id="map" - mapping="/saveCustomer"/>
    - -
    - -

    Bean Output

    - -

    None of the Struts Bean tags discussed so far render any output to the - response page that is being generated from this JSP page. They are - executed - in order to make relevant Java objects visible as beans for further - manipulation. - The following tags cause output to be written to the response, and - therefore - made visible to the ultimate requester.

    - -

    Render An Internationalized Message - You can specify a message - key (with optional parameter replacement objects) that are passed to a - MessageResources - object that returns the corresponding message text. The message text will - be copied to the response currently being created. By default, messages - are looked up in the application resources bundle that is initialized for - you (as an application scope bean) by the Struts controller servlet, using - the Locale must recently stored in the user's session. These defaults can - be overridden by setting values for the "bundle" and "locale" attributes, - as described in the - Bean Tags Reference - .

    -
        <bean:message key="label.Cancel"/>
    <bean:message - key="message.hello" arg0='<%= user.getFullName() %>'/>
    - -

    Render A Bean or Bean Property - The contents of a bean, or bean - property, are converted to a String and then copied to the response - currently - being created. This tag understands the syntax for simple, nested, and - indexed - property references described - above - . Beans from any scope can be requested - by default, the scopes are - searched - in expanding visibility order (page, request, session, and application) to - locate the requested bean.

    - -
        <bean:write name="username"/>
    <bean:write name="user" - property="fullName"/>
    <bean:write name="customer" - property="orders[2].partNumber"
    scope="session"/>
    - - - diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseFieldTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseFieldTag.java deleted file mode 100644 index 95e35d0631d..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseFieldTag.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * $Id: BaseFieldTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.html; - -import org.apache.struts.taglib.TagUtils; - -import javax.servlet.jsp.JspException; - -/** - * Convenience base class for the various input tags for text fields. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public abstract class BaseFieldTag extends BaseInputTag { - // ----------------------------------------------------- Instance Variables - - /** - * Comma-delimited list of content types that a server processing this - * form will handle correctly. This property is defined only for the - * file tag, but is implemented here because it affects the - * rendered HTML of the corresponding <input> tag. - */ - protected String accept = null; - - /** - * The "redisplay contents" flag (used only on password). - */ - protected boolean redisplay = true; - - /** - * The type of input field represented by this tag (text, password, or - * hidden). - */ - protected String type = null; - - public String getAccept() { - return (this.accept); - } - - public void setAccept(String accept) { - this.accept = accept; - } - - public boolean getRedisplay() { - return (this.redisplay); - } - - public void setRedisplay(boolean redisplay) { - this.redisplay = redisplay; - } - - // --------------------------------------------------------- Public Methods - - /** - * Generate the required input tag.

    Support for indexed property since - * Struts 1.1 - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - TagUtils.getInstance().write(this.pageContext, this.renderInputElement()); - - return (EVAL_BODY_TAG); - } - - /** - * Renders a fully formed <input> element. - * - * @throws JspException - * @since Struts 1.2 - */ - protected String renderInputElement() - throws JspException { - StringBuffer results = new StringBuffer("String. This - * implementation escapes potentially harmful HTML characters. - * - * @param value The value to be formatted. null values will - * be returned as the empty String "". - * @throws JspException if a JSP exception has occurred - * @since Struts 1.2 - */ - protected String formatValue(Object value) - throws JspException { - if (value == null) { - return ""; - } - - return TagUtils.getInstance().filter(value.toString()); - } - - /** - * Release any acquired resources. - */ - public void release() { - super.release(); - accept = null; - name = Constants.BEAN_KEY; - redisplay = true; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseHandlerTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseHandlerTag.java deleted file mode 100644 index 47ece643fb7..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseHandlerTag.java +++ /dev/null @@ -1,1224 +0,0 @@ -/* - * $Id: BaseHandlerTag.java 479633 2006-11-27 14:25:35Z pbenedict $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.html; - -import org.apache.commons.beanutils.BeanUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts.Globals; -import org.apache.struts.action.ActionMessages; -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.taglib.logic.IterateTag; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.RequestUtils; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.BodyTagSupport; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -/** - * Base class for tags that render form elements capable of including - * JavaScript event handlers and/or CSS Style attributes. This class does not - * implement the doStartTag() or doEndTag() methods. Subclasses should provide - * appropriate implementations of these. - * - * @version $Rev: 479633 $ $Date: 2006-11-27 15:25:35 +0100 (Mon, 27 Nov 2006) $ - */ -public abstract class BaseHandlerTag extends BodyTagSupport { - /** - * Commons Logging instance. - */ - private static Log log = LogFactory.getLog(BaseHandlerTag.class); - - // ----------------------------------------------------- Instance Variables - - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources(Constants.Package - + ".LocalStrings"); - - // Navigation Management - - /** - * Access key character. - */ - protected String accesskey = null; - - /** - * Tab index value. - */ - protected String tabindex = null; - - // Indexing ability for Iterate - - /** - * Whether to created indexed names for fields - * - * @since Struts 1.1 - */ - protected boolean indexed = false; - - // Mouse Events - - /** - * Mouse click event. - */ - private String onclick = null; - - /** - * Mouse double click event. - */ - private String ondblclick = null; - - /** - * Mouse over component event. - */ - private String onmouseover = null; - - /** - * Mouse exit component event. - */ - private String onmouseout = null; - - /** - * Mouse moved over component event. - */ - private String onmousemove = null; - - /** - * Mouse pressed on component event. - */ - private String onmousedown = null; - - /** - * Mouse released on component event. - */ - private String onmouseup = null; - - // Keyboard Events - - /** - * Key down in component event. - */ - private String onkeydown = null; - - /** - * Key released in component event. - */ - private String onkeyup = null; - - /** - * Key down and up together in component event. - */ - private String onkeypress = null; - - // Text Events - - /** - * Text selected in component event. - */ - private String onselect = null; - - /** - * Content changed after component lost focus event. - */ - private String onchange = null; - - // Focus Events and States - - /** - * Component lost focus event. - */ - private String onblur = null; - - /** - * Component has received focus event. - */ - private String onfocus = null; - - /** - * Component is disabled. - */ - private boolean disabled = false; - - /** - * Indicates whether 'disabled' is a valid attribute - */ - protected boolean doDisabled = true; - - /** - * Component is readonly. - */ - private boolean readonly = false; - - /** - *

    Indicates whether 'readonly' is a valid attribute.

    - * - *

    According to the HTML 4.0 Specification <readonly> is valid - * for <input type="text">, <input type="password"> and - * <textarea"> elements. Therefore, except for those tags this value - * is set to false.

    - */ - protected boolean doReadonly = false; - - // CSS Style Support - - /** - * Style attribute associated with component. - */ - private String style = null; - - /** - * Named Style class associated with component. - */ - private String styleClass = null; - - /** - * Identifier associated with component. - */ - private String styleId = null; - - /** - * The request attribute key for our error messages (if any). - */ - private String errorKey = Globals.ERROR_KEY; - - /** - * Style attribute associated with component when errors exist. - */ - private String errorStyle = null; - - /** - * Named Style class associated with component when errors exist. - */ - private String errorStyleClass = null; - - /** - * Identifier associated with component when errors exist. - */ - private String errorStyleId = null; - - // Other Common Attributes - - /** - * The alternate text of this element. - */ - private String alt = null; - - /** - * The message resources key of the alternate text. - */ - private String altKey = null; - - /** - * The name of the message resources bundle for message lookups. - */ - private String bundle = null; - - /** - * The name of the session attribute key for our locale. - */ - private String locale = Globals.LOCALE_KEY; - - /** - * The advisory title of this element. - */ - private String title = null; - - /** - * The language code of this element. - */ - private String lang = null; - - /** - * The direction for weak/neutral text of this element. - */ - private String dir = null; - - /** - * The message resources key of the advisory title. - */ - private String titleKey = null; - private Class loopTagClass = null; - private Method loopTagGetStatus = null; - private Class loopTagStatusClass = null; - private Method loopTagStatusGetIndex = null; - private boolean triedJstlInit = false; - private boolean triedJstlSuccess = false; - - // ------------------------------------------------------------- Properties - // Navigation Management - - /** - * Sets the accessKey character. - */ - public void setAccesskey(String accessKey) { - this.accesskey = accessKey; - } - - /** - * Returns the accessKey character. - */ - public String getAccesskey() { - return (this.accesskey); - } - - /** - * Sets the tabIndex value. - */ - public void setTabindex(String tabIndex) { - this.tabindex = tabIndex; - } - - /** - * Returns the tabIndex value. - */ - public String getTabindex() { - return (this.tabindex); - } - - // Indexing ability for Iterate [since Struts 1.1] - - /** - * Sets the indexed value. - * - * @since Struts 1.1 - */ - public void setIndexed(boolean indexed) { - this.indexed = indexed; - } - - /** - * Returns the indexed value. - * - * @since Struts 1.1 - */ - public boolean getIndexed() { - return (this.indexed); - } - - // Mouse Events - - /** - * Sets the onClick event handler. - */ - public void setOnclick(String onClick) { - this.onclick = onClick; - } - - /** - * Returns the onClick event handler. - */ - public String getOnclick() { - return onclick; - } - - /** - * Sets the onDblClick event handler. - */ - public void setOndblclick(String onDblClick) { - this.ondblclick = onDblClick; - } - - /** - * Returns the onDblClick event handler. - */ - public String getOndblclick() { - return ondblclick; - } - - /** - * Sets the onMouseDown event handler. - */ - public void setOnmousedown(String onMouseDown) { - this.onmousedown = onMouseDown; - } - - /** - * Returns the onMouseDown event handler. - */ - public String getOnmousedown() { - return onmousedown; - } - - /** - * Sets the onMouseUp event handler. - */ - public void setOnmouseup(String onMouseUp) { - this.onmouseup = onMouseUp; - } - - /** - * Returns the onMouseUp event handler. - */ - public String getOnmouseup() { - return onmouseup; - } - - /** - * Sets the onMouseMove event handler. - */ - public void setOnmousemove(String onMouseMove) { - this.onmousemove = onMouseMove; - } - - /** - * Returns the onMouseMove event handler. - */ - public String getOnmousemove() { - return onmousemove; - } - - /** - * Sets the onMouseOver event handler. - */ - public void setOnmouseover(String onMouseOver) { - this.onmouseover = onMouseOver; - } - - /** - * Returns the onMouseOver event handler. - */ - public String getOnmouseover() { - return onmouseover; - } - - /** - * Sets the onMouseOut event handler. - */ - public void setOnmouseout(String onMouseOut) { - this.onmouseout = onMouseOut; - } - - /** - * Returns the onMouseOut event handler. - */ - public String getOnmouseout() { - return onmouseout; - } - - // Keyboard Events - - /** - * Sets the onKeyDown event handler. - */ - public void setOnkeydown(String onKeyDown) { - this.onkeydown = onKeyDown; - } - - /** - * Returns the onKeyDown event handler. - */ - public String getOnkeydown() { - return onkeydown; - } - - /** - * Sets the onKeyUp event handler. - */ - public void setOnkeyup(String onKeyUp) { - this.onkeyup = onKeyUp; - } - - /** - * Returns the onKeyUp event handler. - */ - public String getOnkeyup() { - return onkeyup; - } - - /** - * Sets the onKeyPress event handler. - */ - public void setOnkeypress(String onKeyPress) { - this.onkeypress = onKeyPress; - } - - /** - * Returns the onKeyPress event handler. - */ - public String getOnkeypress() { - return onkeypress; - } - - // Text Events - - /** - * Sets the onChange event handler. - */ - public void setOnchange(String onChange) { - this.onchange = onChange; - } - - /** - * Returns the onChange event handler. - */ - public String getOnchange() { - return onchange; - } - - /** - * Sets the onSelect event handler. - */ - public void setOnselect(String onSelect) { - this.onselect = onSelect; - } - - /** - * Returns the onSelect event handler. - */ - public String getOnselect() { - return onselect; - } - - // Focus Events and States - - /** - * Sets the onBlur event handler. - */ - public void setOnblur(String onBlur) { - this.onblur = onBlur; - } - - /** - * Returns the onBlur event handler. - */ - public String getOnblur() { - return onblur; - } - - /** - * Sets the onFocus event handler. - */ - public void setOnfocus(String onFocus) { - this.onfocus = onFocus; - } - - /** - * Returns the onFocus event handler. - */ - public String getOnfocus() { - return onfocus; - } - - /** - * Sets the disabled event handler. - */ - public void setDisabled(boolean disabled) { - this.disabled = disabled; - } - - /** - * Returns the disabled event handler. - */ - public boolean getDisabled() { - return disabled; - } - - /** - * Sets the readonly event handler. - */ - public void setReadonly(boolean readonly) { - this.readonly = readonly; - } - - /** - * Returns the readonly event handler. - */ - public boolean getReadonly() { - return readonly; - } - - // CSS Style Support - - /** - * Sets the style attribute. - */ - public void setStyle(String style) { - this.style = style; - } - - /** - * Returns the style attribute. - */ - public String getStyle() { - return style; - } - - /** - * Sets the style class attribute. - */ - public void setStyleClass(String styleClass) { - this.styleClass = styleClass; - } - - /** - * Returns the style class attribute. - */ - public String getStyleClass() { - return styleClass; - } - - /** - * Sets the style id attribute. - */ - public void setStyleId(String styleId) { - this.styleId = styleId; - } - - /** - * Returns the style id attribute. - */ - public String getStyleId() { - return styleId; - } - - /** - * Returns the error key attribute. - */ - public String getErrorKey() { - return errorKey; - } - - /** - * Sets the error key attribute. - */ - public void setErrorKey(String errorKey) { - this.errorKey = errorKey; - } - - /** - * Returns the error style attribute. - */ - public String getErrorStyle() { - return errorStyle; - } - - /** - * Sets the error style attribute. - */ - public void setErrorStyle(String errorStyle) { - this.errorStyle = errorStyle; - } - - /** - * Returns the error style class attribute. - */ - public String getErrorStyleClass() { - return errorStyleClass; - } - - /** - * Sets the error style class attribute. - */ - public void setErrorStyleClass(String errorStyleClass) { - this.errorStyleClass = errorStyleClass; - } - - /** - * Returns the error style id attribute. - */ - public String getErrorStyleId() { - return errorStyleId; - } - - /** - * Sets the error style id attribute. - */ - public void setErrorStyleId(String errorStyleId) { - this.errorStyleId = errorStyleId; - } - - // Other Common Elements - - /** - * Returns the alternate text attribute. - */ - public String getAlt() { - return alt; - } - - /** - * Sets the alternate text attribute. - */ - public void setAlt(String alt) { - this.alt = alt; - } - - /** - * Returns the message resources key of the alternate text. - */ - public String getAltKey() { - return altKey; - } - - /** - * Sets the message resources key of the alternate text. - */ - public void setAltKey(String altKey) { - this.altKey = altKey; - } - - /** - * Returns the name of the message resources bundle to use. - */ - public String getBundle() { - return bundle; - } - - /** - * Sets the name of the message resources bundle to use. - */ - public void setBundle(String bundle) { - this.bundle = bundle; - } - - /** - * Returns the name of the session attribute for our locale. - */ - public String getLocale() { - return locale; - } - - /** - * Sets the name of the session attribute for our locale. - */ - public void setLocale(String locale) { - this.locale = locale; - } - - /** - * Returns the advisory title attribute. - */ - public String getTitle() { - return title; - } - - /** - * Sets the advisory title attribute. - */ - public void setTitle(String title) { - this.title = title; - } - - /** - * Returns the message resources key of the advisory title. - */ - public String getTitleKey() { - return titleKey; - } - - /** - * Sets the message resources key of the advisory title. - */ - public void setTitleKey(String titleKey) { - this.titleKey = titleKey; - } - - /** - * Returns the language code of this element. - * - * @since Struts 1.3.6 - */ - public String getLang() { - return this.lang; - } - - /** - * Sets the language code of this element. - * - * @since Struts 1.3.6 - */ - public void setLang(String lang) { - this.lang = lang; - } - - /** - * Returns the direction for weak/neutral text this element. - * - * @since Struts 1.3.6 - */ - public String getDir() { - return this.dir; - } - - /** - * Sets the direction for weak/neutral text of this element. - * - * @since Struts 1.3.6 - */ - public void setDir(String dir) { - this.dir = dir; - } - - // --------------------------------------------------------- Public Methods - - /** - * Release any acquired resources. - */ - public void release() { - super.release(); - accesskey = null; - alt = null; - altKey = null; - bundle = null; - dir = null; - errorKey = Globals.ERROR_KEY; - errorStyle = null; - errorStyleClass = null; - errorStyleId = null; - indexed = false; - lang = null; - locale = Globals.LOCALE_KEY; - onclick = null; - ondblclick = null; - onmouseover = null; - onmouseout = null; - onmousemove = null; - onmousedown = null; - onmouseup = null; - onkeydown = null; - onkeyup = null; - onkeypress = null; - onselect = null; - onchange = null; - onblur = null; - onfocus = null; - disabled = false; - readonly = false; - style = null; - styleClass = null; - styleId = null; - tabindex = null; - title = null; - titleKey = null; - } - - // ------------------------------------------------------ Protected Methods - - /** - * Return the text specified by the literal value or the message resources - * key, if any; otherwise return null. - * - * @param literal Literal text value or null - * @param key Message resources key or null - * @throws JspException if both arguments are non-null - */ - protected String message(String literal, String key) - throws JspException { - if (literal != null) { - if (key != null) { - JspException e = - new JspException(messages.getMessage("common.both")); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } else { - return (literal); - } - } else { - if (key != null) { - return TagUtils.getInstance().message(pageContext, getBundle(), - getLocale(), key); - } else { - return null; - } - } - } - - private Integer getJstlLoopIndex() { - if (!triedJstlInit) { - triedJstlInit = true; - - try { - loopTagClass = - RequestUtils.applicationClass( - "javax.servlet.jsp.jstl.core.LoopTag"); - - loopTagGetStatus = - loopTagClass.getDeclaredMethod("getLoopStatus", null); - - loopTagStatusClass = - RequestUtils.applicationClass( - "javax.servlet.jsp.jstl.core.LoopTagStatus"); - - loopTagStatusGetIndex = - loopTagStatusClass.getDeclaredMethod("getIndex", null); - - triedJstlSuccess = true; - } catch (ClassNotFoundException ex) { - // These just mean that JSTL isn't loaded, so ignore - } catch (NoSuchMethodException ex) { - } - } - - if (triedJstlSuccess) { - try { - Object loopTag = - findAncestorWithClass(this, loopTagClass); - - if (loopTag == null) { - return null; - } - - Object status = loopTagGetStatus.invoke(loopTag, null); - - return (Integer) loopTagStatusGetIndex.invoke(status, null); - } catch (IllegalAccessException ex) { - log.error(ex.getMessage(), ex); - } catch (IllegalArgumentException ex) { - log.error(ex.getMessage(), ex); - } catch (InvocationTargetException ex) { - log.error(ex.getMessage(), ex); - } catch (NullPointerException ex) { - log.error(ex.getMessage(), ex); - } catch (ExceptionInInitializerError ex) { - log.error(ex.getMessage(), ex); - } - } - - return null; - } - - /** - * Appends bean name with index in brackets for tags with 'true' value in - * 'indexed' attribute. - * - * @param handlers The StringBuffer that output will be appended to. - * @throws JspException if 'indexed' tag used outside of iterate tag. - */ - protected void prepareIndex(StringBuffer handlers, String name) - throws JspException { - if (name != null) { - handlers.append(name); - } - - handlers.append("["); - handlers.append(getIndexValue()); - handlers.append("]"); - - if (name != null) { - handlers.append("."); - } - } - - /** - * Returns the index value for tags with 'true' value in 'indexed' - * attribute. - * - * @return the index value. - * @throws JspException if 'indexed' tag used outside of iterate tag. - */ - protected int getIndexValue() - throws JspException { - // look for outer iterate tag - IterateTag iterateTag = - (IterateTag) findAncestorWithClass(this, IterateTag.class); - - if (iterateTag != null) { - return iterateTag.getIndex(); - } - - // Look for JSTL loops - Integer i = getJstlLoopIndex(); - - if (i != null) { - return i.intValue(); - } - - // this tag should be nested in an IterateTag or JSTL loop tag, if it's not, throw exception - JspException e = - new JspException(messages.getMessage("indexed.noEnclosingIterate")); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - /** - * Prepares the style attributes for inclusion in the component's HTML - * tag. - * - * @return The prepared String for inclusion in the HTML tag. - * @throws JspException if invalid attributes are specified - */ - protected String prepareStyles() - throws JspException { - StringBuffer styles = new StringBuffer(); - - boolean errorsExist = doErrorsExist(); - - if (errorsExist && (getErrorStyleId() != null)) { - prepareAttribute(styles, "id", getErrorStyleId()); - } else { - prepareAttribute(styles, "id", getStyleId()); - } - - if (errorsExist && (getErrorStyle() != null)) { - prepareAttribute(styles, "style", getErrorStyle()); - } else { - prepareAttribute(styles, "style", getStyle()); - } - - if (errorsExist && (getErrorStyleClass() != null)) { - prepareAttribute(styles, "class", getErrorStyleClass()); - } else { - prepareAttribute(styles, "class", getStyleClass()); - } - - prepareAttribute(styles, "title", message(getTitle(), getTitleKey())); - prepareAttribute(styles, "alt", message(getAlt(), getAltKey())); - prepareInternationalization(styles); - - return styles.toString(); - } - - /** - * Determine if there are errors for the component. - * - * @return Whether errors exist. - */ - protected boolean doErrorsExist() - throws JspException { - boolean errorsExist = false; - - if ((getErrorStyleId() != null) || (getErrorStyle() != null) - || (getErrorStyleClass() != null)) { - String actualName = prepareName(); - - if (actualName != null) { - ActionMessages errors = - TagUtils.getInstance().getActionMessages(pageContext, - errorKey); - - errorsExist = ((errors != null) - && (errors.size(actualName) > 0)); - } - } - - return errorsExist; - } - - /** - * Prepares the actual name of the component. - * - * @return The actual component name. - */ - protected String prepareName() - throws JspException { - return null; - } - - /** - * Prepares the event handlers for inclusion in the component's HTML tag. - * - * @return The prepared String for inclusion in the HTML tag. - */ - protected String prepareEventHandlers() { - StringBuffer handlers = new StringBuffer(); - - prepareMouseEvents(handlers); - prepareKeyEvents(handlers); - prepareTextEvents(handlers); - prepareFocusEvents(handlers); - - return handlers.toString(); - } - - /** - * Prepares the mouse event handlers, appending them to the the given - * StringBuffer. - * - * @param handlers The StringBuffer that output will be appended to. - */ - protected void prepareMouseEvents(StringBuffer handlers) { - prepareAttribute(handlers, "onclick", getOnclick()); - prepareAttribute(handlers, "ondblclick", getOndblclick()); - prepareAttribute(handlers, "onmouseover", getOnmouseover()); - prepareAttribute(handlers, "onmouseout", getOnmouseout()); - prepareAttribute(handlers, "onmousemove", getOnmousemove()); - prepareAttribute(handlers, "onmousedown", getOnmousedown()); - prepareAttribute(handlers, "onmouseup", getOnmouseup()); - } - - /** - * Prepares the keyboard event handlers, appending them to the the given - * StringBuffer. - * - * @param handlers The StringBuffer that output will be appended to. - */ - protected void prepareKeyEvents(StringBuffer handlers) { - prepareAttribute(handlers, "onkeydown", getOnkeydown()); - prepareAttribute(handlers, "onkeyup", getOnkeyup()); - prepareAttribute(handlers, "onkeypress", getOnkeypress()); - } - - /** - * Prepares the text event handlers, appending them to the the given - * StringBuffer. - * - * @param handlers The StringBuffer that output will be appended to. - */ - protected void prepareTextEvents(StringBuffer handlers) { - prepareAttribute(handlers, "onselect", getOnselect()); - prepareAttribute(handlers, "onchange", getOnchange()); - } - - /** - * Prepares the focus event handlers, appending them to the the given - * StringBuffer. - * - * @param handlers The StringBuffer that output will be appended to. - */ - protected void prepareFocusEvents(StringBuffer handlers) { - prepareAttribute(handlers, "onblur", getOnblur()); - prepareAttribute(handlers, "onfocus", getOnfocus()); - - // Get the parent FormTag (if necessary) - FormTag formTag = null; - - if ((doDisabled && !getDisabled()) || (doReadonly && !getReadonly())) { - formTag = - (FormTag) pageContext.getAttribute(Constants.FORM_KEY, - PageContext.REQUEST_SCOPE); - } - - // Format Disabled - if (doDisabled) { - boolean formDisabled = - (formTag == null) ? false : formTag.isDisabled(); - - if (formDisabled || getDisabled()) { - handlers.append(" disabled=\"disabled\""); - } - } - - // Format Read Only - if (doReadonly) { - boolean formReadOnly = - (formTag == null) ? false : formTag.isReadonly(); - - if (formReadOnly || getReadonly()) { - handlers.append(" readonly=\"readonly\""); - } - } - } - - /** - * Prepares the internationalization attribtes, appending them to the the given - * StringBuffer. - * - * @param handlers The StringBuffer that output will be appended to. - * @since Struts 1.3.6 - */ - protected void prepareInternationalization(StringBuffer handlers) { - prepareAttribute(handlers, "lang", getLang()); - prepareAttribute(handlers, "dir", getDir()); - } - - /** - * 'Hook' to enable tags to be extended and additional attributes added. - * - * @param handlers The StringBuffer that output will be appended to. - */ - protected void prepareOtherAttributes(StringBuffer handlers) { - } - - /** - * Prepares an attribute if the value is not null, appending it to the the - * given StringBuffer. - * - * @param handlers The StringBuffer that output will be appended to. - */ - protected void prepareAttribute(StringBuffer handlers, String name, - Object value) { - if (value != null) { - handlers.append(" "); - handlers.append(name); - handlers.append("=\""); - handlers.append(value); - handlers.append("\""); - } - } - - /** - * Allows HTML tags to find out if they're nested within an - * %lt;html:html> tag that has xhtml set to true. - * - * @return true if the tag is nested within an html tag with xhtml set to - * true, false otherwise. - * @since Struts 1.1 - */ - protected boolean isXhtml() { - return TagUtils.getInstance().isXhtml(this.pageContext); - } - - /** - * Returns the closing brace for an input element depending on xhtml - * status. The tag must be nested within an %lt;html:html> tag that - * has xhtml set to true. - * - * @return String - > if xhtml is false, /> if xhtml is true - * @since Struts 1.1 - */ - protected String getElementClose() { - return this.isXhtml() ? " />" : ">"; - } - - /** - * Searches all scopes for the bean and calls BeanUtils.getProperty() with - * the given arguments and converts any exceptions into JspException. - * - * @param beanName The name of the object to get the property from. - * @param property The name of the property to get. - * @return The value of the property. - * @throws JspException - * @since Struts 1.1 - */ - protected String lookupProperty(String beanName, String property) - throws JspException { - Object bean = - TagUtils.getInstance().lookup(this.pageContext, beanName, null); - - if (bean == null) { - throw new JspException(messages.getMessage("getter.bean", beanName)); - } - - try { - return BeanUtils.getProperty(bean, property); - } catch (IllegalAccessException e) { - throw new JspException(messages.getMessage("getter.access", - property, beanName)); - } catch (InvocationTargetException e) { - Throwable t = e.getTargetException(); - - throw new JspException(messages.getMessage("getter.result", - property, t.toString())); - } catch (NoSuchMethodException e) { - throw new JspException(messages.getMessage("getter.method", - property, beanName)); - } - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseInputTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseInputTag.java deleted file mode 100644 index 4a189714599..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseInputTag.java +++ /dev/null @@ -1,238 +0,0 @@ -/* - * $Id: BaseInputTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.html; - -import org.apache.struts.util.MessageResources; - -import javax.servlet.jsp.JspException; - -/** - * Abstract base class for the various input tags. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public abstract class BaseInputTag extends BaseHandlerTag { - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources(Constants.Package - + ".LocalStrings"); - - // ----------------------------------------------------- Instance Variables - - /** - * The number of character columns for this field, or negative for no - * limit. - */ - protected String cols = null; - - /** - * The maximum number of characters allowed, or negative for no limit. - */ - protected String maxlength = null; - - /** - * The name of the field (and associated property) being processed. - */ - protected String property = null; - - /** - * The number of rows for this field, or negative for no limit. - */ - protected String rows = null; - - /** - * The value for this field, or null to retrieve the - * corresponding property from our associated bean. - */ - protected String value = null; - - /** - * The name of the bean containing our underlying property. - */ - protected String name = Constants.BEAN_KEY; - - // ------------------------------------------------------------- Properties - public String getName() { - return (this.name); - } - - public void setName(String name) { - this.name = name; - } - - /** - * Return the number of columns for this field. - */ - public String getCols() { - return (this.cols); - } - - /** - * Set the number of columns for this field. - * - * @param cols The new number of columns - */ - public void setCols(String cols) { - this.cols = cols; - } - - /** - * Return the maximum length allowed. - */ - public String getMaxlength() { - return (this.maxlength); - } - - /** - * Set the maximum length allowed. - * - * @param maxlength The new maximum length - */ - public void setMaxlength(String maxlength) { - this.maxlength = maxlength; - } - - /** - * Return the property name. - */ - public String getProperty() { - return (this.property); - } - - /** - * Set the property name. - * - * @param property The new property name - */ - public void setProperty(String property) { - this.property = property; - } - - /** - * Return the number of rows for this field. - */ - public String getRows() { - return (this.rows); - } - - /** - * Set the number of rows for this field. - * - * @param rows The new number of rows - */ - public void setRows(String rows) { - this.rows = rows; - } - - /** - * Return the size of this field (synonym for getCols()). - */ - public String getSize() { - return (getCols()); - } - - /** - * Set the size of this field (synonym for setCols()). - * - * @param size The new size - */ - public void setSize(String size) { - setCols(size); - } - - /** - * Return the field value (if any). - */ - public String getValue() { - return (this.value); - } - - /** - * Set the field value (if any). - * - * @param value The new field value, or null to retrieve the - * corresponding property from the bean - */ - public void setValue(String value) { - this.value = value; - } - - // --------------------------------------------------------- Public Methods - - /** - * Process the start of this tag. The default implementation does - * nothing. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - return (EVAL_BODY_TAG); - } - - /** - * Process the end of this tag. The default implementation does nothing. - * - * @throws JspException if a JSP exception has occurred - */ - public int doEndTag() throws JspException { - return (EVAL_PAGE); - } - - /** - * Prepare the name element - * - * @return The element name. - */ - protected String prepareName() - throws JspException { - if (property == null) { - return null; - } - - // * @since Struts 1.1 - if (indexed) { - StringBuffer results = new StringBuffer(); - - prepareIndex(results, name); - results.append(property); - - return results.toString(); - } - - return property; - } - - /** - * Release any acquired resources. - */ - public void release() { - super.release(); - name = Constants.BEAN_KEY; - cols = null; - maxlength = null; - property = null; - rows = null; - value = null; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseTag.java deleted file mode 100644 index 88c9478b15f..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/BaseTag.java +++ /dev/null @@ -1,221 +0,0 @@ -/* - * $Id: BaseTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.html; - -import org.apache.struts.Globals; -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.RequestUtils; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.JspWriter; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.TagSupport; - -import java.io.IOException; - -import java.util.StringTokenizer; - -/** - * Renders an HTML element with an href attribute pointing to the - * absolute location of the enclosing JSP page. This tag is only valid when - * nested inside a head tag body. The presence of this tag allows the browser - * to resolve relative URL's to images, CSS stylesheets and other resources - * in a manner independent of the URL used to call the ActionServlet. - * - * @version $Rev: 471754 $ $Date: 2005-09-20 02:29:01 -0400 (Tue, 20 Sep 2005) - * $ - */ -public class BaseTag extends TagSupport { - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources(Constants.Package - + ".LocalStrings"); - protected final String REF_SITE = "site"; - protected final String REF_PAGE = "page"; - - /** - * The server name to use instead of request.getServerName(). - */ - protected String server = null; - - /** - * The target window for this base reference. - */ - protected String target = null; - - /** - * The reference to which the base will created. - */ - protected String ref = REF_PAGE; - - /** - * Gets the reference to which the base will be created - */ - public String getRef() { - return (this.ref); - } - - /** - * Sets the reference to which the base will be created. - * - * @param ref Either "page" to render the base as the jsp path located, or - * "site" as the application's context - */ - public void setRef(String ref) { - if (ref == null) { - throw new IllegalArgumentException("Ref attribute cannot be null"); - } - - ref = ref.toLowerCase(); - - if (ref.equals(REF_PAGE) || ref.equals(REF_SITE)) { - this.ref = ref; - } else { - throw new IllegalArgumentException("Ref attribute must either be " - + "'" + REF_PAGE + "' or '" + REF_SITE + "'"); - } - } - - public String getTarget() { - return (this.target); - } - - public void setTarget(String target) { - this.target = target; - } - - /** - * Process the start of this tag. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - HttpServletRequest request = - (HttpServletRequest) pageContext.getRequest(); - String serverName = - (this.server == null) ? request.getServerName() : this.server; - - int port = request.getServerPort(); - String headerHost = request.getHeader("Host"); - - if ((serverName == null) && (headerHost != null)) { - StringTokenizer tokenizer = new StringTokenizer(headerHost, ":"); - - serverName = tokenizer.nextToken(); - - if (tokenizer.hasMoreTokens()) { - String portS = tokenizer.nextToken(); - - try { - port = Integer.parseInt(portS); - } catch (Exception e) { - port = 80; - } - } else { - port = 80; - } - } - - String baseTag = - renderBaseElement(request.getScheme(), serverName, port, - request.getRequestURI()); - - JspWriter out = pageContext.getOut(); - - try { - out.write(baseTag); - } catch (IOException e) { - pageContext.setAttribute(Globals.EXCEPTION_KEY, e, - PageContext.REQUEST_SCOPE); - throw new JspException(messages.getMessage("common.io", e.toString())); - } - - return EVAL_BODY_INCLUDE; - } - - /** - * Render a fully formed HTML <base> element and return it as a - * String. - * - * @param scheme The scheme used in the url (ie. http or https). - * @param serverName - * @param port - * @param uri The portion of the url from the protocol name up to - * the query string. - * @return String An HTML <base> element. - * @since Struts 1.1 - */ - protected String renderBaseElement(String scheme, String serverName, - int port, String uri) { - StringBuffer tag = new StringBuffer(""); - } else { - tag.append(">"); - } - - return tag.toString(); - } - - /** - * Returns the server. - * - * @return String - */ - public String getServer() { - return this.server; - } - - /** - * Sets the server. - * - * @param server The server to set - */ - public void setServer(String server) { - this.server = server; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ButtonTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ButtonTag.java deleted file mode 100644 index 3e6af64f5d8..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ButtonTag.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * $Id: ButtonTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.html; - - -/** - * Renders an HTML BUTTON tag within the Struts framework. - * - * @version $Rev: 471754 $ $Date: 2004-10-17 02:40:12 -0400 (Sun, 17 Oct 2004) - * $ - */ -public class ButtonTag extends SubmitTag { - /** - * Render the opening element. - * - * @return The opening part of the element. - */ - protected String getElementOpen() { - return " Support for indexed property since - * Struts 1.1 - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - // Create an appropriate "input" element based on our parameters - StringBuffer results = new StringBuffer(" 0) { - text = value; - } - } - - return (SKIP_BODY); - } - - /** - * Process the remainder of this page normally. - * - * @throws JspException if a JSP exception has occurred - */ - public int doEndTag() throws JspException { - // Render any description for this checkbox - if (text != null) { - TagUtils.getInstance().write(pageContext, text); - } - - // Evaluate the remainder of this page - return (EVAL_PAGE); - } - - /** - * Prepare the name element - * - * @return The element name. - */ - protected String prepareName() - throws JspException { - if (property == null) { - return null; - } - - // * @since Struts 1.1 - if (indexed) { - StringBuffer results = new StringBuffer(); - - prepareIndex(results, name); - results.append(property); - - return results.toString(); - } - - return property; - } - - /** - * Release any acquired resources. - */ - public void release() { - super.release(); - name = Constants.BEAN_KEY; - property = null; - text = null; - value = null; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/Constants.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/Constants.java deleted file mode 100644 index b63e1e38ea4..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/Constants.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * $Id: Constants.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.html; - - -/** - * Manifest constants for this package. - */ -public class Constants { - /** - * The name of this package. - */ - public static final String Package = "org.apache.struts.taglib.html"; - - /** - * The attribute key for the bean our form is related to. - */ - public static final String BEAN_KEY = Package + ".BEAN"; - - /** - * The property under which a Cancel button press is reported. - */ - public static final String CANCEL_PROPERTY = Package + ".CANCEL"; - - /** - * The property under which a Cancel button press is reported, if the - * Cancel button is rendered as an image. - */ - public static final String CANCEL_PROPERTY_X = Package + ".CANCEL.x"; - - /** - * The attribute key for the form tag itself. - */ - public static final String FORM_KEY = Package + ".FORM"; - - /** - * The attribute key for the select tag itself. - */ - public static final String SELECT_KEY = Package + ".SELECT"; - - /** - * The property under which a transaction token is reported. - */ - public static final String TOKEN_KEY = Package + ".TOKEN"; -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ErrorsTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ErrorsTag.java deleted file mode 100644 index ef5b39aac5f..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ErrorsTag.java +++ /dev/null @@ -1,291 +0,0 @@ -/* - * $Id: ErrorsTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.html; - -import org.apache.struts.Globals; -import org.apache.struts.action.ActionMessage; -import org.apache.struts.action.ActionMessages; -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.tagext.TagSupport; - -import java.util.Iterator; - -/** - * Custom tag that renders error messages if an appropriate request attribute - * has been created. The tag looks for a request attribute with a reserved - * key, and assumes that it is either a String, a String array, containing - * message keys to be looked up in the module's MessageResources, or an object - * of type org.apache.struts.action.ActionErrors.

    The - * following optional message keys will be utilized if corresponding messages - * exist for them in the application resources: - * - *

      - * - *
    • errors.header - If present, the corresponding message will be - * rendered prior to the individual list of error messages.
    • - * - *
    • errors.footer - If present, the corresponding message will be - * rendered following the individual list of error messages.
    • - * - *
    • errors.prefix - If present, the corresponding message will be - * rendered before each individual error message.
    • - * - *
    • errors.suffix - If present, the corresponding message will be - * rendered after each individual error message.
    • - * - *
    - * - * @version $Rev: 471754 $ $Date: 2005-08-21 19:08:45 -0400 (Sun, 21 Aug 2005) - * $ - */ -public class ErrorsTag extends TagSupport { - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources(Constants.Package - + ".LocalStrings"); - - // ----------------------------------------------------------- Properties - - /** - * The servlet context attribute key for our resources. - */ - protected String bundle = null; - - /** - * The session attribute key for our locale. - */ - protected String locale = Globals.LOCALE_KEY; - - /** - * The request attribute key for our error messages (if any). - */ - protected String name = Globals.ERROR_KEY; - - /** - * The name of the property for which error messages should be returned, - * or null to return all errors. - */ - protected String property = null; - - /** - * The message resource key for errors header. - */ - protected String header = null; - - /** - * The message resource key for errors footer. - */ - protected String footer = null; - - /** - * The message resource key for errors prefix. - */ - protected String prefix = null; - - /** - * The message resource key for errors suffix. - */ - protected String suffix = null; - - public String getBundle() { - return (this.bundle); - } - - public void setBundle(String bundle) { - this.bundle = bundle; - } - - public String getLocale() { - return (this.locale); - } - - public void setLocale(String locale) { - this.locale = locale; - } - - public String getName() { - return (this.name); - } - - public void setName(String name) { - this.name = name; - } - - public String getProperty() { - return (this.property); - } - - public void setProperty(String property) { - this.property = property; - } - - public String getHeader() { - return (header == null) ? "errors.header" : header; - } - - public void setHeader(String header) { - this.header = header; - } - - public String getFooter() { - return (footer == null) ? "errors.footer" : footer; - } - - public void setFooter(String footer) { - this.footer = footer; - } - - public String getPrefix() { - return (prefix == null) ? "errors.prefix" : prefix; - } - - public void setPrefix(String prefix) { - this.prefix = prefix; - } - - public String getSuffix() { - return (suffix == null) ? "errors.suffix" : suffix; - } - - public void setSuffix(String suffix) { - this.suffix = suffix; - } - - // ------------------------------------------------------- Public Methods - - /** - * Render the specified error messages if there are any. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - // Were any error messages specified? - ActionMessages errors = null; - - try { - errors = - TagUtils.getInstance().getActionMessages(pageContext, name); - } catch (JspException e) { - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - if ((errors == null) || errors.isEmpty()) { - return (EVAL_BODY_INCLUDE); - } - - boolean headerPresent = - TagUtils.getInstance().present(pageContext, bundle, locale, - getHeader()); - - boolean footerPresent = - TagUtils.getInstance().present(pageContext, bundle, locale, - getFooter()); - - boolean prefixPresent = - TagUtils.getInstance().present(pageContext, bundle, locale, - getPrefix()); - - boolean suffixPresent = - TagUtils.getInstance().present(pageContext, bundle, locale, - getSuffix()); - - // Render the error messages appropriately - StringBuffer results = new StringBuffer(); - boolean headerDone = false; - String message = null; - Iterator reports = - (property == null) ? errors.get() : errors.get(property); - - while (reports.hasNext()) { - ActionMessage report = (ActionMessage) reports.next(); - - if (!headerDone) { - if (headerPresent) { - message = - TagUtils.getInstance().message(pageContext, bundle, - locale, getHeader()); - - results.append(message); - } - - headerDone = true; - } - - if (prefixPresent) { - message = - TagUtils.getInstance().message(pageContext, bundle, locale, - getPrefix()); - results.append(message); - } - - if (report.isResource()) { - message = - TagUtils.getInstance().message(pageContext, bundle, locale, - report.getKey(), report.getValues()); - } else { - message = report.getKey(); - } - - if (message != null) { - results.append(message); - } - - if (suffixPresent) { - message = - TagUtils.getInstance().message(pageContext, bundle, locale, - getSuffix()); - results.append(message); - } - } - - if (headerDone && footerPresent) { - message = - TagUtils.getInstance().message(pageContext, bundle, locale, - getFooter()); - results.append(message); - } - - TagUtils.getInstance().write(pageContext, results.toString()); - - return (EVAL_BODY_INCLUDE); - } - - /** - * Release any acquired resources. - */ - public void release() { - super.release(); - bundle = Globals.MESSAGES_KEY; - locale = Globals.LOCALE_KEY; - name = Globals.ERROR_KEY; - property = null; - header = null; - footer = null; - prefix = null; - suffix = null; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/FileTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/FileTag.java deleted file mode 100644 index 7bf33d77fdf..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/FileTag.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id: FileTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.html; - - -/** - * Custom tag for input fields of type "file". - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - */ -public class FileTag extends BaseFieldTag { - /** - * Construct a new instance of this tag. - */ - public FileTag() { - super(); - this.type = "file"; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/FormTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/FormTag.java deleted file mode 100644 index dd168bedec0..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/FormTag.java +++ /dev/null @@ -1,919 +0,0 @@ -/* - * $Id: FormTag.java 479633 2006-11-27 14:25:35Z pbenedict $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.html; - -import org.apache.struts.Globals; -import org.apache.struts.action.ActionForm; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.action.ActionServlet; -import org.apache.struts.config.ActionConfig; -import org.apache.struts.config.FormBeanConfig; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.RequestUtils; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.JspWriter; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.TagSupport; - -import java.io.IOException; - -/** - * Custom tag that represents an input form, associated with a bean whose - * properties correspond to the various fields of the form. - * - * @version $Rev: 479633 $ $Date: 2006-11-27 15:25:35 +0100 (Mon, 27 Nov 2006) $ - */ -public class FormTag extends TagSupport { - /** - * The line ending string. - */ - protected static String lineEnd = System.getProperty("line.separator"); - - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources(Constants.Package - + ".LocalStrings"); - - // ----------------------------------------------------- Instance Variables - - /** - * The action URL to which this form should be submitted, if any. - */ - protected String action = null; - - /** - * A postback action URL to which this form should be submitted, if any. - */ - private String postbackAction = null; - - /** - * The module configuration for our module. - */ - protected ModuleConfig moduleConfig = null; - - /** - * The content encoding to be used on a POST submit. - */ - protected String enctype = null; - - /** - * The name of the field to receive focus, if any. - */ - protected String focus = null; - - /** - * The index in the focus field array to receive focus. This only applies - * if the field given in the focus attribute is actually an array of - * fields. This allows a specific field in a radio button array to - * receive focus while still allowing indexed field names like - * "myRadioButtonField[1]" to be passed in the focus attribute. - * - * @since Struts 1.1 - */ - protected String focusIndex = null; - - /** - * The ActionMapping defining where we will be submitting this form - */ - protected ActionMapping mapping = null; - - /** - * The request method used when submitting this form. - */ - protected String method = null; - - /** - * The onReset event script. - */ - protected String onreset = null; - - /** - * The onSubmit event script. - */ - protected String onsubmit = null; - - /** - * Include language attribute in the focus script's <script> - * element. This property is ignored in XHTML mode. - * - * @since Struts 1.2 - */ - protected boolean scriptLanguage = true; - - /** - * The ActionServlet instance we are associated with (so that we can - * initialize the servlet property on any form bean that we - * create). - */ - protected ActionServlet servlet = null; - - /** - * The style attribute associated with this tag. - */ - protected String style = null; - - /** - * The style class associated with this tag. - */ - protected String styleClass = null; - - /** - * The identifier associated with this tag. - */ - protected String styleId = null; - - /** - * The window target. - */ - protected String target = null; - - /** - * The name of the form bean to (create and) use. This is either the same - * as the 'name' attribute, if that was specified, or is obtained from the - * associated ActionMapping otherwise. - */ - protected String beanName = null; - - /** - * The scope of the form bean to (create and) use. This is either the same - * as the 'scope' attribute, if that was specified, or is obtained from - * the associated ActionMapping otherwise. - */ - protected String beanScope = null; - - /** - * The type of the form bean to (create and) use. This is either the same - * as the 'type' attribute, if that was specified, or is obtained from the - * associated ActionMapping otherwise. - */ - protected String beanType = null; - - /** - * The list of character encodings for input data that the server should - * accept. - */ - protected String acceptCharset = null; - - /** - * Controls whether child controls should be 'disabled'. - */ - private boolean disabled = false; - - /** - * Controls whether child controls should be 'readonly'. - */ - protected boolean readonly = false; - - /** - * The language code of this element. - */ - private String lang = null; - - /** - * The direction for weak/neutral text of this element. - */ - private String dir = null; - - // ------------------------------------------------------------- Properties - - /** - * Return the name of the form bean corresponding to this tag. There is no - * corresponding setter method; this method exists so that the nested tag - * classes can obtain the actual bean name derived from other attributes - * of the tag. - */ - public String getBeanName() { - return beanName; - } - - /** - * Return the action URL to which this form should be submitted. - */ - public String getAction() { - return (this.action); - } - - /** - * Set the action URL to which this form should be submitted. - * - * @param action The new action URL - */ - public void setAction(String action) { - this.action = action; - } - - /** - * Return the content encoding used when submitting this form. - */ - public String getEnctype() { - return (this.enctype); - } - - /** - * Set the content encoding used when submitting this form. - * - * @param enctype The new content encoding - */ - public void setEnctype(String enctype) { - this.enctype = enctype; - } - - /** - * Return the focus field name for this form. - */ - public String getFocus() { - return (this.focus); - } - - /** - * Set the focus field name for this form. - * - * @param focus The new focus field name - */ - public void setFocus(String focus) { - this.focus = focus; - } - - /** - * Return the request method used when submitting this form. - */ - public String getMethod() { - return (this.method); - } - - /** - * Set the request method used when submitting this form. - * - * @param method The new request method - */ - public void setMethod(String method) { - this.method = method; - } - - /** - * Return the onReset event script. - */ - public String getOnreset() { - return (this.onreset); - } - - /** - * Set the onReset event script. - * - * @param onReset The new event script - */ - public void setOnreset(String onReset) { - this.onreset = onReset; - } - - /** - * Return the onSubmit event script. - */ - public String getOnsubmit() { - return (this.onsubmit); - } - - /** - * Set the onSubmit event script. - * - * @param onSubmit The new event script - */ - public void setOnsubmit(String onSubmit) { - this.onsubmit = onSubmit; - } - - /** - * Return the style attribute for this tag. - */ - public String getStyle() { - return (this.style); - } - - /** - * Set the style attribute for this tag. - * - * @param style The new style attribute - */ - public void setStyle(String style) { - this.style = style; - } - - /** - * Return the style class for this tag. - */ - public String getStyleClass() { - return (this.styleClass); - } - - /** - * Set the style class for this tag. - * - * @param styleClass The new style class - */ - public void setStyleClass(String styleClass) { - this.styleClass = styleClass; - } - - /** - * Return the style identifier for this tag. - */ - public String getStyleId() { - return (this.styleId); - } - - /** - * Set the style identifier for this tag. - * - * @param styleId The new style identifier - */ - public void setStyleId(String styleId) { - this.styleId = styleId; - } - - /** - * Return the window target. - */ - public String getTarget() { - return (this.target); - } - - /** - * Set the window target. - * - * @param target The new window target - */ - public void setTarget(String target) { - this.target = target; - } - - /** - * Return the list of character encodings accepted. - */ - public String getAcceptCharset() { - return acceptCharset; - } - - /** - * Set the list of character encodings accepted. - * - * @param acceptCharset The list of character encodings - */ - public void setAcceptCharset(String acceptCharset) { - this.acceptCharset = acceptCharset; - } - - /** - * Sets the disabled event handler. - */ - public void setDisabled(boolean disabled) { - this.disabled = disabled; - } - - /** - * Returns the disabled event handler. - */ - public boolean isDisabled() { - return disabled; - } - - /** - * Sets the readonly event handler. - */ - public void setReadonly(boolean readonly) { - this.readonly = readonly; - } - - /** - * Returns the readonly event handler. - */ - public boolean isReadonly() { - return readonly; - } - - /** - * Returns the language code of this element. - * - * @since Struts 1.3.6 - */ - public String getLang() { - return this.lang; - } - - /** - * Sets the language code of this element. - * - * @since Struts 1.3.6 - */ - public void setLang(String lang) { - this.lang = lang; - } - - /** - * Returns the direction for weak/neutral text this element. - * - * @since Struts 1.3.6 - */ - public String getDir() { - return this.dir; - } - - /** - * Sets the direction for weak/neutral text of this element. - * - * @since Struts 1.3.6 - */ - public void setDir(String dir) { - this.dir = dir; - } - - // --------------------------------------------------------- Public Methods - - /** - * Render the beginning of this form. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - - postbackAction = null; - - // Look up the form bean name, scope, and type if necessary - this.lookup(); - - // Create an appropriate "form" element based on our parameters - StringBuffer results = new StringBuffer(); - - results.append(this.renderFormStartElement()); - - results.append(this.renderToken()); - - TagUtils.getInstance().write(pageContext, results.toString()); - - // Store this tag itself as a page attribute - pageContext.setAttribute(Constants.FORM_KEY, this, - PageContext.REQUEST_SCOPE); - - this.initFormBean(); - - return (EVAL_BODY_INCLUDE); - } - - /** - * Locate or create the bean associated with our form. - * - * @throws JspException - * @since Struts 1.1 - */ - protected void initFormBean() - throws JspException { - int scope = PageContext.SESSION_SCOPE; - - if ("request".equalsIgnoreCase(beanScope)) { - scope = PageContext.REQUEST_SCOPE; - } - - Object bean = pageContext.getAttribute(beanName, scope); - - if (bean == null) { - // New and improved - use the values from the action mapping - bean = - RequestUtils.createActionForm((HttpServletRequest) pageContext - .getRequest(), mapping, moduleConfig, servlet); - - if (bean instanceof ActionForm) { - ((ActionForm) bean).reset(mapping, - (HttpServletRequest) pageContext.getRequest()); - } - - if (bean == null) { - throw new JspException(messages.getMessage("formTag.create", - beanType)); - } - - pageContext.setAttribute(beanName, bean, scope); - } - - pageContext.setAttribute(Constants.BEAN_KEY, bean, - PageContext.REQUEST_SCOPE); - } - - /** - * Generates the opening <form> element with - * appropriate attributes. - * - * @since Struts 1.1 - */ - protected String renderFormStartElement() - throws JspException { - StringBuffer results = new StringBuffer(""); - - return results.toString(); - } - - /** - * Renders the name of the form. If XHTML is set to true, the name will - * be rendered as an 'id' attribute, otherwise as a 'name' attribute. - */ - protected void renderName(StringBuffer results) - throws JspException { - if (this.isXhtml()) { - if (getStyleId() == null) { - renderAttribute(results, "id", beanName); - } else { - throw new JspException(messages.getMessage("formTag.ignoredId")); - } - } else { - renderAttribute(results, "name", beanName); - renderAttribute(results, "id", getStyleId()); - } - } - - /** - * Renders the action attribute - */ - protected void renderAction(StringBuffer results) { - String calcAction = (this.action == null ? postbackAction : this.action); - HttpServletResponse response = - (HttpServletResponse) this.pageContext.getResponse(); - - results.append(" action=\""); - results.append(response.encodeURL( - TagUtils.getInstance().getActionMappingURL(calcAction, - this.pageContext))); - - results.append("\""); - } - - /** - * 'Hook' to enable this tag to be extended and additional attributes - * added. - */ - protected void renderOtherAttributes(StringBuffer results) { - } - - /** - * Generates a hidden input field with token information, if any. The - * field is added within a div element for HTML 4.01 Strict compliance. - * - * @return A hidden input field containing the token. - * @since Struts 1.1 - */ - protected String renderToken() { - StringBuffer results = new StringBuffer(); - HttpSession session = pageContext.getSession(); - - if (session != null) { - String token = - (String) session.getAttribute(Globals.TRANSACTION_TOKEN_KEY); - - if (token != null) { - results.append("
    "); - } else { - results.append("\">"); - } - - results.append("
    "); - } - } - - return results.toString(); - } - - /** - * Renders attribute="value" if not null - */ - protected void renderAttribute(StringBuffer results, String attribute, - String value) { - if (value != null) { - results.append(" "); - results.append(attribute); - results.append("=\""); - results.append(value); - results.append("\""); - } - } - - /** - * Render the end of this form. - * - * @throws JspException if a JSP exception has occurred - */ - public int doEndTag() throws JspException { - // Remove the page scope attributes we created - pageContext.removeAttribute(Constants.BEAN_KEY, - PageContext.REQUEST_SCOPE); - pageContext.removeAttribute(Constants.FORM_KEY, - PageContext.REQUEST_SCOPE); - - // Render a tag representing the end of our current form - StringBuffer results = new StringBuffer(""); - - // Render JavaScript to set the input focus if required - if (this.focus != null) { - results.append(this.renderFocusJavascript()); - } - - // Print this value to our output writer - JspWriter writer = pageContext.getOut(); - - try { - writer.print(results.toString()); - } catch (IOException e) { - throw new JspException(messages.getMessage("common.io", e.toString())); - } - - postbackAction = null; - - // Continue processing this page - return (EVAL_PAGE); - } - - /** - * Generates javascript to set the initial focus to the form element given - * in the tag's "focus" attribute. - * - * @since Struts 1.1 - */ - protected String renderFocusJavascript() { - StringBuffer results = new StringBuffer(); - - results.append(lineEnd); - results.append(""); - results.append(lineEnd); - - return results.toString(); - } - - /** - * Release any acquired resources. - */ - public void release() { - super.release(); - action = null; - moduleConfig = null; - enctype = null; - dir = null; - disabled = false; - focus = null; - focusIndex = null; - lang = null; - mapping = null; - method = null; - onreset = null; - onsubmit = null; - readonly = false; - servlet = null; - style = null; - styleClass = null; - styleId = null; - target = null; - acceptCharset = null; - } - - // ------------------------------------------------------ Protected Methods - - /** - * Look up values for the name, scope, and - * type properties if necessary. - * - * @throws JspException if a required value cannot be looked up - */ - protected void lookup() throws JspException { - - // Look up the module configuration information we need - moduleConfig = TagUtils.getInstance().getModuleConfig(pageContext); - - if (moduleConfig == null) { - JspException e = - new JspException(messages.getMessage("formTag.collections")); - - pageContext.setAttribute(Globals.EXCEPTION_KEY, e, - PageContext.REQUEST_SCOPE); - throw e; - } - - String calcAction = this.action; - - // If the action is not specified, use the original request uri - if (this.action == null) { - HttpServletRequest request = - (HttpServletRequest) pageContext.getRequest(); - postbackAction = - (String) request.getAttribute(Globals.ORIGINAL_URI_KEY); - - String prefix = moduleConfig.getPrefix(); - if (postbackAction != null && prefix.length() > 0 && postbackAction.startsWith(prefix)) { - postbackAction = postbackAction.substring(prefix.length()); - } - calcAction = postbackAction; - } else { - // Translate the action if it is an actionId - ActionConfig actionConfig = moduleConfig.findActionConfigId(this.action); - if (actionConfig != null) { - this.action = actionConfig.getPath(); - calcAction = this.action; - } - } - - servlet = - (ActionServlet) pageContext.getServletContext().getAttribute(Globals.ACTION_SERVLET_KEY); - - // Look up the action mapping we will be submitting to - String mappingName = - TagUtils.getInstance().getActionMappingName(calcAction); - - mapping = (ActionMapping) moduleConfig.findActionConfig(mappingName); - - if (mapping == null) { - JspException e = - new JspException(messages.getMessage("formTag.mapping", - mappingName)); - - pageContext.setAttribute(Globals.EXCEPTION_KEY, e, - PageContext.REQUEST_SCOPE); - throw e; - } - - // Look up the form bean definition - FormBeanConfig formBeanConfig = - moduleConfig.findFormBeanConfig(mapping.getName()); - - if (formBeanConfig == null) { - JspException e = null; - - if (mapping.getName() == null) { - e = new JspException(messages.getMessage("formTag.name", calcAction)); - } else { - e = new JspException(messages.getMessage("formTag.formBean", - mapping.getName(), calcAction)); - } - - pageContext.setAttribute(Globals.EXCEPTION_KEY, e, - PageContext.REQUEST_SCOPE); - throw e; - } - - // Calculate the required values - beanName = mapping.getAttribute(); - beanScope = mapping.getScope(); - beanType = formBeanConfig.getType(); - } - - /** - * Returns true if this tag should render as xhtml. - */ - private boolean isXhtml() { - return TagUtils.getInstance().isXhtml(this.pageContext); - } - - /** - * Returns the focusIndex. - * - * @return String - */ - public String getFocusIndex() { - return focusIndex; - } - - /** - * Sets the focusIndex. - * - * @param focusIndex The focusIndex to set - */ - public void setFocusIndex(String focusIndex) { - this.focusIndex = focusIndex; - } - - /** - * Gets whether or not the focus script's <script> element will - * include the language attribute. - * - * @return true if language attribute will be included. - * @since Struts 1.2 - */ - public boolean getScriptLanguage() { - return this.scriptLanguage; - } - - /** - * Sets whether or not the focus script's <script> element will - * include the language attribute. - * - * @since Struts 1.2 - */ - public void setScriptLanguage(boolean scriptLanguage) { - this.scriptLanguage = scriptLanguage; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/FrameTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/FrameTag.java deleted file mode 100644 index 1358bff4790..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/FrameTag.java +++ /dev/null @@ -1,185 +0,0 @@ -/* - * $Id: FrameTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.html; - -import org.apache.struts.taglib.TagUtils; - -import javax.servlet.jsp.JspException; - -/** - * Generate an HTML <frame> tag with similar capabilities - * as those the <html:link> tag provides for hyperlink - * elements. The src element is rendered using the same - * technique that {@link LinkTag} uses to render the href - * attribute of a hyperlink. Additionall, the HTML 4.0 frame tag attributes - * noresize, scrolling, marginheight, - * marginwidth, frameborder, and - * longdesc are supported. The frame name attribute - * is rendered based on the frameName property. - * - * Note that the value of longdesc is intended to be a URI, but - * currently no rewriting is supported. The attribute is set directly from - * the property value. - * - * @version $Rev: 471754 $ $Date: 2004-10-16 12:38:42 -0400 (Sat, 16 Oct 2004) - * $ - * @since Struts 1.1 - */ -public class FrameTag extends LinkTag { - // ------------------------------------------------------------- Properties - - /** - * The frameborder attribute that should be rendered (1, 0). - */ - protected String frameborder = null; - - /** - * The name attribute that should be rendered for this - * frame. - */ - protected String frameName = null; - - /** - * URI of a long description of this frame (complements title). - */ - protected String longdesc = null; - - /** - * The margin height in pixels, or zero for no setting. - */ - protected Integer marginheight = null; - - /** - * The margin width in pixels, or null for no setting. - */ - protected Integer marginwidth = null; - - /** - * Should users be disallowed to resize the frame? - */ - protected boolean noresize = false; - - /** - * What type of scrolling should be supported (yes, no, auto)? - */ - protected String scrolling = null; - - public String getFrameborder() { - return (this.frameborder); - } - - public void setFrameborder(String frameborder) { - this.frameborder = frameborder; - } - - public String getFrameName() { - return (this.frameName); - } - - public void setFrameName(String frameName) { - this.frameName = frameName; - } - - public String getLongdesc() { - return (this.longdesc); - } - - public void setLongdesc(String longdesc) { - this.longdesc = longdesc; - } - - public Integer getMarginheight() { - return (this.marginheight); - } - - public void setMarginheight(Integer marginheight) { - this.marginheight = marginheight; - } - - public Integer getMarginwidth() { - return (this.marginwidth); - } - - public void setMarginwidth(Integer marginwidth) { - this.marginwidth = marginwidth; - } - - public boolean getNoresize() { - return (this.noresize); - } - - public void setNoresize(boolean noresize) { - this.noresize = noresize; - } - - public String getScrolling() { - return (this.scrolling); - } - - public void setScrolling(String scrolling) { - this.scrolling = scrolling; - } - - // --------------------------------------------------------- Public Methods - - /** - * Render the appropriately encoded URI. - * - * @throws JspException if a JSP exception has occurred - */ - public int doEndTag() throws JspException { - // Print this element to our output writer - StringBuffer results = new StringBuffer("write
    property since Struts 1.1. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - // Render the tag as before - super.doStartTag(); - - // Is rendering the value separately requested? - if (!write) { - return (EVAL_BODY_TAG); - } - - // Calculate the value to be rendered separately - // * @since Struts 1.1 - String results = null; - - if (value != null) { - results = TagUtils.getInstance().filter(value); - } else { - Object value = - TagUtils.getInstance().lookup(pageContext, name, property, null); - - if (value == null) { - results = ""; - } else { - results = TagUtils.getInstance().filter(value.toString()); - } - } - - TagUtils.getInstance().write(pageContext, results); - - return (EVAL_BODY_TAG); - } - - /** - * Release any acquired resources. - */ - public void release() { - super.release(); - write = false; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/HtmlTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/HtmlTag.java deleted file mode 100644 index 7ee09d37ea6..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/HtmlTag.java +++ /dev/null @@ -1,196 +0,0 @@ -/* - * $Id: HtmlTag.java 482895 2006-12-06 05:12:27Z niallp $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.html; - -import org.apache.struts.Globals; -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.TagSupport; - -import java.util.Locale; - -/** - * Renders an HTML element with appropriate language attributes if - * there is a current Locale available in the user's session. - * - * @version $Rev: 482895 $ $Date: 2005-08-21 19:08:45 -0400 (Sun, 21 Aug 2005) - * $ - */ -public class HtmlTag extends TagSupport { - // ------------------------------------------------------------- Properties - - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources(Constants.Package - + ".LocalStrings"); - - /** - * Are we rendering an xhtml page? - */ - protected boolean xhtml = false; - - /** - * Are we rendering a lang attribute? - * - * @since Struts 1.2 - */ - protected boolean lang = false; - - public boolean getXhtml() { - return this.xhtml; - } - - public void setXhtml(boolean xhtml) { - this.xhtml = xhtml; - } - - /** - * Returns true if the tag should render a lang attribute. - * - * @since Struts 1.2 - */ - public boolean getLang() { - return this.lang; - } - - /** - * Sets whether the tag should render a lang attribute. - * - * @since Struts 1.2 - */ - public void setLang(boolean lang) { - this.lang = lang; - } - - /** - * Process the start of this tag. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - TagUtils.getInstance().write(this.pageContext, - this.renderHtmlStartElement()); - - return EVAL_BODY_INCLUDE; - } - - /** - * Renders an <html> element with appropriate language attributes. - * - * @since Struts 1.2 - */ - protected String renderHtmlStartElement() { - StringBuffer sb = new StringBuffer(""); - - return sb.toString(); - } - - /** - * Process the end of this tag. - * - * @throws JspException if a JSP exception has occurred - */ - public int doEndTag() throws JspException { - TagUtils.getInstance().write(pageContext, ""); - - // Evaluate the remainder of this page - return (EVAL_PAGE); - } - - /** - * Release any acquired resources. - */ - public void release() { - this.xhtml = false; - this.lang = false; - } - - /** - * Check whether the value contains valid characters for the - * "Accept-Language" header according to RFC 2616 (section 14.4). - * - * @param value The value to check - * @return true if valid, otherwise false - */ - private boolean isValidRfc2616(String value) { - if (value == null || value.length() == 0) { - return false; - } - for (int i = 0; i < value.length(); i++) { - char c = value.charAt(i); - - if (!(Character.isLetter(c) || c == '-')) { - return false; - } - } - return true; - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ImageTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ImageTag.java deleted file mode 100644 index f41269c65d3..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ImageTag.java +++ /dev/null @@ -1,283 +0,0 @@ -/* - * $Id: ImageTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.html; - -import org.apache.struts.Globals; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.ModuleUtils; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.jsp.JspException; - -/** - * Tag for input fields of type "image". - * - * @version $Rev: 471754 $ $Date: 2005-04-26 20:11:47 -0400 (Tue, 26 Apr 2005) - * $ - */ -public class ImageTag extends SubmitTag { - // ------------------------------------------------------------- Properties - - /** - * The alignment for this image. - */ - protected String align = null; - - /** - * The border size around the image. - */ - protected String border = null; - - /** - * The module-relative URI of the image. - */ - protected String page = null; - - /** - * The message resources key of the module-relative URI of the image. - */ - protected String pageKey = null; - - /** - * The URL of this image. - */ - protected String src = null; - - /** - * The message resources key for the URL of this image. - */ - protected String srcKey = null; - - /** - * The module prefix (beginning with a slash) which will be used to find - * the action for this link. - */ - protected String module = null; - - // --------------------------------------------------------- Constructor - public ImageTag() { - super(); - property = ""; - } - - /** - * @deprecated Align attribute is deprecated in HTML 4.x. - */ - public String getAlign() { - return (this.align); - } - - /** - * @deprecated Align attribute is deprecated in HTML 4.x. - */ - public void setAlign(String align) { - this.align = align; - } - - public String getBorder() { - return (this.border); - } - - public void setBorder(String border) { - this.border = border; - } - - public String getPage() { - return (this.page); - } - - public void setPage(String page) { - this.page = page; - } - - public String getPageKey() { - return (this.pageKey); - } - - public void setPageKey(String pageKey) { - this.pageKey = pageKey; - } - - public String getSrc() { - return (this.src); - } - - public void setSrc(String src) { - this.src = src; - } - - public String getSrcKey() { - return (this.srcKey); - } - - public void setSrcKey(String srcKey) { - this.srcKey = srcKey; - } - - public String getModule() { - return (this.module); - } - - public void setModule(String module) { - this.module = module; - } - - // --------------------------------------------------------- Protected Methods - - /** - * Render the opening element. - * - * @return The opening part of the element. - */ - protected String getElementOpen() { - return "src property for this generated element, or - * null if there is no such URL. - * - * @throws JspException if an error occurs - */ - protected String src() throws JspException { - // Deal with a direct context-relative page that has been specified - if (this.page != null) { - if ((this.src != null) || (this.srcKey != null) - || (this.pageKey != null)) { - JspException e = - new JspException(messages.getMessage("imgTag.src")); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - HttpServletRequest request = - (HttpServletRequest) pageContext.getRequest(); - - ModuleConfig config = - ModuleUtils.getInstance().getModuleConfig(this.module, - request, pageContext.getServletContext()); - - String pageValue = this.page; - - if (config != null) { - pageValue = - TagUtils.getInstance().pageURL(request, this.page, config); - } - - return (request.getContextPath() + pageValue); - } - - // Deal with an indirect context-relative page that has been specified - if (this.pageKey != null) { - if ((this.src != null) || (this.srcKey != null)) { - JspException e = - new JspException(messages.getMessage("imgTag.src")); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - HttpServletRequest request = - (HttpServletRequest) pageContext.getRequest(); - - ModuleConfig config = - ModuleUtils.getInstance().getModuleConfig(this.module, - request, pageContext.getServletContext()); - - String pageValue = - TagUtils.getInstance().message(pageContext, getBundle(), - getLocale(), this.pageKey); - - if (config != null) { - pageValue = - TagUtils.getInstance().pageURL(request, pageValue, config); - } - - return (request.getContextPath() + pageValue); - } - - // Deal with an absolute source that has been specified - if (this.src != null) { - if (this.srcKey != null) { - JspException e = - new JspException(messages.getMessage("imgTag.src")); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - return (this.src); - } - - // Deal with an indirect source that has been specified - if (this.srcKey == null) { - JspException e = - new JspException(messages.getMessage("imgTag.src")); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - return TagUtils.getInstance().message(pageContext, getBundle(), - getLocale(), this.srcKey); - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ImgTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ImgTag.java deleted file mode 100755 index 28363532e14..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/ImgTag.java +++ /dev/null @@ -1,675 +0,0 @@ -/* - * $Id: ImgTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.html; - -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; -import org.apache.struts.util.ModuleUtils; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.jsp.JspException; - -import java.util.Iterator; -import java.util.Map; - -/** - *

    Generate an IMG tag to the specified image URI.

    - * - *

    TODO:

    - * - *
      - * - *
    • Make the alt and src settable from - * properties (for i18n)
    • - * - *
    - * - * @version $Rev: 471754 $ - */ -public class ImgTag extends BaseHandlerTag { - /** - * The message resources for this package. - */ - protected static MessageResources messages = - MessageResources.getMessageResources(Constants.Package - + ".LocalStrings"); - - // ------------------------------------------------------------- Properties - - /** - * The property to specify where to align the image. - */ - protected String align = null; - - /** - * The border size around the image. - */ - protected String border = null; - - /** - * The image height. - */ - protected String height = null; - - /** - * The horizontal spacing around the image. - */ - protected String hspace = null; - - /** - * The image name for named images. - */ - protected String imageName = null; - - /** - * Server-side image map declaration. - */ - protected String ismap = null; - - /** - * The JSP bean name for query parameters. - */ - protected String name = null; - - /** - * The module-relative path, starting with a slash character, of the image - * to be displayed by this rendered tag. - */ - protected String page = null; - - /** - * The message resources key under which we should look up the - * page attribute for this generated tag, if any. - */ - protected String pageKey = null; - - /** - * The module-relative action (beginning with a slash) which will be used - * as the source for this image. - */ - protected String action = null; - - /** - * The module prefix (beginning with a slash) which will be used to find - * the action for this link. - */ - protected String module = null; - - /** - * In situations where an image is dynamically generated (such as to - * create a chart graph), this specifies the single-parameter request - * parameter name to generate. - */ - protected String paramId = null; - - /** - * The single-parameter JSP bean name. - */ - protected String paramName = null; - - /** - * The single-parameter JSP bean property. - */ - protected String paramProperty = null; - - /** - * The single-parameter JSP bean scope. - */ - protected String paramScope = null; - - /** - * The JSP bean property name for query parameters. - */ - protected String property = null; - - /** - * The scope of the bean specified by the name property, if any. - */ - protected String scope = null; - - /** - * The image source URI. - */ - protected String src = null; - - /** - * The message resources key under which we should look up the - * src attribute for this generated tag, if any. - */ - protected String srcKey = null; - - /** - * Client-side image map declaration. - */ - protected String usemap = null; - - /** - * The vertical spacing around the image. - */ - protected String vspace = null; - - /** - * The image width. - */ - protected String width = null; - protected boolean useLocalEncoding = false; - - // ----------------------------------------------------- Constructor - public ImgTag() { - super(); - doDisabled = false; - } - - public String getAlign() { - return (this.align); - } - - public void setAlign(String align) { - this.align = align; - } - - public String getBorder() { - return (this.border); - } - - public void setBorder(String border) { - this.border = border; - } - - public String getHeight() { - return (this.height); - } - - public void setHeight(String height) { - this.height = height; - } - - public String getHspace() { - return (this.hspace); - } - - public void setHspace(String hspace) { - this.hspace = hspace; - } - - public String getImageName() { - return (this.imageName); - } - - public void setImageName(String imageName) { - this.imageName = imageName; - } - - public String getIsmap() { - return (this.ismap); - } - - public void setIsmap(String ismap) { - this.ismap = ismap; - } - - public String getName() { - return (this.name); - } - - public void setName(String name) { - this.name = name; - } - - public String getPage() { - return (this.page); - } - - public void setPage(String page) { - this.page = page; - } - - public String getPageKey() { - return (this.pageKey); - } - - public void setPageKey(String pageKey) { - this.pageKey = pageKey; - } - - public String getAction() { - return (this.action); - } - - public void setAction(String action) { - this.action = action; - } - - public String getModule() { - return (this.module); - } - - public void setModule(String module) { - this.module = module; - } - - public String getParamId() { - return (this.paramId); - } - - public void setParamId(String paramId) { - this.paramId = paramId; - } - - public String getParamName() { - return (this.paramName); - } - - public void setParamName(String paramName) { - this.paramName = paramName; - } - - public String getParamProperty() { - return (this.paramProperty); - } - - public void setParamProperty(String paramProperty) { - this.paramProperty = paramProperty; - } - - public String getParamScope() { - return (this.paramScope); - } - - public void setParamScope(String paramScope) { - this.paramScope = paramScope; - } - - public String getProperty() { - return (this.property); - } - - public void setProperty(String property) { - this.property = property; - } - - public String getScope() { - return (this.scope); - } - - public void setScope(String scope) { - this.scope = scope; - } - - public String getSrc() { - return (this.src); - } - - public void setSrc(String src) { - this.src = src; - } - - public String getSrcKey() { - return (this.srcKey); - } - - public void setSrcKey(String srcKey) { - this.srcKey = srcKey; - } - - public String getUsemap() { - return (this.usemap); - } - - public void setUsemap(String usemap) { - this.usemap = usemap; - } - - public String getVspace() { - return (this.vspace); - } - - public void setVspace(String vspace) { - this.vspace = vspace; - } - - public String getWidth() { - return (this.width); - } - - public void setWidth(String width) { - this.width = width; - } - - public boolean isUseLocalEncoding() { - return useLocalEncoding; - } - - public void setUseLocalEncoding(boolean b) { - useLocalEncoding = b; - } - - // --------------------------------------------------------- Public Methods - - /** - * Render the beginning of the IMG tag. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - // Evaluate the body of this tag - return (EVAL_BODY_TAG); - } - - /** - * Render the end of the IMG tag. - * - * @throws JspException if a JSP exception has occurred - */ - public int doEndTag() throws JspException { - // Generate the name definition or image element - HttpServletResponse response = - (HttpServletResponse) pageContext.getResponse(); - StringBuffer results = new StringBuffer("src property for this generated element, or - * null if there is no such URL. - * - * @throws JspException if an error occurs - */ - protected String src() throws JspException { - // Deal with a direct context-relative page that has been specified - if (this.page != null) { - if ((this.src != null) || (this.srcKey != null) - || (this.pageKey != null)) { - throwImgTagSrcException(); - } - - ModuleConfig config = - ModuleUtils.getInstance().getModuleConfig(this.module, - (HttpServletRequest) pageContext.getRequest(), - pageContext.getServletContext()); - - HttpServletRequest request = - (HttpServletRequest) pageContext.getRequest(); - String pageValue = this.page; - - if (!srcDefaultReference(config)) { - pageValue = - TagUtils.getInstance().pageURL(request, this.page, config); - } - - return (request.getContextPath() + pageValue); - } - - // Deal with an indirect context-relative page that has been specified - if (this.pageKey != null) { - if ((this.src != null) || (this.srcKey != null)) { - throwImgTagSrcException(); - } - - ModuleConfig config = - ModuleUtils.getInstance().getModuleConfig(this.module, - (HttpServletRequest) pageContext.getRequest(), - pageContext.getServletContext()); - - HttpServletRequest request = - (HttpServletRequest) pageContext.getRequest(); - String pageValue = - TagUtils.getInstance().message(pageContext, getBundle(), - getLocale(), this.pageKey); - - if (!srcDefaultReference(config)) { - pageValue = - TagUtils.getInstance().pageURL(request, pageValue, config); - } - - return (request.getContextPath() + pageValue); - } - - if (this.action != null) { - if ((this.src != null) || (this.srcKey != null)) { - throwImgTagSrcException(); - } - - return TagUtils.getInstance().getActionMappingURL(action, module, - pageContext, false); - } - - // Deal with an absolute source that has been specified - if (this.src != null) { - if (this.srcKey != null) { - throwImgTagSrcException(); - } - - return (this.src); - } - - // Deal with an indirect source that has been specified - if (this.srcKey == null) { - throwImgTagSrcException(); - } - - return TagUtils.getInstance().message(pageContext, getBundle(), - getLocale(), this.srcKey); - } - - /** - * Return the specified src URL, modified as necessary with optional - * request parameters. - * - * @param url The URL to be modified (or null if this url will not be - * used) - * @throws JspException if an error occurs preparing the URL - */ - protected String url(String url) - throws JspException { - if (url == null) { - return (url); - } - - String charEncoding = "UTF-8"; - - if (useLocalEncoding) { - charEncoding = pageContext.getResponse().getCharacterEncoding(); - } - - // Start with an unadorned URL as specified - StringBuffer src = new StringBuffer(url); - - // Append a single-parameter name and value, if requested - if ((paramId != null) && (paramName != null)) { - if (src.toString().indexOf('?') < 0) { - src.append('?'); - } else { - src.append("&"); - } - - src.append(paramId); - src.append('='); - - Object value = - TagUtils.getInstance().lookup(pageContext, paramName, - paramProperty, paramScope); - - if (value != null) { - src.append(TagUtils.getInstance().encodeURL(value.toString(), - charEncoding)); - } - } - - // Just return the URL if there is no bean to look up - if ((property != null) && (name == null)) { - JspException e = - new JspException(messages.getMessage("getter.name")); - - TagUtils.getInstance().saveException(pageContext, e); - throw e; - } - - if (name == null) { - return (src.toString()); - } - - // Look up the map we will be using - Object mapObject = - TagUtils.getInstance().lookup(pageContext, name, property, scope); - Map map = null; - - try { - map = (Map) mapObject; - } catch (ClassCastException e) { - TagUtils.getInstance().saveException(pageContext, e); - throw new JspException(messages.getMessage("imgTag.type")); - } - - // Append the required query parameters - boolean question = (src.toString().indexOf("?") >= 0); - Iterator keys = map.keySet().iterator(); - - while (keys.hasNext()) { - String key = (String) keys.next(); - Object value = map.get(key); - - if (value == null) { - if (question) { - src.append("&"); - } else { - src.append('?'); - question = true; - } - - src.append(key); - src.append('='); - - // Interpret null as "no value specified" - } else if (value instanceof String[]) { - String[] values = (String[]) value; - - for (int i = 0; i < values.length; i++) { - if (question) { - src.append("&"); - } else { - src.append('?'); - question = true; - } - - src.append(key); - src.append('='); - src.append(TagUtils.getInstance().encodeURL(values[i], - charEncoding)); - } - } else { - if (question) { - src.append("&"); - } else { - src.append('?'); - question = true; - } - - src.append(key); - src.append('='); - src.append(TagUtils.getInstance().encodeURL(value.toString(), - charEncoding)); - } - } - - // Return the final result - return (src.toString()); - } -} diff --git a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/JavascriptValidatorTag.java b/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/JavascriptValidatorTag.java deleted file mode 100644 index 9306bfae4dd..00000000000 --- a/tests/projects/struts-1.3.9-diet/taglib/src/main/java/org/apache/struts/taglib/html/JavascriptValidatorTag.java +++ /dev/null @@ -1,906 +0,0 @@ -/* - * $Id: JavascriptValidatorTag.java 471754 2006-11-06 14:55:09Z husted $ - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.struts.taglib.html; - -import org.apache.commons.validator.Field; -import org.apache.commons.validator.Form; -import org.apache.commons.validator.ValidatorAction; -import org.apache.commons.validator.ValidatorResources; -import org.apache.commons.validator.Var; -import org.apache.struts.Globals; -import org.apache.struts.action.ActionMapping; -import org.apache.struts.config.ModuleConfig; -import org.apache.struts.taglib.TagUtils; -import org.apache.struts.util.MessageResources; -import org.apache.struts.validator.Resources; -import org.apache.struts.validator.ValidatorPlugIn; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.JspWriter; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.BodyTagSupport; - -import java.io.IOException; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.StringTokenizer; - -/** - * Custom tag that generates JavaScript for client side validation based on - * the validation rules loaded by the ValidatorPlugIn defined in - * the struts-config.xml file. - * - * @version $Rev: 471754 $ $Date: 2006-11-06 15:55:09 +0100 (Mon, 06 Nov 2006) $ - * @since Struts 1.1 - */ -public class JavascriptValidatorTag extends BodyTagSupport { - /** - * A Comparator to use when sorting ValidatorAction objects. - */ - private static final Comparator actionComparator = - new Comparator() { - public int compare(Object o1, Object o2) { - ValidatorAction va1 = (ValidatorAction) o1; - ValidatorAction va2 = (ValidatorAction) o2; - - if (((va1.getDepends() == null) - || (va1.getDepends().length() == 0)) - && ((va2.getDepends() == null) - || (va2.getDepends().length() == 0))) { - return 0; - } else if (((va1.getDepends() != null) - && (va1.getDepends().length() > 0)) - && ((va2.getDepends() == null) - || (va2.getDepends().length() == 0))) { - return 1; - } else if (((va1.getDepends() == null) - || (va1.getDepends().length() == 0)) - && ((va2.getDepends() != null) - && (va2.getDepends().length() > 0))) { - return -1; - } else { - return va1.getDependencyList().size() - - va2.getDependencyList().size(); - } - } - }; - - /** - * The start of the HTML comment hiding JavaScript from old browsers. - * - * @since Struts 1.2 - */ - protected static final String HTML_BEGIN_COMMENT = "\n \n"; - - /** - * The line ending string. - */ - protected static String lineEnd = System.getProperty("line.separator"); - - // ----------------------------------------------------------- Properties - - /** - * The servlet context attribute key for our resources. - */ - protected String bundle = Globals.MESSAGES_KEY; - - /** - * The name of the form that corresponds with the action name in - * struts-config.xml. Specifying a form name places a <script> - * </script> around the javascript. - */ - protected String formName = null; - - /** - * formName is used for both Javascript and non-javascript validations. - * For the javascript validations, there is the possibility that we will - * be rewriting the formName (if it is a ValidatorActionForm instead of - * just a ValidatorForm) so we need another variable to hold the formName - * just for javascript usage. - */ - protected String jsFormName = null; - - /** - * The current page number of a multi-part form. Only valid when the - * formName attribute is set. - */ - protected int page = 0; - - /** - * This will be used as is for the JavaScript validation method name if it - * has a value. This is the method name of the main JavaScript method - * that the form calls to perform validations. - */ - protected String methodName = null; - - /** - * Include language attribute in the <script> element. This - * property is ignored in XHTML mode. - * - * @since Struts 1.2 - */ - protected boolean scriptLanguage = true; - - /** - * The static JavaScript methods will only be printed if this is set to - * "true". - */ - protected String staticJavascript = "true"; - - /** - * The dynamic JavaScript objects will only be generated if this is set to - * "true". - */ - protected String dynamicJavascript = "true"; - - /** - * The src attribute for html script element (used to include an external - * script resource). The src attribute is only recognized when the - * formName attribute is specified. - */ - protected String src = null; - - /** - * The JavaScript methods will enclosed with html comments if this is set - * to "true". - */ - protected String htmlComment = "true"; - - /** - * Hide JavaScript methods in a CDATA section for XHTML when "true". - */ - protected String cdata = "true"; - - /** - * Gets the key (form name) that will be used to retrieve a set of - * validation rules to be performed on the bean passed in for validation. - */ - public String getFormName() { - return formName; - } - - /** - * Sets the key (form name) that will be used to retrieve a set of - * validation rules to be performed on the bean passed in for validation. - * Specifying a form name places a <script> </script> tag - * around the javascript. - */ - public void setFormName(String formName) { - this.formName = formName; - } - - /** - * @return Returns the jsFormName. - */ - public String getJsFormName() { - return jsFormName; - } - - /** - * @param jsFormName The jsFormName to set. - */ - public void setJsFormName(String jsFormName) { - this.jsFormName = jsFormName; - } - - /** - * Gets the current page number of a multi-part form. Only field - * validations with a matching page numer will be generated that match the - * current page number. Only valid when the formName attribute is set. - */ - public int getPage() { - return page; - } - - /** - * Sets the current page number of a multi-part form. Only field - * validations with a matching page numer will be generated that match the - * current page number. Only valid when the formName attribute is set. - */ - public void setPage(int page) { - this.page = page; - } - - /** - * Gets the method name that will be used for the Javascript validation - * method name if it has a value. This overrides the auto-generated - * method name based on the key (form name) passed in. - */ - public String getMethod() { - return methodName; - } - - /** - * Sets the method name that will be used for the Javascript validation - * method name if it has a value. This overrides the auto-generated - * method name based on the key (form name) passed in. - */ - public void setMethod(String methodName) { - this.methodName = methodName; - } - - /** - * Gets whether or not to generate the static JavaScript. If this is set - * to 'true', which is the default, the static JavaScript will be - * generated. - */ - public String getStaticJavascript() { - return staticJavascript; - } - - /** - * Sets whether or not to generate the static JavaScript. If this is set - * to 'true', which is the default, the static JavaScript will be - * generated. - */ - public void setStaticJavascript(String staticJavascript) { - this.staticJavascript = staticJavascript; - } - - /** - * Gets whether or not to generate the dynamic JavaScript. If this is set - * to 'true', which is the default, the dynamic JavaScript will be - * generated. - */ - public String getDynamicJavascript() { - return dynamicJavascript; - } - - /** - * Sets whether or not to generate the dynamic JavaScript. If this is set - * to 'true', which is the default, the dynamic JavaScript will be - * generated. - */ - public void setDynamicJavascript(String dynamicJavascript) { - this.dynamicJavascript = dynamicJavascript; - } - - /** - * Gets whether or not to delimit the JavaScript with html comments. If - * this is set to 'true', which is the default, the htmlComment will be - * surround the JavaScript. - */ - public String getHtmlComment() { - return htmlComment; - } - - /** - * Sets whether or not to delimit the JavaScript with html comments. If - * this is set to 'true', which is the default, the htmlComment will be - * surround the JavaScript. - */ - public void setHtmlComment(String htmlComment) { - this.htmlComment = htmlComment; - } - - /** - * Gets the src attribute's value when defining the html script element. - */ - public String getSrc() { - return src; - } - - /** - * Sets the src attribute's value when defining the html script element. - * The src attribute is only recognized when the formName attribute is - * specified. - */ - public void setSrc(String src) { - this.src = src; - } - - /** - * Sets the servlet context attribute key for our resources. - */ - public String getBundle() { - return bundle; - } - - /** - * Gets the servlet context attribute key for our resources. - */ - public void setBundle(String bundle) { - this.bundle = bundle; - } - - /** - * Render the JavaScript for to perform validations based on the form - * name. - * - * @throws JspException if a JSP exception has occurred - */ - public int doStartTag() throws JspException { - JspWriter writer = pageContext.getOut(); - - try { - writer.print(this.renderJavascript()); - } catch (IOException e) { - throw new JspException(e.getMessage()); - } - - return EVAL_BODY_TAG; - } - - /** - * Returns fully rendered JavaScript. - * - * @since Struts 1.2 - */ - protected String renderJavascript() - throws JspException { - StringBuffer results = new StringBuffer(); - - ModuleConfig config = - TagUtils.getInstance().getModuleConfig(pageContext); - ValidatorResources resources = - (ValidatorResources) pageContext.getAttribute( - ValidatorPlugIn.VALIDATOR_KEY - + config.getPrefix(), PageContext.APPLICATION_SCOPE); - - if (resources == null) { - throw new JspException( - "ValidatorResources not found in application scope under key \"" - + ValidatorPlugIn.VALIDATOR_KEY + config.getPrefix() + "\""); - } - - Locale locale = - TagUtils.getInstance().getUserLocale(this.pageContext, null); - - Form form = null; - if ("true".equalsIgnoreCase(dynamicJavascript)) { - form = resources.getForm(locale, formName); - if (form == null) { - throw new JspException("No form found under '" + formName - + "' in locale '" + locale - + "'. A form must be defined in the " - + "Commons Validator configuration when " - + "dynamicJavascript=\"true\" is set."); - } - } - - if (form != null) { - if ("true".equalsIgnoreCase(dynamicJavascript)) { - results.append(this.createDynamicJavascript(config, resources, - locale, form)); - } else if ("true".equalsIgnoreCase(staticJavascript)) { - results.append(this.renderStartElement()); - - if ("true".equalsIgnoreCase(htmlComment)) { - results.append(HTML_BEGIN_COMMENT); - } - } - } - - if ("true".equalsIgnoreCase(staticJavascript)) { - results.append(getJavascriptStaticMethods(resources)); - } - - if ((form != null) - && ("true".equalsIgnoreCase(dynamicJavascript) - || "true".equalsIgnoreCase(staticJavascript))) { - results.append(getJavascriptEnd()); - } - - return results.toString(); - } - - /** - * Generates the dynamic JavaScript for the form. - * - * @param config - * @param resources - * @param locale - * @param form - */ - private String createDynamicJavascript(ModuleConfig config, - ValidatorResources resources, Locale locale, Form form) - throws JspException { - StringBuffer results = new StringBuffer(); - - MessageResources messages = - TagUtils.getInstance().retrieveMessageResources(pageContext, - bundle, true); - - HttpServletRequest request = - (HttpServletRequest) pageContext.getRequest(); - ServletContext application = pageContext.getServletContext(); - - List actions = this.createActionList(resources, form); - - final String methods = - this.createMethods(actions, this.stopOnError(config)); - - String formName = form.getName(); - - jsFormName = formName; - - if (jsFormName.charAt(0) == '/') { - String mappingName = - TagUtils.getInstance().getActionMappingName(jsFormName); - ActionMapping mapping = - (ActionMapping) config.findActionConfig(mappingName); - - if (mapping == null) { - JspException e = - new JspException(messages.getMessage("formTag.mapping", - mappingName)); - - pageContext.setAttribute(Globals.EXCEPTION_KEY, e, - PageContext.REQUEST_SCOPE); - throw e; - } - - jsFormName = mapping.getAttribute(); - } - - results.append(this.getJavascriptBegin(methods)); - - for (Iterator i = actions.iterator(); i.hasNext();) { - ValidatorAction va = (ValidatorAction) i.next(); - int jscriptVar = 0; - String functionName = null; - - if ((va.getJsFunctionName() != null) - && (va.getJsFunctionName().length() > 0)) { - functionName = va.getJsFunctionName(); - } else { - functionName = va.getName(); - } - - results.append(" function " + jsFormName + "_" + functionName - + " () { \n"); - - for (Iterator x = form.getFields().iterator(); x.hasNext();) { - Field field = (Field) x.next(); - - // Skip indexed fields for now until there is a good way to - // handle error messages (and the length of the list (could - // retrieve from scope?)) - if (field.isIndexed() || (field.getPage() != page) - || !field.isDependency(va.getName())) { - continue; - } - - String message = - Resources.getMessage(application, request, messages, - locale, va, field); - - message = (message != null) ? message : ""; - - // prefix variable with 'a' to make it a legal identifier - results.append(" this.a" + jscriptVar++ + " = new Array(\"" - + field.getKey() + "\", \"" + escapeQuotes(message) - + "\", "); - - results.append("new Function (\"varName\", \""); - - Map vars = field.getVars(); - - // Loop through the field's variables. - Iterator varsIterator = vars.keySet().iterator(); - - while (varsIterator.hasNext()) { - String varName = (String) varsIterator.next(); - Var var = (Var) vars.get(varName); - String varValue = - Resources.getVarValue(var, application, request, false); - String jsType = var.getJsType(); - - // skip requiredif variables field, fieldIndexed, fieldTest, - // fieldValue - if (varName.startsWith("field")) { - continue; - } - - String varValueEscaped = escapeJavascript(varValue); - - if (Var.JSTYPE_INT.equalsIgnoreCase(jsType)) { - results.append("this." + varName + "=" - + varValueEscaped + "; "); - } else if (Var.JSTYPE_REGEXP.equalsIgnoreCase(jsType)) { - results.append("this." + varName + "=/" - + varValueEscaped + "/; "); - } else if (Var.JSTYPE_STRING.equalsIgnoreCase(jsType)) { - results.append("this." + varName + "='" - + varValueEscaped + "'; "); - - // So everyone using the latest format doesn't need to - // change their xml files immediately. - } else if ("mask".equalsIgnoreCase(varName)) { - results.append("this." + varName + "=/" - + varValueEscaped + "/; "); - } else { - results.append("this." + varName + "='" - + varValueEscaped + "'; "); - } - } - - results.append(" return this[varName];\"));\n"); - } - - results.append(" } \n\n"); - } - - return results.toString(); - } - - private String escapeQuotes(String in) { - if ((in == null) || (in.indexOf("\"") == -1)) { - return in; - } - - StringBuffer buffer = new StringBuffer(); - StringTokenizer tokenizer = new StringTokenizer(in, "\"", true); - - while (tokenizer.hasMoreTokens()) { - String token = tokenizer.nextToken(); - - if (token.equals("\"")) { - buffer.append("\\"); - } - - buffer.append(token); - } - - return buffer.toString(); - } - - /** - *

    Backslash-escapes the following characters from the input string: - * ", ', \, \r, \n.

    - * - *

    This method escapes characters that will result in an invalid - * Javascript statement within the validator Javascript.

    - * - * @param str The string to escape. - * @return The string s with each instance of a double quote, - * single quote, backslash, carriage-return, or line feed escaped - * with a leading backslash. - */ - private String escapeJavascript(String str) { - if (str == null) { - return null; - } - - int length = str.length(); - - if (length == 0) { - return str; - } - - // guess at how many chars we'll be adding... - StringBuffer out = new StringBuffer(length + 4); - - // run through the string escaping sensitive chars - for (int i = 0; i < length; i++) { - char c = str.charAt(i); - - if ((c == '"') || (c == '\'') || (c == '\\') || (c == '\n') - || (c == '\r')) { - out.append('\\'); - } - - out.append(c); - } - - return out.toString(); - } - - /** - * Determines if validations should stop on an error. - * - * @param config The ModuleConfig used to lookup the - * stopOnError setting. - * @return true if validations should stop on errors. - */ - private boolean stopOnError(ModuleConfig config) { - Object stopOnErrorObj = - pageContext.getAttribute(ValidatorPlugIn.STOP_ON_ERROR_KEY + '.' - + config.getPrefix(), PageContext.APPLICATION_SCOPE); - - boolean stopOnError = true; - - if (stopOnErrorObj instanceof Boolean) { - stopOnError = ((Boolean) stopOnErrorObj).booleanValue(); - } - - return stopOnError; - } - - /** - * Creates the JavaScript methods list from the given actions. - * - * @param actions A List of ValidatorAction objects. - * @param stopOnError If true, behaves like released version of struts 1.1 - * and stops after first error. If false, evaluates all - * validations. - * @return JavaScript methods. - */ - private String createMethods(List actions, boolean stopOnError) { - StringBuffer methods = new StringBuffer(); - final String methodOperator = stopOnError ? " && " : " & "; - - Iterator iter = actions.iterator(); - - while (iter.hasNext()) { - ValidatorAction va = (ValidatorAction) iter.next(); - - if (methods.length() > 0) { - methods.append(methodOperator); - } - - methods.append(va.getMethod()).append("(form)"); - } - - return methods.toString(); - } - - /** - * Get List of actions for the given Form. - * - * @param resources - * @param form - * @return A sorted List of ValidatorAction objects. - */ - private List createActionList(ValidatorResources resources, Form form) { - List actionMethods = new ArrayList(); - - Iterator iterator = form.getFields().iterator(); - - while (iterator.hasNext()) { - Field field = (Field) iterator.next(); - - for (Iterator x = field.getDependencyList().iterator(); - x.hasNext();) { - Object o = x.next(); - - if ((o != null) && !actionMethods.contains(o)) { - actionMethods.add(o); - } - } - } - - List actions = new ArrayList(); - - // Create list of ValidatorActions based on actionMethods - iterator = actionMethods.iterator(); - - while (iterator.hasNext()) { - String depends = (String) iterator.next(); - ValidatorAction va = resources.getValidatorAction(depends); - - // throw nicer NPE for easier debugging - if (va == null) { - throw new NullPointerException("Depends string \"" + depends - + "\" was not found in validator-rules.xml."); - } - - if ((va.getJavascript() != null) - && (va.getJavascript().length() > 0)) { - actions.add(va); - } else { - iterator.remove(); - } - } - - Collections.sort(actions, actionComparator); - - return actions; - } - - /** - * Release any acquired resources. - */ - public void release() { - super.release(); - bundle = Globals.MESSAGES_KEY; - formName = null; - jsFormName = null; - page = 0; - methodName = null; - staticJavascript = "true"; - dynamicJavascript = "true"; - htmlComment = "true"; - cdata = "true"; - src = null; - } - - /** - * Returns the opening script element and some initial javascript. - */ - protected String getJavascriptBegin(String methods) { - StringBuffer sb = new StringBuffer(); - String name = jsFormName.replace('/', '_'); // remove any '/' characters - - name = - jsFormName.substring(0, 1).toUpperCase() - + jsFormName.substring(1, jsFormName.length()); - - sb.append(this.renderStartElement()); - - if (this.isXhtml() && "true".equalsIgnoreCase(this.cdata)) { - sb.append("//= 0) { - sb.append(" return (formValidationResult); \n"); - } else { - //Making Sure that Bitwise operator works: - sb.append(" return (formValidationResult == 1); \n"); - } - } - sb.append(" } \n"); - sb.append(" } \n\n"); - - return sb.toString(); - } - - protected String getJavascriptStaticMethods(ValidatorResources resources) { - StringBuffer sb = new StringBuffer(); - - sb.append("\n\n"); - - Iterator actions = resources.getValidatorActions().values().iterator(); - - while (actions.hasNext()) { - ValidatorAction va = (ValidatorAction) actions.next(); - - if (va != null) { - String javascript = va.getJavascript(); - - if ((javascript != null) && (javascript.length() > 0)) { - sb.append(javascript + "\n"); - } - } - } - - return sb.toString(); - } - - /** - * Returns the closing script element. - */ - protected String getJavascriptEnd() { - StringBuffer sb = new StringBuffer(); - - sb.append("\n"); - - if (!this.isXhtml() && "true".equals(htmlComment)) { - sb.append(HTML_END_COMMENT); - } - - if (this.isXhtml() && "true".equalsIgnoreCase(this.cdata)) { - sb.append("//]]>\r\n"); - } - - sb.append("\n\n"); - - return sb.toString(); - } - - /** - * Constructs the beginning <script> element depending on XHTML - * status. - * - * @since Struts 1.2 - */ - protected String renderStartElement() { - StringBuffer start = - new StringBuffer("", "", "")); - assertEquals("invalid ", "")); - assertEquals("invalid