diff --git a/Kieker.WebGUI/lib/spring-core-3.1.2.RELEASE.LICENSE b/Kieker.WebGUI/lib/spring-core-3.1.2.RELEASE.LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..7375b7e8ca126ad52c0c6e181a9b79fa92da3ef5 --- /dev/null +++ b/Kieker.WebGUI/lib/spring-core-3.1.2.RELEASE.LICENSE @@ -0,0 +1,261 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +======================================================================= + +SPRING FRAMEWORK 3.1 SUBCOMPONENTS: + +Spring Framework 3.1 includes a number of subcomponents with +separate copyright notices and license terms. The product that +includes this file does not necessarily use all the open source +subcomponents referred to below. Your use of the source +code for these subcomponents is subject to the terms and +conditions of the following licenses. + +>>> asm-2.2.3: + +Copyright (c) 2000-2005 INRIA, France Telecom +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. 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. + +3. Neither the name of the copyright holders nor the names of its + 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. + +Copyright (c) 1999-2009, OW2 Consortium <http://www.ow2.org/> + +======================================================================= + +To the extent any open source subcomponents are licensed under the EPL and/or other +similar licenses that require the source code and/or modifications to +source code to be made available (as would be noted above), you may obtain a +copy of the source code corresponding to the binaries for such open source +components and modifications thereto, if any, (the "Source Files"), by +downloading the Source Files from http://www.springsource.org/download, +or by sending a request, with your name and address to: VMware, Inc., 3401 Hillview +Avenue, Palo Alto, CA 94304, United States of America or email info@vmware.com. All +such requests should clearly specify: OPEN SOURCE FILES REQUEST, Attention General +Counsel. VMware shall mail a copy of the Source Files to you on a CD or equivalent +physical medium. This offer to obtain a copy of the Source Files is valid for three +years from the date you acquired this Software product. \ No newline at end of file diff --git a/Kieker.WebGUI/lib/spring-security-config-3.1.2-RELEASE.LICENSE b/Kieker.WebGUI/lib/spring-security-config-3.1.2-RELEASE.LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..7375b7e8ca126ad52c0c6e181a9b79fa92da3ef5 --- /dev/null +++ b/Kieker.WebGUI/lib/spring-security-config-3.1.2-RELEASE.LICENSE @@ -0,0 +1,261 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +======================================================================= + +SPRING FRAMEWORK 3.1 SUBCOMPONENTS: + +Spring Framework 3.1 includes a number of subcomponents with +separate copyright notices and license terms. The product that +includes this file does not necessarily use all the open source +subcomponents referred to below. Your use of the source +code for these subcomponents is subject to the terms and +conditions of the following licenses. + +>>> asm-2.2.3: + +Copyright (c) 2000-2005 INRIA, France Telecom +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. 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. + +3. Neither the name of the copyright holders nor the names of its + 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. + +Copyright (c) 1999-2009, OW2 Consortium <http://www.ow2.org/> + +======================================================================= + +To the extent any open source subcomponents are licensed under the EPL and/or other +similar licenses that require the source code and/or modifications to +source code to be made available (as would be noted above), you may obtain a +copy of the source code corresponding to the binaries for such open source +components and modifications thereto, if any, (the "Source Files"), by +downloading the Source Files from http://www.springsource.org/download, +or by sending a request, with your name and address to: VMware, Inc., 3401 Hillview +Avenue, Palo Alto, CA 94304, United States of America or email info@vmware.com. All +such requests should clearly specify: OPEN SOURCE FILES REQUEST, Attention General +Counsel. VMware shall mail a copy of the Source Files to you on a CD or equivalent +physical medium. This offer to obtain a copy of the Source Files is valid for three +years from the date you acquired this Software product. \ No newline at end of file diff --git a/Kieker.WebGUI/lib/spring-security-taglibs-3.1.2-RELEASE.LICENSE b/Kieker.WebGUI/lib/spring-security-taglibs-3.1.2-RELEASE.LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..7375b7e8ca126ad52c0c6e181a9b79fa92da3ef5 --- /dev/null +++ b/Kieker.WebGUI/lib/spring-security-taglibs-3.1.2-RELEASE.LICENSE @@ -0,0 +1,261 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +======================================================================= + +SPRING FRAMEWORK 3.1 SUBCOMPONENTS: + +Spring Framework 3.1 includes a number of subcomponents with +separate copyright notices and license terms. The product that +includes this file does not necessarily use all the open source +subcomponents referred to below. Your use of the source +code for these subcomponents is subject to the terms and +conditions of the following licenses. + +>>> asm-2.2.3: + +Copyright (c) 2000-2005 INRIA, France Telecom +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. 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. + +3. Neither the name of the copyright holders nor the names of its + 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. + +Copyright (c) 1999-2009, OW2 Consortium <http://www.ow2.org/> + +======================================================================= + +To the extent any open source subcomponents are licensed under the EPL and/or other +similar licenses that require the source code and/or modifications to +source code to be made available (as would be noted above), you may obtain a +copy of the source code corresponding to the binaries for such open source +components and modifications thereto, if any, (the "Source Files"), by +downloading the Source Files from http://www.springsource.org/download, +or by sending a request, with your name and address to: VMware, Inc., 3401 Hillview +Avenue, Palo Alto, CA 94304, United States of America or email info@vmware.com. All +such requests should clearly specify: OPEN SOURCE FILES REQUEST, Attention General +Counsel. VMware shall mail a copy of the Source Files to you on a CD or equivalent +physical medium. This offer to obtain a copy of the Source Files is valid for three +years from the date you acquired this Software product. \ No newline at end of file diff --git a/Kieker.WebGUI/lib/spring-security-web-3.1.2.RELEASE.LICENSE b/Kieker.WebGUI/lib/spring-security-web-3.1.2.RELEASE.LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..7375b7e8ca126ad52c0c6e181a9b79fa92da3ef5 --- /dev/null +++ b/Kieker.WebGUI/lib/spring-security-web-3.1.2.RELEASE.LICENSE @@ -0,0 +1,261 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +======================================================================= + +SPRING FRAMEWORK 3.1 SUBCOMPONENTS: + +Spring Framework 3.1 includes a number of subcomponents with +separate copyright notices and license terms. The product that +includes this file does not necessarily use all the open source +subcomponents referred to below. Your use of the source +code for these subcomponents is subject to the terms and +conditions of the following licenses. + +>>> asm-2.2.3: + +Copyright (c) 2000-2005 INRIA, France Telecom +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. 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. + +3. Neither the name of the copyright holders nor the names of its + 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. + +Copyright (c) 1999-2009, OW2 Consortium <http://www.ow2.org/> + +======================================================================= + +To the extent any open source subcomponents are licensed under the EPL and/or other +similar licenses that require the source code and/or modifications to +source code to be made available (as would be noted above), you may obtain a +copy of the source code corresponding to the binaries for such open source +components and modifications thereto, if any, (the "Source Files"), by +downloading the Source Files from http://www.springsource.org/download, +or by sending a request, with your name and address to: VMware, Inc., 3401 Hillview +Avenue, Palo Alto, CA 94304, United States of America or email info@vmware.com. All +such requests should clearly specify: OPEN SOURCE FILES REQUEST, Attention General +Counsel. VMware shall mail a copy of the Source Files to you on a CD or equivalent +physical medium. This offer to obtain a copy of the Source Files is valid for three +years from the date you acquired this Software product. \ No newline at end of file diff --git a/Kieker.WebGUI/lib/spring-web-3.1.2.RELEASE.LICENSE b/Kieker.WebGUI/lib/spring-web-3.1.2.RELEASE.LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..7375b7e8ca126ad52c0c6e181a9b79fa92da3ef5 --- /dev/null +++ b/Kieker.WebGUI/lib/spring-web-3.1.2.RELEASE.LICENSE @@ -0,0 +1,261 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +======================================================================= + +SPRING FRAMEWORK 3.1 SUBCOMPONENTS: + +Spring Framework 3.1 includes a number of subcomponents with +separate copyright notices and license terms. The product that +includes this file does not necessarily use all the open source +subcomponents referred to below. Your use of the source +code for these subcomponents is subject to the terms and +conditions of the following licenses. + +>>> asm-2.2.3: + +Copyright (c) 2000-2005 INRIA, France Telecom +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. 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. + +3. Neither the name of the copyright holders nor the names of its + 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. + +Copyright (c) 1999-2009, OW2 Consortium <http://www.ow2.org/> + +======================================================================= + +To the extent any open source subcomponents are licensed under the EPL and/or other +similar licenses that require the source code and/or modifications to +source code to be made available (as would be noted above), you may obtain a +copy of the source code corresponding to the binaries for such open source +components and modifications thereto, if any, (the "Source Files"), by +downloading the Source Files from http://www.springsource.org/download, +or by sending a request, with your name and address to: VMware, Inc., 3401 Hillview +Avenue, Palo Alto, CA 94304, United States of America or email info@vmware.com. All +such requests should clearly specify: OPEN SOURCE FILES REQUEST, Attention General +Counsel. VMware shall mail a copy of the Source Files to you on a CD or equivalent +physical medium. This offer to obtain a copy of the Source Files is valid for three +years from the date you acquired this Software product. \ No newline at end of file diff --git a/Kieker.WebGUI/lib/spring-webmvc-3.1.2.RELEASE.LICENSE b/Kieker.WebGUI/lib/spring-webmvc-3.1.2.RELEASE.LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..7375b7e8ca126ad52c0c6e181a9b79fa92da3ef5 --- /dev/null +++ b/Kieker.WebGUI/lib/spring-webmvc-3.1.2.RELEASE.LICENSE @@ -0,0 +1,261 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +======================================================================= + +SPRING FRAMEWORK 3.1 SUBCOMPONENTS: + +Spring Framework 3.1 includes a number of subcomponents with +separate copyright notices and license terms. The product that +includes this file does not necessarily use all the open source +subcomponents referred to below. Your use of the source +code for these subcomponents is subject to the terms and +conditions of the following licenses. + +>>> asm-2.2.3: + +Copyright (c) 2000-2005 INRIA, France Telecom +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. 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. + +3. Neither the name of the copyright holders nor the names of its + 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. + +Copyright (c) 1999-2009, OW2 Consortium <http://www.ow2.org/> + +======================================================================= + +To the extent any open source subcomponents are licensed under the EPL and/or other +similar licenses that require the source code and/or modifications to +source code to be made available (as would be noted above), you may obtain a +copy of the source code corresponding to the binaries for such open source +components and modifications thereto, if any, (the "Source Files"), by +downloading the Source Files from http://www.springsource.org/download, +or by sending a request, with your name and address to: VMware, Inc., 3401 Hillview +Avenue, Palo Alto, CA 94304, United States of America or email info@vmware.com. All +such requests should clearly specify: OPEN SOURCE FILES REQUEST, Attention General +Counsel. VMware shall mail a copy of the Source Files to you on a CD or equivalent +physical medium. This offer to obtain a copy of the Source Files is valid for three +years from the date you acquired this Software product. \ No newline at end of file diff --git a/Kieker.WebGUI/nb-configuration.xml b/Kieker.WebGUI/nb-configuration.xml index 3e1840f86953bff823f259b37d36e350fda36ce7..1d0c993533666497fbca9a8c4395aac4fceab81c 100644 --- a/Kieker.WebGUI/nb-configuration.xml +++ b/Kieker.WebGUI/nb-configuration.xml @@ -19,4 +19,10 @@ Any value defined here will override the pom.xml file value but is only applicab <netbeans.compile.on.save>all</netbeans.compile.on.save> <org-netbeans-modules-projectapi.jsf_2e_language>Facelets</org-netbeans-modules-projectapi.jsf_2e_language> </properties> + <spring-data xmlns="http://www.netbeans.org/ns/spring-data/1"> + <config-files> + <config-file>src/main/webapp/WEB-INF/spring-config.xml</config-file> + </config-files> + <config-file-groups/> + </spring-data> </project-shared-configuration> diff --git a/Kieker.WebGUI/pom.xml b/Kieker.WebGUI/pom.xml index 431fe151bbfcff2ba6ec16dab21f2e5e4d56a359..cdb29ea662e8139bea29504424e97bd340f5abcc 100644 --- a/Kieker.WebGUI/pom.xml +++ b/Kieker.WebGUI/pom.xml @@ -26,8 +26,9 @@ <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <kieker.jar>kieker-1.6_emf.jar</kieker.jar> + <spring.version>3.1.2.RELEASE</spring.version> </properties> - + <repositories> <repository> <id>prime-repo</id> @@ -35,9 +36,44 @@ <url>http://repository.primefaces.org</url> <layout>default</layout> </repository> + <repository> + <id>springsource-repo</id> + <name>SpringSource Repository</name> + <url>http://repo.springsource.org/release</url> + </repository> </repositories> - <dependencies> + <dependencies> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + <version>${spring.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-web</artifactId> + <version>${spring.version}</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-webmvc</artifactId> + <version>${spring.version}</version> + </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-web</artifactId> + <version>${spring.version}</version> + </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-config</artifactId> + <version>${spring.version}</version> + </dependency> + <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-taglibs</artifactId> + <version>${spring.version}</version> + </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> @@ -266,7 +302,7 @@ <version>1.6-SNAPSHOT</version> <scope>system</scope> <systemPath>${project.basedir}/lib/${kieker.jar}</systemPath> - </dependency> + </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> @@ -373,7 +409,7 @@ <configuration> <tasks> <copy file="${project.basedir}/lib/${kieker.jar}" - todir="${project.build.directory}/Kieker.WebGUI-${project.version}/WEB-INF/lib"/> + todir="${project.build.directory}/Kieker.WebGUI-${project.version}/WEB-INF/lib" /> </tasks> </configuration> </execution> diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java index 69d6897ea82e83374325c970e71df6e14e66a2fd..def85fb2b9abb58be6d89563568f35c6156f9454 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java @@ -16,49 +16,30 @@ package kieker.webgui.beans.application; -import java.io.IOException; import java.io.Serializable; -import java.util.Properties; import java.util.ResourceBundle; import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage.Severity; -import javax.faces.bean.ApplicationScoped; -import javax.faces.bean.ManagedBean; import javax.faces.context.FacesContext; -import kieker.common.logging.Log; -import kieker.common.logging.LogFactory; +import org.springframework.beans.factory.annotation.Autowired; /** - * The class {@link GlobalPropertiesBean} is an application-scoped JSF bean, containing properties, constants and partially localized texts for the application. It - * reads them from properties files and ressource bundles, making sure that those constants can be modified without a necessary recompiling of the whole - * application.<br> + * The class {@link GlobalPropertiesBean} is a singleton scoped Spring bean, containing properties, constants and partially localized texts for the application. Some + * of the properties are injected via Spring, others are loaded directly from the resource bundle. This makes sure that those constants can be modified without a + * necessary recompiling of the whole application.<br> * It implements the {@link Serializable} interface to make sure that some session scoped beans can use this class.<br> - * It is application-scoped as only one instance of this class is necessary. + * It is singleton scoped as the properties are the same for every user and as only one instance of this class is necessary. * * @author Nils Christian Ehmke */ -@ManagedBean -@ApplicationScoped public final class GlobalPropertiesBean implements Serializable { private static final long serialVersionUID = 4253541090603377504L; - private static final Log LOG = LogFactory.getLog(GlobalPropertiesBean.class); - - private static final String PROPERTIES_FILE_GLOBAL = "global.properties"; private static final String RESOURCE_BUNDLE_NAME = "lang.Common"; - private static final String PROPERTY_FACES_CONTEXT_THEME_KEY = "kieker.webgui.config.lookAndFeel.facesContextKey"; - private static final String PROPERTY_THEME_COOKIE_NAME = "kieker.webgui.config.lookAndFeel.cookieName"; - private static final String PROPERTY_DEFAULT_THEME = "kieker.webgui.config.lookAndFeel.defaultTheme"; - private static final String PROPERTY_PROJECT_OVERVIEW_PAGE = "kieker.webgui.page.projectOverview"; - private static final String PROPERTY_ANALYSIS_EDITOR_GRID_SIZE_COOKIE_NAME = "kieker.webgui.config.analysisEditor.gridSize.cookieName"; - private static final String PROPERTY_ANALYSIS_EDITOR_GRID_COLOR_COOKIE_NAME = "kieker.webgui.config.analysisEditor.gridColor.cookieName"; - private static final String PROPERTY_ANALYSIS_EDITOR_DEFAULT_GRID_SIZE = "kieker.webgui.config.analysisEditor.defaultGridSize"; - private static final String PROPERTY_ANALYSIS_EDITOR_DEFAULT_GRID_COLOR = "kieker.webgui.config.analysisEditor.defaultGridColor"; - private static final String PROPERTY_MSG_PROJECT_LOADING_EXCEPTION = "msgProjectLoadingException"; private static final String PROPERTY_MSG_PROJECT_SAVED = "msgProjectSaved"; private static final String PROPERTY_MSG_PLUGIN_CREATION_EXCEPTION = "msgPluginCreationException"; @@ -71,39 +52,57 @@ public final class GlobalPropertiesBean implements Serializable { private static final String PROPERTY_MSG_LIBRARY_EXISTING_EXCEPTION = "msgLibraryExistingException"; private static final String PROPERTY_MSG_LIBRARY_UPLOADING_EXCEPTION = "msgLibraryUploadingException"; - private final Properties globalProperties = new Properties(); + @Autowired + private String themeCookieName; + @Autowired + private String projectOverviewPage; + @Autowired + private String facesContextThemeKey; + @Autowired + private String defaultTheme; + @Autowired + private String analysisEditorGridSizeCookieName; + @Autowired + private String analysisEditorGridColorCookieName; + @Autowired + private String analysisEditorDefaultGridSize; + @Autowired + private String analysisEditorDefaultGridColor; /** - * Default constructor. <b>Do not use this constructor. This bean is JSF managed.</b> + * Default constructor. <b>Do not use this constructor. This bean is Spring managed.</b> */ public GlobalPropertiesBean() { - try { - // Try to load the properties from the properties file(s) - this.globalProperties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(GlobalPropertiesBean.PROPERTIES_FILE_GLOBAL)); - } catch (final IOException ex) { - // If this exception occurs there isn't much we can do. This means the resource isn't available. We can't shutdown the whole application, so instead we - // log the error. - GlobalPropertiesBean.LOG.error("An error occured during the initialization of the properties.", ex); - } + // No code necessary } /** - * This method delivers the default theme stored in the properties file. + * Setter for the property {@link GlobalPropertiesBean#projectOverviewPage}. <b>Do not use this method. This property is Spring managed.</b> * - * @return The value of the property. + * @param projectOverviewPage + * The new value for the property. */ - public String getDefaultTheme() { - return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_DEFAULT_THEME); + public void setProjectOverviewPage(final String projectOverviewPage) { + this.projectOverviewPage = projectOverviewPage; } /** - * This method delivers the name of the theme cookie stored in the properties file. This cookie name should only be used to (re)store the current user's look and - * feel. + * This method delivers the redirecting-link to the project overview page. * * @return The value of the property. */ - public String getThemeCookieName() { - return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_THEME_COOKIE_NAME); + public String getProjectOverviewPage() { + return this.projectOverviewPage; + } + + /** + * Setter for the property {@link GlobalPropertiesBean#facesContextThemeKey}. <b>Do not use this method. This property is Spring managed.</b> + * + * @param facesContextThemeKey + * The new value for the property. + */ + public void setFacesContextThemeKey(final String facesContextThemeKey) { + this.facesContextThemeKey = facesContextThemeKey; } /** @@ -112,16 +111,36 @@ public final class GlobalPropertiesBean implements Serializable { * @return The value of the property. */ public String getFacesContextThemeKey() { - return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_FACES_CONTEXT_THEME_KEY); + return this.facesContextThemeKey; } /** - * This method delivers the redirecting-link to the project overview page. + * Setter for the property {@link GlobalPropertiesBean#defaultTheme}. <b>Do not use this method. This property is Spring managed.</b> + * + * @param defaultTheme + * The new value for the property. + */ + public void setDefaultTheme(final String defaultTheme) { + this.defaultTheme = defaultTheme; + } + + /** + * This method delivers the default theme stored in the properties file. * * @return The value of the property. */ - public String getProjectOverviewPage() { - return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_PROJECT_OVERVIEW_PAGE); + public String getDefaultTheme() { + return this.defaultTheme; + } + + /** + * Setter for the property {@link GlobalPropertiesBean#analysisEditorGridSizeCookieName}. <b>Do not use this method. This property is Spring managed.</b> + * + * @param projectOverviewPage + * The new value for the property. + */ + public void setAnalysisEditorGridSizeCookieName(final String analysisEditorGridSizeCookieName) { + this.analysisEditorGridSizeCookieName = analysisEditorGridSizeCookieName; } /** @@ -130,7 +149,17 @@ public final class GlobalPropertiesBean implements Serializable { * @return The value of the property. */ public String getAnalysisEditorGridSizeCookieName() { - return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_ANALYSIS_EDITOR_GRID_SIZE_COOKIE_NAME); + return this.analysisEditorGridSizeCookieName; + } + + /** + * Setter for the property {@link GlobalPropertiesBean#analysisEditorGridColorCookieName}. <b>Do not use this method. This property is Spring managed.</b> + * + * @param analysisEditorGridColorCookieName + * The new value for the property. + */ + public void setAnalysisEditorGridColorCookieName(final String analysisEditorGridColorCookieName) { + this.analysisEditorGridColorCookieName = analysisEditorGridColorCookieName; } /** @@ -139,7 +168,17 @@ public final class GlobalPropertiesBean implements Serializable { * @return The value of the property. */ public String getAnalysisEditorGridColorCookieName() { - return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_ANALYSIS_EDITOR_GRID_COLOR_COOKIE_NAME); + return this.analysisEditorGridColorCookieName; + } + + /** + * Setter for the property {@link GlobalPropertiesBean#analysisEditorDefaultGridSize}. <b>Do not use this method. This property is Spring managed.</b> + * + * @param analysisEditorDefaultGridSize + * The new value for the property. + */ + public void setAnalysisEditorDefaultGridSize(final String analysisEditorDefaultGridSize) { + this.analysisEditorDefaultGridSize = analysisEditorDefaultGridSize; } /** @@ -148,7 +187,17 @@ public final class GlobalPropertiesBean implements Serializable { * @return The value of the property. */ public String getAnalysisEditorDefaultGridSize() { - return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_ANALYSIS_EDITOR_DEFAULT_GRID_SIZE); + return this.analysisEditorDefaultGridSize; + } + + /** + * Setter for the property {@link GlobalPropertiesBean#analysisEditorDefaultGridColor}. <b>Do not use this method. This property is Spring managed.</b> + * + * @param analysisEditorDefaultGridColor + * The new value for the property. + */ + public void setAnalysisEditorDefaultGridColor(final String analysisEditorDefaultGridColor) { + this.analysisEditorDefaultGridColor = analysisEditorDefaultGridColor; } /** @@ -157,7 +206,27 @@ public final class GlobalPropertiesBean implements Serializable { * @return The value of the property. */ public String getAnalysisEditorDefaultGridColor() { - return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_ANALYSIS_EDITOR_DEFAULT_GRID_COLOR); + return this.analysisEditorDefaultGridColor; + } + + /** + * Setter for the property {@link GlobalPropertiesBean#themeCookieName}. <b>Do not use this method. This property is Spring managed.</b> + * + * @param themeCookieName + * The new value for the property. + */ + public void setThemeCookieName(final String themeCookieName) { + this.themeCookieName = themeCookieName; + } + + /** + * This method delivers the name of the theme cookie stored in the properties file. This cookie name should only be used to (re)store the current user's look and + * feel. + * + * @return The value of the property. + */ + public String getThemeCookieName() { + return this.themeCookieName; } /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java index 233d1cf27b9d34c8cf5fc0b1e44f41b19a2912cc..65ce5bdc23b639390cda2cfb0cda269508d4d1dc 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java @@ -22,10 +22,9 @@ import java.util.Collections; import java.util.Date; import java.util.List; -import javax.annotation.PostConstruct; import javax.faces.application.FacesMessage; -import javax.faces.bean.ApplicationScoped; -import javax.faces.bean.ManagedBean; + +import org.springframework.beans.factory.annotation.Autowired; import kieker.analysis.model.analysisMetaModel.MIProject; import kieker.common.logging.Log; @@ -38,38 +37,45 @@ import kieker.webgui.common.exception.ProjectLoadException; import kieker.webgui.common.exception.ProjectNotExistingException; /** - * The {@link ProjectsBean} is a JSF managed bean to manage a list with all application wide available projects. It provides methods to receive this list as well as - * methods to add, create, rename, open and copy projects. Furthermore the state of existing projects (like the timestamp or the state of the analysis) can be - * received via this bean. In order to realize a good abstraction, this bean should be used for any access to the projects. The necessary synchronization is achieved - * in the {@link ProjectManagerFacade}.<br> - * As this bean contains the whole list of the available projects, it is application scoped. There is no reason for multiple instances of this class. + * The {@link ProjectsBean} is a Spring managed bean to manage a list with all application wide available projects. It provides methods to receive this list as well + * as methods to add, create, rename, open and copy projects. Furthermore the state of existing projects (like the timestamp or the state of the analysis) can be + * received via this bean. In order to realize a good abstraction, this bean should be used for most accesses to the projects. The necessary synchronization is + * achieved in the {@link IProjectManagerFacade}.<br> + * As this bean contains the whole list of the available projects, it is session scoped. There is no reason for multiple instances of this class. * * @author Nils Christian Ehmke */ -@ManagedBean -@ApplicationScoped public final class ProjectsBean { private static final Log LOG = LogFactory.getLog(ProjectsBean.class); - private static final String DEFAULT_TIMESTAMP = "N/A"; private static final String DEFAULT_ANALYSIS_STATE = ""; private final List<String> projects = Collections.synchronizedList(new ArrayList<String>()); - private final IProjectManagerFacade projectManagerFacade = ProjectManagerFacade.getInstance(); + @Autowired + private IProjectManagerFacade projectManagerFacade; /** - * Default constructor. <b>Do not use this constructor. This bean is JSF managed.</b> + * Default constructor. <b>Do not use this constructor. This bean is Spring managed.</b> */ public ProjectsBean() { // No code necessary } /** - * This method does some initialization work after construction. <b>Do not call this method. The method is managed by the class loader.</b> + * The Setter for the property {@link ProjectsBean#projectManagerFacade}. <b>Do not use this method. This property is Spring managed.</b> + * + * @param projectManagerFacade + * The new value for the property. + */ + public void setProjectManagerFacade(final IProjectManagerFacade projectManagerFacade) { + this.projectManagerFacade = projectManagerFacade; + } + + /** + * This method does some initialization work after construction. <b>Do not call this method. The method is Spring managed.</b> */ - @PostConstruct protected void initialize() { // Load a list with all available projects on the FS this.projects.addAll(this.projectManagerFacade.listAllProjects()); @@ -86,7 +92,7 @@ public final class ProjectsBean { * @param project * The name for the new project which should be added to the application. */ - public void addProject(final String project) { + public void addProject(final String project, final CurrentProjectOverviewBean currentProjectOverviewBean) { try { // Try and use the FS-Manager to create the project atomically. this.projectManagerFacade.addProject(project); @@ -95,7 +101,7 @@ public final class ProjectsBean { // Inform the user GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_INFO, "Project created."); // Update the list of the "calling" bean - CurrentProjectOverviewBean.getCurrentInstance().updateLists(); + currentProjectOverviewBean.updateLists(); } catch (final IOException ex) { ProjectsBean.LOG.error("An error occured while creating the project.", ex); GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while creating the project."); @@ -117,7 +123,7 @@ public final class ProjectsBean { * @param destinationProject * The name of the new (copied) project. */ - public void copyProject(final String sourceProject, final String destinationProject) { + public void copyProject(final String sourceProject, final String destinationProject, final CurrentProjectOverviewBean currentProjectOverviewBean) { try { // Try and use the FS-Manager to copy the project atomically. this.projectManagerFacade.copyProject(sourceProject, destinationProject); @@ -126,7 +132,7 @@ public final class ProjectsBean { // Inform the user GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_INFO, "Project created."); // Update the list of the "calling" bean - CurrentProjectOverviewBean.getCurrentInstance().updateLists(); + currentProjectOverviewBean.updateLists(); } catch (final IOException ex) { ProjectsBean.LOG.error("An error occured while creating the project.", ex); GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while creating the project."); @@ -188,7 +194,7 @@ public final class ProjectsBean { * This method delivers all available projects as a list of string. The list itself is just a copy and can be modified as will. Keep in mind that this means also * that every call to this method will create a new copy. * - * @return All currently available projects as a copied and modificable list. + * @return All currently available projects as a copied and modifiable list. */ public List<String> getProjects() { synchronized (this.projects) { diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java index e88427d59da032062d08127445cb0461d09e5aa8..f260734306d6d933025be3056ad789134e075d0e 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java @@ -18,30 +18,20 @@ package kieker.webgui.beans.application; import java.util.Collections; import java.util.Map; -import java.util.TreeMap; - -import javax.annotation.PostConstruct; -import javax.faces.bean.ApplicationScoped; -import javax.faces.bean.ManagedBean; /** * The {@link ThemeSwitcherBean} is responsible for holding a list with all application wide available themes (look and feels). As this is a static list, it is not - * possible to import new themes during the runtime.<br> - * This class is an application scoped JSF managed bean, as the list with the available themes is a static list. + * possible to import new themes during the runtime. The initialization is done in the Spring configuration file.<br> + * This class is a singleton scoped Spring managed bean, as the list with the available themes is a static list. * * @author Nils Christian Ehmke */ -@ManagedBean -@ApplicationScoped public final class ThemeSwitcherBean { - /** - * A map containing all available themes. - */ - private final Map<String, String> themes = new TreeMap<String, String>(); // NOPMD (No concurrent access) + private Map<String, String> themes; /** - * Default constructor. <b>Do not use this constructor. This bean is JSF managed.</b> + * Default constructor. <b>Do not use this constructor. This bean is Spring managed.</b> */ public ThemeSwitcherBean() { // No code necessary @@ -57,41 +47,11 @@ public final class ThemeSwitcherBean { } /** - * This method does some initialization work after construction. <b>Do not call this method. The method is managed by the class loader.</b> If one wants to add - * new themes to the program, this is the right place. + * The setter for the property {@link ThemeSwitcherBean#themes}. <b>Do not use this method. This property is Spring managed.</b> + * + * @param themes */ - @PostConstruct - protected void initialize() { - this.themes.put("Aristo", "aristo"); - this.themes.put("Black-Tie", "black-tie"); - this.themes.put("Blitzer", "blitzer"); - this.themes.put("Bluesky", "bluesky"); - this.themes.put("Casablanca", "casablanca"); - this.themes.put("Cupertino", "cupertino"); - this.themes.put("Dark-Hive", "dark-hive"); - this.themes.put("Dot-Luv", "dot-luv"); - this.themes.put("Eggplant", "eggplant"); - this.themes.put("Excite-Bike", "excite-bike"); - this.themes.put("Flick", "flick"); - this.themes.put("Glass-X", "glass-x"); - this.themes.put("Hot-Sneaks", "hot-sneaks"); - this.themes.put("Humanity", "humanity"); - this.themes.put("Le-Frog", "le-frog"); - this.themes.put("Midnight", "midnight"); - this.themes.put("Mint-Choc", "mint-choc"); - this.themes.put("Overcast", "overcast"); - this.themes.put("Pepper-Grinder", "pepper-grinder"); - this.themes.put("Redmond", "redmond"); - this.themes.put("Rocket", "rocket"); - this.themes.put("Sam", "sam"); - this.themes.put("Smoothness", "smoothness"); - this.themes.put("South-Street", "south-street"); - this.themes.put("Start", "start"); - this.themes.put("Sunny", "sunny"); - this.themes.put("Swanky-Purse", "swanky-purse"); - this.themes.put("Trontastic", "trontastic"); - this.themes.put("UI-Darkness", "ui-darkness"); - this.themes.put("UI-Lightness", "ui-lightness"); - this.themes.put("Vader", "vader"); + public void setThemes(final Map<String, String> themes) { + this.themes = themes; } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/package-info.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/package-info.java index e4a3bf0b2aee7add2bf0bcc0199757232711cc14..07aa9a7350f75b910d9801c5a9173dba62aef592 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/package-info.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/package-info.java @@ -15,8 +15,9 @@ ***************************************************************************/ /** - * This package contains JSF managed beans with application scope. + * This package contains Spring managed beans with application (singleton) scope. * * @author Nils Christian Ehmke */ package kieker.webgui.beans.application; + diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java index bc613022f5d27b17c22fc77996867b79024d2494..caabc4aeb126b04ef40a67065377dd2fa4fa6662 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java @@ -16,9 +16,6 @@ package kieker.webgui.beans.request; -import javax.faces.bean.ManagedBean; -import javax.faces.bean.RequestScoped; - /** * This simple bean can be used to store a string during a request. Furthermore it provides some simple methods to handle strings within the application where a bean * is necessary. <br> @@ -26,14 +23,12 @@ import javax.faces.bean.RequestScoped; * * @author Nils Christian Ehmke */ -@ManagedBean -@RequestScoped public final class StringBean { private String string; /** - * Creates a new instance of this bean and initializes it with an empty string. <b>Do not use this constructor. This bean is JSF managed.</b> + * Creates a new instance of this bean and initializes it with an empty string. <b>Do not use this constructor. This bean is Spring managed.</b> */ public StringBean() { this.string = ""; diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/package-info.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/package-info.java index d9be0755858caac71ad4af1ec4e541c0358d7604..26cfe25c23162f1f1618067bf0951a560de31731 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/package-info.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/package-info.java @@ -15,8 +15,9 @@ ***************************************************************************/ /** - * This package contains JSF managed beans with request scope. + * This package contains Spring managed beans with request scope. * * @author Nils Christian Ehmke */ package kieker.webgui.beans.request; + diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentConfigurationBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentConfigurationBean.java index f2c849497c35136ae34fa2aa8d0a2ebca649d954..979096471017794b18fad2eb825797410f0a90d1 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentConfigurationBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentConfigurationBean.java @@ -19,36 +19,33 @@ package kieker.webgui.beans.session; import java.io.Serializable; import java.util.Map; -import javax.annotation.PostConstruct; -import javax.faces.bean.ManagedBean; -import javax.faces.bean.ManagedProperty; -import javax.faces.bean.SessionScoped; import javax.faces.context.FacesContext; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; + import kieker.webgui.beans.application.GlobalPropertiesBean; /** - * The class {@link CurrentConfigurationBean} is a session-scoped JSF bean, containing the properties and configurations of the current (session) user.<br> - * It is session-scoped as only one instance per user is necessary. This means also that is has to implement the {@link Serializable} interface. + * The class {@link CurrentConfigurationBean} is a session scoped Spring bean, containing the properties and configurations of the current (session) user.<br> + * It is session scoped as only one instance per user is necessary. This means also that is has to implement the {@link Serializable} interface. * * @author Nils Christian Ehmke */ -@ManagedBean -@SessionScoped public final class CurrentConfigurationBean implements Serializable { private static final long serialVersionUID = 4226402116177851270L; + private String lookAndFeel; private String gridColor; private int gridSize; - @ManagedProperty(value = "#{globalPropertiesBean}") + @Autowired private GlobalPropertiesBean globalPropertiesBean; /** - * Default constructor. <b>Do not use this constructor. This bean is JSF managed.</b> + * Default constructor. <b>Do not use this constructor. This bean is Spring managed.</b> */ public CurrentConfigurationBean() { // No code necessary @@ -56,27 +53,15 @@ public final class CurrentConfigurationBean implements Serializable { /** * This method initializes the bean. In fact it loads the default values before trying to load the values of the user from their cookies. <b>Do not call this - * method. The method is managed by the class loader.</b> + * method. The method is Spring managed.</b> */ - @PostConstruct protected void initialize() { this.loadDefaultValues(); this.loadValuesFromCookies(); } /** - * The getter for the property {@link CurrentConfigurationBean#globalPropertiesBean}. - * - * @return The current value for the property. - */ - public GlobalPropertiesBean getGlobalPropertiesBean() { - synchronized (this) { - return this.globalPropertiesBean; - } - } - - /** - * The setter for the property {@link CurrentConfigurationBean#globalPropertiesBean}. + * The setter for the property {@link CurrentConfigurationBean#globalPropertiesBean}. <b>Do not use this method. This property is Spring managed.</b> * * @param globalPropertiesBean * The new value for the property. diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java index b242dd68d94af7f790708d751829a1d4830f3519..956d1b23023dd848b8241f375c7f519ea8915468 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java @@ -18,35 +18,31 @@ package kieker.webgui.beans.session; import java.io.Serializable; -import javax.faces.bean.ManagedBean; -import javax.faces.bean.ManagedProperty; -import javax.faces.bean.SessionScoped; +import org.springframework.beans.factory.annotation.Autowired; import kieker.webgui.beans.application.GlobalPropertiesBean; /** * This bean contains information about the user of this session (like user name and authorization). It provides methods to perform a login into the application.<br> - * This class is a JSF managed bean with session scope. This means also that it is possible to login the same user multiple times and that is has to implement the + * This class is a Spring managed bean with session scope. This means also that it is possible to login the same user multiple times and that is has to implement the * {@link Serializable} interface. * * @author Nils Christian Ehmke */ -@ManagedBean -@SessionScoped public final class UserBean implements Serializable { private static final long serialVersionUID = 6422563876003638348L; private String userName; private String password; - @ManagedProperty(value = "#{globalPropertiesBean}") + @Autowired private GlobalPropertiesBean globalPropertiesBean; /** - * Default constructor. <b>Do not use this constructor. This bean is JSF managed.</b> + * Default constructor. <b>Do not use this constructor. This bean is Spring managed.</b> */ public UserBean() { - this.userName = "Guest"; + this.userName = "Kieker-Team"; } /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/package-info.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/package-info.java index 3330925542f024a98c34ac338de884aad5502e75..ecc09dcefc8c9ef382cc86ca664794b4293531be 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/package-info.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/package-info.java @@ -15,8 +15,9 @@ ***************************************************************************/ /** - * This package contains JSF managed beans with session scope. + * This package contains Spring managed beans with session scope. * * @author Nils Christian Ehmke */ package kieker.webgui.beans.session; + diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java index 948bdda9d1d145bf11550221806b8bd415fa4bda..27a5fe2b84bd0bbfd5486a6f96e4eb42fd166f92 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java @@ -26,12 +26,11 @@ import java.util.Collections; import java.util.List; import javax.faces.application.FacesMessage; -import javax.faces.bean.ManagedBean; -import javax.faces.bean.ManagedProperty; -import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; import javax.faces.event.ValueChangeEvent; +import org.springframework.beans.factory.annotation.Autowired; + import kieker.analysis.model.analysisMetaModel.MIAnalysisMetaModelFactory; import kieker.analysis.model.analysisMetaModel.MIDependency; import kieker.analysis.model.analysisMetaModel.MIDisplay; @@ -57,7 +56,6 @@ import kieker.webgui.beans.application.ProjectsBean; import kieker.webgui.beans.session.CurrentConfigurationBean; import kieker.webgui.common.ClassAndMethodContainer; import kieker.webgui.common.IProjectManagerFacade; -import kieker.webgui.common.ProjectManagerFacade; import kieker.webgui.common.exception.LibraryAlreadyExistingException; import kieker.webgui.common.exception.LibraryLoadException; import kieker.webgui.common.exception.NewerProjectException; @@ -75,7 +73,7 @@ import org.eclipse.emf.ecore.EObject; * The {@link CurrentAnalysisEditorBean} contains the necessary data behind an instance of the analysis editor. It provides various methods to manipulate the current * project, as the analysis editor is the most important part of the whole application. The connection to the graph within the editor is done via another bean (the * {@link CurrentAnalysisEditorGraphBean}).<br> - * The class is a JSF managed bean with view scope to make sure that one user (even in one session) can open multiple projects at a time without causing any + * The class is a Spring managed bean with view scope to make sure that one user (even in one session) can open multiple projects at a time without causing any * problems.<br> * If editing this class as a programmer keep in mind that the class makes excessive use of java reflection (via {@link ClassAndMethodContainer}) to use the correct * classes within every project. It doesn't really use the classes loaded by the WebGUI-ClassLoader. This results also in some methods which returns elements from @@ -83,8 +81,6 @@ import org.eclipse.emf.ecore.EObject; * * @author Nils Christian Ehmke */ -@ManagedBean -@ViewScoped public final class CurrentAnalysisEditorBean { /** * This field contains the log-object for the whole class, which will be used to log all important errors and exceptions which occur. @@ -138,27 +134,32 @@ public final class CurrentAnalysisEditorBean { * This field contains the currently selected component (this can either be a plugin ({@link MIPlugin}) or a repository ({@link MIRepository})). */ private EObject selectedComponent; - private final IProjectManagerFacade projectManagerFacade = ProjectManagerFacade.getInstance(); + @Autowired + private IProjectManagerFacade projectManagerFacade; - @ManagedProperty(value = "#{projectsBean}") + @Autowired private ProjectsBean projectsBean; - @ManagedProperty(value = "#{currentAnalysisEditorGraphBean}") + @Autowired private CurrentAnalysisEditorGraphBean currentAnalysisEditorGraphBean; - @ManagedProperty(value = "#{currentConfigurationBean}") + @Autowired private CurrentConfigurationBean currentConfigurationBean; - @ManagedProperty(value = "#{globalPropertiesBean}") + @Autowired private GlobalPropertiesBean globalPropertiesBean; /** - * Creates a new instance of this class. <b>Do not call this constructor manually. It will only be accessed by JSF.</b> + * Creates a new instance of this class. <b>Do not call this constructor manually. It will only be accessed by Spring.</b> */ public CurrentAnalysisEditorBean() { // No code necessary } + public void setProjectManagerFacade(final IProjectManagerFacade projectManagerFacade) { + this.projectManagerFacade = projectManagerFacade; + } + /** * Getter for the attribute {@link CurrentAnalysisEditorBean#currentAnalysisEditorGraphBean}. * @@ -223,7 +224,7 @@ public final class CurrentAnalysisEditorBean { /** * This method initializes the bean by using the current project name to load the project. <b>Do not call this method manually. It will only be accessed by - * JSF.</b> + * Spring.</b> */ public void initialize() { synchronized (this) { @@ -1180,15 +1181,6 @@ public final class CurrentAnalysisEditorBean { } } - /** - * The getter for the property {@link CurrentAnalysisEditorBean#globalPropertiesBean}. - * - * @return The current value of the property. - */ - public GlobalPropertiesBean getGlobalPropertiesBean() { - return this.globalPropertiesBean; - } - /** * The setter for the property {@link CurrentAnalysisEditorBean#globalPropertiesBean}. * diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java index 9907337d720044c8390b75d4ca9922073bc3b99f..261574b3ebcde21fa68acc78fd6e02fdc4f0d521 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java @@ -18,8 +18,6 @@ package kieker.webgui.beans.view; import java.util.Map; -import javax.faces.bean.ManagedBean; -import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; import kieker.analysis.model.analysisMetaModel.MIFilter; @@ -42,13 +40,11 @@ import org.eclipse.emf.ecore.EObject; /** * The {@link CurrentAnalysisEditorGraphBean} contains the necessary data behind an graph of the analysis editor. It provides various methods to manipulate the * current graph.<br> - * The class is a JSF managed bean with view scope to make sure that one user (even in one session) can open multiple projects at a time without causing any + * The class is a Spring managed bean with view scope to make sure that one user (even in one session) can open multiple projects at a time without causing any * problems. * * @author Nils Christian Ehmke */ -@ManagedBean -@ViewScoped public final class CurrentAnalysisEditorGraphBean { /** * This is the log for errors, exceptions etc. @@ -158,7 +154,7 @@ public final class CurrentAnalysisEditorGraphBean { private CurrentAnalysisEditorBean currentAnalysisEditorBean; /** - * Creates a new instance of this class. <b>Do not call this constructor manually. It will only be accessed by JSF.</b> + * Creates a new instance of this class. <b>Do not call this constructor manually. It will only be accessed by Spring.</b> */ public CurrentAnalysisEditorGraphBean() { // No code necessary diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java index 6711a6b3fbf8fc4ca20da9f0e2b5d229391c9451..63f68c4ba1e5130f488a5ce8274e9a79614c8d96 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java @@ -19,11 +19,10 @@ package kieker.webgui.beans.view; import java.io.IOException; import javax.faces.application.FacesMessage; -import javax.faces.bean.ManagedBean; -import javax.faces.bean.ManagedProperty; -import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; +import org.springframework.beans.factory.annotation.Autowired; + import kieker.analysis.model.analysisMetaModel.MIProject; import kieker.analysis.model.analysisMetaModel.MIView; import kieker.common.logging.Log; @@ -32,35 +31,32 @@ import kieker.webgui.beans.application.GlobalPropertiesBean; import kieker.webgui.beans.application.ProjectsBean; import kieker.webgui.common.ClassAndMethodContainer; import kieker.webgui.common.IProjectManagerFacade; -import kieker.webgui.common.ProjectManagerFacade; import kieker.webgui.common.exception.DisplayNotFoundException; import kieker.webgui.common.exception.ProjectNotExistingException; /** * The {@link CurrentCockpitBean} contains the necessary data behind an instance of the cockpit. It provides methods to read the state of the currently selected * project.<br> - * The class is a JSF managed bean with view scope to make sure that one user (even in one session) can open multiple projects at a time without causing any + * The class is a Spring managed bean with view scope to make sure that one user (even in one session) can open multiple projects at a time without causing any * problems. * * @author Nils Christian Ehmke */ -@ManagedBean -@ViewScoped public final class CurrentCockpitBean { private static final Log LOG = LogFactory.getLog(CurrentCockpitBean.class); - - private final IProjectManagerFacade projectManagerFacade = ProjectManagerFacade.getInstance(); + @Autowired + private IProjectManagerFacade projectManagerFacade; private String projectName; private MIProject project; private MIView activeView; private ClassAndMethodContainer classAndMethodContainer; - @ManagedProperty(value = "#{projectsBean}") + @Autowired private ProjectsBean projectsBean; /** - * Creates a new instance of this class. <b>Do not call this constructor manually. It will only be accessed by JSF.</b> + * Creates a new instance of this class. <b>Do not call this constructor manually. It will only be accessed by Spring.</b> */ public CurrentCockpitBean() { // No code necessary @@ -77,6 +73,10 @@ public final class CurrentCockpitBean { } } + public void setProjectManagerFacade(final IProjectManagerFacade projectManagerFacade) { + this.projectManagerFacade = projectManagerFacade; + } + /** * The getter for the {@link #projectsBean}-property. * @@ -115,7 +115,7 @@ public final class CurrentCockpitBean { /** * This method initializes the bean by using the current project name to load the project. <b>Do not call this method manually. It will only be accessed by - * JSF.</b> + * Spring.</b> */ public void initalize() { // TODO Replace the log messages with the localizes messages diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java index 10028d2804638e708fe0b1df8b80942fdf442eef..9b0faed787fde73f61245ead42a7ebf2bb6e7ad9 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java @@ -25,14 +25,13 @@ import java.util.UUID; import javax.faces.application.Application; import javax.faces.application.FacesMessage; -import javax.faces.bean.ManagedBean; -import javax.faces.bean.ManagedProperty; -import javax.faces.bean.ViewScoped; import javax.faces.component.UIComponent; import javax.faces.component.UIInput; import javax.faces.component.html.HtmlOutputText; import javax.faces.context.FacesContext; +import org.springframework.beans.factory.annotation.Autowired; + import kieker.analysis.display.annotation.Display; import kieker.analysis.model.analysisMetaModel.MIAnalysisMetaModelFactory; import kieker.analysis.model.analysisMetaModel.MIDisplay; @@ -47,7 +46,6 @@ import kieker.webgui.beans.application.GlobalPropertiesBean; import kieker.webgui.beans.application.ProjectsBean; import kieker.webgui.common.ClassAndMethodContainer; import kieker.webgui.common.IProjectManagerFacade; -import kieker.webgui.common.ProjectManagerFacade; import kieker.webgui.common.exception.NewerProjectException; import kieker.webgui.common.exception.ProjectLoadException; import kieker.webgui.common.exception.ProjectNotExistingException; @@ -63,20 +61,19 @@ import org.primefaces.model.DefaultDashboardModel; /** * The {@link CurrentCockpitEditorBean} contains the necessary data behind an instance of the cockpit editor. - * The class is a JSF managed bean with view scope to make sure that one user (even in one session) can open multiple projects at a time without causing any + * The class is a Spring managed bean with view scope to make sure that one user (even in one session) can open multiple projects at a time without causing any * problems. * * @author Nils Christian Ehmke */ -@ManagedBean -@ViewScoped public final class CurrentCockpitEditorBean { private static final int NUMBER_COLUMNS = 2; private static final Log LOG = LogFactory.getLog(CurrentCockpitEditorBean.class); private final MIAnalysisMetaModelFactory factory = new MAnalysisMetaModelFactory(); - private final IProjectManagerFacade projectManagerFacade = ProjectManagerFacade.getInstance(); + @Autowired + private IProjectManagerFacade projectManagerFacade; private ClassAndMethodContainer classAndMethodContainer; private long timeStamp; @@ -87,19 +84,23 @@ public final class CurrentCockpitEditorBean { private Dashboard dashboard; private DashboardModel dashboardModel; - @ManagedProperty(value = "#{projectsBean}") + @Autowired private ProjectsBean projectsBean; - @ManagedProperty(value = "#{globalPropertiesBean}") + @Autowired private GlobalPropertiesBean globalPropertiesBean; /** - * Creates a new instance of this class. <b>Do not call this constructor manually. It will only be accessed by JSF.</b> + * Creates a new instance of this class. <b>Do not call this constructor manually. It will only be accessed by Spring.</b> */ public CurrentCockpitEditorBean() { this.createDashboard(); } + public void setProjectManagerFacade(final IProjectManagerFacade projectManagerFacade) { + this.projectManagerFacade = projectManagerFacade; + } + private void createDashboard() { final FacesContext fc = FacesContext.getCurrentInstance(); final Application application = fc.getApplication(); @@ -179,7 +180,7 @@ public final class CurrentCockpitEditorBean { /** * This method initializes the bean by using the current project name to load the project. <b>Do not call this method manually. It will only be accessed by - * JSF.</b> + * Spring.</b> */ public void initalize() { synchronized (this) { diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java index ce755eb5c66c48807fa7f6c9b061aa7c011e5cce..85610df8b52efb0220b13fb80e25e31b4cc52217 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java @@ -25,42 +25,38 @@ import java.util.Collection; import java.util.Date; import java.util.List; -import javax.faces.bean.ManagedBean; -import javax.faces.bean.ManagedProperty; -import javax.faces.bean.ViewScoped; +import org.springframework.beans.factory.annotation.Autowired; import kieker.analysis.AnalysisController; import kieker.common.logging.Log; import kieker.common.logging.LogFactory; import kieker.webgui.beans.application.ProjectsBean; import kieker.webgui.common.IProjectManagerFacade; -import kieker.webgui.common.ProjectManagerFacade; import kieker.webgui.common.exception.AnalysisInitializationException; import kieker.webgui.common.exception.AnalysisStateException; import kieker.webgui.common.exception.ProjectNotExistingException; /** * /** - * The {@link CurrentControllerBean} contains the necessary data behind an instance of the analysis controller. The class is a JSF managed bean with view scope to + * The {@link CurrentControllerBean} contains the necessary data behind an instance of the analysis controller. The class is a Spring managed bean with view scope to * make sure that one user (even in one session) can open multiple projects at a time without causing any problems. * * @author Nils Christian Ehmke */ -@ManagedBean -@ViewScoped public final class CurrentControllerBean { private static final Log LOG = LogFactory.getLog(CurrentControllerBean.class); - private final IProjectManagerFacade projectManagerFacade = ProjectManagerFacade.getInstance(); + @Autowired + private IProjectManagerFacade projectManagerFacade; private final List<String> logEntries = new ArrayList<String>(); private String projectName; - @ManagedProperty(value = "#{projectsBean}") + @Autowired private ProjectsBean projectsBean; /** - * Creates a new instance of this class. <b>Do not use this constructor. This bean is JSF managed.</b> + * Creates a new instance of this class. <b>Do not use this constructor. This bean is Spring managed.</b> */ public CurrentControllerBean() { // No code necessary @@ -75,6 +71,10 @@ public final class CurrentControllerBean { return this.projectsBean; } + public void setProjectManagerFacade(final IProjectManagerFacade projectManagerFacade) { + this.projectManagerFacade = projectManagerFacade; + } + /** * The setter for the {@link #projectsBean}-property. * diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java index 80451190765f82744385e7575a9d35151a0093b3..1b31c8f8acf8269007271802ab8a537e749f5b2a 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java @@ -19,27 +19,22 @@ package kieker.webgui.beans.view; import java.util.ArrayList; import java.util.List; -import javax.annotation.PostConstruct; -import javax.el.ELResolver; -import javax.faces.bean.ManagedBean; -import javax.faces.bean.ViewScoped; -import javax.faces.context.FacesContext; +import org.springframework.beans.factory.annotation.Autowired; import kieker.webgui.beans.application.ProjectsBean; import org.primefaces.event.SelectEvent; /** - * /** * The {@link CurrentProjectOverviewBean} contains the necessary data behind an instance of the project overview.<br> - * The class is a JSF managed bean with view scope. + * The class is a Spring managed bean with view scope. * * @author Nils Christian Ehmke */ -@ManagedBean -@ViewScoped public final class CurrentProjectOverviewBean { + @Autowired + private ProjectsBean projectsBean; /** * This list contains all available projects by name. */ @@ -50,7 +45,7 @@ public final class CurrentProjectOverviewBean { private String projectName; /** - * Default constructor. <b>Do not call this constructor manually. It will only be accessed by JSF.</b> + * Default constructor. <b>Do not call this constructor manually. It will only be accessed by Spring.</b> */ public CurrentProjectOverviewBean() { // No code necessary @@ -85,10 +80,13 @@ public final class CurrentProjectOverviewBean { this.setProjectName((String) event.getObject()); } + public void setProjectsBean(final ProjectsBean projectsBean) { + this.projectsBean = projectsBean; + } + /** * This method should only be called automatically by the JVM to update the projects list. */ - @PostConstruct protected void initialialize() { this.updateLists(); } @@ -97,25 +95,7 @@ public final class CurrentProjectOverviewBean { * Updates the list containing the available projects name. */ public void updateLists() { - // TODO This part should be replaced by a ManagedProperty annotation - final ELResolver el = FacesContext.getCurrentInstance().getApplication().getELResolver(); - final ProjectsBean bean = (ProjectsBean) el.getValue(FacesContext.getCurrentInstance().getELContext(), null, "projectsBean"); - - this.projects = bean.getProjects(); - } - - /** - * This method delivers the current instance of this bean, using the current faces context and the necessary el resolver. - * - * @return The current instance of {@link CurrentProjectOverviewBean}. - */ - public static CurrentProjectOverviewBean getCurrentInstance() { - // Get both the context and the resolver - final FacesContext facesContext = FacesContext.getCurrentInstance(); - final ELResolver el = facesContext.getApplication().getELResolver(); - - // Get the current bean instance by name - return (CurrentProjectOverviewBean) el.getValue(facesContext.getELContext(), null, "currentProjectOverviewBean"); + this.projects = this.projectsBean.getProjects(); } /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/package-info.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/package-info.java index 4d24473fd303caca3112dedf2c35aaafe1b5a4c7..1294ccfaea387c1115a5e4fbc6d85776d49071a1 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/package-info.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/package-info.java @@ -15,8 +15,9 @@ ***************************************************************************/ /** - * This package contains JSF managed beans with view scope. + * This package contains Spring managed beans with view scope. * * @author Nils Christian Ehmke */ package kieker.webgui.beans.view; + diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/ProjectManagerFacade.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/ProjectManagerFacade.java index 45836656cf5bea3df20f248f7f7fad5348c63b84..40653c130f0208fe34b446f708c7e04e612fee65 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/ProjectManagerFacade.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/ProjectManagerFacade.java @@ -22,6 +22,8 @@ import java.util.Collection; import java.util.List; import java.util.concurrent.ConcurrentHashMap; +import org.springframework.beans.factory.annotation.Autowired; + import kieker.analysis.AnalysisController.STATE; import kieker.analysis.model.analysisMetaModel.MIDependency; import kieker.analysis.model.analysisMetaModel.MIProject; @@ -48,24 +50,47 @@ import org.primefaces.model.UploadedFile; */ public final class ProjectManagerFacade implements IProjectManagerFacade { - private static final ProjectManagerFacade INSTANCE = new ProjectManagerFacade(); private final ConcurrentHashMap<String, Object> fileSystemLocks = new ConcurrentHashMap<String, Object>(); private final ConcurrentHashMap<String, Object> analysesLocks = new ConcurrentHashMap<String, Object>(); + @Autowired + private ACManager acManager; + @Autowired + private FSManager fsManager; + @Autowired + private PluginFinder pluginFinder; /** - * This is the private constructor for this class, as this class is a singleton. + * Default constructor. <b>Do not use this constructor. This bean is Spring managed.</b> */ - private ProjectManagerFacade() { + public ProjectManagerFacade() { // No code necessary. } /** - * This method delivers the one and only singleton instance of this class. + * The setter for the property {@link ProjectManagerFacade#acManager}. <b>Do not use this method. This property is Spring managed.</b> + * + * @param acManager + */ + public void setAcManager(final ACManager acManager) { + this.acManager = acManager; + } + + /** + * The setter for the property {@link ProjectManagerFacade#fsManager}. <b>Do not use this method. This property is Spring managed.</b> + * + * @param fsManager + */ + public void setFsManager(final FSManager fsManager) { + this.fsManager = fsManager; + } + + /** + * The setter for the property {@link ProjectManagerFacade#pluginFinder}. <b>Do not use this method. This property is Spring managed.</b> * - * @return The singleton instance. + * @param pluginFinder */ - public static ProjectManagerFacade getInstance() { - return ProjectManagerFacade.INSTANCE; + public void setPluginFinder(final PluginFinder pluginFinder) { + this.pluginFinder = pluginFinder; } @Override @@ -73,7 +98,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { final Object projectLock = this.getLock(projectName, this.fileSystemLocks); synchronized (projectLock) { - FSManager.getInstance().addProject(projectName); + this.fsManager.addProject(projectName); } } @@ -99,7 +124,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { synchronized (lockFst) { synchronized (lockSnd) { - FSManager.getInstance().copyProject(originalProjectName, newProjectName); + this.fsManager.copyProject(originalProjectName, newProjectName); } } } @@ -109,7 +134,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { final Object projectLock = this.getLock(projectName, this.fileSystemLocks); synchronized (projectLock) { - return FSManager.getInstance().openProject(projectName); + return this.fsManager.openProject(projectName); } } @@ -118,7 +143,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { final Object projectLock = this.getLock(projectName, this.fileSystemLocks); synchronized (projectLock) { - return FSManager.getInstance().openProject(projectName, classAndMethodContainer); + return this.fsManager.openProject(projectName, classAndMethodContainer); } } @@ -128,7 +153,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { final Object projectLock = this.getLock(projectName, this.fileSystemLocks); synchronized (projectLock) { - FSManager.getInstance().saveProject(projectName, project, timeStamp, overwriteNewerProject); + this.fsManager.saveProject(projectName, project, timeStamp, overwriteNewerProject); } } @@ -137,7 +162,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { final Object projectLock = this.getLock(projectName, this.fileSystemLocks); synchronized (projectLock) { - return FSManager.getInstance().getCurrTimeStamp(projectName); + return this.fsManager.getCurrTimeStamp(projectName); } } @@ -146,7 +171,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { final Object projectLock = this.getLock(projectName, this.fileSystemLocks); synchronized (projectLock) { - FSManager.getInstance().uploadLibrary(file, projectName); + this.fsManager.uploadLibrary(file, projectName); } } @@ -155,7 +180,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { final Object projectLock = this.getLock(projectName, this.fileSystemLocks); synchronized (projectLock) { - return FSManager.getInstance().getClassLoader(projectName); // NOPMD (ClassLoader) + return this.fsManager.getClassLoader(projectName); // NOPMD (ClassLoader) } } @@ -166,8 +191,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { synchronized (projectLock) { try { - return PluginFinder.getInstance() - .getAllRepositoriesWithinJar(FSManager.getInstance().getURL(lib, projectName), classLoader, classAndMethodContainer); + return this.pluginFinder.getAllRepositoriesWithinJar(this.fsManager.getURL(lib, projectName), classLoader, classAndMethodContainer); } catch (final MalformedURLException ex) { throw new LibraryLoadException("An error occured while loading the library.", ex); } @@ -181,7 +205,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { synchronized (projectLock) { try { - return PluginFinder.getInstance().getAllPluginsWithinJar(FSManager.getInstance().getURL(lib, projectName), classLoader, classAndMethodContainer); + return this.pluginFinder.getAllPluginsWithinJar(this.fsManager.getURL(lib, projectName), classLoader, classAndMethodContainer); } catch (final MalformedURLException ex) { throw new LibraryLoadException("An error occured while loading the library.", ex); } @@ -192,7 +216,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { public List<Class<AbstractRepository>> getAllRepositoriesWithinKiekerLib(final ClassLoader classLoader, final ClassAndMethodContainer classAndMethodContainer) throws LibraryLoadException { try { - return PluginFinder.getInstance().getAllRepositoriesWithinJar(FSManager.getInstance().getKiekerURL(), classLoader, classAndMethodContainer); + return this.pluginFinder.getAllRepositoriesWithinJar(this.fsManager.getKiekerURL(), classLoader, classAndMethodContainer); } catch (final NullPointerException ex) { throw new LibraryLoadException("An error occured while loading the library.", ex); @@ -203,7 +227,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { public List<Class<AbstractPlugin>> getAllPluginsWithinKiekerLib(final ClassLoader classLoader, final ClassAndMethodContainer classAndMethodContainer) throws LibraryLoadException { try { - return PluginFinder.getInstance().getAllPluginsWithinJar(FSManager.getInstance().getKiekerURL(), classLoader, classAndMethodContainer); + return this.pluginFinder.getAllPluginsWithinJar(this.fsManager.getKiekerURL(), classLoader, classAndMethodContainer); } catch (final NullPointerException ex) { throw new LibraryLoadException("An error occured while loading the library.", ex); @@ -215,13 +239,13 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { final Object projectLock = this.getLock(projectName, this.fileSystemLocks); synchronized (projectLock) { - return FSManager.getInstance().listAllLibraries(projectName); + return this.fsManager.listAllLibraries(projectName); } } @Override public Collection<String> listAllProjects() { - return FSManager.getInstance().listAllProjects(); + return this.fsManager.listAllProjects(); } @Override @@ -233,7 +257,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { synchronized (projectLock) { synchronized (analysisLock) { - ACManager.getInstance().initializeAnalysis(projectName, classLoader); + this.acManager.initializeAnalysis(projectName, classLoader); } } } @@ -243,7 +267,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { final Object analysisLock = this.getLock(projectName, this.analysesLocks); synchronized (analysisLock) { - ACManager.getInstance().cleanAnalysis(projectName); + this.acManager.cleanAnalysis(projectName); } } @@ -252,7 +276,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { final Object analysisLock = this.getLock(projectName, this.analysesLocks); synchronized (analysisLock) { - ACManager.getInstance().startAnalysis(projectName); + this.acManager.startAnalysis(projectName); } } @@ -261,7 +285,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { final Object analysisLock = this.getLock(projectName, this.analysesLocks); synchronized (analysisLock) { - ACManager.getInstance().stopAnalysis(projectName); + this.acManager.stopAnalysis(projectName); } } @@ -271,7 +295,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { final Object analysisLock = this.getLock(projectName, this.analysesLocks); synchronized (analysisLock) { - return ACManager.getInstance().getDisplay(projectName, viewName, displayName); + return this.acManager.getDisplay(projectName, viewName, displayName); } } @@ -280,7 +304,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { final Object analysisLock = this.getLock(projectName, this.analysesLocks); synchronized (analysisLock) { - return ACManager.getInstance().getCurrentState(projectName); + return this.acManager.getCurrentState(projectName); } } @@ -314,7 +338,7 @@ public final class ProjectManagerFacade implements IProjectManagerFacade { final Object analysisLock = this.getLock(projectName, this.analysesLocks); synchronized (analysisLock) { - return ACManager.getInstance().getLogEntries(projectName); + return this.acManager.getLogEntries(projectName); } } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java index 1605ec1a9d21747edd3e79b429e9f9e7eb82bcd2..6d03d91604565f28818a7c880cf38a53f2f2277d 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java @@ -18,6 +18,8 @@ package kieker.webgui.common.util; import java.util.concurrent.ConcurrentHashMap; +import org.springframework.beans.factory.annotation.Autowired; + import kieker.analysis.AnalysisController.STATE; import kieker.webgui.common.exception.AnalysisInitializationException; import kieker.webgui.common.exception.AnalysisStateException; @@ -31,23 +33,25 @@ import kieker.webgui.common.exception.ProjectNotExistingException; * @author Nils Christian Ehmke */ public final class ACManager { - /** - * This is the singleton instance of this class. - */ - private static final ACManager INSTANCE = new ACManager(); /** * This list contains the current analysis controllers and their corresponding threads. Not every project does have a controller, but every project can have * maximal one. */ private final ConcurrentHashMap<String, Analysis> analyses = new ConcurrentHashMap<String, Analysis>(); + @Autowired + private FSManager fsManager; /** - * Creates a new instance of this class. + * Default constructor. <b>Do not use this constructor. This bean is Spring managed.</b> */ - private ACManager() { + public ACManager() { // No code necessary. } + public void setFsManager(final FSManager fsManager) { + this.fsManager = fsManager; + } + /** * This method initializes the analysis for the given project. * @@ -69,7 +73,7 @@ public final class ACManager { throw new AnalysisStateException("The analysis has not been cleaned yet."); } - final Analysis analysis = new Analysis(classLoader, FSManager.getInstance().getProjectFile(projectName)); + final Analysis analysis = new Analysis(classLoader, this.fsManager.getProjectFile(projectName)); this.analyses.put(projectName, analysis); } @@ -228,13 +232,4 @@ public final class ACManager { throw new ProjectNotExistingException("Unknown state."); } - /** - * Delivers the singleton instance of this class. - * - * @return The only instance of {@link FSManager}. - */ - public static ACManager getInstance() { - return ACManager.INSTANCE; - } - } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/FSManager.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/FSManager.java index 45b4f93ae17badc5e1014b8fdb49ac11b8e26dc0..d5716a93c928c82251a11ec714552e74104e9442 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/FSManager.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/FSManager.java @@ -57,25 +57,11 @@ import org.primefaces.model.UploadedFile; * @author Nils Christian Ehmke */ public final class FSManager { - /** - * This is the log object used to log messages, warnings etc. - */ + private static final Log LOG = LogFactory.getLog(FSManager.class); - /** - * This is the extension of the KAX-files. - */ private static final String KAX_EXTENSION = "kax"; - /** - * This is the extension of the library-files. - */ private static final String LIB_EXTENSION = "jar"; - /** - * This is the name of the directory for the libraries. - */ private static final String LIB_DIRECTORY = "lib"; - /** - * This is the name of the root-directory. - */ private static final String ROOT_DIRECTORY = "data"; /** * The library for kieker which is contained in the war-file as a resource. @@ -85,27 +71,21 @@ public final class FSManager { * This is the buffer (in bytes) used to copy and upload files. */ private static final int BUF_SIZE_BYTES = 1024 * 1024; - /** - * This is the singleton instance of this class. - */ - private static final FSManager INSTANCE = new FSManager(); - /** - * This is the factory we will use to create the elements for the projects. - */ + private final MIAnalysisMetaModelFactory factory = new MAnalysisMetaModelFactory(); /** - * Creates a new instance of this class. + * Default constructor. <b>Do not use this constructor. This bean is Spring managed.</b> */ - private FSManager() { - this.initialize(); + public FSManager() { + // no code necessary } /** * This method initializes the class. Normally this method should be called via the @PostConstruction annotation, but for unknown reason it does only work for * beans. */ - private void initialize() { + protected void initialize() { // Check for our root-directory and create it if necessary final File rootDir = new File(FSManager.ROOT_DIRECTORY); if (!rootDir.exists()) { @@ -116,15 +96,6 @@ public final class FSManager { } } - /** - * Delivers the singleton instance of this class. - * - * @return The only instance of {@link FSManager}. - */ - public static FSManager getInstance() { - return FSManager.INSTANCE; - } - /** * This method adds a new project to the application. It creates an empty, but nevertheless valid kax-file to the file system. If the method fails due to an * {@link IOException}, it will make sure that the project-directories will be removed as if the method would never have been called. diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/PluginFinder.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/PluginFinder.java index 11f677b9a0fea611472ad7b3d62f222ba8130a50..8e414cb19c262ad82e9706a1d60eb4ea92777a13 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/PluginFinder.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/PluginFinder.java @@ -33,12 +33,10 @@ import kieker.webgui.common.ClassAndMethodContainer; */ public final class PluginFinder { - private static final PluginFinder INSTANCE = new PluginFinder(); - /** - * The default constructor. + * Default constructor. <b>Do not use this constructor. This bean is Spring managed.</b> */ - private PluginFinder() { + public PluginFinder() { // No code necessary } @@ -151,12 +149,4 @@ public final class PluginFinder { return null; } - /** - * Returns the one and only instance of this class. - * - * @return The only class instance. - */ - public static PluginFinder getInstance() { - return PluginFinder.INSTANCE; - } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ViewScope.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ViewScope.java new file mode 100644 index 0000000000000000000000000000000000000000..d16f3ce1bb0ffd1a5fd282c323b1f36ad0177d36 --- /dev/null +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ViewScope.java @@ -0,0 +1,67 @@ +/*************************************************************************** + * Copyright 2012 Kieker Project (http://kieker-monitoring.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ***************************************************************************/ + +package kieker.webgui.common.util; + +import java.util.Map; + +import javax.faces.context.FacesContext; + +import org.springframework.beans.factory.ObjectFactory; +import org.springframework.beans.factory.config.Scope; + +/** + * The class {@link ViewScope} is necessary as Spring doesn't provide a view scope like JSF. Therefore the view scope has to be implemented by us. + * + * @author Nils Christian Ehmke + */ +public class ViewScope implements Scope { + + @SuppressWarnings("rawtypes") + @Override + public Object get(final String name, final ObjectFactory objectFactory) { + final Map<String, Object> viewMap = FacesContext.getCurrentInstance().getViewRoot().getViewMap(); + + if (viewMap.containsKey(name)) { + return viewMap.get(name); + } else { + final Object object = objectFactory.getObject(); + viewMap.put(name, object); + + return object; + } + } + + @Override + public Object remove(final String name) { + return FacesContext.getCurrentInstance().getViewRoot().getViewMap().remove(name); + } + + @Override + public String getConversationId() { + return null; + } + + @Override + public void registerDestructionCallback(final String name, final Runnable callback) { // NOPMD (Threads are not used) + // Not supported + } + + @Override + public Object resolveContextualObject(final String key) { + return null; + } +} diff --git a/Kieker.WebGUI/src/main/resources/lang/LoginPage_de.properties b/Kieker.WebGUI/src/main/resources/lang/LoginPage_de.properties index 09a1715fdf0b7f521872fe98f43e4cfa4615557f..beef4292a8be73cc62d7bce5c0264e1b061d4aa6 100644 --- a/Kieker.WebGUI/src/main/resources/lang/LoginPage_de.properties +++ b/Kieker.WebGUI/src/main/resources/lang/LoginPage_de.properties @@ -6,8 +6,7 @@ #------------------------------------------------------------------------------ msgWelcomeShort = Willkommen bei der Kieker.WebGUI -msgWelcome = Dies ist eine fr\u00fche Beta Version der Kieker Web GUI. Deshalb kann diese noch Bugs enthalten und einige Funktionalit\u00e4ten sind m\u00f6glicherweise noch nicht implementiert. Klicken Sie einfach auf "Anmelden" um fortzufahren. - +msgWelcome = Dies ist eine fr\u00fche Beta Version der Kieker Web GUI. Deshalb kann diese noch Bugs enthalten und einige Funktionalit\u00e4ten sind m\u00f6glicherweise noch nicht implementiert. Benutzen sie den Benutzer "Kieker-Team" mit dem Passwort "kieker" um sich anzumelden und fortzufahren. username = Benutzername password = Passwort diff --git a/Kieker.WebGUI/src/main/resources/lang/LoginPage_en.properties b/Kieker.WebGUI/src/main/resources/lang/LoginPage_en.properties index 3147326136f12e779a1dcc383b7ef35faeacee29..153c8a76c5f95639912deaba73856d347053c0d3 100644 --- a/Kieker.WebGUI/src/main/resources/lang/LoginPage_en.properties +++ b/Kieker.WebGUI/src/main/resources/lang/LoginPage_en.properties @@ -6,7 +6,7 @@ #------------------------------------------------------------------------------ msgWelcomeShort = Welcome to the Kieker.WebGUI -msgWelcome = This is an early beta version of the Kieker Web GUI. Therefore it may contain bugs and some functionality may have not been implemented yet. Just click "Login" to continue. +msgWelcome = This is an early beta version of the Kieker Web GUI. Therefore it may contain bugs and some functionality may have not been implemented yet. Use the user "Kieker-Team" with the password "kieker" to login and continue. username = Username password = Password diff --git a/Kieker.WebGUI/src/main/webapp/AccessDeniedPage.xhtml b/Kieker.WebGUI/src/main/webapp/AccessDeniedPage.xhtml new file mode 100644 index 0000000000000000000000000000000000000000..23a728a455abb73f2cdd26108b2c68c6712957b9 --- /dev/null +++ b/Kieker.WebGUI/src/main/webapp/AccessDeniedPage.xhtml @@ -0,0 +1,36 @@ +<?xml version='1.0' encoding='UTF-8' ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:p="http://primefaces.org/ui" + xmlns:f="http://java.sun.com/jsf/core"> + + <!-- Load the localized messages, labels etc. for the login page. --> + <f:loadBundle var="localizedMessages" basename="lang.Common"/> + + <h:head> + <title>Kieker.WebGUI</title> + <link rel="stylesheet" type="text/css" href="./css/Common.css" /> + <link rel="stylesheet" type="text/css" href="./css/AccessDeniedPage.css" /> + </h:head> + + <h:body> + + <div align="center" > + <img src="./img/kieker-header.jpg"/> + </div> + + <div align="center" class="stretch"> + <p:spacer width="0" height="120"/> + + <h:form> + <div class="stretch" align="center"> + <div align="center"> + <h:outputText style="font-size: 25px" value="Access Denied!"/> + </div> + </div> + </h:form> + </div> + </h:body> + +</html> \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/LoginPage.xhtml b/Kieker.WebGUI/src/main/webapp/LoginPage.xhtml index 2941f2181821503430930e6ff196f5be33e005ca..252ee0c31b87a24e0546559e9f10aeb15356c262 100644 --- a/Kieker.WebGUI/src/main/webapp/LoginPage.xhtml +++ b/Kieker.WebGUI/src/main/webapp/LoginPage.xhtml @@ -5,6 +5,10 @@ xmlns:p="http://primefaces.org/ui" xmlns:f="http://java.sun.com/jsf/core"> + <f:metadata> + <f:viewParam id="state" name="state"/> + </f:metadata> + <!-- Load the localized messages, labels etc. for the login page. --> <f:loadBundle var="localizedMessages" basename="lang.Common"/> <f:loadBundle var="localizedLoginMessages" basename="lang.LoginPage"/> @@ -25,19 +29,24 @@ <div align="center" class="stretch"> <p:spacer width="0" height="120"/> - <h:form> + <form action="#{request.contextPath}/j_spring_security_check" method="post"> <div class="stretch" align="center"> + <div class="hint-panel"> + <h:outputText style="color: red" value="#{state == 'logout' ? 'Sie haben sich erfolgreich ausgeloggt.' : 'Anmeldung fehlgeschlagen.'}" rendered="#{not empty state}"/><br/> + <p:spacer width="0" height="25" rendered="#{not empty state}"/> + </div> + <p:panel header="#{localizedLoginMessages.msgWelcomeShort}" styleClass="login-panel"> <h:panelGrid columnClasses="col1 , col2" styleClass="grid" columns="2" cellpadding="5" > - <h:outputLabel for="username" value="#{localizedLoginMessages.username}:" /> - <p:inputText styleClass="input" id="username" required="true" value="#{userBean.userName}" label="username"/> + <h:outputLabel for="j_username" value="#{localizedLoginMessages.username}:" /> + <p:inputText styleClass="input" id="j_username" required="true" value="#{userBean.userName}" label="username"/> - <h:outputLabel for="password" value="#{localizedLoginMessages.password}:" /> - <p:password styleClass="input" id="password" required="false" value="#{userBean.password}" label="password" /> + <h:outputLabel for="j_password" value="#{localizedLoginMessages.password}:" /> + <p:password styleClass="input" id="j_password" required="false" value="#{userBean.password}" label="password" /> </h:panelGrid> <hr/> <div align="right"> - <p:commandButton value="#{localizedLoginMessages.login}" ajax="false" action="#{userBean.login}" /> + <h:commandButton value="#{localizedLoginMessages.login}" type="submit" /> </div> </p:panel> @@ -49,7 +58,7 @@ <p:growl sticky="true" autoUpdate="true" widgetVar="growlComp"/> </div> - </h:form> + </form> </div> </h:body> diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/faces-config.xml b/Kieker.WebGUI/src/main/webapp/WEB-INF/faces-config.xml index 1dd24bc6c8fbd0e9dddb0713f43f9357eb14dcf5..30715fe05390a897edbc9b60280d69b5e7100dff 100644 --- a/Kieker.WebGUI/src/main/webapp/WEB-INF/faces-config.xml +++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/faces-config.xml @@ -6,44 +6,52 @@ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd"> <application> + <!-- Declare the available languages (English and German). The correct language will be determined automatically using the user's browser settings. --> <locale-config> <default-locale>en</default-locale> <supported-locale>de</supported-locale> - </locale-config> + </locale-config> + + <!-- This part is necessary to delegate the work to resolve variables to the Spring framework. --> + <variable-resolver> + org.springframework.web.jsf.DelegatingVariableResolver + </variable-resolver> </application> + <!-- The following part contains the navigation cases to move from one page to another. --> <navigation-rule> <navigation-case> <from-outcome>projectOverview</from-outcome> - <to-view-id>/ProjectOverviewPage.xhtml</to-view-id> + <to-view-id>/pages/ProjectOverviewPage.xhtml</to-view-id> + <redirect>true</redirect> </navigation-case> </navigation-rule> <navigation-rule> <navigation-case> <from-outcome>analysisEditor</from-outcome> - <to-view-id>/AnalysisEditorPage.xhtml</to-view-id> + <to-view-id>/pages/AnalysisEditorPage.xhtml</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <navigation-case> <from-outcome>cockpitEditor</from-outcome> - <to-view-id>/CockpitEditorPage.xhtml</to-view-id> + <to-view-id>/pages/CockpitEditorPage.xhtml</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <navigation-case> <from-outcome>cockpit</from-outcome> - <to-view-id>/CockpitPage.xhtml</to-view-id> + <to-view-id>/pages/CockpitPage.xhtml</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <navigation-case> <from-outcome>controller</from-outcome> - <to-view-id>/ControllerPage.xhtml</to-view-id> + <to-view-id>/pages/ControllerPage.xhtml</to-view-id> </navigation-case> </navigation-rule> @@ -53,4 +61,11 @@ <to-view-id>/LoginPage.xhtml</to-view-id> </navigation-case> </navigation-rule> + + <navigation-rule> + <navigation-case> + <from-outcome>accessDenied</from-outcome> + <to-view-id>/AccessDeniedPage.xhtml</to-view-id> + </navigation-case> + </navigation-rule> </faces-config> \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/pretty-config.xml b/Kieker.WebGUI/src/main/webapp/WEB-INF/pretty-config.xml index ed35f3fee6424e347c165542926b7829c198a15d..92dcf9f5d4ddfce03f2fed37c1f02018cd35d40d 100644 --- a/Kieker.WebGUI/src/main/webapp/WEB-INF/pretty-config.xml +++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/pretty-config.xml @@ -2,39 +2,44 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ocpsoft.com/prettyfaces/3.3.2 http://ocpsoft.com/xml/ns/prettyfaces/ocpsoft-pretty-faces-3.3.2.xsd"> + <!-- The following mappings make sure that we have more "pretty" looking urls. --> <url-mapping id="home"> - <pattern value="/" /> - <view-id value="/faces/ProjectOverviewPage.xhtml" /> + <pattern value="/pages/" /> + <view-id value="/faces/pages/ProjectOverviewPage.xhtml" /> </url-mapping> <url-mapping id="projectOverview"> - <pattern value="/projectOverview" /> - <view-id value="/faces/ProjectOverviewPage.xhtml" /> + <pattern value="/pages/projectOverview" /> + <view-id value="/faces/pages/ProjectOverviewPage.xhtml" /> </url-mapping> <url-mapping id="analysisEditor"> - <pattern value="/analysisEditor" /> - <view-id value="/faces/AnalysisEditorPage.xhtml" /> + <pattern value="/pages/analysisEditor" /> + <view-id value="/faces/pages/AnalysisEditorPage.xhtml" /> </url-mapping> <url-mapping id="cockpitEditor"> - <pattern value="/cockpitEditor" /> - <view-id value="/faces/CockpitEditorPage.xhtml" /> + <pattern value="/pages/cockpitEditor" /> + <view-id value="/faces/pages/CockpitEditorPage.xhtml" /> </url-mapping> <url-mapping id="controller"> - <pattern value="/controller" /> - <view-id value="/faces/ControllerPage.xhtml" /> + <pattern value="/pages/controller" /> + <view-id value="/faces/pages/ControllerPage.xhtml" /> </url-mapping> <url-mapping id="cockpit"> - <pattern value="/cockpit" /> - <view-id value="/faces/CockpitPage.xhtml" /> + <pattern value="/pages/cockpit" /> + <view-id value="/faces/pages/CockpitPage.xhtml" /> </url-mapping> <url-mapping id="login"> <pattern value="/login" /> <view-id value="/faces/LoginPage.xhtml" /> </url-mapping> - + + <url-mapping id="accessDenied"> + <pattern value="/accessDenied" /> + <view-id value="/faces/AccessDeniedPage.xhtml" /> + </url-mapping> </pretty-config> \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/shiro.ini b/Kieker.WebGUI/src/main/webapp/WEB-INF/shiro.ini deleted file mode 100644 index d9c8f02590031a966eee2bc82f43d1af14a27188..0000000000000000000000000000000000000000 --- a/Kieker.WebGUI/src/main/webapp/WEB-INF/shiro.ini +++ /dev/null @@ -1,17 +0,0 @@ -# ======================= -# Shiro INI configuration -# ======================= - -[main] - -authc.loginUrl = /Kieker.WebGUI/login - -securityManager.rememberMeManager.cookie.name = KiekerWebGuiLoginCookie -securityManager.rememberMeManager.cookie.maxAge = 10000 - -[users] -Nils = kieker - -[roles] - -[urls] diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/spring-config.xml b/Kieker.WebGUI/src/main/webapp/WEB-INF/spring-config.xml new file mode 100644 index 0000000000000000000000000000000000000000..e32eb4589671d038bc1349df6aa6edd3229b6e77 --- /dev/null +++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/spring-config.xml @@ -0,0 +1,126 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" + xmlns:context="http://www.springframework.org/schema/context" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd + http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> + + <!-- As there is no view scope available in Spring, we have to use a custom defined scope for this purpose. --> + <bean class="org.springframework.beans.factory.config.CustomScopeConfigurer"> + <property name="scopes"> + <map> + <entry key="view"> + <bean class="kieker.webgui.common.util.ViewScope"/> + </entry> + </map> + </property> + </bean> + + <!-- This is for the properties-files. --> + <bean id="globalPropertiesPlaceholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> + <property name="locations"> + <list> + <value>classpath:global.properties</value> + </list> + </property> + </bean> + + <!-- The singleton scoped beans. --> + <bean id="pluginFinder" class="kieker.webgui.common.util.PluginFinder" /> + <bean id="fsManager" class="kieker.webgui.common.util.FSManager" init-method="initialize"/> + <bean id="acManager" class="kieker.webgui.common.util.ACManager"> + <property name="fsManager" ref="fsManager" /> + </bean> + <bean id="projectManagerFacade" class="kieker.webgui.common.ProjectManagerFacade"> + <property name="fsManager" ref="fsManager" /> + <property name="acManager" ref="acManager" /> + <property name="pluginFinder" ref="pluginFinder" /> + </bean> + <bean id="projectsBean" class="kieker.webgui.beans.application.ProjectsBean" init-method="initialize"> + <property name="projectManagerFacade" ref="projectManagerFacade" /> + </bean> + <bean id="globalPropertiesBean" class="kieker.webgui.beans.application.GlobalPropertiesBean"> + <property name="themeCookieName" value="${kieker.webgui.config.lookAndFeel.cookieName}"/> + <property name="projectOverviewPage" value="${kieker.webgui.page.projectOverview}"/> + <property name="facesContextThemeKey" value="${kieker.webgui.config.lookAndFeel.facesContextKey}"/> + <property name="defaultTheme" value="${kieker.webgui.config.lookAndFeel.defaultTheme}"/> + <property name="analysisEditorGridSizeCookieName" value="${kieker.webgui.config.analysisEditor.gridSize.cookieName}"/> + <property name="analysisEditorGridColorCookieName" value="${kieker.webgui.config.analysisEditor.gridColor.cookieName}"/> + <property name="analysisEditorDefaultGridSize" value="${kieker.webgui.config.analysisEditor.defaultGridSize}"/> + <property name="analysisEditorDefaultGridColor" value="${kieker.webgui.config.analysisEditor.defaultGridColor}"/> + </bean> + <bean id="themeSwitcherBean" class="kieker.webgui.beans.application.ThemeSwitcherBean"> + <!-- This is the map containing the available themes (look and feels). If one wants to add more themes, this is the correct place to do so. --> + <property name="themes"> + <map> + <entry key="Aristo" value="aristo"/> + <entry key="Black-Tie" value="black-tie"/> + <entry key="Blitzer" value="blitzer"/> + <entry key="Bluesky" value="bluesky"/> + <entry key="Casablanca" value="casablanca"/> + <entry key="Cupertino" value="cupertino"/> + <entry key="Dark-Hive" value="dark-hive"/> + <entry key="Dot-Luv" value="dot-luv"/> + <entry key="Eggplant" value="eggplant"/> + <entry key="Excite-Bike" value="excite-bike"/> + <entry key="Flick" value="flick"/> + <entry key="Glass-X" value="glass-x"/> + <entry key="Hot-Sneaks" value="hot-sneaks"/> + <entry key="Humanity" value="humanity"/> + <entry key="Le-Frog" value="le-frog"/> + <entry key="Midnight" value="midnight"/> + <entry key="Mint-Choc" value="mint-choc"/> + <entry key="Overcast" value="overcast"/> + <entry key="Pepper-Grinder" value="pepper-grinder"/> + <entry key="Redmond" value="redmond"/> + <entry key="Rocket" value="rocket"/> + <entry key="Smoothness" value="smoothness"/> + <entry key="South-Street" value="south-street"/> + <entry key="Start" value="start"/> + <entry key="Sunny" value="sunny"/> + <entry key="Swanky-Purse" value="swanky-purse"/> + <entry key="Trontastic" value="trontastic"/> + <entry key="UI-Darkness" value="ui-darkness"/> + <entry key="UI-Lightness" value="ui-lightness"/> + <entry key="Vader" value="vader"/> + </map> + </property> + </bean> + + <!-- The session scoped beans. --> + <bean id="currentConfigurationBean" class="kieker.webgui.beans.session.CurrentConfigurationBean" scope="session" init-method="initialize"> + <property name="globalPropertiesBean" ref="globalPropertiesBean"/> + </bean> + <bean id="userBean" class="kieker.webgui.beans.session.UserBean" scope="session"> + <property name="globalPropertiesBean" ref="globalPropertiesBean"/> + </bean> + + <!-- The view scoped beans. --> + <bean id="currentAnalysisEditorBean" class="kieker.webgui.beans.view.CurrentAnalysisEditorBean" scope="view"> + <property name="globalPropertiesBean" ref="globalPropertiesBean"/> + <property name="projectManagerFacade" ref="projectManagerFacade" /> + <property name="projectsBean" ref="projectsBean" /> + <property name="currentAnalysisEditorGraphBean" ref="currentAnalysisEditorGraphBean" /> + <property name="currentConfigurationBean" ref="currentConfigurationBean" /> + </bean> + <bean id="currentAnalysisEditorGraphBean" class="kieker.webgui.beans.view.CurrentAnalysisEditorGraphBean" scope="view"/> + <bean id="currentCockpitBean" class="kieker.webgui.beans.view.CurrentCockpitBean" scope="view"> + <property name="projectsBean" ref="projectsBean"/> + <property name="projectManagerFacade" ref="projectManagerFacade" /> + </bean> + <bean id="currentCockpitEditorBean" class="kieker.webgui.beans.view.CurrentCockpitEditorBean" scope="view"> + <property name="globalPropertiesBean" ref="globalPropertiesBean"/> + <property name="projectManagerFacade" ref="projectManagerFacade" /> + <property name="projectsBean" ref="projectsBean"/> + </bean> + <bean id="currentControllerBean" class="kieker.webgui.beans.view.CurrentControllerBean" scope="view"> + <property name="projectsBean" ref="projectsBean"/> + <property name="projectManagerFacade" ref="projectManagerFacade" /> + </bean> + <bean id="currentProjectOverviewBean" class="kieker.webgui.beans.view.CurrentProjectOverviewBean" scope="view" init-method="initialialize"> + <property name="projectsBean" ref="projectsBean"/> + </bean> + + <!-- The request scoped beans. --> + <bean id="stringBean" class="kieker.webgui.beans.request.StringBean" scope="request"/> +</beans> \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/spring-security-config.xml b/Kieker.WebGUI/src/main/webapp/WEB-INF/spring-security-config.xml new file mode 100644 index 0000000000000000000000000000000000000000..dadc966dade8201c009948d7ded5a551ea16dc51 --- /dev/null +++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/spring-security-config.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<beans:beans xmlns="http://www.springframework.org/schema/security" + xmlns:beans="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:jdbc="http://www.springframework.org/schema/jdbc" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd + http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd + http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd"> + + <http use-expressions="true" access-denied-page="/accessDenied" > + <form-login login-page="/login" default-target-url="/pages/" authentication-failure-url="/login?state=failure"/> + <intercept-url pattern="/login" access="true"/> + <intercept-url pattern="/pages/**" access="isAuthenticated()"/> + <intercept-url pattern="/faces/pages/**" access="isAuthenticated()"/> + <intercept-url pattern="/" access="false" /> + <logout logout-success-url="/login?state=logout" /> + </http> + + <authentication-manager> + <authentication-provider> + <user-service> + <user name="Kieker-Team" password="kieker" authorities="ROLE_USER, ROLE_ADMIN" /> + </user-service> + </authentication-provider> + </authentication-manager> +</beans:beans> \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml b/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml index 8e6a4a3dca3c88461ce9201ee98604247c3a8966..733e982572f51dfefa38e90fbaa2b816dfc953c1 100644 --- a/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml +++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml @@ -16,12 +16,21 @@ <param-value>Development</param-value> </context-param> - <!-- This parameter makes sure that the theme chooser will work. --> + <!-- This parameter makes sure that the primefaces theme chooser will work. --> <context-param> <param-name>primefaces.THEME</param-name> <param-value>#{currentConfigurationBean.lookAndFeel}</param-value> </context-param> + <filter> + <filter-name>springSecurityFilterChain</filter-name> + <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> + </filter> + <filter-mapping> + <filter-name>springSecurityFilterChain</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> + <!-- This filter is necessary for the PrimeFaces file upload. --> <filter> <filter-name>PrimeFaces FileUpload Filter</filter-name> @@ -37,6 +46,7 @@ <url-pattern>/*</url-pattern> </filter-mapping> + <!-- The following servlet and mapping make sure that the JSF pages will be interpreted correctly. --> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> @@ -77,25 +87,6 @@ <dispatcher>ERROR</dispatcher> </filter-mapping> - <!-- The following is necessary for Apache Shiro. --> - <listener> - <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class> - </listener> - - <filter> - <filter-name>ShiroFilter</filter-name> - <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class> - </filter> - - <filter-mapping> - <filter-name>ShiroFilter</filter-name> - <url-pattern>/*</url-pattern> - <dispatcher>REQUEST</dispatcher> - <dispatcher>FORWARD</dispatcher> - <dispatcher>INCLUDE</dispatcher> - <dispatcher>ERROR</dispatcher> - </filter-mapping> - <!-- This listener will be used by the webgui itself to initialize the environment. --> <listener> <listener-class>kieker.webgui.common.EnvironmentLoaderListener</listener-class> @@ -106,4 +97,18 @@ <param-name>com.sun.faces.expressionFactory</param-name> <param-value>com.sun.el.ExpressionFactoryImpl</param-value> </context-param> + + <!-- The following part is necessary for Spring. --> + <context-param> + <param-name>contextConfigLocation</param-name> + <param-value>/WEB-INF/spring-*config.xml</param-value> + </context-param> + + <listener> + <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> + </listener> + + <listener> + <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> + </listener> </web-app> diff --git a/Kieker.WebGUI/src/main/webapp/css/AccessDeniedPage.css b/Kieker.WebGUI/src/main/webapp/css/AccessDeniedPage.css new file mode 100644 index 0000000000000000000000000000000000000000..db3a4dc406a898994b0c68aac9ad932576347fe9 --- /dev/null +++ b/Kieker.WebGUI/src/main/webapp/css/AccessDeniedPage.css @@ -0,0 +1,29 @@ +@charset "UTF-8"; + +.ui-growl { + width: 500px +} + +.ui-growl-message { + width: 400px; + text-align: justify; +} + +html { + height: 100%; +} + +body { + background-color: #f1f1f1; + margin: 0; + padding: 0; + height: 100%; +} + +div.stretch { + background: #ffffff; + padding: 0 0 0 0; + margin: auto; + width: 1000px; + min-height: 100%; +} \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/dialogs/ProjectOverviewPageDialogs.xhtml b/Kieker.WebGUI/src/main/webapp/dialogs/ProjectOverviewPageDialogs.xhtml index f9f0b4aa0fbf6db85b74a9ea1232660b572a039c..374fbde018e6b55419162d5b00e291b12481c091 100644 --- a/Kieker.WebGUI/src/main/webapp/dialogs/ProjectOverviewPageDialogs.xhtml +++ b/Kieker.WebGUI/src/main/webapp/dialogs/ProjectOverviewPageDialogs.xhtml @@ -18,7 +18,7 @@ <hr/> <div style="text-align: right"> - <p:commandButton value="#{localizedMessages.ok}" action="#{projectsBean.addProject(stringBean.string)}" update=":projectsListForm :messages" oncomplete="newProjectDialog.hide()" /> + <p:commandButton value="#{localizedMessages.ok}" action="#{projectsBean.addProject(stringBean.string, currentProjectOverviewBean)}" update=":projectsListForm :messages" oncomplete="newProjectDialog.hide()" /> <p:spacer width="10px" height="10" /> <p:commandButton value="#{localizedMessages.cancel}" onclick="newProjectDialog.hide()" /> </div> @@ -73,7 +73,7 @@ <hr/> <div style="text-align: right"> - <p:commandButton value="#{localizedMessages.ok}" action="#{projectsBean.copyProject(currentProjectOverviewBean.projectName, stringBean.string)}" update=":projectsListForm :messages" oncomplete="copyProjectDialog.hide()" /> + <p:commandButton value="#{localizedMessages.ok}" action="#{projectsBean.copyProject(currentProjectOverviewBean.projectName, stringBean.string, currentProjectOverviewBean)}" update=":projectsListForm :messages" oncomplete="copyProjectDialog.hide()" /> <p:spacer width="10px" height="10" /> <p:commandButton value="#{localizedMessages.cancel}" onclick="copyProjectDialog.hide()" /> </div> diff --git a/Kieker.WebGUI/src/main/webapp/dialogs/SettingsDialog.xhtml b/Kieker.WebGUI/src/main/webapp/dialogs/SettingsDialog.xhtml index f13fd987afa8effa744f66a9c35f0be9cec52175..a0776c0c62be2100c6d59312bd46875464a3b0dc 100644 --- a/Kieker.WebGUI/src/main/webapp/dialogs/SettingsDialog.xhtml +++ b/Kieker.WebGUI/src/main/webapp/dialogs/SettingsDialog.xhtml @@ -46,7 +46,7 @@ </p:tabView> <hr/> <div style="text-align: right"> - <p:commandButton value="#{localizedMessages.ok}" oncomplete="settingsDlg.hide();"/> + <p:commandButton value="#{localizedMessages.ok}" oncomplete="settingsDlg.hide()"/> </div> </h:form> </p:dialog> diff --git a/Kieker.WebGUI/src/main/webapp/AnalysisEditorPage.xhtml b/Kieker.WebGUI/src/main/webapp/pages/AnalysisEditorPage.xhtml similarity index 97% rename from Kieker.WebGUI/src/main/webapp/AnalysisEditorPage.xhtml rename to Kieker.WebGUI/src/main/webapp/pages/AnalysisEditorPage.xhtml index 67124a1edceb7069fab0c3a0999aa4bcf5902fa8..75e3640ec9ecec44685c6f58f46cb2fedc6ac79d 100644 --- a/Kieker.WebGUI/src/main/webapp/AnalysisEditorPage.xhtml +++ b/Kieker.WebGUI/src/main/webapp/pages/AnalysisEditorPage.xhtml @@ -19,14 +19,14 @@ <h:head> <title>Kieker.WebGUI</title> <!-- Load the necessary CSS files. --> - <link rel="stylesheet" type="text/css" href="./css/FlowEditor.css" /> - <link rel="stylesheet" type="text/css" href="./css/Common.css" /> - <link rel="stylesheet" type="text/css" href="./css/Icons.css" /> - <link rel="stylesheet" type="text/css" href="./css/AnalysisEditorPage.css" /> + <link rel="stylesheet" type="text/css" href="../css/FlowEditor.css" /> + <link rel="stylesheet" type="text/css" href="../css/Common.css" /> + <link rel="stylesheet" type="text/css" href="../css/Icons.css" /> + <link rel="stylesheet" type="text/css" href="../css/AnalysisEditorPage.css" /> <!-- Load the necessary JS files. --> - <script language="javascript" type="text/javascript" src="./js/jit.js"></script> - <script language="javascript" type="text/javascript" src="./js/flowEditor.js"></script> + <script language="javascript" type="text/javascript" src="../js/jit.js"></script> + <script language="javascript" type="text/javascript" src="../js/flowEditor.js"></script> <script> nodeClickListener = function(node, info, e) { @@ -114,7 +114,7 @@ <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-about" value=" #{localizedMessages.about}" onclick="aboutDlg.show()" ajax="true"/> </p:submenu> - <p:menuitem styleClass="logOutButton element-with-whitespace" icon="ui-icon-logout" value=" #{userBean.userName}" ajax="true" url="login"/> + <p:menuitem styleClass="logOutButton element-with-whitespace" icon="ui-icon-logout" value=" #{userBean.userName}" ajax="true" url="j_spring_security_logout"/> </p:menubar> <p:spacer height="5"/> <p:menubar> @@ -291,13 +291,13 @@ <p:growl id="messages" life="1500" showDetail="true" autoUpdate="false" sticky="true"/> <!-- Include the dialog for the configuration. --> - <ui:include src="dialogs/SettingsDialog.xhtml"/> + <ui:include src="../dialogs/SettingsDialog.xhtml"/> <!-- Include the about-dialog. --> - <ui:include src="dialogs/AboutDialog.xhtml" /> + <ui:include src="../dialogs/AboutDialog.xhtml" /> <!-- Include the dialog the manage the libraries. --> - <ui:include src="dialogs/AnalysisEditorPageDialogs.xhtml" /> + <ui:include src="../dialogs/AnalysisEditorPageDialogs.xhtml" /> </h:body> diff --git a/Kieker.WebGUI/src/main/webapp/CockpitEditorPage.xhtml b/Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml similarity index 95% rename from Kieker.WebGUI/src/main/webapp/CockpitEditorPage.xhtml rename to Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml index ab763715f36374b08b7e80e6e42b9465c4e587af..112c0b41f32ba26002b62acc816a7474d6655f61 100644 --- a/Kieker.WebGUI/src/main/webapp/CockpitEditorPage.xhtml +++ b/Kieker.WebGUI/src/main/webapp/pages/CockpitEditorPage.xhtml @@ -16,9 +16,9 @@ <h:head> <title>Kieker.WebGUI</title> - <link rel="stylesheet" type="text/css" href="./css/Common.css" /> - <link rel="stylesheet" type="text/css" href="./css/Icons.css" /> - <link rel="stylesheet" type="text/css" href="./css/CockpitEditorPage.css" /> + <link rel="stylesheet" type="text/css" href="../css/Common.css" /> + <link rel="stylesheet" type="text/css" href="../css/Icons.css" /> + <link rel="stylesheet" type="text/css" href="../css/CockpitEditorPage.css" /> </h:head> <h:body> @@ -68,7 +68,7 @@ <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-about" value=" #{localizedMessages.about}" onclick="aboutDlg.show()" ajax="true"/> </p:submenu> - <p:menuitem styleClass="logOutButton element-with-whitespace" icon="ui-icon-logout" value=" #{userBean.userName}" ajax="true" url="login"/> + <p:menuitem styleClass="logOutButton element-with-whitespace" icon="ui-icon-logout" value=" #{userBean.userName}" ajax="true" url="j_spring_security_logout"/> </p:menubar> </h:form> </p:layoutUnit> @@ -148,12 +148,12 @@ <p:growl id="messages" life="1500" showDetail="true" autoUpdate="false" sticky="true"/> <!-- Include the dialog for the configuration. --> - <ui:include src="dialogs/SettingsDialog.xhtml" /> + <ui:include src="../dialogs/SettingsDialog.xhtml" /> <!-- Include the dialogs for the views. --> - <ui:include src="dialogs/CockpitEditorPageDialogs.xhtml" /> + <ui:include src="../dialogs/CockpitEditorPageDialogs.xhtml" /> <!-- Include the about-dialog. --> - <ui:include src="dialogs/AboutDialog.xhtml" /> + <ui:include src="../dialogs/AboutDialog.xhtml" /> </h:body> </html> \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/CockpitPage.xhtml b/Kieker.WebGUI/src/main/webapp/pages/CockpitPage.xhtml similarity index 94% rename from Kieker.WebGUI/src/main/webapp/CockpitPage.xhtml rename to Kieker.WebGUI/src/main/webapp/pages/CockpitPage.xhtml index a4884fbd6d17feba300d4cb60516303053850ff3..a9f11fc737e1071967642a4aea551f5827a489be 100644 --- a/Kieker.WebGUI/src/main/webapp/CockpitPage.xhtml +++ b/Kieker.WebGUI/src/main/webapp/pages/CockpitPage.xhtml @@ -16,9 +16,9 @@ <h:head> <title>Kieker.WebGUI</title> - <link rel="stylesheet" type="text/css" href="./css/Common.css" /> - <link rel="stylesheet" type="text/css" href="./css/Icons.css" /> - <link rel="stylesheet" type="text/css" href="./css/CockpitPage.css" /> + <link rel="stylesheet" type="text/css" href="../css/Common.css" /> + <link rel="stylesheet" type="text/css" href="../css/Icons.css" /> + <link rel="stylesheet" type="text/css" href="../css/CockpitPage.css" /> </h:head> <h:body> @@ -66,7 +66,7 @@ <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-about" value=" #{localizedMessages.about}" onclick="aboutDlg.show()" ajax="true"/> </p:submenu> - <p:menuitem styleClass="logOutButton element-with-whitespace" icon="ui-icon-logout" value=" #{userBean.userName}" ajax="true" url="login"/> + <p:menuitem styleClass="logOutButton element-with-whitespace" icon="ui-icon-logout" value=" #{userBean.userName}" ajax="true" url="j_spring_security_logout"/> </p:menubar> </h:form> </p:layoutUnit> @@ -106,10 +106,10 @@ <p:growl id="messages" life="1500" showDetail="true" autoUpdate="false" sticky="true"/> <!-- Include the dialog for the configuration. --> - <ui:include src="dialogs/SettingsDialog.xhtml" /> + <ui:include src="../dialogs/SettingsDialog.xhtml" /> <!-- Include the about-dialog. --> - <ui:include src="dialogs/AboutDialog.xhtml" /> + <ui:include src="../dialogs/AboutDialog.xhtml" /> </h:body> </html> \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/ControllerPage.xhtml b/Kieker.WebGUI/src/main/webapp/pages/ControllerPage.xhtml similarity index 86% rename from Kieker.WebGUI/src/main/webapp/ControllerPage.xhtml rename to Kieker.WebGUI/src/main/webapp/pages/ControllerPage.xhtml index b31a1e297335f66a20fb218a3a9f21618449aeef..3a39a76e8a29af581c9f2bac8d355e70ecb88633 100644 --- a/Kieker.WebGUI/src/main/webapp/ControllerPage.xhtml +++ b/Kieker.WebGUI/src/main/webapp/pages/ControllerPage.xhtml @@ -15,9 +15,9 @@ <h:head> <title>Kieker.WebGUI</title> - <link rel="stylesheet" type="text/css" href="./css/Common.css" /> - <link rel="stylesheet" type="text/css" href="./css/Icons.css" /> - <link rel="stylesheet" type="text/css" href="./css/ControllerPage.css" /> + <link rel="stylesheet" type="text/css" href="../css/Common.css" /> + <link rel="stylesheet" type="text/css" href="../css/Icons.css" /> + <link rel="stylesheet" type="text/css" href="../css/ControllerPage.css" /> </h:head> <h:body> @@ -61,7 +61,7 @@ <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-about" value=" #{localizedMessages.about}" onclick="aboutDlg.show()" ajax="true"/> </p:submenu> - <p:menuitem styleClass="logOutButton element-with-whitespace" icon="ui-icon-logout" value=" #{userBean.userName}" ajax="true" url="login"/> + <p:menuitem styleClass="logOutButton element-with-whitespace" icon="ui-icon-logout" value=" #{userBean.userName}" ajax="true" url="j_spring_security_logout"/> </p:menubar> </h:form> @@ -98,17 +98,17 @@ <hr/> <h:form id="ledsForm"> <div align="center"> - <h:graphicImage id="iconLEDRed1" url="./img/LEDs/Icon_LED_Red.png" height="50px" rendered="#{currentControllerBean.isAnalysisNotAvailable()}"/> - <h:graphicImage id="iconLEDRed1_2" url="./img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisNotAvailable()}"/> + <h:graphicImage id="iconLEDRed1" url="../img/LEDs/Icon_LED_Red.png" height="50px" rendered="#{currentControllerBean.isAnalysisNotAvailable()}"/> + <h:graphicImage id="iconLEDRed1_2" url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisNotAvailable()}"/> <p:spacer height="0" width="15px"/> - <h:graphicImage id="iconLEDYellow" url="./img/LEDs/Icon_LED_Yellow.png" height="50px" rendered="#{currentControllerBean.isAnalysisReady()}"/> - <h:graphicImage id="iconLEDYellow_2" url="./img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisReady()}"/> + <h:graphicImage id="iconLEDYellow" url="../img/LEDs/Icon_LED_Yellow.png" height="50px" rendered="#{currentControllerBean.isAnalysisReady()}"/> + <h:graphicImage id="iconLEDYellow_2" url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisReady()}"/> <p:spacer height="0" width="15px"/> - <h:graphicImage id="iconLEDGreen" url="./img/LEDs/Icon_LED_Green.png" height="50px" rendered="#{currentControllerBean.isAnalysisRunning()}"/> - <h:graphicImage id="iconLEDGreen_2" url="./img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisRunning()}"/> + <h:graphicImage id="iconLEDGreen" url="../img/LEDs/Icon_LED_Green.png" height="50px" rendered="#{currentControllerBean.isAnalysisRunning()}"/> + <h:graphicImage id="iconLEDGreen_2" url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not currentControllerBean.isAnalysisRunning()}"/> <p:spacer height="0" width="15px"/> - <h:graphicImage id="iconLEDRed2" url="./img/LEDs/Icon_LED_Red.png" height="50px" rendered="#{currentControllerBean.isAnalysisTerminated() or currentControllerBean.isAnalysisFailed()}"/> - <h:graphicImage id="iconLEDRed2_2" url="./img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not (currentControllerBean.isAnalysisTerminated() or currentControllerBean.isAnalysisFailed())}"/> + <h:graphicImage id="iconLEDRed2" url="../img/LEDs/Icon_LED_Red.png" height="50px" rendered="#{currentControllerBean.isAnalysisTerminated() or currentControllerBean.isAnalysisFailed()}"/> + <h:graphicImage id="iconLEDRed2_2" url="../img/LEDs/Icon_LED_Gray.png" height="50px" rendered="#{not (currentControllerBean.isAnalysisTerminated() or currentControllerBean.isAnalysisFailed())}"/> <p:tooltip for="iconLEDRed1" value="#{localizedControllerPageMessages.analysisControllerMsgNotInstantiated}"/> <p:tooltip for="iconLEDYellow" value="#{localizedControllerPageMessages.analysisControllerMsgReady}"/> @@ -127,10 +127,10 @@ <p:growl id="messages" life="1500" showDetail="true" autoUpdate="false" sticky="true"/> <!-- Include the dialog for the configuration. --> - <ui:include src="dialogs/SettingsDialog.xhtml" /> + <ui:include src="../dialogs/SettingsDialog.xhtml" /> <!-- Include the about-dialog. --> - <ui:include src="dialogs/AboutDialog.xhtml" /> + <ui:include src="../dialogs/AboutDialog.xhtml" /> </h:body> diff --git a/Kieker.WebGUI/src/main/webapp/ProjectOverviewPage.xhtml b/Kieker.WebGUI/src/main/webapp/pages/ProjectOverviewPage.xhtml similarity index 94% rename from Kieker.WebGUI/src/main/webapp/ProjectOverviewPage.xhtml rename to Kieker.WebGUI/src/main/webapp/pages/ProjectOverviewPage.xhtml index 8ff32633f7c09502043476ea05375b2f5b751052..d8a7d2ceff3e3ba70792fc192ebec6254b74b2da 100644 --- a/Kieker.WebGUI/src/main/webapp/ProjectOverviewPage.xhtml +++ b/Kieker.WebGUI/src/main/webapp/pages/ProjectOverviewPage.xhtml @@ -5,15 +5,15 @@ xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" xmlns:f="http://java.sun.com/jsf/core"> - + <f:loadBundle var="localizedMessages" basename="lang.Common"/> <f:loadBundle var="localizedProjectOverviewMessages" basename="lang.ProjectOverviewPage"/> <h:head> <title>Kieker.WebGUI</title> - <link rel="stylesheet" type="text/css" href="./css/Common.css" /> - <link rel="stylesheet" type="text/css" href="./css/Icons.css" /> - <link rel="stylesheet" type="text/css" href="./css/ProjectOverviewPage.css" /> + <link rel="stylesheet" type="text/css" href="../css/Common.css" /> + <link rel="stylesheet" type="text/css" href="../css/Icons.css" /> + <link rel="stylesheet" type="text/css" href="../css/ProjectOverviewPage.css" /> </h:head> <h:body> @@ -59,7 +59,7 @@ <p:menuitem styleClass="element-with-whitespace" icon="ui-icon-about" value=" #{localizedMessages.about}" onclick="aboutDlg.show()" ajax="true"/> </p:submenu> - <p:menuitem styleClass="logOutButton element-with-whitespace" icon="ui-icon-logout" value=" #{userBean.userName}" ajax="true" url="login"/> + <p:menuitem styleClass="logOutButton element-with-whitespace" icon="ui-icon-logout" value=" #{userBean.userName}" ajax="true" url="j_spring_security_logout"/> </p:menubar> </h:form> </p:layoutUnit> @@ -108,11 +108,11 @@ <p:growl id="messages" life="1500" showDetail="true" autoUpdate="false" sticky="true"/> <!-- Include the about-dialog. --> - <ui:include src="dialogs/AboutDialog.xhtml" /> + <ui:include src="../dialogs/AboutDialog.xhtml" /> <!-- Include the dialogs for the project managment. --> - <ui:include src="dialogs/ProjectOverviewPageDialogs.xhtml" /> + <ui:include src="../dialogs/ProjectOverviewPageDialogs.xhtml" /> <!-- Include the dialog for the configuration. --> - <ui:include src="dialogs/SettingsDialog.xhtml" /> + <ui:include src="../dialogs/SettingsDialog.xhtml" /> </h:body> </html> \ No newline at end of file