This closes #19
Project: http://git-wip-us.apache.org/repos/asf/incubator-wave/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-wave/commit/d35211be Tree: http://git-wip-us.apache.org/repos/asf/incubator-wave/tree/d35211be Diff: http://git-wip-us.apache.org/repos/asf/incubator-wave/diff/d35211be Branch: refs/heads/master Commit: d35211be577e9b65ba232cfd76345ffc3ecf2d64 Parents: 19783bc Author: wisebaldone <ehu...@gmail.com> Authored: Mon Apr 24 22:19:59 2017 +1000 Committer: wisebaldone <ehu...@gmail.com> Committed: Mon Apr 24 22:19:59 2017 +1000 ---------------------------------------------------------------------- .gitignore | 4 + README.md | 4 +- build.gradle | 20 +- gradle/wrapper/gradle-wrapper.properties | 3 +- pst/build.gradle | 10 +- wave/build.gradle | 338 +-- wave/dist/CHANGES | 2788 ------------------ wave/dist/LICENSE | 524 ---- wave/dist/NOTICE | 17 - wave/dist/README.export-import | 52 - wave/dist/check-certificates.sh | 95 - wave/dist/jsongadgets.json | 730 ----- wave/dist/make_cert.sh | 42 - wave/dist/platforms/ubuntu/daemon-script.sh | 85 - wave/dist/platforms/ubuntu/server-wrapper.sh | 46 - wave/dist/process-script-args.sh | 41 - wave/dist/run-data-migration.sh | 28 - wave/dist/run-export.sh | 25 - wave/dist/run-import.sh | 25 - wave/dist/run-server.bat | 23 - wave/dist/run-server.sh | 31 - wave/dist/run-solr.bat | 26 - wave/dist/run-solr.sh | 30 - .../thumbnail_patterns/application-certificate | Bin 5029 -> 0 bytes ...plication-vnd.ms-excel.sheet.macroEnabled.12 | Bin 3704 -> 0 bytes ...d.ms-powerpoint.presentation.macroEnabled.12 | Bin 3640 -> 0 bytes ...ication-vnd.ms-word.document.macroEnabled.12 | Bin 2530 -> 0 bytes ...s-officedocument.presentationml.presentation | Bin 3640 -> 0 bytes ...rmats-officedocument.presentationml.template | Bin 5216 -> 0 bytes ...mlformats-officedocument.spreadsheetml.sheet | Bin 3704 -> 0 bytes ...ormats-officedocument.spreadsheetml.template | Bin 4127 -> 0 bytes ...ats-officedocument.wordprocessingml.document | Bin 2530 -> 0 bytes ...ats-officedocument.wordprocessingml.template | Bin 4848 -> 0 bytes .../thumbnail_patterns/application-x-executable | Bin 4112 -> 0 bytes wave/dist/thumbnail_patterns/application_pdf | Bin 2811 -> 0 bytes wave/dist/thumbnail_patterns/application_zip | Bin 3142 -> 0 bytes wave/dist/thumbnail_patterns/ascii | Bin 2003 -> 0 bytes wave/dist/thumbnail_patterns/audio-x-generic | Bin 3294 -> 0 bytes wave/dist/thumbnail_patterns/binary | Bin 4112 -> 0 bytes wave/dist/thumbnail_patterns/contents2 | Bin 4613 -> 0 bytes wave/dist/thumbnail_patterns/deb | Bin 3142 -> 0 bytes wave/dist/thumbnail_patterns/default | Bin 2230 -> 0 bytes wave/dist/thumbnail_patterns/document | Bin 2530 -> 0 bytes wave/dist/thumbnail_patterns/empty | Bin 2003 -> 0 bytes wave/dist/thumbnail_patterns/exec | Bin 4112 -> 0 bytes wave/dist/thumbnail_patterns/folder_tar | Bin 3142 -> 0 bytes wave/dist/thumbnail_patterns/font | Bin 3257 -> 0 bytes wave/dist/thumbnail_patterns/font-x-generic | Bin 3257 -> 0 bytes wave/dist/thumbnail_patterns/font_bitmap | Bin 3257 -> 0 bytes wave/dist/thumbnail_patterns/font_truetype | Bin 3257 -> 0 bytes wave/dist/thumbnail_patterns/font_type1 | Bin 3257 -> 0 bytes .../dist/thumbnail_patterns/gnome-fs-executable | Bin 4112 -> 0 bytes wave/dist/thumbnail_patterns/gnome-package | Bin 3142 -> 0 bytes wave/dist/thumbnail_patterns/html | Bin 5007 -> 0 bytes wave/dist/thumbnail_patterns/image | Bin 3326 -> 0 bytes wave/dist/thumbnail_patterns/image-x-generic | Bin 3326 -> 0 bytes wave/dist/thumbnail_patterns/kpresenter_kpr | Bin 3640 -> 0 bytes wave/dist/thumbnail_patterns/mime_ascii | Bin 2003 -> 0 bytes wave/dist/thumbnail_patterns/misc | Bin 2003 -> 0 bytes wave/dist/thumbnail_patterns/package | Bin 3142 -> 0 bytes wave/dist/thumbnail_patterns/package-x-generic | Bin 3142 -> 0 bytes wave/dist/thumbnail_patterns/package_editors | Bin 2003 -> 0 bytes .../thumbnail_patterns/package_wordprocessing | Bin 2530 -> 0 bytes wave/dist/thumbnail_patterns/plan | Bin 3774 -> 0 bytes wave/dist/thumbnail_patterns/rpm | Bin 3142 -> 0 bytes wave/dist/thumbnail_patterns/shellscript | Bin 3469 -> 0 bytes wave/dist/thumbnail_patterns/sound | Bin 3294 -> 0 bytes wave/dist/thumbnail_patterns/spreadsheet | Bin 3704 -> 0 bytes wave/dist/thumbnail_patterns/stock_addressbook | Bin 4613 -> 0 bytes wave/dist/thumbnail_patterns/stock_calendar | Bin 3774 -> 0 bytes wave/dist/thumbnail_patterns/stock_certificate | Bin 5029 -> 0 bytes wave/dist/thumbnail_patterns/stock_script | Bin 3469 -> 0 bytes wave/dist/thumbnail_patterns/tar | Bin 3142 -> 0 bytes wave/dist/thumbnail_patterns/template_source | Bin 2431 -> 0 bytes wave/dist/thumbnail_patterns/text-html | Bin 5007 -> 0 bytes wave/dist/thumbnail_patterns/text-x-generic | Bin 2003 -> 0 bytes .../thumbnail_patterns/text-x-generic-template | Bin 2431 -> 0 bytes wave/dist/thumbnail_patterns/text-x-script | Bin 3469 -> 0 bytes wave/dist/thumbnail_patterns/text_plain | Bin 744 -> 0 bytes wave/dist/thumbnail_patterns/tgz | Bin 3142 -> 0 bytes wave/dist/thumbnail_patterns/txt | Bin 2003 -> 0 bytes wave/dist/thumbnail_patterns/txt2 | Bin 2003 -> 0 bytes wave/dist/thumbnail_patterns/unknown | Bin 2003 -> 0 bytes wave/dist/thumbnail_patterns/vcalendar | Bin 3774 -> 0 bytes wave/dist/thumbnail_patterns/vcard | Bin 4613 -> 0 bytes wave/dist/thumbnail_patterns/video | Bin 5680 -> 0 bytes wave/dist/thumbnail_patterns/video-x-generic | Bin 5680 -> 0 bytes wave/dist/thumbnail_patterns/wordprocessing | Bin 2530 -> 0 bytes wave/dist/thumbnail_patterns/www | Bin 5007 -> 0 bytes .../thumbnail_patterns/x-office-address-book | Bin 4613 -> 0 bytes wave/dist/thumbnail_patterns/x-office-calendar | Bin 3774 -> 0 bytes wave/dist/thumbnail_patterns/x-office-document | Bin 2530 -> 0 bytes .../x-office-document-template | Bin 4848 -> 0 bytes wave/dist/thumbnail_patterns/x-office-drawing | Bin 3402 -> 0 bytes .../x-office-drawing-template | Bin 5471 -> 0 bytes .../thumbnail_patterns/x-office-presentation | Bin 3640 -> 0 bytes .../x-office-presentation-template | Bin 5216 -> 0 bytes .../thumbnail_patterns/x-office-spreadsheet | Bin 3704 -> 0 bytes .../x-office-spreadsheet-template | Bin 4127 -> 0 bytes wave/dist/thumbnail_patterns/zip | Bin 3142 -> 0 bytes wave/src/dist/CHANGES | 2788 ++++++++++++++++++ wave/src/dist/LICENSE | 524 ++++ wave/src/dist/NOTICE | 17 + wave/src/dist/README.export-import | 52 + wave/src/dist/check-certificates.sh | 95 + wave/src/dist/jsongadgets.json | 730 +++++ wave/src/dist/make_cert.sh | 42 + wave/src/dist/process-script-args.sh | 41 + .../thumbnail_patterns/application-certificate | Bin 0 -> 5029 bytes ...plication-vnd.ms-excel.sheet.macroEnabled.12 | Bin 0 -> 3704 bytes ...d.ms-powerpoint.presentation.macroEnabled.12 | Bin 0 -> 3640 bytes ...ication-vnd.ms-word.document.macroEnabled.12 | Bin 0 -> 2530 bytes ...s-officedocument.presentationml.presentation | Bin 0 -> 3640 bytes ...rmats-officedocument.presentationml.template | Bin 0 -> 5216 bytes ...mlformats-officedocument.spreadsheetml.sheet | Bin 0 -> 3704 bytes ...ormats-officedocument.spreadsheetml.template | Bin 0 -> 4127 bytes ...ats-officedocument.wordprocessingml.document | Bin 0 -> 2530 bytes ...ats-officedocument.wordprocessingml.template | Bin 0 -> 4848 bytes .../thumbnail_patterns/application-x-executable | Bin 0 -> 4112 bytes .../src/dist/thumbnail_patterns/application_pdf | Bin 0 -> 2811 bytes .../src/dist/thumbnail_patterns/application_zip | Bin 0 -> 3142 bytes wave/src/dist/thumbnail_patterns/ascii | Bin 0 -> 2003 bytes .../src/dist/thumbnail_patterns/audio-x-generic | Bin 0 -> 3294 bytes wave/src/dist/thumbnail_patterns/binary | Bin 0 -> 4112 bytes wave/src/dist/thumbnail_patterns/contents2 | Bin 0 -> 4613 bytes wave/src/dist/thumbnail_patterns/deb | Bin 0 -> 3142 bytes wave/src/dist/thumbnail_patterns/default | Bin 0 -> 2230 bytes wave/src/dist/thumbnail_patterns/document | Bin 0 -> 2530 bytes wave/src/dist/thumbnail_patterns/empty | Bin 0 -> 2003 bytes wave/src/dist/thumbnail_patterns/exec | Bin 0 -> 4112 bytes wave/src/dist/thumbnail_patterns/folder_tar | Bin 0 -> 3142 bytes wave/src/dist/thumbnail_patterns/font | Bin 0 -> 3257 bytes wave/src/dist/thumbnail_patterns/font-x-generic | Bin 0 -> 3257 bytes wave/src/dist/thumbnail_patterns/font_bitmap | Bin 0 -> 3257 bytes wave/src/dist/thumbnail_patterns/font_truetype | Bin 0 -> 3257 bytes wave/src/dist/thumbnail_patterns/font_type1 | Bin 0 -> 3257 bytes .../dist/thumbnail_patterns/gnome-fs-executable | Bin 0 -> 4112 bytes wave/src/dist/thumbnail_patterns/gnome-package | Bin 0 -> 3142 bytes wave/src/dist/thumbnail_patterns/html | Bin 0 -> 5007 bytes wave/src/dist/thumbnail_patterns/image | Bin 0 -> 3326 bytes .../src/dist/thumbnail_patterns/image-x-generic | Bin 0 -> 3326 bytes wave/src/dist/thumbnail_patterns/kpresenter_kpr | Bin 0 -> 3640 bytes wave/src/dist/thumbnail_patterns/mime_ascii | Bin 0 -> 2003 bytes wave/src/dist/thumbnail_patterns/misc | Bin 0 -> 2003 bytes wave/src/dist/thumbnail_patterns/package | Bin 0 -> 3142 bytes .../dist/thumbnail_patterns/package-x-generic | Bin 0 -> 3142 bytes .../src/dist/thumbnail_patterns/package_editors | Bin 0 -> 2003 bytes .../thumbnail_patterns/package_wordprocessing | Bin 0 -> 2530 bytes wave/src/dist/thumbnail_patterns/plan | Bin 0 -> 3774 bytes wave/src/dist/thumbnail_patterns/rpm | Bin 0 -> 3142 bytes wave/src/dist/thumbnail_patterns/shellscript | Bin 0 -> 3469 bytes wave/src/dist/thumbnail_patterns/sound | Bin 0 -> 3294 bytes wave/src/dist/thumbnail_patterns/spreadsheet | Bin 0 -> 3704 bytes .../dist/thumbnail_patterns/stock_addressbook | Bin 0 -> 4613 bytes wave/src/dist/thumbnail_patterns/stock_calendar | Bin 0 -> 3774 bytes .../dist/thumbnail_patterns/stock_certificate | Bin 0 -> 5029 bytes wave/src/dist/thumbnail_patterns/stock_script | Bin 0 -> 3469 bytes wave/src/dist/thumbnail_patterns/tar | Bin 0 -> 3142 bytes .../src/dist/thumbnail_patterns/template_source | Bin 0 -> 2431 bytes wave/src/dist/thumbnail_patterns/text-html | Bin 0 -> 5007 bytes wave/src/dist/thumbnail_patterns/text-x-generic | Bin 0 -> 2003 bytes .../thumbnail_patterns/text-x-generic-template | Bin 0 -> 2431 bytes wave/src/dist/thumbnail_patterns/text-x-script | Bin 0 -> 3469 bytes wave/src/dist/thumbnail_patterns/text_plain | Bin 0 -> 744 bytes wave/src/dist/thumbnail_patterns/tgz | Bin 0 -> 3142 bytes wave/src/dist/thumbnail_patterns/txt | Bin 0 -> 2003 bytes wave/src/dist/thumbnail_patterns/txt2 | Bin 0 -> 2003 bytes wave/src/dist/thumbnail_patterns/unknown | Bin 0 -> 2003 bytes wave/src/dist/thumbnail_patterns/vcalendar | Bin 0 -> 3774 bytes wave/src/dist/thumbnail_patterns/vcard | Bin 0 -> 4613 bytes wave/src/dist/thumbnail_patterns/video | Bin 0 -> 5680 bytes .../src/dist/thumbnail_patterns/video-x-generic | Bin 0 -> 5680 bytes wave/src/dist/thumbnail_patterns/wordprocessing | Bin 0 -> 2530 bytes wave/src/dist/thumbnail_patterns/www | Bin 0 -> 5007 bytes .../thumbnail_patterns/x-office-address-book | Bin 0 -> 4613 bytes .../dist/thumbnail_patterns/x-office-calendar | Bin 0 -> 3774 bytes .../dist/thumbnail_patterns/x-office-document | Bin 0 -> 2530 bytes .../x-office-document-template | Bin 0 -> 4848 bytes .../dist/thumbnail_patterns/x-office-drawing | Bin 0 -> 3402 bytes .../x-office-drawing-template | Bin 0 -> 5471 bytes .../thumbnail_patterns/x-office-presentation | Bin 0 -> 3640 bytes .../x-office-presentation-template | Bin 0 -> 5216 bytes .../thumbnail_patterns/x-office-spreadsheet | Bin 0 -> 3704 bytes .../x-office-spreadsheet-template | Bin 0 -> 4127 bytes wave/src/dist/thumbnail_patterns/zip | Bin 0 -> 3142 bytes wave/src/main/configs/wave.conf | 20 - .../box/server/rpc/InitialsAvatarsServlet.java | 65 + .../org/waveprotocol/box/server/ServerMain.java | 2 +- .../robots/testing/OperationServiceHelper.java | 120 - .../rpc/testing/FakeServerRpcController.java | 84 - .../util/testing/ExceptionLogHandler.java | 65 - .../box/server/util/testing/Matchers.java | 172 -- .../server/util/testing/TestingConstants.java | 66 - .../org/waveprotocol/box/stat/Statistic.java | 3 + .../client/common/util/SignalEventImpl.java | 4 +- .../scheduler/testing/FakeTimerService.java | 5 +- .../client/testing/UndercurrentHarness.java | 380 --- .../testing/public/UndercurrentHarness.html | 86 - .../conversation/testing/BlipTestUtils.java | 94 - .../testing/FakeConversationView.java | 159 - .../wave/model/testing/BasicFactories.java | 239 -- .../wave/model/testing/DeltaTestUtil.java | 199 -- .../wave/model/testing/DocOpCreator.java | 266 -- .../wave/model/testing/ExtraAsserts.java | 92 - .../wave/model/testing/Factory.java | 34 - .../wave/model/testing/FakeDocument.java | 81 - .../model/testing/FakeHashedVersionFactory.java | 45 - .../wave/model/testing/FakeIdGenerator.java | 44 - .../model/testing/FakeSilentOperationSink.java | 69 - .../wave/model/testing/FakeWaveView.java | 229 -- .../model/testing/FakeWaveletDataListener.java | 320 -- .../wave/model/testing/FakeWaveletListener.java | 58 - .../wave/model/testing/GenericGWTTestBase.java | 77 - .../wave/model/testing/GenericTestBase.java | 70 - .../model/testing/MockParticipationHelper.java | 111 - .../MockWaveletOperationContextFactory.java | 61 - .../wave/model/testing/ModelTestUtils.java | 61 - .../model/testing/OpBasedWaveletFactory.java | 194 -- .../wave/model/testing/OpMatchers.java | 94 - .../model/testing/RandomDocOpGenerator.java | 1421 --------- .../model/testing/RandomNindoGenerator.java | 776 ----- .../wave/model/testing/RandomProviderImpl.java | 72 - .../wave/model/testing/Response.java | 107 - .../wave/model/testing/TestOperations.java | 87 - .../wave/model/testing/WaveletDataFactory.java | 63 - .../wave/box/server/rpc/avatar/unknown.jpg | Bin 0 -> 1669 bytes .../box/attachment/Attachment.gwt.xml | 1 + .../box/common/comms/WaveClientRpc.gwt.xml | 1 + .../waveprotocol/box/profile/Profile.gwt.xml | 2 +- .../org/waveprotocol/box/search/Search.gwt.xml | 1 + .../org/waveprotocol/box/stat/Stat.gwt.xml | 1 + .../wave/client/doodad/Doodad.gwt.xml | 1 + .../wave/client/editor/Editor.gwt.xml | 1 + .../wave/client/scheduler/Scheduler.gwt.xml | 7 +- .../client/scheduler/testing/Testing.gwt.xml | 4 +- .../wave/client/wavepanel/WavePanel.gwt.xml | 5 +- .../wave/client/wavepanel/event/Event.gwt.xml | 5 +- .../java/com/google/wave/api/BlipRobotTest.java | 2 +- .../server/frontend/ClientFrontendImplTest.java | 3 +- .../robots/active/ActiveApiServletTest.java | 2 +- .../robots/dataapi/DataApiServletTest.java | 2 +- .../operations/FetchProfilesServiceTest.java | 2 +- .../robots/operations/SearchServiceTest.java | 2 +- .../box/server/robots/passive/RobotTest.java | 2 +- .../robots/testing/OperationServiceHelper.java | 120 + .../server/rpc/AuthenticationServletTest.java | 2 +- .../rpc/testing/FakeServerRpcController.java | 84 + .../util/testing/ExceptionLogHandler.java | 65 + .../box/server/util/testing/Matchers.java | 172 ++ .../server/util/testing/TestingConstants.java | 66 + .../extract/PasteFormatRendererGwtTest.java | 2 +- .../editor/integration/ParagraphGwtTest.java | 2 +- .../scheduler/IdempotentSchedulerTest.java | 73 +- .../client/scheduler/knobs/ControllerTest.java | 57 +- .../scheduler/testing/FakeTimerServiceTest.java | 146 +- .../client/testing/UndercurrentHarness.java | 380 +++ .../testing/public/UndercurrentHarness.html | 86 + .../wave/client/wavepanel/tests.gwt.xml | 8 +- .../conversation/testing/BlipTestUtils.java | 94 + .../testing/FakeConversationView.java | 159 + .../wave/model/testing/BasicFactories.java | 239 ++ .../wave/model/testing/DeltaTestUtil.java | 199 ++ .../wave/model/testing/DocOpCreator.java | 266 ++ .../wave/model/testing/ExtraAsserts.java | 92 + .../wave/model/testing/Factory.java | 34 + .../wave/model/testing/FakeDocument.java | 81 + .../model/testing/FakeHashedVersionFactory.java | 45 + .../wave/model/testing/FakeIdGenerator.java | 44 + .../model/testing/FakeSilentOperationSink.java | 69 + .../wave/model/testing/FakeWaveView.java | 229 ++ .../model/testing/FakeWaveletDataListener.java | 320 ++ .../wave/model/testing/FakeWaveletListener.java | 58 + .../wave/model/testing/GenericGWTTestBase.java | 77 + .../wave/model/testing/GenericTestBase.java | 70 + .../model/testing/MockParticipationHelper.java | 111 + .../MockWaveletOperationContextFactory.java | 61 + .../wave/model/testing/ModelTestUtils.java | 61 + .../model/testing/OpBasedWaveletFactory.java | 194 ++ .../wave/model/testing/OpMatchers.java | 94 + .../model/testing/RandomDocOpGenerator.java | 1421 +++++++++ .../model/testing/RandomNindoGenerator.java | 776 +++++ .../wave/model/testing/RandomProviderImpl.java | 72 + .../wave/model/testing/Response.java | 107 + .../wave/model/testing/TestOperations.java | 87 + .../wave/model/testing/WaveletDataFactory.java | 63 + .../wave/client/wavepanel/tests.gwt.xml | 6 +- 286 files changed, 10701 insertions(+), 11206 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/d35211be/.gitignore ---------------------------------------------------------------------- diff --git a/.gitignore b/.gitignore index a9cec8c..c800a52 100755 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,7 @@ war/WEB-INF *.project *.classpath */.settings/ +.metadata/ ### Gradle .gradle @@ -57,3 +58,6 @@ wave/config/wave.conf ### Backup files *~ + +### Server running +**/*.log.* \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/d35211be/README.md ---------------------------------------------------------------------- diff --git a/README.md b/README.md index 4572e41..ac92fe4 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,9 @@ software: The nightly binaries can be downloaded from https://builds.apache.org/view/S-Z/view/Wave/job/wave-artifacts/lastSuccessfulBuild/artifact/. The latest "dev" releases can be downloaded from: https://dist.apache.org/repos/dist/dev/incubator/wave/. The latest officially released binaries can be downloaded from: https://dist.apache.org/repos/dist/release/incubator/wave/. -Extract the archive and execute run-server.sh for Linux/Mac or run-server.bat for Windows. + +Extract the archive and execute ./bin/wave for Linux/Mac or bin\wave.bat for Windows. + The web client will be accessible by default at http://localhost:9898/. ## Setup with Vagrant http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/d35211be/build.gradle ---------------------------------------------------------------------- diff --git a/build.gradle b/build.gradle index 2f445c9..d4511fe 100644 --- a/build.gradle +++ b/build.gradle @@ -22,20 +22,21 @@ buildscript { repositories { mavenCentral() } - dependencies { - classpath 'com.google.protobuf:protobuf-gradle-plugin:0.7.3' - } } plugins { id "org.nosphere.apache.rat" version "0.2.0" } allprojects { - apply plugin: 'eclipse'; - apply plugin: 'idea'; + apply plugin: 'eclipse' + apply plugin: 'idea' apply plugin: 'jacoco' group = 'apache-wave' } +tasks.withType(Tar) { + compression = Compression.BZIP2 +} + //============================================================================= // Project Level Settings //============================================================================= @@ -105,8 +106,6 @@ task createDistSourceZip(type: Zip) { } task createDistSourceTar(type: Tar) { - compression = Compression.GZIP - extension = 'tar.gz' baseName = srcName destinationDir = file('distributions') from('./') { @@ -130,7 +129,7 @@ createDistSource.dependsOn createDistSourceZip, createDistSourceTar, ":pst:creat //============================================================================= // Distribution's //============================================================================= -task createDist() { +task createDist(type: Copy) { doFirst { println '' println '--------------------------------------------------------' @@ -139,6 +138,9 @@ task createDist() { println '--------------------------------------------------------' println '' } + from('wave/build/distributions') { + } + into 'distributions' } -createDist.dependsOn createDistSource, ":wave:createDistBin", ":pst:createDist" \ No newline at end of file +createDist.dependsOn createDistSource, ":wave:assembleDist", ":pst:createDist" \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/d35211be/gradle/wrapper/gradle-wrapper.properties ---------------------------------------------------------------------- diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 08ca730..41eabe8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Sun Feb 21 14:40:07 AEST 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.11-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-3.2-all.zip http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/d35211be/pst/build.gradle ---------------------------------------------------------------------- diff --git a/pst/build.gradle b/pst/build.gradle index d32385a..3c7bbe6 100644 --- a/pst/build.gradle +++ b/pst/build.gradle @@ -21,8 +21,8 @@ plugins { id 'java' id 'com.github.johnrengelman.shadow' version '1.2.3' + id 'com.google.protobuf' version '0.8.0' } -apply plugin: 'com.google.protobuf' //============================================================================= // Project Level Settings @@ -46,6 +46,10 @@ jar { } } +tasks.withType(Tar) { + compression = Compression.BZIP2 +} + //============================================================================= // Source's //============================================================================= @@ -126,8 +130,6 @@ def srcExcludes = [ ] task createDistSourceTar(type: Tar) { - compression = Compression.GZIP - extension = 'tar.gz' baseName = srcName destinationDir = file('../distributions') from('./') { @@ -165,8 +167,6 @@ createDistSource.dependsOn createDistSourceTar, createDistSourceZip def binName = this.group + "-" + this.name + "-bin" task createDistBinTar(type: Tar) { - compression = Compression.GZIP - extension = 'tar.gz' baseName = binName destinationDir = file('../distributions') from(shadowJar) { http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/d35211be/wave/build.gradle ---------------------------------------------------------------------- diff --git a/wave/build.gradle b/wave/build.gradle index bfe2fb9..f67a9fa 100644 --- a/wave/build.gradle +++ b/wave/build.gradle @@ -21,8 +21,8 @@ plugins { id 'java' id 'application' + id "com.google.protobuf" version "0.8.0" } -apply plugin: 'com.google.protobuf' //============================================================================= // Project Level Settings @@ -50,17 +50,6 @@ compileJava { configurations { generateMessages generateGXP - gwt -} - -// -// Workaround for validation API conflicts (GWT has not updated the dependency) -// https://groups.google.com/forum/#!topic/google-web-toolkit/KtdRAWNotXE -// -configurations.gwt { - resolutionStrategy { - force 'javax.validation:validation-api:1.0.0.GA' - } } //============================================================================= @@ -104,84 +93,60 @@ sourceSets { repositories { mavenCentral() maven { - url 'http://archiva.comunes.org/repository/comunes-snapshots/' - } - maven { url 'https://oauth.googlecode.com/svn/code/maven/' } maven { - url 'https://oss.sonatype.org/content/repositories/google-snapshots/' - } - maven { - url 'https://oss.sonatype.org/service/local/repositories/snapshots/content/' - } - maven { url 'https://maven.atlassian.com/3rdparty/' } } - +configurations.compile { + resolutionStrategy { + //failOnVersionConflict() + } +} dependencies { - gwt( - [group: "javax.validation", name: "validation-api", version: "1.1.0.Final"], // [?, ?] - [group: "javax.validation", name: "validation-api", version: "1.1.0.Final", classifier: "sources"], // [?, ?] - [group: "com.google.gwt", name: "gwt-dev", version: "2.8.0"], // [?, ?] - [group: "com.google.gwt", name: "gwt-user", version: "2.8.0"], // [?, ?] - [group: "com.google.gwt", name: "gwt-codeserver", version: "2.8.0"], // [?, ?] - ) compile ( - [group: "com.google.gwt", name: "gwt-dev", version: "2.8.0"], // [?, ?] - [group: "com.google.gwt", name: "gwt-user", version: "2.8.0"], // [?, ?] - [group: "com.google.gwt", name: "gwt-codeserver", version: "2.8.0"], // [?, ?] - [group: "aopalliance", name: "aopalliance", version: "1.0"], // [?, ?] - [group: "cc.kune", name: "gwt-initials-avatars-shared", version: "1.0-SNAPSHOT"], // [?, ?] - [group: "cc.kune", name: "gwt-initials-avatars-server", version: "1.0-SNAPSHOT"], // [?, ?] - [group: "commons-fileupload", name: "commons-fileupload", version: "1.2.2"], // [?, ?] - [group: "commons-cli", name: "commons-cli", version: "1.2"], // [?, ?] - [group: "commons-codec", name: "commons-codec", version: "1.4"], // [?, ?] + [group: "com.google.code.gson", name: "gson", version: "2.8.0"], // [11/2016, 1/2018] + [group: "com.google.guava", name: "guava", version: "20.0"], // [11/2016, 1/2018] + [group: "com.google.guava", name: "guava-gwt", version: "20.0"], // [11/2016, 1/2018] + [group: "com.google.gwt", name: "gwt-dev", version: "2.8.0"], // [11/2016, 1/2018] + [group: "com.google.gwt", name: "gwt-user", version: "2.8.0"], // [11/2016, 1/2018] + [group: "com.google.gwt", name: "gwt-codeserver", version: "2.8.0"], // [11/2016, 1/2018] + [group: "com.google.gxp", name: "google-gxp", version: "0.2.4-beta"], // [?, ?] + [group: "com.google.protobuf", name: "protobuf-java", version: "2.6.1"], // [?, ?] + [group: "com.google.protobuf", name: "protobuf-java", version: "2.6.1", classifier: 'sources'], // [?, ?] + [group: "com.googlecode.protobuf-java-format", name: "protobuf-java-format", version: "1.2"], // [?, ?] + [group: "com.typesafe", name: "config", version: "1.2.1"], // [?, ?] + [group: "commons-codec", name: "commons-codec", version: "1.10"], // [?, ?] [group: "commons-io", name: "commons-io", version: "2.4"], // [?, ?] [group: "commons-collections", name: "commons-collections", version: "3.2.2"], // [?, ?] [group: "commons-configuration", name: "commons-configuration", version: "1.6"], // [?, ?] [group: "commons-httpclient", name: "commons-httpclient", version: "3.1"], // [?, ?] [group: "commons-lang", name: "commons-lang", version: "2.5"], // [?, ?] - [group: "commons-logging", name: "commons-logging-api", version: "1.1"], // [?, ?] - [group: "commons-logging", name: "commons-logging", version: "1.1.1"], // [?, ?] - [group: "com.google.code.findbugs", name: "jsr305", version: "2.0.1"], // [?, ?] - [group: "com.google.code.gson", name: "gson", version: "2.2.4"], // [?, ?] - [group: "com.google.guava", name: "guava", version: "20.0"], // [?, ?] - [group: "com.google.guava", name: "guava-gwt", version: "20.0"], // [?, ?] - [group: "com.google.gxp", name: "google-gxp", version: "0.2.4-beta"], // [?, ?] - [group: "com.google.inject.extensions", name: "guice-assistedinject", version: "3.0"], // [?, ?] - [group: "com.google.inject.extensions", name: "guice-servlet", version: "3.0"], // [?, ?] - [group: "com.google.inject", name: "guice", version: "3.0"], // [?, ?] - [group: "com.google.protobuf", name: "protobuf-java", version: "2.6.1"], // [?, ?] - [group: "com.googlecode.protobuf-java-format", name: "protobuf-java-format", version: "1.2"], // [?, ?] - [group: "com.typesafe", name: "config", version: "1.2.1"], // [?, ?] - [group: "dom4j", name: "dom4j", version: "1.6.1"], // [?, ?] - [group: "eu.infomas", name: "annotation-detector", version: "3.0.0"], // [?, ?] - [group: "org.antlr", name: "antlr", version: "3.2"], // [?, ?] + [group: "commons-fileupload", name: "commons-fileupload", version: "1.3.2"], // [11/2016, 6/2017] [group: "org.apache.velocity", name: "velocity", version: "1.6.3"], // [?, ?] [group: "org.apache.lucene", name: "lucene-core", version: "3.5.0"], // [?, ?] [group: "org.atmosphere", name: "atmosphere-guice", version: "0.8.3"], // [?, ?] [group: "org.atmosphere", name: "atmosphere-runtime", version: "2.1.0"], // [?, ?] [group: "org.bouncycastle", name: "bcprov-jdk16", version: "1.45"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-annotations", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-client", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-continuation", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-http", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-io", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-proxy", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-security", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-server", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-servlet", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-servlets", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-util", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-webapp", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty", name: "jetty-xml", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty.websocket", name: "websocket-api", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty.websocket", name: "websocket-client", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty.websocket", name: "websocket-common", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty.websocket", name: "websocket-server", version: "9.2.14.v20151106"], // [?, ?] - [group: "org.eclipse.jetty.websocket", name: "websocket-servlet", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty", name: "jetty-annotations", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty", name: "jetty-client", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty", name: "jetty-continuation", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty", name: "jetty-http", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty", name: "jetty-io", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty", name: "jetty-proxy", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty", name: "jetty-security", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty", name: "jetty-server", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty", name: "jetty-servlet", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty", name: "jetty-servlets", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty", name: "jetty-util", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty", name: "jetty-webapp", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty", name: "jetty-xml", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty.websocket", name: "websocket-api", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty.websocket", name: "websocket-client", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty.websocket", name: "websocket-common", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty.websocket", name: "websocket-server", version: "9.2.14.v20151106"], // [?, ?] + [group: "org.eclipse.jetty.websocket", name: "websocket-servlet", version: "9.2.14.v20151106"], // [?, ?] [group: "org.jdom", name: "jdom", version: "1.1.3"], // [?, ?] [group: "org.mongodb", name: "mongo-java-driver", version: "2.11.2"], // [?, ?] [group: "org.slf4j", name: "slf4j-api", version: "1.6.1"], // [?, ?] @@ -189,23 +154,13 @@ dependencies { [group: "javax.inject", name: "javax.inject", version: "1"], // [?, ?] [group: "javax.servlet", name: "javax.servlet-api", version: "3.1.0"], // [?, ?] [group: "javax.jdo", name: "jdo2-api", version: "2.1"], // [?, ?] - [group: "jline", name: "jline", version: "0.9.94"], // [?, ?] - [group: "joda-time", name: "joda-time", version: "1.6"], // [?, ?] - [group: "net.oauth.core", name: "oauth-provider", version: "20100601-atlassian-2"], // [?, ?] - [group: "net.oauth.core", name: "oauth", version: "20100601-atlassian-2"], // [?, ?] - [group: "net.oauth.core", name: "oauth-consumer", version: "20100601-atlassian-2"], // [?, ?] - [group: "xerces", name: "xercesImpl", version: "2.11.0"], // [?, ?] - [group: "xpp3", name: "xpp3", version: "1.1.4c"], // [?, ?] - [group: "xpp3", name: "xpp3_xpath", version: "1.1.4c"], // [?, ?] - //TODO: Following are included due to tests being in the main src directory - [group: "org.mockito", name: "mockito-all", version: "1.9.5"], // [?, ?] - [group: "org.hamcrest", name: "hamcrest-all", version: "1.3"] // [?, ?] - + [group: "net.oauth.core", name: "oauth-provider", version: "20100601-atlassian-2"], // [11/2016, depreciate] + [group: "net.oauth.core", name: "oauth", version: "20100601-atlassian-2"], // [11/2016, depreciate] + [group: "net.oauth.core", name: "oauth-consumer", version: "20100601-atlassian-2"], // [11/2016, depreciate] ) - compile fileTree(dir: 'dependencies/compile', include: "**/*.jar") // [?, ?] compile fileTree(dir: '../pst/build/libs', include: '**/*.jar') // [?, ?] generateGXP ( - [group: "com.google.gxp", name: "google-gxp", version: "0.2.4-beta"] // [?, ?] + [group: "com.google.gxp", name: "google-gxp", version: "0.2.4-beta"] // [11/2016, depreciate] ) protoCompile ( [group: "com.google.protobuf", name: "protobuf-java", version: "2.6.1"], // [?, ?] @@ -215,19 +170,9 @@ dependencies { fileTree(dir: '../pst/build/libs', include: '**/*.jar') // [?, ?] ) testCompile( - [group: 'junit', name: 'junit', version: '4.12'], // [?, ?] - [group: "org.ow2.asm", name: "asm", version: "5.0.4"], // [?, ?] - [group: "cglib", name: "cglib", version: "2.2"], // [?, ?] - [group: "com.novocode", name: "junit-interface", version: "0.11"], // [?, ?] - [group: "emma", name: "emma", version: "2.0.5312"], // [?, ?] - [group: "emma", name: "emma_ant", version: "2.1.5320"], // [?, ?] - [group: "org.hamcrest", name: "hamcrest-all", version: "1.3"], // [?, ?] - [group: "org.jmock", name: "jmock-junit3", version: "2.6.0"], // [?, ?] - [group: "org.jmock", name: "jmock", version: "2.6.0"], // [?, ?] - [group: "org.mockito", name: "mockito-all", version: "1.9.5"], // [?, ?] - [group: "com.google.gwt", name: "gwt-dev", version: "2.8.0"], // [?, ?] - [group: "com.google.gwt", name: "gwt-user", version: "2.8.0"], // [?, ?] - [group: "com.google.gwt", name: "gwt-codeserver", version: "2.8.0"], // [?, ?] + [group: 'junit', name: 'junit', version: '4.12'], // [11/2016, 1/2018] + [group: "org.hamcrest", name: "hamcrest-junit", version: "2.0.0.0"], // [11/2016, 1/2018] + [group: "org.mockito", name: "mockito-core", version: "2.2.21"], // [11/2016, 1/2018] ) } @@ -319,6 +264,7 @@ task generateGXP { //============================================================================= task compileGwt { description = 'Compiles the GWT sources for production' + FileTree inputFiles = fileTree(dir: 'generated/src/main/java', include: '**/*.java') doLast { javaexec { main = "com.google.gwt.dev.Compiler" @@ -326,8 +272,7 @@ task compileGwt { [ sourceSets.main.java.srcDirs, sourceSets.main.compileClasspath, - sourceSets.main.resources.srcDirs, - configurations.gwt + sourceSets.main.resources.srcDirs ] } jvmArgs = [ @@ -345,7 +290,6 @@ task compileGwt { } compileGwt.mustRunAfter compileJava -run.dependsOn compileGwt task compileGwtDemo { description = 'Compiles the GWT sources for Demo' @@ -356,8 +300,7 @@ task compileGwtDemo { [ sourceSets.main.java.srcDirs, sourceSets.main.compileClasspath, - sourceSets.main.resources.srcDirs, - configurations.gwt + sourceSets.main.resources.srcDirs ] } args = [ @@ -378,8 +321,7 @@ task compileGwtDev { [ sourceSets.main.java.srcDirs, sourceSets.main.compileClasspath, - sourceSets.main.resources.srcDirs, - configurations.gwt + sourceSets.main.resources.srcDirs ] } args = [ @@ -394,7 +336,7 @@ task compileGwtDev { } - +run.dependsOn compileGwt compileJava.dependsOn = [generateMessages, generateGXP] /* Gwt Dev Tasks */ @@ -417,8 +359,7 @@ task gwtDev { [ sourceSets.main.java.srcDirs, sourceSets.main.compileClasspath, - sourceSets.main.resources.srcDirs, - configurations.gwt, + sourceSets.main.resources.srcDirs ] } args = [ @@ -454,15 +395,18 @@ test { } } -/* TODO(wisebaldone) not working due to gwt conflict talked about above, cant - have everything on classpath because 2 jetty versions. */ task testGwt(type: Test) { include "**/*GwtTest*" + classpath += files('src/main/java/') + classpath += files('src/test/java/') + minHeapSize = "512m" maxHeapSize = "1024m" forkEvery = 1 + jvmArgs '-Dgwt.args=-logLevel WARN' + doFirst { println '' println '--------------------' @@ -521,20 +465,12 @@ testMongo.mustRunAfter compileJava, test testLarge.mustRunAfter test //============================================================================= -// Custom UberJar Implementation -// Author Note: this custom implementation should be replaced by the shadow -// plugin as shown in the pst project. +// Dist's //============================================================================= -task extractApi(type: Copy) { - from (configurations.compile.collect { zipTree(it) }) { - //Note: readonly files which get overwritten crash windows. - exclude "LICENSE" - } into "$buildDir/api" -} - -extractApi.mustRunAfter compileJava jar { + baseName = 'wave' + classifier = '' manifest { attributes "Specification-Vendor": vendor, "Specification-Title": title, @@ -545,52 +481,6 @@ jar { "Built-By": "No one in particular", "Main-Class": mainClassName } - from "$buildDir/api" - include "META-INF/services/*" - include "com/mongodb/**/*" - include "org/slf4j/**/*" - include "org/atmosphere/**/*" - include "com/google/common/**/*" - include "com/google/gson/**/*" - include "com/google/gxp/**/*" - include "com/google/gwt/core/server/**/*" - include "com/google/gwt/core/shared/**/*" - include "com/google/gwt/logging/**/*" - include "com/google/gwt/user/server/**/*" - include "com/google/gwt/user/client/rpc/**/*" - include "com/google/inject/**/*" - include "com/google/protobuf/**/*" - include "com/google/wave/**/*" - include "com/typesafe/**/*" - include "gnu/inet/**/*" - include "javax/inject/**/*" - include "javax/servlet/**/*" - include "javax/xml/**/*" - include "net/oauth/**/*" - include "org/aopalliance/**/*" - include "org/apache/commons/cli/**/*" - include "org/apache/commons/codec/**/*" - include "org/apache/commons/collections/**/*" - include "org/apache/commons/configuration/**/*" - include "org/apache/commons/fileupload/**/*" - include "org/apache/commons/httpclient/**/*" - include "org/apache/commons/lang/**/*" - include "org/apache/commons/logging/**/*" - include "org/apache/lucene/**/*" - include "org/apache/commons/io/**/*" - include "org/apache/xerces/**/*" - include "org/apache/wave/**/*" - include "org/bson/**/*" - include "org/dom4j/**/*" - include "org/eclipse/**/*" - include "org/jdom/**/*" - include "org/jivesoftware/**/*" - include "org/joda/time/**/*" - include "org/json/**/*" - include "org/waveprotocol/**/*" - include "org/xmlpull/**/*" - include "org/xmpp/**/*" - include "cc/kune/initials/**/*" exclude "org/waveprotocol/box/webclient/**/*" exclude "org/waveprotocol/box/consoleclient/**/*" exclude "org/waveprotocol/box/expimp/**/*" @@ -616,102 +506,40 @@ jar { exclude "org/waveprotocol/wave/client/widget/**/*" exclude "com/google/api/client/**/*" } - -jar.dependsOn compileJava, compileGwt, extractApi +jar.dependsOn compileJava, compileGwt //============================================================================= // Binary Distribution //============================================================================= - -def binName = this.group + "-bin" - -task createPropertiesFile(type: Copy) { - from 'src/main/configs' - include 'wave.conf' - into 'config' - expand([ - version: version - ]) +tasks.withType(Tar) { + compression = Compression.BZIP2 } -task createDistBinZip(type: Zip) { - baseName = binName - destinationDir = file('../distributions') - from(jar) { - into 'apache-wave/bin' - } - from('dist') { - into 'apache-wave' - } - from('config') { - into 'apache-wave/config' - } - from('war') { - into 'apache-wave/war' - } - from('../THANKS') { - into 'apache-wave' - } - from('../RELEASE-NOTES') { - into 'apache-wave' - } - from('../KEYS') { - into 'apache-wave' - } - from('../DISCLAIMER') { - into 'apache-wave' - } -} - -task createDistBinTar(type: Tar) { - compression = Compression.GZIP - extension = 'tar.gz' - baseName = binName - destinationDir = file('../distributions') - from(jar) { - into 'apache-wave/bin' - } - from('dist') { - into 'apache-wave' - } - from('config') { - into 'apache-wave/config' - } - from('war') { - into 'apache-wave/war' - } - from('../THANKS') { - into 'apache-wave' - } - from('../RELEASE-NOTES') { - into 'apache-wave' - } - from('../KEYS') { - into 'apache-wave' - } - from('../DISCLAIMER') { - into 'apache-wave' - } -} - -createDistBinZip.dependsOn jar, createPropertiesFile -createDistBinTar.dependsOn jar, createPropertiesFile - -//============================================================================= -// Distribution's -//============================================================================= -task createDistBin() { - doFirst { - println '' - println '--------------------------------------------------------' - println ' Creating Deployment ' - println '--------------------------------------------------------' - println '' +distributions { + main { + contents { + from('config') { + into 'config' + } + from('war') { + into 'war' + } + from('../THANKS') { + into '' + } + from('../RELEASE-NOTES') { + into '' + } + from('../KEYS') { + into '' + } + from('../DISCLAIMER') { + into '' + } + } } } -createDistBin.dependsOn createDistBinZip, createDistBinTar - // Additional Clean clean { delete "war/WEB-INF"